PageSourceSearch

https://immub.org/site/assets/js/index_static_vendor.js?update=Gbr

js immub.org collected 2026-09-24 18:20:50 UTC 478,926 bytes, 13,911 lines download raw bytes

1if (
2  (!(function (f, T) {
3    function t(e, t) {
4      return t.toUpperCase();
5    }
6    function n(e) {
7      (!m.addEventListener &&
8        "load" !== e.type &&
9        "complete" !== m.readyState) ||
10        (O(), ke.ready());
11    }
12    var i,
13      o,
14      v = typeof T,
15      e = f.location,
16      m = f.document,
17      s = m.documentElement,
18      r = f.jQuery,
19      a = f.$,
20      l = {},
21      u = [],
22      c = "1.10.1",
23      g = u.concat,
24      d = u.push,
25      p = u.slice,
26      h = u.indexOf,
27      y = l.toString,
28      w = l.hasOwnProperty,
29      b = c.trim,
30      ke = function (e, t) {
31        return new ke.fn.init(e, t, o);
32      },
33      x = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,
34      C = /\S+/g,
35      k = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
36      S = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,
37      z = /^<(\w+)\s*\/?>(?:<\/\1>|)$/,
38      E = /^[\],:{}\s]*$/,
39      W = /(?:^|:|,)(?:\s*\[)+/g,
40      L = /\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,
41      A = /"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,
42      $ = /^-ms-/,
43      F = /-([\da-z])/gi,
44      O = function () {
45        m.addEventListener
46          ? (m.removeEventListener("DOMContentLoaded", n, !1),
47            f.removeEventListener("load", n, !1))
48          : (m.detachEvent("onreadystatechange", n),
49            f.detachEvent("onload", n));
50      };
51    function H(e) {
52      var t = e.length,
53        o = ke.type(e);
54      return (
55        !ke.isWindow(e) &&
56        (!(1 !== e.nodeType || !t) ||
57          "array" === o ||
58          ("function" !== o &&
59            (0 === t || ("number" == typeof t && 0 < t && t - 1 in e))))
60      );
61    }
62    (ke.fn = ke.prototype =
63      {
64        jquery: c,
65        constructor: ke,
66        init: function (e, t, o) {
67          var n, i;
68          if (!e) return this;
69          if ("string" != typeof e)
70            return e.nodeType
71              ? ((this.context = this[0] = e), (this.length = 1), this)
72              : ke.isFunction(e)
73              ? o.ready(e)
74              : (e.selector !== T &&
75                  ((this.selector = e.selector), (this.context = e.context)),
76                ke.makeArray(e, this));
77          if (
78            !(n =
79              "<" === e.charAt(0) &&
80              ">" === e.charAt(e.length - 1) &&
81              3 <= e.length
82                ? [null, e, null]
83                : S.exec(e)) ||
84            (!n[1] && t)
85          )
86            return !t || t.jquery
87              ? (t || o).find(e)
88              : this.constructor(t).find(e);
89          if (n[1]) {
90            if (
91              ((t = t instanceof ke ? t[0] : t),
92              ke.merge(
93                this,
94                ke.parseHTML(
95                  n[1],
96                  t && t.nodeType ? t.ownerDocument || t : m,
97                  !0
98                )
99              ),
100              z.test(n[1]) && ke.isPlainObject(t))
101            )
102              for (n in t)
103                ke.isFunction(this[n]) ? this[n](t[n]) : this.attr(n, t[n]);
104            return this;
105          }
106          if ((i = m.getElementById(n[2])) && i.parentNode) {
107            if (i.id !== n[2]) return o.find(e);
108            (this.length = 1), (this[0] = i);
109          }
110          return (this.context = m), (this.selector = e), this;
111        },
112        selector: "",
113        length: 0,
114        toArray: function () {
115          return p.call(this);
116        },
117        get: function (e) {
118          return null == e
119            ? this.toArray()
120            : e < 0
121            ? this[this.length + e]
122            : this[e];
123        },
124        pushStack: function (e) {
125          var t = ke.merge(this.constructor(), e);
126          return (t.prevObject = this), (t.context = this.context), t;
127        },
128        each: function (e, t) {
129          return ke.each(this, e, t);
130        },
131        ready: function (e) {
132          return ke.ready.promise().done(e), this;
133        },
134        slice: function () {
135          return this.pushStack(p.apply(this, arguments));
136        },
137        first: function () {
138          return this.eq(0);
139        },
140        last: function () {
141          return this.eq(-1);
142        },
143        eq: function (e) {
144          var t = this.length,
145            o = +e + (e < 0 ? t : 0);
146          return this.pushStack(0 <= o && o < t ? [this[o]] : []);
147        },
148        map: function (o) {
149          return this.pushStack(
150            ke.map(this, function (e, t) {
151              return o.call(e, t, e);
152            })
153          );
154        },
155        end: function () {
156          return this.prevObject || this.constructor(null);
157        },
158        push: d,
159        sort: [].sort,
160        splice: [].splice,
161      }),
162      (ke.fn.init.prototype = ke.fn),
163      (ke.extend = ke.fn.extend =
164        function () {
165          var e,
166            t,
167            o,
168            n,
169            i,
170            s,
171            r = arguments[0] || {},
172            a = 1,
173            l = arguments.length,
174            c = !1;
175          for (
176            "boolean" == typeof r &&
177              ((c = r), (r = arguments[1] || {}), (a = 2)),
178              "object" == typeof r || ke.isFunction(r) || (r = {}),
179              l === a && ((r = this), --a);
180            a < l;
181            a++
182          )
183            if (null != (i = arguments[a]))
184              for (n in i)
185                (e = r[n]),
186                  r !== (o = i[n]) &&
187                    (c && o && (ke.isPlainObject(o) || (t = ke.isArray(o)))
188                      ? ((s = t
189                          ? ((t = !1), e && ke.isArray(e) ? e : [])
190                          : e && ke.isPlainObject(e)
191                          ? e
192                          : {}),
193                        (r[n] = ke.extend(c, s, o)))
194                      : o !== T && (r[n] = o));
195          return r;
196        }),
197      ke.extend({
198        expando: "jQuery" + (c + Math.random()).replace(/\D/g, ""),
199        noConflict: function (e) {
200          return (
201            f.$ === ke && (f.$ = a), e && f.jQuery === ke && (f.jQuery = r), ke
202          );
203        },
204        isReady: !1,
205        readyWait: 1,
206        holdReady: function (e) {
207          e ? ke.readyWait++ : ke.ready(!0);
208        },
209        ready: function (e) {
210          if (!0 === e ? !--ke.readyWait : !ke.isReady) {
211            if (!m.body) return setTimeout(ke.ready);
212            ((ke.isReady = !0) !== e && 0 < --ke.readyWait) ||
213              (i.resolveWith(m, [ke]),
214              ke.fn.trigger && ke(m).trigger("ready").off("ready"));
215          }
216        },
217        isFunction: function (e) {
218          return "function" === ke.type(e);
219        },
220        isArray:
221          Array.isArray ||
222          function (e) {
223            return "array" === ke.type(e);
224          },
225        isWindow: function (e) {
226          return null != e && e == e.window;
227        },
228        isNumeric: function (e) {
229          return !isNaN(parseFloat(e)) && isFinite(e);
230        },
231        type: function (e) {
232          return null == e
233            ? e + ""
234            : "object" == typeof e || "function" == typeof e
235            ? l[y.call(e)] || "object"
236            : typeof e;
237        },
238        isPlainObject: function (e) {
239          var t;
240          if (!e || "object" !== ke.type(e) || e.nodeType || ke.isWindow(e))
241            return !1;
242          try {
243            if (
244              e.constructor &&
245              !w.call(e, "constructor") &&
246              !w.call(e.constructor.prototype, "isPrototypeOf")
247            )
248              return !1;
249          } catch (e) {
250            return !1;
251          }
252          if (ke.support.ownLast) for (t in e) return w.call(e, t);
253          for (t in e);
254          return t === T || w.call(e, t);
255        },
256        isEmptyObject: function (e) {
257          var t;
258          for (t in e) return !1;
259          return !0;
260        },
261        error: function (e) {
262          throw Error(e);
263        },
264        parseHTML: function (e, t, o) {
265          if (!e || "string" != typeof e) return null;
266          "boolean" == typeof t && ((o = t), (t = !1)), (t = t || m);
267          var n = z.exec(e),
268            i = !o && [];
269          return n
270            ? [t.createElement(n[1])]
271            : ((n = ke.buildFragment([e], t, i)),
272              i && ke(i).remove(),
273              ke.merge([], n.childNodes));
274        },
275        parseJSON: function (e) {
276          return f.JSON && f.JSON.parse
277            ? f.JSON.parse(e)
278            : null === e
279            ? e
280            : "string" == typeof e &&
281              (e = ke.trim(e)) &&
282              E.test(e.replace(L, "@").replace(A, "]").replace(W, ""))
283            ? Function("return " + e)()
284            : (ke.error("Invalid JSON: " + e), T);
285        },
286        parseXML: function (e) {
287          var t;
288          if (!e || "string" != typeof e) return null;
289          try {
290            f.DOMParser
291              ? (t = new DOMParser().parseFromString(e, "text/xml"))
292              : (((t = new ActiveXObject("Microsoft.XMLDOM")).async = "false"),
293                t.loadXML(e));
294          } catch (e) {
295            t = T;
296          }
297          return (
298            (t &&
299              t.documentElement &&
300              !t.getElementsByTagName("parsererror").length) ||
301              ke.error("Invalid XML: " + e),
302            t
303          );
304        },
305        noop: function () {},
306        globalEval: function (e) {
307          e &&
308            ke.trim(e) &&
309            (
310              f.execScript ||
311              function (e) {
312                f.eval.call(f, e);
313              }
314            )(e);
315        },
316        camelCase: function (e) {
317          return e.replace($, "ms-").replace(F, t);
318        },
319        nodeName: function (e, t) {
320          return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase();
321        },
322        each: function (e, t, o) {
323          var n = 0,
324            i = e.length,
325            s = H(e);
326          if (o) {
327            if (s) for (; n < i && !1 !== t.apply(e[n], o); n++);
328            else for (n in e) if (!1 === t.apply(e[n], o)) break;
329          } else if (s) for (; n < i && !1 !== t.call(e[n], n, e[n]); n++);
330          else for (n in e) if (!1 === t.call(e[n], n, e[n])) break;
331          return e;
332        },
333        trim:
334          b && !b.call("\ufeff ")
335            ? function (e) {
336                return null == e ? "" : b.call(e);
337              }
338            : function (e) {
339                return null == e ? "" : (e + "").replace(k, "");
340              },
341        makeArray: function (e, t) {
342          var o = t || [];
343          return (
344            null != e &&
345              (H(Object(e))
346                ? ke.merge(o, "string" == typeof e ? [e] : e)
347                : d.call(o, e)),
348            o
349          );
350        },
351        inArray: function (e, t, o) {
352          var n;
353          if (t) {
354            if (h) return h.call(t, e, o);
355            for (
356              n = t.length, o = o ? (o < 0 ? Math.max(0, n + o) : o) : 0;
357              o < n;
358              o++
359            )
360              if (o in t && t[o] === e) return o;
361          }
362          return -1;
363        },
364        merge: function (e, t) {
365          var o = t.length,
366            n = e.length,
367            i = 0;
368          if ("number" == typeof o) for (; i < o; i++) e[n++] = t[i];
369          else for (; t[i] !== T; ) e[n++] = t[i++];
370          return (e.length = n), e;
371        },
372        grep: function (e, t, o) {
373          var n = [],
374            i = 0,
375            s = e.length;
376          for (o = !!o; i < s; i++) o !== !!t(e[i], i) && n.push(e[i]);
377          return n;
378        },
379        map: function (e, t, o) {
380          var n,
381            i = 0,
382            s = e.length,
383            r = [];
384          if (H(e))
385            for (; i < s; i++) null != (n = t(e[i], i, o)) && (r[r.length] = n);
386          else for (i in e) null != (n = t(e[i], i, o)) && (r[r.length] = n);
387          return g.apply([], r);
388        },
389        guid: 1,
390        proxy: function (e, t) {
391          var o, n, i;
392          return (
393            "string" == typeof t && ((i = e[t]), (t = e), (e = i)),
394            ke.isFunction(e)
395              ? ((o = p.call(arguments, 2)),
396                ((n = function () {
397                  return e.apply(t || this, o.concat(p.call(arguments)));
398                }).guid = e.guid =
399                  e.guid || ke.guid++),
400                n)
401              : T
402          );
403        },
404        access: function (e, t, o, n, i, s, r) {
405          var a = 0,
406            l = e.length,
407            c = null == o;
408          if ("object" === ke.type(o))
409            for (a in ((i = !0), o)) ke.access(e, t, a, o[a], !0, s, r);
410          else if (
411            n !== T &&
412            ((i = !0),
413            ke.isFunction(n) || (r = !0),
414            c &&
415              (t = r
416                ? (t.call(e, n), null)
417                : ((c = t),
418                  function (e, t, o) {
419                    return c.call(ke(e), o);
420                  })),
421            t)
422          )
423            for (; a < l; a++) t(e[a], o, r ? n : n.call(e[a], a, t(e[a], o)));
424          return i ? e : c ? t.call(e) : l ? t(e[0], o) : s;
425        },
426        now: function () {
427          return new Date().getTime();
428        },
429        swap: function (e, t, o, n) {
430          var i,
431            s,
432            r = {};
433          for (s in t) (r[s] = e.style[s]), (e.style[s] = t[s]);
434          for (s in ((i = o.apply(e, n || [])), t)) e.style[s] = r[s];
435          return i;
436        },
437      }),
438      (ke.ready.promise = function (e) {
439        if (!i)
440          if (((i = ke.Deferred()), "complete" === m.readyState))
441            setTimeout(ke.ready);
442          else if (m.addEventListener)
443            m.addEventListener("DOMContentLoaded", n, !1),
444              f.addEventListener("load", n, !1);
445          else {
446            m.attachEvent("onreadystatechange", n), f.attachEvent("onload", n);
447            var o = !1;
448            try {
449              o = null == f.frameElement && m.documentElement;
450            } catch (e) {}
451            o &&
452              o.doScroll &&
453              (function t() {
454                if (!ke.isReady) {
455                  try {
456                    o.doScroll("left");
457                  } catch (e) {
458                    return setTimeout(t, 50);
459                  }
460                  O(), ke.ready();
461                }
462              })();
463          }
464        return i.promise(e);
465      }),
466      ke.each(
467        "Boolean Number String Function Array Date RegExp Object Error".split(
468          " "
469        ),
470        function (e, t) {
471          l["[object " + t + "]"] = t.toLowerCase();
472        }
473      ),
474      (o = ke(m)),
475      (function (o, i) {
476        var e,
477          f,
478          x,
479          k,
480          s,
481          n,
482          m,
483          T,
484          c,
485          g,
486          C,
487          r,
488          v,
489          y,
490          a,
491          d,
492          w,
493          b = "sizzle" + -new Date(),
494          S = o.document,
495          z = 0,
496          u = 0,
497          l = se(),
498          p = se(),
499          h = se(),
500          E = !1,
501          W = function () {
502            return 0;
503          },
504          L = typeof i,
505          A = {}.hasOwnProperty,
506          t = [],
507          $ = t.pop,
508          F = t.push,
509          O = t.push,
510          H = t.slice,
511          D =
512            t.indexOf ||
513            function (e) {
514              for (var t = 0, o = this.length; t < o; t++)
515                if (this[t] === e) return t;
516              return -1;
517            },
518          I =
519            "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
520          N = "[\\x20\\t\\r\\n\\f]",
521          M = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",
522          P = M.replace("w", "w#"),
523          j =
524            "\\[" +
525            N +
526            "*(" +
527            M +
528            ")" +
529            N +
530            "*(?:([*^$|!~]?=)" +
531            N +
532            "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" +
533            P +
534            ")|)|)" +
535            N +
536            "*\\]",
537          R =
538            ":(" +
539            M +
540            ")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|" +
541            j.replace(3, 8) +
542            ")*)|.*)\\)|)",
543          B = RegExp("^" + N + "+|((?:^|[^\\\\])(?:\\\\.)*)" + N + "+$", "g"),
544          _ = RegExp("^" + N + "*," + N + "*"),
545          q = RegExp("^" + N + "*([>+~]|" + N + ")" + N + "*"),
546          U = RegExp(N + "*[+~]"),
547          X = RegExp("=" + N + "*([^\\]'\"]*)" + N + "*\\]", "g"),
548          Z = RegExp(R),
549          Y = RegExp("^" + P + "$"),
550          Q = {
551            ID: RegExp("^#(" + M + ")"),
552            CLASS: RegExp("^\\.(" + M + ")"),
553            TAG: RegExp("^(" + M.replace("w", "w*") + ")"),
554            ATTR: RegExp("^" + j),
555            PSEUDO: RegExp("^" + R),
556            CHILD: RegExp(
557              "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" +
558                N +
559                "*(even|odd|(([+-]|)(\\d*)n|)" +
560                N +
561                "*(?:([+-]|)" +
562                N +
563                "*(\\d+)|))" +
564                N +
565                "*\\)|)",
566              "i"
567            ),
568            bool: RegExp("^(?:" + I + ")$", "i"),
569            needsContext: RegExp(
570              "^" +
571                N +
572                "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" +
573                N +
574                "*((?:-\\d)?\\d*)" +
575                N +
576                "*\\)|)(?=[^-]|$)",
577              "i"
578            ),
579          },
580          V = /^[^{]+\{\s*\[native \w/,
581          G = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
582          K = /^(?:input|select|textarea|button)$/i,
583          J = /^h\d$/i,
584          ee = /'|\\/g,
585          te = RegExp("\\\\([\\da-f]{1,6}" + N + "?|(" + N + ")|.)", "ig"),
586          oe = function (e, t, o) {
587            var n = "0x" + t - 65536;
588            return n != n || o
589              ? t
590              : n < 0
591              ? String.fromCharCode(65536 + n)
592              : String.fromCharCode(55296 | (n >> 10), 56320 | (1023 & n));
593          };
594        try {
595          O.apply((t = H.call(S.childNodes)), S.childNodes),
596            t[S.childNodes.length].nodeType;
597        } catch (e) {
598          O = {
599            apply: t.length
600              ? function (e, t) {
601                  F.apply(e, H.call(t));
602                }
603              : function (e, t) {
604                  for (var o = e.length, n = 0; (e[o++] = t[n++]); );
605                  e.length = o - 1;
606                },
607          };
608        }
609        function ne(e, t, o, n) {
610          var i, s, r, a, l, c, d, u, p, h;
611          if (
612            ((t ? t.ownerDocument || t : S) !== C && g(t),
613            (o = o || []),
614            !e || "string" != typeof e)
615          )
616            return o;
617          if (1 !== (a = (t = t || C).nodeType) && 9 !== a) return [];
618          if (v && !n) {
619            if ((i = G.exec(e)))
620              if ((r = i[1])) {
621                if (9 === a) {
622                  if (!(s = t.getElementById(r)) || !s.parentNode) return o;
623                  if (s.id === r) return o.push(s), o;
624                } else if (
625                  t.ownerDocument &&
626                  (s = t.ownerDocument.getElementById(r)) &&
627                  w(t, s) &&
628                  s.id === r
629                )
630                  return o.push(s), o;
631              } else {
632                if (i[2]) return O.apply(o, t.getElementsByTagName(e)), o;
633                if (
634                  (r = i[3]) &&
635                  f.getElementsByClassName &&
636                  t.getElementsByClassName
637                )
638                  return O.apply(o, t.getElementsByClassName(r)), o;
639              }
640            if (f.qsa && (!y || !y.test(e))) {
641              if (
642                ((u = d = b),
643                (p = t),
644                (h = 9 === a && e),
645                1 === a && "object" !== t.nodeName.toLowerCase())
646              ) {
647                for (
648                  c = fe(e),
649                    (d = t.getAttribute("id"))
650                      ? (u = d.replace(ee, "\\$&"))
651                      : t.setAttribute("id", u),
652                    u = "[id='" + u + "'] ",
653                    l = c.length;
654                  l--;
655
656                )
657                  c[l] = u + me(c[l]);
658                (p = (U.test(e) && t.parentNode) || t), (h = c.join(","));
659              }
660              if (h)
661                try {
662                  return O.apply(o, p.querySelectorAll(h)), o;
663                } catch (e) {
664                } finally {
665                  d || t.removeAttribute("id");
666                }
667            }
668          }
669          return (function (e, t, o, n) {
670            var i,
671              s,
672              r,
673              a,
674              l,
675              c = fe(e);
676            if (!n && 1 === c.length) {
677              if (
678                2 < (s = c[0] = c[0].slice(0)).length &&
679                "ID" === (r = s[0]).type &&
680                f.getById &&
681                9 === t.nodeType &&
682                v &&
683                k.relative[s[1].type]
684              ) {
685                if (
686                  !(t = (k.find.ID(r.matches[0].replace(te, oe), t) || [])[0])
687                )
688                  return o;
689                e = e.slice(s.shift().value.length);
690              }
691              for (
692                i = Q.needsContext.test(e) ? 0 : s.length;
693                i-- && ((r = s[i]), !k.relative[(a = r.type)]);
694
695              )
696                if (
697                  (l = k.find[a]) &&
698                  (n = l(
699                    r.matches[0].replace(te, oe),
700                    (U.test(s[0].type) && t.parentNode) || t
701                  ))
702                ) {
703                  if ((s.splice(i, 1), !(e = n.length && me(s))))
704                    return O.apply(o, n), o;
705                  break;
706                }
707            }
708            return m(e, c)(n, t, !v, o, U.test(e)), o;
709          })(e.replace(B, "$1"), t, o, n);
710        }
711        function ie(e) {
712          return V.test(e + "");
713        }
714        function se() {
715          var o = [];
716          function n(e, t) {
717            return (
718              o.push((e += " ")) > k.cacheLength && delete n[o.shift()],
719              (n[e] = t)
720            );
721          }
722          return n;
723        }
724        function re(e) {
725          return (e[b] = !0), e;
726        }
727        function ae(e) {
728          var t = C.createElement("div");
729          try {
730            return !!e(t);
731          } catch (e) {
732            return !1;
733          } finally {
734            t.parentNode && t.parentNode.removeChild(t), (t = null);
735          }
736        }
737        function le(e, t, o) {
738          for (var n, i = (e = e.split("|")).length, s = o ? null : t; i--; )
739            ((n = k.attrHandle[e[i]]) && n !== t) || (k.attrHandle[e[i]] = s);
740        }
741        function ce(e, t) {
742          var o = e.getAttributeNode(t);
743          return o && o.specified
744            ? o.value
745            : !0 === e[t]
746            ? t.toLowerCase()
747            : null;
748        }
749        function de(e, t) {
750          return e.getAttribute(t, "type" === t.toLowerCase() ? 1 : 2);
751        }
752        function ue(e) {
753          return "input" === e.nodeName.toLowerCase() ? e.defaultValue : i;
754        }
755        function pe(e, t) {
756          var o = t && e,
757            n =
758              o &&
759              1 === e.nodeType &&
760              1 === t.nodeType &&
761              (~t.sourceIndex || 1 << 31) - (~e.sourceIndex || 1 << 31);
762          if (n) return n;
763          if (o) for (; (o = o.nextSibling); ) if (o === t) return -1;
764          return e ? 1 : -1;
765        }
766        function he(r) {
767          return re(function (s) {
768            return (
769              (s = +s),
770              re(function (e, t) {
771                for (var o, n = r([], e.length, s), i = n.length; i--; )
772                  e[(o = n[i])] && (e[o] = !(t[o] = e[o]));
773              })
774            );
775          });
776        }
777        for (e in ((n = ne.isXML =
778          function (e) {
779            var t = e && (e.ownerDocument || e).documentElement;
780            return !!t && "HTML" !== t.nodeName;
781          }),
782        (f = ne.support = {}),
783        (g = ne.setDocument =
784          function (e) {
785            var l = e ? e.ownerDocument || e : S,
786              t = l.parentWindow;
787            return l !== C && 9 === l.nodeType && l.documentElement
788              ? ((r = (C = l).documentElement),
789                (v = !n(l)),
790                t &&
791                  t.frameElement &&
792                  t.attachEvent("onbeforeunload", function () {
793                    g();
794                  }),
795                (f.attributes = ae(function (e) {
796                  return (
797                    (e.innerHTML = "<a href='#'></a>"),
798                    le(
799                      "type|href|height|width",
800                      de,
801                      "#" === e.firstChild.getAttribute("href")
802                    ),
803                    le(I, ce, null == e.getAttribute("disabled")),
804                    (e.className = "i"),
805                    !e.getAttribute("className")
806                  );
807                })),
808                (f.input = ae(function (e) {
809                  return (
810                    (e.innerHTML = "<input>"),
811                    e.firstChild.setAttribute("value", ""),
812                    "" === e.firstChild.getAttribute("value")
813                  );
814                })),
815                le("value", ue, f.attributes && f.input),
816                (f.getElementsByTagName = ae(function (e) {
817                  return (
818                    e.appendChild(l.createComment("")),
819                    !e.getElementsByTagName("*").length
820                  );
821                })),
822                (f.getElementsByClassName = ae(function (e) {
823                  return (
824                    (e.innerHTML =
825                      "<div class='a'></div><div class='a i'></div>"),
826                    (e.firstChild.className = "i"),
827                    2 === e.getElementsByClassName("i").length
828                  );
829                })),
830                (f.getById = ae(function (e) {
831                  return (
832                    (r.appendChild(e).id = b),
833                    !l.getElementsByName || !l.getElementsByName(b).length
834                  );
835                })),
836                f.getById
837                  ? ((k.find.ID = function (e, t) {
838                      if (typeof t.getElementById != L && v) {
839                        var o = t.getElementById(e);
840                        return o && o.parentNode ? [o] : [];
841                      }
842                    }),
843                    (k.filter.ID = function (e) {
844                      var t = e.replace(te, oe);
845                      return function (e) {
846                        return e.getAttribute("id") === t;
847                      };
848                    }))
849                  : (delete k.find.ID,
850                    (k.filter.ID = function (e) {
851                      var o = e.replace(te, oe);
852                      return function (e) {
853                        var t =
854                          typeof e.getAttributeNode != L &&
855                          e.getAttributeNode("id");
856                        return t && t.value === o;
857                      };
858                    })),
859                (k.find.TAG = f.getElementsByTagName
860                  ? function (e, t) {
861                      return typeof t.getElementsByTagName != L
862                        ? t.getElementsByTagName(e)
863                        : i;
864                    }
865                  : function (e, t) {
866                      var o,
867                        n = [],
868                        i = 0,
869                        s = t.getElementsByTagName(e);
870                      if ("*" !== e) return s;
871                      for (; (o = s[i++]); ) 1 === o.nodeType && n.push(o);
872                      return n;
873                    }),
874                (k.find.CLASS =
875                  f.getElementsByClassName &&
876                  function (e, t) {
877                    return typeof t.getElementsByClassName != L && v
878                      ? t.getElementsByClassName(e)
879                      : i;
880                  }),
881                (a = []),
882                (y = []),
883                (f.qsa = ie(l.querySelectorAll)) &&
884                  (ae(function (e) {
885                    (e.innerHTML =
886                      "<select><option selected=''></option></select>"),
887                      e.querySelectorAll("[selected]").length ||
888                        y.push("\\[" + N + "*(?:value|" + I + ")"),
889                      e.querySelectorAll(":checked").length ||
890                        y.push(":checked");
891                  }),
892                  ae(function (e) {
893                    var t = l.createElement("input");
894                    t.setAttribute("type", "hidden"),
895                      e.appendChild(t).setAttribute("t", ""),
896                      e.querySelectorAll("[t^='']").length &&
897                        y.push("[*^$]=" + N + "*(?:''|\"\")"),
898                      e.querySelectorAll(":enabled").length ||
899                        y.push(":enabled", ":disabled"),
900                      e.querySelectorAll("*,:x"),
901                      y.push(",.*:");
902                  })),
903                (f.matchesSelector = ie(
904                  (d =
905                    r.webkitMatchesSelector ||
906                    r.mozMatchesSelector ||
907                    r.oMatchesSelector ||
908                    r.msMatchesSelector)
909                )) &&
910                  ae(function (e) {
911                    (f.disconnectedMatch = d.call(e, "div")),
912                      d.call(e, "[s!='']:x"),
913                      a.push("!=", R);
914                  }),
915                (y = y.length && RegExp(y.join("|"))),
916                (a = a.length && RegExp(a.join("|"))),
917                (w =
918                  ie(r.contains) || r.compareDocumentPosition
919                    ? function (e, t) {
920                        var o = 9 === e.nodeType ? e.documentElement : e,
921                          n = t && t.parentNode;
922                        return (
923                          e === n ||
924                          !(
925                            !n ||
926                            1 !== n.nodeType ||
927                            !(o.contains
928                              ? o.contains(n)
929                              : e.compareDocumentPosition &&
930                                16 & e.compareDocumentPosition(n))
931                          )
932                        );
933                      }
934                    : function (e, t) {
935                        if (t)
936                          for (; (t = t.parentNode); ) if (t === e) return !0;
937                        return !1;
938                      }),
939                (f.sortDetached = ae(function (e) {
940                  return 1 & e.compareDocumentPosition(l.createElement("div"));
941                })),
942                (W = r.compareDocumentPosition
943                  ? function (e, t) {
944                      if (e === t) return (E = !0), 0;
945                      var o =
946                        t.compareDocumentPosition &&
947                        e.compareDocumentPosition &&
948                        e.compareDocumentPosition(t);
949                      return o
950                        ? 1 & o ||
951                          (!f.sortDetached &&
952                            t.compareDocumentPosition(e) === o)
953                          ? e === l || w(S, e)
954                            ? -1
955                            : t === l || w(S, t)
956                            ? 1
957                            : c
958                            ? D.call(c, e) - D.call(c, t)
959                            : 0
960                          : 4 & o
961                          ? -1
962                          : 1
963                        : e.compareDocumentPosition
964                        ? -1
965                        : 1;
966                    }
967                  : function (e, t) {
968                      var o,
969                        n = 0,
970                        i = e.parentNode,
971                        s = t.parentNode,
972                        r = [e],
973                        a = [t];
974                      if (e === t) return (E = !0), 0;
975                      if (!i || !s)
976                        return e === l
977                          ? -1
978                          : t === l
979                          ? 1
980                          : i
981                          ? -1
982                          : s
983                          ? 1
984                          : c
985                          ? D.call(c, e) - D.call(c, t)
986                          : 0;
987                      if (i === s) return pe(e, t);
988                      for (o = e; (o = o.parentNode); ) r.unshift(o);
989                      for (o = t; (o = o.parentNode); ) a.unshift(o);
990                      for (; r[n] === a[n]; ) n++;
991                      return n
992                        ? pe(r[n], a[n])
993                        : r[n] === S
994                        ? -1
995                        : a[n] === S
996                        ? 1
997                        : 0;
998                    }),
999                l)
1000              : C;
1001          }),
1002        (ne.matches = function (e, t) {
1003          return ne(e, null, null, t);
1004        }),
1005        (ne.matchesSelector = function (e, t) {
1006          if (
1007            ((e.ownerDocument || e) !== C && g(e),
1008            (t = t.replace(X, "='$1']")),
1009            !(!f.matchesSelector || !v || (a && a.test(t)) || (y && y.test(t))))
1010          )
1011            try {
1012              var o = d.call(e, t);
1013              if (
1014                o ||
1015                f.disconnectedMatch ||
1016                (e.document && 11 !== e.document.nodeType)
1017              )
1018                return o;
1019            } catch (e) {}
1020          return 0 < ne(t, C, null, [e]).length;
1021        }),
1022        (ne.contains = function (e, t) {
1023          return (e.ownerDocument || e) !== C && g(e), w(e, t);
1024        }),
1025        (ne.attr = function (e, t) {
1026          (e.ownerDocument || e) !== C && g(e);
1027          var o = k.attrHandle[t.toLowerCase()],
1028            n = o && A.call(k.attrHandle, t.toLowerCase()) ? o(e, t, !v) : i;
1029          return n === i
1030            ? f.attributes || !v
1031              ? e.getAttribute(t)
1032              : (n = e.getAttributeNode(t)) && n.specified
1033              ? n.value
1034              : null
1035            : n;
1036        }),
1037        (ne.error = function (e) {
1038          throw Error("Syntax error, unrecognized expression: " + e);
1039        }),
1040        (ne.uniqueSort = function (e) {
1041          var t,
1042            o = [],
1043            n = 0,
1044            i = 0;
1045          if (
1046            ((E = !f.detectDuplicates),
1047            (c = !f.sortStable && e.slice(0)),
1048            e.sort(W),
1049            E)
1050          ) {
1051            for (; (t = e[i++]); ) t === e[i] && (n = o.push(i));
1052            for (; n--;
1052 ) e.splice(o[n], 1);
1053          }
1054          return e;
1055        }),
1056        (s = ne.getText =
1057          function (e) {
1058            var t,
1059              o = "",
1060              n = 0,
1061              i = e.nodeType;
1062            if (i) {
1063              if (1 === i || 9 === i || 11 === i) {
1064                if ("string" == typeof e.textContent) return e.textContent;
1065                for (e = e.firstChild; e; e = e.nextSibling) o += s(e);
1066              } else if (3 === i || 4 === i) return e.nodeValue;
1067            } else for (; (t = e[n]); n++) o += s(t);
1068            return o;
1069          }),
1070        (k = ne.selectors =
1071          {
1072            cacheLength: 50,
1073            createPseudo: re,
1074            match: Q,
1075            attrHandle: {},
1076            find: {},
1077            relative: {
1078              ">": { dir: "parentNode", first: !0 },
1079              " ": { dir: "parentNode" },
1080              "+": { dir: "previousSibling", first: !0 },
1081              "~": { dir: "previousSibling" },
1082            },
1083            preFilter: {
1084              ATTR: function (e) {
1085                return (
1086                  (e[1] = e[1].replace(te, oe)),
1087                  (e[3] = (e[4] || e[5] || "").replace(te, oe)),
1088                  "~=" === e[2] && (e[3] = " " + e[3] + " "),
1089                  e.slice(0, 4)
1090                );
1091              },
1092              CHILD: function (e) {
1093                return (
1094                  (e[1] = e[1].toLowerCase()),
1095                  "nth" === e[1].slice(0, 3)
1096                    ? (e[3] || ne.error(e[0]),
1097                      (e[4] = +(e[4]
1098                        ? e[5] + (e[6] || 1)
1099                        : 2 * ("even" === e[3] || "odd" === e[3]))),
1100                      (e[5] = +(e[7] + e[8] || "odd" === e[3])))
1101                    : e[3] && ne.error(e[0]),
1102                  e
1103                );
1104              },
1105              PSEUDO: function (e) {
1106                var t,
1107                  o = !e[5] && e[2];
1108                return Q.CHILD.test(e[0])
1109                  ? null
1110                  : (e[3] && e[4] !== i
1111                      ? (e[2] = e[4])
1112                      : o &&
1113                        Z.test(o) &&
1114                        (t = fe(o, !0)) &&
1115                        (t = o.indexOf(")", o.length - t) - o.length) &&
1116                        ((e[0] = e[0].slice(0, t)), (e[2] = o.slice(0, t))),
1117                    e.slice(0, 3));
1118              },
1119            },
1120            filter: {
1121              TAG: function (e) {
1122                var t = e.replace(te, oe).toLowerCase();
1123                return "*" === e
1124                  ? function () {
1125                      return !0;
1126                    }
1127                  : function (e) {
1128                      return e.nodeName && e.nodeName.toLowerCase() === t;
1129                    };
1130              },
1131              CLASS: function (e) {
1132                var t = l[e + " "];
1133                return (
1134                  t ||
1135                  ((t = RegExp("(^|" + N + ")" + e + "(" + N + "|$)")) &&
1136                    l(e, function (e) {
1137                      return t.test(
1138                        ("string" == typeof e.className && e.className) ||
1139                          (typeof e.getAttribute != L &&
1140                            e.getAttribute("class")) ||
1141                          ""
1142                      );
1143                    }))
1144                );
1145              },
1146              ATTR: function (o, n, i) {
1147                return function (e) {
1148                  var t = ne.attr(e, o);
1149                  return null == t
1150                    ? "!=" === n
1151                    : !n ||
1152                        ((t += ""),
1153                        "=" === n
1154                          ? t === i
1155                          : "!=" === n
1156                          ? t !== i
1157                          : "^=" === n
1158                          ? i && 0 === t.indexOf(i)
1159                          : "*=" === n
1160                          ? i && -1 < t.indexOf(i)
1161                          : "$=" === n
1162                          ? i && t.slice(-i.length) === i
1163                          : "~=" === n
1164                          ? -1 < (" " + t + " ").indexOf(i)
1165                          : "|=" === n &&
1166                            (t === i || t.slice(0, i.length + 1) === i + "-"));
1167                };
1168              },
1169              CHILD: function (h, e, t, f, m) {
1170                var g = "nth" !== h.slice(0, 3),
1171                  v = "last" !== h.slice(-4),
1172                  y = "of-type" === e;
1173                return 1 === f && 0 === m
1174                  ? function (e) {
1175                      return !!e.parentNode;
1176                    }
1177                  : function (e, t, o) {
1178                      var n,
1179                        i,
1180                        s,
1181                        r,
1182                        a,
1183                        l,
1184                        c = g != v ? "nextSibling" : "previousSibling",
1185                        d = e.parentNode,
1186                        u = y && e.nodeName.toLowerCase(),
1187                        p = !o && !y;
1188                      if (d) {
1189                        if (g) {
1190                          for (; c; ) {
1191                            for (s = e; (s = s[c]); )
1192                              if (
1193                                y
1194                                  ? s.nodeName.toLowerCase() === u
1195                                  : 1 === s.nodeType
1196                              )
1197                                return !1;
1198                            l = c = "only" === h && !l && "nextSibling";
1199                          }
1200                          return !0;
1201                        }
1202                        if (((l = [v ? d.firstChild : d.lastChild]), v && p)) {
1203                          for (
1204                            a =
1205                              (n = (i = d[b] || (d[b] = {}))[h] || [])[0] ===
1206                                z && n[1],
1207                              r = n[0] === z && n[2],
1208                              s = a && d.childNodes[a];
1209                            (s = (++a && s && s[c]) || (r = a = 0) || l.pop());
1210
1211                          )
1212                            if (1 === s.nodeType && ++r && s === e) {
1213                              i[h] = [z, a, r];
1214                              break;
1215                            }
1216                        } else if (
1217                          p &&
1218                          (n = (e[b] || (e[b] = {}))[h]) &&
1219                          n[0] === z
1220                        )
1221                          r = n[1];
1222                        else
1223                          for (
1224                            ;
1225                            (s =
1226                              (++a && s && s[c]) || (r = a = 0) || l.pop()) &&
1227                            ((y
1228                              ? s.nodeName.toLowerCase() !== u
1229                              : 1 !== s.nodeType) ||
1230                              !++r ||
1231                              (p && ((s[b] || (s[b] = {}))[h] = [z, r]),
1232                              s !== e));
1233
1234                          );
1235                        return (r -= m) === f || (0 == r % f && 0 <= r / f);
1236                      }
1237                    };
1238              },
1239              PSEUDO: function (e, s) {
1240                var t,
1241                  r =
1242                    k.pseudos[e] ||
1243                    k.setFilters[e.toLowerCase()] ||
1244                    ne.error("unsupported pseudo: " + e);
1245                return r[b]
1246                  ? r(s)
1247                  : 1 < r.length
1248                  ? ((t = [e, e, "", s]),
1249                    k.setFilters.hasOwnProperty(e.toLowerCase())
1250                      ? re(function (e, t) {
1251                          for (var o, n = r(e, s), i = n.length; i--; )
1252                            e[(o = D.call(e, n[i]))] = !(t[o] = n[i]);
1253                        })
1254                      : function (e) {
1255                          return r(e, 0, t);
1256                        })
1257                  : r;
1258              },
1259            },
1260            pseudos: {
1261              not: re(function (e) {
1262                var n = [],
1263                  i = [],
1264                  a = m(e.replace(B, "$1"));
1265                return a[b]
1266                  ? re(function (e, t, o, n) {
1267                      for (var i, s = a(e, null, n, []), r = e.length; r--; )
1268                        (i = s[r]) && (e[r] = !(t[r] = i));
1269                    })
1270                  : function (e, t, o) {
1271                      return (n[0] = e), a(n, null, o, i), !i.pop();
1272                    };
1273              }),
1274              has: re(function (t) {
1275                return function (e) {
1276                  return 0 < ne(t, e).length;
1277                };
1278              }),
1279              contains: re(function (t) {
1280                return function (e) {
1281                  return -1 < (e.textContent || e.innerText || s(e)).indexOf(t);
1282                };
1283              }),
1284              lang: re(function (o) {
1285                return (
1286                  Y.test(o || "") || ne.error("unsupported lang: " + o),
1287                  (o = o.replace(te, oe).toLowerCase()),
1288                  function (e) {
1289                    var t;
1290                    do {
1291                      if (
1292                        (t = v
1293                          ? e.lang
1294                          : e.getAttribute("xml:lang") ||
1295                            e.getAttribute("lang"))
1296                      )
1297                        return (
1298                          (t = t.toLowerCase()) === o ||
1299                          0 === t.indexOf(o + "-")
1300                        );
1301                    } while ((e = e.parentNode) && 1 === e.nodeType);
1302                    return !1;
1303                  }
1304                );
1305              }),
1306              target: function (e) {
1307                var t = o.location && o.location.hash;
1308                return t && t.slice(1) === e.id;
1309              },
1310              root: function (e) {
1311                return e === r;
1312              },
1313              focus: function (e) {
1314                return (
1315                  e === C.activeElement &&
1316                  (!C.hasFocus || C.hasFocus()) &&
1317                  !!(e.type || e.href || ~e.tabIndex)
1318                );
1319              },
1320              enabled: function (e) {
1321                return !1 === e.disabled;
1322              },
1323              disabled: function (e) {
1324                return !0 === e.disabled;
1325              },
1326              checked: function (e) {
1327                var t = e.nodeName.toLowerCase();
1328                return (
1329                  ("input" === t && !!e.checked) ||
1330                  ("option" === t && !!e.selected)
1331                );
1332              },
1333              selected: function (e) {
1334                return (
1335                  e.parentNode && e.parentNode.selectedIndex, !0 === e.selected
1336                );
1337              },
1338              empty: function (e) {
1339                for (e = e.firstChild; e; e = e.nextSibling)
1340                  if ("@" < e.nodeName || 3 === e.nodeType || 4 === e.nodeType)
1341                    return !1;
1342                return !0;
1343              },
1344              parent: function (e) {
1345                return !k.pseudos.empty(e);
1346              },
1347              header: function (e) {
1348                return J.test(e.nodeName);
1349              },
1350              input: function (e) {
1351                return K.test(e.nodeName);
1352              },
1353              button: function (e) {
1354                var t = e.nodeName.toLowerCase();
1355                return ("input" === t && "button" === e.type) || "button" === t;
1356              },
1357              text: function (e) {
1358                var t;
1359                return (
1360                  "input" === e.nodeName.toLowerCase() &&
1361                  "text" === e.type &&
1362                  (null == (t = e.getAttribute("type")) ||
1363                    t.toLowerCase() === e.type)
1364                );
1365              },
1366              first: he(function () {
1367                return [0];
1368              }),
1369              last: he(function (e, t) {
1370                return [t - 1];
1371              }),
1372              eq: he(function (e, t, o) {
1373                return [o < 0 ? o + t : o];
1374              }),
1375              even: he(function (e, t) {
1376                for (var o = 0; o < t; o += 2) e.push(o);
1377                return e;
1378              }),
1379              odd: he(function (e, t) {
1380                for (var o = 1; o < t; o += 2) e.push(o);
1381                return e;
1382              }),
1383              lt: he(function (e, t, o) {
1384                for (var n = o < 0 ? o + t : o; 0 <= --n; ) e.push(n);
1385                return e;
1386              }),
1387              gt: he(function (e, t, o) {
1388                for (var n = o < 0 ? o + t : o; t > ++n; ) e.push(n);
1389                return e;
1390              }),
1391            },
1392          }),
1393        { radio: !0, checkbox: !0, file: !0, password: !0, image: !0 }))
1394          k.pseudos[e] = (function (t) {
1395            return function (e) {
1396              return "input" === e.nodeName.toLowerCase() && e.type === t;
1397            };
1398          })(e);
1399        for (e in { submit: !0, reset: !0 })
1400          k.pseudos[e] = (function (o) {
1401            return function (e) {
1402              var t = e.nodeName.toLowerCase();
1403              return ("input" === t || "button" === t) && e.type === o;
1404            };
1405          })(e);
1406        function fe(e, t) {
1407          var o,
1408            n,
1409            i,
1410            s,
1411            r,
1412            a,
1413            l,
1414            c = p[e + " "];
1415          if (c) return t ? 0 : c.slice(0);
1416          for (r = e, a = [], l = k.preFilter; r; ) {
1417            for (s in ((o && !(n = _.exec(r))) ||
1418              (n && (r = r.slice(n[0].length) || r), a.push((i = []))),
1419            (o = !1),
1420            (n = q.exec(r)) &&
1421              ((o = n.shift()),
1422              i.push({ value: o, type: n[0].replace(B, " ") }),
1423              (r = r.slice(o.length))),
1424            k.filter))
1425              !(n = Q[s].exec(r)) ||
1426                (l[s] && !(n = l[s](n))) ||
1427                ((o = n.shift()),
1428                i.push({ value: o, type: s, matches: n }),
1429                (r = r.slice(o.length)));
1430            if (!o) break;
1431          }
1432          return t ? r.length : r ? ne.error(e) : p(e, a).slice(0);
1433        }
1434        function me(e) {
1435          for (var t = 0, o = e.length, n = ""; t < o; t++) n += e[t].value;
1436          return n;
1437        }
1438        function ge(a, e, t) {
1439          var l = e.dir,
1440            c = t && "parentNode" === l,
1441            d = u++;
1442          return e.first
1443            ? function (e, t, o) {
1444                for (; (e = e[l]); )
1445                  if (1 === e.nodeType || c) return a(e, t, o);
1446              }
1447            : function (e, t, o) {
1448                var n,
1449                  i,
1450                  s,
1451                  r = z + " " + d;
1452                if (o) {
1453                  for (; (e = e[l]); )
1454                    if ((1 === e.nodeType || c) && a(e, t, o)) return !0;
1455                } else
1456                  for (; (e = e[l]); )
1457                    if (1 === e.nodeType || c)
1458                      if ((i = (s = e[b] || (e[b] = {}))[l]) && i[0] === r) {
1459                        if (!0 === (n = i[1]) || n === x) return !0 === n;
1460                      } else if (
1461                        (((i = s[l] = [r])[1] = a(e, t, o) || x), !0 === i[1])
1462                      )
1463                        return !0;
1464              };
1465        }
1466        function ve(i) {
1467          return 1 < i.length
1468            ? function (e, t, o) {
1469                for (var n = i.length; n--; ) if (!i[n](e, t, o)) return !1;
1470                return !0;
1471              }
1472            : i[0];
1473        }
1474        function ye(e, t, o, n, i) {
1475          for (var s, r = [], a = 0, l = e.length, c = null != t; a < l; a++)
1476            !(s = e[a]) || (o && !o(s, n, i)) || (r.push(s), c && t.push(a));
1477          return r;
1478        }
1479        function we(h, f, m, g, v, e) {
1480          return (
1481            g && !g[b] && (g = we(g)),
1482            v && !v[b] && (v = we(v, e)),
1483            re(function (e, t, o, n) {
1484              var i,
1485                s,
1486                r,
1487                a = [],
1488                l = [],
1489                c = t.length,
1490                d =
1491                  e ||
1492                  (function (e, t, o) {
1493                    for (var n = 0, i = t.length; n < i; n++) ne(e, t[n], o);
1494                    return o;
1495                  })(f || "*", o.nodeType ? [o] : o, []),
1496                u = !h || (!e && f) ? d : ye(d, a, h, o, n),
1497                p = m ? (v || (e ? h : c || g) ? [] : t) : u;
1498              if ((m && m(u, p, o, n), g))
1499                for (i = ye(p, l), g(i, [], o, n), s = i.length; s--; )
1500                  (r = i[s]) && (p[l[s]] = !(u[l[s]] = r));
1501              if (e) {
1502                if (v || h) {
1503                  if (v) {
1504                    for (i = [], s = p.length; s--; )
1505                      (r = p[s]) && i.push((u[s] = r));
1506                    v(null, (p = []), i, n);
1507                  }
1508                  for (s = p.length; s--; )
1509                    (r = p[s]) &&
1510                      -1 < (i = v ? D.call(e, r) : a[s]) &&
1511                      (e[i] = !(t[i] = r));
1512                }
1513              } else (p = ye(p === t ? p.splice(c, p.length) : p)), v ? v(null, t, p, n) : O.apply(t, p);
1514            })
1515          );
1516        }
1517        function be(g, v) {
1518          function e(e, t, o, n, i) {
1519            var s,
1520              r,
1521              a,
1522              l = [],
1523              c = 0,
1524              d = "0",
1525              u = e && [],
1526              p = null != i,
1527              h = T,
1528              f = e || (b && k.find.TAG("*", (i && t.parentNode) || t)),
1529              m = (z += null == h ? 1 : Math.random() || 0.1);
1530            for (p && ((T = t !== C && t), (x = y)); null != (s = f[d]); d++) {
1531              if (b && s) {
1532                for (r = 0; (a = g[r++]); )
1533                  if (a(s, t, o)) {
1534                    n.push(s);
1535                    break;
1536                  }
1537                p && ((z = m), (x = ++y));
1538              }
1539              w && ((s = !a && s) && c--, e && u.push(s));
1540            }
1541            if (((c += d), w && d !== c)) {
1542              for (r = 0; (a = v[r++]); ) a(u, l, t, o);
1543              if (e) {
1544                if (0 < c) for (; d--; ) u[d] || l[d] || (l[d] = $.call(n));
1545                l = ye(l);
1546              }
1547              O.apply(n, l),
1548                p && !e && 0 < l.length && 1 < c + v.length && ne.uniqueSort(n);
1549            }
1550            return p && ((z = m), (T = h)), u;
1551          }
1552          var y = 0,
1553            w = 0 < v.length,
1554            b = 0 < g.length;
1555          return w ? re(e) : e;
1556        }
1557        function xe() {}
1558        (m = ne.compile =
1559          function (e, t) {
1560            var o,
1561              n = [],
1562              i = [],
1563              s = h[e + " "];
1564            if (!s) {
1565              for (o = (t = t || fe(e)).length; o--; )
1566                (s = (function e(t) {
1567                  for (
1568                    var n,
1569                      o,
1570                      i,
1571                      s = t.length,
1572                      r = k.relative[t[0].type],
1573                      a = r || k.relative[" "],
1574                      l = r ? 1 : 0,
1575                      c = ge(
1576                        function (e) {
1577                          return e === n;
1578                        },
1579                        a,
1580                        !0
1581                      ),
1582                      d = ge(
1583                        function (e) {
1584                          return -1 < D.call(n, e);
1585                        },
1586                        a,
1587                        !0
1588                      ),
1589                      u = [
1590                        function (e, t, o) {
1591                          return (
1592                            (!r && (o || t !== T)) ||
1593                            ((n = t).nodeType ? c : d)(e, t, o)
1594                          );
1595                        },
1596                      ];
1597                    l < s;
1598                    l++
1599                  )
1600                    if ((o = k.relative[t[l].type])) u = [ge(ve(u), o)];
1601                    else {
1602                      if (
1603                        (o = k.filter[t[l].type].apply(null, t[l].matches))[b]
1604                      ) {
1605                        for (i = ++l; i < s && !k.relative[t[i].type]; i++);
1606                        return we(
1607                          1 < l && ve(u),
1608                          1 < l &&
1609                            me(
1610                              t
1611                                .slice(0, l - 1)
1612                                .concat({
1613                                  value: " " === t[l - 2].type ? "*" : "",
1614                                })
1615                            ).replace(B, "$1"),
1616                          o,
1617                          l < i && e(t.slice(l, i)),
1618                          i < s && e((t = t.slice(i))),
1619                          i < s && me(t)
1620                        );
1621                      }
1622                      u.push(o);
1623                    }
1624                  return ve(u);
1625                })(t[o]))[b]
1626                  ? n.push(s)
1627                  : i.push(s);
1628              s = h(e, be(i, n));
1629            }
1630            return s;
1631          }),
1632          (k.pseudos.nth = k.pseudos.eq),
1633          (xe.prototype = k.filters = k.pseudos),
1634          (k.setFilters = new xe()),
1635          (f.sortStable = b.split("").sort(W).join("") === b),
1636          g(),
1637          [0, 0].sort(W),
1638          (f.detectDuplicates = E),
1639          (ke.find = ne),
1640          (ke.expr = ne.selectors),
1641          (ke.expr[":"] = ke.expr.pseudos),
1642          (ke.unique = ne.uniqueSort),
1643          (ke.text = ne.getText),
1644          (ke.isXMLDoc = ne.isXML),
1645          (ke.contains = ne.contains);
1646      })(f);
1647    var D = {};
1648    (ke.Callbacks = function (i) {
1649      var e, o;
1650      i =
1651        "string" == typeof i
1652          ? D[i] ||
1653            ((o = D[(e = i)] = {}),
1654            ke.each(e.match(C) || [], function (e, t) {
1655              o[t] = !0;
1656            }),
1657            o)
1658          : ke.extend({}, i);
1659      var n,
1660        t,
1661        s,
1662        r,
1663        a,
1664        l,
1665        c = [],
1666        d = !i.once && [],
1667        u = function (e) {
1668          for (
1669            t = i.memory && e, s = !0, a = l || 0, l = 0, r = c.length, n = !0;
1670            c && a < r;
1671            a++
1672          )
1673            if (!1 === c[a].apply(e[0], e[1]) && i.stopOnFalse) {
1674              t = !1;
1675              break;
1676            }
1677          (n = !1),
1678            c && (d ? d.length && u(d.shift()) : t ? (c = []) : p.disable());
1679        },
1680        p = {
1681          add: function () {
1682            var e;
1683            return (
1684              c &&
1685                ((e = c.length),
1686                (function n(e) {
1687                  ke.each(e, function (e, t) {
1688                    var o = ke.type(t);
1689                    "function" === o
1690                      ? (i.unique && p.has(t)) || c.push(t)
1691                      : t && t.length && "string" !== o && n(t);
1692                  });
1693                })(arguments),
1694                n ? (r = c.length) : t && ((l = e), u(t))),
1695              this
1696            );
1697          },
1698          remove: function () {
1699            return (
1700              c &&
1701                ke.each(arguments, function (e, t) {
1702                  for (var o; -1 < (o = ke.inArray(t, c, o)); )
1703                    c.splice(o, 1), n && (o <= r && r--, o <= a && a--);
1704                }),
1705              this
1706            );
1707          },
1708          has: function (e) {
1709            return e ? -1 < ke.inArray(e, c) : !(!c || !c.length);
1710          },
1711          empty: function () {
1712            return (c = []), (r = 0), this;
1713          },
1714          disable: function () {
1715            return (c = d = t = T), this;
1716          },
1717          disabled: function () {
1718            return !c;
1719          },
1720          lock: function () {
1721            return (d = T), t || p.disable(), this;
1722          },
1723          locked: function () {
1724            return !d;
1725          },
1726          fireWith: function (e, t) {
1727            return (
1728              (t = [e, (t = t || []).slice ? t.slice() : t]),
1729              !c || (s && !d) || (n ? d.push(t) : u(t)),
1730              this
1731            );
1732          },
1733          fire: function () {
1734            return p.fireWith(this, arguments), this;
1735          },
1736          fired: function () {
1737            return !!s;
1738          },
1739        };
1740      return p;
1741    }),
1742      ke.extend({
1743        Deferred: function (e) {
1744          var r = [
1745              ["resolve", "done", ke.Callbacks("once memory"), "resolved"],
1746              ["reject", "fail", ke.Callbacks("once memory"), "rejected"],
1747              ["notify", "progress", ke.Callbacks("memory")],
1748            ],
1749            i = "pending",
1750            a = {
1751              state: function () {
1752                return i;
1753              },
1754              always: function () {
1755                return l.done(arguments).fail(arguments), this;
1756              },
1757              then: function () {
1758                var s = arguments;
1759                return ke
1760                  .Deferred(function (i) {
1761                    ke.each(r, function (e, t) {
1762                      var o = t[0],
1763                        n = ke.isFunction(s[e]) && s[e];
1764                      l[t[1]](function () {
1765                        var e = n && n.apply(this, arguments);
1766                        e && ke.isFunction(e.promise)
1767                          ? e
1768                              .promise()
1769                              .done(i.resolve)
1770                              .fail(i.reject)
1771                              .progress(i.notify)
1772                          : i[o + "With"](
1773                              this === a ? i.promise() : this,
1774                              n ? [e] : arguments
1775                            );
1776                      });
1777                    }),
1778                      (s = null);
1779                  })
1780                  .promise();
1781              },
1782              promise: function (e) {
1783                return null != e ? ke.extend(e, a) : a;
1784              },
1785            },
1786            l = {};
1787          return (
1788            (a.pipe = a.then),
1789            ke.each(r, function (e, t) {
1790              var o = t[2],
1791                n = t[3];
1792              (a[t[1]] = o.add),
1793                n &&
1794                  o.add(
1795                    function () {
1796                      i = n;
1797                    },
1798                    r[1 ^ e][2].disable,
1799                    r[2][2].lock
1800                  ),
1801                (l[t[0]] = function () {
1802                  return (
1803                    l[t[0] + "With"](this === l ? a : this, arguments), this
1804                  );
1805                }),
1806                (l[t[0] + "With"] = o.fireWith);
1807            }),
1808            a.promise(l),
1809            e && e.call(l, l),
1810            l
1811          );
1812        },
1813        when: function (e) {
1814          function t(t, o, n) {
1815            return function (e) {
1816              (o[t] = this),
1817                (n[t] = 1 < arguments.length ? p.call(arguments) : e),
1818                n === i ? c.notifyWith(o, n) : --l || c.resolveWith(o, n);
1819            };
1820          }
1821          var i,
1822            o,
1823            n,
1824            s = 0,
1825            r = p.call(arguments),
1826            a = r.length,
1827            l = 1 !== a || (e && ke.isFunction(e.promise)) ? a : 0,
1828            c = 1 === l ? e : ke.Deferred();
1829          if (1 < a)
1830            for (i = Array(a), o = Array(a), n = Array(a); s < a; s++)
1831              r[s] && ke.isFunction(r[s].promise)
1832                ? r[s]
1833                    .promise()
1834                    .done(t(s, n, r))
1835                    .fail(c.reject)
1836                    .progress(t(s, o, i))
1837                : --l;
1838          return l || c.resolveWith(n, r), c.promise();
1839        },
1840      }),
1841      (ke.support = (function (s) {
1842        var e,
1843          t,
1844          o,
1845          n,
1846          i,
1847          r,
1848          a,
1849          l,
1850          c,
1851          d = m.createElement("div");
1852        if (
1853          (d.setAttribute("className", "t"),
1854          (d.innerHTML =
1855            "  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>"),
1856          (e = d.getElementsByTagName("*") || []),
1857          !(t = d.getElementsByTagName("a")[0]) || !t.style || !e.length)
1858        )
1859          return s;
1860        (r = (n = m.createElement("select")).appendChild(
1861          m.createElement("option")
1862        )),
1863          (o = d.getElementsByTagName("input")[0]),
1864          (t.style.cssText = "top:1px;float:left;opacity:.5"),
1865          (s.getSetAttribute = "t" !== d.className),
1866          (s.leadingWhitespace = 3 === d.firstChild.nodeType),
1867          (s.tbody = !d.getElementsByTagName("tbody").length),
1868          (s.htmlSerialize = !!d.getElementsByTagName("link").length),
1869          (s.style = /top/.test(t.getAttribute("style"))),
1870          (s.hrefNormalized = "/a" === t.getAttribute("href")),
1871          (s.opacity = /^0.5/.test(t.style.opacity)),
1872          (s.cssFloat = !!t.style.cssFloat),
1873          (s.checkOn = !!o.value),
1874          (s.optSelected = r.selected),
1875          (s.enctype = !!m.createElement("form").enctype),
1876          (s.html5Clone =
1877            "<:nav></:nav>" !== m.createElement("nav").cloneNode(!0).outerHTML),
1878          (s.inlineBlockNeedsLayout = !1),
1879          (s.shrinkWrapBlocks = !1),
1880          (s.pixelPosition = !1),
1881          (s.deleteExpando = !0),
1882          (s.noCloneEvent = !0),
1883          (s.reliableMarginRight = !0),
1884          (s.boxSizingReliable = !0),
1885          (o.checked = !0),
1886          (s.noCloneChecked = o.cloneNode(!0).checked),
1887          (n.disabled = !0),
1888          (s.optDisabled = !r.disabled);
1889        try {
1890          delete d.test;
1891        } catch (e) {
1892          s.deleteExpando = !1;
1893        }
1894        for (c in ((o = m.createElement("input")).setAttribute("value", ""),
1895        (s.input = "" === o.getAttribute("value")),
1896        (o.value = "t"),
1897        o.setAttribute("type", "radio"),
1898        (s.radioValue = "t" === o.value),
1899        o.setAttribute("checked", "t"),
1900        o.setAttribute("name", "t"),
1901        (i = m.createDocumentFragment()).appendChild(o),
1902        (s.appendChecked = o.checked),
1903        (s.checkClone = i.cloneNode(!0).cloneNode(!0).lastChild.checked),
1904        d.attachEvent &&
1905          (d.attachEvent("onclick", function () {
1906            s.noCloneEvent = !1;
1907          }),
1908          d.cloneNode(!0).click()),
1909        { submit: !0, change: !0, focusin: !0 }))
1910          d.setAttribute((a = "on" + c), "t"),
1911            (s[c + "Bubbles"] = a in f || !1 === d.attributes[a].expando);
1912        for (c in ((d.style.backgroundClip = "content-box"),
1913        (d.cloneNode(!0).style.backgroundClip = ""),
1914        (s.clearCloneStyle = "content-box" === d.style.backgroundClip),
1915        ke(s)))
1916          break;
1917        return (
1918          (s.ownLast = "0" !== c),
1919          ke(function () {
1920            var e,
1921              t,
1922              o,
1923              n =
1924                "padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",
1925              i = m.getElementsByTagName("body")[0];
1926            i &&
1927              (((e = m.createElement("div")).style.cssText =
1928                "border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px"),
1929              i.appendChild(e).appendChild(d),
1930              (d.innerHTML = "<table><tr><td></td><td>t</td></tr></table>"),
1931              ((o = d.getElementsByTagName("td"))[0].style.cssText =
1932                "padding:0;margin:0;border:0;display:none"),
1933              (l = 0 === o[0].offsetHeight),
1934              (o[0].style.display = ""),
1935              (o[1].style.display = "none"),
1936              (s.reliableHiddenOffsets = l && 0 === o[0].offsetHeight),
1937              (d.innerHTML = ""),
1938              (d.style.cssText =
1939                "box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;"),
1940              ke.swap(i, null != i.style.zoom ? { zoom: 1 } : {}, function () {
1941                s.boxSizing = 4 === d.offsetWidth;
1942              }),
1943              f.getComputedStyle &&
1944                ((s.pixelPosition =
1945                  "1%" !== (f.getComputedStyle(d, null) || {}).top),
1946                (s.boxSizingReliable =
1947                  "4px" ===
1948                  (f.getComputedStyle(d, null) || { width: "4px" }).width),
1949                ((t = d.appendChild(m.createElement("div"))).style.cssText =
1950                  d.style.cssText =
1951                    n),
1952                (t.style.marginRight = t.style.width = "0"),
1953                (d.style.width = "1px"),
1954                (s.reliableMarginRight = !parseFloat(
1955                  (f.getComputedStyle(t, null) || {}).marginRight
1956                ))),
1957              typeof d.style.zoom !== v &&
1958                ((d.innerHTML = ""),
1959                (d.style.cssText =
1960                  n + "width:1px;padding:1px;display:inline;zoom:1"),
1961                (s.inlineBlockNeedsLayout = 3 === d.offsetWidth),
1962                (d.style.display = "block"),
1963                (d.innerHTML = "<div></div>"),
1964                (d.firstChild.style.width = "5px"),
1965                (s.shrinkWrapBlocks = 3 !== d.offsetWidth),
1966                s.inlineBlockNeedsLayout && (i.style.zoom = 1)),
1967              i.removeChild(e),
1968              (e = d = o = t = null));
1969          }),
1970          (e = n = i = r = t = o = null),
1971          s
1972        );
1973      })({}));
1974    var I = /(?:\{[\s\S]*\}|\[[\s\S]*\])$/,
1975      N = /([A-Z])/g;
1976    function M(e, t, o, n) {
1977      if (ke.acceptData(e)) {
1978        var i,
1979          s,
1980          r = ke.expando,
1981          a = e.nodeType,
1982          l = a ? ke.cache : e,
1983          c = a ? e[r] : e[r] && r;
1984        if ((c && l[c] && (n || l[c].data)) || o !== T || "string" != typeof t)
1985          return (
1986            l[(c = c || (a ? (e[r] = u.pop() || ke.guid++) : r))] ||
1987              (l[c] = a ? {} : { toJSON: ke.noop }),
1988            ("object" != typeof t && "function" != typeof t) ||
1989              (n
1990                ? (l[c] = ke.extend(l[c], t))
1991                : (l[c].data = ke.extend(l[c].data, t))),
1992            (s = l[c]),
1993            n || (s.data || (s.data = {}), (s = s.data)),
1994            o !== T && (s[ke.camelCase(t)] = o),
1995            "string" == typeof t
1996              ? null == (i = s[t]) && (i = s[ke.camelCase(t)])
1997              : (i = s),
1998            i
1999          );
2000      }
2001    }
2002    function P(e, t, o) {
2003      if (ke.acceptData(e)) {
2004        var n,
2005          i,
2006          s = e.nodeType,
2007          r = s ? ke.cache : e,
2008          a = s ? e[ke.expando] : ke.expando;
2009        if (r[a]) {
2010          if (t && (n = o ? r[a] : r[a].data)) {
2011            i = (t = ke.isArray(t)
2012              ? t.concat(ke.map(t, ke.camelCase))
2013              : t in n
2014              ? [t]
2015              : (t = ke.camelCase(t)) in n
2016              ? [t]
2017              : t.split(" ")).length;
2018            for (; i--; ) delete n[t[i]];
2019            if (o ? !R(n) : !ke.isEmptyObject(n)) return;
2020          }
2021          (o || (delete r[a].data, R(r[a]))) &&
2022            (s
2023              ? ke.cleanData([e], !0)
2024              : ke.support.deleteExpando || r != r.window
2025              ? delete r[a]
2026              : (r[a] = null));
2027        }
2028      }
2029    }
2030    function j(e, t, o) {
2031      if (o === T && 1 === e.nodeType) {
2032        var n = "data-" + t.replace(N, "-$1").toLowerCase();
2033        if ("string" == typeof (o = e.getAttribute(n))) {
2034          try {
2035            o =
2036              "true" === o ||
2037              ("false" !== o &&
2038                ("null" === o
2039                  ? null
2040                  : +o + "" === o
2041                  ? +o
2042                  : I.test(o)
2043                  ? ke.parseJSON(o)
2044                  : o));
2045          } catch (e) {}
2046          ke.data(e, t, o);
2047        } else o = T;
2048      }
2049      return o;
2050    }
2051    function R(e) {
2052      var t;
2053      for (t in e)
2054        if (("data" !== t || !ke.isEmptyObject(e[t])) && "toJSON" !== t) return;
2055      return 1;
2056    }
2057    ke.extend({
2058      cache: {},
2059      noData: {
2060        applet: !0,
2061        embed: !0,
2062        object: "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",
2063      },
2064      hasData: function (e) {
2065        return (
2066          !!(e = e.nodeType ? ke.cache[e[ke.expando]] : e[ke.expando]) && !R(e)
2067        );
2068      },
2069      data: function (e, t, o) {
2070        return M(e, t, o);
2071      },
2072      removeData: function (e, t) {
2073        return P(e, t);
2074      },
2075      _data: function (e, t, o) {
2076        return M(e, t, o, !0);
2077      },
2078      _removeData: function (e, t) {
2079        return P(e, t, !0);
2080      },
2081      acceptData: function (e) {
2082        if (e.nodeType && 1 !== e.nodeType && 9 !== e.nodeType) return !1;
2083        var t = e.nodeName && ke.noData[e.nodeName.toLowerCase()];
2084        return !t || (!0 !== t && e.getAttribute("classid") === t);
2085      },
2086    }),
2087      ke.fn.extend({
2088        data: function (e, t) {
2089          var o,
2090            n,
2091            i = null,
2092            s = 0,
2093            r = this[0];
2094          if (e !== T)
2095            return "object" == typeof e
2096              ? this.each(function () {
2097                  ke.data(this, e);
2098                })
2099              : 1 < arguments.length
2100              ? this.each(function () {
2101                  ke.data(this, e, t);
2102                })
2103              : r
2104              ? j(r, e, ke.data(r, e))
2105              : null;
2106          if (
2107            this.length &&
2108            ((i = ke.data(r)), 1 === r.nodeType && !ke._data(r, "parsedAttrs"))
2109          ) {
2110            for (o = r.attributes; o.length > s; s++)
2111              0 === (n = o[s].name).indexOf("data-") &&
2112                j(r, (n = ke.camelCase(n.slice(5))), i[n]);
2113            ke._data(r, "parsedAttrs", !0);
2114          }
2115          return i;
2116        },
2117        removeData: function (e) {
2118          return this.each(function () {
2119            ke.removeData(this, e);
2120          });
2121        },
2122      }),
2123      ke.extend({
2124        queue: function (e, t, o) {
2125          var n;
2126          return e
2127            ? ((t = (t || "fx") + "queue"),
2128              (n = ke._data(e, t)),
2129              o &&
2130                (!n || ke.isArray(o)
2131                  ? (n = ke._data(e, t, ke.makeArray(o)))
2132                  : n.push(o)),
2133              n || [])
2134            : T;
2135        },
2136        dequeue: function (e, t) {
2137          t = t || "fx";
2138          var o = ke.queue(e, t),
2139            n = o.length,
2140            i = o.shift(),
2141            s = ke._queueHooks(e, t);
2142          "inprogress" === i && ((i = o.shift()), n--),
2143            i &&
2144              ("fx" === t && o.unshift("inprogress"),
2145              delete s.stop,
2146              i.call(
2147                e,
2148                function () {
2149                  ke.dequeue(e, t);
2150                },
2151                s
2152              )),
2153            !n && s && s.empty.fire();
2154        },
2155        _queueHooks: function (e, t) {
2156          var o = t + "queueHooks";
2157          return (
2158            ke._data(e, o) ||
2159            ke._data(e, o, {
2160              empty: ke.Callbacks("once memory").add(function () {
2161                ke._removeData(e, t + "queue"), ke._removeData(e, o);
2162              }),
2163            })
2164          );
2165        },
2166      }),
2167      ke.fn.extend({
2168        queue: function (t, o) {
2169          var e = 2;
2170          return (
2171            "string" != typeof t && ((o = t), (t = "fx"), e--),
2172            arguments.length < e
2173              ? ke.queue(this[0], t)
2174              : o === T
2175              ? this
2176              : this.each(function () {
2177                  var e = ke.queue(this, t, o);
2178                  ke._queueHooks(this, t),
2179                    "fx" === t && "inprogress" !== e[0] && ke.dequeue(this, t);
2180                })
2181          );
2182        },
2183        dequeue: function (e) {
2184          return this.each(function () {
2185            ke.dequeue(this, e);
2186          });
2187        },
2188        delay: function (n, e) {
2189          return (
2190            (n = (ke.fx && ke.fx.speeds[n]) || n),
2191            (e = e || "fx"),
2192            this.queue(e, function (e, t) {
2193              var o = setTimeout(e, n);
2194              t.stop = function () {
2195                clearTimeout(o);
2196              };
2197            })
2198          );
2199        },
2200        clearQueue: function (e) {
2201          return this.queue(e || "fx", []);
2202        },
2203        promise: function (e, t) {
2204          function o() {
2205            --i || s.resolveWith(r, [r]);
2206          }
2207          var n,
2208            i = 1,
2209            s = ke.Deferred(),
2210            r = this,
2211            a = this.length;
2212          for ("string" != typeof e && ((t = e), (e = T)), e = e || "fx"; a--; )
2213            (n = ke._data(r[a], e + "queueHooks")) &&
2214              n.empty &&
2215              (i++, n.empty.add(o));
2216          return o(), s.promise(t);
2217        },
2218      });
2219    var B,
2220      _,
2221      q = /[\t\r\n\f]/g,
2222      U = /\r/g,
2223      X = /^(?:input|select|textarea|button|object)$/i,
2224      Z = /^(?:a|area)$/i,
2225      Y = /^(?:checked|selected)$/i,
2226      Q = ke.support.getSetAttribute,
2227      V = ke.support.input;
2228    ke.fn.extend({
2229      attr: function (e, t) {
2230        return ke.access(this, ke.attr, e, t, 1 < arguments.length);
2231      },
2232      removeAttr: function (e) {
2233        return this.each(function () {
2234          ke.removeAttr(this, e);
2235        });
2236      },
2237      prop: function (e, t) {
2238        return ke.access(this, ke.prop, e, t, 1 < arguments.length);
2239      },
2240      removeProp: function (e) {
2241        return (
2242          (e = ke.propFix[e] || e),
2243          this.each(function () {
2244            try {
2245              (this[e] = T), delete this[e];
2246            } catch (e) {}
2247          })
2248        );
2249      },
2250      addClass: function (t) {
2251        var e,
2252          o,
2253          n,
2254          i,
2255          s,
2256          r = 0,
2257          a = this.length,
2258          l = "string" == typeof t && t;
2259        if (ke.isFunction(t))
2260          return this.each(function (e) {
2261            ke(this).addClass(t.call(this, e, this.className));
2262          });
2263        if (l)
2264          for (e = (t || "").match(C) || []; r < a; r++)
2265            if (
2266              (n =
2267                1 === (o = this[r]).nodeType &&
2268                (o.className ? (" " + o.className + " ").replace(q, " ") : " "))
2269            ) {
2270              for (s = 0; (i = e[s++]); )
2271                n.indexOf(" " + i + " ") < 0 && (n += i + " ");
2272              o.className = ke.trim(n);
2273            }
2274        return this;
2275      },
2276      removeClass: function (t) {
2277        var e,
2278          o,
2279          n,
2280          i,
2281          s,
2282          r = 0,
2283          a = this.length,
2284          l = 0 === arguments.length || ("string" == typeof t && t);
2285        if (ke.isFunction(t))
2286          return this.each(function (e) {
2287            ke(this).removeClass(t.call(this, e, this.className));
2288          });
2289        if (l)
2290          for (e = (t || "").match(C) || []; r < a; r++)
2291            if (
2292              (n =
2293                1 === (o = this[r]).nodeType &&
2294                (o.className ? (" " + o.className + " ").replace(q, " ") : ""))
2295            ) {
2296              for (s = 0; (i = e[s++]); )
2297                for (; 0 <= n.indexOf(" " + i + " "); )
2298                  n = n.replace(" " + i + " ", " ");
2299              o.className = t ? ke.trim(n) : "";
2300            }
2301        return this;
2302      },
2303      toggleClass: function (s, r) {
2304        var a = typeof s,
2305          l = "boolean" == typeof r;
2306        return ke.isFunction(s)
2307          ? this.each(function (e) {
2308              ke(this).toggleClass(s.call(this, e, this.className, r), r);
2309            })
2310          : this.each(function () {
2311              if ("string" == a)
2312                for (
2313                  var e, t = 0, o = ke(this), n = r, i = s.match(C) || [];
2314                  (e = i[t++]);
2315
2316                )
2317                  (n = l ? n : !o.hasClass(e)),
2318                    o[n ? "addClass" : "removeClass"](e);
2319              else
2320                (a !== v && "boolean" != a) ||
2321                  (this.className &&
2322                    ke._data(this, "__className__", this.className),
2323                  (this.className =
2324                    (!this.className &&
2325                      !1 !== s &&
2326                      ke._data(this, "__className__")) ||
2327                    ""));
2328            });
2329      },
2330      hasClass: function (e) {
2331        for (var t = " " + e + " ", o = 0, n = this.length; o < n; o++)
2332          if (
2333            1 === this[o].nodeType &&
2334            0 <= (" " + this[o].className + " ").replace(q, " ").indexOf(t)
2335          )
2336            return !0;
2337        return !1;
2338      },
2339      val: function (o) {
2340        var e,
2341          n,
2342          i,
2343          t = this[0];
2344        return arguments.length
2345          ? ((i = ke.isFunction(o)),
2346            this.each(function (e) {
2347              var t;
2348              1 === this.nodeType &&
2349                (null == (t = i ? o.call(this, e, ke(this).val()) : o)
2350                  ? (t = "")
2351                  : "number" == typeof t
2352                  ? (t += "")
2353                  : ke.isArray(t) &&
2354                    (t = ke.map(t, function (e) {
2355                      return null == e ? "" : e + "";
2356                    })),
2357                ((n =
2358                  ke.valHooks[this.type] ||
2359                  ke.valHooks[this.nodeName.toLowerCase()]) &&
2360                  "set" in n &&
2361                  n.set(this, t, "value") !== T) ||
2362                  (this.value = t));
2363            }))
2364          : t
2365          ? (n =
2366              ke.valHooks[t.type] || ke.valHooks[t.nodeName.toLowerCase()]) &&
2367            "get" in n &&
2368            (e = n.get(t, "value")) !== T
2369            ? e
2370            : "string" == typeof (e = t.value)
2371            ? e.replace(U, "")
2372            : null == e
2373            ? ""
2374            : e
2375          : void 0;
2376      },
2377    }),
2378      ke.extend({
2379        valHooks: {
2380          option: {
2381            get: function (e) {
2382              var t = ke.find.attr(e, "value");
2383              return null != t ? t : e.text;
2384            },
2385          },
2386          select: {
2387            get: function (e) {
2388              for (
2389                var t,
2390                  o,
2391                  n = e.options,
2392                  i = e.selectedIndex,
2393                  s = "select-one" === e.type || i < 0,
2394                  r = s ? null : [],
2395                  a = s ? i + 1 : n.length,
2396                  l = i < 0 ? a : s ? i : 0;
2397                l < a;
2398                l++
2399              )
2400                if (
2401                  !(
2402                    (!(o = n[l]).selected && l !== i) ||
2403                    (ke.support.optDisabled
2404                      ? o.disabled
2405                      : null !== o.getAttribute("disabled")) ||
2406                    (o.parentNode.disabled &&
2407                      ke.nodeName(o.parentNode, "optgroup"))
2408                  )
2409                ) {
2410                  if (((t = ke(o).val()), s)) return t;
2411                  r.push(t);
2412                }
2413              return r;
2414            },
2415            set: function (e, t) {
2416              for (
2417                var o, n, i = e.options, s = ke.makeArray(t), r = i.length;
2418                r--;
2419
2420              )
2421                ((n = i[r]).selected = 0 <= ke.inArray(ke(n).val(), s)) &&
2422                  (o = !0);
2423              return o || (e.selectedIndex = -1), s;
2424            },
2425          },
2426        },
2427        attr: function (e, t, o) {
2428          var n,
2429            i,
2430            s = e.nodeType;
2431          if (e && 3 !== s && 8 !== s && 2 !== s)
2432            return typeof e.getAttribute === v
2433              ? ke.prop(e, t, o)
2434              : ((1 === s && ke.isXMLDoc(e)) ||
2435                  ((t = t.toLowerCase()),
2436                  (n =
2437                    ke.attrHooks[t] || (ke.expr.match.bool.test(t) ? _ : B))),
2438                o === T
2439                  ? n && "get" in n && null !== (i = n.get(e, t))
2440                    ? i
2441                    : null == (i = ke.find.attr(e, t))
2442                    ? T
2443                    : i
2444                  : null !== o
2445                  ? n && "set" in n && (i = n.set(e, o, t)) !== T
2446                    ? i
2447                    : (e.setAttribute(t, o + ""), o)
2448                  : (ke.removeAttr(e, t), T));
2449        },
2450        removeAttr: function (e, t) {
2451          var o,
2452            n,
2453            i = 0,
2454            s = t && t.match(C);
2455          if (s && 1 === e.nodeType)
2456            for (; (o = s[i++]); )
2457              (n = ke.propFix[o] || o),
2458                ke.expr.match.bool.test(o)
2459                  ? (V && Q) || !Y.test(o)
2460                    ? (e[n] = !1)
2461                    : (e[ke.camelCase("default-" + o)] = e[n] = !1)
2462                  : ke.attr(e, o, ""),
2463                e.removeAttribute(Q ? o : n);
2464        },
2465        attrHooks: {
2466          type: {
2467            set: function (e, t) {
2468              if (
2469                !ke.support.radioValue &&
2470                "radio" === t &&
2471                ke.nodeName(e, "input")
2472              ) {
2473                var o = e.value;
2474                return e.setAttribute("type", t), o && (e.value = o), t;
2475              }
2476            },
2477          },
2478        },
2479        propFix: { for: "htmlFor", class: "className" },
2480        prop: function (e, t, o) {
2481          var n,
2482            i,
2483            s = e.nodeType;
2484          if (e && 3 !== s && 8 !== s && 2 !== s)
2485            return (
2486              (1 !== s || !ke.isXMLDoc(e)) &&
2487                ((t = ke.propFix[t] || t), (i = ke.propHooks[t])),
2488              o !== T
2489                ? i && "set" in i && (n = i.set(e, o, t)) !== T
2490                  ? n
2491                  : (e[t] = o)
2492                : i && "get" in i && null !== (n = i.get(e, t))
2493                ? n
2494                : e[t]
2495            );
2496        },
2497        propHooks: {
2498          tabIndex: {
2499            get: function (e) {
2500              var t = ke.find.attr(e, "tabindex");
2501              return t
2502                ? parseInt(t, 10)
2503                : X.test(e.nodeName) || (Z.test(e.nodeName) && e.href)
2504                ? 0
2505                : -1;
2506            },
2507          },
2508        },
2509      }),
2510      (_ = {
2511        set: function (e, t, o) {
2512          return (
2513            !1 === t
2514              ? ke.removeAttr(e, o)
2515              : (V && Q) || !Y.test(o)
2516              ? e.setAttribute((!Q && ke.propFix[o]) || o, o)
2517              : (e[ke.camelCase("default-" + o)] = e[o] = !0),
2518            o
2519          );
2520        },
2521      }),
2522      ke.each(ke.expr.match.bool.source.match(/\w+/g), function (e, t) {
2523        var s = ke.expr.attrHandle[t] || ke.find.attr;
2524        ke.expr.attrHandle[t] =
2525          (V && Q) || !Y.test(t)
2526            ? function (e, t, o) {
2527                var n = ke.expr.attrHandle[t],
2528                  i = o
2529                    ? T
2530                    : (ke.expr.attrHandle[t] = T) != s(e, t, o)
2531                    ? t.toLowerCase()
2532                    : null;
2533                return (ke.expr.attrHandle[t] = n), i;
2534              }
2535            : function (e, t, o) {
2536                return o
2537                  ? T
2538                  : e[ke.camelCase("default-" + t)]
2539                  ? t.toLowerCase()
2540                  : null;
2541              };
2542      }),
2543      (V && Q) ||
2544        (ke.attrHooks.value = {
2545          set: function (e, t, o) {
2546            return ke.nodeName(e, "input")
2547              ? ((e.defaultValue = t), T)
2548              : B && B.set(e, t, o);
2549          },
2550        }),
2551      Q ||
2552        ((B = {
2553          set: function (e, t, o) {
2554            var n = e.getAttributeNode(o);
2555            return (
2556              n || e.setAttributeNode((n = e.ownerDocument.createAttribute(o))),
2557              (n.value = t += ""),
2558              "value" === o || t === e.getAttribute(o) ? t : T
2559            );
2560          },
2561        }),
2562        (ke.expr.attrHandle.id =
2563          ke.expr.attrHandle.name =
2564          ke.expr.attrHandle.coords =
2565            function (e, t, o) {
2566              var n;
2567              return o
2568                ? T
2569                : (n = e.getAttributeNode(t)) && "" !== n.value
2570                ? n.value
2571                : null;
2572            }),
2573        (ke.valHooks.button = {
2574          get: function (e, t) {
2575            var o = e.getAttributeNode(t);
2576            return o && o.specified ? o.value : T;
2577          },
2578          set: B.set,
2579        }),
2580        (ke.attrHooks.contenteditable = {
2581          set: function (e, t, o) {
2582            B.set(e, "" !== t && t, o);
2583          },
2584        }),
2585        ke.each(["width", "height"], function (e, o) {
2586          ke.attrHooks[o] = {
2587            set: function (e, t) {
2588              return "" === t ? (e.setAttribute(o, "auto"), t) : T;
2589            },
2590          };
2591        })),
2592      k
2592e.support.hrefNormalized ||
2593        ke.each(["href", "src"], function (e, t) {
2594          ke.propHooks[t] = {
2595            get: function (e) {
2596              return e.getAttribute(t, 4);
2597            },
2598          };
2599        }),
2600      ke.support.style ||
2601        (ke.attrHooks.style = {
2602          get: function (e) {
2603            return e.style.cssText || T;
2604          },
2605          set: function (e, t) {
2606            return (e.style.cssText = t + "");
2607          },
2608        }),
2609      ke.support.optSelected ||
2610        (ke.propHooks.selected = {
2611          get: function (e) {
2612            var t = e.parentNode;
2613            return (
2614              t &&
2615                (t.selectedIndex, t.parentNode && t.parentNode.selectedIndex),
2616              null
2617            );
2618          },
2619        }),
2620      ke.each(
2621        [
2622          "tabIndex",
2623          "readOnly",
2624          "maxLength",
2625          "cellSpacing",
2626          "cellPadding",
2627          "rowSpan",
2628          "colSpan",
2629          "useMap",
2630          "frameBorder",
2631          "contentEditable",
2632        ],
2633        function () {
2634          ke.propFix[this.toLowerCase()] = this;
2635        }
2636      ),
2637      ke.support.enctype || (ke.propFix.enctype = "encoding"),
2638      ke.each(["radio", "checkbox"], function () {
2639        (ke.valHooks[this] = {
2640          set: function (e, t) {
2641            return ke.isArray(t)
2642              ? (e.checked = 0 <= ke.inArray(ke(e).val(), t))
2643              : T;
2644          },
2645        }),
2646          ke.support.checkOn ||
2647            (ke.valHooks[this].get = function (e) {
2648              return null === e.getAttribute("value") ? "on" : e.value;
2649            });
2650      });
2651    var G = /^(?:input|select|textarea)$/i,
2652      K = /^key/,
2653      J = /^(?:mouse|contextmenu)|click/,
2654      ee = /^(?:focusinfocus|focusoutblur)$/,
2655      te = /^([^.]*)(?:\.(.+)|)$/;
2656    function oe() {
2657      return !0;
2658    }
2659    function ne() {
2660      return !1;
2661    }
2662    function ie() {
2663      try {
2664        return m.activeElement;
2665      } catch (e) {}
2666    }
2667    (ke.event = {
2668      global: {},
2669      add: function (e, t, o, n, i) {
2670        var s,
2671          r,
2672          a,
2673          l,
2674          c,
2675          d,
2676          u,
2677          p,
2678          h,
2679          f,
2680          m,
2681          g = ke._data(e);
2682        if (g) {
2683          for (
2684            o.handler && ((o = (l = o).handler), (i = l.selector)),
2685              o.guid || (o.guid = ke.guid++),
2686              (r = g.events) || (r = g.events = {}),
2687              (d = g.handle) ||
2688                ((d = g.handle =
2689                  function (e) {
2690                    return typeof ke === v ||
2691                      (e && ke.event.triggered === e.type)
2692                      ? T
2693                      : ke.event.dispatch.apply(d.elem, arguments);
2694                  }).elem = e),
2695              a = (t = (t || "").match(C) || [""]).length;
2696            a--;
2697
2698          )
2699            (h = m = (s = te.exec(t[a]) || [])[1]),
2700              (f = (s[2] || "").split(".").sort()),
2701              h &&
2702                ((c = ke.event.special[h] || {}),
2703                (h = (i ? c.delegateType : c.bindType) || h),
2704                (c = ke.event.special[h] || {}),
2705                (u = ke.extend(
2706                  {
2707                    type: h,
2708                    origType: m,
2709                    data: n,
2710                    handler: o,
2711                    guid: o.guid,
2712                    selector: i,
2713                    needsContext: i && ke.expr.match.needsContext.test(i),
2714                    namespace: f.join("."),
2715                  },
2716                  l
2717                )),
2718                (p = r[h]) ||
2719                  (((p = r[h] = []).delegateCount = 0),
2720                  (c.setup && !1 !== c.setup.call(e, n, f, d)) ||
2721                    (e.addEventListener
2722                      ? e.addEventListener(h, d, !1)
2723                      : e.attachEvent && e.attachEvent("on" + h, d))),
2724                c.add &&
2725                  (c.add.call(e, u),
2726                  u.handler.guid || (u.handler.guid = o.guid)),
2727                i ? p.splice(p.delegateCount++, 0, u) : p.push(u),
2728                (ke.event.global[h] = !0));
2729          e = null;
2730        }
2731      },
2732      remove: function (e, t, o, n, i) {
2733        var s,
2734          r,
2735          a,
2736          l,
2737          c,
2738          d,
2739          u,
2740          p,
2741          h,
2742          f,
2743          m,
2744          g = ke.hasData(e) && ke._data(e);
2745        if (g && (d = g.events)) {
2746          for (c = (t = (t || "").match(C) || [""]).length; c--; )
2747            if (
2748              ((h = m = (a = te.exec(t[c]) || [])[1]),
2749              (f = (a[2] || "").split(".").sort()),
2750              h)
2751            ) {
2752              for (
2753                u = ke.event.special[h] || {},
2754                  p = d[(h = (n ? u.delegateType : u.bindType) || h)] || [],
2755                  a =
2756                    a[2] &&
2757                    RegExp("(^|\\.)" + f.join("\\.(?:.*\\.|)") + "(\\.|$)"),
2758                  l = s = p.length;
2759                s--;
2760
2761              )
2762                (r = p[s]),
2763                  (!i && m !== r.origType) ||
2764                    (o && o.guid !== r.guid) ||
2765                    (a && !a.test(r.namespace)) ||
2766                    (n && n !== r.selector && ("**" !== n || !r.selector)) ||
2767                    (p.splice(s, 1),
2768                    r.selector && p.delegateCount--,
2769                    u.remove && u.remove.call(e, r));
2770              l &&
2771                !p.length &&
2772                ((u.teardown && !1 !== u.teardown.call(e, f, g.handle)) ||
2773                  ke.removeEvent(e, h, g.handle),
2774                delete d[h]);
2775            } else for (h in d) ke.event.remove(e, h + t[c], o, n, !0);
2776          ke.isEmptyObject(d) && (delete g.handle, ke._removeData(e, "events"));
2777        }
2778      },
2779      trigger: function (e, t, o, n) {
2780        var i,
2781          s,
2782          r,
2783          a,
2784          l,
2785          c,
2786          d = [o || m],
2787          u = w.call(e, "type") ? e.type : e,
2788          p = w.call(e, "namespace") ? e.namespace.split(".") : [],
2789          h = (l = o = o || m);
2790        if (
2791          3 !== o.nodeType &&
2792          8 !== o.nodeType &&
2793          !ee.test(u + ke.event.triggered) &&
2794          (0 <= u.indexOf(".") && ((u = (p = u.split(".")).shift()), p.sort()),
2795          (s = u.indexOf(":") < 0 && "on" + u),
2796          ((e = e[ke.expando]
2797            ? e
2798            : new ke.Event(u, "object" == typeof e && e)).isTrigger = n
2799            ? 2
2800            : 3),
2801          (e.namespace = p.join(".")),
2802          (e.namespace_re = e.namespace
2803            ? RegExp("(^|\\.)" + p.join("\\.(?:.*\\.|)") + "(\\.|$)")
2804            : null),
2805          (e.result = T),
2806          e.target || (e.target = o),
2807          (t = null == t ? [e] : ke.makeArray(t, [e])),
2808          (a = ke.event.special[u] || {}),
2809          n || !a.trigger || !1 !== a.trigger.apply(o, t))
2810        ) {
2811          if (!n && !a.noBubble && !ke.isWindow(o)) {
2812            for (
2813              r = a.delegateType || u, ee.test(r + u) || (h = h.parentNode);
2814              h;
2815              h = h.parentNode
2816            )
2817              d.push(h), (l = h);
2818            l === (o.ownerDocument || m) &&
2819              d.push(l.defaultView || l.parentWindow || f);
2820          }
2821          for (c = 0; (h = d[c++]) && !e.isPropagationStopped(); )
2822            (e.type = 1 < c ? r : a.bindType || u),
2823              (i =
2824                (ke._data(h, "events") || {})[e.type] &&
2825                ke._data(h, "handle")) && i.apply(h, t),
2826              (i = s && h[s]) &&
2827                ke.acceptData(h) &&
2828                i.apply &&
2829                !1 === i.apply(h, t) &&
2830                e.preventDefault();
2831          if (
2832            ((e.type = u),
2833            !n &&
2834              !e.isDefaultPrevented() &&
2835              (!a._default || !1 === a._default.apply(d.pop(), t)) &&
2836              ke.acceptData(o) &&
2837              s &&
2838              o[u] &&
2839              !ke.isWindow(o))
2840          ) {
2841            (l = o[s]) && (o[s] = null), (ke.event.triggered = u);
2842            try {
2843              o[u]();
2844            } catch (e) {}
2845            (ke.event.triggered = T), l && (o[s] = l);
2846          }
2847          return e.result;
2848        }
2849      },
2850      dispatch: function (e) {
2851        e = ke.event.fix(e);
2852        var t,
2853          o,
2854          n,
2855          i,
2856          s,
2857          r = [],
2858          a = p.call(arguments),
2859          l = (ke._data(this, "events") || {})[e.type] || [],
2860          c = ke.event.special[e.type] || {};
2861        if (
2862          (((a[0] = e).delegateTarget = this),
2863          !c.preDispatch || !1 !== c.preDispatch.call(this, e))
2864        ) {
2865          for (
2866            r = ke.event.handlers.call(this, e, l), t = 0;
2867            (i = r[t++]) && !e.isPropagationStopped();
2868
2869          )
2870            for (
2871              e.currentTarget = i.elem, s = 0;
2872              (n = i.handlers[s++]) && !e.isImmediatePropagationStopped();
2873
2874            )
2875              (e.namespace_re && !e.namespace_re.test(n.namespace)) ||
2876                ((e.handleObj = n),
2877                (e.data = n.data),
2878                (o = (
2879                  (ke.event.special[n.origType] || {}).handle || n.handler
2880                ).apply(i.elem, a)) !== T &&
2881                  !1 === (e.result = o) &&
2882                  (e.preventDefault(), e.stopPropagation()));
2883          return c.postDispatch && c.postDispatch.call(this, e), e.result;
2884        }
2885      },
2886      handlers: function (e, t) {
2887        var o,
2888          n,
2889          i,
2890          s,
2891          r = [],
2892          a = t.delegateCount,
2893          l = e.target;
2894        if (a && l.nodeType && (!e.button || "click" !== e.type))
2895          for (; l != this; l = l.parentNode || this)
2896            if (1 === l.nodeType && (!0 !== l.disabled || "click" !== e.type)) {
2897              for (i = [], s = 0; s < a; s++)
2898                i[(o = (n = t[s]).selector + " ")] === T &&
2899                  (i[o] = n.needsContext
2900                    ? 0 <= ke(o, this).index(l)
2901                    : ke.find(o, this, null, [l]).length),
2902                  i[o] && i.push(n);
2903              i.length && r.push({ elem: l, handlers: i });
2904            }
2905        return t.length > a && r.push({ elem: this, handlers: t.slice(a) }), r;
2906      },
2907      fix: function (e) {
2908        if (e[ke.expando]) return e;
2909        var t,
2910          o,
2911          n,
2912          i = e.type,
2913          s = e,
2914          r = this.fixHooks[i];
2915        for (
2916          r ||
2917            (this.fixHooks[i] = r =
2918              J.test(i) ? this.mouseHooks : K.test(i) ? this.keyHooks 
2918: {}),
2919            n = r.props ? this.props.concat(r.props) : this.props,
2920            e = new ke.Event(s),
2921            t = n.length;
2922          t--;
2923
2924        )
2925          e[(o = n[t])] = s[o];
2926        return (
2927          e.target || (e.target = s.srcElement || m),
2928          3 === e.target.nodeType && (e.target = e.target.parentNode),
2929          (e.metaKey = !!e.metaKey),
2930          r.filter ? r.filter(e, s) : e
2931        );
2932      },
2933      props:
2934        "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(
2935          " "
2936        ),
2937      fixHooks: {},
2938      keyHooks: {
2939        props: "char charCode key keyCode".split(" "),
2940        filter: function (e, t) {
2941          return (
2942            null == e.which &&
2943              (e.which = null != t.charCode ? t.charCode : t.keyCode),
2944            e
2945          );
2946        },
2947      },
2948      mouseHooks: {
2949        props:
2950          "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(
2951            " "
2952          ),
2953        filter: function (e, t) {
2954          var o,
2955            n,
2956            i,
2957            s = t.button,
2958            r = t.fromElement;
2959          return (
2960            null == e.pageX &&
2961              null != t.clientX &&
2962              ((i = (n = e.target.ownerDocument || m).documentElement),
2963              (o = n.body),
2964              (e.pageX =
2965                t.clientX +
2966                ((i && i.scrollLeft) || (o && o.scrollLeft) || 0) -
2967                ((i && i.clientLeft) || (o && o.clientLeft) || 0)),
2968              (e.pageY =
2969                t.clientY +
2970                ((i && i.scrollTop) || (o && o.scrollTop) || 0) -
2971                ((i && i.clientTop) || (o && o.clientTop) || 0))),
2972            !e.relatedTarget &&
2973              r &&
2974              (e.relatedTarget = r === e.target ? t.toElement : r),
2975            e.which ||
2976              s === T ||
2977              (e.which = 1 & s ? 1 : 2 & s ? 3 : 4 & s ? 2 : 0),
2978            e
2979          );
2980        },
2981      },
2982      special: {
2983        load: { noBubble: !0 },
2984        focus: {
2985          trigger: function () {
2986            if (this !== ie() && this.focus)
2987              try {
2988                return this.focus(), !1;
2989              } catch (e) {}
2990          },
2991          delegateType: "focusin",
2992        },
2993        blur: {
2994          trigger: function () {
2995            return this === ie() && this.blur ? (this.blur(), !1) : T;
2996          },
2997          delegateType: "focusout",
2998        },
2999        click: {
3000          trigger: function () {
3001            return ke.nodeName(this, "input") &&
3002              "checkbox" === this.type &&
3003              this.click
3004              ? (this.click(), !1)
3005              : T;
3006          },
3007          _default: function (e) {
3008            return ke.nodeName(e.target, "a");
3009          },
3010        },
3011        beforeunload: {
3012          postDispatch: function (e) {
3013            e.result !== T && (e.originalEvent.returnValue = e.result);
3014          },
3015        },
3016      },
3017      simulate: function (e, t, o, n) {
3018        var i = ke.extend(new ke.Event(), o, {
3019          type: e,
3020          isSimulated: !0,
3021          originalEvent: {},
3022        });
3023        n ? ke.event.trigger(i, null, t) : ke.event.dispatch.call(t, i),
3024          i.isDefaultPrevented() && o.preventDefault();
3025      },
3026    }),
3027      (ke.removeEvent = m.removeEventListener
3028        ? function (e, t, o) {
3029            e.removeEventListener && e.removeEventListener(t, o, !1);
3030          }
3031        : function (e, t, o) {
3032            var n = "on" + t;
3033            e.detachEvent &&
3034              (typeof e[n] === v && (e[n] = null), e.detachEvent(n, o));
3035          }),
3036      (ke.Event = function (e, t) {
3037        return this instanceof ke.Event
3038          ? (e && e.type
3039              ? ((this.originalEvent = e),
3040                (this.type = e.type),
3041                (this.isDefaultPrevented =
3042                  e.defaultPrevented ||
3043                  !1 === e.returnValue ||
3044                  (e.getPreventDefault && e.getPreventDefault())
3045                    ? oe
3046                    : ne))
3047              : (this.type = e),
3048            t && ke.extend(this, t),
3049            (this.timeStamp = (e && e.timeStamp) || ke.now()),
3050            (this[ke.expando] = !0),
3051            T)
3052          : new ke.Event(e, t);
3053      }),
3054      (ke.Event.prototype = {
3055        isDefaultPrevented: ne,
3056        isPropagationStopped: ne,
3057        isImmediatePropagationStopped: ne,
3058        preventDefault: function () {
3059          var e = this.originalEvent;
3060          (this.isDefaultPrevented = oe),
3061            e && (e.preventDefault ? e.preventDefault() : (e.returnValue = !1));
3062        },
3063        stopPropagation: function () {
3064          var e = this.originalEvent;
3065          (this.isPropagationStopped = oe),
3066            e &&
3067              (e.stopPropagation && e.stopPropagation(), (e.cancelBubble = !0));
3068        },
3069        stopImmediatePropagation: function () {
3070          (this.isImmediatePropagationStopped = oe), this.stopPropagation();
3071        },
3072      }),
3073      ke.each(
3074        { mouseenter: "mouseover", mouseleave: "mouseout" },
3075        function (e, i) {
3076          ke.event.special[e] = {
3077            delegateType: i,
3078            bindType: i,
3079            handle: function (e) {
3080              var t,
3081                o = e.relatedTarget,
3082                n = e.handleObj;
3083              return (
3084                (o && (o === this || ke.contains(this, o))) ||
3085                  ((e.type = n.origType),
3086                  (t = n.handler.apply(this, arguments)),
3087                  (e.type = i)),
3088                t
3089              );
3090            },
3091          };
3092        }
3093      ),
3094      ke.support.submitBubbles ||
3095        (ke.event.special.submit = {
3096          setup: function () {
3097            return (
3098              !ke.nodeName(this, "form") &&
3099              (ke.event.add(
3100                this,
3101                "click._submit keypress._submit",
3102                function (e) {
3103                  var t = e.target,
3104                    o =
3105                      ke.nodeName(t, "input") || ke.nodeName(t, "button")
3106                        ? t.form
3107                        : T;
3108                  o &&
3109                    !ke._data(o, "submitBubbles") &&
3110                    (ke.event.add(o, "submit._submit", function (e) {
3111                      e._submit_bubble = !0;
3112                    }),
3113                    ke._data(o, "submitBubbles", !0));
3114                }
3115              ),
3116              T)
3117            );
3118          },
3119          postDispatch: function (e) {
3120            e._submit_bubble &&
3121              (delete e._submit_bubble,
3122              this.parentNode &&
3123                !e.isTrigger &&
3124                ke.event.simulate("submit", this.parentNode, e, !0));
3125          },
3126          teardown: function () {
3127            return (
3128              !ke.nodeName(this, "form") &&
3129              (ke.event.remove(this, "._submit"), T)
3130            );
3131          },
3132        }),
3133      ke.support.changeBubbles ||
3134        (ke.event.special.change = {
3135          setup: function () {
3136            return G.test(this.nodeName)
3137              ? (("checkbox" !== this.type && "radio" !== this.type) ||
3138                  (ke.event.add(this, "propertychange._change", function (e) {
3139                    "checked" === e.originalEvent.propertyName &&
3140                      (this._just_changed = !0);
3141                  }),
3142                  ke.event.add(this, "click._change", function (e) {
3143                    this._just_changed &&
3144                      !e.isTrigger &&
3145                      (this._just_changed = !1),
3146                      ke.event.simulate("change", this, e, !0);
3147                  })),
3148                !1)
3149              : (ke.event.add(this, "beforeactivate._change", function (e) {
3150                  var t = e.target;
3151                  G.test(t.nodeName) &&
3152                    !ke._data(t, "changeBubbles") &&
3153                    (ke.event.add(t, "change._change", function (e) {
3154                      !this.parentNode ||
3155                        e.isSimulated ||
3156                        e.isTrigger ||
3157                        ke.event.simulate("change", this.parentNode, e, !0);
3158                    }),
3159                    ke._data(t, "changeBubbles", !0));
3160                }),
3161                T);
3162          },
3163          handle: function (e) {
3164            var t = e.target;
3165            return this !== t ||
3166              e.isSimulated ||
3167              e.isTrigger ||
3168              ("radio" !== t.type && "checkbox" !== t.type)
3169              ? e.handleObj.handler.apply(this, arguments)
3170              : T;
3171          },
3172          teardown: function () {
3173            return ke.event.remove(this, "._change"), !G.test(this.nodeName);
3174          },
3175        }),
3176      ke.support.focusinBubbles ||
3177        ke.each({ focus: "focusin", blur: "focusout" }, function (e, t) {
3178          function o(e) {
3179            ke.event.simulate(t, e.target, ke.event.fix(e), !0);
3180          }
3181          var n = 0;
3182          ke.event.special[t] = {
3183            setup: function () {
3184              0 == n++ && m.addEventListener(e, o, !0);
3185            },
3186            teardown: function () {
3187              0 == --n && m.removeEventListener(e, o, !0);
3188            },
3189          };
3190        }),
3191      ke.fn.extend({
3192        on: function (e, t, o, n, i) {
3193          var s, r;
3194          if ("object" == typeof e) {
3195            for (s in ("string" != typeof t && ((o = o || t), (t = T)), e))
3196              this.on(s, t, o, e[s], i);
3197            return this;
3198          }
3199          if (
3200            (null == o && null == n
3201              ? ((n = t), (o = t = T))
3202              : null == n &&
3203                ("string" == typeof t
3204                  ? ((n = o), (o = T))
3205                  : ((n = o), (o = t), (t = T))),
3206            !1 === n)
3207          )
3208            n = ne;
3209          else if (!n) return this;
3210          return (
3211            1 === i &&
3212              ((r = n),
3213              ((n = function (e) {
3214                return ke().off(e), r.apply(this, arguments);
3215              }).guid = r.guid || (r.guid = ke.guid++))),
3216            this.each(function () {
3217              ke.event.add(this, e, n, o, t);
3218            })
3219          );
3220        },
3221        one: function (e, t, o, n) {
3222          return this.on(e, t, o, n, 1);
3223        },
3224        off: function (e, t, o) {
3225          var n, i;
3226          if (e && e.preventDefault && e.handleObj)
3227            return (
3228              (n = e.handleObj),
3229              ke(e.delegateTarget).off(
3230                n.namespace ? n.origType + "." + n.namespace : n.origType,
3231                n.selector,
3232                n.handler
3233              ),
3234              this
3235            );
3236          if ("object" != typeof e)
3237            return (
3238              (!1 !== t && "function" != typeof t) || ((o = t), (t = T)),
3239              !1 === o && (o = ne),
3240              this.each(function () {
3241                ke.event.remove(this, e, o, t);
3242              })
3243            );
3244          for (i in e) this.off(i, t, e[i]);
3245          return this;
3246        },
3247        trigger: function (e, t) {
3248          return this.each(function () {
3249            ke.event.trigger(e, t, this);
3250          });
3251        },
3252        triggerHandler: function (e, t) {
3253          var o = this[0];
3254          return o ? ke.event.trigger(e, t, o, !0) : T;
3255        },
3256      });
3257    var se = /^.[^:#\[\.,]*$/,
3258      re = /^(?:parents|prev(?:Until|All))/,
3259      ae = ke.expr.match.needsContext,
3260      le = { children: !0, contents: !0, next: !0, prev: !0 };
3261    function ce(e, t) {
3262      for (; (e = e[t]) && 1 !== e.nodeType; );
3263      return e;
3264    }
3265    function de(e, o, n) {
3266      if (ke.isFunction(o))
3267        return ke.grep(e, function (e, t) {
3268          return !!o.call(e, t, e) !== n;
3269        });
3270      if (o.nodeType)
3271        return ke.grep(e, function (e) {
3272          return (e === o) !== n;
3273        });
3274      if ("string" == typeof o) {
3275        if (se.test(o)) return ke.filter(o, e, n);
3276        o = ke.filter(o, e);
3277      }
3278      return ke.grep(e, function (e) {
3279        return 0 <= ke.inArray(e, o) !== n;
3280      });
3281    }
3282    function ue(e) {
3283      var t = pe.split("|"),
3284        o = e.createDocumentFragment();
3285      if (o.createElement) for (; t.length; ) o.createElement(t.pop());
3286      return o;
3287    }
3288    ke.fn.extend({
3289      find: function (e) {
3290        var t,
3291          o = [],
3292          n = this,
3293          i = n.length;
3294        if ("string" != typeof e)
3295          return this.pushStack(
3296            ke(e).filter(function () {
3297              for (t = 0; t < i; t++) if (ke.contains(n[t], this)) return !0;
3298            })
3299          );
3300        for (t = 0; t < i; t++) ke.find(e, n[t], o);
3301        return (
3302          ((o = this.pushStack(1 < i ? ke.unique(o) : o)).selector = this
3303            .selector
3304            ? this.selector + " " + e
3305            : e),
3306          o
3307        );
3308      },
3309      has: function (e) {
3310        var t,
3311          o = ke(e, this),
3312          n = o.length;
3313        return this.filter(function () {
3314          for (t = 0; t < n; t++) if (ke.contains(this, o[t])) return !0;
3315        });
3316      },
3317      not: function (e) {
3318        return this.pushStack(de(this, e || [], !0));
3319      },
3320      filter: function (e) {
3321        return this.pushStack(de(this, e || [], !1));
3322      },
3323      is: function (e) {
3324        return !!de(
3325          this,
3326          "string" == typeof e && ae.test(e) ? ke(e) : e || [],
3327          !1
3328        ).length;
3329      },
3330      closest: function (e, t) {
3331        for (
3332          var o,
3333            n = 0,
3334            i = this.length,
3335            s = [],
3336            r =
3337              ae.test(e) || "string" != typeof e ? ke(e, t || this.context) : 0;
3338          n < i;
3339          n++
3340        )
3341          for (o = this[n]; o && o !== t; o = o.parentNode)
3342            if (
3343              o.nodeType < 11 &&
3344              (r
3345                ? -1 < r.index(o)
3346                : 1 === o.nodeType && ke.find.matchesSelector(o, e))
3347            ) {
3348              o = s.push(o);
3349              break;
3350            }
3351        return this.pushStack(1 < s.length ? ke.unique(s) : s);
3352      },
3353      index: function (e) {
3354        return e
3355          ? "string" == typeof e
3356            ? ke.inArray(this[0], ke(e))
3357            : ke.inArray(e.jquery ? e[0] : e, this)
3358          : this[0] && this[0].parentNode
3359          ? this.first().prevAll().length
3360          : -1;
3361      },
3362      add: function (e, t) {
3363        var o =
3364            "string" == typeof e
3365              ? ke(e, t)
3366              : ke.makeArray(e && e.nodeType ? [e] : e),
3367          n = ke.merge(this.get(), o);
3368        return this.pushStack(ke.unique(n));
3369      },
3370      addBack: function (e) {
3371        return this.add(
3372          null == e ? this.prevObject : this.prevObject.filter(e)
3373        );
3374      },
3375    }),
3376      ke.each(
3377        {
3378          parent: function (e) {
3379            var t = e.parentNode;
3380            return t && 11 !== t.nodeType ? t : null;
3381          },
3382          parents: function (e) {
3383            return ke.dir(e, "parentNode");
3384          },
3385          parentsUntil: function (e, t, o) {
3386            return ke.dir(e, "parentNode", o);
3387          },
3388          next: function (e) {
3389            return ce(e, "nextSibling");
3390          },
3391          prev: function (e) {
3392            return ce(e, "previousSibling");
3393          },
3394          nextAll: function (e) {
3395            return ke.dir(e, "nextSibling");
3396          },
3397          prevAll: function (e) {
3398            return ke.dir(e, "previousSibling");
3399          },
3400          nextUntil: function (e, t, o) {
3401            return ke.dir(e, "nextSibling", o);
3402          },
3403          prevUntil: function (e, t, o) {
3404            return ke.dir(e, "previousSibling", o);
3405          },
3406          siblings: function (e) {
3407            return ke.sibling((e.parentNode || {}).firstChild, e);
3408          },
3409          children: function (e) {
3410            return ke.sibling(e.firstChild);
3411          },
3412          contents: function (e) {
3413            return ke.nodeName(e, "iframe")
3414              ? e.contentDocument || e.contentWindow.document
3415              : ke.merge([], e.childNodes);
3416          },
3417        },
3418        function (n, i) {
3419          ke.fn[n] = function (e, t) {
3420            var o = ke.map(this, i, e);
3421            return (
3422              "Until" !== n.slice(-5) && (t = e),
3423              t && "string" == typeof t && (o = ke.filter(t, o)),
3424              1 < this.length &&
3425                (le[n] || (o = ke.unique(o)), re.test(n) && (o = o.reverse())),
3426              this.pushStack(o)
3427            );
3428          };
3429        }
3430      ),
3431      ke.extend({
3432        filter: function (e, t, o) {
3433          var n = t[0];
3434          return (
3435            o && (e = ":not(" + e + ")"),
3436            1 === t.length && 1 === n.nodeType
3437              ? ke.find.matchesSelector(n, e)
3438                ? [n]
3439                : []
3440              : ke.find.matches(
3441                  e,
3442                  ke.grep(t, function (e) {
3443                    return 1 === e.nodeType;
3444                  })
3445                )
3446          );
3447        },
3448        dir: function (e, t, o) {
3449          for (
3450            var n = [], i = e[t];
3451            i &&
3452            9 !== i.nodeType &&
3453            (o === T || 1 !== i.nodeType || !ke(i).is(o));
3454
3455          )
3456            1 === i.nodeType && n.push(i), (i = i[t]);
3457          return n;
3458        },
3459        sibling: function (e, t) {
3460          for (var o = []; e; e = e.nextSibling)
3461            1 === e.nodeType && e !== t && o.push(e);
3462          return o;
3463        },
3464      });
3465    var pe =
3466        "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",
3467      he = / jQuery\d+="(?:null|\d+)"/g,
3468      fe = RegExp("<(?:" + pe + ")[\\s/>]", "i"),
3469      me = /^\s+/,
3470      ge =
3471        /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,
3472      ve = /<([\w:]+)/,
3473      ye = /<tbody/i,
3474      we = /<|&#?\w+;/,
3475      be = /<(?:script|style|link)/i,
3476      xe = /^(?:checkbox|radio)$/i,
3477      Te = /checked\s*(?:[^=]|=\s*.checked.)/i,
3478      Ce = /^$|\/(?:java|ecma)script/i,
3479      Se = /^true\/(.*)/,
3480      ze = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,
3481      Ee = {
3482        option: [1, "<select multiple='multiple'>", "</select>"],
3483        legend: [1, "<fieldset>", "</fieldset>"],
3484        area: [1, "<map>", "</map>"],
3485        param: [1, "<object>", "</object>"],
3486        thead: [1, "<table>", "</table>"],
3487        tr: [2, "<table><tbody>", "</tbody></table>"],
3488        col: [2, "<table><tbody></tbody><colgroup>", "</colgroup></table>"],
3489        td: [3, "<table><tbody><tr>", "</tr></tbody></table>"],
3490        _default: ke.support.htmlSerialize
3491          ? [0, "", ""]
3492          : [1, "X<div>", "</div>"],
3493      },
3494      We = ue(m).appendChild(m.createElement("div"));
3495    function Le(e, t) {
3496      return ke.nodeName(e, "table") &&
3497        ke.nodeName(1 === t.nodeType ? t : t.firstChild, "tr")
3498        ? e.getElementsByTagName("tbody")[0] ||
3499            e.appendChild(e.ownerDocument.createElement("tbody"))
3500        : e;
3501    }
3502    function Ae(e) {
3503      return (e.type = (null !== ke.find.attr(e, "type")) + "/" + e.type), e;
3504    }
3505    function $e(e) {
3506      var t = Se.exec(e.type);
3507      return t ? (e.type = t[1]) : e.removeAttribute("type"), e;
3508    }
3509    function Fe(e, t) {
3510      for (var o, n = 0; null != (o = e[n]); n++)
3511        ke._data(o, "globalEval", !t || ke._data(t[n], "globalEval"));
3512    }
3513    function Oe(e, t) {
3514      if (1 === t.nodeType && ke.hasData(e)) {
3515        var o,
3516          n,
3517          i,
3518          s = ke._data(e),
3519          r = ke._data(t, s),
3520          a = s.events;
3521        if (a)
3522          for (o in (delete r.handle, (r.events = {}), a))
3523            for (n = 0, i = a[o].length; n < i; n++)
3524              ke.event.add(t, o, a[o][n]);
3525        r.data && (r.data = ke.extend({}, r.data));
3526      }
3527    }
3528    function He(e, t) {
3529      var o,
3530        n,
3531        i = 0,
3532        s =
3533          typeof e.getElementsByTagName !== v
3534            ? e.getElementsByTagName(t || "*")
3535            : typeof e.querySelectorAll !== v
3536            ? e.querySelectorAll(t || "*")
3537            : T;
3538      if (!s)
3539        for (s = [], o = e.childNodes || e; null != (n = o[i]); i++)
3540          !t || ke.nodeName(n, t) ? s.push(n) : ke.merge(s, He(n, t));
3541      return t === T || (t && ke.nodeName(e, t)) ? ke.merge([e], s) : s;
3542    }
3543    function De(e) {
3544      xe.test(e.type) && (e.defaultChecked = e.checked);
3545    }
3546    (Ee.optgroup = Ee.option),
3547      (Ee.tbody = Ee.tfoot = Ee.colgroup = Ee.caption = Ee.thead),
3548      (Ee.th = Ee.td),
3549      ke.fn.extend({
3550        text: function (e) {
3551          return ke.access(
3552            this,
3553            function (e) {
3554              return e === T
3555                ? ke.text(this)
3556                : this.empty().append(
3557                    ((this[0] && this[0].ownerDocument) || m).createTextNode(e)
3558                  );
3559            },
3560            null,
3561            e,
3562            arguments.length
3563          );
3564        },
3565        append: function () {
3566          return this.domManip(arguments, function (e) {
3567            (1 !== this.nodeType &&
3568              11 !== this.nodeType &&
3569              9 !== this.nodeType) ||
3570              Le(this, e).appendChild(e);
3571          });
3572        },
3573        prepend: function () {
3574          return this.domManip(arguments, function (e) {
3575            var t;
3576            (1 !== this.nodeType &&
3577              11 !== this.nodeType &&
3578              9 !== this.nodeType) ||
3579              (t = Le(this, e)).insertBefore(e, t.firstChild);
3580          });
3581        },
3582        before: function () {
3583          return this.domManip(arguments, function (e) {
3584            this.parentNode && this.parentNode.insertBefore(e, this);
3585          });
3586        },
3587        after: function () {
3588          return this.domManip(arguments, function (e) {
3589            this.parentNode &&
3590              this.parentNode.insertBefore(e, this.nextSibling);
3591          });
3592        },
3593        remove: function (e, t) {
3594          for (
3595            var o, n = e ? ke.filter(e, this) : this, i = 0;
3596            null != (o = n[i]);
3597            i++
3598          )
3599            t || 1 !== o.nodeType || ke.cleanData(He(o)),
3600              o.parentNode &&
3601                (t && ke.contains(o.ownerDocument, o) && Fe(He(o, "script")),
3602                o.parentNode.removeChild(o));
3603          return this;
3604        },
3605        empty: function () {
3606          for (var e, t = 0; null != (e = this[t]); t++) {
3607            for (1 === e.nodeType && ke.cleanData(He(e, !1)); e.firstChild; )
3608              e.removeChild(e.firstChild);
3609            e.options && ke.nodeName(e, "select") && (e.options.length = 0);
3610          }
3611          return this;
3612        },
3613        clone: function (e, t) {
3614          return (
3615            (e = null != e && e),
3616            (t = null == t ? e : t),
3617            this.map(function () {
3618              return ke.clone(this, e, t);
3619            })
3620          );
3621        },
3622        html: function (e) {
3623          return ke.access(
3624            this,
3625            function (e) {
3626              var t = this[0] || {},
3627                o = 0,
3628                n = this.length;
3629              if (e === T)
3630                return 1 === t.nodeType ? t.innerHTML.replace(he, "") : T;
3631              if (
3632                !(
3633                  "string" != typeof e ||
3634                  be.test(e) ||
3635                  (!ke.support.htmlSerialize && fe.test(e)) ||
3636                  (!ke.support.leadingWhitespace && me.test(e)) ||
3637                  Ee[(ve.exec(e) || ["", ""])[1].toLowerCase()]
3638                )
3639              ) {
3640                e = e.replace(ge, "<$1></$2>");
3641                try {
3642                  for (; o < n; o++)
3643                    1 === (t = this[o] || {}).nodeType &&
3644                      (ke.cleanData(He(t, !1)), (t.innerHTML = e));
3645                  t = 0;
3646                } catch (e) {}
3647              }
3648              t && this.empty().append(e);
3649            },
3650            null,
3651            e,
3652            arguments.length
3653          );
3654        },
3655        replaceWith: function () {
3656          var n = ke.map(this, function (e) {
3657              return [e.nextSibling, e.parentNode];
3658            }),
3659            i = 0;
3660          return (
3661            this.domManip(
3662              arguments,
3663              function (e) {
3664                var t = n[i++],
3665                  o = n[i++];
3666                o &&
3667                  (t && t.parentNode !== o && (t = this.nextSibling),
3668                  ke(this).remove(),
3669                  o.insertBefore(e, t));
3670              },
3671              !0
3672            ),
3673            i ? this : this.remove()
3674          );
3675        },
3676        detach: function (e) {
3677          return this.remove(e, !0);
3678        },
3679        domManip: function (o, n, i) {
3680          o = g.apply([], o);
3681          var e,
3682            t,
3683            s,
3684            r,
3685            a,
3686            l,
3687            c = 0,
3688            d = this.length,
3689            u = this,
3690            p = d - 1,
3691            h = o[0],
3692            f = ke.isFunction(h);
3693          if (
3694            f ||
3695            (!(d <= 1 || "string" != typeof h || ke.support.checkClone) &&
3696              Te.test(h))
3697          )
3698            return this.each(function (e) {
3699              var t = u.eq(e);
3700              f && (o[0] = h.call(this, e, t.html())), t.domManip(o, n, i);
3701            });
3702          if (
3703            d &&
3704            ((e = (l = ke.buildFragment(
3705              o,
3706              this[0].ownerDocument,
3707              !1,
3708              !i && this
3709            )).firstChild),
3710            1 === l.childNodes.length && (l = e),
3711            e)
3712          ) {
3713            for (s = (r = ke.map(He(l, "script"), Ae)).length; c < d; c++)
3714              (t = l),
3715                c !== p &&
3716                  ((t = ke.clone(t, !0, !0)),
3717                  s && ke.merge(r, He(t, "script"))),
3718                n.call(this[c], t, c);
3719            if (s)
3720              for (
3721                a = r[r.length - 1].ownerDocument, ke.map(r, $e), c = 0;
3722                c < s;
3723                c++
3724              )
3725                (t = r[c]),
3726                  Ce.test(t.type || "") &&
3727                    !ke._data(t, "globalEval") &&
3728                    ke.contains(a, t) &&
3729                    (t.src
3730                      ? ke._evalUrl(t.src)
3731                      : ke.globalEval(
3732                          (
3733                            t.text ||
3734                            t.textContent ||
3735                            t.innerHTML ||
3736                            ""
3737                          ).replace(ze, "")
3738                        ));
3739            l = e = null;
3740          }
3741          return this;
3742        },
3743      }),
3744      ke.each(
3745        {
3746          appendTo: "append",
3747          prependTo: "prepend",
3748          insertBefore: "before",
3749          insertAfter: "after",
3750          replaceAll: "replaceWith",
3751        },
3752        function (e, r) {
3753          ke.fn[e] = function (e) {
3754            for (var t, o = 0, n = [], i = ke(e), s = i.length - 1; o <= s; o++)
3755              (t = o === s ? this : this.clone(!0)),
3756                ke(i[o])[r](t),
3757                d.apply(n, t.get());
3758            return this.pushStack(n);
3759          };
3760        }
3761      ),
3762      ke.extend({
3763        clone: function (e, t, o) {
3764          var n,
3765            i,
3766            s,
3767            r,
3768            a,
3769            l = ke.contains(e.ownerDocument, e);
3770          if (
3771            (ke.support.html5Clone ||
3772            ke.isXMLDoc(e) ||
3773            !fe.test("<" + e.nodeName + ">")
3774              ? (s = e.cloneNode(!0))
3775              : ((We.innerHTML = e.outerHTML),
3776                We.removeChild((s = We.firstChild))),
3777            !(
3778              (ke.support.noCloneEvent && ke.support.noCloneChecked) ||
3779              (1 !== e.nodeType && 11 !== e.nodeType) ||
3780              ke.isXMLDoc(e)
3781            ))
3782          )
3783            for (n = He(s), a = He(e), r = 0; null != (i = a[r]); ++r)
3784              n[r] &&
3785                (function (e, t) {
3786                  var o, n, i;
3787                  if (1 === t.nodeType) {
3788                    if (
3789                      ((o = t.nodeName.toLowerCase()),
3790                      !ke.support.noCloneEvent && t[ke.expando])
3791                    ) {
3792                      for (n in (i = ke._data(t)).events)
3793                        ke.removeEvent(t, n, i.handle);
3794                      t.removeAttribute(ke.expando);
3795                    }
3796                    "script" === o && t.text !== e.text
3797                      ? ((Ae(t).text = e.text), $e(t))
3798                      : "object" === o
3799                      ? (t.parentNode && (t.outerHTML = e.outerHTML),
3800                        ke.support.html5Clone &&
3801                          e.innerHTML &&
3802                          !ke.trim(t.innerHTML) &&
3803                          (t.innerHTML = e.innerHTML))
3804                      : "input" === o && xe.test(e.type)
3805                      ? ((t.defaultChecked = t.checked = e.checked),
3806                        t.value !== e.value && (t.value = e.value))
3807                      : "option" === o
3808                      ? (t.defaultSelected = t.selected = e.defaultSelected)
3809                      : ("input" !== o && "textarea" !== o) ||
3810                        (t.defaultValue = e.defaultValue);
3811                  }
3812                })(i, n[r]);
3813          if (t)
3814            if (o)
3815              for (
3816                a = a || He(e), n = n || He(s), r = 0;
3817                null != (i = a[r]);
3818                r++
3819              )
3820                Oe(i, n[r]);
3821            else Oe(e, s);
3822          return (
3823            0 < (n = He(s, "script")).length && Fe(n, !l && He(e, "script")),
3824            (n = a = i = null),
3825            s
3826          );
3827        },
3828        buildFragment: function (e, t, o, n) {
3829          for (
3830            var i, s, r, a, l, c, d, u = e.length, p = ue(t), h = [], f = 0;
3831            f < u;
3832            f++
3833          )
3834            if ((s = e[f]) || 0 === s)
3835              if ("object" === ke.type(s)) ke.merge(h, s.nodeType ? [s] : s);
3836              else if (we.test(s)) {
3837                for (
3838                  a = a || p.appendChild(t.createElement("div")),
3839                    l = (ve.exec(s) || ["", ""])[1].toLowerCase(),
3840                    d = Ee[l] || Ee._default,
3841                    a.innerHTML = d[1] + s.replace(ge, "<$1></$2>") + d[2],
3842                    i = d[0];
3843                  i--;
3844
3845                )
3846                  a = a.lastChild;
3847                if (
3848                  (!ke.support.leadingWhitespace &&
3849                    me.test(s) &&
3850                    h.push(t.createTextNode(me.exec(s)[0])),
3851                  !ke.support.tbody)
3852                )
3853                  for (
3854                    i =
3855                      (s =
3856                        "table" !== l || ye.test(s)
3857                          ? "<table>" !== d[1] || ye.test(s)
3858                            ? 0
3859                            : a
3860                          : a.firstChild) && s.childNodes.length;
3861                    i--;
3862
3863                  )
3864                    ke.nodeName((c = s.childNodes[i]), "tbody") &&
3865                      !c.childNodes.length &&
3866                      s.removeChild(c);
3867                for (
3868                  ke.merge(h, a.childNodes), a.textContent = "";
3869                  a.firstChild;
3870
3871                )
3872                  a.removeChild(a.firstChild);
3873                a = p.lastChild;
3874              } else h.push(t.createTextNode(s));
3875          for (
3876            a && p.removeChild(a),
3877              ke.support.appendChecked || ke.grep(He(h, "input"), De),
3878              f = 0;
3879            (s = h[f++]);
3880
3881          )
3882            if (
3883              (!n || -1 === ke.inArray(s, n)) &&
3884              ((r = ke.contains(s.ownerDocument, s)),
3885              (a = He(p.appendChild(s), "script")),
3886              r && Fe(a),
3887              o)
3888            )
3889              for (i = 0; (s = a[i++]); ) Ce.test(s.type || "") && o.push(s);
3890          return (a = null), p;
3891        },
3892        cleanData: function (e, t) {
3893          for (
3894            var o,
3895              n,
3896              i,
3897              s,
3898              r = 0,
3899              a = ke.expando,
3900              l = ke.cache,
3901              c = ke.support.deleteExpando,
3902              d = ke.event.special;
3903            null != (o = e[r]);
3904            r++
3905          )
3906            if ((t || ke.acceptData(o)) && (s = (i = o[a]) && l[i])) {
3907              if (s.events)
3908                for (n in s.events)
3909                  d[n] ? ke.event.remove(o, n) : ke.removeEvent(o, n, s.handle);
3910              l[i] &&
3911                (delete l[i],
3912                c
3913                  ? delete o[a]
3914                  : typeof o.removeAttribute !== v
3915                  ? o.removeAttribute(a)
3916                  : (o[a] = null),
3917                u.push(i));
3918            }
3919        },
3920        _evalUrl: function (e) {
3921          return ke.ajax({
3922            url: e,
3923            type: "GET",
3924            dataType: "script",
3925            async: !1,
3926            global: !1,
3927            throws: !0,
3928          });
3929        },
3930      }),
3931      ke.fn.extend({
3932        wrapAll: function (t) {
3933          return ke.isFunction(t)
3934            ? this.each(function (e) {
3935                ke(this).wrapAll(t.call(this, e));
3936              })
3937            : (this[0] &&
3938                ((e = ke(t, this[0].ownerDocument).eq(0).clone(!0)),
3939                this[0].parentNode && e.insertBefore(this[0]),
3940                e
3941                  .map(function () {
3942                    for (
3943                      var e = this;
3944                      e.firstChild && 1 === e.firstChild.nodeType;
3945
3946                    )
3947                      e = e.firstChild;
3948                    return e;
3949                  })
3950                  .append(this)),
3951              this);
3952          var e;
3953        },
3954        wrapInner: function (o) {
3955          return ke.isFunction(o)
3956            ? this.each(function (e) {
3957                ke(this).wrapInner(o.call(this, e));
3958              })
3959            : this.each(function () {
3960                var e = ke(this),
3961                  t = e.contents();
3962                t.length ? t.wrapAll(o) : e.append(o);
3963              });
3964        },
3965        wrap: function (t) {
3966          var o = ke.isFunction(t);
3967          return this.each(function (e) {
3968            ke(this).wrapAll(o ? t.call(this, e) : t);
3969          });
3970        },
3971        unwrap: function () {
3972          return this.parent()
3973            .each(function () {
3974              ke.nodeName(this, "body") ||
3975                ke(this).replaceWith(this.childNodes);
3976            })
3977            .end();
3978        },
3979      });
3980    var Ie,
3981      Ne,
3982      Me,
3983      Pe = /alpha\([^)]*\)/i,
3984      je = /opacity\s*=\s*([^)]*)/,
3985      Re = /^(top|right|bottom|left)$/,
3986      Be = /^(none|table(?!-c[ea]).+)/,
3987      _e = /^margin/,
3988      qe = RegExp("^(" + x + ")(.*)$", "i"),
3989      Ue = RegExp("^(" + x + ")(?!px)[a-z%]+$", "i"),
3990      Xe = RegExp("^([+-])=(" + x + ")", "i"),
3991      Ze = { BODY: "block" },
3992      Ye = { position: "absolute", visibility: "hidden", display: "block" },
3993      Qe = { letterSpacing: 0, fontWeight: 400 },
3994      Ve = ["Top", "Right", "Bottom", "Left"],
3995      Ge = ["Webkit", "O", "Moz", "ms"];
3996    function Ke(e, t) {
3997      if (t in e) return t;
3998      for (
3999        var o = t.charAt(0).toUpperCase() + t.slice(1), n = t, i = Ge.length;
4000        i--;
4001
4002      )
4003        if ((t = Ge[i] + o) in e) return t;
4004      return n;
4005    }
4006    function Je(e, t) {
4007      return (
4008        (e = t || e),
4009        "none" === ke.css(e, "display") || !ke.contains(e.ownerDocument, e)
4010      );
4011    }
4012    function et(e, t) {
4013      for (var o, n, i, s = [], r = 0, a = e.length; r < a; r++)
4014        (n = e[r]).style &&
4015          ((s[r] = ke._data(n, "olddisplay")),
4016          (o = n.style.display),
4017          t
4018            ? (s[r] || "none" !== o || (n.style.display = ""),
4019              "" === n.style.display &&
4020                Je(n) &&
4021                (s[r] = ke._data(n, "olddisplay", it(n.nodeName))))
4022            : s[r] ||
4023              ((i = Je(n)),
4024              ((o && "none" !== o) || !i) &&
4025                ke._data(n, "olddisplay", i ? o : ke.css(n, "display"))));
4026      for (r = 0; r < a; r++)
4027        (n = e[r]).style &&
4028          ((t && "none" !== n.style.display && "" !== n.style.display) ||
4029            (n.style.display = t ? s[r] || "" : "none"));
4030      return e;
4031    }
4032    function tt(e, t, o) {
4033      var n = qe.exec(t);
4034      return n ? Math.max(0, n[1] - (o || 0)) + (n[2] || "px") : t;
4035    }
4036    function ot(e, t, o, n, i) {
4037      for (
4038        var s = o === (n ? "border" : "content") ? 4 : "width" === t ? 1 : 0,
4039          r = 0;
4040        s < 4;
4041        s += 2
4042      )
4043        "margin" === o && (r += ke.css(e, o + Ve[s], !0, i)),
4044          n
4045            ? ("content" === o && (r -= ke.css(e, "padding" + Ve[s], !0, i)),
4046              "margin" !== o &&
4047                (r -= ke.css(e, "border" + Ve[s] + "Width", !0, i)))
4048            : ((r += ke.css(e, "padding" + Ve[s], !0, i)),
4049              "padding" !== o &&
4050                (r += ke.css(e, "border" + Ve[s] + "Width", !0, i)));
4051      return r;
4052    }
4053    function nt(e, t, o) {
4054      var n = !0,
4055        i = "width" === t ? e.offsetWidth : e.offsetHeight,
4056        s = Ne(e),
4057        r =
4058          ke.support.boxSizing &&
4059          "border-box" === ke.css(e, "boxSizing", !1, s);
4060      if (i <= 0 || null == i) {
4061        if (
4062          (((i = Me(e, t, s)) < 0 || null == i) && (i = e.style[t]), Ue.test(i))
4063        )
4064          return i;
4065        (n = r && (ke.support.boxSizingReliable || i === e.style[t])),
4066          (i = parseFloat(i) || 0);
4067      }
4068      return i + ot(e, t, o || (r ? "border" : "content"), n, s) + "px";
4069    }
4070    function it(e) {
4071      var t = m,
4072        o = Ze[e];
4073      return (
4074        o ||
4075          (("none" !== (o = st(e, t)) && o) ||
4076            ((t = (
4077              (Ie = (
4078                Ie ||
4079                ke("<iframe frameborder='0' width='0' height='0'/>").css(
4080                  "cssText",
4081                  "display:block !important"
4082                )
4083              ).appendTo(t.documentElement))[0].contentWindow ||
4084              Ie[0].contentDocument
4085            ).document).write("<!doctype html><html><body>"),
4086            t.close(),
4087            (o = st(e, t)),
4088            Ie.detach()),
4089          (Ze[e] = o)),
4090        o
4091      );
4092    }
4093    function st(e, t) {
4094      var o = ke(t.createElement(e)).appendTo(t.body),
4095        n = ke.css(o[0], "display");
4096      return o.remove(), n;
4097    }
4098    ke.fn.extend({
4099      css: function (e, t) {
4100        return ke.access(
4101          this,
4102          function (e, t, o) {
4103            var n,
4104              i,
4105              s = {},
4106              r = 0;
4107            if (ke.isArray(t)) {
4108              for (i = Ne(e), n = t.length; r < n; r++)
4109                s[t[r]] = ke.css(e, t[r], !1, i);
4110              return s;
4111            }
4112            return o !== T ? ke.style(e, t, o) : ke.css(e, t);
4113          },
4114          e,
4115          t,
4116          1 < arguments.length
4117        );
4118      },
4119      show: function () {
4120        return et(this, !0);
4121      },
4122      hide: function () {
4123        return et(this);
4124      },
4125      toggle: function (e) {
4126        var t = "boolean" == typeof e;
4127        return this.each(function () {
4128          (t ? e : Je(this)) ? ke(this).show() : ke(this).hide();
4129        });
4130      },
4131    }),
4132      ke.extend({
4133        cssHooks: {
4134          opacity: {
4135            get: function (e, t) {
4136              if (t) {
4137                var o = Me(e, "opacity");
4138                return "" === o ? "1" : o;
4139              }
4140            },
4141          },
4142        },
4143        cssNumber: {
4144          columnCount: !0,
4145          fillOpacity: !0,
4146          fontWeight: !0,
4147          lineHeight: !0,
4148          opacity: !0,
4149          orphans: !0,
4150          widows: !0,
4151          zIndex: !0,
4152          zoom: !0,
4153        },
4154        cssProps: { float: ke.support.cssFloat ? "cssFloat" : "styleFloat" },
4155        style: function (e, t, o, n) {
4156          if (e && 3 !== e.nodeType && 8 !== e.nodeType && e.style) {
4157            var i,
4158              s,
4159              r,
4160              a = ke.camelCase(t),
4161              l = e.style;
4162            if (
4163              ((t = ke.cssProps[a] || (ke.cssProps[a] = Ke(l, a))),
4164              (r = ke.cssHooks[t] || ke.cssHooks[a]),
4165              o === T)
4166            )
4167              return r && "get" in r && (i = r.get(e, !1, n)) !== T ? i : l[t];
4168            if (
4169              ("string" === (s = typeof o) &&
4170                (i = Xe.exec(o)) &&
4171                ((o = (i[1] + 1) * i[2] + parseFloat(ke.css(e, t))),
4172                (s = "number")),
4173              !(
4174                null == o ||
4175                ("number" === s && isNaN(o)) ||
4176                ("number" !== s || ke.cssNumber[a] || (o += "px"),
4177                ke.support.clearCloneStyle ||
4178                  "" !== o ||
4179                  0 !== t.indexOf("background") ||
4180                  (l[t] = "inherit"),
4181                r && "set" in r && (o = r.set(e, o, n)) === T)
4182              ))
4183            )
4184              try {
4185                l[t] = o;
4186              } catch (e) {}
4187          }
4188        },
4189        css: function (e, t, o, n) {
4190          var i,
4191            s,
4192            r,
4193            a = ke.camelCase(t);
4194          return (
4195            (t = ke.cssProps[a] || (ke.cssProps[a] = Ke(e.style, a))),
4196            (r = ke.cssHooks[t] || ke.cssHooks[a]) &&
4197              "get" in r &&
4198              (s = r.get(e, !0, o)),
4199            s === T && (s = Me(e, t, n)),
4200            "normal" === s && t in Qe && (s = Qe[t]),
4201            "" === o || o
4202              ? ((i = parseFloat(s)), !0 === o || ke.isNumeric(i) ? i || 0 : s)
4203              : s
4204          );
4205        },
4206      }),
4207      f.getComputedStyle
4208        ? ((Ne = function (e) {
4209            return f.getComputedStyle(e, null);
4210          }),
4211          (Me = function (e, t, o) {
4212            var n,
4213              i,
4214              s,
4215              r = o || Ne(e),
4216              a = r ? r.getPropertyValue(t) || r[t] : T,
4217              l = e.style;
4218            return (
4219              r &&
4220                ("" !== a ||
4221                  ke.contains(e.ownerDocument, e) ||
4222                  (a = ke.style(e, t)),
4223                Ue.test(a) &&
4224                  _e.test(t) &&
4225                  ((n = l.width),
4226                  (i = l.minWidth),
4227                  (s = l.maxWidth),
4228                  (l.minWidth = l.maxWidth = l.width = a),
4229                  (a = r.width),
4230                  (l.width = n),
4231                  (l.minWidth = i),
4232                  (l.maxWidth = s))),
4233              a
4234            );
4235          }))
4236        : m.documentElement.currentStyle &&
4237          ((Ne = function (e) {
4238            return e.currentStyle;
4239          }),
4240          (Me = function (e, t, o) {
4241            var n,
4242              i,
4243              s,
4244              r = o || Ne(e),
4245              a = r ? r[t] : T,
4246              l = e.style;
4247            return (
4248              null == a && l && l[t] && (a = l[t]),
4249              Ue.test(a) &&
4250                !Re.test(t) &&
4251                ((n = l.left),
4252                (s = (i = e.runtimeStyle) && i.left) &&
4253                  (i.left = e.currentStyle.left),
4254                (l.left = "fontSize" === t ? "1em" : a),
4255                (a = l.pixelLeft + "px"),
4256                (l.left = n),
4257                s && (i.left = s)),
4258              "" === a ? "auto" : a
4259            );
4260          })),
4261      ke.each(["height", "width"], function (e, i) {
4262        ke.cssHooks[i] = {
4263          get: function (e, t, o) {
4264            return t
4265              ? 0 === e.offsetWidth && Be.test(ke.css(e, "display"))
4266                ? ke.swap(e, Ye, function () {
4267                    return nt(e, i, o);
4268                  })
4269                : nt(e, i, o)
4270              : T;
4271          },
4272          set: function (e, t, o) {
4273            var n = o && Ne(e);
4274            return tt(
4275              0,
4276              t,
4277              o
4278                ? ot(
4279                    e,
4280                    i,
4281                    o,
4282                    ke.support.boxSizing &&
4283                      "border-box" === ke.css(e, "boxSizing", !1, n),
4284                    n
4285                  )
4286                : 0
4287            );
4288          },
4289        };
4290      }),
4291      ke.support.opacity ||
4292        (ke.cssHooks.opacity = {
4293          get: function (e, t) {
4294            return je.test(
4295              (t && e.currentStyle ? e.currentStyle.filter : e.style.filter) ||
4296                ""
4297            )
4298              ? 0.01 * parseFloat(RegExp.$1) + ""
4299              : t
4300              ? "1"
4301              : "";
4302          },
4303          set: function (e, t) {
4304            var o = e.style,
4305              n = e.currentStyle,
4306              i = ke.isNumeric(t) ? "alpha(opacity=" + 100 * t + ")" : "",
4307              s = (n && n.filter) || o.filter || "";
4308            (((o.zoom = 1) <= t || "" === t) &&
4309              "" === ke.trim(s.replace(Pe, "")) &&
4310              o.removeAttribute &&
4311              (o.removeAttribute("filter"), "" === t || (n && !n.filter))) ||
4312              (o.filter = Pe.test(s) ? s.replace(Pe, i) : s + " " + i);
4313          },
4314        }),
4315      ke(function () {
4316        ke.support.reliableMarginRight ||
4317          (ke.cssHooks.marginRight = {
4318            get: function (e, t) {
4319              return t
4320                ? ke.swap(e, { display: "inline-block" }, Me, [
4321                    e,
4322                    "marginRight",
4323                  ])
4324                : T;
4325            },
4326          }),
4327          !ke.support.pixelPosition &&
4328            ke.fn.position &&
4329            ke.each(["top", "left"], function (e, o) {
4330              ke.cssHooks[o] = {
4331                get: function (e, t) {
4332                  return t
4333                    ? ((t = Me(e, o)),
4334                      Ue.test(t) ? ke(e).position()[o] + "px" : t)
4335                    : T;
4336                },
4337              };
4338            });
4339      }),
4340      ke.expr &&
4341        ke.expr.filters &&
4342        ((ke.expr.filters.hidden = function (e) {
4343          return (
4344            (e.offsetWidth <= 0 && e.offsetHeight <= 0) ||
4345            (!ke.support.reliableHiddenOffsets &&
4346              "none" === ((e.style && e.style.display) || ke.css(e, "display")))
4347          );
4348        }),
4349        (ke.expr.filters.visible = function (e) {
4350          return !ke.expr.filters.hidden(e);
4351        })),
4352      ke.each({ margin: "", padding: "", border: "Width" }, function (i, s) {
4353        (ke.cssHooks[i + s] = {
4354          expand: function (e) {
4355            for (
4356              var t = 0, o = {}, n = "string" == typeof e ? e.split(" ") : [e];
4357              t < 4;
4358              t++
4359            )
4360              o[i + Ve[t] + s] = n[t] || n[t - 2] || n[0];
4361            return o;
4362          },
4363        }),
4364          _e.test(i) || (ke.cssHooks[i + s].set = tt);
4365      });
4366    var rt = /%20/g,
4367      at = /\[\]$/,
4368      lt = /\r?\n/g,
4369      ct = /^(?:submit|button|image|reset|file)$/i,
4370      dt = /^(?:input|select|textarea|keygen)/i;
4371    ke.fn.extend({
4372      serialize: function () {
4373        return ke.param(this.serializeArray());
4374      },
4375      serializeArray: function () {
4376        return this.map(function () {
4377          var e = ke.prop(this, "elements");
4378          return e ? ke.makeArray(e) : this;
4379        })
4380          .filter(function () {
4381            var e = this.type;
4382            return (
4383              this.name &&
4384              !ke(this).is(":disabled") &&
4385              dt.test(this.nodeName) &&
4386              !ct.test(e) &&
4387              (this.checked || !xe.test(e))
4388            );
4389          })
4390          .map(function (e, t) {
4391            var o = ke(this).val();
4392            return null == o
4393              ? null
4394              : ke.isArray(o)
4395              ? ke.map(o, function (e) {
4396                  return { name: t.name, value: e.replace(lt, "\r\n") };
4397                })
4398              : { name: t.name, value: o.replace(lt, "\r\n") };
4399          })
4400          .get();
4401      },
4402    }),
4403      (ke.param = function (e, t) {
4404        function o(e, t) {
4405          (t = ke.isFunction(t) ? t() : null == t ? "" : t),
4406            (i[i.length] = encodeURIComponent(e) + "=" + encodeURIComponent(t));
4407        }
4408        var n,
4409          i = [];
4410        if (
4411          (t === T && (t = ke.ajaxSettings && ke.ajaxSettings.traditional),
4412          ke.isArray(e) || (e.jquery && !ke.isPlainObject(e)))
4413        )
4414          ke.each(e, function () {
4415            o(this.name, this.value);
4416          });
4417        else
4418          for (n in e)
4419            !(function o(n, e, i, s) {
4420              var t;
4421              if (ke.isArray(e))
4422                ke.each(e, function (e, t) {
4423                  i || at.test(n)
4424                    ? s(n, t)
4425                    : o(
4426                        n + "[" + ("object" == typeof t ? e : "") + "]",
4427                        t,
4428                        i,
4429                        s
4430                      );
4431                });
4432              else if (i || "object" !== ke.type(e)) s(n, e);
4433              else for (t in e) o(n + "[" + t + "]", e[t], i, s);
4434            })(n, e[n], t, o);
4435        return i.join("&").replace(rt, "+");
4436      }),
4437      ke.each(
4438        "blur focus focusin focusout
4438 load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(
4439          " "
4440        ),
4441        function (e, o) {
4442          ke.fn[o] = function (e, t) {
4443            return 0 < arguments.length
4444              ? this.on(o, null, e, t)
4445              : this.trigger(o);
4446          };
4447        }
4448      ),
4449      ke.fn.extend({
4450        hover: function (e, t) {
4451          return this.mouseenter(e).mouseleave(t || e);
4452        },
4453        bind: function (e, t, o) {
4454          return this.on(e, null, t, o);
4455        },
4456        unbind: function (e, t) {
4457          return this.off(e, null, t);
4458        },
4459        delegate: function (e, t, o, n) {
4460          return this.on(t, e, o, n);
4461        },
4462        undelegate: function (e, t, o) {
4463          return 1 === arguments.length
4464            ? this.off(e, "**")
4465            : this.off(t, e || "**", o);
4466        },
4467      });
4468    var ut,
4469      pt,
4470      ht = ke.now(),
4471      ft = /\?/,
4472      mt = /#.*$/,
4473      gt = /([?&])_=[^&]*/,
4474      vt = /^(.*?):[ \t]*([^\r\n]*)\r?$/gm,
4475      yt = /^(?:GET|HEAD)$/,
4476      wt = /^\/\//,
4477      bt = /^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,
4478      xt = ke.fn.load,
4479      kt = {},
4480      Tt = {},
4481      Ct = "*/".concat("*");
4482    try {
4483      pt = e.href;
4484    } catch (e) {
4485      ((pt = m.createElement("a")).href = ""), (pt = pt.href);
4486    }
4487    function St(s) {
4488      return function (e, t) {
4489        "string" != typeof e && ((t = e), (e = "*"));
4490        var o,
4491          n = 0,
4492          i = e.toLowerCase().match(C) || [];
4493        if (ke.isFunction(t))
4494          for (; (o = i[n++]); )
4495            "+" === o[0]
4496              ? ((o = o.slice(1) || "*"), (s[o] = s[o] || []).unshift(t))
4497              : (s[o] = s[o] || []).push(t);
4498      };
4499    }
4500    function zt(t, i, s, r) {
4501      var a = {},
4502        l = t === Tt;
4503      function c(e) {
4504        var n;
4505        return (
4506          (a[e] = !0),
4507          ke.each(t[e] || [], function (e, t) {
4508            var o = t(i, s, r);
4509            return "string" != typeof o || l || a[o]
4510              ? l
4511                ? !(n = o)
4512                : T
4513              : (i.dataTypes.unshift(o), c(o), !1);
4514          }),
4515          n
4516        );
4517      }
4518      return c(i.dataTypes[0]) || (!a["*"] && c("*"));
4519    }
4520    function Et(e, t) {
4521      var o,
4522        n,
4523        i = ke.ajaxSettings.flatOptions || {};
4524      for (n in t) t[n] !== T && ((i[n] ? e : (o = o || {}))[n] = t[n]);
4525      return o && ke.extend(!0, e, o), e;
4526    }
4527    (ut = bt.exec(pt.toLowerCase()) || []),
4528      (ke.fn.load = function (e, t, o) {
4529        if ("string" != typeof e && xt) return xt.apply(this, arguments);
4530        var n,
4531          i,
4532          s,
4533          r = this,
4534          a = e.indexOf(" ");
4535        return (
4536          0 <= a && ((n = e.slice(a, e.length)), (e = e.slice(0, a))),
4537          ke.isFunction(t)
4538            ? ((o = t), (t = T))
4539            : t && "object" == typeof t && (s = "POST"),
4540          0 < r.length &&
4541            ke
4542              .ajax({ url: e, type: s, dataType: "html", data: t })
4543              .done(function (e) {
4544                (i = arguments),
4545                  r.html(n ? ke("<div>").append(ke.parseHTML(e)).find(n) : e);
4546              })
4547              .complete(
4548                o &&
4549                  function (e, t) {
4550                    r.each(o, i || [e.responseText, t, e]);
4551                  }
4552              ),
4553          this
4554        );
4555      }),
4556      ke.each(
4557        [
4558          "ajaxStart",
4559          "ajaxStop",
4560          "ajaxComplete",
4561          "ajaxError",
4562          "ajaxSuccess",
4563          "ajaxSend",
4564        ],
4565        function (e, t) {
4566          ke.fn[t] = function (e) {
4567            return this.on(t, e);
4568          };
4569        }
4570      ),
4571      ke.extend({
4572        active: 0,
4573        lastModified: {},
4574        etag: {},
4575        ajaxSettings: {
4576          url: pt,
4577          type: "GET",
4578          isLocal:
4579            /^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(
4580              ut[1]
4581            ),
4582          global: !0,
4583          processData: !0,
4584          async: !0,
4585          contentType: "application/x-www-form-urlencoded; charset=UTF-8",
4586          accepts: {
4587            "*": Ct,
4588            text: "text/plain",
4589            html: "text/html",
4590            xml: "application/xml, text/xml",
4591            json: "application/json, text/javascript",
4592          },
4593          contents: { xml: /xml/, html: /html/, json: /json/ },
4594          responseFields: {
4595            xml: "responseXML",
4596            text: "responseText",
4597            json: "responseJSON",
4598          },
4599          converters: {
4600            "* text": String,
4601            "text html": !0,
4602            "text json": ke.parseJSON,
4603            "text xml": ke.parseXML,
4604          },
4605          flatOptions: { url: !0, context: !0 },
4606        },
4607        ajaxSetup: function (e, t) {
4608          return t ? Et(Et(e, ke.ajaxSettings), t) : Et(ke.ajaxSettings, e);
4609        },
4610        ajaxPrefilter: St(kt),
4611        ajaxTransport: St(Tt),
4612        ajax: function (e, t) {
4613          "object" == typeof e && ((t = e), (e = T)), (t = t || {});
4614          var o,
4615            n,
4616            d,
4617            u,
4618            p,
4619            h,
4620            f,
4621            i,
4622            m = ke.ajaxSetup({}, t),
4623            g = m.context || m,
4624            v = m.context && (g.nodeType || g.jquery) ? ke(g) : ke.event,
4625            y = ke.Deferred(),
4626            w = ke.Callbacks("once memory"),
4627            b = m.statusCode || {},
4628            s = {},
4629            r = {},
4630            x = 0,
4631            a = "canceled",
4632            k = {
4633              readyState: 0,
4634              getResponseHeader: function (e) {
4635                var t;
4636                if (2 === x) {
4637                  if (!i)
4638                    for (i = {}; (t = vt.exec(u)); )
4639                      i[t[1].toLowerCase()] = t[2];
4640                  t = i[e.toLowerCase()];
4641                }
4642                return null == t ? null : t;
4643              },
4644              getAllResponseHeaders: function () {
4645                return 2 === x ? u : null;
4646              },
4647              setRequestHeader: function (e, t) {
4648                var o = e.toLowerCase();
4649                return x || ((e = r[o] = r[o] || e), (s[e] = t)), this;
4650              },
4651              overrideMimeType: function (e) {
4652                return x || (m.mimeType = e), this;
4653              },
4654              statusCode: function (e) {
4655                var t;
4656                if (e)
4657                  if (x < 2) for (t in e) b[t] = [b[t], e[t]];
4658                  else k.always(e[k.status]);
4659                return this;
4660              },
4661              abort: function (e) {
4662                var t = e || a;
4663                return f && f.abort(t), l(0, t), this;
4664              },
4665            };
4666          if (
4667            ((y.promise(k).complete = w.add),
4668            (k.success = k.done),
4669            (k.error = k.fail),
4670            (m.url = ((e || m.url || pt) + "")
4671              .replace(mt, "")
4672              .replace(wt, ut[1] + "//")),
4673            (m.type = t.method || t.type || m.method || m.type),
4674            (m.dataTypes = ke
4675              .trim(m.dataType || "*")
4676              .toLowerCase()
4677              .match(C) || [""]),
4678            null == m.crossDomain &&
4679              ((o = bt.exec(m.url.toLowerCase())),
4680              (m.crossDomain = !(
4681                !o ||
4682                (o[1] === ut[1] &&
4683                  o[2] === ut[2] &&
4684                  (o[3] || ("http:" === o[1] ? "80" : "443")) ===
4685                    (ut[3] || ("http:" === ut[1] ? "80" : "443")))
4686              ))),
4687            m.data &&
4688              m.processData &&
4689              "string" != typeof m.data &&
4690              (m.data = ke.param(m.data, m.traditional)),
4691            zt(kt, m, t, k),
4692            2 === x)
4693          )
4694            return k;
4695          for (n in ((h = m.global) &&
4696            0 == ke.active++ &&
4697            ke.event.trigger("ajaxStart"),
4698          (m.type = m.type.toUpperCase()),
4699          (m.hasContent = !yt.test(m.type)),
4700          (d = m.url),
4701          m.hasContent ||
4702            (m.data &&
4703              ((d = m.url += (ft.test(d) ? "&" : "?") + m.data), delete m.data),
4704            !1 === m.cache &&
4705              (m.url = gt.test(d)
4706                ? d.replace(gt, "$1_=" + ht++)
4707                : d + (ft.test(d) ? "&" : "?") + "_=" + ht++)),
4708          m.ifModified &&
4709            (ke.lastModified[d] &&
4710              k.setRequestHeader("If-Modified-Since", ke.lastModified[d]),
4711            ke.etag[d] && k.setRequestHeader("If-None-Match", ke.etag[d])),
4712          ((m.data && m.hasContent && !1 !== m.contentType) || t.contentType) &&
4713            k.setRequestHeader("Content-Type", m.contentType),
4714          k.setRequestHeader(
4715            "Accept",
4716            m.dataTypes[0] && m.accepts[m.dataTypes[0]]
4717              ? m.accepts[m.dataTypes[0]] +
4718                  ("*" !== m.dataTypes[0] ? ", " + Ct + "; q=0.01" : "")
4719              : m.accepts["*"]
4720          ),
4721          m.headers))
4722            k.setRequestHeader(n, m.headers[n]);
4723          if (m.beforeSend && (!1 === m.beforeSend.call(g, k, m) || 2 === x))
4724            return k.abort();
4725          for (n in ((a = "abort"), { success: 1, error: 1, complete: 1 }))
4726            k[n](m[n]);
4727          if ((f = zt(Tt, m, t, k))) {
4728            (k.readyState = 1),
4729              h && v.trigger("ajaxSend", [k, m]),
4730              m.async &&
4731                0 < m.timeout &&
4732                (p = setTimeout(function () {
4733                  k.abort("timeout");
4734                }, m.timeout));
4735            try {
4736              (x = 1), f.send(s, l);
4737            } catch (e) {
4738              if (!(x < 2)) throw e;
4739              l(-1, e);
4740            }
4741          } else l(-1, "No Transport");
4742          function l(e, t, o, n) {
4743            var i,
4744              s,
4745              r,
4746              a,
4747              l,
4748              c = t;
4749            2 !== x &&
4750              ((x = 2),
4751              p && clearTimeout(p),
4752              (f = T),
4753              (u = n || ""),
4754              (k.readyState = 0 < e ? 4 : 0),
4755              (i = (200 <= e && e < 300) || 304 === e),
4756              o &&
4757                (a = (function (e, t, o) {
4758                  var n,
4759                    i,
4760                    s,
4761                    r,
4762                    a = e.contents,
4763                    l = e.dataTypes;
4764                  for (; "*" === l[0]; )
4765                    l.shift(),
4766                      i === T &&
4767                        (i = e.mimeType || t.getResponseHeader("Content-Type"));
4768                  if (i)
4769                    for (r in a)
4770                      if (a[r] && a[r].test(i)) {
4771                        l.unshift(r);
4772                        break;
4773                      }
4774                  if (l[0] in o) s = l[0];
4775                  else {
4776                    for (r in o) {
4777                      if (!l[0] || e.converters[r + " " + l[0]]) {
4778                        s = r;
4779                        break;
4780                      }
4781                      n = n || r;
4782                    }
4783                    s = s || n;
4784                  }
4785                  return s ? (s !== l[0] && l.unshift(s), o[s]) : T;
4786                })(m, k, o)),
4787              (a = (function (e, t, o, n) {
4788                var i,
4789                  s,
4790                  r,
4791                  a,
4792                  l,
4793                  c = {},
4794                  d = e.dataTypes.slice();
4795                if (d[1])
4796                  for (r in e.converters) c[r.toLowerCase()] = e.converters[r];
4797                s = d.shift();
4798                for (; s; )
4799                  if (
4800                    (e.responseFields[s] && (o[e.responseFields[s]] = t),
4801                    !l &&
4802                      n &&
4803                      e.dataFilter &&
4804                      (t = e.dataFilter(t, e.dataType)),
4805                    (l = s),
4806                    (s = d.shift()))
4807                  )
4808                    if ("*" === s) s = l;
4809                    else if ("*" !== l && l !== s) {
4810                      if (!(r = c[l + " " + s] || c["* " + s]))
4811                        for (i in c)
4812                          if (
4813                            (a = i.split(" "))[1] === s &&
4814                            (r = c[l + " " + a[0]] || c["* " + a[0]])
4815                          ) {
4816                            !0 === r
4817                              ? (r = c[i])
4818                              : !0 !== c[i] && ((s = a[0]), d.unshift(a[1]));
4819                            break;
4820                          }
4821                      if (!0 !== r)
4822                        if (r && e.throws) t = r(t);
4823                        else
4824                          try {
4825                            t = r(t);
4826                          } catch (e) {
4827                            return {
4828                              state: "parsererror",
4829                              error: r
4830                                ? e
4831                                : "No conversion from " + l + " to " + s,
4832                            };
4833                          }
4834                    }
4835                return { state: "success", data: t };
4836              })(m, a, k, i)),
4837              i
4838                ? (m.ifModified &&
4839                    ((l = k.getResponseHeader("Last-Modified")) &&
4840                      (ke.lastModified[d] = l),
4841                    (l = k.getResponseHeader("etag")) && (ke.etag[d] = l)),
4842                  204 === e || "HEAD" === m.type
4843                    ? (c = "nocontent")
4844                    : 304 === e
4845                    ? (c = "notmodified")
4846                    : ((c = a.state), (s = a.data), (i = !(r = a.error))))
4847                : ((r = c), (!e && c) || ((c = "error"), e < 0 && (e = 0))),
4848              (k.status = e),
4849              (k.statusText = (t || c) + ""),
4850              i ? y.resolveWith(g, [s, c, k]) : y.rejectWith(g, [k, c, r]),
4851              k.statusCode(b),
4852              (b = T),
4853              h &&
4854                v.trigger(i ? "ajaxSuccess" : "ajaxError", [k, m, i ? s : r]),
4855              w.fireWith(g, [k, c]),
4856              h &&
4857                (v.trigger("ajaxComplete", [k, m]),
4858                --ke.active || ke.event.trigger("ajaxStop")));
4859          }
4860          return k;
4861        },
4862        getJSON: function (e, t, o) {
4863          return ke.get(e, t, o, "json");
4864        },
4865        getScript: function (e, t) {
4866          return ke.get(e, T, t, "script");
4867        },
4868      }),
4869      ke.each(["get", "post"], function (e, i) {
4870        ke[i] = function (e, t, o, n) {
4871          return (
4872            ke.isFunction(t) && ((n = n || o), (o = t), (t = T)),
4873            ke.ajax({ url: e, type: i, dataType: n, data: t, success: o })
4874          );
4875        };
4876      }),
4877      ke.ajaxSetup({
4878        accepts: {
4879          script:
4880            "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript",
4881        },
4882        contents: { script: /(?:java|ecma)script/ },
4883        converters: {
4884          "text script": function (e) {
4885            return ke.globalEval(e), e;
4886          },
4887        },
4888      }),
4889      ke.ajaxPrefilter("script", function (e) {
4890        e.cache === T && (e.cache = !1),
4891          e.crossDomain && ((e.type = "GET"), (e.global = !1));
4892      }),
4893      ke.ajaxTransport("script", function (t) {
4894        if (t.crossDomain) {
4895          var n,
4896            i = m.head || ke("head")[0] || m.documentElement;
4897          return {
4898            send: function (e, o) {
4899              ((n = m.createElement("script")).async = !0),
4900                t.scriptCharset && (n.charset = t.scriptCharset),
4901                (n.src = t.url),
4902                (n.onload = n.onreadystatechange =
4903                  function (e, t) {
4904                    (!t &&
4905                      n.readyState &&
4906                      !/loaded|complete/.test(n.readyState)) ||
4907                      ((n.onload = n.onreadystatechange = null),
4908                      n.parentNode && n.parentNode.removeChild(n),
4909                      (n = null),
4910                      t || o(200, "success"));
4911                  }),
4912                i.insertBefore(n, i.firstChild);
4913            },
4914            abort: function () {
4915              n && n.onload(T, !0);
4916            },
4917          };
4918        }
4919      });
4920    var Wt = [],
4921      Lt = /(=)\?(?=&|$)|\?\?/;
4922    ke.ajaxSetup({
4923      jsonp: "callback",
4924      jsonpCallback: function () {
4925        var e = Wt.pop() || ke.expando + "_" + ht++;
4926        return (this[e] = !0), e;
4927      },
4928    }),
4929      ke.ajaxPrefilter("json jsonp", function (e, t, o) {
4930        var n,
4931          i,
4932          s,
4933          r =
4934            !1 !== e.jsonp &&
4935            (Lt.test(e.url)
4936              ? "url"
4937              : "string" == typeof e.data &&
4938                !(e.contentType || "").indexOf(
4939                  "application/x-www-form-urlencoded"
4940                ) &&
4941                Lt.test(e.data) &&
4942                "data");
4943        return r || "jsonp" === e.dataTypes[0]
4944          ? ((n = e.jsonpCallback =
4945              ke.isFunction(e.jsonpCallback)
4946                ? e.jsonpCallback()
4947                : e.jsonpCallback),
4948            r
4949              ? (e[r] = e[r].replace(Lt, "$1" + n))
4950              : !1 !== e.jsonp &&
4951                (e.url += (ft.test(e.url) ? "&" : "?") + e.jsonp + "=" + n),
4952            (e.converters["script json"] = function () {
4953              return s || ke.error(n + " was not called"), s[0];
4954            }),
4955            (e.dataTypes[0] = "json"),
4956            (i = f[n]),
4957            (f[n] = function () {
4958              s = arguments;
4959            }),
4960            o.always(function () {
4961              (f[n] = i),
4962                e[n] && ((e.jsonpCallback = t.jsonpCallback), Wt.push(n)),
4963                s && ke.isFunction(i) && i(s[0]),
4964                (s = i = T);
4965            }),
4966            "script")
4967          : T;
4968      });
4969    var At,
4970      $t,
4971      Ft = 0,
4972      Ot =
4973        f.ActiveXObject &&
4974        function () {
4975          var e;
4976          for (e in At) At[e](T, !0);
4977        };
4978    function Ht() {
4979      try {
4980        return new f.XMLHttpRequest();
4981      } catch (e) {}
4982    }
4983    (ke.ajaxSettings.xhr = f.ActiveXObject
4984      ? function () {
4985          return (
4986            (!this.isLocal && Ht()) ||
4987            (function () {
4988              try {
4989                return new f.ActiveXObject("Microsoft.XMLHTTP");
4990              } catch (e) {}
4991            })()
4992          );
4993        }
4994      : Ht),
4995      ($t = ke.ajaxSettings.xhr()),
4996      (ke.support.cors = !!$t && "withCredentials" in $t),
4997      ($t = ke.support.ajax = !!$t) &&
4998        ke.ajaxTransport(function (c) {
4999          var d;
5000          if (!c.crossDomain || ke.support.cors)
5001            return {
5002              send: function (e, r) {
5003                var a,
5004                  t,
5005                  l = c.xhr();
5006                if (
5007                  (c.username
5008                    ? l.open(c.type, c.url, c.async, c.username, c.password)
5009                    : l.open(c.type, c.url, c.async),
5010                  c.xhrFields)
5011                )
5012                  for (t in c.xhrFields) l[t] = c.xhrFields[t];
5013                c.mimeType &&
5014                  l.overrideMimeType &&
5015                  l.overrideMimeType(c.mimeType),
5016                  c.crossDomain ||
5017                    e["X-Requested-With"] ||
5018                    (e["X-Requested-With"] = "XMLHttpRequest");
5019                try {
5020                  for (t in e) l.setRequestHeader(t, e[t]);
5021                } catch (e) {}
5022                l.send((c.hasContent && c.data) || null),
5023                  (d = function (e, t) {
5024                    var o, n, i, s;
5025                    try {
5026                      if (d && (t || 4 === l.readyState))
5027                        if (
5028                          ((d = T),
5029                          a &&
5030                            ((l.onreadystatechange = ke.noop),
5031                            Ot && delete At[a]),
5032                          t)
5033                        )
5034                          4 !== l.readyState && l.abort();
5035                        else {
5036                          (s = {}),
5037                            (o = l.status),
5038                            (n = l.getAllResponseHeaders()),
5039                            "string" == typeof l.responseText &&
5040                              (s.text = l.responseText);
5041                          try {
5042                            i = l.statusText;
5043                          } catch (e) {
5044                            i = "";
5045                          }
5046                          o || !c.isLocal || c.crossDomain
5047                            ? 1223 === o && (o = 204)
5048                            : (o = s.text ? 200 : 404);
5049                        }
5050                    } catch (e) {
5051                      t || r(-1, e);
5052                    }
5053                    s && r(o, i, s, n);
5054                  }),
5055                  c.async
5056                    ? 4 === l.readyState
5057                      ? setTimeout(d)
5058                      : ((a = ++Ft),
5059                        Ot &&
5060                          (At || ((At = {}), ke(f).unload(Ot)), (At[a] = d)),
5061                        (l.onreadystatechange = d))
5062                    : d();
5063              },
5064              abort: function () {
5065                d && d(T, !0);
5066              },
5067            };
5068        });
5069    var Dt,
5070      It,
5071      Nt = /^(?:toggle|show|hide)$/,
5072      Mt = RegExp("^(?:([+-])=|)(" + x + ")([a-z%]*)$", "i"),
5073      Pt = /queueHooks$/,
5074      jt = [
5075        function (t, e, o) {
5076          var n,
5077            i,
5078            s,
5079            r,
5080            a,
5081            l,
5082            c = this,
5083            d = {},
5084            u = t.style,
5085            p = t.nodeType && Je(t),
5086            h = ke._data(t, "fxshow");
5087          for (n in (o.queue ||
5088            (null == (a = ke._queueHooks(t, "fx")).unqueued &&
5089              ((a.unqueued = 0),
5090              (l = a.empty.fire),
5091              (a.empty.fire = function () {
5092                a.unqueued || l();
5093              })),
5094            a.unqueued++,
5095            c.always(function () {
5096              c.always(function () {
5097                a.unqueued--, ke.queue(t, "fx").length || a.empty.fire();
5098              });
5099            })),
5100          1 === t.nodeType &&
5101            ("height" in e || "width" in e) &&
5102            ((o.overflow = [u.overflow, u.overflowX, u.overflowY]),
5103            "inline" === ke.css(t, "display") &&
5104              "none" === ke.css(t, "float") &&
5105              (ke.support.inlineBlockNeedsLayout && "inline" !== it(t.nodeName)
5106                ? (u.zoom = 1)
5107                : (u.display = "inline-block"))),
5108          o.overflow &&
5109            ((u.overflow = "hidden"),
5110            ke.support.shrinkWrapBlocks ||
5111              c.always(function () {
5112                (u.overflow = o.overflow[0]),
5113                  (u.overflowX = o.overflow[1]),
5114                  (u.overflowY = o.overflow[2]);
5115              })),
5116          e))
5117            if (((i = e[n]), Nt.exec(i))) {
5118              if (
5119                (delete e[n],
5120                (s = s || "toggle" === i),
5121                i === (p ? "hide" : "show"))
5122              )
5123                continue;
5124              d[n] = (h && h[n]) || ke.style(t, n);
5125            }
5126          if (!ke.isEmptyObject(d))
5127            for (n in (h
5128              ? "hidden" in h && (p = h.hidden)
5129              : (h = ke._data(t, "fxshow", {})),
5130            s && (h.hidden = !p),
5131            p
5132              ? ke(t).show()
5133              : c.done(function () {
5134                  ke(t).hide();
5135                }),
5136            c.done(function () {
5137              var e;
5138              for (e in (ke._removeData(t, "fxshow"), d)) ke.style(t, e, d[e]);
5139            }),
5140            d))
5141              (r = _t(p ? h[n] : 0, n, c)),
5142                n in h ||
5143                  ((h[n] = r.start),
5144                  p &&
5145                    ((r.end = r.start),
5146                    (r.start = "width" === n || "height" === n ? 1 : 0)));
5147        },
5148      ],
5149      Rt = {
5150        "*": [
5151          function (e, t) {
5152            var o = this.createTween(e, t),
5153              n = o.cur(),
5154              i = Mt.exec(t),
5155              s = (i && i[3]) || (ke.cssNumber[e] ? "" : "px"),
5156              r =
5157                (ke.cssNumber[e] || ("px" !== s && +n)) &&
5158                Mt.exec(ke.css(o.elem, e)),
5159              a = 1,
5160              l = 20;
5161            if (r && r[3] !== s)
5162              for (
5163                s = s || r[3], i = i || [], r = +n || 1;
5164                (r /= a = a || ".5"),
5165                  ke.style(o.elem, e, r + s),
5166                  a !== (a = o.cur() / n) && 1 !== a && --l;
5167
5168              );
5169            return (
5170              i &&
5171                ((r = o.start = +r || +n || 0),
5172                (o.unit = s),
5173                (o.end = i[1] ? r + (i[1] + 1) * i[2] : +i[2])),
5174              o
5175            );
5176          },
5177        ],
5178      };
5179    function Bt() {
5180      return (
5181        setTimeout(function () {
5182          Dt = T;
5183        }),
5184        (Dt = ke.now())
5185      );
5186    }
5187    function _t(e, t, o) {
5188      for (
5189        var n, i = (Rt[t] || []).concat(Rt["*"]), s = 0, r = i.length;
5190        s < r;
5191        s++
5192      )
5193        if ((n = i[s].call(o, t, e))) return n;
5194    }
5195    function qt(s, e, t) {
5196      var o,
5197        r,
5198        n = 0,
5199        i = jt.length,
5200        a = ke.Deferred().always(function () {
5201          delete l.elem;
5202        }),
5203        l = function () {
5204          if (r) return !1;
5205          for (
5206            var e = Dt || Bt(),
5207              t = Math.max(0, c.startTime + c.duration - e),
5208              o = 1 - (t / c.duration || 0),
5209              n = 0,
5210              i = c.tweens.length;
5211            n < i;
5212            n++
5213          )
5214            c.tweens[n].run(o);
5215          return (
5216            a.notifyWith(s, [c, o, t]),
5217            o < 1 && i ? t : (a.resolveWith(s, [c]), !1)
5218          );
5219        },
5220        c = a.promise({
5221          elem: s,
5222          props: ke.extend({}, e),
5223          opts: ke.extend(!0, { specialEasing: {} }, t),
5224          originalProperties: e,
5225          originalOptions: t,
5226          startTime: Dt || Bt(),
5227          duration: t.duration,
5228          tweens: [],
5229          createTween: function (e, t) {
5230            var o = ke.Tween(
5231              s,
5232              c.opts,
5233              e,
5234              t,
5235              c.opts.specialEasing[e] || c.opts.easing
5236            );
5237            return c.tweens.push(o), o;
5238          },
5239          stop: function (e) {
5240            var t = 0,
5241              o = e ? c.tweens.length : 0;
5242            if (r) return this;
5243            for (r = !0; t < o; t++) c.tweens[t].run(1);
5244            return e ? a.resolveWith(s, [c, e]) : a.rejectWith(s, [c, e]), this;
5245          },
5246        }),
5247        d = c.props;
5248      for (
5249        (function (e, t) {
5250          var o, n, i, s, r;
5251          for (o in e)
5252            if (
5253              ((n = ke.camelCase(o)),
5254              (i = t[n]),
5255              (s = e[o]),
5256              ke.isArray(s) && ((i = s[1]), (s = e[o] = s[0])),
5257              o !== n && ((e[n] = s), delete e[o]),
5258              (r = ke.cssHooks[n]) && ("expand" in r))
5259            )
5260              for (o in ((s = r.expand(s)), delete e[n], s))
5261                (o in e) || ((e[o] = s[o]), (t[o] = i));
5262            else t[n] = i;
5263        })(d, c.opts.specialEasing);
5264        n < i;
5265        n++
5266      )
5267        if ((o = jt[n].call(c, s, d, c.opts))) return o;
5268      return (
5269        ke.map(d, _t, c),
5270        ke.isFunction(c.opts.start) && c.opts.start.call(s, c),
5271        ke.fx.timer(ke.extend(l, { elem: s, anim: c, queue: c.opts.queue })),
5272        c
5273          .progress(c.opts.progress)
5274          .done(c.opts.done, c.opts.complete)
5275          .fail(c.opts.fail)
5276          .always(c.opts.always)
5277      );
5278    }
5279    function Ut(e, t, o, n, i) {
5280      return new Ut.prototype.init(e, t, o, n, i);
5281    }
5282    function Xt(e, t) {
5283      var o,
5284        n = { height: e },
5285        i = 0;
5286      for (t = t ? 1 : 0; i < 4; i += 2 - t)
5287        n["margin" + (o = Ve[i])] = n["padding" + o] = e;
5288      return t && (n.opacity = n.width = e), n;
5289    }
5290    function Zt(e) {
5291      return ke.isWindow(e)
5292        ? e
5293        : 9 === e.nodeType && (e.defaultView || e.parentWindow);
5294    }
5295    (ke.Animation = ke.extend(qt, {
5296      tweener: function (e, t) {
5297        for (
5298          var o,
5299            n = 0,
5300            i = (e = ke.isFunction(e) ? ((t = e), ["*"]) : e.split(" ")).length;
5301          n < i;
5302          n++
5303        )
5304          (o = e[n]), (Rt[o] = Rt[o] || []), Rt[o].unshift(t);
5305      },
5306      prefilter: function (e, t) {
5307        t ? jt.unshift(e) : jt.push(e);
5308      },
5309    })),
5310      ((ke.Tween = Ut).prototype = {
5311        constructor: Ut,
5312        init: function (e, t, o, n, i, s) {
5313          (this.elem = e),
5314            (this.prop = o),
5315            (this.easing = i || "swing"),
5316            (this.options = t),
5317            (this.start = this.now = this.cur()),
5318            (this.end = n),
5319            (this.unit = s || (ke.cssNumber[o] ? "" : "px"));
5320        },
5321        cur: function () {
5322          var e = Ut.propHooks[this.prop];
5323          return e && e.get ? e.get(this) : Ut.propHooks._default.get(this);
5324        },
5325        run: function (e) {
5326          var t,
5327            o = Ut.propHooks[this.prop];
5328          return (
5329            (this.pos = t =
5330              this.options.duration
5331                ? ke.easing[this.easing](
5332                    e,
5333                    this.options.duration * e,
5334                    0,
5335                    1,
5336                    this.options.duration
5337                  )
5338                : e),
5339            (this.now = (this.end - this.start) * t + this.start),
5340            this.options.step &&
5341              this.options.step.call(this.elem, this.now, this),
5342            o && o.set ? o.set(this) : Ut.propHooks._default.set(this),
5343            this
5344          );
5345        },
5346      }),
5347      (Ut.prototype.init.prototype = Ut.prototype),
5348      (Ut.propHooks = {
5349        _default: {
5350          get: function (e) {
5351            var t;
5352            return null == e.elem[e.prop] ||
5353              (e.elem.style && null != e.elem.style[e.prop])
5354              ? (t = ke.css(e.elem, e.prop, "")) && "auto" !== t
5355                ? t
5356                : 0
5357              : e.elem[e.prop];
5358          },
5359          set: function (e) {
5360            ke.fx.step[e.prop]
5361              ? ke.fx.step[e.prop](e)
5362              : e.elem.style &&
5363                (null != e.elem.style[ke.cssProps[e.prop]] ||
5364                  ke.cssHooks[e.prop])
5365              ? ke.style(e.elem, e.prop, e.now + e.unit)
5366              : (e.elem[e.prop] = e.now);
5367          },
5368        },
5369      }),
5370      (Ut.propHooks.scrollTop = Ut.propHooks.scrollLeft =
5371        {
5372          set: function (e) {
5373            e.elem.nodeType && e.elem.parentNode && (e.elem[e.prop] = e.now);
5374          },
5375        }),
5376      ke.each(["toggle", "show", "hide"], function (e, n) {
5377        var i = ke.fn[n];
5378        ke.fn[n] = function (e, t, o) {
5379          return null == e || "boolean" == typeof e
5380            ? i.apply(this, arguments)
5381            : this.animate(Xt(n, !0), e, t, o);
5382        };
5383      }),
5384      ke.fn.extend({
5385        fadeTo: function (e, t, o, n) {
5386          return this.filter(Je)
5387            .css("opacity", 0)
5388            .show()
5389            .end()
5390            .animate({ opacity: t }, e, o, n);
5391        },
5392        animate: function (t, e, o, n) {
5393          function i() {
5394            var e = qt(this, ke.extend({}, t), r);
5395            (s || ke._data(this, "finish")) && e.stop(!0);
5396          }
5397          var s = ke.isEmptyObject(t),
5398            r = ke.speed(e, o, n);
5399          return (
5400            (i.finish = i),
5401            s || !1 === r.queue ? this.each(i) : this.queue(r.queue, i)
5402          );
5403        },
5404        stop: function (i, e, s) {
5405          function r(e) {
5406            var t = e.stop;
5407            delete e.stop, t(s);
5408          }
5409          return (
5410            "string" != typeof i && ((s = e), (e = i), (i = T)),
5411            e && !1 !== i && this.queue(i || "fx", []),
5412            this.each(function () {
5413              var e = !0,
5414                t = null != i && i + "queueHooks",
5415                o = ke.timers,
5416                n = ke._data(this);
5417              if (t) n[t] && n[t].stop && r(n[t]);
5418              else for (t in n) n[t] && n[t].stop && Pt.test(t) && r(n[t]);
5419              for (t = o.length; t--; )
5420                o[t].elem !== this ||
5421                  (null != i && o[t].queue !== i) ||
5422                  (o[t].anim.stop(s), (e = !1), o.splice(t, 1));
5423              (!e && s) || ke.dequeue(this, i);
5424            })
5425          );
5426        },
5427        finish: function (r) {
5428          return (
5429            !1 !== r && (r = r || "fx"),
5430            this.each(function () {
5431              var e,
5432                t = ke._data(this),
5433                o = t[r + "queue"],
5434                n = t[r + "queueHooks"],
5435                i = ke.timers,
5436                s = o ? o.length : 0;
5437              for (
5438                t.finish = !0,
5439                  ke.queue(this, r, []),
5440                  n && n.stop && n.stop.call(this, !0),
5441                  e = i.length;
5442                e--;
5443
5444              )
5445                i[e].elem === this &&
5446                  i[e].queue === r &&
5447                  (i[e].anim.stop(!0), i.splice(e, 1));
5448              for (e = 0; e < s; e++)
5449                o[e] && o[e].finish && o[e].finish.call(this);
5450              delete t.finish;
5451            })
5452          );
5453        },
5454      }),
5455      ke.each(
5456        {
5457          slideDown: Xt("show"),
5458          slideUp: Xt("hide"),
5459          slideToggle: Xt("toggle"),
5460          fadeIn: { opacity: "show" },
5461          fadeOut: { opacity: "hide" },
5462          fadeToggle: { opacity: "toggle" },
5463        },
5464        function (e, n) {
5465          ke.fn[e] = function (e, t, o) {
5466            return this.animate(n, e, t, o);
5467          };
5468        }
5469      ),
5470      (ke.speed = function (e, t, o) {
5471        var n =
5472          e && "object" == typeof e
5473            ? ke.extend({}, e)
5474            : {
5475                complete: o || (!o && t) || (ke.isFunction(e) && e),
5476                duration: e,
5477                easing: (o && t) || (t && !ke.isFunction(t) && t),
5478              };
5479        return (
5480          (n.duration = ke.fx.off
5481            ? 0
5482            : "number" == typeof n.duration
5483            ? n.duration
5484            : n.duration in ke.fx.speeds
5485            ? ke.fx.speeds[n.duration]
5486            : ke.fx.speeds._default),
5487          (null != n.queue && !0 !== n.queue) || (n.queue = "fx"),
5488          (n.old = n.complete),
5489          (n.complete = function () {
5490            ke.isFunction(n.old) && n.old.call(this),
5491              n.queue && ke.dequeue(this, n.queue);
5492          }),
5493          n
5494        );
5495      }),
5496      (ke.easing = {
5497        linear: function (e) {
5498          return e;
5499        },
5500        swing: function (e) {
5501          return 0.5 - Math.cos(e * Math.PI) / 2;
5502        },
5503      }),
5504      (ke.timers = []),
5505      (ke.fx = Ut.prototype.init),
5506      (ke.fx.tick = function () {
5507        var e,
5508          t = ke.timers,
5509          o = 0;
5510        for (Dt = ke.now(); t.length > o; o++)
5511          (e = t[o])() || t[o] !== e || t.splice(o--, 1);
5512        t.length || ke.fx.stop(), (Dt = T);
5513      }),
5514      (ke.fx.timer = function (e) {
5515        e() && ke.timers.push(e) && ke.fx.start();
5516      }),
5517      (ke.fx.interval = 13),
5518      (ke.fx.start = function () {
5519        It = It || setInterval(ke.fx.tick, ke.fx.interval);
5520      }),
5521      (ke.fx.stop = function () {
5522        clearInterval(It), (It = null);
5523      }),
5524      (ke.fx.speeds = { slow: 600, fast: 200, _default: 400 }),
5525      (ke.fx.step = {}),
5526      ke.expr &&
5527        ke.expr.filters &&
5528        (ke.expr.filters.animated = function (t) {
5529          return ke.grep(ke.timers, function (e) {
5530            return t === e.elem;
5531          }).length;
5532        }),
5533      (ke.fn.offset = function (t) {
5534        if (arguments.length)
5535          return t === T
5536            ? this
5537            : this.each(function (e) {
5538                ke.offset.setOffset(this, t, e);
5539              });
5540        var e,
5541          o,
5542          n = { top: 0, left: 0 },
5543          i = this[0],
5544          s = i && i.ownerDocument;
5545        return s
5546          ? ((e = s.documentElement),
5547            ke.contains(e, i)
5548              ? (typeof i.getBoundingClientRect !== v &&
5549                  (n = i.getBoundingClientRect()),
5550                (o = Zt(s)),
5551                {
5552                  top:
5553                    n.top + (o.pageYOffset || e.scrollTop) - (e.clientTop || 0),
5554                  left:
5555                    n.left +
5556                    (o.pageXOffset || e.scrollLeft) -
5557                    (e.clientLeft || 0),
5558                })
5559              : n)
5560          : void 0;
5561      }),
5562      (ke.offset = {
5563        setOffset: function (e, t, o) {
5564          var n = ke.css(e, "position");
5565          "static" === n && (e.style.position = "relative");
5566          var i,
5567            s = ke(e),
5568            r = s.offset(),
5569            a = ke.css(e, "top"),
5570            l = ke.css(e, "left"),
5571            c = {},
5572            d = {},
5573            u =
5574              ("absolute" === n || "fixed" === n) &&
5575              -1 < ke.inArray("auto", [a, l])
5576                ? ((i = (d = s.position()).top), d.left)
5577                : ((i = parseFloat(a) || 0), parseFloat(l) || 0);
5578          ke.isFunction(t) && (t = t.call(e, o, r)),
5579            null != t.top && (c.top = t.top - r.top + i),
5580            null != t.left && (c.left = t.left - r.left + u),
5581            "using" in t ? t.using.call(e, c) : s.css(c);
5582        },
5583      }),
5584      ke.fn.extend({
5585        position: function () {
5586          if (this[0]) {
5587            var e,
5588              t,
5589              o = { top: 0, left: 0 },
5590              n = this[0];
5591            return (
5592              "fixed" === ke.css(n, "position")
5593                ? (t = n.getBoundingClientRect())
5594                : ((e = this.offsetParent()),
5595                  (t = this.offset()),
5596                  ke.nodeName(e[0], "html") || (o = e.offset()),
5597                  (o.top += ke.css(e[0], "borderTopWidth", !0)),
5598                  (o.left += ke.css(e[0], "borderLeftWidth", !0))),
5599              {
5600                top: t.top - o.top - ke.css(n, "marginTop", !0),
5601                left: t.left - o.left - ke.css(n, "marginLeft", !0),
5602              }
5603            );
5604          }
5605        },
5606        offsetParent: function () {
5607          return this.map(function () {
5608            for (
5609              var e = this.offsetParent || s;
5610              e &&
5611              !ke.nodeName(e, "html") &&
5612              "static" === ke.css(e, "position");
5613
5614            )
5615              e = e.offsetParent;
5616            return e || s;
5617          });
5618        },
5619      }),
5620      ke.each(
5621        { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" },
5622        function (t, i) {
5623          var s = /Y/.test(i);
5624          ke.fn[t] = function (e) {
5625            return ke.access(
5626              this,
5627              function (e, t, o) {
5628                var n = Zt(e);
5629                return o === T
5630                  ? n
5631                    ? i in n
5632                      ? n[i]
5633                      : n.document.documentElement[t]
5634                    : e[t]
5635                  : (n
5636                      ? n.scrollTo(
5637                          s ? ke(n).scrollLeft() : o,
5638                          s ? o : ke(n).scrollTop()
5639                        )
5640                      : (e[t] = o),
5641                    T);
5642              },
5643              t,
5644              e,
5645              arguments.length,
5646              null
5647            );
5648          };
5649        }
5650      ),
5651      ke.each({ Height: "height", Width: "width" }, function (s, r) {
5652        ke.each(
5653          { padding: "inner" + s, content: r, "": "outer" + s },
5654          function (n, e) {
5655            ke.fn[e] = function (e, t) {
5656              var o = arguments.length && (n || "boolean" != typeof e),
5657                i = n || (!0 === e || !0 === t ? "margin" : "border");
5658              return ke.access(
5659                this,
5660                function (e, t, o) {
5661                  var n;
5662                  return ke.isWindow(e)
5663                    ? e.document.documentElement["client" + s]
5664                    : 9 === e.nodeType
5665                    ? ((n = e.documentElement),
5666                      Math.max(
5667                        e.body["scroll" + s],
5668                        n["scroll" + s],
5669                        e.body["offset" + s],
5670                        n["offset" + s],
5671                        n["client" + s]
5672                      ))
5673                    : o === T
5674                    ? ke.css(e, t, i)
5675                    : ke.style(e, t, o, i);
5676                },
5677                r,
5678                o ? e : T,
5679                o,
5680                null
5681              );
5682            };
5683          }
5684        );
5685      }),
5686      (ke.fn.size = function () {
5687        return this.length;
5688      }),
5689      (ke.fn.andSelf = ke.fn.addBack),
5690      "object" == typeof module && module && "object" == typeof module.exports
5691        ? (module.exports = ke)
5692        : ((f.jQuery = f.$ = ke),
5693          "function" == typeof define &&
5694            define.amd &&
5695            define("jquery", [], function () {
5696              return ke;
5697            }));
5698  })(window),
5699  (jQuery.easing.jswing = jQuery.easing.swing),
5700  jQuery.extend(jQuery.easing, {
5701    def: "easeOutQuad",
5702    swing: function (e, t, o, n, i) {
5703      return jQuery.easing[jQuery.easing.def](e, t, o, n, i);
5704    },
5705    easeInQuad: function (e, t, o, n, i) {
5706      return n * (t /= i) * t + o;
5707    },
5708    easeOutQuad: function (e, t, o, n, i) {
5709      return -n * (t /= i) * (t - 2) + o;
5710    },
5711    easeInOutQuad: function (e, t, o, n, i) {
5712      return (t /= i / 2) < 1
5713        ? (n / 2) * t * t + o
5714        : (-n / 2) * (--t * (t - 2) - 1) + o;
5715    },
5716    easeInCubic: function (e, t, o, n, i) {
5717      return n * (t /= i) * t * t + o;
5718    },
5719    easeOutCubic: function (e, t, o, n, i) {
5720      return n * ((t = t / i - 1) * t * t + 1) + o;
5721    },
5722    easeInOutCubic: function (e, t, o, n, i) {
5723      return (t /= i / 2) < 1
5724        ? (n / 2) * t * t * t + o
5725        : (n / 2) * ((t -= 2) * t * t + 2) + o;
5726    },
5727    easeInQuart: function (e, t, o, n, i) {
5728      return n * (t /= i) * t * t * t + o;
5729    },
5730    easeOutQuart: function (e, t, o, n, i) {
5731      return -n * ((t = t / i - 1) * t * t * t - 1) + o;
5732    },
5733    easeInOutQuart: function (e, t, o, n, i) {
5734      return (t /= i / 2) < 1
5735        ? (n / 2) * t * t * t * t + o
5736        : (-n / 2) * ((t -= 2) * t * t * t - 2) + o;
5737    },
5738    easeInQuint: function (e, t, o, n, i) {
5739      return n * (t /= i) * t * t * t * t + o;
5740    },
5741    easeOutQuint: function (e, t, o, n, i) {
5742      return n * ((t = t / i - 1) * t * t * t * t + 1) + o;
5743    },
5744    easeInOutQuint: function (e, t, o, n, i) {
5745      return (t /= i / 2) < 1
5746        ? (n / 2) * t * t * t * t * t + o
5747        : (n / 2) * ((t -= 2) * t * t * t * t + 2) + o;
5748    },
5749    easeInSine: function (e, t, o, n, i) {
5750      return -n * Math.cos((t / i) * (Math.PI / 2)) + n + o;
5751    },
5752    easeOutSine: function (e, t, o, n, i) {
5753      return n * Math.sin((t / i) * (Math.PI / 2)) + o;
5754    },
5755    easeInOutSine: function (e, t, o, n, i) {
5756      return (-n / 2) * (Math.cos((Math.PI * t) / i) - 1) + o;
5757    },
5758    easeInExpo: function (e, t, o, n, i) {
5759      return 0 == t ? o : n * Math.pow(2, 10 * (t / i - 1)) + o;
5760    },
5761    easeOutExpo: function (e, t, o, n, i) {
5762      return t == i ? o + n : n * (1 - Math.pow(2, (-10 * t) / i)) + o;
5763    },
5764    easeInOutExpo: function (e, t, o, n, i) {
5765      return 0 == t
5766        ? o
5767        : t == i
5768        ? o + n
5769        : (t /= i / 2) < 1
5770        ? (n / 2) * Math.pow(2, 10 * (t - 1)) + o
5771        : (n / 2) * (2 - Math.pow(2, -10 * --t)) + o;
5772    },
5773    easeInCirc: function (e, t, o, n, i) {
5774      return -n * (Math.sqrt(1 - (t /= i) * t) - 1) + o;
5775    },
5776    easeOutCirc: function (e, t, o, n, i) {
5777      return n * Math.sqrt(1 - (t = t / i - 1) * t) + o;
5778    },
5779    easeInOutCirc: function (e, t, o, n, i) {
5780      return (t /= i / 2) < 1
5781        ? (-n / 2) * (Math.sqrt(1 - t * t) - 1) + o
5782        : (n / 2) * (Math.sqrt(1 - (t -= 2) * t) + 1) + o;
5783    },
5784    easeInElastic: function (e, t, o, n, i) {
5785      var s = 1.70158,
5786        r = 0,
5787        a = n;
5788      return 0 == t
5789        ? o
5790        : 1 == (t /= i)
5791        ? o + n
5792        : ((r = r || 0.3 * i),
5793          (s =
5794            a < Math.abs(n)
5795              ? ((a = n), r / 4)
5796              : (r / (2 * Math.PI)) * Math.asin(n / a)),
5797          -(
5798            a *
5799            Math.pow(2, 10 * --t) *
5800            Math.sin(((t * i - s) * (2 * Math.PI)) / r)
5801          ) + o);
5802    },
5803    easeOutElastic: function (e, t, o, n, i) {
5804      var s = 1.70158,
5805        r = 0,
5806        a = n;
5807      return 0 == t
5808        ? o
5809        : 1 == (t /= i)
5810        ? o + n
5811        : ((r = r || 0.3 * i),
5812          (s =
5813            a < Math.abs(n)
5814              ? ((a = n), r / 4)
5815              : (r / (2 * Math.PI)) * Math.asin(n / a)),
5816          a *
5817            Math.pow(2, -10 * t) *
5818            Math.sin(((t * i - s) * (2 * Math.PI)) / r) +
5819            n +
5820            o);
5821    },
5822    easeInOutElastic: function (e, t, o, n, i) {
5823      var s = 1.70158,
5824        r = 0,
5825        a = n;
5826      return 0 == t
5827        ? o
5828        : 2 == (t /= i / 2)
5829        ? o + n
5830        : ((r = r || i * (0.3 * 1.5)),
5831          (s =
5832            a < Math.abs(n)
5833              ? ((a = n), r / 4)
5834              : (r / (2 * Math.PI)) * Math.asin(n / a)),
5835          t < 1
5836            ? a *
5837                Math.pow(2, 10 * --t) *
5838                Math.sin(((t * i - s) * (2 * Math.PI)) / r) *
5839                -0.5 +
5840              o
5841            : a *
5842                Math.pow(2, -10 * --t) *
5843                Math.sin(((t * i - s) * (2 * Math.PI)) / r) *
5844                0.5 +
5845              n +
5846              o);
5847    },
5848    easeInBack: function (e, t, o, n, i, s) {
5849      return (
5850        null == s && (s = 1.70158), n * (t /= i) * t * ((s + 1) * t - s) + o
5851      );
5852    },
5853    easeOutBack: function (e, t, o, n, i, s) {
5854      return (
5855        null == s && (s = 1.70158),
5856        n * ((t = t / i - 1) * t * ((s + 1) * t + s) + 1) + o
5857      );
5858    },
5859    easeInOutBack: function (e, t, o, n, i, s) {
5860      return (
5861        null == s && (s = 1.70158),
5862        (t /= i / 2) < 1
5863          ? (n / 2) * (t * t * ((1 + (s *= 1.525)) * t - s)) + o
5864          : (n / 2) * ((t -= 2) * t * ((1 + (s *= 1.525)) * t + s) + 2) + o
5865      );
5866    },
5867    easeInBounce: function (e, t, o, n, i) {
5868      return n - jQuery.easing.easeOutBounce(e, i - t, 0, n, i) + o;
5869    },
5870    easeOutBounce: function (e, t, o, n, i) {
5871      return (t /= i) < 1 / 2.75
5872        ? n * (7.5625 * t * t) + o
5873        : t < 2 / 2.75
5874        ? n * (7.5625 * (t -= 1.5 / 2.75) * t + 0.75) + o
5875        : t < 2.5 / 2.75
5876        ? n * (7.5625 * (t -= 2.25 / 2.75) * t + 0.9375) + o
5877        : n * (7.5625 * (t -= 2.625 / 2.75) * t + 0.984375) + o;
5878    },
5879    easeInOutBounce: function (e, t, o, n, i) {
5880      return t < i / 2
5881        ? 0.5 * jQuery.easing.easeInBounce(e, 2 * t, 0, n, i) + o
5882        : 0.5 * jQuery.easing.easeOutBounce(e, 2 * t - i, 0, n, i) +
5883            0.5 * n +
5884            o;
5885    },
5886  }),
5887  (function () {
5888    function e(C) {
5889      C.fn._fadeIn = C.fn.fadeIn;
5890      var S = C.noop || function () {},
5891        z = /MSIE/.test(navigator.userAgent),
5892        E =
5893          /MSIE 6.0/.test(navigator.userAgent) &&
5894          !/MSIE 8.0/.test(navigator.userAgent),
5895        W =
5896          (document.documentMode,
5897          C.isFunction(document.createElement("div").style.setExpression));
5898      (C.blockUI = function (e) {
5899        o(window, e);
5900      }),
5901        (C.unblockUI = function (e) {
5902          $(window, e);
5903        }),
5904        (C.growlUI = function (e, t, o, n) {
5905          var i = C('<div class="growlUI"></div>');
5906          e && i.append("<h1>" + e + "</h1>"),
5907            t && i.append("<h2>" + t + "</h2>"),
5908            void 0 === o && (o = 3e3),
5909            C.blockUI({
5910              message: i,
5911              fadeIn: 700,
5912              fadeOut: 1e3,
5913              centerY: !1,
5914              timeout: o,
5915              showOverlay: !1,
5916              onUnblock: n,
5917              css: C.blockUI.defaults.growlCSS,
5918            });
5919        }),
5920        (C.fn.block = function (e) {
5921          if (this[0] === window) return C.blockUI(e), this;
5922          var t = C.extend({}, C.blockUI.defaults, e || {});
5923          return (
5924            this.each(function () {
5925              var e = C(this);
5926              (t.ignoreIfBlocked && e.data("blockUI.isBlocked")) ||
5927                e.unblock({ fadeOut: 0 });
5928            }),
5929            this.each(function () {
5930              "static" == C.css(this, "position") &&
5931                ((this.style.position = "relative"),
5932                C(this).data("blockUI.static", !0)),
5933                (this.style.zoom = 1),
5934                o(this, e);
5935            })
5936          );
5937        }),
5938        (C.fn.unblock = function (e) {
5939          return this[0] === window
5940            ? (C.unblockUI(e), this)
5941            : this.each(function () {
5942                $(this, e);
5943              });
5944        }),
5945        (C.blockUI.version = 2.59),
5946        (C.blockUI.defaults = {
5947          message: "<h1>Please wait...</h1>",
5948          title: null,
5949          draggable: !0,
5950          theme: !1,
5951          css: {
5952            padding: 0,
5953            margin: 0,
5954            width: "30%",
5955            top: "40%",
5956            left: "35%",
5957            textAlign: "center",
5958            color: "#000",
5959            border: "3px solid aaa",
5960            backgroundColor: "#fff",
5961            cursor: "wait",
5962          },
5963          themedCSS: { width: "30%", top: "40%", left: "35%" },
5964          overlayCSS: { backgroundColor: "#000", opacity: 0.6, cursor: "wait" },
5965          cursorReset: "default",
5966          growlCSS: {
5967            width: "350px",
5968            top: "10px",
5969            left: "",
5970            right: "10px",
5971            border: "none",
5972            padding: "5px",
5973            opacity: 0.6,
5974            cursor: "default",
5975            color: "#fff",
5976            backgroundColor: "#000",
5977            "-webkit-border-radius": "10px",
5978            "-moz-border-radius": "10px",
5979            "border-radius": "10px",
5980          },
5981          iframeSrc: /^https/i.test(window.location.href || "")
5982            ? "javascript:false"
5983            : "about:blank",
5984          forceIframe: !1,
5985          baseZ: 1e3,
5986          centerX: !0,
5987          centerY: !0,
5988          allowBodyStretch: !0,
5989          bindEvents: !0,
5990          constrainTabKey: !0,
5991          fadeIn: 200,
5992          fadeOut: 400,
5993          timeout: 0,
5994          showOverlay: !0,
5995          focusInput: !0,
5996          onBlock: null,
5997          onUnblock: null,
5998          onOverlayClick: null,
5999          quirksmodeOffsetHack: 4,
6000          blockMsgClass: "blockMsg",
6001          ignoreIfBlocked: !1,
6002        });
6003      var L = null,
6004        A = [];
6005      function o(e, i) {
6006        var t,
6007          o,
6008          n,
6009          s,
6010          r,
6011          a,
6012          l,
6013          c,
6014          d,
6015          u,
6016          p,
6017          h,
6018          f,
6019          m,
6020          g,
6021          v,
6022          y,
6023          w,
6024          b,
6025          x,
6026          k = e == window,
6027          T = i && void 0 !== i.message ? i.message : void 0;
6028        ((i = C.extend({}, C.blockUI.defaults, i || {})).ignoreIfBlocked &&
6029          C(e).data("blockUI.isBlocked")) ||
6030          ((i.overlayCSS = C.extend(
6031            {},
6032            C.blockUI.defaults.overlayCSS,
6033            i.overlayCSS || {}
6034          )),
6035          (t = C.extend({}, C.blockUI.defaults.css, i.css || {})),
6036          i.onOverlayClick && (i.overlayCSS.cursor = "pointer"),
6037          (o = C.extend({}, C.blockUI.defaults.themedCSS, i.themedCSS || {})),
6038          (T = void 0 === T ? i.message : T),
6039          k && L && $(window, { fadeOut: 0 }),
6040          T &&
6041            "string" != typeof T &&
6042            (T.parentNode || T.jquery) &&
6043            ((n = T.jquery ? T[0] : T),
6044            (s = {}),
6045            C(e).data("blockUI.history", s),
6046            (s.el = n),
6047            (s.parent = n.parentNode),
6048            (s.display = n.style.display),
6049            (s.position = n.style.position),
6050            s.parent && s.parent.removeChild(n)),
6051          C(e).data("blockUI.onUnblock", i.onUnblock),
6052          (r = i.baseZ),
6053          (c =
6054            z || i.forceIframe
6055              ? C(
6056                  '<iframe class="blockUI" style="z-index:' +
6057                    r++ +
6058                    ';display:none;border:none;margin:0;padding:0;position:absolute;width:100%;height:100%;top:0;left:0" src="' +
6059                    i.iframeSrc +
6060                    '"></iframe>'
6061                )
6062              : C('<div class="blockUI" style="display:none"></div>')),
6063          (d = i.theme
6064            ? C(
6065                '<div class="blockUI blockOverlay ui-widget-overlay" style="z-index:' +
6066                  r++ +
6067                  ';display:none"></div>'
6068              )
6069            : C(
6070                '<div class="blockUI blockOverlay" style="z-index:' +
6071                  r++ +
6072                  ';display:none;border:none;margin:0;padding:0;width:100%;height:100%;top:0;left:0"></div>'
6073              )),
6074          i.theme && k
6075            ? ((l =
6076                '<div class="blockUI ' +
6077                i.blockMsgClass +
6078                ' blockPage ui-dialog ui-widget ui-corner-all" style="z-index:' +
6079                (r + 10) +
6080                ';display:none;position:fixed">'),
6081              i.title &&
6082                (l +=
6083                  '<div class="ui-widget-header ui-dialog-titlebar ui-corner-all blockTitle">' +
6084                  (i.title || "Â ") +
6085                  "</div>"),
6086              (l += '<div class="ui-widget-content ui-dialog-content"></div>'),
6087              (l += "</div>"))
6088            : i.theme
6089            ? ((l =
6090                '<div class="blockUI ' +
6091                i.blockMsgClass +
6092                ' blockElement ui-dialog ui-widget ui-corner-all" style="z-index:' +
6093                (r + 10) +
6094                ';display:none;position:absolute">'),
6095              i.title &&
6096                (l +=
6097                  '<div class="ui-widget-header ui-dialog-titlebar ui-corner-all blockTitle">' +
6098                  (i.title || "Â ") +
6099                  "</div>"),
6100              (l += '<div class="ui-widget-content ui-dialog-content"></div>'),
6101              (l += "</div>"))
6102            : (l = k
6103                ? '<div class="blockUI ' +
6104                  i.blockMsgClass +
6105                  ' blockPage" style="z-index:' +
6106                  (r + 10) +
6107                  ';display:none;position:fixed"></div>'
6108                : '<div class="blockUI ' +
6109                  i.blockMsgClass +
6110                  ' blockElement" style="z-index:' +
6111                  (r + 10) +
6112                  ';display:none;position:absolute"></div>'),
6113          (a = C(l)),
6114          T &&
6115            (i.theme ? (a.css(o), a.addClass("ui-widget-content")) : a.css(t)),
6116          i.theme || d.css(i.overlayCSS),
6117          d.css("position", k ? "fixed" : "absolute"),
6118          (z || i.forceIframe) && c.css("opacity", 0),
6119          (u = [c, d, a]),
6120          (p = C(k ? "body" : e)),
6121          C.each(u, function () {
6122            this.appendTo(p);
6123          }),
6124          i.theme &&
6125            i.draggable &&
6126            C.fn.draggable &&
6127            a.draggable({ handle: ".ui-dialog-titlebar", cancel: "li" }),
6128          (h =
6129            W &&
6130            (!C.support.boxModel ||
6131              0 < C("object,embed", k ? null : e).length)),
6132          (E || h) &&
6133            (k &&
6134              i.allowBodyStretch &&
6135              C.support.boxModel &&
6136              C("html,body").css("height", "100%"),
6137            (!E && C.support.boxModel) ||
6138              k ||
6139              ((f = H(e, "borderTopWidth")),
6140              (m = H(e, "borderLeftWidth")),
6141              (g = f ? "(0 - " + f + ")" : 0),
6142              (v = m ? "(0 - " + m + ")" : 0)),
6143            C.each(u, function (e, t) {
6144              var o,
6145                n = t[0].style;
6146              (n.position = "absolute"),
6147                e < 2
6148                  ? (k
6149                      ? n.setExpression(
6150                          "height",
6151                          "Math.max(document.body.scrollHeight, document.body.offsetHeight) - (jQuery.support.boxModel?0:" +
6152                            i.quirksmodeOffsetHack +
6153                            ') + "px"'
6154                        )
6155                      : n.setExpression(
6156                          "height",
6157                          'this.parentNode.offsetHeight + "px"'
6158                        ),
6159                    k
6160                      ? n.setExpression(
6161                          "width",
6162                          'jQuery.support.boxModel && document.documentElement.clientWidth || document.body.clientWidth + "px"'
6163                        )
6164                      : n.setExpression(
6165                          "width",
6166                          'this.parentNode.offsetWidth + "px"'
6167                        ),
6168                    v && n.setExpression("left", v),
6169                    g && n.setExpression("top", g))
6170                  : i.centerY
6171                  ? (k &&
6172                      n.setExpression(
6173                        "top",
6174                        '(document.documentElement.clientHeight || document.body.clientHeight) / 2 - (this.offsetHeight / 2) + (blah = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px"'
6175                      ),
6176                    (n.marginTop = 0))
6177                  : !i.centerY &&
6178                    k &&
6179                    ((o =
6180                      "((document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + " +
6181                      (i.css && i.css.top ? parseInt(i.css.top, 10) : 0) +
6182                      ') + "px"'),
6183                    n.setExpression("top", o));
6184            })),
6185          T &&
6186            (i.theme ? a.find(".ui-widget-content").append(T) : a.append(T),
6187            (T.jquery || T.nodeType) && C(T).show()),
6188          (z || i.forceIframe) && i.showOverlay && c.show(),
6189          i.fadeIn
6190            ? ((y = i.onBlock ? i.onBlock : S),
6191              (w = i.showOverlay && !T ? y : S),
6192              (b = T ? y : S),
6193              i.showOverlay && d._fadeIn(i.fadeIn, w),
6194              T && a._fadeIn(i.fadeIn, b))
6195            : (i.showOverlay && d.show(),
6196              T && a.show(),
6197              i.onBlock && i.onBlock()),
6198          F(1, e, i),
6199          k
6200            ? ((L = a[0]),
6201              (A = C(":input:enabled:visible", L)),
6202              i.focusInput && setTimeout(O, 20))
6203            : (function (e, t, o) {
6204                var n = e.parentNode,
6205                  i = e.style,
6206                  s =
6207                    (n.offsetWidth - e.offsetWidth) / 2 -
6208                    H(n, "borderLeftWidth"),
6209                  r =
6210                    (n.offsetHeight - e.offsetHeight) / 2 -
6211                    H(n, "borderTopWidth");
6212                t && (i.left = 0 < s ? s + "px" : "0");
6213                o && (i.top = 0 < r ? r + "px" : "0");
6214              })(a[0], i.centerX, i.centerY),
6215          i.timeout &&
6216            ((x = setTimeout(function () {
6217              k ? C.unblockUI(i) : C(e).unblock(i);
6218            }, i.timeout)),
6219            C(e).data("blockUI.timeout", x)));
6220      }
6221      function $(e, t) {
6222        var o,
6223          n,
6224          i = e == window,
6225          s = C(e),
6226          r = s.data("blockUI.history"),
6227          a = s.data("blockUI.timeout");
6228        a && (clearTimeout(a), s.removeData("blockUI.timeout")),
6229          (t = C.extend({}, C.blockUI.defaults, t || {})),
6230          F(0, e, t),
6231          null === t.onUnblock &&
6232            ((t.onUnblock = s.data("blockUI.onUnblock")),
6233            s.removeData("blockUI.onUnblock")),
6234          (n = i
6235            ? C("body").children().filter(".blockUI").add("body > .blockUI")
6236            : s.find(">.blockUI")),
6237          t.cursorReset &&
6238            (1 < n.length && (n[1].style.cursor = t.cursorReset),
6239            2 < n.length && (n[2].style.cursor = t.cursorReset)),
6240          i && (L = A = null),
6241          t.fadeOut
6242            ? ((o = n.length),
6243              n.fadeOut(t.fadeOut, function () {
6244                0 == --o && l(n, r, t, e);
6245              }))
6246            : l(n, r, t, e);
6247      }
6248      function l(e, t, o, n) {
6249        var i = C(n);
6250        e.each(function (e, t) {
6251          this.parentNode && this.parentNode.removeChild(this);
6252        }),
6253          t &&
6254            t.el &&
6255            ((t.el.style.display = t.display),
6256            (t.el.style.position = t.position),
6257            t.parent && t.parent.appendChild(t.el),
6258            i.removeData("blockUI.history")),
6259          i.data("blockUI.static") && i.css("position", "static"),
6260          "function" == typeof o.onUnblock && o.onUnblock(n, o);
6261        var s = C(document.body),
6262          r = s.width(),
6263          a = s[0].style.width;
6264        s.width(r - 1).width(r), (s[0].style.width = a);
6265      }
6266      function F(e, t, o) {
6267        var n,
6268          i = t == window,
6269          s = C(t);
6270        (!e && ((i && !L) || (!i && !s.data("blockUI.isBlocked")))) ||
6271          (s.data("blockUI.isBlocked", e),
6272          i &&
6273            o.bindEvents &&
6274            (!e || o.showOverlay) &&
6275            ((n =
6276              "mousedown mouseup keydown keypress keyup touchstart touchend touchmove"),
6277            e ? C(document).bind(n, o, r) : C(document).unbind(n, r)));
6278      }
6279      function r(e) {
6280        if (e.keyCode && 9 == e.keyCode && L && e.data.constrainTabKey) {
6281          var t = !e.shiftKey && e.target === A[A.length - 1],
6282            o = e.shiftKey && e.target === A[0];
6283          if (t || o)
6284            return (
6285              setTimeout(function () {
6286                O(o);
6287              }, 10),
6288              !1
6289            );
6290        }
6291        var n = e.data,
6292          i = C(e.target);
6293        return (
6294          i.hasClass("blockOverlay") && n.onOverlayClick && n.onOverlayClick(),
6295          0 < i.parents("div." + n.blockMsgClass).length ||
6296            0 === i.parents().children().filter("div.blockUI").length
6297        );
6298      }
6299      function O(e) {
6300        var t;
6301        !A || ((t = A[!0 === e ? A.length - 1 : 0]) && t.focus());
6302      }
6303      function H(e, t) {
6304        return parseInt(C.css(e, t), 10) || 0;
6305      }
6306    }
6307    "function" == typeof define && define.amd && define.amd.jQuery
6308      ? define(["jquery"], e)
6309      : e(jQuery);
6310  })(),
6311  (function (u) {
6312    var d,
6313      c = u.fn.domManip,
6314      p = "_tmplitem",
6315      o = /^[^<]*(<[\w\W]+>)[^>]*$|\{\{\! /,
6316      h = {},
6317      f = {},
6318      r = { key: 0, data: {} },
6319      m = 0,
6320      g = 0,
6321      s = [];
6322    function v(e, t, o, n) {
6323      var i = {
6324        data: n || 0 === n || !1 === n ? n : t ? t.data : {},
6325        _wrap: t ? t._wrap : null,
6326        tmpl: null,
6327        parent: t || null,
6328        nodes: [],
6329        calls: x,
6330        nest: k,
6331        wrap: T,
6332        html: C,
6333        update: S,
6334      };
6335      return (
6336        e && u.extend(i, e, { nodes: [], parent: t }),
6337        o &&
6338          ((i.tmpl = o),
6339          (i._ctnt = i._ctnt || i.tmpl(u, i)),
6340          (i.key = ++m),
6341          ((s.length ? f : h)[m] = i)),
6342        i
6343      );
6344    }
6345    function a(t, e, o) {
6346      var i,
6347        n = o
6348          ? u.map(o, function (e) {
6349              return "string" == typeof e
6350                ? t.key
6351                  ? e.replace(
6352                      /(<\w+)(?=[\s>])(?![^>]*_tmplitem)([^>]*)/g,
6353                      "$1 " + p + '="' + t.key + '" $2'
6354                    )
6355                  : e
6356                : a(e, t, e._ctnt);
6357            })
6358          : t;
6359      return e
6360        ? n
6361        : ((n = n.join("")).replace(
6362            /^\s*([^<\s][^<]*)?(<[\w\W]+>)([^>]*[^>\s])?\s*$/,
6363            function (e, t, o, n) {
6364              b((i = u(o).get())),
6365                t && (i = l(t).concat(i)),
6366                n && (i = i.concat(l(n)));
6367            }
6368          ),
6369          i || l(n));
6370    }
6371    function l(e) {
6372      var t = document.createElement("div");
6373      return (t.innerHTML = e), u.makeArray(t.childNodes);
6374    }
6375    function n(e) {
6376      return new Function(
6377        "jQuery",
6378        "$item",
6379        "var $=jQuery,call,__=[],$data=$item.data;with($data){__.push('" +
6380          u
6381            .trim(e)
6382            .replace(/([\\'])/g, "\\$1")
6383            .replace(/[\r\t\n]/g, " ")
6384            .replace(/\$\{([^\}]*)\}/g, "{{= $1}}")
6385            .replace(
6386              /\{\{(\/?)(\w+|.)(?:\(((?:[^\}]|\}(?!\}))*?)?\))?(?:\s+(.*?)?)?(\(((?:[^\}]|\}(?!\}))*?)\))?\s*\}\}/g,
6387              function (e, t, o, n, i, s, r) {
6388                var a,
6389                  l,
6390                  c,
6391                  d = u.tmpl.tag[o];
6392                if (!d) throw "Unknown template tag: " + o;
6393                return (
6394                  (a = d._default || []),
6395                  s && !/\w$/.test(i) && ((i += s), (s = "")),
6396                  (c = i
6397                    ? ((i = w(i)),
6398                      (r = r ? "," + w(r) + ")" : s ? ")" : ""),
6399                      (l = s
6400                        ? -1 < i.indexOf(".")
6401                          ? i + w(s)
6402                          : "(" + i + ").call($item" + r
6403                        : i),
6404                      s
6405                        ? l
6406                        : "(typeof(" +
6407                          i +
6408                          ")==='function'?(" +
6409                          i +
6410                          ").call($item):(" +
6411                          i +
6412                          "))")
6413                    : (l = a.$1 || "null")),
6414                  (n = w(n)),
6415                  "');" +
6416                    d[t ? "close" : "open"]
6417                      .split("$notnull_1")
6418                      .join(
6419                        i
6420                          ? "typeof(" +
6421                              i +
6422                              ")!=='undefined' && (" +
6423                              i +
6424                              ")!=null"
6425                          : "true"
6426                      )
6427                      .split("$1a")
6428                      .join(c)
6429                      .split("$1")
6430                      .join(l)
6431                      .split("$2")
6432                      .join(n || a.$2 || "") +
6433                    "__.push('"
6434                );
6435              }
6436            ) +
6437          "');}return __;"
6438      );
6439    }
6440    function y(e, t) {
6441      e._wrap = a(e, !0, u.isArray(t) ? t : [o.test(t) ? t : u(t).html()]).join(
6442        ""
6443      );
6444    }
6445    function w(e) {
6446      return e ? e.replace(/\\'/g, "'").replace(/\\\\/g, "\\") : null;
6447    }
6448    function b(e) {
6449      for (var t, o, n, a = "_" + g, l = {}, i = 0, s = e.length; i < s; i++)
6450        if (1 === (t = e[i]).nodeType) {
6451          for (n = (o = t.getElementsByTagName("*")).length - 1; 0 <= n; n--)
6452            r(o[n]);
6453          r(t);
6454        }
6455      function r(e) {
6456        var t,
6457          o,
6458          n,
6459          i,
6460          s = e;
6461        if ((i = e.getAttribute(p))) {
6462          for (
6463            ;
6464            s.parentNode &&
6465            1 === (s = s.parentNode).nodeType &&
6466            !(t = s.getAttribute(p));
6467
6468          );
6469          t !== i &&
6470            ((s =
6471              (s.parentNode && 11 !== s.nodeType && s.getAttribute(p)) || 0),
6472            (n = h[i]) ||
6473              (((n = v((n = f[i]), h[s] || f[s])).key = ++m), (h[m] = n)),
6474            g && r(i)),
6475            e.removeAttribute(p);
6476        } else
6477          g &&
6478            (n = u.data(e, "tmplItem")) &&
6479            (r(n.key),
6480            (h[n.key] = n),
6481            (s = (s = u.data(e.parentNode, "tmplItem")) ? s.key : 0));
6482        if (n) {
6483          for (o = n; o && o.key != s; ) o.nodes.push(e), (o = o.parent);
6484          delete n._ctnt, delete n._wrap, u.data(e, "tmplItem", n);
6485        }
6486        function r(e) {
6487          n = l[(e += a)] = l[e] || v(n, h[n.parent.key + a] || n.parent);
6488        }
6489      }
6490    }
6491    function x(e, t, o, n) {
6492      if (!e) return s.pop();
6493      s.push({ _: e, tmpl: t, item: this, data: o, options: n });
6494    }
6495    function k(e, t, o) {
6496      return u.tmpl(u.template(e), t, o, this);
6497    }
6498    function T(e, t) {
6499      var o = e.options || {};
6500      return (o.wrapped = t), u.tmpl(u.template(e.tmpl), e.data, o, e.item);
6501    }
6502    function C(e, n) {
6503      var t = this._wrap;
6504      return u.map(
6505        u(u.isArray(t) ? t.join("") : t).filter(e || "*"),
6506        function (e) {
6507          return n
6508            ? e.innerText || e.textContent
6509            : e.outerHTML ||
6510                ((t = e),
6511                (o = document.createElement("div")).appendChild(
6512                  t.cloneNode(!0)
6513                ),
6514                o.innerHTML);
6515          var t, o;
6516        }
6517      );
6518    }
6519    function S() {
6520      var e = this.nodes;
6521      u.tmpl(null, null, null, this).insertBefore(e[0]), u(e).remove();
6522    }
6523    u.each(
6524      {
6525        appendTo: "append",
6526        prependTo: "prepend",
6527        insertBefore: "before",
6528        insertAfter: "after",
6529        replaceAll: "replaceWith",
6530      },
6531      function (l, c) {
6532        u.fn[l] = function (e) {
6533          var t,
6534            o,
6535            n,
6536            i,
6537            s = [],
6538            r = u(e),
6539            a = 1 === this.length && this[0].parentNode;
6540          if (
6541            ((d = h || {}),
6542            a &&
6543              11 === a.nodeType &&
6544              1 === a.childNodes.length &&
6545              1 === r.length)
6546          )
6547            r[c](this[0]), (s = this);
6548          else {
6549            for (o = 0, n = r.length; o < n; o++)
6550              (t = (0 < (g = o) ? this.clone(!0) : this).get()),
6551                u(r[o])[c](t),
6552                (s = s.concat(t));
6553            (g = 0), (s = this.pushStack(s, l, r.selector));
6554          }
6555          return (i = d), (d = null), u.tmpl.complete(i), s;
6556        };
6557      }
6558    ),
6559      u.fn.extend({
6560        tmpl: function (e, t, o) {
6561          return u.tmpl(this[0], e, t, o);
6562        },
6563        tmplItem: function () {
6564          return u.tmplItem(this[0]);
6565        },
6566        template: function (e) {
6567          return u.template(e, this[0]);
6568        },
6569        domManip: function (e, t, o, n) {
6570          if (e[0] && u.isArray(e[0])) {
6571            for (
6572              var i, s = u.makeArray(arguments), r = e[0], a = r.length, l = 0;
6573              l < a && !(i = u.data(r[l++], "tmplItem"));
6574
6575            );
6576            i &&
6577              g &&
6578              (s[2] = function (e) {
6579                u.tmpl.afterManip(this, e, o);
6580              }),
6581              c.apply(this, s);
6582          } else c.apply(this, arguments);
6583          return (g = 0), d || u.tmpl.complete(h), this;
6584        },
6585      }),
6586      u.extend({
6587        tmpl: function (t, e, o, n) {
6588          var i,
6589            s = !n;
6590          if (s) (n = r), (t = u.template[t] || u.template(null, t)), (f = {});
6591          else if (!t)
6592            return (
6593              (t = n.tmpl),
6594              ((h[n.key] = n).nodes = []),
6595              n.wrapped && y(n, n.wrapped),
6596              u(a(n, null, n.tmpl(u, n)))
6597            );
6598          return t
6599            ? ("function" == typeof e && (e = e.call(n || {})),
6600              o && o.wrapped && y(o, o.wrapped),
6601              (i = u.isArray(e)
6602                ? u.map(e, function (e) {
6603                    return e ? v(o, n, t, e) : null;
6604                  })
6605                : [v(o, n, t, e)]),
6606              s ? u(a(n, null, i)) : i)
6607            : [];
6608        },
6609        tmplItem: function (e) {
6610          var t;
6611          for (
6612            e instanceof u && (e = e[0]);
6613            e &&
6614            1 === e.nodeType &&
6615            !(t = u.data(e, "tmplItem")) &&
6616            (e = e.parentNode);
6617
6618          );
6619          return t || r;
6620        },
6621        template: function (e, t) {
6622          return t
6623            ? ("string" == typeof t
6624                ? (t = n(t))
6625                : t instanceof u && (t = t[0] || {}),
6626              t.nodeType &&
6627                (t = u.data(t, "tmpl") || u.data(t, "tmpl", n(t.innerHTML))),
6628              "string" == typeof e ? (u.template[e] = t) : t)
6629            : e
6630            ? "string" != typeof e
6631              ? u.template(null, e)
6632              : u.template[e] || u.template(null, o.test(e) ? e : u(e))
6633            : null;
6634        },
6635        encode: function (e) {
6636          return ("" + e)
6637            .split("<")
6638            .join("&lt;")
6639            .split(">")
6640            .join("&gt;")
6641            .split('"')
6642            .join("&#34;")
6643            .split("'")
6644            .join("&#39;");
6645        },
6646      }),
6647      u.extend(u.tmpl, {
6648        tag: {
6649          tmpl: {
6650            _default: { $2: "null" },
6651            open: "if($notnull_1){__=__.concat($item.nest($1,$2));}",
6652          },
6653          wrap: {
6654            _default: { $2: "null" },
6655            open: "$item.calls(__,$1,$2);__=[];",
6656            close: "call=$item.calls();__=call._.concat($item.wrap(call,__));",
6657          },
6658          each: {
6659            _default: { $2: "$index, $value" },
6660            open: "if($notnull_1){$.each($1a,function($2){with(this){",
6661            close: "}});}",
6662          },
6663          if: { open: "if(($notnull_1) && $1a){", close: "}" },
6664          else: {
6665            _default: { $1: "true" },
6666            open: "}else if(($notnull_1) && $1a){",
6667          },
6668          html: { open: "if($notnull_1){__.push($1a);}" },
6669          "=": {
6670            _default: { $1: "$data" },
6671            open: "if($notnull_1){__.push($.encode($1a));}",
6672          },
6673          "!": { open: "" },
6674        },
6675        complete: function (e) {
6676          h = {};
6677        },
6678        afterManip: function (e, t, o) {
6679          var n =
6680            11 === t.nodeType
6681              ? u.makeArray(t.childNodes)
6682              : 1 === t.nodeType
6683              ? [t]
6684              : [];
6685          o.call(e, t), b(n), g++;
6686        },
6687      });
6688  })(jQuery),
6689  (function (e) {
6690    "function" == typeof define && define.amd
6691      ? define(["jquery"], e)
6692      : "object" == typeof exports
6693      ? (module.exports = e(require("jquery")))
6694      : e(jQuery || Zepto);
6695  })(function (c) {
6696    function a(l, v, y) {
6697      var w = {
6698        invalid: [],
6699        getCaret: function () {
6700          try {
6701            var e,
6702              t = 0,
6703              o = l.get(0),
6704              n = document.selection,
6705              i = o.selectionStart;
6706            return (
6707              n && -1 === navigator.appVersion.indexOf("MSIE 10")
6708                ? ((e = n.createRange()).moveStart(
6709                    "character",
6710                    -w.val().length
6711                  ),
6712                  (t = e.text.length))
6713                : (!i && "0" !== i) || (t = i),
6714              t
6715            );
6716          } catch (e) {}
6717        },
6718        setCaret: function (e) {
6719          try {
6720            var t, o;
6721            l.is(":focus") &&
6722              ((o = l.get(0)).setSelectionRange
6723                ? (o.focus(), o.setSelectionRange(e, e))
6724                : ((t = o.createTextRange()).collapse(!0),
6725                  t.moveEnd("character", e),
6726                  t.moveStart("character", e),
6727                  t.select()));
6728          } catch (e) {}
6729        },
6730        events: function () {
6731          l.on("keydown.mask", function (e) {
6732            l.data("mask-keycode", e.keyCode || e.which);
6733          })
6734            .on(
6735              c.jMaskGlobals.useInput ? "input.mask" : "keyup.mask",
6736              w.behaviour
6737            )
6738            .on("paste.mask drop.mask", function () {
6739              setTimeout(function () {
6740                l.keydown().keyup();
6741              }, 100);
6742            })
6743            .on("change.mask", function () {
6744              l.data("changed", !0);
6745            })
6746            .on("blur.mask", function () {
6747              s === w.val() || l.data("changed") || l.trigger("change"),
6748                l.data("changed", !1);
6749            })
6750            .on("blur.mask", function () {
6751              s = w.val();
6752            })
6753            .on("focus.mask", function (e) {
6754              !0 === y.selectOnFocus && c(e.target).select();
6755            })
6756            .on("focusout.mask", function () {
6757              y.clearIfNotMatch && !o.test(w.val()) && w.val("");
6758            });
6759        },
6760        getRegexMask: function () {
6761          for (var e, t, o, n, i, s, r = [], a = 0; a < v.length; a++)
6762            (e = b.translation[v.charAt(a)])
6763              ? ((t = e.pattern.toString().replace(/.{1}$|^.{1}/g, "")),
6764                (o = e.optional),
6765                (n = e.recursive)
6766                  ? (r.push(v.charAt(a)),
6767                    (i = { digit: v.charAt(a), pattern: t }))
6768                  : r.push(o || n ? t + "?" : t))
6769              : r.push(v.charAt(a).replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&"));
6770          return (
6771            (s = r.join("")),
6772            i &&
6773              (s = s
6774                .replace(
6775                  new RegExp("(" + i.digit + "(.*" + i.digit + ")?)"),
6776                  "($1)?"
6777                )
6778                .replace(new RegExp(i.digit, "g"), i.pattern)),
6779            new RegExp(s)
6780          );
6781        },
6782        destroyEvents: function () {
6783          l.off(
6784            [
6785              "input",
6786              "keydown",
6787              "keyup",
6788              "paste",
6789              "drop",
6790              "blur",
6791              "focusout",
6792              "",
6793            ].join(".mask ")
6794          );
6795        },
6796        val: function (e) {
6797          var t = l.is("input") ? "val" : "text",
6798            o = 0 < arguments.length ? (l[t]() !== e && l[t](e), l) : l[t]();
6799          return o;
6800        },
6801        getMCharsBeforeCount: function (e, t) {
6802          for (var o = 0, n = 0, i = v.length; n < i && n < e; n++)
6803            b.translation[v.charAt(n)] || ((e = t ? e + 1 : e), o++);
6804          return o;
6805        },
6806        caretPos: function (e, t, o, n) {
6807          return b.translation[v.charAt(Math.min(e - 1, v.length - 1))]
6808            ? Math.min(e + o - t - n, o)
6809            : w.caretPos(e + 1, t, o, n);
6810        },
6811        behaviour: function (e) {
6812          (e = e || window.event), (w.invalid = []);
6813          var t = l.data("mask-keycode");
6814          if (-1 === c.inArray(t, b.byPassKeys)) {
6815            var o = w.getCaret(),
6816              n = w.val().length,
6817              i = w.getMasked(),
6818              s = i.length,
6819              r = w.getMCharsBeforeCount(s - 1) - w.getMCharsBeforeCount(n - 1),
6820              a = o < n;
6821            return (
6822              w.val(i),
6823              a &&
6824                (8 !== t && 46 !== t && (o = w.caretPos(o, n, s, r)),
6825                w.setCaret(o)),
6826              w.callbacks(e)
6827            );
6828          }
6829        },
6830        getMasked: function (e, t) {
6831          for (
6832            var o,
6833              n = [],
6834              i = void 0 === t ? w.val() : t + "",
6835              s = 0,
6836              r = v.length,
6837              a = 0,
6838              l = i.length,
6839              c = 1,
6840              d = "push",
6841              u = -1,
6842              p = y.reverse
6843                ? ((d = "unshift"),
6844                  (c = -1),
6845                  (o = 0),
6846                  (s = r - 1),
6847                  (a = l - 1),
6848                  function () {
6849                    return -1 < s && -1 < a;
6850                  })
6851                : ((o = r - 1),
6852                  function () {
6853                    return s < r && a < l;
6854                  });
6855            p();
6856
6857          ) {
6858            var h = v.charAt(s),
6859              f = i.charAt(a),
6860              m = b.translation[h];
6861            m
6862              ? (f.match(m.pattern)
6863                  ? (n[d](f),
6864                    m.recursive &&
6865                      (-1 === u ? (u = s) : s === o && (s = u - c),
6866                      o === u && (s -= c)),
6867                    (s += c))
6868                  : m.optional
6869                  ? ((s += c), (a -= c))
6870                  : m.fallback
6871                  ? (n[d](m.fallback), (s += c), (a -= c))
6872                  : w.invalid.push({ p: a, v: f, e: m.pattern }),
6873                (a += c))
6874              : (e || n[d](h), f === h && (a += c), (s += c));
6875          }
6876          var g = v.charAt(o);
6877          return r !== l + 1 || b.translation[g] || n.push(g), n.join("");
6878        },
6879        callbacks: function (e) {
6880          function t(e, t, o) {
6881            "function" == typeof y[e] && t && y[e].apply(this, o);
6882          }
6883          var o = w.val(),
6884            n = o !== s,
6885            i = [o, e, l, y];
6886          t("onChange", !0 == n, i),
6887            t("onKeyPress", !0 == n, i),
6888            t("onComplete", o.length === v.length, i),
6889            t("onInvalid", 0 < w.invalid.length, [o, e, l, w.invalid, y]);
6890        },
6891      };
6892      l = c(l);
6893      var o,
6894        b = this,
6895        s = w.val();
6896      (v = "function" == typeof v ? v(w.val(), void 0, l, y) : v),
6897        (b.mask = v),
6898        (b.options = y),
6899        (b.remove = function () {
6900          var e = w.getCaret();
6901          return (
6902            w.destroyEvents(),
6903            w.val(b.getCleanVal()),
6904            w.setCaret(e - w.getMCharsBeforeCount(e)),
6905            l
6906          );
6907        }),
6908        (b.getCleanVal = function () {
6909          return w.getMasked(!0);
6910        }),
6911        (b.getMaskedVal = function (e) {
6912          return w.getMasked(!1, e);
6913        }),
6914        (b.init = function (e) {
6915          var t;
6916          (e = e || !1),
6917            (y = y || {}),
6918            (b.clearIfNotMatch = c.jMaskGlobals.clearIfNotMatch),
6919            (b.byPassKeys = c.jMaskGlobals.byPassKeys),
6920            (b.translation = c.extend(
6921              {},
6922              c.jMaskGlobals.translation,
6923              y.translation
6924            )),
6925            (b = c.extend(!0, {}, b, y)),
6926            (o = w.getRegexMask()),
6927            !1 === e
6928              ? (y.placeholder && l.attr("placeholder", y.placeholder),
6929                l.data("mask") && l.attr("autocomplete", "off"),
6930                w.destroyEvents(),
6931                w.events(),
6932                (t = w.getCaret()),
6933                w.val(w.getMasked()),
6934                w.setCaret(t + w.getMCharsBeforeCount(t, !0)))
6935              : (w.events(), w.val(w.getMasked()));
6936        }),
6937        b.init(!l.is("input"));
6938    }
6939    c.maskWatchers = {};
6940    function t() {
6941      var e = c(this),
6942        t = {},
6943        o = "data-mask-",
6944        n = e.attr("data-mask");
6945      if (
6946        (e.attr(o + "reverse") && (t.reverse = !0),
6947        e.attr(o + "clearifnotmatch") && (t.clearIfNotMatch = !0),
6948        "true" === e.attr(o + "selectonfocus") && (t.selectOnFocus = !0),
6949        l(e, n, t))
6950      )
6951        return e.data("mask", new a(this, n, t));
6952    }
6953    var l = function (e, t, o) {
6954      o = o || {};
6955      var n = c(e).data("mask"),
6956        i = JSON.stringify,
6957        s = c(e).val() || c(e).text();
6958      try {
6959        return (
6960          "function" == typeof t && (t = t(s)),
6961          "object" != typeof n || i(n.options) !== i(o) || n.mask !== t
6962        );
6963      } catch (e) {}
6964    };
6965    (c.fn.mask = function (e, t) {
6966      t = t || {};
6967      function o() {
6968        if (l(this, e, t)) return c(this).data("mask", new a(this, e, t));
6969      }
6970      var n = this.selector,
6971        i = c.jMaskGlobals,
6972        s = i.watchInterval,
6973        r = t.watchInputs || i.watchInputs;
6974      return (
6975        c(this).each(o),
6976        n &&
6977          "" !== n &&
6978          r &&
6979          (clearInterval(c.maskWatchers[n]),
6980          (c.maskWatchers[n] = setInterval(function () {
6981            c(document).find(n).each(o);
6982          }, s))),
6983        this
6984      );
6985    }),
6986      (c.fn.masked = function (e) {
6987        return this.data("mask").getMaskedVal(e);
6988      }),
6989      (c.fn.unmask = function () {
6990        return (
6991          clearInterval(c.maskWatchers[this.selector]),
6992          delete c.maskWatchers[this.selector],
6993          this.each(function () {
6994            var e = c(this).data("mask");
6995            e && e.remove().removeData("mask");
6996          })
6997        );
6998      }),
6999      (c.fn.cleanVal = function () {
7000        return this.data("mask").getCleanVal();
7001      }),
7002      (c.applyDataMask = function (e) {
7003        ((e = e || c.jMaskGlobals.maskElements) instanceof c ? e : c(e))
7004          .filter(c.jMaskGlobals.dataMaskAttr)
7005          .each(t);
7006      });
7007    var e,
7008      o,
7009      n,
7010      i = {
7011        maskElements: "input,td,span,div",
7012        dataMaskAttr: "*[data-mask]",
7013        dataMask: !0,
7014        watchInterval: 300,
7015        watchInputs: !0,
7016        useInput:
7017          ((e = "input"),
7018          (n = document.createElement("div")),
7019          (o = (e = "on" + e) in n) ||
7020            (n.setAttribute(e, "return;"), (o = "function" == typeof n[e])),
7021          o),
7022        watchDataMask: !1,
7023        byPassKeys: [9, 16, 17, 18, 36, 37, 38, 39, 40, 91],
7024        translation: {
7025          0: { pattern: /\d/ },
7026          9: { pattern: /\d/, optional: !(n = null) },
7027          "#": { pattern: /\d/, recursive: !0 },
7028          A: { pattern: /[a-zA-Z0-9]/ },
7029          S: { pattern: /[a-zA-Z]/ },
7030        },
7031      };
7032    (c.jMaskGlobals = c.jMaskGlobals || {}),
7033      (i = c.jMaskGlobals = c.extend(!0, {}, i, c.jMaskGlobals)).dataMask &&
7034        c.applyDataMask(),
7035      setInterval(function () {
7036        c.jMaskGlobals.watchDataMask && c.applyDataMask();
7037      }, i.watchInterval);
7038  }),
7039  (customForm = {
7040    baseOptions: {
7041      useNativeDropOnMobileDevices: !1,
7042      unselectableClass: "customForm-unselectable",
7043      labelActiveClass: "customForm-label-active",
7044      labelDisabledClass: "customForm-label-disabled",
7045      classPrefix: "customForm-class-",
7046      hiddenClass: "customForm-hidden",
7047      focusClass: "customForm-focus",
7048      wrapperTag: "div",
7049    },
7050    customForms: {
7051      setOptions: function (e) {
7052        for (var t in e)
7053          e.hasOwnProperty(t) &&
7054            "object" == typeof e[t] &&
7055            customForm.lib.extend(
7056              customForm.modules[t].prototype.defaultOptions,
7057              e[t]
7058            );
7059      },
7060      replaceAll: function () {
7061        for (var e in customForm.modules)
7062          for (
7063            var t = customForm.lib.queryBySelector(
7064                customForm.modules[e].prototype.selector
7065              ),
7066              o = 0;
7067            o < t.length;
7068            o++
7069          )
7070            t[o].customForm
7071              ? t[o].customForm.refreshState()
7072              : !customForm.lib.hasClass(t[o], "default") &&
7073                customForm.modules[e].prototype.checkElement(t[o]) &&
7074                new customForm.modules[e]({ replaces: t[o] });
7075      },
7076      refreshElement: function (e) {
7077        e && e.customForm && e.customForm.refreshState();
7078      },
7079      refreshAll: function () {
7080        for (var e in customForm.modules)
7081          for (
7082            var t = customForm.lib.queryBySelector(
7083                customForm.modules[e].prototype.selector
7084              ),
7085              o = 0;
7086            o < t.length;
7087            o++
7088          )
7089            t[o].customForm && t[o].customForm.refreshState();
7090      },
7091      destroyAll: function () {
7092        for (var e in customForm.modules)
7093          for (
7094            var t = customForm.lib.queryBySelector(
7095                customForm.modules[e].prototype.selector
7096              ),
7097              o = 0;
7098            o < t.length;
7099            o++
7100          )
7101            t[o].customForm && t[o].customForm.destroy();
7102      },
7103    },
7104    isTouchDevice: (function () {
7105      try {
7106        return (
7107          "ontouchstart" in window ||
7108          (window.DocumentTouch && document instanceof DocumentTouch)
7109        );
7110      } catch (e) {
7111        return !1;
7112      }
7113    })(),
7114    setBaseModule: function (e) {
7115      for (var t in ((customForm.customControl = function (e) {
7116        (this.options = customForm.lib.extend(
7117          {},
7118          customForm.baseOptions,
7119          this.defaultOptions,
7120          e
7121        )),
7122          this.init();
7123      }),
7124      e))
7125        customForm.customControl.prototype[t] = e[t];
7126    },
7127    init: function () {
7128      return (
7129        (this.eventPress = this.isTouchDevice ? "touchstart" : "mousedown"),
7130        (this.eventMove = this.isTouchDevice ? "touchmove" : "mousemove"),
7131        (this.eventRelease = this.isTouchDevice ? "touchend" : "mouseup"),
7132        this
7133      );
7134    },
7135    initStyles: function () {
7136      var e = document.getElementsByTagName("head")[0],
7137        t = document.createTextNode(
7138          "." +
7139            customForm.baseOptions.unselectableClass +
7140            "{-moz-user-select:none;-webkit-tap-highlight-color:rgba(255,255,255,0);-webkit-user-select:none;user-select:none;}"
7141        ),
7142        o = document.createElement("style");
7143      (o.type = "text/css"),
7144        o.styleSheet ? (o.styleSheet.cssText = t.nodeValue) : o.appendChild(t),
7145        e.appendChild(o);
7146    },
7147    modules: {},
7148    plugins: {},
7149    addModule: function (e) {
7150      if (e.name) {
7151        for (var t in ((customForm.modules[e.name] = function () {
7152          customForm.modules[e.name].superclass.constructor.apply(
7153            this,
7154            arguments
7155          );
7156        }),
7157        customForm.lib.inherit(
7158          customForm.modules[e.name],
7159          customForm.customControl
7160        ),
7161        e))
7162          customForm.modules[e.name].prototype[t] = e[t];
7163        for (var o in (customForm.modules[e.name].prototype.onCreateModule(),
7164        customForm.modules))
7165          customForm.modules[o] != customForm.modules[e.name] &&
7166            customForm.modules[o].prototype.onModuleAdded(
7167              customForm.modules[e.name]
7168            );
7169      }
7170    },
7171    addPlugin: function (e) {
7172      if (e && e.name)
7173        for (var t in ((customForm.plugins[e.name] = function () {
7174          this.init.apply(this, arguments);
7175        }),
7176        e))
7177          customForm.plugins[e.name].prototype[t] = e[t];
7178    },
7179  }.init()),
7180  customForm.setBaseModule({
7181    init: function () {
7182      this.options.replaces &&
7183        ((this.realElement = this.options.replaces),
7184        (this.realElement.customForm = this).replaceObject());
7185    },
7186    defaultOptions: {},
7187    checkElement: function (e) {
7188      return !0;
7189    },
7190    replaceObject: function () {
7191      this.createWrapper(),
7192        this.attachEvents(),
7193        this.fixStyles(),
7194        this.setupWrapper();
7195    },
7196    createWrapper: function () {
7197      (this.fakeElement = customForm.lib.createElement(
7198        this.options.wrapperTag
7199      )),
7200        (this.labelFor = customForm.lib.getLabelFor(this.realElement)),
7201        customForm.lib.disableTextSelection(this.fakeElement),
7202        customForm.lib.addClass(
7203          this.fakeElement,
7204          customForm.lib.getAllClasses(
7205            this.realElement.className,
7206            this.options.classPrefix
7207          )
7208        ),
7209        customForm.lib.addClass(
7210          this.realElement,
7211          customForm.baseOptions.hiddenClass
7212        );
7213    },
7214    attachEvents: function () {
7215      customForm.lib.event.add(
7216        this.realElement,
7217        "focus",
7218        this.onFocusHandler,
7219        this
7220      ),
7221        customForm.lib.event.add(
7222          this.realElement,
7223          "blur",
7224          this.onBlurHandler,
7225          this
7226        ),
7227        customForm.lib.event.add(
7228          this.fakeElement,
7229          "click",
7230          this.onFakeClick,
7231          this
7232        ),
7233        customForm.lib.event.add(
7234          this.fakeElement,
7235          customForm.eventPress,
7236          this.onFakePressed,
7237          this
7238        ),
7239        customForm.lib.event.add(
7240          this.fakeElement,
7241          customForm.eventRelease,
7242          this.onFakeReleased,
7243          this
7244        ),
7245        this.labelFor &&
7246          ((this.labelFor.customForm = this),
7247          customForm.lib.event.add(
7248            this.labelFor,
7249            "click",
7250            this.onFakeClick,
7251            this
7252          ),
7253          customForm.lib.event.add(
7254            this.labelFor,
7255            customForm.eventPress,
7256            this.onFakePressed,
7257            this
7258          ),
7259          customForm.lib.event.add(
7260            this.labelFor,
7261            customForm.eventRelease,
7262            this.onFakeReleased,
7263            this
7264          ));
7265    },
7266    fixStyles: function () {
7267      var e;
7268      customForm.isTouchDevice &&
7269        ((e = "rgba(255,255,255,0)"),
7270        (this.realElement.style.webkitTapHighlightColor = e),
7271        (this.fakeElement.style.webkitTapHighlightColor = e),
7272        this.labelFor && (this.labelFor.style.webkitTapHighlightColor = e));
7273    },
7274    setupWrapper: function () {},
7275    refreshState: function () {},
7276    destroy: function () {
7277      this.fakeElement &&
7278        this.fakeElement.parentNode &&
7279        this.fakeElement.parentNode.removeChild(this.fakeElement),
7280        customForm.lib.removeClass(
7281          this.realElement,
7282          customForm.baseOptions.hiddenClass
7283        ),
7284        (this.realElement.customForm = null);
7285    },
7286    onFocus: function () {
7287      customForm.lib.addClass(this.fakeElement, this.options.focusClass);
7288    },
7289    onBlur: function (e) {
7290      customForm.lib.removeClass(this.fakeElement, this.options.focusClass);
7291    },
7292    onFocusHandler: function () {
7293      this.focused ||
7294        ((this.focused = !0),
7295        customForm.isTouchDevice &&
7296          (customForm.focusedInstance &&
7297            customForm.focusedInstance.realElement != this.realElement &&
7298            (customForm.focusedInstance.onBlur(),
7299            customForm.focusedInstance.realElement.blur()),
7300          (customForm.focusedInstance = this)),
7301        this.onFocus.apply(this, arguments));
7302    },
7303    onBlurHandler: function () {
7304      this.pressedFlag ||
7305        ((this.focused = !1), this.onBlur.apply(this, arguments));
7306    },
7307    onFakeClick: function () {
7308      customForm.isTouchDevice
7309        ? this.onFocus()
7310        : this.realElement.disabled || this.realElement.focus();
7311    },
7312    onFakePressed: function (e) {
7313      this.pressedFlag = !0;
7314    },
7315    onFakeReleased: function () {
7316      this.pressedFlag = !1;
7317    },
7318    onCreateModule: function () {},
7319    onModuleAdded: function (e) {},
7320    onControlReady: function () {},
7321  }),
7322  (customForm.lib = {
7323    bind: function (e, t) {
7324      return function () {
7325        return e.apply(t, arguments);
7326      };
7327    },
7328    browser: (function () {
7329      var e = navigator.userAgent.toLowerCase(),
7330        t = {},
7331        o =
7332          /(webkit)[ \/]([\w.]+)/.exec(e) ||
7333          /(opera)(?:.*version)?[ \/]([\w.]+)/.exec(e) ||
7334          /(msie) ([\w.]+)/.exec(e) ||
7335          (e.indexOf("compatible") < 0 &&
7336            /(mozilla)(?:.*? rv:([\w.]+))?/.exec(e)) ||
7337          [];
7338      return (
7339        (t[o[1]] = !0),
7340        (t.version = o[2] || "0"),
7341        (t.safariMac = -1 != e.indexOf("mac") && -1 != e.indexOf("safari")),
7342        t
7343      );
7344    })(),
7345    getOffset: function (e) {
7346      if (e.getBoundingClientRect) {
7347        var t =
7348            window.pageXOffset ||
7349            document.documentElement.scrollLeft ||
7350            document.body.scrollLeft,
7351          o =
7352            window.pageYOffset ||
7353            document.documentElement.scrollTop ||
7354            document.body.scrollTop,
7355          n =
7356            document.documentElement.clientLeft ||
7357            document.body.clientLeft ||
7358            0,
7359          i =
7360            document.documentElement.clientTop || document.body.clientTop || 0;
7361        return {
7362          top: Math.round(e.getBoundingClientRect().top + o - i),
7363          left: Math.round(e.getBoundingClientRect().left + t - n),
7364        };
7365      }
7366      for (var s = 0, r = 0; e.offsetParent; )
7367        (s += e.offsetLeft), (r += e.offsetTop), (e = e.offsetParent);
7368      return { top: r, left: s };
7369    },
7370    getScrollTop: function () {
7371      return window.pageYOffset || document.documentElement.scrollTop;
7372    },
7373    getScrollLeft: function () {
7374      return window.pageXOffset || document.documentElement.scrollLeft;
7375    },
7376    getWindowWidth: function () {
7377      return "CSS1Compat" == document.compatMode
7378        ? document.documentElement.clientWidth
7379        : document.body.clientWidth;
7380    },
7381    getWindowHeight: function () {
7382      return "CSS1Compat" == document.compatMode
7383        ? document.documentElement.clientHeight
7384        : document.body.clientHeight;
7385    },
7386    getStyle: function (e, t) {
7387      return document.defaultView && document.defaultView.getComputedStyle
7388        ? document.defaultView.getComputedStyle(e, null)[t]
7389        : e.currentStyle
7390        ? e.currentStyle[t]
7391        : e.style[t];
7392    },
7393    getParent: function (e, t) {
7394      for (; e.parentNode && e.parentNode != document.body; ) {
7395        if (e.parentNode.tagName.toLowerCase() == t.toLowerCase())
7396          return e.parentNode;
7397        e = e.parentNode;
7398      }
7399      return !1;
7400    },
7401    isParent: function (e, t) {
7402      for (; t.parentNode; ) {
7403        if (e == t) return !0;
7404        t = t.parentNode;
7405      }
7406      return !1;
7407    },
7408    getLabelFor: function (e) {
7409      return customForm.lib.getParent(e, "label")
7410        ? e.parentNode
7411        : e.id
7412        ? customForm.lib.queryBySelector('label[for="' + e.id + '"]')[0]
7413        : void 0;
7414    },
7415    disableTextSelection: function (e) {
7416      void 0 !== e.onselectstart
7417        ? (e.onselectstart = function () {
7418            return !1;
7419          })
7420        : window.opera
7421        ? e.setAttribute("unselectable", "on")
7422        : customForm.lib.addClass(e, customForm.baseOptions.unselectableClass);
7423    },
7424    enableTextSelection: function (e) {
7425      void 0 !== e.onselectstart
7426        ? (e.onselectstart = null)
7427        : window.opera
7428        ? e.removeAttribute("unselectable")
7429        : customForm.lib.removeClass(
7430            e,
7431            customForm.baseOptions.unselectableClass
7432          );
7433    },
7434    queryBySelector: function (e, t) {
7435      return this.getElementsBySelector(e, t);
7436    },
7437    prevSibling: function (e) {
7438      for (; (e = e.previousSibling) && 1 != e.nodeType; );
7439      return e;
7440    },
7441    nextSibling: function (e) {
7442      for (; (e = e.nextSibling) && 1 != e.nodeType; );
7443      return e;
7444    },
7445    fireEvent: function (e, t) {
7446      if (document.createEvent)
7447        return (
7448          (o = document.createEvent("HTMLEvents")).initEvent(t, !0, !0),
7449          !e.dispatchEvent(o)
7450        );
7451      var o = document.createEventObject();
7452      return e.fireEvent("on" + t, o);
7453    },
7454    inherit: function (e, t) {
7455      function o() {}
7456      (o.prototype = t.prototype),
7457        (e.prototype = new o()),
7458        ((e.prototype.constructor = e).superclass = t.prototype);
7459    },
7460    extend: function (e) {
7461      for (var t = 1; t < arguments.length; t++)
7462        for (var o in arguments[t])
7463          arguments[t].hasOwnProperty(o) && (e[o] = arguments[t][o]);
7464      return e;
7465    },
7466    hasClass: function (e, t) {
7467      return (
7468        !!e.className &&
7469        e.className.match(new RegExp("(\\s|^)" + t + "(\\s|$)"))
7470      );
7471    },
7472    addClass: function (e, t) {
7473      this.hasClass(e, t) ||
7474        (e.className +=
7475          (e.className.length &&
7476          " " !== e.className.charAt(e.className.length - 1)
7477            ? " "
7478            : "") + t);
7479    },
7480    removeClass: function (e, t) {
7481      this.hasClass(e, t) &&
7482        (e.className = e.className
7483          .replace(new RegExp("(\\s|^)" + t + "(\\s|$)"), " ")
7484          .replace(/\s+$/, ""));
7485    },
7486    toggleClass: function (e, t, o) {
7487      o ? this.addClass(e, t) : this.removeClass(e, t);
7488    },
7489    createElement: function (e, t) {
7490      var o = document.createElement(e);
7491      for (var n in t)
7492        if (t.hasOwnProperty(n))
7493          switch (n) {
7494            case "class":
7495              o.className = t[n];
7496              break;
7497            case "html":
7498              o.innerHTML = t[n];
7499              break;
7500            case "style":
7501              this.setStyles(o, t[n]);
7502              break;
7503            default:
7504              o.setAttribute(n, t[n]);
7505          }
7506      return o;
7507    },
7508    setStyles: function (e, t) {
7509      for (var o in t)
7510        if (t.hasOwnProperty(o))
7511          switch (o) {
7512            case "float":
7513              e.style.cssFloat = t[o];
7514              break;
7515            case "opacity":
7516              (e.style.filter =
7517                "progid:DXImageTransform.Microsoft.Alpha(opacity=" +
7518                100 * t[o] +
7519                ")"),
7520                (e.style.opacity = t[o]);
7521              break;
7522            default:
7523              e.style[o] =
7524                (void 0 === t[o] ? 0 : t[o]) +
7525                ("number" == typeof t[o] ? "px" : "");
7526          }
7527      return e;
7528    },
7529    getInnerWidth: function (e) {
7530      return (
7531        e.offsetWidth -
7532        (parseInt(this.getStyle(e, "paddingLeft")) || 0) -
7533        (parseInt(this.getStyle(e, "paddingRight")) || 0)
7534      );
7535    },
7536    getInnerHeight: function (e) {
7537      return (
7538        e.offsetHeight -
7539        (parseInt(this.getStyle(e, "paddingTop")) || 0) -
7540        (parseInt(this.getStyle(e, "paddingBottom")) || 0)
7541      );
7542    },
7543    getAllClasses: function (e, t, o) {
7544      return (
7545        (o = o || ""),
7546        (t = t || ""),
7547        e
7548          ? e
7549              .replace(new RegExp("(\\s|^)" + o + "(\\s|$)"), " ")
7550              .replace(/[\s]*([\S]+)+[\s]*/gi, t + "$1 ")
7551          : ""
7552      );
7553    },
7554    getElementsBySelector: function (e, t) {
7555      if ("function" == typeof document.querySelectorAll)
7556        return (t || document).querySelectorAll(e);
7557      for (var o = e.split(","), n = [], i = 0; i < o.length; i++) {
7558        for (
7559          var s = [t || document],
7560            r = o[i].replace(/^\s+/, "").replace(/\s+$/, "").split(" "),
7561            a = 0;
7562          a < r.length;
7563          a++
7564        )
7565          if (
7566            ((token = r[a].replace(/^\s+/, "").replace(/\s+$/, "")),
7567            -1 < token.indexOf("#"))
7568          ) {
7569            var l = (u = token.split("#"))[0],
7570              c = u[1],
7571              d = document.getElementById(c);
7572            if (l && d.nodeName.toLowerCase() != l) return [];
7573            s = [d];
7574          } else if (-1 < token.indexOf(".")) {
7575            for (
7576              var u,
7577                l = (u = token.split("."))[0] || "*",
7578                p = u[1],
7579                h = [],
7580                f = 0,
7581                m = 0;
7582              m < s.length;
7583              m++
7584            ) {
7585              T =
7586                "*" == l
7587                  ? s[m].getElementsByTagName("*")
7588                  : s[m].getElementsByTagName(l);
7589              for (var g = 0; g < T.length; g++) h[f++] = T[g];
7590            }
7591            s = [];
7592            for (var v = 0, y = 0; y < h.length; y++)
7593              h[y].className &&
7594                h[y].className.match(new RegExp("(\\s|^)" + p + "(\\s|$)")) &&
7595                (s[v++] = h[y]);
7596          } else if (
7597            token.match(/^(\w*)\[(\w+)([=~\|\^\$\*]?)=?"?([^\]"]*)"?\]$/)
7598          ) {
7599            var l = RegExp.$1 || "*",
7600              w = RegExp.$2,
7601              b = RegExp.$3,
7602              x = RegExp.$4;
7603            "for" == w.toLowerCase() &&
7604              this.browser.msie &&
7605              this.browser.version < 8 &&
7606              (w = "htmlFor");
7607            for (h = [], f = 0, m = 0; m < s.length; m++) {
7608              T =
7609                "*" == l
7610                  ? s[m].getElementsByTagName("*")
7611                  : s[m].getElementsByTagName(l);
7612              for (g = 0; T[g]; g++) h[f++] = T[g];
7613            }
7614            s = [];
7615            var k,
7616              v = 0;
7617            switch (b) {
7618              case "=":
7619                k = function (e) {
7620                  return e.getAttribute(w) == x;
7621                };
7622                break;
7623              case "~":
7624                k = function (e) {
7625                  return e
7626                    .getAttribute(w)
7627                    .match(new RegExp("(\\s|^)" + x + "(\\s|$)"));
7628                };
7629                break;
7630              case "|":
7631                k = function (e) {
7632                  return e.getAttribute(w).match(new RegExp("^" + x + "-?"));
7633                };
7634                break;
7635              case "^":
7636                k = function (e) {
7637                  return 0 == e.getAttribute(w).indexOf(x);
7638                };
7639                break;
7640              case "$":
7641                k = function (e) {
7642                  return (
7643                    e.getAttribute(w).lastIndexOf(x) ==
7644                    e.getAttribute(w).length - x.length
7645                  );
7646                };
7647                break;
7648              case "*":
7649                k = function (e) {
7650                  return -1 < e.getAttribute(w).indexOf(x);
7651                };
7652                break;
7653              default:
7654                k = function (e) {
7655                  return e.getAttribute(w);
7656                };
7657            }
7658            s = [];
7659            for (v = 0, y = 0; y < h.length; y++) k(h[y]) && (s[v++] = h[y]);
7660          } else {
7661            l = token;
7662            for (h = [], f = 0, m = 0; m < s.length; m++)
7663              for (
7664                var T = s[m].getElementsByTagName(l), g = 0;
7665                g < T.length;
7666                g++
7667              )
7668                h[f++] = T[g];
7669            s = h;
7670          }
7671        n = [].concat(n, s);
7672      }
7673      return n;
7674    },
7675    scrollSize: (function () {
7676      var t, o, n, i;
7677      function s() {
7678        document.body.removeChild(o), (o = null);
7679      }
7680      function e(e) {
7681        return (
7682          o && s(),
7683          (t = document.createElement("div")),
7684          ((o = document.createElement("div")).style.cssText =
7685            "position:absolute;overflow:hidden;width:100px;height:100px"),
7686          o.appendChild(t),
7687          document.body.appendChild(o),
7688          (t.style.cssText = "height:" + (e ? "100%" : "200px")),
7689          (n = e ? t.offsetHeight : t.offsetWidth),
7690          (o.style.overflow = "scroll"),
7691          (t.innerHTML = 1),
7692          (i = e ? t.offsetHeight : t.offsetWidth),
7693          e && o.clientHeight && (i = o.clientHeight),
7694          s(),
7695          n - i
7696        );
7697      }
7698      return {
7699        getWidth: function () {
7700          return e(!1);
7701        },
7702        getHeight: function () {
7703          return e(!0);
7704        },
7705      };
7706    })(),
7707    domReady: function (e) {
7708      var o = !1;
7709      function n() {
7710        o || ((o = !0), e());
7711      }
7712      document.addEventListener
7713        ? document.addEventListener("DOMContentLoaded", n, !1)
7714        : document.attachEvent &&
7715          (document.documentElement.doScroll &&
7716            window == window.top &&
7717            (function t() {
7718              if (!o && document.body)
7719                try {
7720                  document.documentElement.doScroll("left"), n();
7721                } catch (e) {
7722                  setTimeout(t, 0);
7723                }
7724            })(),
7725          document.attachEvent("onreadystatechange", function () {
7726            "complete" === document.readyState && n();
7727          })),
7728        window.addEventListener
7729          ? window.addEventListener("load", n, !1)
7730          : window.attachEvent && window.attachEvent("onload", n);
7731    },
7732    event: (function () {
7733      var s = 0;
7734      function r(e, t) {
7735        var o, n, i;
7736        (o = (o = e) || window.event).isFixed ||
7737          ((o.isFixed = !0),
7738          (o.preventDefault =
7739            o.preventDefault ||
7740            function () {
7741              this.returnValue = !1;
7742            }),
7743          (o.stopPropagation =
7744            o.stopPropagaton ||
7745            function () {
7746              this.cancelBubble = !0;
7747            }),
7748          o.target || (o.target = o.srcElement),
7749          !o.relatedTarget &&
7750            o.fromElement &&
7751            (o.relatedTarget =
7752              o.fromElement == o.target ? o.toElement : o.fromElement),
7753          null == o.pageX &&
7754            null != o.clientX &&
7755            ((n = document.documentElement),
7756            (i = document.body),
7757            (o.pageX =
7758              o.clientX +
7759              ((n && n.scrollLeft) || (i && i.scrollLeft) || 0) -
7760              (n.clientLeft || 0)),
7761            (o.pageY =
7762              o.clientY +
7763              ((n && n.scrollTop) || (i && i.scrollTop) || 0) -
7764              (n.clientTop || 0))),
7765          !o.which &&
7766            o.button &&
7767            (o.which =
7768              1 & o.button ? 1 : 2 & o.button ? 3 : 4 & o.button ? 2 : 0),
7769          ("DOMMouseScroll" !== o.type && "mousewheel" !== o.type) ||
7770            ((o.mWheelDelta = 0),
7771            o.wheelDelta
7772              ? (o.mWheelDelta = o.wheelDelta / 120)
7773              : o.detail && (o.mWheelDelta = -o.detail / 3))),
7774          (e = o);
7775        var s = this.events[e.type];
7776        for (var r in s) {
7777          !1 === s[r].call(t || this, e) &&
7778            (e.preventDefault(), e.stopPropagation());
7779        }
7780      }
7781      var a = {
7782        add: function (t, e, o, n) {
7783          t.setInterval && t != window && !t.frameElement && (t = window),
7784            o.guid || (o.guid = ++s),
7785            t.events ||
7786              ((t.events = {}),
7787              (t.handle = function (e) {
7788                return r.call(t, e);
7789              })),
7790            t.events[e] ||
7791              ((t.events[e] = {}),
7792              t.addEventListener
7793                ? t.addEventListener(e, t.handle, !1)
7794                : t.attachEvent && t.attachEvent("on" + e, t.handle),
7795              "mousewheel" === e && a.add(t, "DOMMouseScroll", o, n));
7796          var i = customForm.lib.bind(o, n);
7797          (i.guid = o.guid), (t.events[e][o.guid] = n ? i : o);
7798        },
7799        remove: function (t, e, o) {
7800          var n = t.events && t.events[e];
7801          if (n) {
7802            for (var i in (delete n[o.guid], n)) return;
7803            for (var i in (t.removeEventListener
7804              ? t.removeEventListener(e, t.handle, !1)
7805              : t.detachEvent && t.detachEvent("on" + e, t.handle),
7806            delete t.events[e],
7807            t.events))
7808              return;
7809            try {
7810              delete t.handle, delete t.events;
7811            } catch (e) {
7812              t.removeAttribute &&
7813                (t.removeAttribute("handle"), t.removeAttribute("events"));
7814            }
7815            "mousewheel" === e && a.remove(t, "DOMMouseScroll", o);
7816          }
7817        },
7818      };
7819      return a;
7820    })(),
7821  }),
7822  customForm.lib.domReady(function () {
7823    customForm.initStyles();
7824  }),
7825  customForm.addModule({
7826    name: "checkbox",
7827    selector: 'input[type="checkbox"]',
7828    defaultOptions: {
7829      wrapperClass: "chk-area",
7830      focusClass: "chk-focus",
7831      checkedClass: "chk-checked",
7832      labelActiveClass: "chk-label-active",
7833      uncheckedClass: "chk-unchecked",
7834      disabledClass: "chk-disabled",
7835      chkStructure: "<span></span>",
7836    },
7837    setupWrapper: function () {
7838      customForm.lib.addClass(this.fakeElement, this.options.wrapperClass),
7839        (this.fakeElement.innerHTML = this.options.chkStructure),
7840        this.realElement.parentNode.insertBefore(
7841          this.fakeElement,
7842          this.realElement
7843        ),
7844        customForm.lib.event.add(
7845          this.realElement,
7846          "click",
7847          this.onRealClick,
7848          this
7849        ),
7850        this.refreshState();
7851    },
7852    onFakePressed: function () {
7853      customForm.modules[this.name].superclass.onFakePressed.apply(
7854        this,
7855        arguments
7856      ),
7857        this.realElement.disabled || this.realElement.focus();
7858    },
7859    onFakeClick: function (e) {
7860      return (
7861        customForm.modules[this.name].superclass.onFakeClick.apply(
7862          this,
7863          arguments
7864        ),
7865        (this.tmpTimer = setTimeout(
7866          customForm.lib.bind(function () {
7867            this.toggle();
7868          }, this),
7869          10
7870        )),
7871        !1
7872      );
7873    },
7874    onRealClick: function (e) {
7875      setTimeout(
7876        customForm.lib.bind(function () {
7877          this.refreshState();
7878        }, this),
7879        10
7880      ),
7881        e.stopPropagation();
7882    },
7883    toggle: function (e) {
7884      return (
7885        this.realElement.disabled ||
7886          (this.realElement.checked
7887            ? (this.realElement.checked = !1)
7888            : (this.realElement.checked = !0),
7889          customForm.lib.fireEvent(this.realElement, "change")),
7890        this.refreshState(),
7891        !1
7892      );
7893    },
7894    refreshState: function () {
7895      this.realElement.checked
7896        ? (customForm.lib.addClass(this.fakeElement, this.options.checkedClass),
7897          customForm.lib.removeClass(
7898            this.fakeElement,
7899            this.options.uncheckedClass
7900          ),
7901          this.labelFor &&
7902            customForm.lib.addClass(
7903              this.labelFor,
7904              this.options.labelActiveClass
7905            ))
7906        : (customForm.lib.removeClass(
7907            this.fakeElement,
7908            this.options.checkedClass
7909          ),
7910          customForm.lib.addClass(
7911            this.fakeElement,
7912            this.options.uncheckedClass
7913          ),
7914          this.labelFor &&
7915            customForm.lib.removeClass(
7916              this.labelFor,
7917              this.options.labelActiveClass
7918            )),
7919        this.realElement.disabled
7920          ? (customForm.lib.addClass(
7921              this.fakeElement,
7922              this.options.disabledClass
7923            ),
7924            this.labelFor &&
7925              customForm.lib.addClass(
7926                this.labelFor,
7927                this.options.labelDisabledClass
7928              ))
7929          : (customForm.lib.removeClass(
7930              this.fakeElement,
7931              this.options.disabledClass
7932            ),
7933            this.labelFor &&
7934              customForm.lib.removeClass(
7935                this.labelFor,
7936                this.options.labelDisabledClass
7937              ));
7938    },
7939  }),
7940  customForm.addModule({
7941    name: "radio",
7942    selector: 'input[type="radio"]',
7943    defaultOptions: {
7944      wrapperClass: "rad-area",
7945      focusClass: "rad-focus",
7946      checkedClass: "rad-checked",
7947      labelActiveClass: "rad-label-active",
7948      uncheckedClass: "rad-unchecked",
7949      disabledClass: "rad-disabled",
7950      radStructure: "<span></span>",
7951    },
7952    getRadioGroup: function (e) {
7953      var t = e.getAttribute("name");
7954      return t
7955        ? customForm.lib.queryBySelector(
7956            'input[name="' + t + '"]',
7957            customForm.lib.getParent("form")
7958          )
7959        : [e];
7960    },
7961    setupWrapper: function () {
7962      customForm.lib.addClass(this.fakeElement, this.options.wrapperClass),
7963        (this.fakeElement.innerHTML = this.options.radStructure),
7964        this.realElement.parentNode.insertBefore(
7965          this.fakeElement,
7966          this.realElement
7967        ),
7968        this.refreshState(),
7969        this.addEvents();
7970    },
7971    addEvents: function () {
7972      customForm.lib.event.add(
7973        this.fakeElement,
7974        "click",
7975        this.toggleRadio,
7976        this
7977      ),
7978        this.labelFor &&
7979          customForm.lib.event.add(
7980            this.labelFor,
7981            "click",
7982            this.toggleRadio,
7983            this
7984          );
7985    },
7986    onFocus: function (e) {
7987      customForm.modules[this.name].superclass.onFocus.apply(this, arguments),
7988        setTimeout(
7989          customForm.lib.bind(function () {
7990            this.refreshState();
7991          }, this),
7992          10
7993        );
7994    },
7995    toggleRadio: function () {
7996      this.realElement.disabled || (this.realElement.checked = !0),
7997        this.refreshState(),
7998        customForm.lib.fireEvent(this.realElement, "change");
7999    },
8000    refreshState: function () {
8001      for (
8002        var e = this.getRadioGroup(this.realElement), t = 0;
8003        t < e.length;
8004        t++
8005      ) {
8006        var o = e[t].customForm;
8007        o &&
8008          (o.realElement.checked
8009            ? (customForm.lib.addClass(o.fakeElement, o.options.checkedClass),
8010              customForm.lib.removeClass(
8011                o.fakeElement,
8012                o.options.uncheckedClass
8013              ),
8014              o.labelFor &&
8015                customForm.lib.addClass(o.labelFor, o.options.labelActiveClass))
8016            : (customForm.lib.removeClass(
8017                o.fakeElement,
8018                o.options.checkedClass
8019              ),
8020              customForm.lib.addClass(o.fakeElement, o.options.uncheckedClass),
8021              o.labelFor &&
8022                customForm.lib.removeClass(
8023                  o.labelFor,
8024                  o.options.labelActiveClass
8025                )),
8026          o.realElement.disabled
8027            ? (customForm.lib.addClass(o.fakeElement, o.options.disabledClass),
8028              o.labelFor &&
8029                customForm.lib.addClass(
8030                  o.labelFor,
8031                  o.options.labelDisabledClass
8032                ))
8033            : (customForm.lib.removeClass(
8034                o.fakeElement,
8035                o.options.disabledClass
8036              ),
8037              o.labelFor &&
8038                customForm.lib.removeClass(
8039                  o.labelFor,
8040                  o.options.labelDisabledClass
8041                )));
8042      }
8043    },
8044  }),
8045  customForm.addModule({
8046    name: "select",
8047    selector: "select",
8048    defaultOptions: {
8049      showNativeDrop: !1,
8050      handleDropPosition: !0,
8051      selectDropPosition: "bottom",
8052      wrapperClass: "select-area",
8053      focusClass: "select-focus",
8054      dropActiveClass: "select-active",
8055      selectedClass: "item-selected",
8056      currentSelectedClass: "current-selected",
8057      disabledClass: "select-disabled",
8058      valueSelector: "span.center",
8059      optGroupClass: "optgroup",
8060      openerSelector: "a.select-opener",
8061      selectStructure:
8062        '<span class="left"></span><span class="center"></span><a class="select-opener"></a>',
8063      classPrefix: "select-",
8064      dropMaxHeight: 200,
8065      dropFlippedClass: "select-options-flipped",
8066      dropHiddenClass: "options-hidden",
8067      dropScrollableClass: "options-overflow",
8068      dropClass: "select-options",
8069      dropClassPrefix: "drop-",
8070      dropStructure:
8071        '<div class="drop-holder"><div class="drop-list"></div></div>',
8072      dropSelector: "div.drop-list",
8073    },
8074    checkElement: function (e) {
8075      return !e.size && !e.multiple;
8076    },
8077    setupWrapper: function () {
8078      customForm.lib.addClass(this.fakeElement, this.options.wrapperClass),
8079        this.realElement.parentNode.insertBefore(
8080          this.fakeElement,
8081          this.realElement
8082        ),
8083        (this.fakeElement.innerHTML = this.options.selectStructure),
8084        (this.fakeElement.style.width =
8085          0 < this.realElement.offsetWidth
8086            ? this.realElement.offsetWidth + "px"
8087            : "auto"),
8088        customForm.isTouchDevice &&
8089          customForm.baseOptions.useNativeDropOnMobileDevices &&
8090          (this.options.showNativeDrop = !0),
8091        this.options.showNativeDrop &&
8092          (this.fakeElement.appendChild(this.realElement),
8093          customForm.lib.removeClass(
8094            this.realElement,
8095            this.options.hiddenClass
8096          ),
8097          customForm.lib.setStyles(this.realElement, {
8098            top: 0,
8099            left: 0,
8100            margin: 0,
8101            padding: 0,
8102            opacity: 0,
8103            border: "none",
8104            position: "absolute",
8105   
8105         width: customForm.lib.getInnerWidth(this.fakeElement) - 1,
8106            height: customForm.lib.getInnerHeight(this.fakeElement) - 1,
8107          })),
8108        (this.opener = customForm.lib.queryBySelector(
8109          this.options.openerSelector,
8110          this.fakeElement
8111        )[0]),
8112        (this.valueText = customForm.lib.queryBySelector(
8113          this.options.valueSelector,
8114          this.fakeElement
8115        )[0]),
8116        customForm.lib.disableTextSelection(this.valueText),
8117        (this.opener.customForm = this).options.showNativeDrop
8118          ? this.refreshState()
8119          : (this.createDropdown(),
8120            this.refreshState(),
8121            this.onControlReady(this),
8122            this.hideDropdown(!0)),
8123        this.addEvents();
8124    },
8125    addEvents: function () {
8126      this.options.showNativeDrop
8127        ? customForm.lib.event.add(
8128            this.realElement,
8129            "click",
8130            this.onChange,
8131            this
8132          )
8133        : customForm.lib.event.add(
8134            this.fakeElement,
8135            "click",
8136            this.toggleDropdown,
8137            this
8138          ),
8139        customForm.lib.event.add(
8140          this.realElement,
8141          "change",
8142          this.onChange,
8143          this
8144        );
8145    },
8146    onFakeClick: function () {},
8147    onFocus: function () {
8148      customForm.modules[this.name].superclass.onFocus.apply(this, arguments),
8149        this.options.showNativeDrop ||
8150          (customForm.lib.browser.safariMac &&
8151            this.realElement.setAttribute("size", "2"),
8152          customForm.lib.event.add(
8153            this.realElement,
8154            "keydown",
8155            this.onKeyDown,
8156            this
8157          ),
8158          customForm.activeControl &&
8159            customForm.activeControl != this &&
8160            (customForm.activeControl.hideDropdown(),
8161            (customForm.activeControl = this)));
8162    },
8163    onBlur: function () {
8164      this.options.showNativeDrop
8165        ? customForm.modules[this.name].superclass.onBlur.apply(this)
8166        : (customForm.lib.browser.safariMac &&
8167            this.realElement.removeAttribute("size"),
8168          (this.isActiveDrop() && this.isOverDrop()) ||
8169            (customForm.modules[this.name].superclass.onBlur.apply(this),
8170            customForm.activeControl === this &&
8171              (customForm.activeControl = null),
8172            customForm.isTouchDevice || this.hideDropdown()),
8173          customForm.lib.event.remove(
8174            this.realElement,
8175            "keydown",
8176            this.onKeyDown
8177          ));
8178    },
8179    onChange: function () {
8180      this.refreshState();
8181    },
8182    onKeyDown: function (e) {
8183      (customForm.tmpFlag = !0),
8184        setTimeout(function () {
8185          customForm.tmpFlag = !1;
8186        }, 100);
8187      var t = this;
8188      if (
8189        ((t.keyboardFix = !0),
8190        setTimeout(function () {
8191          t.refreshState();
8192        }, 10),
8193        13 == e.keyCode)
8194      )
8195        return t.toggleDropdown.apply(t), !1;
8196    },
8197    onResizeWindow: function (e) {
8198      this.isActiveDrop() && this.hideDropdown();
8199    },
8200    onScrollWindow: function (e) {
8201      this.isActiveDrop() && this.positionDropdown();
8202    },
8203    onOptionClick: function (e) {
8204      var t =
8205        e.target && e.target.tagName && "li" == e.target.tagName.toLowerCase()
8206          ? e.target
8207          : customForm.lib.getParent(e.target, "li");
8208      return (
8209        t &&
8210          ((this.realElement.selectedIndex = parseInt(t.getAttribute("rel"))),
8211          customForm.isTouchDevice ? this.onFocus() : this.realElement.focus(),
8212          this.refreshState(),
8213          this.hideDropdown(),
8214          customForm.lib.fireEvent(this.realElement, "change")),
8215        !1
8216      );
8217    },
8218    onClickOutside: function (e) {
8219      customForm.tmpFlag
8220        ? (customForm.tmpFlag = !1)
8221        : customForm.lib.isParent(this.fakeElement, e.target) ||
8222          customForm.lib.isParent(this.selectDrop, e.target) ||
8223          this.hideDropdown();
8224    },
8225    onDropHover: function (e) {
8226      var t;
8227      this.keyboardFix
8228        ? (this.keyboardFix = !1)
8229        : ((this.hoverFlag = !0),
8230          (t =
8231            e.target &&
8232            e.target.tagName &&
8233            "li" == e.target.tagName.toLowerCase()
8234              ? e.target
8235              : customForm.lib.getParent(e.target, "li")) &&
8236            ((this.realElement.selectedIndex = parseInt(t.getAttribute("rel"))),
8237            this.refreshSelectedClass(parseInt(t.getAttribute("rel")))));
8238    },
8239    onDropLeave: function () {
8240      this.hoverFlag = !1;
8241    },
8242    isActiveDrop: function () {
8243      return !customForm.lib.hasClass(
8244        this.selectDrop,
8245        this.options.dropHiddenClass
8246      );
8247    },
8248    isOverDrop: function () {
8249      return this.hoverFlag;
8250    },
8251    createDropdown: function () {
8252      this.selectDrop &&
8253        this.selectDrop.parentNode.removeChild(this.selectDrop),
8254        (this.selectDrop = document.createElement("div")),
8255        (this.selectDrop.className = this.options.dropClass),
8256        (this.selectDrop.innerHTML = this.options.dropStructure),
8257        customForm.lib.setStyles(this.selectDrop, { position: "absolute" }),
8258        (this.selectList = customForm.lib.queryBySelector(
8259          this.options.dropSelector,
8260          this.selectDrop
8261        )[0]),
8262        customForm.lib.addClass(this.selectDrop, this.options.dropHiddenClass),
8263        document.body.appendChild(this.selectDrop),
8264        (this.selectDrop.customForm = this),
8265        customForm.lib.event.add(
8266          this.selectDrop,
8267          "click",
8268          this.onOptionClick,
8269          this
8270        ),
8271        customForm.lib.event.add(
8272          this.selectDrop,
8273          "mouseover",
8274          this.onDropHover,
8275          this
8276        ),
8277        customForm.lib.event.add(
8278          this.selectDrop,
8279          "mouseout",
8280          this.onDropLeave,
8281          this
8282        ),
8283        this.buildDropdown();
8284    },
8285    buildDropdown: function () {
8286      this.buildDropdownOptions(),
8287        this.positionDropdown(),
8288        this.buildDropdownScroll();
8289    },
8290    buildDropdownOptions: function () {
8291      this.resStructure = "";
8292      for (var e = (this.optNum = 0); e < this.realElement.children.length; e++)
8293        this.resStructure +=
8294          this.buildElement(this.realElement.children[e]) + "\n";
8295      this.selectList.innerHTML = this.resStructure;
8296    },
8297    buildDropdownScroll: function () {
8298      this.options.dropMaxHeight &&
8299        this.selectDrop.offsetHeight > this.options.dropMaxHeight &&
8300        ((this.selectList.style.height = this.options.dropMaxHeight + "px"),
8301        (this.selectList.style.overflow = "auto"),
8302        (this.selectList.style.overflowX = "hidden"),
8303        customForm.lib.addClass(
8304          this.selectDrop,
8305          this.options.dropScrollableClass
8306        )),
8307        customForm.lib.addClass(
8308          this.selectDrop,
8309          customForm.lib.getAllClasses(
8310            this.realElement.className,
8311            this.options.dropClassPrefix,
8312            customForm.baseOptions.hiddenClass
8313          )
8314        );
8315    },
8316    parseOptionTitle: function (e) {
8317      return "string" == typeof e && /\.(jpg|gif|png|bmp|jpeg)(.*)?$/i.test(e)
8318        ? e
8319        : "";
8320    },
8321    buildElement: function (e) {
8322      var t,
8323        o = "";
8324      if ("option" == e.tagName.toLowerCase())
8325        return (
8326          (customForm.lib.prevSibling(e) &&
8327            "option" == customForm.lib.prevSibling(e).tagName.toLowerCase()) ||
8328            (o += "<ul>"),
8329          (t = this.parseOptionTitle(e.title)),
8330          (o +=
8331            '<li rel="' +
8332            this.optNum++ +
8333            '" class="' +
8334            (e.className ? e.className + " " : "") +
8335            'customFormcalc"><a href="/">' +
8336            (t ? '<img src="' + t + '" alt="" />' : "") +
8337            "<span>" +
8338            e.innerHTML +
8339            "</span></a></li>"),
8340          (customForm.lib.nextSibling(e) &&
8341            "option" == customForm.lib.nextSibling(e).tagName.toLowerCase()) ||
8342            (o += "</ul>"),
8343          o
8344        );
8345      if ("optgroup" == e.tagName.toLowerCase() && e.label) {
8346        (o += '<div class="' + this.options.optGroupClass + '">'),
8347          (o +=
8348            '<strong class="customFormcalc"><em>' + e.label + "</em></strong>");
8349        for (var n = 0; n < e.children.length; n++)
8350          o += this.buildElement(e.children[n]);
8351        return (o += "</div>");
8352      }
8353    },
8354    positionDropdown: function () {
8355      var e = customForm.lib.getOffset(this.fakeElement),
8356        t = this.fakeElement.offsetHeight,
8357        o = this.selectDrop.offsetHeight,
8358        n =
8359          e.top - o >= customForm.lib.getScrollTop() &&
8360          customForm.lib.getScrollTop() + customForm.lib.getWindowHeight() <
8361            e.top + t + o;
8362      (this.options.handleDropPosition && n) ||
8363      "top" === this.options.selectDropPosition
8364        ? ((this.selectDrop.style.top = e.top - o + "px"),
8365          customForm.lib.addClass(
8366            this.selectDrop,
8367            this.options.dropFlippedClass
8368          ))
8369        : ((this.selectDrop.style.top = e.top + t + "px"),
8370          customForm.lib.removeClass(
8371            this.selectDrop,
8372            this.options.dropFlippedClass
8373          )),
8374        (this.selectDrop.style.left = e.left + "px"),
8375        (this.selectDrop.style.width = this.fakeElement.offsetWidth + "px");
8376    },
8377    showDropdown: function () {
8378      document.body.appendChild(this.selectDrop),
8379        customForm.lib.removeClass(
8380          this.selectDrop,
8381          this.options.dropHiddenClass
8382        ),
8383        customForm.lib.addClass(this.fakeElement, this.options.dropActiveClass),
8384        this.positionDropdown();
8385      var e = this.getFakeActiveOption();
8386      this.removeClassFromItems(this.options.currentSelectedClass),
8387        customForm.lib.addClass(e, this.options.currentSelectedClass),
8388        customForm.lib.event.add(window, "resize", this.onResizeWindow, this),
8389        customForm.lib.event.add(window, "scroll", this.onScrollWindow, this),
8390        customForm.lib.event.add(
8391          document,
8392          customForm.eventPress,
8393          this.onClickOutside,
8394          this
8395        ),
8396        this.positionDropdown();
8397    },
8398    hideDropdown: function (e) {
8399      (this.selectDrop.parentNode &&
8400        (this.selectDrop.offsetWidth &&
8401          this.selectDrop.parentNode.removeChild(this.selectDrop),
8402        e)) ||
8403        ("number" == typeof this.origSelectedIndex &&
8404          (this.realElement.selectedIndex = this.origSelectedIndex),
8405        customForm.lib.removeClass(
8406          this.fakeElement,
8407          this.options.dropActiveClass
8408        ),
8409        customForm.lib.addClass(this.selectDrop, this.options.dropHiddenClass),
8410        customForm.lib.event.remove(window, "resize", this.onResizeWindow),
8411        customForm.lib.event.remove(window, "scroll", this.onScrollWindow),
8412        customForm.lib.event.remove(
8413          document.documentElement,
8414          customForm.eventPress,
8415          this.onClickOutside
8416        ),
8417        customForm.isTouchDevice && this.onBlur());
8418    },
8419    toggleDropdown: function () {
8420      this.realElement.disabled ||
8421        (customForm.isTouchDevice ? this.onFocus() : this.realElement.focus(),
8422        (this.dropOpened = !0),
8423        this.isActiveDrop() ? this.hideDropdown() : this.showDropdown(),
8424        this.refreshState());
8425    },
8426    scrollToItem: function () {
8427      var e, t, o, n;
8428      this.isActiveDrop() &&
8429        ((e = this.selectList.offsetHeight),
8430        (t = this.calcOptionOffset(this.getFakeActiveOption())),
8431        (o = this.selectList.scrollTop),
8432        (n = this.getFakeActiveOption().offsetHeight),
8433        o + e <= t
8434          ? (this.selectList.scrollTop = t - e + n)
8435          : t < o && (this.selectList.scrollTop = t));
8436    },
8437    getFakeActiveOption: function (e) {
8438      return customForm.lib.queryBySelector(
8439        'li[rel="' +
8440          ("number" == typeof e ? e : this.realElement.selectedIndex) +
8441          '"]',
8442        this.selectList
8443      )[0];
8444    },
8445    calcOptionOffset: function (e) {
8446      for (
8447        var t = 0,
8448          o = customForm.lib.queryBySelector(
8449            ".customFormcalc",
8450            this.selectList
8451          ),
8452          n = 0;
8453        n < o.length && o[n] != e;
8454        n++
8455      )
8456        t += o[n].offsetHeight;
8457      return t;
8458    },
8459    childrenHasItem: function (e, t) {
8460      var o = e.getElementsByTagName("*");
8461      for (i = 0; i < o.length; i++) if (o[i] == t) return !0;
8462      return !1;
8463    },
8464    removeClassFromItems: function (e) {
8465      for (
8466        var t = customForm.lib.queryBySelector("li", this.selectList),
8467          o = t.length - 1;
8468        0 <= o;
8469        o--
8470      )
8471        customForm.lib.removeClass(t[o], e);
8472    },
8473    setSelectedClass: function (e) {
8474      customForm.lib.addClass(
8475        this.getFakeActiveOption(e),
8476        this.options.selectedClass
8477      );
8478    },
8479    refreshSelectedClass: function (e) {
8480      this.options.showNativeDrop ||
8481        (this.removeClassFromItems(this.options.selectedClass),
8482        this.setSelectedClass(e)),
8483        this.realElement.disabled
8484          ? (customForm.lib.addClass(
8485              this.fakeElement,
8486              this.options.disabledClass
8487            ),
8488            this.labelFor &&
8489              customForm.lib.addClass(
8490                this.labelFor,
8491                this.options.labelDisabledClass
8492              ))
8493          : (customForm.lib.removeClass(
8494              this.fakeElement,
8495              this.options.disabledClass
8496            ),
8497            this.labelFor &&
8498              customForm.lib.removeClass(
8499                this.labelFor,
8500                this.options.labelDisabledClass
8501              ));
8502    },
8503    refreshSelectedText: function () {
8504      var e;
8505      !this.dropOpened && this.realElement.title
8506        ? (this.valueText.innerHTML = this.realElement.title)
8507        : this.realElement.options[this.realElement.selectedIndex].title
8508        ? ((e = this.parseOptionTitle(
8509            this.realElement.options[this.realElement.selectedIndex].title
8510          )),
8511          (this.valueText.innerHTML =
8512            (e ? '<img src="' + e + '" alt="" />' : "") +
8513            this.realElement.options[this.realElement.selectedIndex].innerHTML))
8514        : (this.valueText.innerHTML =
8515            this.realElement.options[this.realElement.selectedIndex].innerHTML);
8516    },
8517    refreshState: function () {
8518      (this.origSelectedIndex = this.realElement.selectedIndex),
8519        this.refreshSelectedClass(),
8520        this.refreshSelectedText(),
8521        this.options.showNativeDrop ||
8522          (this.positionDropdown(),
8523          this.selectDrop.offsetWidth && this.scrollToItem());
8524    },
8525  }),
8526  "undefined" == typeof jQuery)
8527)
8528  throw new Error("Bootstrap's JavaScript requires jQuery");
8529!(function () {
8530  "use strict";
8531  var e = jQuery.fn.jquery.split(" ")[0].split(".");
8532  if (
8533    (e[0] < 2 && e[1] < 9) ||
8534    (1 == e[0] && 9 == e[1] && e[2] < 1) ||
8535    3 < e[0]
8536  )
8537    throw new Error(
8538      "Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4"
8539    );
8540})(),
8541  (function (a) {
8542    "use strict";
8543    function r(e) {
8544      this.element = a(e);
8545    }
8546    function t(o) {
8547      return this.each(function () {
8548        var e = a(this),
8549          t = e.data("bs.tab");
8550        t || e.data("bs.tab", (t = new r(this))),
8551          "string" == typeof o && t[o]();
8552      });
8553    }
8554    (r.VERSION = "3.3.7"),
8555      (r.TRANSITION_DURATION = 150),
8556      (r.prototype.show = function () {
8557        var e,
8558          t,
8559          o,
8560          n,
8561          i = this.element,
8562          s = i.closest("ul:not(.dropdown-menu)"),
8563          r =
8564            (r = i.data("target")) ||
8565            ((r = i.attr("href")) && r.replace(/.*(?=#[^\s]*$)/, ""));
8566        i.parent("li").hasClass("active") ||
8567          ((e = s.find(".active:last a")),
8568          (t = a.Event("hide.bs.tab", { relatedTarget: i[0] })),
8569          (o = a.Event("show.bs.tab", { relatedTarget: e[0] })),
8570          e.trigger(t),
8571          i.trigger(o),
8572          o.isDefaultPrevented() ||
8573            t.isDefaultPrevented() ||
8574            ((n = a(r)),
8575            this.activate(i.closest("li"), s),
8576            this.activate(n, n.parent(), function () {
8577              e.trigger({ type: "hidden.bs.tab", relatedTarget: i[0] }),
8578                i.trigger({ type: "shown.bs.tab", relatedTarget: e[0] });
8579            })));
8580      }),
8581      (r.prototype.activate = function (e, t, o) {
8582        var n = t.find("> .active"),
8583          i =
8584            o &&
8585            a.support.transition &&
8586            ((n.length && n.hasClass("fade")) || !!t.find("> .fade").length);
8587        function s() {
8588          n
8589            .removeClass("active")
8590            .find("> .dropdown-menu > .active")
8591            .removeClass("active")
8592            .end()
8593            .find('[data-toggle="tab"]')
8594            .attr("aria-expanded", !1),
8595            e
8596              .addClass("active")
8597              .find('[data-toggle="tab"]')
8598              .attr("aria-expanded", !0),
8599            i ? (e[0].offsetWidth, e.addClass("in")) : e.removeClass("fade"),
8600            e.parent(".dropdown-menu").length &&
8601              e
8602                .closest("li.dropdown")
8603                .addClass("active")
8604                .end()
8605                .find('[data-toggle="tab"]')
8606                .attr("aria-expanded", !0),
8607            o && o();
8608        }
8609        n.length && i
8610          ? n
8611              .one("bsTransitionEnd", s)
8612              .emulateTransitionEnd(r.TRANSITION_DURATION)
8613          : s(),
8614          n.removeClass("in");
8615      });
8616    var e = a.fn.tab;
8617    (a.fn.tab = t),
8618      (a.fn.tab.Constructor = r),
8619      (a.fn.tab.noConflict = function () {
8620        return (a.fn.tab = e), this;
8621      });
8622    function o(e) {
8623      e.preventDefault(), t.call(a(this), "show");
8624    }
8625    a(document)
8626      .on("click.bs.tab.data-api", '[data-toggle="tab"]', o)
8627      .on("click.bs.tab.data-api", '[data-toggle="pill"]', o);
8628  })(jQuery),
8629  (function (r) {
8630    "use strict";
8631    var a = function (e, t) {
8632      (this.$element = r(e)),
8633        (this.options = r.extend({}, a.DEFAULTS, t)),
8634        (this.$trigger = r(
8635          '[data-toggle="collapse"][href="/' +
8636            e.id +
8637            '"],[data-toggle="collapse"][data-target="#' +
8638            e.id +
8639            '"]'
8640        )),
8641        (this.transitioning = null),
8642        this.options.parent
8643          ? (this.$parent = this.getParent())
8644          : this.addAriaAndCollapsedClass(this.$element, this.$trigger),
8645        this.options.toggle && this.toggle();
8646    };
8647    function i(e) {
8648      var t,
8649        o =
8650          e.attr("data-target") ||
8651          ((t = e.attr("href")) && t.replace(/.*(?=#[^\s]+$)/, ""));
8652      return r(o);
8653    }
8654    function l(n) {
8655      return this.each(function () {
8656        var e = r(this),
8657          t = e.data("bs.collapse"),
8658          o = r.extend({}, a.DEFAULTS, e.data(), "object" == typeof n && n);
8659        !t && o.toggle && /show|hide/.test(n) && (o.toggle = !1),
8660          t || e.data("bs.collapse", (t = new a(this, o))),
8661          "string" == typeof n && t[n]();
8662      });
8663    }
8664    (a.VERSION = "3.3.7"),
8665      (a.TRANSITION_DURATION = 350),
8666      (a.DEFAULTS = { toggle: !0 }),
8667      (a.prototype.dimension = function () {
8668        return this.$element.hasClass("width") ? "width" : "height";
8669      }),
8670      (a.prototype.show = function () {
8671        if (!this.transitioning && !this.$element.hasClass("in")) {
8672          var e,
8673            t =
8674              this.$parent &&
8675              this.$parent.children(".panel").children(".in, .collapsing");
8676          if (
8677            !(t && t.length && (e = t.data("bs.collapse")) && e.transitioning)
8678          ) {
8679            var o = r.Event("show.bs.collapse");
8680            if ((this.$element.trigger(o), !o.isDefaultPrevented())) {
8681              t &&
8682                t.length &&
8683                (l.call(t, "hide"), e || t.data("bs.collapse", null));
8684              var n = this.dimension();
8685              this.$element
8686                .removeClass("collapse")
8687                .addClass("collapsing")
8688                [n](0)
8689                .attr("aria-expanded", !0),
8690                this.$trigger
8691                  .removeClass("collapsed")
8692                  .attr("aria-expanded", !0),
8693                (this.transitioning = 1);
8694              var i = function () {
8695                this.$element
8696                  .removeClass("collapsing")
8697                  .addClass("collapse in")
8698                  [n](""),
8699                  (this.transitioning = 0),
8700                  this.$element.trigger("shown.bs.collapse");
8701              };
8702              if (!r.support.transition) return i.call(this);
8703              var s = r.camelCase(["scroll", n].join("-"));
8704              this.$element
8705                .one("bsTransitionEnd", r.proxy(i, this))
8706                .emulateTransitionEnd(a.TRANSITION_DURATION)
8707                [n](this.$element[0][s]);
8708            }
8709          }
8710        }
8711      }),
8712      (a.prototype.hide = function () {
8713        if (!this.transitioning && this.$element.hasClass("in")) {
8714          var e = r.Event("hide.bs.collapse");
8715          if ((this.$element.trigger(e), !e.isDefaultPrevented())) {
8716            var t = this.dimension();
8717            this.$element[t](this.$element[t]())[0].offsetHeight,
8718              this.$element
8719                .addClass("collapsing")
8720                .removeClass("collapse in")
8721                .attr("aria-expanded", !1),
8722              this.$trigger.addClass("collapsed").attr("aria-expanded", !1),
8723              (this.transitioning = 1);
8724            var o = function () {
8725              (this.transitioning = 0),
8726                this.$element
8727                  .removeClass("collapsing")
8728                  .addClass("collapse")
8729                  .trigger("hidden.bs.collapse");
8730            };
8731            if (!r.support.transition) return o.call(this);
8732            this.$element[t](0)
8733              .one("bsTransitionEnd", r.proxy(o, this))
8734              .emulateTransitionEnd(a.TRANSITION_DURATION);
8735          }
8736        }
8737      }),
8738      (a.prototype.toggle = function () {
8739        this[this.$element.hasClass("in") ? "hide" : "show"]();
8740      }),
8741      (a.prototype.getParent = function () {
8742        return r(this.options.parent)
8743          .find(
8744            '[data-toggle="collapse"][data-parent="' +
8745              this.options.parent +
8746              '"]'
8747          )
8748          .each(
8749            r.proxy(function (e, t) {
8750              var o = r(t);
8751              this.addAriaAndCollapsedClass(i(o), o);
8752            }, this)
8753          )
8754          .end();
8755      }),
8756      (a.prototype.addAriaAndCollapsedClass = function (e, t) {
8757        var o = e.hasClass("in");
8758        e.attr("aria-expanded", o),
8759          t.toggleClass("collapsed", !o).attr("aria-expanded", o);
8760      });
8761    var e = r.fn.collapse;
8762    (r.fn.collapse = l),
8763      (r.fn.collapse.Constructor = a),
8764      (r.fn.collapse.noConflict = function () {
8765        return (r.fn.collapse = e), this;
8766      }),
8767      r(document).on(
8768        "click.bs.collapse.data-api",
8769        '[data-toggle="collapse"]',
8770        function (e) {
8771          var t = r(this);
8772          t.attr("data-target") || e.preventDefault();
8773          var o = i(t),
8774            n = o.data("bs.collapse") ? "toggle" : t.data();
8775          l.call(o, n);
8776        }
8777      );
8778  })(jQuery),
8779  (function (e) {
8780    "use strict";
8781    "function" == typeof define && define.amd
8782      ? define(["jquery"], e)
8783      : "undefined" != typeof exports
8784      ? (module.exports = e(require("jquery")))
8785      : e(jQuery);
8786  })(function (c) {
8787    "use strict";
8788    var i,
8789      r = window.Slick || {};
8790    (i = 0),
8791      ((r = function (e, t) {
8792        var o,
8793          n = this;
8794        (n.defaults = {
8795          accessibility: !0,
8796          adaptiveHeight: !1,
8797          appendArrows: c(e),
8798          appendDots: c(e),
8799          arrows: !0,
8800          asNavFor: null,
8801          prevArrow:
8802            '<button type="button" data-role="none" class="slick-prev" aria-label="Previous" tabindex="0" role="button">Previous</button>',
8803          nextArrow:
8804            '<button type="button" data-role="none" class="slick-next" aria-label="Next" tabindex="0" role="button">Next</button>',
8805          autoplay: !1,
8806          autoplaySpeed: 3e3,
8807          centerMode: !1,
8808          centerPadding: "50px",
8809          cssEase: "ease",
8810          customPaging: function (e, t) {
8811            return c(
8812              '<button type="button" data-role="none" role="button" tabindex="0" />'
8813            ).text(t + 1);
8814          },
8815          dots: !1,
8816          dotsClass: "slick-dots",
8817          draggable: !0,
8818          easing: "linear",
8819          edgeFriction: 0.35,
8820          fade: !1,
8821          focusOnSelect: !1,
8822          infinite: !0,
8823          initialSlide: 0,
8824          lazyLoad: "ondemand",
8825          mobileFirst: !1,
8826          pauseOnHover: !0,
8827          pauseOnFocus: !0,
8828          pauseOnDotsHover: !1,
8829          respondTo: "window",
8830          responsive: null,
8831          rows: 1,
8832          rtl: !1,
8833          slide: "",
8834          slidesPerRow: 1,
8835          slidesToShow: 1,
8836          slidesToScroll: 1,
8837          speed: 500,
8838          swipe: !0,
8839          swipeToSlide: !1,
8840          touchMove: !0,
8841          touchThreshold: 5,
8842          useCSS: !0,
8843          useTransform: !0,
8844          variableWidth: !1,
8845          vertical: !1,
8846          verticalSwiping: !1,
8847          waitForAnimate: !0,
8848          zIndex: 1e3,
8849        }),
8850          (n.initials = {
8851            animating: !1,
8852            dragging: !1,
8853            autoPlayTimer: null,
8854            currentDirection: 0,
8855            currentLeft: null,
8856            currentSlide: 0,
8857            direction: 1,
8858            $dots: null,
8859            listWidth: null,
8860            listHeight: null,
8861            loadIndex: 0,
8862            $nextArrow: null,
8863            $prevArrow: null,
8864            slideCount: null,
8865            slideWidth: null,
8866            $slideTrack: null,
8867            $slides: null,
8868            sliding: !1,
8869            slideOffset: 0,
8870            swipeLeft: null,
8871            $list: null,
8872            touchObject: {},
8873            transformsEnabled: !1,
8874            unslicked: !1,
8875          }),
8876          c.extend(n, n.initials),
8877          (n.activeBreakpoint = null),
8878          (n.animType = null),
8879          (n.animProp = null),
8880          (n.breakpoints = []),
8881          (n.breakpointSettings = []),
8882          (n.cssTransitions = !1),
8883          (n.focussed = !1),
8884          (n.interrupted = !1),
8885          (n.hidden = "hidden"),
8886          (n.paused = !0),
8887          (n.positionProp = null),
8888          (n.respondTo = null),
8889          (n.rowCount = 1),
8890          (n.shouldClick = !0),
8891          (n.$slider = c(e)),
8892          (n.$slidesCache = null),
8893          (n.transformType = null),
8894          (n.transitionType = null),
8895          (n.visibilityChange = "visibilitychange"),
8896          (n.windowWidth = 0),
8897          (n.windowTimer = null),
8898          (o = c(e).data("slick") || {}),
8899          (n.options = c.extend({}, n.defaults, t, o)),
8900          (n.currentSlide = n.options.initialSlide),
8901          (n.originalSettings = n.options),
8902          void 0 !== document.mozHidden
8903            ? ((n.hidden = "mozHidden"),
8904              (n.visibilityChange = "mozvisibilitychange"))
8905            : void 0 !== document.webkitHidden &&
8906              ((n.hidden = "webkitHidden"),
8907              (n.visibilityChange = "webkitvisibilitychange")),
8908          (n.autoPlay = c.proxy(n.autoPlay, n)),
8909          (n.autoPlayClear = c.proxy(n.autoPlayClear, n)),
8910          (n.autoPlayIterator = c.proxy(n.autoPlayIterator, n)),
8911          (n.changeSlide = c.proxy(n.changeSlide, n)),
8912          (n.clickHandler = c.proxy(n.clickHandler, n)),
8913          (n.selectHandler = c.proxy(n.selectHandler, n)),
8914          (n.setPosition = c.proxy(n.setPosition, n)),
8915          (n.swipeHandler = c.proxy(n.swipeHandler, n)),
8916          (n.dragHandler = c.proxy(n.dragHandler, n)),
8917          (n.keyHandler = c.proxy(n.keyHandler, n)),
8918          (n.instanceUid = i++),
8919          (n.htmlExpr = /^(?:\s*(<[\w\W]+>)[^>]*)$/),
8920          n.registerBreakpoints(),
8921          n.init(!0);
8922      }).prototype.activateADA = function () {
8923        this.$slideTrack
8924          .find(".slick-active")
8925          .attr({ "aria-hidden": "false" })
8926          .find("a, input, button, select")
8927          .attr({ tabindex: "0" });
8928      }),
8929      (r.prototype.addSlide = r.prototype.slickAdd =
8930        function (e, t, o) {
8931          var n = this;
8932          if ("boolean" == typeof t) (o = t), (t = null);
8933          else if (t < 0 || t >= n.slideCount) return !1;
8934          n.unload(),
8935            "number" == typeof t
8936              ? 0 === t && 0 === n.$slides.length
8937                ? c(e).appendTo(n.$slideTrack)
8938                : o
8939                ? c(e).insertBefore(n.$slides.eq(t))
8940                : c(e).insertAfter(n.$slides.eq(t))
8941              : !0 === o
8942              ? c(e).prependTo(n.$slideTrack)
8943              : c(e).appendTo(n.$slideTrack),
8944            (n.$slides = n.$slideTrack.children(this.options.slide)),
8945            n.$slideTrack.children(this.options.slide).detach(),
8946            n.$slideTrack.append(n.$slides),
8947            n.$slides.each(function (e, t) {
8948              c(t).attr("data-slick-index", e);
8949            }),
8950            (n.$slidesCache = n.$slides),
8951            n.reinit();
8952        }),
8953      (r.prototype.animateHeight = function () {
8954        var e,
8955          t = this;
8956        1 === t.options.slidesToShow &&
8957          !0 === t.options.adaptiveHeight &&
8958          !1 === t.options.vertical &&
8959          ((e = t.$slides.eq(t.currentSlide).outerHeight(!0)),
8960          t.$list.animate({ height: e }, t.options.speed));
8961      }),
8962      (r.prototype.animateSlide = function (e, t) {
8963        var o = {},
8964          n = this;
8965        n.animateHeight(),
8966          !0 === n.options.rtl && !1 === n.options.vertical && (e = -e),
8967          !1 === n.transformsEnabled
8968            ? !1 === n.options.vertical
8969              ? n.$slideTrack.animate(
8970                  { left: e },
8971                  n.options.speed,
8972                  n.options.easing,
8973                  t
8974                )
8975              : n.$slideTrack.animate(
8976                  { top: e },
8977                  n.options.speed,
8978                  n.options.easing,
8979                  t
8980                )
8981            : !1 === n.cssTransitions
8982            ? (!0 === n.options.rtl && (n.currentLeft = -n.currentLeft),
8983              c({ animStart: n.currentLeft }).animate(
8984                { animStart: e },
8985                {
8986                  duration: n.options.speed,
8987                  easing: n.options.easing,
8988                  step: function (e) {
8989                    (e = Math.ceil(e)),
8990                      !1 === n.options.vertical
8991                        ? (o[n.animType] = "translate(" + e + "px, 0px)")
8992                        : (o[n.animType] = "translate(0px," + e + "px)"),
8993                      n.$slideTrack.css(o);
8994                  },
8995                  complete: function () {
8996                    t && t.call();
8997                  },
8998                }
8999              ))
9000            : (n.applyTransition(),
9001              (e = Math.ceil(e)),
9002              !1 === n.options.vertical
9003                ? (o[n.animType] = "translate3d(" + e + "px, 0px, 0px)")
9004                : (o[n.animType] = "translate3d(0px," + e + "px, 0px)"),
9005              n.$slideTrack.css(o),
9006              t &&
9007                setTimeout(function () {
9008                  n.disableTransition(), t.call();
9009                }, n.options.speed));
9010      }),
9011      (r.prototype.getNavTarget = function () {
9012        var e = this.options.asNavFor;
9013        return e && null !== e && (e = c(e).not(this.$slider)), e;
9014      }),
9015      (r.prototype.asNavFor = function (t) {
9016        var e = this.getNavTarget();
9017        null !== e &&
9018          "object" == typeof e &&
9019          e.each(function () {
9020            var e = c(this).slick("getSlick");
9021            e.unslicked || e.slideHandler(t, !0);
9022          });
9023      }),
9024      (r.prototype.applyTransition = function (e) {
9025        var t = this,
9026          o = {};
9027        !1 === t.options.fade
9028          ? (o[t.transitionType] =
9029              t.transformType +
9030              " " +
9031              t.options.speed +
9032              "ms " +
9033              t.options.cssEase)
9034          : (o[t.transitionType] =
9035              "opacity " + t.options.speed + "ms " + t.options.cssEase),
9036          !1 === t.options.fade ? t.$slideTrack.css(o) : t.$slides.eq(e).css(o);
9037      }),
9038      (r.prototype.autoPlay = function () {
9039        var e = this;
9040        e.autoPlayClear(),
9041          e.slideCount > e.options.slidesToShow &&
9042            (e.autoPlayTimer = setInterval(
9043              e.autoPlayIterator,
9044              e.options.autoplaySpeed
9045            ));
9046      }),
9047      (r.prototype.autoPlayClear = function () {
9048        this.autoPlayTimer && clearInterval(this.autoPlayTimer);
9049      }),
9050      (r.prototype.autoPlayIterator = function () {
9051        var e = this,
9052          t = e.currentSlide + e.options.slidesToScroll;
9053        e.paused ||
9054          e.interrupted ||
9055          e.focussed ||
9056          (!1 === e.options.infinite &&
9057            (1 === e.direction && e.currentSlide + 1 === e.slideCount - 1
9058              ? (e.direction = 0)
9059              : 0 === e.direction &&
9060                ((t = e.currentSlide - e.options.slidesToScroll),
9061                e.currentSlide - 1 == 0 && (e.direction = 1))),
9062          e.slideHandler(t));
9063      }),
9064      (r.prototype.buildArrows = function () {
9065        var e = this;
9066        !0 === e.options.arrows &&
9067          ((e.$prevArrow = c(e.options.prevArrow).addClass("slick-arrow")),
9068          (e.$nextArrow = c(e.options.nextArrow).addClass("slick-arrow")),
9069          e.slideCount > e.options.slidesToShow
9070            ? (e.$prevArrow
9071                .removeClass("slick-hidden")
9072                .removeAttr("aria-hidden tabindex"),
9073              e.$nextArrow
9074                .removeClass("slick-hidden")
9075                .removeAttr("aria-hidden tabindex"),
9076              e.htmlExpr.test(e.options.prevArrow) &&
9077                e.$prevArrow.prependTo(e.options.appendArrows),
9078              e.htmlExpr.test(e.options.nextArrow) &&
9079                e.$nextArrow.appendTo(e.options.appendArrows),
9080              !0 !== e.options.infinite &&
9081                e.$prevArrow
9082                  .addClass("slick-disabled")
9083                  .attr("aria-disabled", "true"))
9084            : e.$prevArrow
9085                .add(e.$nextArrow)
9086                .addClass("slick-hidden")
9087                .attr({ "aria-disabled": "true", tabindex: "-1" }));
9088      }),
9089      (r.prototype.buildDots = function () {
9090        var e,
9091          t,
9092          o = this;
9093        if (!0 === o.options.dots && o.slideCount > o.options.slidesToShow) {
9094          for (
9095            o.$slider.addClass("slick-dotted"),
9096              t = c("<ul />").addClass(o.options.dotsClass),
9097              e = 0;
9098            e <= o.getDotCount();
9099            e += 1
9100          )
9101            t.append(
9102              c("<li />").append(o.options.customPaging.call(this, o, e))
9103            );
9104          (o.$dots = t.appendTo(o.options.appendDots)),
9105            o.$dots
9106              .find("li")
9107              .first()
9108              .addClass("slick-active")
9109              .attr("aria-hidden", "false");
9110        }
9111      }),
9112      (r.prototype.buildOut = function () {
9113        var e = this;
9114        (e.$slides = e.$slider
9115          .children(e.options.slide + ":not(.slick-cloned)")
9116          .addClass("slick-slide")),
9117          (e.slideCount = e.$slides.length),
9118          e.$slides.each(function (e, t) {
9119            c(t)
9120              .attr("data-slick-index", e)
9121              .data("originalStyling", c(t).attr("style") || "");
9122          }),
9123          e.$slider.addClass("slick-slider"),
9124          (e.$slideTrack =
9125            0 === e.slideCount
9126              ? c('<div class="slick-track"/>').appendTo(e.$slider)
9127              : e.$slides.wrapAll('<div class="slick-track"/>').parent()),
9128          (e.$list = e.$slideTrack
9129            .wrap('<div aria-live="polite" class="slick-list"/>')
9130            .parent()),
9131          e.$slideTrack.css("opacity", 0),
9132          (!0 !== e.options.centerMode && !0 !== e.options.swipeToSlide) ||
9133            (e.options.slidesToScroll = 1),
9134          c("img[data-lazy]", e.$slider).not("[src]").addClass("slick-loading"),
9135          e.setupInfinite(),
9136          e.buildArrows(),
9137          e.buildDots(),
9138          e.updateDots(),
9139          e.setSlideClasses(
9140            "number" == typeof e.currentSlide ? e.currentSlide : 0
9141          ),
9142          !0 === e.options.draggable && e.$list.addClass("draggable");
9143      }),
9144      (r.prototype.buildRows = function () {
9145        var e,
9146          t,
9147          o,
9148          n = this,
9149          i = document.createDocumentFragment(),
9150          s = n.$slider.children();
9151        if (1 < n.options.rows) {
9152          for (
9153            o = n.options.slidesPerRow * n.options.rows,
9154              t = Math.ceil(s.length / o),
9155              e = 0;
9156            e < t;
9157            e++
9158          ) {
9159            for (
9160              var r = document.createElement("div"), a = 0;
9161              a < n.options.rows;
9162              a++
9163            ) {
9164              for (
9165                var l = document.createElement("div"), c = 0;
9166                c < n.options.slidesPerRow;
9167                c++
9168              ) {
9169                var d = e * o + (a * n.options.slidesPerRow + c);
9170                s.get(d) && l.appendChild(s.get(d));
9171              }
9172              r.appendChild(l);
9173            }
9174            i.appendChild(r);
9175          }
9176          n.$slider.empty().append(i),
9177            n.$slider
9178              .children()
9179              .children()
9180              .children()
9181              .css({
9182                width: 100 / n.options.slidesPerRow + "%",
9183                display: "inline-block",
9184              });
9185        }
9186      }),
9187      (r.prototype.checkResponsive = function (e, t) {
9188        var o,
9189          n,
9190          i,
9191          s = this,
9192          r = !1,
9193          a = s.$slider.width(),
9194          l = window.innerWidth || c(window).width();
9195        if (
9196          ("window" === s.respondTo
9197            ? (i = l)
9198            : "slider" === s.respondTo
9199            ? (i = a)
9200            : "min" === s.respondTo && (i = Math.min(l, a)),
9201          s.options.responsive &&
9202            s.options.responsive.length &&
9203            null !== s.options.responsive)
9204        ) {
9205          for (o in ((n = null), s.breakpoints))
9206            s.breakpoints.hasOwnProperty(o) &&
9207              (!1 === s.originalSettings.mobileFirst
9208                ? i < s.breakpoints[o] && (n = s.breakpoints[o])
9209                : i > s.breakpoints[o] && (n = s.breakpoints[o]));
9210          null !== n
9211            ? (null !== s.activeBreakpoint && n === s.activeBreakpoint && !t) ||
9212              ((s.activeBreakpoint = n),
9213              "unslick" === s.breakpointSettings[n]
9214                ? s.unslick(n)
9215                : ((s.options = c.extend(
9216                    {},
9217                    s.originalSettings,
9218                    s.breakpointSettings[n]
9219                  )),
9220                  !0 === e && (s.currentSlide = s.options.initialSlide),
9221                  s.refresh(e)),
9222              (r = n))
9223            : null !== s.activeBreakpoint &&
9224              ((s.activeBreakpoint = null),
9225              (s.options = s.originalSettings),
9226              !0 === e && (s.currentSlide = s.options.initialSlide),
9227              s.refresh(e),
9228              (r = n)),
9229            e || !1 === r || s.$slider.trigger("breakpoint", [s, r]);
9230        }
9231      }),
9232      (r.prototype.changeSlide = function (e, t) {
9233        var o,
9234          n,
9235          i = this,
9236          s = c(e.currentTarget);
9237        switch (
9238          (s.is("a") && e.preventDefault(),
9239          s.is("li") || (s = s.closest("li")),
9240          (o =
9241            i.slideCount % i.options.slidesToScroll != 0
9242              ? 0
9243              : (i.slideCount - i.currentSlide) % i.options.slidesToScroll),
9244          e.data.message)
9245        ) {
9246          case "previous":
9247            (n =
9248              0 == o ? i.options.slidesToScroll : i.options.slidesToShow - o),
9249              i.slideCount > i.options.slidesToShow &&
9250                i.slideHandler(i.currentSlide - n, !1, t);
9251            break;
9252          case "next":
9253            (n = 0 == o ? i.options.slidesToScroll : o),
9254              i.slideCount > i.options.slidesToShow &&
9255                i.slideHandler(i.currentSlide + n, !1, t);
9256            break;
9257          case "index":
9258            var r =
9259              0 === e.data.index
9260                ? 0
9261                : e.data.index || s.index() * i.options.slidesToScroll;
9262            i.slideHandler(i.checkNavigable(r), !1, t),
9263              s.children().trigger("focus");
9264            break;
9265          default:
9266            return;
9267        }
9268      }),
9269      (r.prototype.checkNavigable = function (e) {
9270        var t = this.getNavigableIndexes(),
9271          o = 0;
9272        if (e > t[t.length - 1]) e = t[t.length - 1];
9273        else
9274          for (var n in t) {
9275            if (e < t[n]) {
9276              e = o;
9277              break;
9278            }
9279            o = t[n];
9280          }
9281        return e;
9282      }),
9283      (r.prototype.cleanUpEvents = function () {
9284        var e = this;
9285        e.options.dots &&
9286          null !== e.$dots &&
9287          c("li", e.$dots)
9288            .off("click.slick", e.changeSlide)
9289            .off("mouseenter.slick", c.proxy(e.interrupt, e, !0))
9290            .off("mouseleave.slick", c.proxy(e.interrupt, e, !1)),
9291          e.$slider.off("focus.slick blur.slick"),
9292          !0 === e.options.arrows &&
9293            e.slideCount > e.options.slidesToShow &&
9294            (e.$prevArrow && e.$prevArrow.off("click.slick", e.changeSlide),
9295            e.$nextArrow && e.$nextArrow.off("click.slick", e.changeSlide)),
9296          e.$list.off("touchstart.slick mousedown.slick", e.swipeHandler),
9297          e.$list.off("touchmove.slick mousemove.slick", e.swipeHandler),
9298          e.$list.off("touchend.slick mouseup.slick", e.swipeHandler),
9299          e.$list.off("touchcancel.slick mouseleave.slick", e.swipeHandler),
9300          e.$list.off("click.slick", e.clickHandler),
9301          c(document).off(e.visibilityChange, e.visibility),
9302          e.cleanUpSlideEvents(),
9303          !0 === e.options.accessibility &&
9304            e.$list.off("keydown.slick", e.keyHandler),
9305          !0 === e.options.focusOnSelect &&
9306            c(e.$slideTrack).children().off("click.slick", e.selectHandler),
9307          c(window).off(
9308            "orientationchange.slick.slick-" + e.instanceUid,
9309            e.orientationChange
9310          ),
9311          c(window).off("resize.slick.slick-" + e.instanceUid, e.resize),
9312          c("[draggable!=true]", e.$slideTrack).off(
9313            "dragstart",
9314            e.preventDefault
9315          ),
9316          c(window).off("load.slick.slick-" + e.instanceUid, e.setPosition),
9317          c(document).off("ready.slick.slick-" + e.instanceUid, e.setPosition);
9318      }),
9319      (r.prototype.cleanUpSlideEvents = function () {
9320        var e = this;
9321        e.$list.off("mouseenter.slick", c.proxy(e.interrupt, e, !0)),
9322          e.$list.off("mouseleave.slick", c.proxy(e.interrupt, e, !1));
9323      }),
9324      (r.prototype.cleanUpRows = function () {
9325        var e;
9326        1 < this.options.rows &&
9327          ((e = this.$slides.children().children()).removeAttr("style"),
9328          this.$slider.empty().append(e));
9329      }),
9330      (r.prototype.clickHandler = function (e) {
9331        !1 === this.shouldClick &&
9332          (e.stopImmediatePropagation(),
9333          e.stopPropagation(),
9334          e.preventDefault());
9335      }),
9336      (r.prototype.destroy = function (e) {
9337        var t = this;
9338        t.autoPlayClear(),
9339          (t.touchObject = {}),
9340          t.cleanUpEvents(),
9341          c(".slick-cloned", t.$slider).detach(),
9342          t.$dots && t.$dots.remove(),
9343          t.$prevArrow &&
9344            t.$prevArrow.length &&
9345            (t.$prevArrow
9346              .removeClass("slick-disabled slick-arrow slick-hidden")
9347              .removeAttr("aria-hidden aria-disabled tabindex")
9348              .css("display", ""),
9349            t.htmlExpr.test(t.options.prevArrow) && t.$prevArrow.remove()),
9350          t.$nextArrow &&
9351            t.$nextArrow.length &&
9352            (t.$nextArrow
9353              .removeClass("slick-disabled slick-arrow slick-hidden")
9354              .removeAttr("aria-hidden aria-disabled tabindex")
9355              .css("display", ""),
9356            t.htmlExpr.test(t.options.nextArrow) && t.$nextArrow.remove()),
9357          t.$slides &&
9358            (t.$slides
9359              .removeClass(
9360                "slick-slide slick-active slick-center slick-visible slick-current"
9361              )
9362              .removeAttr("aria-hidden")
9363              .removeAttr("data-slick-index")
9364              .each(function () {
9365                c(this).attr("style", c(this).data("originalStyling"));
9366              }),
9367            t.$slideTrack.children(this.options.slide).detach(),
9368            t.$slideTrack.detach(),
9369            t.$list.detach(),
9370            t.$slider.append(t.$slides)),
9371          t.cleanUpRows(),
9372          t.$slider.removeClass("slick-slider"),
9373          t.$slider.removeClass("slick-initialized"),
9374          t.$slider.removeClass("slick-dotted"),
9375          (t.unslicked = !0),
9376          e || t.$slider.trigger("destroy", [t]);
9377      }),
9378      (r.prototype.disableTransition = function (e) {
9379        var t = {};
9380        (t[this.transitionType] = ""),
9381          !1 === this.options.fade
9382            ? this.$slideTrack.css(t)
9383            : this.$slides.eq(e).css(t);
9384      }),
9385      (r.prototype.fadeSlide = function (e, t) {
9386        var o = this;
9387        !1 === o.cssTransitions
9388          ? (o.$slides.eq(e).css({ zIndex: o.options.zIndex }),
9389            o.$slides
9390              .eq(e)
9391              .animate({ opacity: 1 }, o.options.speed, o.options.easing, t))
9392          : (o.applyTransition(e),
9393            o.$slides.eq(e).css({ opacity: 1, zIndex: o.options.zIndex }),
9394            t &&
9395              setTimeout(function () {
9396                o.disableTransition(e), t.call();
9397              }, o.options.speed));
9398      }),
9399      (r.prototype.fadeSlideOut = function (e) {
9400        var t = this;
9401        !1 === t.cssTransitions
9402          ? t.$slides
9403              .eq(e)
9404              .animate(
9405                { opacity: 0, zIndex: t.options.zIndex - 2 },
9406                t.options.speed,
9407                t.options.easing
9408              )
9409          : (t.applyTransition(e),
9410            t.$slides.eq(e).css({ opacity: 0, zIndex: t.options.zIndex - 2 }));
9411      }),
9412      (r.prototype.filterSlides = r.prototype.slickFilter =
9413        function (e) {
9414          var t = this;
9415          null !== e &&
9416            ((t.$slidesCache = t.$slides),
9417            t.unload(),
9418            t.$slideTrack.children(this.options.slide).detach(),
9419            t.$slidesCache.filter(e).appendTo(t.$slideTrack),
9420            t.reinit());
9421        }),
9422      (r.prototype.focusHandler = function () {
9423        var o = this;
9424        o.$slider
9425          .off("focus.slick blur.slick")
9426          .on("focus.slick blur.slick", "*:not(.slick-arrow)", function (e) {
9427            e.stopImmediatePropagation();
9428            var t = c(this);
9429            setTimeout(function () {
9430              o.options.pauseOnFocus &&
9431                ((o.focussed = t.is(":focus")), o.autoPlay());
9432            }, 0);
9433          });
9434      }),
9435      (r.prototype.getCurrent = r.prototype.slickCurrentSlide =
9436        function () {
9437          return this.currentSlide;
9438        }),
9439      (r.prototype.getDotCount = function () {
9440        var e = this,
9441          t = 0,
9442          o = 0,
9443          n = 0;
9444        if (!0 === e.options.infinite)
9445          for (; t < e.slideCount; )
9446            ++n,
9447              (t = o + e.options.slidesToScroll),
9448              (o +=
9449                e.options.slidesToScroll <= e.options.slidesToShow
9450                  ? e.options.slidesToScroll
9451                  : e.options.slidesToShow);
9452        else if (!0 === e.options.centerMode) n = e.slideCount;
9453        else if (e.options.asNavFor)
9454          for (; t < e.slideCount; )
9455            ++n,
9456              (t = o + e.options.slidesToScroll),
9457              (o +=
9458                e.options.slidesToScroll <= e.options.slidesToShow
9459                  ? e.options.slidesToScroll
9460                  : e.options.slidesToShow);
9461        else
9462          n =
9463            1 +
9464            Math.ceil(
9465              (e.slideCount - e.options.slidesToShow) / e.options.slidesToScroll
9466            );
9467        return n - 1;
9468      }),
9469      (r.prototype.getLeft = function (e) {
9470        var t,
9471          o,
9472          n,
9473          i = this,
9474          s = 0;
9475        return (
9476          (i.slideOffset = 0),
9477          (o = i.$slides.first().outerHeight(!0)),
9478          !0 === i.options.infinite
9479            ? (i.slideCount > i.options.slidesToShow &&
9480                ((i.slideOffset = i.slideWidth * i.options.slidesToShow * -1),
9481                (s = o * i.options.slidesToShow * -1)),
9482              i.slideCount % i.options.slidesToScroll != 0 &&
9483                e + i.options.slidesToScroll > i.slideCount &&
9484                i.slideCount > i.options.slidesToShow &&
9485                (s =
9486                  e > i.slideCount
9487                    ? ((i.slideOffset =
9488                        (i.options.slidesToShow - (e - i.slideCount)) *
9489                        i.slideWidth *
9490                        -1),
9491                      (i.options.slidesToShow - (e - i.slideCount)) * o * -1)
9492                    : ((i.slideOffset =
9493                        (i.slideCount % i.options.slidesToScroll) *
9494                        i.slideWidth *
9495                        -1),
9496                      (i.slideCount % i.options.slidesToScroll) * o * -1)))
9497            : e + i.options.slidesToShow > i.slideCount &&
9498              ((i.slideOffset =
9499                (e + i.options.slidesToShow - i.slideCount) * i.slideWidth),
9500              (s = (e + i.options.slidesToShow - i.slideCount) * o)),
9501          i.slideCount <= i.options.slidesToShow && (s = i.slideOffset = 0),
9502          !0 === i.options.centerMode && !0 === i.options.infinite
9503            ? (i.slideOffset +=
9504                i.slideWidth * Math.floor(i.options.slidesToShow / 2) -
9505                i.slideWidth)
9506            : !0 === i.options.centerMode &&
9507              ((i.slideOffset = 0),
9508              (i.slideOffset +=
9509                i.slideWidth * Math.floor(i.options.slidesToShow / 2))),
9510          (t =
9511            !1 === i.options.vertical
9512              ? e * i.slideWidth * -1 + i.slideOffset
9513              : e * o * -1 + s),
9514          !0 === i.options.variableWidth &&
9515            ((n =
9516              i.slideCount <= i.options.slidesToShow ||
9517              !1 === i.options.infinite
9518                ? i.$slideTrack.children(".slick-slide").eq(e)
9519                : i.$slideTrack
9520                    .children(".slick-slide")
9521                    .eq(e + i.options.slidesToShow)),
9522            (t =
9523              !0 === i.options.rtl
9524                ? n[0]
9525                  ? -1 * (i.$slideTrack.width() - n[0].offsetLeft - n.width())
9526                  : 0
9527                : n[0]
9528                ? -1 * n[0].offsetLeft
9529                : 0),
9530            !0 === i.options.centerMode &&
9531              ((n =
9532                i.slideCount <= i.options.slidesToShow ||
9533                !1 === i.options.infinite
9534                  ? i.$slideTrack.children(".slick-slide").eq(e)
9535                  : i.$slideTrack
9536                      .children(".slick-slide")
9537                      .eq(e + i.options.slidesToShow + 1)),
9538              (t =
9539                !0 === i.options.rtl
9540                  ? n[0]
9541                    ? -1 * (i.$slideTrack.width() - n[0].offsetLeft - n.width())
9542                    : 0
9543                  : n[0]
9544                  ? -1 * n[0].offsetLeft
9545                  : 0),
9546              (t += (i.$list.width() - n.outerWidth()) / 2))),
9547          t
9548        );
9549      }),
9550      (r.prototype.getOption = r.prototype.slickGetOption =
9551        function (e) {
9552          return this.options[e];
9553        }),
9554      (r.prototype.getNavigableIndexes = function () {
9555        for (
9556          var e = this,
9557            t = 0,
9558            o = 0,
9559            n = [],
9560            i =
9561              !1 === e.options.infinite
9562                ? e.slideCount
9563                : ((t = -1 * e.options.slidesToScroll),
9564                  (o = -1 * e.options.slidesToScroll),
9565                  2 * e.slideCount);
9566          t < i;
9567
9568        )
9569          n.push(t),
9570            (t = o + e.options.slidesToScroll),
9571            (o +=
9572              e.options.slidesToScroll <= e.options.slidesToShow
9573                ? e.options.slidesToScroll
9574                : e.options.slidesToShow);
9575        return n;
9576      }),
9577      (r.prototype.getSlick = function () {
9578        return this;
9579      }),
9580      (r.prototype.getSlideCount = function () {
9581        var o,
9582          n = this,
9583          i =
9584            !0 === n.options.centerMode
9585              ? n.slideWidth * Math.floor(n.options.slidesToShow / 2)
9586              : 0;
9587        return !0 === n.options.swipeToSlide
9588          ? (n.$slideTrack.find(".slick-slide").each(function (e, t) {
9589              if (t.offsetLeft - i + c(t).outerWidth() / 2 > -1 * n.swipeLeft)
9590                return (o = t), !1;
9591            }),
9592            Math.abs(c(o).attr("data-slick-index") - n.currentSlide) || 1)
9593          : n.options.slidesToScroll;
9594      }),
9595      (r.prototype.goTo = r.prototype.slickGoTo =
9596        function (e, t) {
9597          this.changeSlide(
9598            { data: { message: "index", index: parseInt(e) } },
9599            t
9600          );
9601        }),
9602      (r.prototype.init = function (e) {
9603        var t = this;
9604        c(t.$slider).hasClass("slick-initialized") ||
9605          (c(t.$slider).addClass("slick-initialized"),
9606          t.buildRows(),
9607          t.buildOut(),
9608          t.setProps(),
9609          t.startLoad(),
9610          t.loadSlider(),
9611          t.initializeEvents(),
9612          t.updateArrows(),
9613          t.updateDots(),
9614          t.checkResponsive(!0),
9615          t.focusHandler()),
9616          e && t.$slider.trigger("init", [t]),
9617          !0 === t.options.accessibility && t.initADA(),
9618          t.options.autoplay && ((t.paused = !1), t.autoPlay());
9619      }),
9620      (r.prototype.initADA = function () {
9621        var t = this;
9622        t.$slides
9623          .add(t.$slideTrack.find(".slick-cloned"))
9624          .attr({ "aria-hidden": "true", tabindex: "-1" })
9625          .find("a, input, button, select")
9626          .attr({ tabindex: "-1" }),
9627          t.$slideTrack.attr("role", "listbox"),
9628          t.$slides.not(t.$slideTrack.find(".slick-cloned")).each(function (e) {
9629            c(this).attr({
9630              role: "option",
9631              "aria-describedby": "slick-slide" + t.instanceUid + e,
9632            });
9633          }),
9634          null !== t.$dots &&
9635            t.$dots
9636              .attr("role", "tablist")
9637              .find("li")
9638              .each(function (e) {
9639                c(this).attr({
9640                  role: "presentation",
9641                  "aria-selected": "false",
9642                  "aria-controls": "navigation" + t.instanceUid + e,
9643                  id: "slick-slide" + t.instanceUid + e,
9644                });
9645              })
9646              .first()
9647              .attr("aria-selected", "true")
9648              .end()
9649              .find("button")
9650              .attr("role", "button")
9651              .end()
9652              .closest("div")
9653              .attr("role", "toolbar"),
9654          t.activateADA();
9655      }),
9656      (r.prototype.initArrowEvents = function () {
9657        var e = this;
9658        !0 === e.options.arrows &&
9659          e.slideCount > e.options.slidesToShow &&
9660          (e.$prevArrow
9661            .off("click.slick")
9662            .on("click.slick", { message: "previous" }, e.changeSlide),
9663          e.$nextArrow
9664            .off("click.slick")
9665            .on("click.slick", { message: "next" }, e.changeSlide));
9666      }),
9667      (r.prototype.initDotEvents = function () {
9668        var e = this;
9669        !0 === e.options.dots &&
9670          e.slideCount > e.options.slidesToShow &&
9671          c("li", e.$dots).on(
9672            "click.slick",
9673            { message: "index" },
9674            e.changeSlide
9675          ),
9676          !0 === e.options.dots &&
9677            !0 === e.options.pauseOnDotsHover &&
9678            c("li", e.$dots)
9679              .on("mouseenter.slick", c.proxy(e.interrupt, e, !0))
9680              .on("mouseleave.slick", c.proxy(e.interrupt, e, !1));
9681      }),
9682      (r.prototype.initSlideEvents = function () {
9683        var e = this;
9684        e.options.pauseOnHover &&
9685          (e.$list.on("mouseenter.slick", c.proxy(e.interrupt, e, !0)),
9686          e.$list.on("mouseleave.slick", c.proxy(e.interrupt, e, !1)));
9687      }),
9688      (r.prototype.initializeEvents = function () {
9689        var e = this;
9690        e.initArrowEvents(),
9691          e.initDotEvents(),
9692          e.initSlideEvents(),
9693          e.$list.on(
9694            "touchstart.slick mousedown.slick",
9695            { action: "start" },
9696            e.swipeHandler
9697          ),
9698          e.$list.on(
9699            "touchmove.slick mousemove.slick",
9700            { action: "move" },
9701            e.swipeHandler
9702          ),
9703          e.$list.on(
9704            "touchend.slick mouseup.slick",
9705            { action: "end" },
9706            e.swipeHandler
9707          ),
9708          e.$list.on(
9709            "touchcancel.slick mouseleave.slick",
9710            { action: "end" },
9711            e.swipeHandler
9712          ),
9713          e.$list.on("click.slick", e.clickHandler),
9714          c(document).on(e.visibilityChange, c.proxy(e.visibility, e)),
9715          !0 === e.options.accessibility &&
9716            e.$list.on("keydown.slick", e.keyHandler),
9717          !0 === e.options.focusOnSelect &&
9718            c(e.$slideTrack).children().on("click.slick", e.selectHandler),
9719          c(window).on(
9720            "orientationchange.slick.slick-" + e.instanceUid,
9721            c.proxy(e.orientationChange, e)
9722          ),
9723          c(window).on(
9724            "resize.slick.slick-" + e.instanceUid,
9725            c.proxy(e.resize, e)
9726          ),
9727          c("[draggable!=true]", e.$slideTrack).on(
9728            "dragstart",
9729            e.preventDefault
9730          ),
9731          c(window).on("load.slick.slick-" + e.instanceUid, e.setPosition),
9732          c(document).on("ready.slick.slick-" + e.instanceUid, e.setPosition);
9733      }),
9734      (r.prototype.initUI = function () {
9735        var e = this;
9736        !0 === e.options.arrows &&
9737          e.slideCount > e.options.slidesToShow &&
9738          (e.$prevArrow.show(), e.$nextArrow.show()),
9739          !0 === e.options.dots &&
9740            e.slideCount > e.options.slidesToShow &&
9741            e.$dots.show();
9742      }),
9743      (r.prototype.keyHandler = function (e) {
9744        var t = this;
9745        e.target.tagName.match("TEXTAREA|INPUT|SELECT") ||
9746          (37 === e.keyCode && !0 === t.options.accessibility
9747            ? t.changeSlide({
9748                data: { message: !0 === t.options.rtl ? "next" : "previous" },
9749              })
9750            : 39 === e.keyCode &&
9751              !0 === t.options.accessibility &&
9752              t.changeSlide({
9753                data: { message: !0 === t.options.rtl ? "previous" : "next" },
9754              }));
9755      }),
9756      (r.prototype.lazyLoad = function () {
9757        var e,
9758          t,
9759          n = this;
9760        function o(e) {
9761          c("img[data-lazy]", e).each(function () {
9762            var e = c(this),
9763              t = c(this).attr("data-lazy"),
9764              o = document.createElement("img");
9765            (o.onload = function () {
9766              e.animate({ opacity: 0 }, 100, function () {
9767                e.attr("src", t).animate({ opacity: 1 }, 200, function () {
9768                  e.removeAttr("data-lazy").removeClass("slick-loading");
9769                }),
9770                  n.$slider.trigger("lazyLoaded", [n, e, t]);
9771              });
9772            }),
9773              (o.onerror = function () {
9774                e
9775                  .removeAttr("data-lazy")
9776                  .removeClass("slick-loading")
9777                  .addClass("slick-lazyload-error"),
9778                  n.$slider.trigger("lazyLoadError", [n, e, t]);
9779              }),
9780              (o.src = t);
9781          });
9782        }
9783        !0 === n.options.centerMode
9784          ? (t =
9785              !0 === n.options.infinite
9786                ? (e = n.currentSlide + (n.options.slidesToShow / 2 + 1)) +
9787                  n.options.slidesToShow +
9788                  2
9789                : ((e = Math.max(
9790                    0,
9791                    n.currentSlide - (n.options.slidesToShow / 2 + 1)
9792                  )),
9793                  n.options.slidesToShow / 2 + 1 + 2 + n.currentSlide))
9794          : ((e = n.options.infinite
9795              ? n.options.slidesToShow + n.currentSlide
9796              : n.currentSlide),
9797            (t = Math.ceil(e + n.options.slidesToShow)),
9798            !0 === n.options.fade && (0 < e && e--, t <= n.slideCount && t++)),
9799          o(n.$slider.find(".slick-slide").slice(e, t)),
9800          n.slideCount <= n.options.slidesToShow
9801            ? o(n.$slider.find(".slick-slide"))
9802            : n.currentSlide >= n.slideCount - n.options.slidesToShow
9803            ? o(
9804                n.$slider.find(".slick-cloned").slice(0, n.options.slidesToShow)
9805              )
9806            : 0 === n.currentSlide &&
9807              o(
9808                n.$slider
9809                  .find(".slick-cloned")
9810                  .slice(-1 * n.options.slidesToShow)
9811              );
9812      }),
9813      (r.prototype.loadSlider = function () {
9814        var e = this;
9815        e.setPosition(),
9816          e.$slideTrack.css({ opacity: 1 }),
9817          e.$slider.removeClass("slick-loading"),
9818          e.initUI(),
9819          "progressive" === e.options.lazyLoad && e.progressiveLazyLoad();
9820      }),
9821      (r.prototype.next = r.prototype.slickNext =
9822        function () {
9823          this.changeSlide({ data: { message: "next" } });
9824        }),
9825      (r.prototype.orientationChange = function () {
9826        this.checkResponsive(), this.setPosition();
9827      }),
9828      (r.prototype.pause = r.prototype.slickPause =
9829        function () {
9830          this.autoPlayClear(), (this.paused = !0);
9831        }),
9832      (r.prototype.play = r.prototype.slickPlay =
9833        function () {
9834          var e = this;
9835          e.autoPlay(),
9836            (e.options.autoplay = !0),
9837            (e.paused = !1),
9838            (e.focussed = !1),
9839            (e.interrupted = !1);
9840        }),
9841      (r.prototype.postSlide = function (e) {
9842        var t = this;
9843        t.unslicked ||
9844          (t.$slider.trigger("afterChange", [t, e]),
9845          (t.animating = !1),
9846          t.setPosition(),
9847          (t.swipeLeft = null),
9848          t.options.autoplay && t.autoPlay(),
9849          !0 === t.options.accessibility && t.initADA());
9850      }),
9851      (r.prototype.prev = r.prototype.slickPrev =
9852        function () {
9853          this.changeSlide({ data: { message: "previous" } });
9854        }),
9855      (r.prototype.preventDefault = function (e) {
9856        e.preventDefault();
9857      }),
9858      (r.prototype.progressiveLazyLoad = function (e) {
9859        e = e || 1;
9860        var t,
9861          o,
9862          n,
9863          i = this,
9864          s = c("img[data-lazy]", i.$slider);
9865        s.length
9866          ? ((t = s.first()),
9867            (o = t.attr("data-lazy")),
9868            ((n = document.createElement("img")).onload = function () {
9869              t
9870                .attr("src", o)
9871                .removeAttr("data-lazy")
9872                .removeClass("slick-loading"),
9873                !0 === i.options.adaptiveHeight && i.setPosition(),
9874                i.$slider.trigger("lazyLoaded", [i, t, o]),
9875                i.progressiveLazyLoad();
9876            }),
9877            (n.onerror = function () {
9878              e < 3
9879                ? setTimeout(function () {
9880                    i.progressiveLazyLoad(e + 1);
9881                  }, 500)
9882                : (t
9883                    .removeAttr("data-lazy")
9884                    .removeClass("slick-loading")
9885                    .addClass("slick-lazyload-error"),
9886                  i.$slider.trigger("lazyLoadError", [i, t, o]),
9887                  i.progressiveLazyLoad());
9888            }),
9889            (n.src = o))
9890          : i.$slider.trigger("allImagesLoaded", [i]);
9891      }),
9892      (r.prototype.refresh = function (e) {
9893        var t,
9894          o = this,
9895          n = o.slideCount - o.options.slidesToShow;
9896        !o.options.infinite && o.currentSlide > n && (o.currentSlide = n),
9897          o.slideCount <= o.options.slidesToShow && (o.currentSlide = 0),
9898          (t = o.currentSlide),
9899          o.destroy(!0),
9900          c.extend(o, o.initials, { currentSlide: t }),
9901          o.init(),
9902          e || o.changeSlide({ data: { message: "index", index: t } }, !1);
9903      }),
9904      (r.prototype.registerBreakpoints = function () {
9905        var e,
9906          t,
9907          o,
9908          n = this,
9909          i = n.options.responsive || null;
9910        if ("array" === c.type(i) && i.length) {
9911          for (e in ((n.respondTo = n.options.respondTo || "window"), i))
9912            if (
9913              ((o = n.breakpoints.length - 1),
9914              (t = i[e].breakpoint),
9915              i.hasOwnProperty(e))
9916            ) {
9917              for (; 0 <= o; )
9918                n.breakpoints[o] &&
9919                  n.breakpoints[o] === t &&
9920                  n.breakpoints.splice(o, 1),
9921                  o--;
9922              n.breakpoints.push(t), (n.breakpointSettings[t] = i[e].settings);
9923            }
9924          n.breakpoints.sort(function (e, t) {
9925            return n.options.mobileFirst ? e - t : t - e;
9926          });
9927        }
9928      }),
9929      (r.prototype.reinit = function () {
9930        var e = this;
9931        (e.$slides = e.$slideTrack
9932          .children(e.options.slide)
9933          .addClass("slick-slide")),
9934          (e.slideCount = e.$slides.length),
9935          e.currentSlide >= e.slideCount &&
9936            0 !== e.currentSlide &&
9937            (e.currentSlide = e.currentSlide - e.options.slidesToScroll),
9938          e.slideCount <= e.options.slidesToShow && (e.currentSlide = 0),
9939          e.registerBreakpoints(),
9940          e.setProps(),
9941          e.setupInfinite(),
9942          e.buildArrows(),
9943          e.updateArrows(),
9944          e.initArrowEvents(),
9945          e.buildDots(),
9946          e.updateDots(),
9947          e.initDotEvents(),
9948          e.cleanUpSlideEvents(),
9949          e.initSlideEvents(),
9950          e.checkResponsive(!1, !0),
9951          !0 === e.options.focusOnSelect &&
9952            c(e.$slideTrack).children().on("click.slick", e.selectHandler),
9953          e.setSlideClasses(
9954            "number" == typeof e.currentSlide ? e.currentSlide : 0
9955          ),
9956          e.setPosition(),
9957          e.focusHandler(),
9958          (e.paused = !e.options.autoplay),
9959          e.autoPlay(),
9960          e.$slider.trigger("reInit", [e]);
9961      }),
9962      (r.prototype.resize = function () {
9963        var e = this;
9964        c(window).width() !== e.windowWidth &&
9965          (clearTimeout(e.windowDelay),
9966          (e.windowDelay = window.setTimeout(function () {
9967            (e.windowWidth = c(window).width()),
9968              e.checkResponsive(),
9969              e.unslicked || e.setPosition();
9970          }, 50)));
9971      }),
9972      (r.prototype.removeSlide = r.prototype.slickRemove =
9973        function (e, t, o) {
9974          var n = this;
9975          if (
9976            ((e =
9977              "boolean" == typeof e
9978                ? !0 === (t = e)
9979                  ? 0
9980                  : n.slideCount - 1
9981                : !0 === t
9982                ? --e
9983                : e),
9984            n.slideCount < 1 || e < 0 || e > n.slideCount - 1)
9985          )
9986            return !1;
9987          n.unload(),
9988            !0 === o
9989              ? n.$slideTrack.children().remove()
9990              : n.$slideTrack.children(this.options.slide).eq(e).remove(),
9991            (n.$slides = n.$slideTrack.children(this.options.slide)),
9992            n.$slideTrack.children(this.options.slide).detach(),
9993            n.$slideTrack.append(n.$slides),
9994            (n.$slidesCache = n.$slides),
9995            n.reinit();
9996        }),
9997      (r.prototype.setCSS = function (e) {
9998        var t,
9999          o,
10000          n = this,
10001          i = {};
10002        !0 === n.options.rtl && (e = -e),
10003          (t = "left" == n.positionProp ? Math.ceil(e) + "px" : "0px"),
10004          (o = "top" == n.positionProp ? Math.ceil(e) + "px" : "0px"),
10005          (i[n.positionProp] = e),
10006          !1 === n.transformsEnabled ||
10007            (!(i = {}) === n.cssTransitions
10008              ? (i[n.animType] = "translate(" + t + ", " + o + ")")
10009              : (i[n.animType] = "translate3d(" + t + ", " + o + ", 0px)")),
10010          n.$slideTrack.css(i);
10011      }),
10012      (r.prototype.setDimensions = function () {
10013        var e = this;
10014        !1 === e.options.vertical
10015          ? !0 === e.options.centerMode &&
10016            e.$list.css({ padding: "0px " + e.options.centerPadding })
10017          : (e.$list.height(
10018              e.$slides.first().outerHeight(!0) * e.options.slidesToShow
10019            ),
10020            !0 === e.options.centerMode &&
10021              e.$list.css({ padding: e.options.centerPadding + " 0px" })),
10022          (e.listWidth = e.$list.width()),
10023          (e.listHeight = e.$list.height()),
10024          !1 === e.options.vertical && !1 === e.options.variableWidth
10025            ? ((e.slideWidth = Math.ceil(e.listWidth / e.options.slidesToShow)),
10026              e.$slideTrack.width(
10027                Math.ceil(
10028                  e.slideWidth * e.$slideTrack.children(".slick-slide").length
10029                )
10030              ))
10031            : !0 === e.options.variableWidth
10032            ? e.$slideTrack.width(5e3 * e.slideCount)
10033            : ((e.slideWidth = Math.ceil(e.listWidth)),
10034              e.$slideTrack.height(
10035                Math.ceil(
10036                  e.$slides.first().outerHeight(!0) *
10037                    e.$slideTrack.children(".slick-slide").length
10038                )
10039              ));
10040        var t = e.$slides.first().outerWidth(!0) - e.$slides.first().width();
10041        !1 === e.options.variableWidth &&
10042          e.$slideTrack.children(".slick-slide").width(e.slideWidth - t);
10043      }),
10044      (r.prototype.setFade = function () {
10045        var o,
10046          n = this;
10047        n.$slides.each(function (e, t) {
10048          (o = n.slideWidth * e * -1),
10049            !0 === n.options.rtl
10050              ? c(t).css({
10051                  position: "relative",
10052                  right: o,
10053                  top: 0,
10054                  zIndex: n.options.zIndex - 2,
10055                  opacity: 0,
10056                })
10057              : c(t).css({
10058                  position: "relative",
10059                  left: o,
10060                  top: 0,
10061                  zIndex: n.options.zIndex - 2,
10062                  opacity: 0,
10063                });
10064        }),
10065          n.$slides
10066            .eq(n.currentSlide)
10067            .css({ zIndex: n.options.zIndex - 1, opacity: 1 });
10068      }),
10069      (r.prototype.setHeight = function () {
10070        var e,
10071          t = this;
10072        1 === t.options.slidesToShow &&
10073          !0 === t.options.adaptiveHeight &&
10074          !1 === t.options.vertical &&
10075          ((e = t.$slides.eq(t.currentSlide).outerHeight(!0)),
10076          t.$list.css("height", e));
10077      }),
10078      (r.prototype.setOption = r.prototype.slickSetOption =
10079        function () {
10080          var e,
10081            t,
10082            o,
10083            n,
10084            i,
10085            s = this,
10086            r = !1;
10087          if (
10088            ("object" === c.type(arguments[0])
10089              ? ((o = arguments[0]), (r = arguments[1]), (i = "multiple"))
10090              : "string" === c.type(arguments[0]) &&
10091                ((n = arguments[1]),
10092                (r = arguments[2]),
10093                "responsive" === (o = arguments[0]) &&
10094                "array" === c.type(arguments[1])
10095                  ? (i = "responsive")
10096                  : void 0 !== arguments[1] && (i = "single")),
10097            "single" === i)
10098          )
10099            s.options[o] = n;
10100          else if ("multiple" === i)
10101            c.each(o, function (e, t) {
10102              s.options[e] = t;
10103            });
10104          else if ("responsive" === i)
10105            for (t in n)
10106              if ("array" !== c.type(s.options.responsive))
10107                s.options.responsive = [n[t]];
10108              else {
10109                for (e = s.options.responsive.length - 1; 0 <= e; )
10110                  s.options.responsive[e].breakpoint === n[t].breakpoint &&
10111                    s.options.responsive.splice(e, 1),
10112                    e--;
10113                s.options.responsive.push(n[t]);
10114              }
10115          r && (s.unload(), s.reinit());
10116        }),
10117      (r.prototype.setPosition = function () {
10118        var e = this;
10119        e.setDimensions(),
10120          e.setHeight(),
10121          !1 === e.options.fade
10122            ? e.setCSS(e.getLeft(e.currentSlide))
10123            : e.setFade(),
10124          e.$slider.trigger("setPosition", [e]);
10125      }),
10126      (r.prototype.setProps = function () {
10127        var e = this,
10128          t = document.body.style;
10129        (e.positionProp = !0 === e.options.vertical ? "top" : "left"),
10130          "top" === e.positionProp
10131            ? e.$slider.addClass("slick-vertical")
10132            : e.$slider.removeClass("slick-vertical"),
10133          (void 0 === t.WebkitTransition &&
10134            void 0 === t.MozTransition &&
10135            void 0 === t.msTransition) ||
10136            (!0 === e.options.useCSS && (e.cssTransitions = !0)),
10137          e.options.fade &&
10138            ("number" == typeof e.options.zIndex
10139              ? e.options.zIndex < 3 && (e.options.zIndex = 3)
10140              : (e.options.zIndex = e.defaults.zIndex)),
10141          void 0 !== t.OTransform &&
10142            ((e.animType = "OTransform"),
10143            (e.transformType = "-o-transform"),
10144            (e.transitionType = "OTransition"),
10145            void 0 === t.perspectiveProperty &&
10146              void 0 === t.webkitPerspective &&
10147              (e.animType = !1)),
10148          void 0 !== t.MozTransform &&
10149            ((e.animType = "MozTransform"),
10150            (e.transformType = "-moz-transform"),
10151            (e.transitionType = "MozTransition"),
10152            void 0 === t.perspectiveProperty &&
10153              void 0 === t.MozPerspective &&
10154              (e.animType = !1)),
10155          void 0 !== t.webkitTransform &&
10156            ((e.animType = "webkitTransform"),
10157            (e.transformType = "-webkit-transform"),
10158            (e.transitionType = "webkitTransition"),
10159            void 0 === t.perspectiveProperty &&
10160              void 0 === t.webkitPerspective &&
10161              (e.animType = !1)),
10162          void 0 !== t.msTransform &&
10163            ((e.animType = "msTransform"),
10164            (e.transformType = "-ms-transform"),
10165            (e.transitionType = "msTransition"),
10166            void 0 === t.msTransform && (e.animType = !1)),
10167          void 0 !== t.transform &&
10168            !1 !== e.animType &&
10169            ((e.animType = "transform"),
10170            (e.transformType = "transform"),
10171            (e.transitionType = "transition")),
10172          (e.transformsEnabled =
10173            e.options.useTransform && null !== e.animType && !1 !== e.animType);
10174      }),
10175      (r.prototype.setSlideClasses = function (e) {
10176        var t,
10177          o,
10178          n,
10179          i = this,
10180          s = i.$slider
10181            .find(".slick-slide")
10182            .removeClass("slick-active slick-center slick-current")
10183            .attr("aria-hidden", "true");
10184        i.$slides.eq(e).addClass("slick-current"),
10185          !0 === i.options.centerMode
10186            ? ((t = Math.floor(i.options.slidesToShow / 2)),
10187              !0 === i.options.infinite &&
10188                (t <= e && e <= i.slideCount - 1 - t
10189                  ? i.$slides
10190                      .slice(e - t, e + t + 1)
10191                      .addClass("slick-active")
10192                      .attr("aria-hidden", "false")
10193                  : ((o = i.options.slidesToShow + e),
10194                    s
10195                      .slice(o - t + 1, o + t + 2)
10196                      .addClass("slick-active")
10197                      .attr("aria-hidden", "false")),
10198                0 === e
10199                  ? s
10200                      .eq(s.length - 1 - i.options.slidesToShow)
10201                      .addClass("slick-center")
10202                  : e === i.slideCount - 1 &&
10203                    s.eq(i.options.slidesToShow).addClass("slick-center")),
10204              i.$slides.eq(e).addClass("slick-center"))
10205            : 0 <= e && e <= i.slideCount - i.options.slidesToShow
10206            ? i.$slides
10207                .slice(e, e + i.options.slidesToShow)
10208                .addClass("slick-active")
10209                .attr("aria-hidden", "false")
10210            : s.length <= i.options.slidesToShow
10211            ? s.addClass("slick-active").attr("aria-hidden", "false")
10212            : ((n = i.slideCount % i.options.slidesToShow),
10213              (o = !0 === i.options.infinite ? i.options.slidesToShow + e : e),
10214              i.options.slidesToShow == i.options.slidesToScroll &&
10215              i.slideCount - e < i.options.slidesToShow
10216                ? s
10217                    .slice(o - (i.options.slidesToShow - n), o + n)
10218                    .addClass("slick-active")
10219                    .attr("aria-hidden", "false")
10220                : s
10221                    .slice(o, o + i.options.slidesToShow)
10222                    .addClass("slick-active")
10223                    .attr("aria-hidden", "false")),
10224          "ondemand" === i.options.lazyLoad && i.lazyLoad();
10225      }),
10226      (r.prototype.setupInfinite = function () {
10227        var e,
10228          t,
10229          o,
10230          n = this;
10231        if (
10232          (!0 === n.options.fade && (n.options.centerMode = !1),
10233          !0 === n.options.infinite &&
10234            !1 === n.options.fade &&
10235            ((t = null), n.slideCount > n.options.slidesToShow))
10236        ) {
10237          for (
10238            o =
10239              !0 === n.options.centerMode
10240                ? n.options.slidesToShow + 1
10241                : n.options.slidesToShow,
10242              e = n.slideCount;
10243            e > n.slideCount - o;
10244            --e
10245          )
10246            (t = e - 1),
10247              c(n.$slides[t])
10248                .clone(!0)
10249                .attr("id", "")
10250                .attr("data-slick-index", t - n.slideCount)
10251                .prependTo(n.$slideTrack)
10252                .addClass("slick-cloned");
10253          for (e = 0; e < o; e += 1)
10254            (t = e),
10255              c(n.$slides[t])
10256                .clone(!0)
10257                .attr("id", "")
10258                .attr("data-slick-index", t + n.slideCount)
10259                .appendTo(n.$slideTrack)
10260                .addClass("slick-cloned");
10261          n.$slideTrack
10262            .find(".slick-cloned")
10263            .find("[id]")
10264            .each(function () {
10265              c(this).attr("id", "");
10266            });
10267        }
10268      }),
10269      (r.prototype.interrupt = function (e) {
10270        e || this.autoPlay(), (this.interrupted = e);
10271      }),
10272      (r.prototype.selectHandler = function (e) {
10273        var t = this,
10274          o = c(e.target).is(".slick-slide")
10275            ? c(e.target)
10276            : c(e.target).parents(".slick-slide"),
10277          n = (n = parseInt(o.attr("data-slick-index"))) || 0;
10278        if (t.slideCount <= t.options.slidesToShow)
10279          return t.setSlideClasses(n), void t.asNavFor(n);
10280        t.slideHandler(n);
10281      }),
10282      (r.prototype.slideHandler = function (e, t, o) {
10283        var n,
10284          i,
10285          s,
10286          r,
10287          a,
10288          l,
10289          c = this;
10290        if (
10291          ((t = t || !1),
10292          (!0 !== c.animating || !0 !== c.options.waitForAnimate) &&
10293            !(
10294              (!0 === c.options.fade && c.currentSlide === e) ||
10295              c.slideCount <= c.options.slidesToShow
10296            ))
10297        )
10298          if (
10299            (!1 === t && c.asNavFor(e),
10300            (n = e),
10301            (a = c.getLeft(n)),
10302            (r = c.getLeft(c.currentSlide)),
10303            (c.currentLeft = null === c.swipeLeft ? r : c.swipeLeft),
10304            !1 === c.options.infinite &&
10305              !1 === c.options.centerMode &&
10306              (e < 0 || e > c.getDotCount() * c.options.slidesToScroll))
10307          )
10308            !1 === c.options.fade &&
10309              ((n = c.currentSlide),
10310              !0 !== o
10311                ? c.animateSlide(r, function () {
10312                    c.postSlide(n);
10313                  })
10314                : c.postSlide(n));
10315          else if (
10316            !1 === c.options.infinite &&
10317            !0 === c.options.centerMode &&
10318            (e < 0 || e > c.slideCount - c.options.slidesToScroll)
10319          )
10320            !1 === c.options.fade &&
10321              ((n = c.currentSlide),
10322              !0 !== o
10323                ? c.animateSlide(r, function () {
10324                    c.postSlide(n);
10325                  })
10326                : c.postSlide(n));
10327          else {
10328            if (
10329              (c.options.autoplay && clearInterval(c.autoPlayTimer),
10330              (i =
10331                n < 0
10332                  ? c.slideCount % c.options.slidesToScroll != 0
10333                    ? c.slideCount - (c.slideCount % c.options.slidesToScroll)
10334                    : c.slideCount + n
10335                  : n >= c.slideCount
10336                  ? c.slideCount % c.options.slidesToScroll != 0
10337                    ? 0
10338                    : n - c.slideCount
10339                  : n),
10340              (c.animating = !0),
10341              c.$slider.trigger("beforeChange", [c, c.currentSlide, i]),
10342              (s = c.currentSlide),
10343              (c.currentSlide = i),
10344              c.setSlideClasses(c.currentSlide),
10345              c.options.asNavFor &&
10346                (l = (l = c.getNavTarget()).slick("getSlick")).slideCount <=
10347                  l.options.slidesToShow &&
10348                l.setSlideClasses(c.currentSlide),
10349              c.updateDots(),
10350              c.updateArrows(),
10351              !0 === c.options.fade)
10352            )
10353              return (
10354                !0 !== o
10355                  ? (c.fadeSlideOut(s),
10356                    c.fadeSlide(i, function () {
10357                      c.postSlide(i);
10358                    }))
10359                  : c.postSlide(i),
10360                void c.animateHeight()
10361              );
10362            !0 !== o
10363              ? c.animateSlide(a, function () {
10364                  c.postSlide(i);
10365                })
10366              : c.postSlide(i);
10367          }
10368      }),
10369      (r.prototype.startLoad = function () {
10370        var e = this;
10371        !0 === e.options.arrows &&
10372          e.slideCount > e.options.slidesToShow &&
10373          (e.$prevArrow.hide(), e.$nextArrow.hide()),
10374          !0 === e.options.dots &&
10375            e.slideCount > e.options.slidesToShow &&
10376            e.$dots.hide(),
10377          e.$slider.addClass("slick-loading");
10378      }),
10379      (r.prototype.swipeDirection = function () {
10380        var e = this,
10381          t = e.touchObject.startX - e.touchObject.curX,
10382          o = e.touchObject.startY - e.touchObject.curY,
10383          n = Math.atan2(o, t),
10384          i = Math.round((180 * n) / Math.PI);
10385        return (
10386          i < 0 && (i = 360 - Math.abs(i)),
10387          (i <= 45 && 0 <= i) || (i <= 360 && 315 <= i)
10388            ? !1 === e.options.rtl
10389              ? "left"
10390              : "right"
10391            : 135 <= i && i <= 225
10392            ? !1 === e.options.rtl
10393              ? "right"
10394              : "left"
10395            : !0 === e.options.verticalSwiping
10396            ? 35 <= i && i <= 135
10397              ? "down"
10398              : "up"
10399            : "vertical"
10400        );
10401      }),
10402      (r.prototype.swipeEnd = function (e) {
10403        var t,
10404          o,
10405          n = this;
10406        if (
10407          ((n.dragging = !1),
10408          (n.interrupted = !1),
10409          (n.shouldClick = !(10 < n.touchObject.swipeLength)),
10410          void 0 === n.touchObject.curX)
10411        )
10412          return !1;
10413        if (
10414          (!0 === n.touchObject.edgeHit &&
10415            n.$slider.trigger("edge", [n, n.swipeDirection()]),
10416          n.touchObject.swipeLength >= n.touchObject.minSwipe)
10417        ) {
10418          switch ((o = n.swipeDirection())) {
10419            case "left":
10420            case "down":
10421              (t = n.options.swipeToSlide
10422                ? n.checkNavigable(n.currentSlide + n.getSlideCount())
10423                : n.currentSlide + n.getSlideCount()),
10424                (n.currentDirection = 0);
10425              break;
10426            case "right":
10427            case "up":
10428              (t = n.options.swipeToSlide
10429                ? n.checkNavigable(n.currentSlide - n.getSlideCount())
10430                : n.currentSlide - n.getSlideCount()),
10431                (n.currentDirection = 1);
10432          }
10433          "vertical" != o &&
10434            (n.slideHandler(t),
10435            (n.touchObject = {}),
10436            n.$slider.trigger("swipe", [n, o]));
10437        } else
10438          n.touchObject.startX !== n.touchObject.curX &&
10439            (n.slideHandler(n.currentSlide), (n.touchObject = {}));
10440      }),
10441      (r.prototype.swipeHandler = function (e) {
10442        var t = this;
10443        if (
10444          !(
10445            !1 === t.options.swipe ||
10446            ("ontouchend" in document && !1 === t.options.swipe) ||
10447            (!1 === t.options.draggable && -1 !== e.type.indexOf("mouse"))
10448          )
10449        )
10450          switch (
10451            ((t.touchObject.fingerCount =
10452              e.originalEvent && void 0 !== e.originalEvent.touches
10453                ? e.originalEvent.touches.length
10454                : 1),
10455            (t.touchObject.minSwipe = t.listWidth / t.options.touchThreshold),
10456            !0 === t.options.verticalSwiping &&
10457              (t.touchObject.minSwipe =
10458                t.listHeight / t.options.touchThreshold),
10459            e.data.action)
10460          ) {
10461            case "start":
10462              t.swipeStart(e);
10463              break;
10464            case "move":
10465              t.swipeMove(e);
10466              break;
10467            case "end":
10468              t.swipeEnd(e);
10469          }
10470      }),
10471      (r.prototype.swipeMove = function (e) {
10472        var t,
10473          o,
10474          n,
10475          i,
10476          s = this,
10477          r = void 0 !== e.originalEvent ? e.originalEvent.touches : null;
10478        return (
10479          !(!s.dragging || (r && 1 !== r.length)) &&
10480          ((t = s.getLeft(s.currentSlide)),
10481          (s.touchObject.curX = void 0 !== r ? r[0].pageX : e.clientX),
10482          (s.touchObject.curY = void 0 !== r ? r[0].pageY : e.clientY),
10483          (s.touchObject.swipeLength = Math.round(
10484            Math.sqrt(Math.pow(s.touchObject.curX - s.touchObject.startX, 2))
10485          )),
10486          !0 === s.options.verticalSwiping &&
10487            (s.touchObject.swipeLength = Math.round(
10488              Math.sqrt(Math.pow(s.touchObject.curY - s.touchObject.startY, 2))
10489            )),
10490          "vertical" !== (o = s.swipeDirection())
10491            ? (void 0 !== e.originalEvent &&
10492                4 < s.touchObject.swipeLength &&
10493                e.preventDefault(),
10494              (i =
10495                (!1 === s.options.rtl ? 1 : -1) *
10496                (s.touchObject.curX > s.touchObject.startX ? 1 : -1)),
10497              !0 === s.options.verticalSwiping &&
10498                (i = s.touchObject.curY > s.touchObject.startY ? 1 : -1),
10499              (n = s.touchObject.swipeLength),
10500              (s.touchObject.edgeHit = !1) === s.options.infinite &&
10501                ((0 === s.currentSlide && "right" === o) ||
10502                  (s.currentSlide >= s.getDotCount() && "left" === o)) &&
10503                ((n = s.touchObject.swipeLength * s.options.edgeFriction),
10504                (s.touchObject.edgeHit = !0)),
10505              !1 === s.options.vertical
10506                ? (s.swipeLeft = t + n * i)
10507                : (s.swipeLeft = t + n * (s.$list.height() / s.listWidth) * i),
10508              !0 === s.options.verticalSwiping && (s.swipeLeft = t + n * i),
10509              !0 !== s.options.fade &&
10510                !1 !== s.options.touchMove &&
10511                (!0 === s.animating
10512                  ? ((s.swipeLeft = null), !1)
10513                  : void s.setCSS(s.swipeLeft)))
10514            : void 0)
10515        );
10516      }),
10517      (r.prototype.swipeStart = function (e) {
10518        var t,
10519          o = this;
10520        if (
10521          ((o.interrupted = !0),
10522          1 !== o.touchObject.fingerCount ||
10523            o.slideCount <= o.options.slidesToShow)
10524        )
10525          return !(o.touchObject = {});
10526        void 0 !== e.originalEvent &&
10527          void 0 !== e.originalEvent.touches &&
10528          (t = e.originalEvent.touches[0]),
10529          (o.touchObject.startX = o.touchObject.curX =
10530            void 0 !== t ? t.pageX : e.clientX),
10531          (o.touchObject.startY = o.touchObject.curY =
10532            void 0 !== t ? t.pageY : e.clientY),
10533          (o.dragging = !0);
10534      }),
10535      (r.prototype.unfilterSlides = r.prototype.slickUnfilter =
10536        function () {
10537          var e = this;
10538          null !== e.$slidesCache &&
10539            (e.unload(),
10540            e.$slideTrack.children(this.options.slide).detach(),
10541            e.$slidesCache.appendTo(e.$slideTrack),
10542            e.reinit());
10543        }),
10544      (r.prototype.unload = function () {
10545        var e = this;
10546        c(".slick-cloned", e.$slider).remove(),
10547          e.$dots && e.$dots.remove(),
10548          e.$prevArrow &&
10549            e.htmlExpr.test(e.options.prevArrow) &&
10550            e.$prevArrow.remove(),
10551          e.$nextArrow &&
10552            e.htmlExpr.test(e.options.nextArrow) &&
10553            e.$nextArrow.remove(),
10554          e.$slides
10555            .removeClass("slick-slide slick-active slick-visible slick-current")
10556            .attr("aria-hidden", "true")
10557            .css("width", "");
10558      }),
10559      (r.prototype.unslick = function (e) {
10560        this.$slider.trigger("unslick", [this, e]), this.destroy();
10561      }),
10562      (r.prototype.updateArrows = function () {
10563        var e = this;
10564        Math.floor(e.options.slidesToShow / 2);
10565        !0 === e.options.arrows &&
10566          e.slideCount > e.options.slidesToShow &&
10567          !e.options.infinite &&
10568          (e.$prevArrow
10569            .removeClass("slick-disabled")
10570            .attr("aria-disabled", "false"),
10571          e.$nextArrow
10572            .removeClass("slick-disabled")
10573            .attr("aria-disabled", "false"),
10574          0 === e.currentSlide
10575            ? (e.$prevArrow
10576                .addClass("slick-disabled")
10577                .attr("aria-disabled", "true"),
10578              e.$nextArrow
10579                .removeClass("slick-disabled")
10580                .attr("aria-disabled", "false"))
10581            : ((e.currentSlide >= e.slideCount - e.options.slidesToShow &&
10582                !1 === e.options.centerMode) ||
10583                (e.currentSlide >= e.slideCount - 1 &&
10584                  !0 === e.options.centerMode)) &&
10585              (e.$nextArrow
10586                .addClass("slick-disabled")
10587                .attr("aria-disabled", "true"),
10588              e.$prevArrow
10589                .removeClass("slick-disabled")
10590                .attr("aria-disabled", "false")));
10591      }),
10592      (r.prototype.updateDots = function () {
10593        var e = this;
10594        null !== e.$dots &&
10595          (e.$dots
10596            .find("li")
10597            .removeClass("slick-active")
10598            .attr("aria-hidden", "true"),
10599          e.$dots
10600            .find("li")
10601            .eq(Math.floor(e.currentSlide / e.options.slidesToScroll))
10602            .addClass("slick-active")
10603            .attr("aria-hidden", "false"));
10604      }),
10605      (r.prototype.visibility = function () {
10606        this.options.autoplay &&
10607          (document[this.hidden]
10608            ? (this.interrupted = !0)
10609            : (this.interrupted = !1));
10610      }),
10611      (c.fn.slick = function () {
10612        for (
10613          var e,
10614            t = this,
10615            o = arguments[0],
10616            n = Array.prototype.slice.call(arguments, 1),
10617            i = t.length,
10618            s = 0;
10619          s < i;
10620          s++
10621        )
10622          if (
10623            ("object" == typeof o || void 0 === o
10624              ? (t[s].slick = new r(t[s], o))
10625              : (e = t[s].slick[o].apply(t[s].slick, n)),
10626            void 0 !== e)
10627          )
10628            return e;
10629        return t;
10630      });
10631  }),
10632  (function (N, p) {
10633    "use strict";
10634    function r(w, b, x, e, t) {
10635      function o() {
10636        var i, s, r, a;
10637        (W = 1 < N.devicePixelRatio),
10638          n(x),
10639          0 <= b.delay &&
10640            setTimeout(function () {
10641              l(!0);
10642            }, b.delay),
10643          (b.delay < 0 || b.combined) &&
10644            ((e.e =
10645              ((i = b.throttle),
10646              (s = function (e) {
10647                "resize" === e.type && (z = E = -1), l(e.all);
10648              }),
10649              (a = 0),
10650              function (e, t) {
10651                function o() {
10652                  (a = +new Date()), s.call(w, e);
10653                }
10654                var n = new Date() - a;
10655                r && clearTimeout(r),
10656                  i < n || !b.enableThrottle || t
10657                    ? o()
10658                    : (r = setTimeout(o, i - n));
10659              })),
10660            (e.a = function (e) {
10661              n(e), x.push.apply(x, e);
10662            }),
10663            (e.g = function () {
10664              return (x = M(x).filter(function () {
10665                return !M(this).data(b.loadedName);
10666              }));
10667            }),
10668            (e.f = function (e) {
10669              for (var t = 0; t < e.length; t++) {
10670                var o = x.filter(e[t]);
10671                o.length && l(!1, o);
10672              }
10673            }),
10674            l(),
10675            M(b.appendScroll).on("scroll." + t + " resize." + t, e.e));
10676      }
10677      function n(e) {
10678        for (
10679          var t = b.defaultImage,
10680            o = b.placeholder,
10681            n = b.imageBase,
10682            i = b.srcsetAttribute,
10683            s = b.loaderAttribute,
10684            r = b._f || {},
10685            a = 0,
10686            l = (e = M(e)
10687              .filter(function () {
10688                var e = M(this),
10689                  t = k(this);
10690                return (
10691                  !e.data(b.handledName) &&
10692                  (e.attr(b.attribute) || e.attr(i) || e.attr(s) || r[t] !== p)
10693                );
10694              })
10695              .data("plugin_" + b.name, w)).length;
10696          a < l;
10697          a++
10698        ) {
10699          var c = M(e[a]),
10700            d = k(e[a]),
10701            u = c.attr(b.imageBaseAttribute) || n;
10702          d == F &&
10703            u &&
10704            c.attr(i) &&
10705            c.attr(
10706              i,
10707              (function (e, t) {
10708                if (t) {
10709                  var o = e.split(",");
10710                  e = "";
10711                  for (var n = 0, i = o.length; n < i; n++)
10712                    e += t + o[n].trim() + (n !== i - 1 ? "," : "");
10713                }
10714                return e;
10715              })(c.attr(i), u)
10716            ),
10717            r[d] === p || c.attr(s) || c.attr(s, r[d]),
10718            d == F && t && !c.attr(O)
10719              ? c.attr(O, t)
10720              : d == F ||
10721                !o ||
10722                (c.css(I) && "none" != c.css(I)) ||
10723                c.css(I, "url('" + o + "')");
10724        }
10725      }
10726      function l(e, t) {
10727        if (!x.length) return b.autoDestroy && w.destroy(), 0;
10728        for (
10729          var o,
10730            n,
10731            i,
10732            s,
10733            r,
10734            a,
10735            l,
10736            c,
10737            d,
10738            u,
10739            p,
10740            h = t || x,
10741            f = !1,
10742            m = b.imageBase || "",
10743            g = b.srcsetAttribute,
10744            v = b.handledName,
10745            y = 0;
10746          y < h.length;
10747          y++
10748        ) {
10749          (e ||
10750            t ||
10751            ((a = h[y]),
10752            (d = void 0),
10753            (l = a.getBoundingClientRect()),
10754            (c = b.scrollDirection),
10755            (d = b.threshold),
10756            (u =
10757              (0 <= E ? E : (E = M(N).height())) + d > l.top && -d < l.bottom),
10758            (p =
10759              (0 <= z ? z : (z = M(N).width())) + d > l.left && -d < l.right),
10760            "vertical" == c ? u : ("horizontal" == c || u) && p)) &&
10761            ((o = M(h[y])),
10762            (n = k(h[y])),
10763            (i = o.attr(b.attribute)),
10764            (s = o.attr(b.imageBaseAttribute) || m),
10765            (r = o.attr(b.loaderAttribute)),
10766            o.data(v) ||
10767              (b.visibleOnly && !o.is(":visible")) ||
10768              !(
10769                ((i || o.attr(g)) &&
10770                  ((n == F && (s + i != o.attr(O) || o.attr(g) != o.attr(H))) ||
10771                    (n != F && s + i != o.css(I)))) ||
10772                r
10773              ) ||
10774              ((f = !0),
10775              o.data(v, !0),
10776              (function (t, e, o, n) {
10777                ++S;
10778                var i = function () {
10779                  C("onError", t), T(), (i = M.noop);
10780                };
10781                C("beforeLoad", t);
10782                var s = b.attribute,
10783                  r = b.srcsetAttribute,
10784                  a = b.sizesAttribute,
10785                  l = b.retinaAttribute,
10786                  c = b.removeAttribute,
10787                  d = b.loadedName,
10788                  u = t.attr(l);
10789                {
10790                  var p, h, f;
10791                  n
10792                    ? ((p = function () {
10793                        c && t.removeAttr(b.loaderAttribute),
10794                          t.data(d, !0),
10795                          C(L, t),
10796                          setTimeout(T, 1),
10797                          (p = M.noop);
10798                      }),
10799                      t.off($).one($, i).one(A, p),
10800                      C(n, t, function (e) {
10801                        e ? (t.off(A), p()) : (t.off($), i());
10802                      }) || t.trigger($))
10803                    : ((h = M(new Image())).one($, i).one(A, function () {
10804                        t.hide(),
10805                          e == F
10806                            ? t
10807                                .attr(D, h.attr(D))
10808                                .attr(H, h.attr(H))
10809                                .attr(O, h.attr(O))
10810                            : t.css(I, "url('" + h.attr(O) + "')"),
10811                          t[b.effect](b.effectTime),
10812                          c &&
10813                            (t.removeAttr(
10814                              s + " " + r + " " + l + " " + b.imageBaseAttribute
10815                            ),
10816                            a !== D && t.removeAttr(a)),
10817                          t.data(d, !0),
10818                          C(L, t),
10819                          h.remove(),
10820                          T();
10821                      }),
10822                      (f = (W && u ? u : t.attr(s)) || ""),
10823                      h
10824                        .attr(D, t.attr(a))
10825                        .attr(H, t.attr(r))
10826                        .attr(O, f ? o + f : null),
10827                      h.complete && h.trigger(A));
10828                }
10829              })(o, n, s, r)));
10830        }
10831        f &&
10832          (x = M(x).filter(function () {
10833            return !M(this).data(v);
10834          }));
10835      }
10836      function k(e) {
10837        return e.tagName.toLowerCase();
10838      }
10839      function T() {
10840        --S, x.length || S || C("onFinishedAll");
10841      }
10842      function C(e, t, o) {
10843        return !!(e = b[e]) && (e.apply(w, [].slice.call(arguments, 1)), !0);
10844      }
10845      var S = 0,
10846        z = -1,
10847        E = -1,
10848        W = !1,
10849        L = "afterLoad",
10850        A = "load",
10851        $ = "error",
10852        F = "img",
10853        O = "src",
10854        H = "srcset",
10855        D = "sizes",
10856        I = "background-image";
10857      "event" == b.bind || i ? o() : M(N).on(A + "." + t, o);
10858    }
10859    function c(e, t) {
10860      var o = this,
10861        n = M.extend({}, o.config, t),
10862        i = {},
10863        s = n.name + "-" + ++a;
10864      return (
10865        (o.config = function (e, t) {
10866          return t === p ? n[e] : ((n[e] = t), o);
10867        }),
10868        (o.addItems = function (e) {
10869          return i.a && i.a("string" === M.type(e) ? M(e) : e), o;
10870        }),
10871        (o.getItems = function () {
10872          return i.g ? i.g() : {};
10873        }),
10874        (o.update = function (e) {
10875          return i.e && i.e({}, !e), o;
10876        }),
10877        (o.force = function (e) {
10878          return i.f && i.f("string" === M.type(e) ? M(e) : e), o;
10879        }),
10880        (o.loadAll = function () {
10881          return i.e && i.e({ all: !0 }, !0), o;
10882        }),
10883        (o.destroy = function () {
10884          return (
10885            M(n.appendScroll).off("." + s, i.e), M(N).off("." + s), (i = {}), p
10886          );
10887        }),
10888        r(o, n, e, i, s),
10889        n.chainable ? e : o
10890      );
10891    }
10892    var M = N.jQuery || N.Zepto,
10893      a = 0,
10894      i = !1;
10895    (M.fn.Lazy = M.fn.lazy =
10896      function (e) {
10897        return new c(this, e);
10898      }),
10899      (M.Lazy = M.lazy =
10900        function (e, t, o) {
10901          if ((M.isFunction(t) && ((o = t), (t = [])), M.isFunction(o))) {
10902            (e = M.isArray(e) ? e : [e]), (t = M.isArray(t) ? t : [t]);
10903            for (
10904              var n = c.prototype.config,
10905                i = n._f || (n._f = {}),
10906                s = 0,
10907                r = e.length;
10908              s < r;
10909              s++
10910            )
10911              (n[e[s]] !== p && !M.isFunction(n[e[s]])) || (n[e[s]] = o);
10912            for (var a = 0, l = t.length; a < l; a++) i[t[a]] = e[0];
10913          }
10914        }),
10915      (c.prototype.config = {
10916        name: "lazy",
10917        chainable: !0,
10918        autoDestroy: !0,
10919        bind: "load",
10920        threshold: 500,
10921        visibleOnly: !1,
10922        appendScroll: N,
10923        scrollDirection: "both",
10924        imageBase: null,
10925        defaultImage:
10926          "data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==",
10927        placeholder: null,
10928        delay: -1,
10929        combined: !1,
10930        attribute: "data-src",
10931        srcsetAttribute: "data-srcset",
10932        sizesAttribute: "data-sizes",
10933        retinaAttribute: "data-retina",
10934        loaderAttribute: "data-loader",
10935        imageBaseAttribute: "data-imagebase",
10936        removeAttribute: !0,
10937        handledName: "handled",
10938        loadedName: "loaded",
10939        effect: "show",
10940        effectTime: 0,
10941        enableThrottle: !0,
10942        throttle: 250,
10943        beforeLoad: p,
10944        afterLoad: p,
10945        onError: p,
10946        onFinishedAll: p,
10947      }),
10948      M(N).on("load", function () {
10949        i = !0;
10950      });
10951  })(window),
10952  (function (i) {
10953    function o(t, o, n, e) {
10954      i.ajax({
10955        url: o.attr("data-src"),
10956        type: e || "get",
10957        dataType: o.attr("data-type") || "html",
10958        success: function (e) {
10959          o.html(e),
10960            n(!0),
10961            t.config("removeAttribute") &&
10962              o.removeAttr("data-src data-method data-type");
10963        },
10964        error: function () {
10965          n(!1);
10966        },
10967      });
10968    }
10969    i.lazy("ajax", function (e, t) {
10970      o(this, e, t, e.attr("data-method"));
10971    }),
10972      i.lazy("get", function (e, t) {
10973        o(this, e, t, "get");
10974      }),
10975      i.lazy("post", function (e, t) {
10976        o(this, e, t, "post");
10977      });
10978  })(window.jQuery || window.Zepto),
10979  (function (c) {
10980    c.lazy(["av", "audio", "video"], ["audio", "video"], function (n, e) {
10981      var i,
10982        t,
10983        o,
10984        s,
10985        r,
10986        a,
10987        l = n[0].tagName.toLowerCase();
10988      "audio" == l || "video" == l
10989        ? ((i = "data-src"),
10990          (t = n.find(i)),
10991          (o = n.find("data-track")),
10992          (s = 0),
10993          (r = function () {
10994            ++s == t.length && e(!1);
10995          }),
10996          (a = function () {
10997            var e = c(this),
10998              t = e[0].tagName.toLowerCase(),
10999              o = e.prop("attributes"),
11000              n = c(t == i ? "<source>" : "<track>");
11001            t == i && n.one("error", r),
11002              c.each(o, function (e, t) {
11003                n.attr(t.name, t.value);
11004              }),
11005              e.replaceWith(n);
11006          }),
11007          n
11008            .one("loadedmetadata", function () {
11009              e(!0);
11010            })
11011            .off("load error")
11012            .attr("poster", n.attr("data-poster")),
11013          t.length
11014            ? t.each(a)
11015            : n.attr(i)
11016            ? (c.each(n.attr(i).split(","), function (e, t) {
11017                var o = t.split("|");
11018                n.append(
11019                  c("<source>")
11020                    .one("error", r)
11021                    .attr({ src: o[0].trim(), type: o[1].trim() })
11022                );
11023              }),
11024              this.config("removeAttribute") && n.removeAttr(i))
11025            : e(!1),
11026          o.length && o.each(a))
11027        : e(!1);
11028    });
11029  })(window.jQuery || window.Zepto),
11030  (function (r) {
11031    r.lazy(["frame", "iframe"], "iframe", function (t, e) {
11032      var o,
11033        n,
11034        i,
11035        s = this;
11036      "iframe" == t[0].tagName.toLowerCase()
11037        ? ((o = "data-src"),
11038          (n = "data-error-detect"),
11039          "true" != (i = t.attr(n)) && "1" != i
11040            ? (t.attr("src", t.attr(o)),
11041              s.config("removeAttribute") && t.removeAttr(o + " " + n
11041))
11042            : r.ajax({
11043                url: t.attr(o),
11044                dataType: "html",
11045                crossDomain: !0,
11046                xhrFields: { withCredentials: !0 },
11047                success: function (e) {
11048                  t.html(e).attr("src", t.attr(o)),
11049                    s.config("removeAttribute") && t.removeAttr(o + " " + n);
11050                },
11051                error: function () {
11052                  e(!1);
11053                },
11054              }))
11055        : e(!1);
11056    });
11057  })(window.jQuery || window.Zepto),
11058  (function (e) {
11059    e.lazy("noop", function () {}),
11060      e.lazy("noop-success", function (e, t) {
11061        t(!0);
11062      }),
11063      e.lazy("noop-error", function (e, t) {
11064        t(!1);
11065      });
11066  })(window.jQuery || window.Zepto),
11067  (function (c) {
11068    function d(e, t) {
11069      var o = e.prop("attributes"),
11070        n = c("<" + t + ">");
11071      return (
11072        c.each(o, function (e, t) {
11073          n.attr(t.name, t.value);
11074        }),
11075        e.replaceWith(n),
11076        n
11077      );
11078    }
11079    function u(e, t, o) {
11080      var n = c("<img>")
11081        .one("load", function () {
11082          o(!0);
11083        })
11084        .one("error", function () {
11085          o(!1);
11086        })
11087        .appendTo(e)
11088        .attr("src", t);
11089      n.complete && n.load();
11090    }
11091    c.lazy(["pic", "picture"], ["picture"], function (e, t) {
11092      var o, n, i, s, r, a, l;
11093      "picture" == e[0].tagName.toLowerCase()
11094        ? ((o = "data-src"),
11095          (n = "data-srcset"),
11096          (i = "data-media"),
11097          (s = "data-sizes"),
11098          (r = "data-type"),
11099          (a = e.find(o)),
11100          (l = e.find("data-img")),
11101          a.length
11102            ? (a.each(function () {
11103                d(c(this), "source");
11104              }),
11105              1 == l.length
11106                ? ((l = d(l, "img"))
11107                    .on("load", function () {
11108                      t(!0);
11109                    })
11110                    .on("error", function () {
11111                      t(!1);
11112                    }),
11113                  l.attr("src", l.attr(o)),
11114                  this.config("removeAttribute") && l.removeAttr(o))
11115                : e.attr(o)
11116                ? (u(e, e.attr(o), t),
11117                  this.config("removeAttribute") && e.removeAttr(o))
11118                : t(!1))
11119            : e.attr(n)
11120            ? (c("<source>")
11121                .attr({
11122                  media: e.attr(i),
11123                  sizes: e.attr(s),
11124                  type: e.attr(r),
11125                  srcset: e.attr(n),
11126                })
11127                .appendTo(e),
11128              u(e, e.attr(o), t),
11129              this.config("removeAttribute") &&
11130                e.removeAttr(o + " " + n + " " + i + " " + s + " " + r))
11131            : t(!1))
11132        : t(!1);
11133    });
11134  })(window.jQuery || window.Zepto),
11135  (window.jQuery || window.Zepto).lazy(
11136    ["js", "javascript", "script"],
11137    "script",
11138    function (e, t) {
11139      "script" == e[0].tagName.toLowerCase()
11140        ? (e.attr("src", e.attr("data-src")),
11141          this.config("removeAttribute") && e.removeAttr("data-src"))
11142        : t(!1);
11143    }
11144  ),
11145  (window.jQuery || window.Zepto).lazy("vimeo", function (e, t) {
11146    "iframe" == e[0].tagName.toLowerCase()
11147      ? (e.attr("src", "https://player.vimeo.com/video/" + e.attr("data-src")),
11148        this.config("removeAttribute") && e.removeAttr("data-src"))
11149      : t(!1);
11150  }),
11151  (window.jQuery || window.Zepto).lazy(["yt", "youtube"], function (e, t) {
11152    "iframe" == e[0].tagName.toLowerCase()
11153      ? (e.attr(
11154          "src",
11155          "https://www.youtube.com/embed/" +
11156            e.attr("data-src") +
11157            "?rel=0&amp;showinfo=0"
11158        ),
11159        this.config("removeAttribute") && e.removeAttr("data-src"))
11160      : t(!1);
11161  }),
11162  (function (i, o, H, p) {
11163    "use strict";
11164    function h(e) {
11165      return e && e.hasOwnProperty && e instanceof H;
11166    }
11167    function f(e) {
11168      return e && "string" === H.type(e);
11169    }
11170    function D(e) {
11171      return f(e) && 0 < e.indexOf("%");
11172    }
11173    function I(e, t) {
11174      var o = parseInt(e, 10) || 0;
11175      return t && D(e) && (o = (M.getViewport()[t] / 100) * o), Math.ceil(o);
11176    }
11177    function N(e, t) {
11178      return I(e, t) + "px";
11179    }
11180    var s = H("html"),
11181      n = H(i),
11182      c = H(o),
11183      M = (H.fancybox = function () {
11184        M.open.apply(this, arguments);
11185      }),
11186      r = navigator.userAgent.match(/msie/i),
11187      a = null,
11188      d = o.createTouch !== p;
11189    H.extend(M, {
11190      version: "2.1.5",
11191      defaults: {
11192        padding: 15,
11193        margin: 20,
11194        width: 800,
11195        height: 600,
11196        minWidth: 100,
11197        minHeight: 100,
11198        maxWidth: 9999,
11199        maxHeight: 9999,
11200        pixelRatio: 1,
11201        autoSize: !0,
11202        autoHeight: !1,
11203        autoWidth: !1,
11204        autoResize: !0,
11205        autoCenter: !d,
11206        fitToView: !0,
11207        aspectRatio: !1,
11208        topRatio: 0.5,
11209        leftRatio: 0.5,
11210        scrolling: "auto",
11211        wrapCSS: "",
11212        arrows: !0,
11213        closeBtn: !0,
11214        closeClick: !1,
11215        nextClick: !1,
11216        mouseWheel: !0,
11217        autoPlay: !1,
11218        playSpeed: 3e3,
11219        preload: 3,
11220        modal: !1,
11221        loop: !0,
11222        ajax: { dataType: "html", headers: { "X-fancyBox": !0 } },
11223        iframe: { scrolling: "auto", preload: !0 },
11224        swf: {
11225          wmode: "transparent",
11226          allowfullscreen: "true",
11227          allowscriptaccess: "always",
11228        },
11229        keys: {
11230          next: { 13: "left", 34: "up", 39: "left", 40: "up" },
11231          prev: { 8: "right", 33: "down", 37: "right", 38: "down" },
11232          close: [27],
11233          play: [32],
11234          toggle: [70],
11235        },
11236        direction: { next: "left", prev: "right" },
11237        scrollOutside: !0,
11238        index: 0,
11239        type: null,
11240        href: null,
11241        content: null,
11242        title: null,
11243        tpl: {
11244          wrap: '<div class="fancybox-wrap" tabIndex="-1"><div class="fancybox-skin"><div class="fancybox-outer"><div class="fancybox-inner"></div></div></div></div>',
11245          image: '<img class="fancybox-image" src="{href}" alt="" />',
11246          iframe:
11247            '<iframe id="fancybox-frame{rnd}" name="fancybox-frame{rnd}" class="fancybox-iframe" frameborder="0" vspace="0" hspace="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen' +
11248            (r ? ' allowtransparency="true"' : "") +
11249            "></iframe>",
11250          error:
11251            '<p class="fancybox-error">The requested content cannot be loaded.<br/>Please try again later.</p>',
11252          closeBtn:
11253            '<a title="Close" class="fancybox-item fancybox-close" href="javascript:;"></a>',
11254          next: '<a title="Next" class="fancybox-nav fancybox-next" href="javascript:;"><span></span></a>',
11255          prev: '<a title="Previous" class="fancybox-nav fancybox-prev" href="javascript:;"><span></span></a>',
11256          loading: '<div id="fancybox-loading"><div></div></div>',
11257        },
11258        openEffect: "fade",
11259        openSpeed: 250,
11260        openEasing: "swing",
11261        openOpacity: !0,
11262        openMethod: "zoomIn",
11263        closeEffect: "fade",
11264        closeSpeed: 250,
11265        closeEasing: "swing",
11266        closeOpacity: !0,
11267        closeMethod: "zoomOut",
11268        nextEffect: "elastic",
11269        nextSpeed: 250,
11270        nextEasing: "swing",
11271        nextMethod: "changeIn",
11272        prevEffect: "elastic",
11273        prevSpeed: 250,
11274        prevEasing: "swing",
11275        prevMethod: "changeOut",
11276        helpers: { overlay: !0, title: !0 },
11277        onCancel: H.noop,
11278        beforeLoad: H.noop,
11279        afterLoad: H.noop,
11280        beforeShow: H.noop,
11281        afterShow: H.noop,
11282        beforeChange: H.noop,
11283        beforeClose: H.noop,
11284        afterClose: H.noop,
11285      },
11286      group: {},
11287      opts: {},
11288      previous: null,
11289      coming: null,
11290      current: null,
11291      isActive: !1,
11292      isOpen: !1,
11293      isOpened: !1,
11294      wrap: null,
11295      skin: null,
11296      outer: null,
11297      inner: null,
11298      player: { timer: null, isActive: !1 },
11299      ajaxLoad: null,
11300      imgPreload: null,
11301      transitions: {},
11302      helpers: {},
11303      open: function (d, u) {
11304        if (d && (H.isPlainObject(u) || (u = {}), !1 !== M.close(!0)))
11305          return (
11306            H.isArray(d) || (d = h(d) ? H(d).get() : [d]),
11307            H.each(d, function (e, t) {
11308              var o,
11309                n,
11310                i,
11311                s,
11312                r,
11313                a,
11314                l,
11315                c = {};
11316              "object" === H.type(t) &&
11317                (t.nodeType && (t = H(t)),
11318                h(t)
11319                  ? ((c = {
11320                      href: t.data("fancybox-href") || t.attr("href"),
11321                      title: H("<div/>")
11322                        .text(t.data("fancybox-title") || t.attr("title") || "")
11323                        .html(),
11324                      isDom: !0,
11325                      element: t,
11326                    }),
11327                    H.metadata && H.extend(!0, c, t.metadata()))
11328                  : (c = t)),
11329                (o = u.href || c.href || (f(t) ? t : null)),
11330                (n = u.title !== p ? u.title : c.title || ""),
11331                !(s = (i = u.content || c.content)
11332                  ? "html"
11333                  : u.type || c.type) &&
11334                  c.isDom &&
11335                  (s =
11336                    (s = t.data("fancybox-type")) ||
11337                    ((r = t.prop("class").match(/fancybox\.(\w+)/))
11338                      ? r[1]
11339                      : null)),
11340                f(o) &&
11341                  (s ||
11342                    (M.isImage(o)
11343                      ? (s = "image")
11344                      : M.isSWF(o)
11345                      ? (s = "swf")
11346                      : "#" === o.charAt(0)
11347                      ? (s = "inline")
11348                      : f(t) && ((s = "html"), (i = t))),
11349                  "ajax" === s &&
11350                    ((o = (a = o.split(/\s+/, 2)).shift()), (l = a.shift()))),
11351                i ||
11352                  ("inline" === s
11353                    ? o
11354                      ? (i = H(f(o) ? o.replace(/.*(?=#[^\s]+$)/, "") : o))
11355                      : c.isDom && (i = t)
11356                    : "html" === s
11357                    ? (i = o)
11358                    : s || o || !c.isDom || ((s = "inline"), (i = t))),
11359                H.extend(c, {
11360                  href: o,
11361                  type: s,
11362                  content: i,
11363                  title: n,
11364                  selector: l,
11365                }),
11366                (d[e] = c);
11367            }),
11368            (M.opts = H.extend(!0, {}, M.defaults, u)),
11369            u.keys !== p &&
11370              (M.opts.keys = !!u.keys && H.extend({}, M.defaults.keys, u.keys)),
11371            (M.group = d),
11372            M._start(M.opts.index)
11373          );
11374      },
11375      cancel: function () {
11376        var e = M.coming;
11377        (e && !1 === M.trigger("onCancel")) ||
11378          (M.hideLoading(),
11379          e &&
11380            (M.ajaxLoad && M.ajaxLoad.abort(),
11381            (M.ajaxLoad = null),
11382            M.imgPreload && (M.imgPreload.onload = M.imgPreload.onerror = null),
11383            e.wrap && e.wrap.stop(!0, !0).trigger("onReset").remove(),
11384            (M.coming = null),
11385            M.current || M._afterZoomOut(e)));
11386      },
11387      close: function (e) {
11388        M.cancel(),
11389          !1 !== M.trigger("beforeClose") &&
11390            (M.unbindEvents(),
11391            M.isActive &&
11392              (M.isOpen && !0 !== e
11393                ? ((M.isOpen = M.isOpened = !1),
11394                  (M.isClosing = !0),
11395                  H(".fancybox-item, .fancybox-nav").remove(),
11396                  M.wrap.stop(!0, !0).removeClass("fancybox-opened"),
11397                  M.transitions[M.current.closeMethod]())
11398                : (H(".fancybox-wrap").stop(!0).trigger("onReset").remove(),
11399                  M._afterZoomOut())));
11400      },
11401      play: function (e) {
11402        function t() {
11403          clearTimeout(M.player.timer);
11404        }
11405        function o() {
11406          t(),
11407            M.current &&
11408              M.player.isActive &&
11409              (M.player.timer = setTimeout(M.next, M.current.playSpeed));
11410        }
11411        function n() {
11412          t(),
11413            c.unbind(".player"),
11414            (M.player.isActive = !1),
11415            M.trigger("onPlayEnd");
11416        }
11417        !0 === e || (!M.player.isActive && !1 !== e)
11418          ? M.current &&
11419            (M.current.loop || M.current.index < M.group.length - 1) &&
11420            ((M.player.isActive = !0),
11421            c.bind({
11422              "onCancel.player beforeClose.player": n,
11423              "onUpdate.player": o,
11424              "beforeLoad.player": t,
11425            }),
11426            o(),
11427            M.trigger("onPlayStart"))
11428          : n();
11429      },
11430      next: function (e) {
11431        var t = M.current;
11432        t && (f(e) || (e = t.direction.next), M.jumpto(t.index + 1, e, "next"));
11433      },
11434      prev: function (e) {
11435        var t = M.current;
11436        t && (f(e) || (e = t.direction.prev), M.jumpto(t.index - 1, e, "prev"));
11437      },
11438      jumpto: function (e, t, o) {
11439        var n = M.current;
11440        n &&
11441          ((e = I(e)),
11442          (M.direction = t || n.direction[e >= n.index ? "next" : "prev"]),
11443          (M.router = o || "jumpto"),
11444          n.loop &&
11445            (e < 0 && (e = n.group.length + (e % n.group.length)),
11446            (e %= n.group.length)),
11447          n.group[e] !== p && (M.cancel(), M._start(e)));
11448      },
11449      reposition: function (e, t) {
11450        var o,
11451          n = M.current,
11452          i = n ? n.wrap : null;
11453        i &&
11454          ((o = M._getPosition(t)),
11455          e && "scroll" === e.type
11456            ? (delete o.position, i.stop(!0, !0).animate(o, 200))
11457            : (i.css(o), (n.pos = H.extend({}, n.dim, o))));
11458      },
11459      update: function (t) {
11460        var o = t && t.originalEvent && t.originalEvent.type,
11461          n = !o || "orientationchange" === o;
11462        n && (clearTimeout(a), (a = null)),
11463          M.isOpen &&
11464            !a &&
11465            (a = setTimeout(
11466              function () {
11467                var e = M.current;
11468                e &&
11469                  !M.isClosing &&
11470                  (M.wrap.removeClass("fancybox-tmp"),
11471                  (n || "load" === o || ("resize" === o && e.autoResize)) &&
11472                    M._setDimension(),
11473                  ("scroll" === o && e.canShrink) || M.reposition(t),
11474                  M.trigger("onUpdate"),
11475                  (a = null));
11476              },
11477              n && !d ? 0 : 300
11478            ));
11479      },
11480      toggle: function (e) {
11481        M.isOpen &&
11482          ((M.current.fitToView =
11483            "boolean" === H.type(e) ? e : !M.current.fitToView),
11484          d &&
11485            (M.wrap.removeAttr("style").addClass("fancybox-tmp"),
11486            M.trigger("onUpdate")),
11487          M.update());
11488      },
11489      hideLoading: function () {
11490        c.unbind(".loading"), H("#fancybox-loading").remove();
11491      },
11492      showLoading: function () {
11493        var e, t;
11494        M.hideLoading(),
11495          (e = H(M.opts.tpl.loading).click(M.cancel).appendTo("body")),
11496          c.bind("keydown.loading", function (e) {
11497            27 === (e.which || e.keyCode) && (e.preventDefault(), M.cancel());
11498          }),
11499          M.defaults.fixed ||
11500            ((t = M.getViewport()),
11501            e.css({
11502              position: "absolute",
11503              top: 0.5 * t.h + t.y,
11504              left: 0.5 * t.w + t.x,
11505            })),
11506          M.trigger("onLoading");
11507      },
11508      getViewport: function () {
11509        var e = (M.current && M.current.locked) || !1,
11510          t = { x: n.scrollLeft(), y: n.scrollTop() };
11511        return (
11512          e && e.length
11513            ? ((t.w = e[0].clientWidth), (t.h = e[0].clientHeight))
11514            : ((t.w = d && i.innerWidth ? i.innerWidth : n.width()),
11515              (t.h = d && i.innerHeight ? i.innerHeight : n.height())),
11516          t
11517        );
11518      },
11519      unbindEvents: function () {
11520        M.wrap && h(M.wrap) && M.wrap.unbind(".fb"),
11521          c.unbind(".fb"),
11522          n.unbind(".fb");
11523      },
11524      bindEvents: function () {
11525        var t,
11526          l = M.current;
11527        l &&
11528          (n.bind(
11529            "orientationchange.fb" +
11530              (d ? "" : " resize.fb") +
11531              (l.autoCenter && !l.locked ? " scroll.fb" : ""),
11532            M.update
11533          ),
11534          (t = l.keys) &&
11535            c.bind("keydown.fb", function (o) {
11536              var n = o.which || o.keyCode,
11537                e = o.target || o.srcElement;
11538              if (27 === n && M.coming) return !1;
11539              o.ctrlKey ||
11540                o.altKey ||
11541                o.shiftKey ||
11542                o.metaKey ||
11543                (e && (e.type || H(e).is("[contenteditable]"))) ||
11544                H.each(t, function (e, t) {
11545                  return 1 < l.group.length && t[n] !== p
11546                    ? (M[e](t[n]), o.preventDefault(), !1)
11547                    : -1 < H.inArray(n, t)
11548                    ? (M[e](), o.preventDefault(), !1)
11549                    : void 0;
11550                });
11551            }),
11552          H.fn.mousewheel &&
11553            l.mouseWheel &&
11554            M.wrap.bind("mousewheel.fb", function (e, t, o, n) {
11555              for (
11556                var i, s = e.target || null, r = H(s), a = !1;
11557                r.length &&
11558                !(a || r.is(".fancybox-skin") || r.is(".fancybox-wrap"));
11559
11560              )
11561                (a =
11562                  (i = r[0]) &&
11563                  !(i.style.overflow && "hidden" === i.style.overflow) &&
11564                  ((i.clientWidth && i.scrollWidth > i.clientWidth) ||
11565                    (i.clientHeight && i.scrollHeight > i.clientHeight))),
11566                  (r = H(r).parent());
11567              0 === t ||
11568                a ||
11569                (1 < M.group.length &&
11570                  !l.canShrink &&
11571                  (0 < n || 0 < o
11572                    ? M.prev(0 < n ? "down" : "left")
11573                    : (n < 0 || o < 0) && M.next(n < 0 ? "up" : "right"),
11574                  e.preventDefault()));
11575            }));
11576      },
11577      trigger: function (o, e) {
11578        var t,
11579          n = e || M.coming || M.current;
11580        if (n) {
11581          if (
11582            (H.isFunction(n[o]) &&
11583              (t = n[o].apply(n, Array.prototype.slice.call(arguments, 1))),
11584            !1 === t)
11585          )
11586            return !1;
11587          n.helpers &&
11588            H.each(n.helpers, function (e, t) {
11589              t &&
11590                M.helpers[e] &&
11591                H.isFunction(M.helpers[e][o]) &&
11592                M.helpers[e][o](H.extend(!0, {}, M.helpers[e].defaults, t), n);
11593            });
11594        }
11595        c.trigger(o);
11596      },
11597      isImage: function (e) {
11598        return (
11599          f(e) &&
11600          e.match(
11601            /(^data:image\/.*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg)((\?|#).*)?$)/i
11602          )
11603        );
11604      },
11605      isSWF: function (e) {
11606        return f(e) && e.match(/\.(swf)((\?|#).*)?$/i);
11607      },
11608      _start: function (e) {
11609        var t,
11610          o,
11611          n,
11612          i,
11613          s,
11614          r = {};
11615        if (((e = I(e)), !(t = M.group[e] || null))) return !1;
11616        if (
11617          ((i = (r = H.extend(!0, {}, M.opts, t)).margin),
11618          (s = r.padding),
11619          "number" === H.type(i) && (r.margin = [i, i, i, i]),
11620          "number" === H.type(s) && (r.padding = [s, s, s, s]),
11621          r.modal &&
11622            H.extend(!0, r, {
11623              closeBtn: !1,
11624              closeClick: !1,
11625              nextClick: !1,
11626              arrows: !1,
11627              mouseWheel: !1,
11628              keys: null,
11629              helpers: { overlay: { closeClick: !1 } },
11630            }),
11631          r.autoSize && (r.autoWidth = r.autoHeight = !0),
11632          "auto" === r.width && (r.autoWidth = !0),
11633          "auto" === r.height && (r.autoHeight = !0),
11634          (r.group = M.group),
11635          (r.index = e),
11636          (M.coming = r),
11637          !1 !== M.trigger("beforeLoad"))
11638        ) {
11639          if (((n = r.type), (o = r.href), !n))
11640            return (
11641              (M.coming = null),
11642              !(!M.current || !M.router || "jumpto" === M.router) &&
11643                ((M.current.index = e), M[M.router](M.direction))
11644            );
11645          if (
11646            ((M.isActive = !0),
11647            ("image" !== n && "swf" !== n) ||
11648              ((r.autoHeight = r.autoWidth = !1), (r.scrolling = "visible")),
11649            "image" === n && (r.aspectRatio = !0),
11650            "iframe" === n && d && (r.scrolling = "scroll"),
11651            (r.wrap = H(r.tpl.wrap)
11652              .addClass(
11653                "fancybox-" +
11654                  (d ? "mobile" : "desktop") +
11655                  " fancybox-type-" +
11656                  n +
11657                  " fancybox-tmp " +
11658                  r.wrapCSS
11659              )
11660              .appendTo(r.parent || "body")),
11661            H.extend(r, {
11662              skin: H(".fancybox-skin", r.wrap),
11663              outer: H(".fancybox-outer", r.wrap),
11664              inner: H(".fancybox-inner", r.wrap),
11665            }),
11666            H.each(["Top", "Right", "Bottom", "Left"], function (e, t) {
11667              r.skin.css("padding" + t, N(r.padding[e]));
11668            }),
11669            M.trigger("onReady"),
11670            "inline" === n || "html" === n)
11671          ) {
11672            if (!r.content || !r.content.length) return M._error("content");
11673          } else if (!o) return M._error("href");
11674          "image" === n
11675            ? M._loadImage()
11676            : "ajax" === n
11677            ? M._loadAjax()
11678            : "iframe" === n
11679            ? M._loadIframe()
11680            : M._afterLoad();
11681        } else M.coming = null;
11682      },
11683      _error: function (e) {
11684        H.extend(M.coming, {
11685          type: "html",
11686          autoWidth: !0,
11687          autoHeight: !0,
11688          minWidth: 0,
11689          minHeight: 0,
11690          scrolling: "no",
11691          hasError: e,
11692          content: M.coming.tpl.error,
11693        }),
11694          M._afterLoad();
11695      },
11696      _loadImage: function () {
11697        var e = (M.imgPreload = new Image());
11698        (e.onload = function () {
11699          (this.onload = this.onerror = null),
11700            (M.coming.width = this.width / M.opts.pixelRatio),
11701            (M.coming.height = this.height / M.opts.pixelRatio),
11702            M._afterLoad();
11703        }),
11704          (e.onerror = function () {
11705            (this.onload = this.onerror = null), M._error("image");
11706          }),
11707          (e.src = M.coming.href),
11708          !0 !== e.complete && M.showLoading();
11709      },
11710      _loadAjax: function () {
11711        var o = M.coming;
11712        M.showLoading(),
11713          (M.ajaxLoad = H.ajax(
11714            H.extend({}, o.ajax, {
11715              url: o.href,
11716              error: function (e, t) {
11717                M.coming && "abort" !== t
11718                  ? M._error("ajax", e)
11719                  : M.hideLoading();
11720              },
11721              success: function (e, t) {
11722                "success" === t && ((o.content = e), M._afterLoad());
11723              },
11724            })
11725          ));
11726      },
11727      _loadIframe: function () {
11728        var e = M.coming,
11729          t = H(e.tpl.iframe.replace(/\{rnd\}/g, new Date().getTime()))
11730            .attr("scrolling", d ? "auto" : e.iframe.scrolling)
11731            .attr("src", e.href);
11732        H(e.wrap).bind("onReset", function () {
11733          try {
11734            H(this)
11735              .find("iframe")
11736              .hide()
11737              .attr("src", "//about:blank")
11738              .end()
11739              .empty();
11740          } catch (e) {}
11741        }),
11742          e.iframe.preload &&
11743            (M.showLoading(),
11744            t.one("load", function () {
11745              H(this).data("ready", 1),
11746                d || H(this).bind("load.fb", M.update),
11747                H(this)
11748                  .parents(".fancybox-wrap")
11749                  .width("100%")
11750                  .removeClass("fancybox-tmp")
11751                  .show(),
11752                M._afterLoad();
11753            })),
11754          (e.content = t.appendTo(e.inner)),
11755          e.iframe.preload || M._afterLoad();
11756      },
11757      _preloadImages: function () {
11758        for (
11759          var e,
11760            t = M.group,
11761            o = M.current,
11762            n = t.length,
11763            i = o.preload ? Math.min(o.preload, n - 1) : 0,
11764            s = 1;
11765          s <= i;
11766          s += 1
11767        )
11768          "image" === (e = t[(o.index + s) % n]).type &&
11769            e.href &&
11770            (new Image().src = e.href);
11771      },
11772      _afterLoad: function () {
11773        var e,
11774          o,
11775          t,
11776          n,
11777          i,
11778          s,
11779          r = M.coming,
11780          a = M.current,
11781          l = "fancybox-placeholder";
11782        if ((M.hideLoading(), r && !1 !== M.isActive)) {
11783          if (!1 === M.trigger("afterLoad", r, a))
11784            return (
11785              r.wrap.stop(!0).trigger("onReset").remove(),
11786              void (M.coming = null)
11787            );
11788          switch (
11789            (a &&
11790              (M.trigger("beforeChange", a),
11791              a.wrap
11792                .stop(!0)
11793                .removeClass("fancybox-opened")
11794                .find(".fancybox-item, .fancybox-nav")
11795                .remove()),
11796            M.unbindEvents(),
11797            (o = (e = r).content),
11798            (t = r.type),
11799            (n = r.scrolling),
11800            H.extend(M, {
11801              wrap: e.wrap,
11802              skin: e.skin,
11803              outer: e.outer,
11804              inner: e.inner,
11805              current: e,
11806              previous: a,
11807            }),
11808            (i = e.href),
11809            t)
11810          ) {
11811            case "inline":
11812            case "ajax":
11813            case "html":
11814              e.selector
11815                ? (o = H("<div>").html(o).find(e.selector))
11816                : h(o) &&
11817                  (o.data(l) ||
11818                    o.data(
11819                      l,
11820                      H('<div class="' + l + '"></div>')
11821                        .insertAfter(o)
11822                        .hide()
11823                    ),
11824                  (o = o.show().detach()),
11825                  e.wrap.bind("onReset", function () {
11826                    H(this).find(o).length &&
11827                      o.hide().replaceAll(o.data(l)).data(l, !1);
11828                  }));
11829              break;
11830            case "image":
11831              o = e.tpl.image.replace(/\{href\}/g, i);
11832              break;
11833            case "swf":
11834              (o =
11835                '<object id="fancybox-swf" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="100%" height="100%"><param name="movie" value="' +
11836                i +
11837                '"></param>'),
11838                (s = ""),
11839                H.each(e.swf, function (e, t) {
11840                  (o += '<param name="' + e + '" value="' + t + '"></param>'),
11841                    (s += " " + e + '="' + t + '"');
11842                }),
11843                (o +=
11844                  '<embed src="' +
11845                  i +
11846                  '" type="application/x-shockwave-flash" width="100%" height="100%"' +
11847                  s +
11848                  "></embed></object>");
11849          }
11850          (h(o) && o.parent().is(e.inner)) || e.inner.append(o),
11851            M.trigger("beforeShow"),
11852            e.inner.css(
11853              "overflow",
11854              "yes" === n ? "scroll" : "no" === n ? "hidden" : n
11855            ),
11856            M._setDimension(),
11857            M.reposition(),
11858            (M.isOpen = !1),
11859            (M.coming = null),
11860            M.bindEvents(),
11861            M.isOpened
11862              ? a.prevMethod && M.transitions[a.prevMethod]()
11863              : H(".fancybox-wrap")
11864                  .not(e.wrap)
11865                  .stop(!0)
11866                  .trigger("onReset")
11867                  .remove(),
11868            M.transitions[M.isOpened ? e.nextMethod : e.openMethod](),
11869            M._preloadImages();
11870        }
11871      },
11872      _setDimension: function () {
11873        var e,
11874          t,
11875          o,
11876          n,
11877          i,
11878          s,
11879          r,
11880          a,
11881          l,
11882          c,
11883          d,
11884          u,
11885          p,
11886          h,
11887          f,
11888          m,
11889          g,
11890          v = M.getViewport(),
11891          y = 0,
11892          w = M.wrap,
11893          b = M.skin,
11894          x = M.inner,
11895          k = M.current,
11896          T = k.width,
11897          C = k.height,
11898          S = k.minWidth,
11899          z = k.minHeight,
11900          E = k.maxWidth,
11901          W = k.maxHeight,
11902          L = k.scrolling,
11903          A = k.scrollOutside ? k.scrollbarWidth : 0,
11904          $ = k.margin,
11905          F = I($[1] + $[3]),
11906          O = I($[0] + $[2]);
11907        if (
11908          (w
11909            .add(b)
11910            .add(x)
11911            .width("auto")
11912            .height("auto")
11913            .removeClass("fancybox-tmp"),
11914          (i = F + (o = I(b.outerWidth(!0) - b.width()))),
11915          (s = O + (n = I(b.outerHeight(!0) - b.height()))),
11916          (r = D(T) ? ((v.w - i) * I(T)) / 100 : T),
11917          (a = D(C) ? ((v.h - s) * I(C)) / 100 : C),
11918          "iframe" === k.type)
11919        ) {
11920          if (((m = k.content), k.autoHeight && m && 1 === m.data("ready")))
11921            try {
11922              m[0].contentWindow.document.location &&
11923                (x.width(r).height(9999),
11924                (g = m.contents().find("body")),
11925                A && g.css("overflow-x", "hidden"),
11926                (a = g.outerHeight(!0)));
11927            } catch (e) {}
11928        } else
11929          (k.autoWidth || k.autoHeight) &&
11930            (x.addClass("fancybox-tmp"),
11931            k.autoWidth || x.width(r),
11932            k.autoHeight || x.height(a),
11933            k.autoWidth && (r = x.width()),
11934            k.autoHeight && (a = x.height()),
11935            x.removeClass("fancybox-tmp"));
11936        if (
11937          ((T = I(r)),
11938          (C = I(a)),
11939          (d = r / a),
11940          (S = I(D(S) ? I(S, "w") - i : S)),
11941          (E = I(D(E) ? I(E, "w") - i : E)),
11942          (z = I(D(z) ? I(z, "h") - s : z)),
11943          (l = E),
11944          (c = W = I(D(W) ? I(W, "h") - s : W)),
11945          k.fitToView &&
11946            ((E = Math.min(v.w - i, E)), (W = Math.min(v.h - s, W))),
11947          (h = v.w - F),
11948          (f = v.h - O),
11949          k.aspectRatio
11950            ? (E < T && (C = I((T = E) / d)),
11951              W < C && (T = I((C = W) * d)),
11952              T < S && (C = I((T = S) / d)),
11953              C < z && (T = I((C = z) * d)))
11954            : ((T = Math.max(S, Math.min(T, E))),
11955              k.autoHeight &&
11956                "iframe" !== k.type &&
11957                (x.width(T), (C = x.height())),
11958              (C = Math.max(z, Math.min(C, W)))),
11959          k.fitToView)
11960        )
11961          if (
11962            (x.width(T).height(C),
11963            w.width(T + o),
11964            (u = w.width()),
11965            (p = w.height()),
11966            k.aspectRatio)
11967          )
11968            for (; (h < u || f < p) && S < T && z < C && !(19 < y++); )
11969              (C = Math.max(z, Math.min(W, C - 10))),
11970                (T = I(C * d)) < S && (C = I((T = S) / d)),
11971                E < T && (C = I((T = E) / d)),
11972                x.width(T).height(C),
11973                w.width(T + o),
11974                (u = w.width()),
11975                (p = w.height());
11976          else
11977            (T = Math.max(S, Math.min(T, T - (u - h)))),
11978              (C = Math.max(z, Math.min(C, C - (p - f))));
11979        A && "auto" === L && C < a && T + o + A < h && (T += A),
11980          x.width(T).height(C),
11981          w.width(T + o),
11982          (u = w.width()),
11983          (p = w.height()),
11984          (e = (h < u || f < p) && S < T && z < C),
11985          (t = k.aspectRatio
11986            ? T < l && C < c && T < r && C < a
11987            : (T < l || C < c) && (T < r || C < a)),
11988          H.extend(k, {
11989            dim: { width: N(u), height: N(p) },
11990            origWidth: r,
11991            origHeight: a,
11992            canShrink: e,
11993            canExpand: t,
11994            wPadding: o,
11995            hPadding: n,
11996            wrapSpace: p - b.outerHeight(!0),
11997            skinSpace: b.height() - C,
11998          }),
11999          !m && k.autoHeight && z < C && C < W && !t && x.height("auto");
12000      },
12001      _getPosition: function (e) {
12002        var t = M.current,
12003          o = M.getViewport(),
12004          n = t.margin,
12005          i = M.wrap.width() + n[1] + n[3],
12006          s = M.wrap.height() + n[0] + n[2],
12007          r = { position: "absolute", top: n[0], left: n[3] };
12008        return (
12009          t.autoCenter && t.fixed && !e && s <= o.h && i <= o.w
12010            ? (r.position = "fixed")
12011            : t.locked || ((r.top += o.y), (r.left += o.x)),
12012          (r.top = N(Math.max(r.top, r.top + (o.h - s) * t.topRatio))),
12013          (r.left = N(Math.max(r.left, r.left + (o.w - i) * t.leftRatio))),
12014          r
12015        );
12016      },
12017      _afterZoomIn: function () {
12018        var t = M.current;
12019        t &&
12020          ((M.isOpen = M.isOpened = !0),
12021          M.wrap
12022            .css("overflow", "visible")
12023            .addClass("fancybox-opened")
12024            .hide()
12025            .show(0),
12026          M.update(),
12027          (t.closeClick || (t.nextClick && 1 < M.group.length)) &&
12028            M.inner.css("cursor", "pointer").bind("click.fb", function (e) {
12029              H(e.target).is("a") ||
12030                H(e.target).parent().is("a") ||
12031                (e.preventDefault(), M[t.closeClick ? "close" : "next"]());
12032            }),
12033          t.closeBtn &&
12034            H(t.tpl.closeBtn)
12035              .appendTo(M.skin)
12036              .bind("click.fb", function (e) {
12037                e.preventDefault(), M.close();
12038              }),
12039          t.arrows &&
12040            1 < M.group.length &&
12041            ((t.loop || 0 < t.index) &&
12042              H(t.tpl.prev).appendTo(M.outer).bind("click.fb", M.prev),
12043            (t.loop || t.index < M.group.length - 1) &&
12044              H(t.tpl.next).appendTo(M.outer).bind("click.fb", M.next)),
12045          M.trigger("afterShow"),
12046          t.loop || t.index !== t.group.length - 1
12047            ? M.opts.autoPlay &&
12048              !M.player.isActive &&
12049              ((M.opts.autoPlay = !1), M.play(!0))
12050            : M.play(!1));
12051      },
12052      _afterZoomOut: function (e) {
12053        (e = e || M.current),
12054          H(".fancybox-wrap").trigger("onReset").remove(),
12055          H.extend(M, {
12056            group: {},
12057            opts: {},
12058            router: !1,
12059            current: null,
12060            isActive: !1,
12061            isOpened: !1,
12062            isOpen: !1,
12063            isClosing: !1,
12064            wrap: null,
12065            skin: null,
12066            outer: null,
12067            inner: null,
12068          }),
12069          M.trigger("afterClose", e);
12070      },
12071    }),
12072      (M.transitions = {
12073        getOrigPosition: function () {
12074          var e = M.current,
12075            t = e.element,
12076            o = e.orig,
12077            n = {},
12078            i = 50,
12079            s = 50,
12080            r = e.hPadding,
12081            a = e.wPadding,
12082            l = M.getViewport();
12083          return (
12084            !o &&
12085              e.isDom &&
12086              t.is(":visible") &&
12087              ((o = t.find("img:first")).length || (o = t)),
12088            h(o)
12089              ? ((n = o.offset()),
12090                o.is("img") && ((i = o.outerWidth()), (s = o.outerHeight())))
12091              : ((n.top = l.y + (l.h - s) * e.topRatio),
12092                (n.left = l.x + (l.w - i) * e.leftRatio)),
12093            ("fixed" !== M.wrap.css("position") && !e.locked) ||
12094              ((n.top -= l.y), (n.left -= l.x)),
12095            (n = {
12096              top: N(n.top - r * e.topRatio),
12097              left: N(n.left - a * e.leftRatio),
12098              width: N(i + a),
12099              height: N(s + r),
12100            })
12101          );
12102        },
12103        step: function (e, t) {
12104          var o,
12105            n,
12106            i = t.prop,
12107            s = M.current,
12108            r = s.wrapSpace,
12109            a = s.skinSpace;
12110          ("width" !== i && "height" !== i) ||
12111            ((o = t.end === t.start ? 1 : (e - t.start) / (t.end - t.start)),
12112            M.isClosing && (o = 1 - o),
12113            (n = e - ("width" === i ? s.wPadding : s.hPadding)),
12114            M.skin[i](I("width" === i ? n : n - r * o)),
12115            M.inner[i](I("width" === i ? n : n - r * o - a * o)));
12116        },
12117        zoomIn: function () {
12118          var e = M.current,
12119            t = e.pos,
12120            o = e.openEffect,
12121            n = "elastic" === o,
12122            i = H.extend({ opacity: 1 }, t);
12123          delete i.position,
12124            n
12125              ? ((t = this.getOrigPosition()),
12126                e.openOpacity && (t.opacity = 0.1))
12127              : "fade" === o && (t.opacity = 0.1),
12128            M.wrap
12129              .css(t)
12130              .animate(i, {
12131                duration: "none" === o ? 0 : e.openSpeed,
12132                easing: e.openEasing,
12133                step: n ? this.step : null,
12134                complete: M._afterZoomIn,
12135              });
12136        },
12137        zoomOut: function () {
12138          var e = M.current,
12139            t = e.closeEffect,
12140            o = "elastic" === t,
12141            n = { opacity: 0.1 };
12142          o &&
12143            ((n = this.getOrigPosition()), e.closeOpacity && (n.opacity = 0.1)),
12144            M.wrap.animate(n, {
12145              duration: "none" === t ? 0 : e.closeSpeed,
12146              easing: e.closeEasing,
12147              step: o ? this.step : null,
12148              complete: M._afterZoomOut,
12149            });
12150        },
12151        changeIn: function () {
12152          var e,
12153            t = M.current,
12154            o = t.nextEffect,
12155            n = t.pos,
12156            i = { opacity: 1 },
12157            s = M.direction;
12158          (n.opacity = 0.1),
12159            "elastic" === o &&
12160              ((e = "down" === s || "up" === s ? "top" : "left"),
12161              "down" === s || "right" === s
12162                ? ((n[e] = N(I(n[e]) - 200)), (i[e] = "+=200px"))
12163                : ((n[e] = N(I(n[e]) + 200)), (i[e] = "-=200px"))),
12164            "none" === o
12165              ? M._afterZoomIn()
12166              : M.wrap
12167                  .css(n)
12168                  .animate(i, {
12169                    duration: t.nextSpeed,
12170                    easing: t.nextEasing,
12171                    complete: M._afterZoomIn,
12172                  });
12173        },
12174        changeOut: function () {
12175          var e = M.previous,
12176            t = e.prevEffect,
12177            o = { opacity: 0.1 },
12178            n = M.direction;
12179          "elastic" === t &&
12180            (o["down" === n || "up" === n ? "top" : "left"] =
12181              ("up" === n || "left" === n ? "-" : "+") + "=200px"),
12182            e.wrap.animate(o, {
12183              duration: "none" === t ? 0 : e.prevSpeed,
12184              easing: e.prevEasing,
12185              complete: function () {
12186                H(this).trigger("onReset").remove();
12187              },
12188            });
12189        },
12190      }),
12191      (M.helpers.overlay = {
12192        defaults: {
12193          closeClick: !0,
12194          speedOut: 200,
12195          showEarly: !0,
12196          css: {},
12197          locked: !d,
12198          fixed: !0,
12199        },
12200        overlay: null,
12201        fixed: !1,
12202        el: H("html"),
12203        create: function (e) {
12204          var t;
12205          (e = H.extend({}, this.defaults, e)),
12206            this.overlay && this.close(),
12207            (t = M.coming ? M.coming.parent : e.parent),
12208            (this.overlay = H('<div class="fancybox-overlay"></div>').appendTo(
12209              t && t.length ? t : "body"
12210            )),
12211            (this.fixed = !1),
12212            e.fixed &&
12213              M.defaults.fixed &&
12214              (this.overlay.addClass("fancybox-overlay-fixed"),
12215              (this.fixed = !0));
12216        },
12217        open: function (e) {
12218          var t = this;
12219          (e = H.extend({}, this.defaults, e)),
12220            this.overlay
12221              ? this.overlay.unbind(".overlay").width("auto").height("auto")
12222              : this.create(e),
12223            this.fixed ||
12224              (n.bind("resize.overlay", H.proxy(this.update, this)),
12225              this.update()),
12226            e.closeClick &&
12227              this.overlay.bind("click.overlay", function (e) {
12228                if (H(e.target).hasClass("fancybox-overlay"))
12229                  return M.isActive ? M.close() : t.close(), !1;
12230              }),
12231            this.overlay.css(e.css).show();
12232        },
12233        close: function () {
12234          n.unbind("resize.overlay"),
12235            this.el.hasClass("fancybox-lock") &&
12236              (H(".fancybox-margin").removeClass("fancybox-margin"),
12237              this.el.removeClass("fancybox-lock"),
12238              n.scrollTop(this.scrollV).scrollLeft(this.scrollH)),
12239            H(".fancybox-overlay").remove().hide(),
12240            H.extend(this, { overlay: null, fixed: !1 });
12241        },
12242        update: function () {
12243          var e,
12244            t = "100%";
12245          this.overlay.width(t).height("100%"),
12246            r
12247              ? ((e = Math.max(
12248                  o.documentElement.offsetWidth,
12249                  o.body.offsetWidth
12250                )),
12251                c.width() > e && (t = c.width()))
12252              : c.width() > n.width() && (t = c.width()),
12253            this.overlay.width(t).height(c.height());
12254        },
12255        onReady: function (e, t) {
12256          var o = this.overlay;
12257          H(".fancybox-overlay").stop(!0, !0),
12258            o || this.create(e),
12259            e.locked &&
12260              this.fixed &&
12261              t.fixed &&
12262              ((t.locked = this.overlay.append(t.wrap)), (t.fixed = !1)),
12263            !0 === e.showEarly && this.beforeShow.apply(this, arguments);
12264        },
12265        beforeShow: function (e, t) {
12266          t.locked &&
12267            !this.el.hasClass("fancybox-lock") &&
12268            (!1 !== this.fixPosition &&
12269              H("*:not(object)")
12270                .filter(function () {
12271                  return (
12272                    "fixed" === H(this).css("position") &&
12273                    !H(this).hasClass("fancybox-overlay") &&
12274                    !H(this).hasClass("fancybox-wrap")
12275                  );
12276                })
12277                .addClass("fancybox-margin"),
12278            this.el.addClass("fancybox-margin"),
12279            (this.scrollV = n.scrollTop()),
12280            (this.scrollH = n.scrollLeft()),
12281            this.el.addClass("fancybox-lock"),
12282            n.scrollTop(this.scrollV).scrollLeft(this.scrollH)),
12283            this.open(e);
12284        },
12285        onUpdate: function () {
12286          this.fixed || this.update();
12287        },
12288        afterClose: function (e) {
12289          this.overlay &&
12290            !M.coming &&
12291            this.overlay.fadeOut(e.speedOut, H.proxy(this.close, this));
12292        },
12293      }),
12294      (M.helpers.title = {
12295        defaults: { type: "float", position: "bottom" },
12296        beforeShow: function (e) {
12297          var t,
12298            o,
12299            n = M.current,
12300            i = n.title,
12301            s = e.type;
12302          if (
12303            (H.isFunction(i) && (i = i.call(n.element, n)),
12304            f(i) && "" !== H.trim(i))
12305          ) {
12306            switch (
12307              ((t = H(
12308                '<div class="fancybox-title fancybox-title-' +
12309                  s +
12310                  '-wrap">' +
12311                  i +
12312                  "</div>"
12313              )),
12314              s)
12315            ) {
12316              case "inside":
12317                o = M.skin;
12318                break;
12319              case "outside":
12320                o = M.wrap;
12321                break;
12322              case "over":
12323                o = M.inner;
12324                break;
12325              default:
12326                (o = M.skin),
12327                  t.appendTo("body"),
12328                  r && t.width(t.width()),
12329                  t.wrapInner('<span class="child"></span>'),
12330                  (M.current.margin[2] += Math.abs(I(t.css("margin-bottom"))));
12331            }
12332            t["top" === e.position ? "prependTo" : "appendTo"](o);
12333          }
12334        },
12335      }),
12336      (H.fn.fancybox = function (s) {
12337        function e(e) {
12338          var t,
12339            o,
12340            n = H(this).blur(),
12341            i = l;
12342          e.ctrlKey ||
12343            e.altKey ||
12344            e.shiftKey ||
12345            e.metaKey ||
12346            n.is(".fancybox-wrap") ||
12347            ((t = s.groupAttr || "data-fancybox-group"),
12348            (o = n.attr(t)) || ((t = "rel"), (o = n.get(0)[t])),
12349            o &&
12350              "" !== o &&
12351              "nofollow" !== o &&
12352              (i = (n = (n = a.length ? H(a) : r).filter(
12353                "[" + t + '="' + o + '"]'
12354              )).index(this)),
12355            (s.index = i),
12356            !1 !== M.open(n, s) && e.preventDefault());
12357        }
12358        var r = H(this),
12359          a = this.selector || "",
12360          l = (s = s || {}).index || 0;
12361        return (
12362          a && !1 !== s.live
12363            ? c
12364                .undelegate(a, "click.fb-start")
12365                .delegate(
12366                  a + ":not('.fancybox-item, .fancybox-nav')",
12367                  "click.fb-start",
12368                  e
12369                )
12370            : r.unbind("click.fb-start").bind("click.fb-start", e),
12371          this.filter("[data-fancybox-start=1]").trigger("click"),
12372          this
12373        );
12374      }),
12375      c.ready(function () {
12376        var e, t, o, n;
12377        H.scrollbarWidth === p &&
12378          (H.scrollbarWidth = function () {
12379            var e = H(
12380                '<div style="width:50px;height:50px;overflow:auto"><div/></div>'
12381              ).appendTo("body"),
12382              t = e.children(),
12383              o = t.innerWidth() - t.height(99).innerWidth();
12384            return e.remove(), o;
12385          }),
12386          H.support.fixedPosition === p &&
12387            (H.support.fixedPosition =
12388              ((o = H('<div style="position:fixed;top:20px;"></div>').appendTo(
12389                "body"
12390              )),
12391              (n = 20 === o[0].offsetTop || 15 === o[0].offsetTop),
12392              o.remove(),
12393              n)),
12394          H.extend(M.defaults, {
12395            scrollbarWidth: H.scrollbarWidth(),
12396            fixed: H.support.fixedPosition,
12397            parent: H("body"),
12398          }),
12399          (e = H(i).width()),
12400          s.addClass("fancybox-lock-test"),
12401          (t = H(i).width()),
12402          s.removeClass("fancybox-lock-test"),
12403          H(
12404            "<style type='text/css'>.fancybox-margin{margin-right:" +
12405              (t - e) +
12406              "px;}</style>"
12407          ).appendTo("head");
12408      });
12409  })(window, document, jQuery),
12410  "function" != typeof Object.create &&
12411    (Object.create = function (e) {
12412      function t() {}
12413      return (t.prototype = e), new t();
12414    }),
12415  (function (l) {
12416    var o = {
12417      init: function (e, t) {
12418        var o = this;
12419        (o.elem = t),
12420          (o.$elem = l(t)),
12421          (o.imageSrc = o.$elem.data("zoom-image")
12422            ? o.$elem.data("zoom-image")
12423            : o.$elem.attr("src")),
12424          (o.options = l.extend({}, l.fn.elevateZoom.options, e)),
12425          o.options.tint &&
12426            ((o.options.lensColour = "none"), (o.options.lensOpacity = "1")),
12427          "inner" == o.options.zoomType && (o.options.showLens = !1),
12428          o.$elem.parent().removeAttr("title").removeAttr("alt"),
12429          (o.zoomImage = o.imageSrc),
12430          o.refresh(1),
12431          l("#" + o.options.gallery + " a").click(function (e) {
12432            return (
12433              o.options.galleryActiveClass &&
12434                (l("#" + o.options.gallery + " a").removeClass(
12435                  o.options.galleryActiveClass
12436                ),
12437                l(this).addClass(o.options.galleryActiveClass)),
12438              e.preventDefault(),
12439              l(this).data("zoom-image")
12440                ? (o.zoomImagePre = l(this).data("zoom-image"))
12441                : (o.zoomImagePre = l(this).data("image")),
12442              o.swaptheimage(l(this).data("image"), o.zoomImagePre),
12443              !1
12444            );
12445          });
12446      },
12447      refresh: function (e) {
12448        var t = this;
12449        setTimeout(function () {
12450          t.fetch(t.imageSrc);
12451        }, e || t.options.refresh);
12452      },
12453      fetch: function (e) {
12454        var t = this,
12455          o = new Image();
12456        (o.onload = function () {
12457          (t.largeWidth = o.width),
12458            (t.largeHeight = o.height),
12459            t.startZoom(),
12460            (t.currentImage = t.imageSrc),
12461            t.options.onZoomedImageLoaded(t.$elem);
12462        }),
12463          (o.src = e);
12464      },
12465      startZoom: function () {
12466        var e,
12467          o = this;
12468        (o.nzWidth = o.$elem.width()),
12469          (o.nzHeight = o.$elem.height()),
12470          (o.isWindowActive = !1),
12471          (o.isLensActive = !1),
12472          (o.isTintActive = !1),
12473          (o.overWindow = !1),
12474          o.options.imageCrossfade &&
12475            ((o.zoomWrap = o.$elem.wrap(
12476              '<div style="height:' +
12477                o.nzHeight +
12478                "px;
12478width:" +
12479                o.nzWidth +
12480                'px;" class="zoomWrapper" />'
12481            )),
12482            o.$elem.css("position", "absolute")),
12483          (o.zoomLock = 1),
12484          (o.scrollingLock = !1),
12485          (o.changeBgSize = !1),
12486          (o.currentZoomLevel = o.options.zoomLevel),
12487          (o.nzOffset = o.$elem.offset()),
12488          (o.widthRatio = o.largeWidth / o.currentZoomLevel / o.nzWidth),
12489          (o.heightRatio = o.largeHeight / o.currentZoomLevel / o.nzHeight),
12490          "window" == o.options.zoomType &&
12491            (o.zoomWindowStyle =
12492              "overflow: hidden;background-position: 0px 0px;text-align:center;background-color: " +
12493              String(o.options.zoomWindowBgColour) +
12494              ";width: " +
12495              String(o.options.zoomWindowWidth) +
12496              "px;height: " +
12497              String(o.options.zoomWindowHeight) +
12498              "px;float: left;background-size: " +
12499              o.largeWidth / o.currentZoomLevel +
12500              "px " +
12501              o.largeHeight / o.currentZoomLevel +
12502              "px;display: none;z-index:100;border: " +
12503              String(o.options.borderSize) +
12504              "px solid " +
12505              o.options.borderColour +
12506              ";background-repeat: no-repeat;position: absolute;"),
12507          "inner" == o.options.zoomType &&
12508            ((e = o.$elem.css("border-left-width")),
12509            (o.zoomWindowStyle =
12510              "overflow: hidden;margin-left: " +
12511              String(e) +
12512              ";margin-top: " +
12513              String(e) +
12514              ";background-position: 0px 0px;width: " +
12515              String(o.nzWidth) +
12516              "px;height: " +
12517              String(o.nzHeight) +
12518              "px;px;float: left;display: none;cursor:" +
12519              o.options.cursor +
12520              ";px solid " +
12521              o.options.borderColour +
12522              ";background-repeat: no-repeat;position: absolute;")),
12523          "window" == o.options.zoomType &&
12524            ((lensHeight =
12525              o.nzHeight < o.options.zoomWindowWidth / o.widthRatio
12526                ? o.nzHeight
12527                : String(o.options.zoomWindowHeight / o.heightRatio)),
12528            (lensWidth =
12529              o.largeWidth < o.options.zoomWindowWidth
12530                ? o.nzWidth
12531                : o.options.zoomWindowWidth / o.widthRatio),
12532            (o.lensStyle =
12533              "background-position: 0px 0px;width: " +
12534              String(o.options.zoomWindowWidth / o.widthRatio) +
12535              "px;height: " +
12536              String(o.options.zoomWindowHeight / o.heightRatio) +
12537              "px;float: right;display: none;overflow: hidden;z-index: 999;-webkit-transform: translateZ(0);opacity:" +
12538              o.options.lensOpacity +
12539              ";filter: alpha(opacity = " +
12540              100 * o.options.lensOpacity +
12541              "); zoom:1;
12541width:" +
12542              lensWidth +
12543              "px;height:" +
12544              lensHeight +
12545              "px;background-color:" +
12546              o.options.lensColour +
12547              ";cursor:" +
12548              o.options.cursor +
12549              ";border: " +
12550              o.options.lensBorderSize +
12551              "px solid " +
12552              o.options.lensBorderColour +
12553              ";background-repeat: no-repeat;position: absolute;")),
12554          (o.tintStyle =
12555            "display: block;position: absolute;background-color: " +
12556            o.options.tintColour +
12557            ";filter:alpha(opacity=0);opacity: 0;width: " +
12558            o.nzWidth +
12559            "px;height: " +
12560            o.nzHeight +
12561            "px;"),
12562          (o.lensRound = ""),
12563          "lens" == o.options.zoomType &&
12564            (o.lensStyle =
12565              "background-position: 0px 0px;float: left;display: none;border: " +
12566              String(o.options.borderSize) +
12567              "px solid " +
12568              o.options.borderColour +
12569              ";width:" +
12570              String(o.options.lensSize) +
12571              "px;height:" +
12572              String(o.options.lensSize) +
12573              "px;background-repeat: no-repeat;position: absolute;"),
12574          "round" == o.options.lensShape &&
12575            (o.lensRound =
12576              "border-top-left-radius: " +
12577              String(o.options.lensSize / 2 + o.options.borderSize) +
12578              "px;border-top-right-radius: " +
12579              String(o.options.lensSize / 2 + o.options.borderSize) +
12580              "px;border-bottom-left-radius: " +
12581              String(o.options.lensSize / 2 + o.options.borderSize) +
12582              "px;border-bottom-right-radius: " +
12583              String(o.options.lensSize / 2 + o.options.borderSize) +
12584              "px;"),
12585          (o.zoomContainer = l(
12586            '<div class="zoomContainer" style="-webkit-transform: translateZ(0);position:absolute;left:' +
12587              o.nzOffset.left +
12588              "px;top:" +
12589              o.nzOffset.top +
12590              "px;height:" +
12591              o.nzHeight +
12592              "px;width:" +
12593              o.nzWidth +
12594              'px;"></div>'
12595          )),
12596          l("body").append(o.zoomContainer),
12597          o.options.containLensZoom &&
12598            "lens" == o.options.zoomType &&
12599            o.zoomContainer.css("overflow", "hidden"),
12600          "inner" != o.options.zoomType &&
12601            ((o.zoomLens = l(
12602              "<div class='zoomLens' style='" +
12603                o.lensStyle +
12604                o.lensRound +
12605                "'>&nbsp;</div>"
12606            )
12607              .appendTo(o.zoomContainer)
12608              .click(function () {
12609                o.$elem.trigger("click");
12610              })),
12611            o.options.tint &&
12612              ((o.tintContainer = l("<div/>").addClass("tintContainer")),
12613              (o.zoomTint = l(
12614                "<div class='zoomTint' style='" + o.tintStyle + "'></div>"
12615              )),
12616              o.zoomLens.wrap(o.tintContainer),
12617              (o.zoomTintcss = o.zoomLens.after(o.zoomTint)),
12618              (o.zoomTintImage = l(
12619                '<img style="position: absolute; left: 0px; top: 0px; max-width: none; width: ' +
12620                  o.nzWidth +
12621                  "px; height: " +
12622                  o.nzHeight +
12623                  'px;" src="' +
12624                  o.imageSrc +
12625                  '">'
12626              )
12627                .appendTo(o.zoomLens)
12628                .click(function () {
12629                  o.$elem.trigger("click");
12630                })))),
12631          isNaN(o.options.zoomWindowPosition)
12632            ? (o.zoomWindow = l(
12633                "<div style='z-index:999;left:" +
12634                  o.windowOffsetLeft +
12635                  "px;top:" +
12636                  o.windowOffsetTop +
12637                  "px;" +
12638                  o.zoomWindowStyle +
12639                  "' class='zoomWindow'>&nbsp;</div>"
12640              )
12641                .appendTo("body")
12642                .click(function () {
12643                  o.$elem.trigger("click");
12644                }))
12645            : (o.zoomWindow = l(
12646                "<div style='z-index:999;left:" +
12647                  o.windowOffsetLeft +
12648                  "px;top:" +
12649                  o.windowOffsetTop +
12650                  "px;" +
12651                  o.zoomWindowStyle +
12652                  "' class='zoomWindow'>&nbsp;</div>"
12653              )
12654                .appendTo(o.zoomContainer)
12655                .click(function () {
12656                  o.$elem.trigger("click");
12657                })),
12658          (o.zoomWindowContainer = l("<div/>")
12659            .addClass("zoomWindowContainer")
12660            .css("width", o.options.zoomWindowWidth)),
12661          o.zoomWindow.wrap(o.zoomWindowContainer),
12662          "lens" == o.options.zoomType &&
12663            o.zoomLens.css({ backgroundImage: "url('" + o.imageSrc + "')" }),
12664          "window" == o.options.zoomType &&
12665            o.zoomWindow.css({ backgroundImage: "url('" + o.imageSrc + "')" }),
12666          "inner" == o.options.zoomType &&
12667            o.zoomWindow.css({ backgroundImage: "url('" + o.imageSrc + "')" }),
12668          o.$elem.bind("touchmove", function (e) {
12669            e.preventDefault();
12670            var t =
12671              e.originalEvent.touches[0] || e.originalEvent.changedTouches[0];
12672            o.setPosition(t);
12673          }),
12674          o.zoomContainer.bind("touchmove", function (e) {
12675            "inner" == o.options.zoomType && o.showHideWindow("show"),
12676              e.preventDefault();
12677            var t =
12678              e.originalEvent.touches[0] || e.originalEvent.changedTouches[0];
12679            o.setPosition(t);
12680          }),
12681          o.zoomContainer.bind("touchend", function (e) {
12682            o.showHideWindow("hide"),
12683              o.options.showLens && o.showHideLens("hide"),
12684              o.options.tint &&
12685                "inner" != o.options.zoomType &&
12686                o.showHideTint("hide");
12687          }),
12688          o.$elem.bind("touchend", function (e) {
12689            o.showHideWindow("hide"),
12690              o.options.showLens && o.showHideLens("hide"),
12691              o.options.tint &&
12692                "inner" != o.options.zoomType &&
12693                o.showHideTint("hide");
12694          }),
12695          o.options.showLens &&
12696            (o.zoomLens.bind("touchmove", function (e) {
12697              e.preventDefault();
12698              var t =
12699                e.originalEvent.touches[0] || e.originalEvent.changedTouches[0];
12700              o.setPosition(t);
12701            }),
12702            o.zoomLens.bind("touchend", function (e) {
12703              o.showHideWindow("hide"),
12704                o.options.showLens && o.showHideLens("hide"),
12705                o.options.tint &&
12706                  "inner" != o.options.zoomType &&
12707                  o.showHideTint("hide");
12708            })),
12709          o.$elem.bind("mousemove", function (e) {
12710            0 == o.overWindow && o.setElements("show"),
12711              (o.lastX === e.clientX && o.lastY === e.clientY) ||
12712                (o.setPosition(e), (o.currentLoc = e)),
12713              (o.lastX = e.clientX),
12714              (o.lastY = e.clientY);
12715          }),
12716          o.zoomContainer.bind("mousemove", function (e) {
12717            0 == o.overWindow && o.setElements("show"),
12718              (o.lastX === e.clientX && o.lastY === e.clientY) ||
12719                (o.setPosition(e), (o.currentLoc = e)),
12720              (o.lastX = e.clientX),
12721              (o.lastY = e.clientY);
12722          }),
12723          "inner" != o.options.zoomType &&
12724            o.zoomLens.bind("mousemove", function (e) {
12725              (o.lastX === e.clientX && o.lastY === e.clientY) ||
12726                (o.setPosition(e), (o.currentLoc = e)),
12727                (o.lastX = e.clientX),
12728                (o.lastY = e.clientY);
12729            }),
12730          o.options.tint &&
12731            "inner" != o.options.zoomType &&
12732            o.zoomTint.bind("mousemove", function (e) {
12733              (o.lastX === e.clientX && o.lastY === e.clientY) ||
12734                (o.setPosition(e), (o.currentLoc = e)),
12735                (o.lastX = e.clientX),
12736                (o.lastY = e.clientY);
12737            }),
12738          "inner" == o.options.zoomType &&
12739            o.zoomWindow.bind("mousemove", function (e) {
12740              (o.lastX === e.clientX && o.lastY === e.clientY) ||
12741                (o.setPosition(e), (o.currentLoc = e)),
12742                (o.lastX = e.clientX),
12743                (o.lastY = e.clientY);
12744            }),
12745          o.zoomContainer
12746            .add(o.$elem)
12747            .mouseenter(function () {
12748              0 == o.overWindow && o.setElements("show");
12749            })
12750            .mouseleave(function () {
12751              o.scrollLock ||
12752                (o.setElements("hide"), o.options.onDestroy(o.$elem));
12753            }),
12754          "inner" != o.options.zoomType &&
12755            o.zoomWindow
12756              .mouseenter(function () {
12757                (o.overWindow = !0), o.setElements("hide");
12758              })
12759              .mouseleave(function () {
12760                o.overWindow = !1;
12761              }),
12762          o.options.zoomLevel,
12763          o.options.minZoomLevel
12764            ? (o.minZoomLevel = o.options.minZoomLevel)
12765            : (o.minZoomLevel = 2 * o.options.scrollZoomIncrement),
12766          o.options.scrollZoom &&
12767            o.zoomContainer
12768              .add(o.$elem)
12769              .bind(
12770                "mousewheel DOMMouseScroll MozMousePixelScroll",
12771                function (e) {
12772                  (o.scrollLock = !0),
12773                    clearTimeout(l.data(this, "timer")),
12774                    l.data(
12775                      this,
12776                      "timer",
12777                      setTimeout(function () {
12778                        o.scrollLock = !1;
12779                      }, 250)
12780                    );
12781                  var t =
12782                    e.originalEvent.wheelDelta || -1 * e.originalEvent.detail;
12783                  return (
12784                    e.stopImmediatePropagation(),
12785                    e.stopPropagation(),
12786                    e.preventDefault(),
12787                    0 < t / 120
12788                      ? o.currentZoomLevel >= o.minZoomLevel &&
12789                        o.changeZoomLevel(
12790                          o.currentZoomLevel - o.options.scrollZoomIncrement
12791                        )
12792                      : (!o.options.maxZoomLevel ||
12793                          o.currentZoomLevel <= o.options.maxZoomLevel) &&
12794                        o.changeZoomLevel(
12795                          parseFloat(o.currentZoomLevel) +
12796                            o.options.scrollZoomIncrement
12797                        ),
12798                    !1
12799                  );
12800                }
12801              );
12802      },
12803      setElements: function (e) {
12804        var t = this;
12805        if (!t.options.zoomEnabled) return !1;
12806        "show" == e &&
12807          t.isWindowSet &&
12808          ("inner" == t.options.zoomType && t.showHideWindow("show"),
12809          "window" == t.options.zoomType && t.showHideWindow("show"),
12810          t.options.showLens && t.showHideLens("show"),
12811          t.options.tint &&
12812            "inner" != t.options.zoomType &&
12813            t.showHideTint("show")),
12814          "hide" == e &&
12815            ("window" == t.options.zoomType && t.showHideWindow("hide"),
12816            t.options.tint || t.showHideWindow("hide"),
12817            t.options.showLens && t.showHideLens("hide"),
12818            t.options.tint && t.showHideTint("hide"));
12819      },
12820      setPosition: function (e) {
12821        var t = this;
12822        if (!t.options.zoomEnabled) return !1;
12823        (t.nzHeight = t.$elem.height()),
12824          (t.nzWidth = t.$elem.width()),
12825          (t.nzOffset = t.$elem.offset()),
12826          t.options.tint &&
12827            "inner" != t.options.zoomType &&
12828            (t.zoomTint.css({ top: 0 }), t.zoomTint.css({ left: 0 })),
12829          t.options.responsive &&
12830            !t.options.scrollZoom &&
12831            t.options.showLens &&
12832            ((lensHeight =
12833              t.nzHeight < t.options.zoomWindowWidth / t.widthRatio
12834                ? t.nzHeight
12835                : String(t.options.zoomWindowHeight / t.heightRatio)),
12836            (lensWidth =
12837              t.largeWidth < t.options.zoomWindowWidth
12838                ? t.nzWidth
12839                : t.options.zoomWindowWidth / t.widthRatio),
12840            (t.widthRatio = t.largeWidth / t.nzWidth),
12841            (t.heightRatio = t.largeHeight / t.nzHeight),
12842            "lens" != t.options.zoomType &&
12843              ((lensHeight =
12844                t.nzHeight < t.options.zoomWindowWidth / t.widthRatio
12845                  ? t.nzHeight
12846                  : String(t.options.zoomWindowHeight / t.heightRatio)),
12847              (lensWidth =
12848                t.nzWidth < t.options.zoomWindowHeight / t.heightRatio
12849                  ? t.nzWidth
12850                  : String(t.options.zoomWindowWidth / t.widthRatio)),
12851              t.zoomLens.css("width", lensWidth),
12852              t.zoomLens.css("height", lensHeight),
12853              t.options.tint &&
12854                (t.zoomTintImage.css("width", t.nzWidth),
12855                t.zoomTintImage.css("height", t.nzHeight))),
12856            "lens" == t.options.zoomType &&
12857              t.zoomLens.css({
12858                width: String(t.options.lensSize) + "px",
12859                height: String(t.options.lensSize) + "px",
12860              })),
12861          t.zoomContainer.css({ top: t.nzOffset.top }),
12862          t.zoomContainer.css({ left: t.nzOffset.left }),
12863          (t.mouseLeft = parseInt(e.pageX - t.nzOffset.left)),
12864          (t.mouseTop = parseInt(e.pageY - t.nzOffset.top)),
12865          "window" == t.options.zoomType &&
12866            ((t.Etoppos = t.mouseTop < t.zoomLens.height() / 2),
12867            (t.Eboppos =
12868              t.mouseTop >
12869              t.nzHeight -
12870                t.zoomLens.height() / 2 -
12871                2 * t.options.lensBorderSize),
12872            (t.Eloppos = t.mouseLeft < 0 + t.zoomLens.width() / 2),
12873            (t.Eroppos =
12874              t.mouseLeft >
12875              t.nzWidth -
12876                t.zoomLens.width() / 2 -
12877                2 * t.options.lensBorderSize)),
12878          "inner" == t.options.zoomType &&
12879            ((t.Etoppos = t.mouseTop < t.nzHeight / 2 / t.heightRatio),
12880            (t.Eboppos =
12881              t.mouseTop > t.nzHeight - t.nzHeight / 2 / t.heightRatio),
12882            (t.Eloppos = t.mouseLeft < 0 + t.nzWidth / 2 / t.widthRatio),
12883            (t.Eroppos =
12884              t.mouseLeft >
12885              t.nzWidth -
12886                t.nzWidth / 2 / t.widthRatio -
12887                2 * t.options.lensBorderSize)),
12888          t.mouseLeft < 0 ||
12889          t.mouseTop < 0 ||
12890          t.mouseLeft > t.nzWidth ||
12891          t.mouseTop > t.nzHeight
12892            ? t.setElements("hide")
12893            : (t.options.showLens &&
12894                ((t.lensLeftPos = String(
12895                  Math.floor(t.mouseLeft - t.zoomLens.width() / 2)
12896                )),
12897                (t.lensTopPos = String(
12898                  Math.floor(t.mouseTop - t.zoomLens.height() / 2)
12899                ))),
12900              t.Etoppos && (t.lensTopPos = 0),
12901              t.Eloppos &&
12902                ((t.windowLeftPos = 0), (t.lensLeftPos = 0), (t.tintpos = 0)),
12903              "window" == t.options.zoomType &&
12904                (t.Eboppos &&
12905                  (t.lensTopPos = Math.max(
12906                    t.nzHeight -
12907                      t.zoomLens.height() -
12908                      2 * t.options.lensBorderSize,
12909                    0
12910                  )),
12911                t.Eroppos &&
12912                  (t.lensLeftPos =
12913                    t.nzWidth -
12914                    t.zoomLens.width() -
12915                    2 * t.options.lensBorderSize)),
12916              "inner" == t.options.zoomType &&
12917                (t.Eboppos &&
12918                  (t.lensTopPos = Math.max(
12919                    t.nzHeight - 2 * t.options.lensBorderSize,
12920                    0
12921                  )),
12922                t.Eroppos &&
12923                  (t.lensLeftPos =
12924                    t.nzWidth - t.nzWidth - 2 * t.options.lensBorderSize)),
12925              "lens" == t.options.zoomType &&
12926                ((t.windowLeftPos = String(
12927                  -1 *
12928                    ((e.pageX - t.nzOffset.left) * t.widthRatio -
12929                      t.zoomLens.width() / 2)
12930                )),
12931                (t.windowTopPos = String(
12932                  -1 *
12933                    ((e.pageY - t.nzOffset.top) * t.heightRatio -
12934                      t.zoomLens.height() / 2)
12935                )),
12936                t.zoomLens.css({
12937                  backgroundPosition:
12938                    t.windowLeftPos + "px " + t.windowTopPos + "px",
12939                }),
12940                t.changeBgSize &&
12941                  (t.nzHeight > t.nzWidth
12942                    ? ("lens" == t.options.zoomType &&
12943                        t.zoomLens.css({
12944                          "background-size":
12945                            t.largeWidth / t.newvalueheight +
12946                            "px " +
12947                            t.largeHeight / t.newvalueheight +
12948                            "px",
12949                        }),
12950                      t.zoomWindow.css({
12951                        "background-size":
12952                          t.largeWidth / t.newvalueheight +
12953                          "px " +
12954                          t.largeHeight / t.newvalueheight +
12955                          "px",
12956                      }))
12957                    : ("lens" == t.options.zoomType &&
12958                        t.zoomLens.css({
12959                          "background-size":
12960                            t.largeWidth / t.newvaluewidth +
12961                            "px " +
12962                            t.largeHeight / t.newvaluewidth +
12963                            "px",
12964                        }),
12965                      t.zoomWindow.css({
12966                        "background-size":
12967                          t.largeWidth / t.newvaluewidth +
12968                          "px " +
12969                          t.largeHeight / t.newvaluewidth +
12970                          "px",
12971                      })),
12972                  (t.changeBgSize = !1)),
12973                t.setWindowPostition(e)),
12974              t.options.tint &&
12975                "inner" != t.options.zoomType &&
12976                t.setTintPosition(e),
12977              "window" == t.options.zoomType && t.setWindowPostition(e),
12978              "inner" == t.options.zoomType && t.setWindowPostition(e),
12979              t.options.showLens &&
12980                (t.fullwidth &&
12981                  "lens" != t.options.zoomType &&
12982                  (t.lensLeftPos = 0),
12983                t.zoomLens.css({
12984                  left: t.lensLeftPos + "px",
12985                  top: t.lensTopPos + "px",
12986                })));
12987      },
12988      showHideWindow: function (e) {
12989        var t = this;
12990        "show" == e &&
12991          (t.isWindowActive ||
12992            (t.options.zoomWindowFadeIn
12993              ? t.zoomWindow.stop(!0, !0, !1).fadeIn(t.options.zoomWindowFadeIn)
12994              : t.zoomWindow.show(),
12995            (t.isWindowActive = !0))),
12996          "hide" == e &&
12997            t.isWindowActive &&
12998            (t.options.zoomWindowFadeOut
12999              ? t.zoomWindow
13000                  .stop(!0, !0)
13001                  .fadeOut(t.options.zoomWindowFadeOut, function () {
13002                    t.loop && (clearInterval(t.loop), (t.loop = !1));
13003                  })
13004              : t.zoomWindow.hide(),
13005            (t.isWindowActive = !1));
13006      },
13007      showHideLens: function (e) {
13008        var t = this;
13009        "show" == e &&
13010          (t.isLensActive ||
13011            (t.options.lensFadeIn
13012              ? t.zoomLens.stop(!0, !0, !1).fadeIn(t.options.lensFadeIn)
13013              : t.zoomLens.show(),
13014            (t.isLensActive = !0))),
13015          "hide" == e &&
13016            t.isLensActive &&
13017            (t.options.lensFadeOut
13018              ? t.zoomLens.stop(!0, !0).fadeOut(t.options.lensFadeOut)
13019              : t.zoomLens.hide(),
13020            (t.isLensActive = !1));
13021      },
13022      showHideTint: function (e) {
13023        var t = this;
13024        "show" == e &&
13025          (t.isTintActive ||
13026            (t.options.zoomTintFadeIn
13027              ? t.zoomTint
13028                  .css({ opacity: t.options.tintOpacity })
13029                  .animate()
13030                  .stop(!0, !0)
13031                  .fadeIn("slow")
13032              : (t.zoomTint.css({ opacity: t.options.tintOpacity }).animate(),
13033                t.zoomTint.show()),
13034            (t.isTintActive = !0))),
13035          "hide" == e &&
13036            t.isTintActive &&
13037            (t.options.zoomTintFadeOut
13038              ? t.zoomTint.stop(!0, !0).fadeOut(t.options.zoomTintFadeOut)
13039              : t.zoomTint.hide(),
13040            (t.isTintActive = !1));
13041      },
13042      setLensPostition: function (e) {},
13043      setWindowPostition: function (e) {
13044        var t = this;
13045        if (isNaN(t.options.zoomWindowPosition))
13046          (t.externalContainer = l("#" + t.options.zoomWindowPosition)),
13047            (t.externalContainerWidth = t.externalContainer.width()),
13048            (t.externalContainerHeight = t.externalContainer.height()),
13049            (t.externalContainerOffset = t.externalContainer.offset()),
13050            (t.windowOffsetTop = t.externalContainerOffset.top),
13051            (t.windowOffsetLeft = t.externalContainerOffset.left);
13052        else
13053          switch (t.options.zoomWindowPosition) {
13054            case 1:
13055              (t.windowOffsetTop = t.options.zoomWindowOffety),
13056                (t.windowOffsetLeft = +t.nzWidth);
13057              break;
13058            case 2:
13059              t.options.zoomWindowHeight > t.nzHeight &&
13060                ((t.windowOffsetTop =
13061                  -1 * (t.options.zoomWindowHeight / 2 - t.nzHeight / 2)),
13062                (t.windowOffsetLeft = t.nzWidth));
13063              break;
13064            case 3:
13065              (t.windowOffsetTop =
13066                t.nzHeight - t.zoomWindow.height() - 2 * t.options.borderSize),
13067                (t.windowOffsetLeft = t.nzWidth);
13068              break;
13069            case 4:
13070              (t.windowOffsetTop = t.nzHeight),
13071                (t.windowOffsetLeft = t.nzWidth);
13072              break;
13073            case 5:
13074              (t.windowOffsetTop = t.nzHeight),
13075                (t.windowOffsetLeft =
13076                  t.nzWidth - t.zoomWindow.width() - 2 * t.options.borderSize);
13077              break;
13078            case 6:
13079              t.options.zoomWindowHeight > t.nzHeight &&
13080                ((t.windowOffsetTop = t.nzHeight),
13081                (t.windowOffsetLeft =
13082                  -1 *
13083                  (t.options.zoomWindowWidth / 2 -
13084                    t.nzWidth / 2 +
13085                    2 * t.options.borderSize)));
13086              break;
13087            case 7:
13088              (t.windowOffsetTop = t.nzHeight), (t.windowOffsetLeft = 0);
13089              break;
13090            case 8:
13091              (t.windowOffsetTop = t.nzHeight),
13092                (t.windowOffsetLeft =
13093                  -1 * (t.zoomWindow.width() + 2 * t.options.borderSize));
13094              break;
13095            case 9:
13096              (t.windowOffsetTop =
13097                t.nzHeight - t.zoomWindow.height() - 2 * t.options.borderSize),
13098                (t.windowOffsetLeft =
13099                  -1 * (t.zoomWindow.width() + 2 * t.options.borderSize));
13100              break;
13101            case 10:
13102              t.options.zoomWindowHeight > t.nzHeight &&
13103                ((t.windowOffsetTop =
13104                  -1 * (t.options.zoomWindowHeight / 2 - t.nzHeight / 2)),
13105                (t.windowOffsetLeft =
13106                  -1 * (t.zoomWindow.width() + 2 * t.options.borderSize)));
13107              break;
13108            case 11:
13109              (t.windowOffsetTop = t.options.zoomWindowOffety),
13110                (t.windowOffsetLeft =
13111                  -1 * (t.zoomWindow.width() + 2 * t.options.borderSize));
13112              break;
13113            case 12:
13114              (t.windowOffsetTop =
13115                -1 * (t.zoomWindow.height() + 2 * t.options.borderSize)),
13116                (t.windowOffsetLeft =
13117                  -1 * (t.zoomWindow.width() + 2 * t.options.borderSize));
13118              break;
13119            case 13:
13120              (t.windowOffsetTop =
13121                -1 * (t.zoomWindow.height() + 2 * t.options.borderSize)),
13122                (t.windowOffsetLeft = 0);
13123              break;
13124            case 14:
13125              t.options.zoomWindowHeight > t.nzHeight &&
13126                ((t.windowOffsetTop =
13127                  -1 * (t.zoomWindow.height() + 2 * t.options.borderSize)),
13128                (t.windowOffsetLeft =
13129                  -1 *
13130                  (t.options.zoomWindowWidth / 2 -
13131                    t.nzWidth / 2 +
13132                    2 * t.options.borderSize)));
13133              break;
13134            case 15:
13135              (t.windowOffsetTop =
13136                -1 * (t.zoomWindow.height() + 2 * t.options.borderSize)),
13137                (t.windowOffsetLeft =
13138                  t.nzWidth - t.zoomWindow.width() - 2 * t.options.borderSize);
13139              break;
13140            case 16:
13141              (t.windowOffsetTop =
13142                -1 * (t.zoomWindow.height() + 2 * t.options.borderSize)),
13143                (t.windowOffsetLeft = t.nzWidth);
13144              break;
13145            default:
13146              (t.windowOffsetTop = t.options.zoomWindowOffety),
13147                (t.windowOffsetLeft = t.nzWidth);
13148          }
13149        (t.isWindowSet = !0),
13150          (t.windowOffsetTop = t.windowOffsetTop + t.options.zoomWindowOffety),
13151          (t.windowOffsetLeft =
13152            t.windowOffsetLeft + t.options.zoomWindowOffetx),
13153          t.zoomWindow.css({ top: t.windowOffsetTop }),
13154          t.zoomWindow.css({ left: t.windowOffsetLeft }),
13155          "inner" == t.options.zoomType &&
13156            (t.zoomWindow.css({ top: 0 }), t.zoomWindow.css({ left: 0 })),
13157          (t.windowLeftPos = String(
13158            -1 *
13159              ((e.pageX - t.nzOffset.left) * t.widthRatio -
13160                t.zoomWindow.width() / 2)
13161          )),
13162          (t.windowTopPos = String(
13163            -1 *
13164              ((e.pageY - t.nzOffset.top) * t.heightRatio -
13165                t.zoomWindow.height() / 2)
13166          )),
13167          t.Etoppos && (t.windowTopPos = 0),
13168          t.Eloppos && (t.windowLeftPos = 0),
13169          t.Eboppos &&
13170            (t.windowTopPos =
13171              -1 *
13172              (t.largeHeight / t.currentZoomLevel - t.zoomWindow.height())),
13173          t.Eroppos &&
13174            (t.windowLeftPos =
13175              -1 * (t.largeWidth / t.currentZoomLevel - t.zoomWindow.width())),
13176          t.fullheight && (t.windowTopPos = 0),
13177          t.fullwidth && (t.windowLeftPos = 0),
13178          ("window" != t.options.zoomType && "inner" != t.options.zoomType) ||
13179            (1 == t.zoomLock &&
13180              (t.widthRatio <= 1 && (t.windowLeftPos = 0),
13181              t.heightRatio <= 1 && (t.windowTopPos = 0)),
13182            "window" == t.options.zoomType &&
13183              (t.largeHeight < t.options.zoomWindowHeight &&
13184                (t.windowTopPos = 0),
13185              t.largeWidth < t.options.zoomWindowWidth &&
13186                (t.windowLeftPos = 0)),
13187            t.options.easing
13188              ? (t.xp || (t.xp = 0),
13189                t.yp || (t.yp = 0),
13190                t.loop ||
13191                  (t.loop = setInterval(function () {
13192                    (t.xp += (t.windowLeftPos - t.xp) / t.options.easingAmou
13192nt),
13193                      (t.yp +=
13194                        (t.windowTopPos - t.yp) / t.options.easingAmount),
13195                      t.scrollingLock
13196                        ? (clearInterval(t.loop),
13197                          (t.xp = t.windowLeftPos),
13198                          (t.yp = t.windowTopPos),
13199                          (t.xp =
13200                            -1 *
13201                            ((e.pageX - t.nzOffset.left) * t.widthRatio -
13202                              t.zoomWindow.width() / 2)),
13203                          (t.yp =
13204                            -1 *
13205                            ((e.pageY - t.nzOffset.top) * t.heightRatio -
13206                              t.zoomWindow.height() / 2)),
13207                          t.changeBgSize &&
13208                            (t.nzHeight > t.nzWidth
13209                              ? ("lens" == t.options.zoomType &&
13210                                  t.zoomLens.css({
13211                                    "background-size":
13212                                      t.largeWidth / t.newvalueheight +
13213                                      "px " +
13214                                      t.largeHeight / t.newvalueheight +
13215                                      "px",
13216                                  }),
13217                                t.zoomWindow.css({
13218                                  "background-size":
13219                                    t.largeWidth / t.newvalueheight +
13220                                    "px " +
13221                                    t.largeHeight / t.newvalueheight +
13222                                    "px",
13223                                }))
13224                              : ("lens" != t.options.zoomType &&
13225                                  t.zoomLens.css({
13226                                    "background-size":
13227                                      t.largeWidth / t.newvaluewidth +
13228                                      "px " +
13229                                      t.largeHeight / t.newvalueheight +
13230                                      "px",
13231                                  }),
13232                                t.zoomWindow.css({
13233                                  "background-size":
13234                                    t.largeWidth / t.newvaluewidth +
13235                                    "px " +
13236                                    t.largeHeight / t.newvaluewidth +
13237                                    "px",
13238                                })),
13239                            (t.changeBgSize = !1)),
13240                          t.zoomWindow.css({
13241                            backgroundPosition:
13242                              t.windowLeftPos + "px " + t.windowTopPos + "px",
13243                          }),
13244                          (t.scrollingLock = !1),
13245                          (t.loop = !1))
13246                        : Math.round(
13247                            Math.abs(t.xp - t.windowLeftPos) +
13248                              Math.abs(t.yp - t.windowTopPos)
13249                          ) < 1
13250                        ? (clearInterval(t.loop),
13251                          t.zoomWindow.css({
13252                            backgroundPosition:
13253                              t.windowLeftPos + "px " + t.windowTopPos + "px",
13254                          }),
13255                          (t.loop = !1))
13256                        : (t.changeBgSize &&
13257                            (t.nzHeight > t.nzWidth
13258                              ? ("lens" == t.options.zoomType &&
13259                                  t.zoomLens.css({
13260                                    "background-size":
13261                                      t.largeWidth / t.newvalueheight +
13262                                      "px " +
13263                                      t.largeHeight / t.newvalueheight +
13264                                      "px",
13265                                  }),
13266                                t.zoomWindow.css({
13267                                  "background-size":
13268                                    t.largeWidth / t.newvalueheight +
13269                                    "px " +
13270                                    t.largeHeight / t.newvalueheight +
13271                                    "px",
13272                                }))
13273                              : ("lens" != t.options.zoomType &&
13274                                  t.zoomLens.css({
13275                                    "background-size":
13276                                      t.largeWidth / t.newvaluewidth +
13277                                      "px " +
13278                                      t.largeHeight / t.newvaluewidth +
13279                                      "px",
13280                                  }),
13281                                t.zoomWindow.css({
13282                                  "background-size":
13283                                    t.largeWidth / t.newvaluewidth +
13284                                    "px " +
13285                                    t.largeHeight / t.newvaluewidth +
13286                                    "px",
13287                                })),
13288                            (t.changeBgSize = !1)),
13289                          t.zoomWindow.css({
13290                            backgroundPosition: t.xp + "px " + t.yp + "px",
13291                          }));
13292                  }, 16)))
13293              : (t.changeBgSize &&
13294                  (t.nzHeight > t.nzWidth
13295                    ? ("lens" == t.options.zoomType &&
13296                        t.zoomLens.css({
13297                          "background-size":
13298                            t.largeWidth / t.newvalueheight +
13299                            "px " +
13300                            t.largeHeight / t.newvalueheight +
13301                            "px",
13302                        }),
13303                      t.zoomWindow.css({
13304                        "background-size":
13305                          t.largeWidth / t.newvalueheight +
13306                          "px " +
13307                          t.largeHeight / t.newvalueheight +
13308                          "px",
13309                      }))
13310                    : ("lens" == t.options.zoomType &&
13311                        t.zoomLens.css({
13312                          "background-size":
13313                            t.largeWidth / t.newvaluewidth +
13314                            "px " +
13315                            t.largeHeight / t.newvaluewidth +
13316                            "px",
13317                        }),
13318                      t.largeHeight / t.newvaluewidth <
13319                      t.options.zoomWindowHeight
13320                        ? t.zoomWindow.css({
13321                            "background-size":
13322                              t.largeWidth / t.newvaluewidth +
13323                              "px " +
13324                              t.largeHeight / t.newvaluewidth +
13325                              "px",
13326                          })
13327                        : t.zoomWindow.css({
13328                            "background-size":
13329                              t.largeWidth / t.newvalueheight +
13330                              "px " +
13331                              t.largeHeight / t.newvalueheight +
13332                              "px",
13333                          })),
13334                  (t.changeBgSize = !1)),
13335                t.zoomWindow.css({
13336                  backgroundPosition:
13337                    t.windowLeftPos + "px " + t.windowTopPos + "px",
13338                })));
13339      },
13340      setTintPosition: function (e) {
13341        var t = this;
13342        (t.nzOffset = t.$elem.offset()),
13343          (t.tintpos = String(
13344            -1 * (e.pageX - t.nzOffset.left - t.zoomLens.width() / 2)
13345          )),
13346          (t.tintposy = String(
13347            -1 * (e.pageY - t.nzOffset.top - t.zoomLens.height() / 2)
13348          )),
13349          t.Etoppos && (t.tintposy = 0),
13350          t.Eloppos && (t.tintpos = 0),
13351          t.Eboppos &&
13352            (t.tintposy =
13353              -1 *
13354              (t.nzHeight -
13355                t.zoomLens.height() -
13356                2 * t.options.lensBorderSize)),
13357          t.Eroppos &&
13358            (t.tintpos =
13359              -1 *
13360              (t.nzWidth - t.zoomLens.width() - 2 * t.options.lensBorderSize)),
13361          t.options.tint &&
13362            (t.fullheight && (t.tintposy = 0),
13363            t.fullwidth && (t.tintpos = 0),
13364            t.zoomTintImage.css({ left: t.tintpos + "px" }),
13365            t.zoomTintImage.css({ top: t.tintposy + "px" }));
13366      },
13367      swaptheimage: function (e, t) {
13368        var o = this,
13369          n = new Image();
13370        o.options.loadingIcon &&
13371          ((o.spinner = l(
13372            "<div style=\"background: url('" +
13373              o.options.loadingIcon +
13374              "') no-repeat center;height:" +
13375              o.nzHeight +
13376              "px;
13376width:" +
13377              o.nzWidth +
13378              'px;z-index: 2000;position: absolute; background-position: center center;"></div>'
13379          )),
13380          o.$elem.after(o.spinner)),
13381          o.options.onImageSwap(o.$elem),
13382          (n.onload = function () {
13383            (o.largeWidth = n.width),
13384              (o.largeHeight = n.height),
13385              (o.zoomImage = t),
13386              o.zoomWindow.css({
13387                "background-size": o.largeWidth + "px " + o.largeHeight + "px",
13388              }),
13389              o.swapAction(e, t);
13390          }),
13391          (n.src = t);
13392      },
13393      swapAction: function (e, t) {
13394        var o,
13395          n,
13396          i,
13397          s,
13398          r = this,
13399          a = new Image();
13400        (a.onload = function () {
13401          (r.nzHeight = a.height),
13402            (r.nzWidth = a.width),
13403            r.options.onImageSwapComplete(r.$elem),
13404            r.doneCallback();
13405        }),
13406          (a.src = e),
13407          (r.currentZoomLevel = r.options.zoomLevel),
13408          (r.options.maxZoomLevel = !1),
13409          "lens" == r.options.zoomType &&
13410            r.zoomLens.css({ backgroundImage: "url('" + t + "')" }),
13411          "window" == r.options.zoomType &&
13412            r.zoomWindow.css({ backgroundImage: "url('" + t + "')" }),
13413          "inner" == r.options.zoomType &&
13414            r.zoomWindow.css({ backgroundImage: "url('" + t + "')" }),
13415          (r.currentImage = t),
13416          r.options.imageCrossfade
13417            ? ((n = (o = r.$elem).clone()),
13418              r.$elem.attr("src", e),
13419              r.$elem.after(n),
13420              n.stop(!0).fadeOut(r.options.imageCrossfade, function () {
13421                l(this).remove();
13422              }),
13423              r.$elem.width("auto").removeAttr("width"),
13424              r.$elem.height("auto").removeAttr("height"),
13425              o.fadeIn(r.options.imageCrossfade),
13426              r.options.tint &&
13427                "inner" != r.options.zoomType &&
13428                ((s = (i = r.zoomTintImage).clone()),
13429                r.zoomTintImage.attr("src", t),
13430                r.zoomTintImage.after(s),
13431                s.stop(!0).fadeOut(r.options.imageCrossfade, function () {
13432                  l(this).remove();
13433                }),
13434                i.fadeIn(r.options.imageCrossfade),
13435                r.zoomTint.css({ height: r.$elem.height() }),
13436                r.zoomTint.css({ width: r.$elem.width() })),
13437              r.zoomContainer.css("height", r.$elem.height()),
13438              r.zoomContainer.css("width", r.$elem.width()),
13439              "inner" == r.options.zoomType &&
13440                (r.options.constrainType ||
13441                  (r.zoomWrap.parent().css("height", r.$elem.height()),
13442                  r.zoomWrap.parent().css("width", r.$elem.width()),
13443                  r.zoomWindow.css("height", r.$elem.height()),
13444                  r.zoomWindow.css("width", r.$elem.width()))))
13445            : (r.$elem.attr("src", e),
13446              r.options.tint &&
13447                (r.zoomTintImage.attr("src", t),
13448                r.zoomTintImage.attr("height", r.$elem.height()),
13449                r.zoomTintImage.css({ height: r.$elem.height() }),
13450                r.zoomTint.css({ height: r.$elem.height() })),
13451              r.zoomContainer.css("height", r.$elem.height()),
13452              r.zoomContainer.css("width", r.$elem.width())),
13453          r.options.imageCrossfade &&
13454            (r.zoomWrap.css("height", r.$elem.height()),
13455            r.zoomWrap.css("width", r.$elem.width())),
13456          r.options.constrainType &&
13457            ("height" == r.options.constrainType &&
13458              (r.zoomContainer.css("height", r.options.constrainSize),
13459              r.zoomContainer.css("width", "auto"),
13460              r.options.imageCrossfade
13461                ? (r.zoomWrap.css("height", r.options.constrainSize),
13462                  r.zoomWrap.css("width", "auto"),
13463                  (r.constwidth = r.zoomWrap.width()))
13464                : (r.$elem.css("height", r.options.constrainSize),
13465                  r.$elem.css("width", "auto"),
13466                  (r.constwidth = r.$elem.width())),
13467              "inner" == r.options.zoomType &&
13468                (r.zoomWrap.parent().css("height", r.options.constrainSize),
13469                r.zoomWrap.parent().css("width", r.constwidth),
13470                r.zoomWindow.css("height", r.options.constrainSize),
13471                r.zoomWindow.css("width", r.constwidth)),
13472              r.options.tint &&
13473                (r.tintContainer.css("height", r.options.constrainSize),
13474                r.tintContainer.css("width", r.constwidth),
13475                r.zoomTint.css("height", r.options.constrainSize),
13476                r.zoomTint.css("width", r.constwidth),
13477                r.zoomTintImage.css("height", r.options.constrainSize),
13478                r.zoomTintImage.css("width", r.constwidth))),
13479            "width" == r.options.constrainType &&
13480              (r.zoomContainer.css("height", "auto"),
13481              r.zoomContainer.css("width", r.options.constrainSize),
13482              r.options.imageCrossfade
13483                ? (r.zoomWrap.css("height", "auto"),
13484                  r.zoomWrap.css("width", r.options.constrainSize),
13485                  (r.constheight = r.zoomWrap.height()))
13486                : (r.$elem.css("height", "auto"),
13487                  r.$elem.css("width", r.options.constrainSize),
13488                  (r.constheight = r.$elem.height())),
13489              "inner" == r.options.zoomType &&
13490                (r.zoomWrap.parent().css("height", r.constheight),
13491                r.zoomWrap.parent().css("width", r.options.constrainSize),
13492                r.zoomWindow.css("height", r.constheight),
13493                r.zoomWindow.css("width", r.options.constrainSize)),
13494              r.options.tint &&
13495                (r.tintContainer.css("height", r.constheight),
13496                r.tintContainer.css("width", r.options.constrainSize),
13497                r.zoomTint.css("height", r.constheight),
13498                r.zoomTint.css("width", r.options.constrainSize),
13499                r.zoomTintImage.css("height", r.constheight),
13500                r.zoomTintImage.css("width", r.options.constrainSize))));
13501      },
13502      doneCallback: function () {
13503        var e = this;
13504        e.options.loadingIcon && e.spinner.hide(),
13505          (e.nzOffset = e.$elem.offset()),
13506          (e.nzWidth = e.$elem.width()),
13507          (e.nzHeight = e.$elem.height()),
13508          (e.currentZoomLevel = e.options.zoomLevel),
13509          (e.widthRatio = e.largeWidth / e.nzWidth),
13510          (e.heightRatio = e.largeHeight / e.nzHeight),
13511          "window" == e.options.zoomType &&
13512            ((lensHeight =
13513              e.nzHeight < e.options.zoomWindowWidth / e.widthRatio
13514                ? e.nzHeight
13515                : String(e.options.zoomWindowHeight / e.heightRatio)),
13516            (lensWidth =
13517              e.options.zoomWindowWidth < e.options.zoomWindowWidth
13518                ? e.nzWidth
13519                : e.options.zoomWindowWidth / e.widthRatio),
13520            e.zoomLens &&
13521              (e.zoomLens.css("width", lensWidth),
13522              e.zoomLens.css("height", lensHeight)));
13523      },
13524      getCurrentImage: function () {
13525        return this.zoomImage;
13526      },
13527      getGalleryList: function () {
13528        var t = this;
13529        return (
13530          (t.gallerylist = []),
13531          t.options.gallery
13532            ? l("#" + t.options.gallery + " a").each(function () {
13533                var e = "";
13534                l(this).data("zoom-image")
13535                  ? (e = l(this).data("zoom-image"))
13536                  : l(this).data("image") && (e = l(this).data("image")),
13537                  e == t.zoomImage
13538                    ? t.gallerylist.unshift({
13539                        href: "" + e,
13540                        title: l(this).find("img").attr("title"),
13541                      })
13542                    : t.gallerylist.push({
13543                        href: "" + e,
13544                        title: l(this).find("img").attr("title"),
13545                      });
13546              })
13547            : t.gallerylist.push({
13548                href: "" + t.zoomImage,
13549                title: l(this).find("img").attr("title"),
13550              }),
13551          t.gallerylist
13552        );
13553      },
13554      changeZoomLevel: function (e) {
13555        var t = this;
13556        (t.scrollingLock = !0),
13557          (t.newvalue = parseFloat(e).toFixed(2)),
13558          (newvalue = parseFloat(e).toFixed(2)),
13559          (maxheightnewvalue =
13560            t.largeHeight /
13561            ((t.options.zoomWindowHeight / t.nzHeight) * t.nzHeight)),
13562          (maxwidthtnewvalue =
13563            t.largeWidth /
13564            ((t.options.zoomWindowWidth / t.nzWidth) * t.nzWidth)),
13565          "inner" != t.options.zoomType &&
13566            (maxheightnewvalue <= newvalue
13567              ? ((t.heightRatio =
13568                  t.largeHeight / maxheightnewvalue / t.nzHeight),
13569                (t.newvalueheight = maxheightnewvalue),
13570                (t.fullheight = !0))
13571              : ((t.heightRatio = t.largeHeight / newvalue / t.nzHeight),
13572                (t.newvalueheight = newvalue),
13573                (t.fullheight = !1)),
13574            maxwidthtnewvalue <= newvalue
13575              ? ((t.widthRatio = t.largeWidth / maxwidthtnewvalue / t.nzWidth),
13576                (t.newvaluewidth = maxwidthtnewvalue),
13577                (t.fullwidth = !0))
13578              : ((t.widthRatio = t.largeWidth / newvalue / t.nzWidth),
13579                (t.newvaluewidth = newvalue),
13580                (t.fullwidth = !1)),
13581            "lens" == t.options.zoomType &&
13582              (maxheightnewvalue <= newvalue
13583                ? ((t.fullwidth = !0), (t.newvaluewidth = maxheightnewvalue))
13584                : ((t.widthRatio = t.largeWidth / newvalue / t.nzWidth),
13585                  (t.newvaluewidth = newvalue),
13586                  (t.fullwidth = !1)))),
13587          "inner" == t.options.zoomType &&
13588            ((maxheightnewvalue = parseFloat(
13589              t.largeHeight / t.nzHeight
13590            ).toFixed(2)),
13591            (maxwidthtnewvalue = parseFloat(t.largeWidth / t.nzWidth).toFixed(
13592              2
13593            )),
13594            newvalue > maxheightnewvalue && (newvalue = maxheightnewvalue),
13595            newvalue > maxwidthtnewvalue && (newvalue = maxwidthtnewvalue),
13596            maxheightnewvalue <= newvalue
13597              ? ((t.heightRatio = t.largeHeight / newvalue / t.nzHeight),
13598                newvalue > maxheightnewvalue
13599                  ? (t.newvalueheight = maxheightnewvalue)
13600                  : (t.newvalueheight = newvalue),
13601                (t.fullheight = !0))
13602              : ((t.heightRatio = t.largeHeight / newvalue / t.nzHeight),
13603                newvalue > maxheightnewvalue
13604                  ? (t.newvalueheight = maxheightnewvalue)
13605                  : (t.newvalueheight = newvalue),
13606                (t.fullheight = !1)),
13607            maxwidthtnewvalue <= newvalue
13608              ? ((t.widthRatio = t.largeWidth / newvalue / t.nzWidth),
13609                newvalue > maxwidthtnewvalue
13610                  ? (t.newvaluewidth = maxwidthtnewvalue)
13611                  : (t.newvaluewidth = newvalue),
13612                (t.fullwidth = !0))
13613              : ((t.widthRatio = t.largeWidth / newvalue / t.nzWidth),
13614                (t.newvaluewidth = newvalue),
13615                (t.fullwidth = !1))),
13616          (scrcontinue = !1),
13617          "inner" == t.options.zoomType &&
13618            (t.nzWidth >= t.nzHeight &&
13619              (t.newvaluewidth <= maxwidthtnewvalue
13620                ? (scrcontinue = !0)
13621                : ((scrcontinue = !1),
13622                  (t.fullheight = !0),
13623                  (t.fullwidth = !0))),
13624            t.nzHeight > t.nzWidth &&
13625              (t.newvaluewidth <= maxwidthtnewvalue
13626                ? (scrcontinue = !0)
13627                : ((scrcontinue = !1),
13628                  (t.fullheight = !0),
13629                  (t.fullwidth = !0)))),
13630          "inner" != t.options.zoomType && (scrcontinue = !0),
13631          scrcontinue &&
13632            ((t.zoomLock = 0),
13633            (t.changeZoom = !0),
13634            t.options.zoomWindowHeight / t.heightRatio <= t.nzHeight &&
13635              ((t.currentZoomLevel = t.newvalueheight),
13636              "lens" != t.options.zoomType &&
13637                "inner" != t.options.zoomType &&
13638                ((t.changeBgSize = !0),
13639                t.zoomLens.css({
13640                  height:
13641                    String(t.options.zoomWindowHeight / t.heightRatio) + "px",
13642                })),
13643              ("lens" != t.options.zoomType && "inner" != t.options.zoomType) ||
13644                (t.changeBgSize = !0)),
13645            t.options.zoomWindowWidth / t.widthRatio <= t.nzWidth &&
13646              ("inner" != t.options.zoomType &&
13647                t.newvaluewidth > t.newvalueheight &&
13648                (t.currentZoomLevel = t.newvaluewidth),
13649              "lens" != t.options.zoomType &&
13650                "inner" != t.options.zoomType &&
13651                ((t.changeBgSize = !0),
13652                t.zoomLens.css({
13653                  width:
13654                    String(t.options.zoomWindowWidth / t.widthRatio) + "px",
13655                })),
13656              ("lens" != t.options.zoomType && "inner" != t.options.zoomType) ||
13657                (t.changeBgSize = !0)),
13658            "inner" == t.options.zoomType &&
13659              ((t.changeBgSize = !0),
13660              t.nzWidth > t.nzHeight && (t.currentZoomLevel = t.newvaluewidth),
13661              t.nzHeight > t.nzWidth &&
13662                (t.currentZoomLevel = t.newvaluewidth))),
13663          t.setPosition(t.currentLoc);
13664      },
13665      closeAll: function () {
13666        self.zoomWindow && self.zoomWindow.hide(),
13667          self.zoomLens && self.zoomLens.hide(),
13668          self.zoomTint && self.zoomTint.hide();
13669      },
13670      changeState: function (e) {
13671        "enable" == e && (this.options.zoomEnabled = !0),
13672          "disable" == e && (this.options.zoomEnabled = !1);
13673      },
13674    };
13675    (l.fn.elevateZoom = function (t) {
13676      return this.each(function () {
13677        var e = Object.create(o);
13678        e.init(t, this), l.data(this, "elevateZoom", e);
13679      });
13680    }),
13681      (l.fn.elevateZoom.options = {
13682        zoomActivation: "hover",
13683        zoomEnabled: !0,
13684        preloading: 1,
13685        zoomLevel: 1,
13686        scrollZoom: !1,
13687        scrollZoomIncrement: 0.1,
13688        minZoomLevel: !1,
13689        maxZoomLevel: !1,
13690        easing: !1,
13691        easingAmount: 12,
13692        lensSize: 200,
13693        zoomWindowWidth: 400,
13694        zoomWindowHeight: 400,
13695        zoomWindowOffetx: 0,
13696        zoomWindowOffety: 0,
13697        zoomWindowPosition: 1,
13698        zoomWindowBgColour: "#fff",
13699        lensFadeIn: !1,
13700        lensFadeOut: !1,
13701        debug: !1,
13702        zoomWindowFadeIn: !1,
13703        zoomWindowFadeOut: !1,
13704        zoomWindowAlwaysShow: !1,
13705        zoomTintFadeIn: !1,
13706        zoomTintFadeOut: !1,
13707        borderSize: 4,
13708        showLens: !0,
13709        borderColour: "#888",
13710        lensBorderSize: 1,
13711        lensBorderColour: "#000",
13712        lensShape: "square",
13713        zoomType: "window",
13714        containLensZoom: !1,
13715        lensColour: "white",
13716        lensOpacity: 0.4,
13717        lenszoom: !1,
13718        tint: !1,
13719        tintColour: "#333",
13720        tintOpacity: 0.4,
13721        gallery: !1,
13722        galleryActiveClass: "zoomGalleryActive",
13723        imageCrossfade: !1,
13724        constrainType: !1,
13725        constrainSize: !1,
13726        loadingIcon: !1,
13727        cursor: "default",
13728        responsive: !0,
13729        onComplete: l.noop,
13730        onDestroy: function () {},
13731        onZoomedImageLoaded: function () {},
13732        onImageSwap: l.noop,
13733        onImageSwapComplete: l.noop,
13734      });
13735  })(jQuery, (window, document)),
13736  (function (f) {
13737    var n = {
13738      url: !1,
13739      callback: !1,
13740      target: !1,
13741      duration: 120,
13742      on: "mouseover",
13743      touch: !0,
13744      onZoomIn: !1,
13745      onZoomOut: !1,
13746      magnify: 1,
13747    };
13748    (f.zoom = function (e, t, n, o) {
13749      var i,
13750        s,
13751        r,
13752        a,
13753        l,
13754        c,
13755        d,
13756        u = f(e),
13757        p = u.css("position"),
13758        h = f(t);
13759      return (
13760        (e.style.position = /(absolute|fixed)/.test(p) ? p : "relative"),
13761        (e.style.overflow = "hidden"),
13762        (n.style.width = n.style.height = ""),
13763        f(n)
13764          .addClass("zoomImg")
13765          .css({
13766            position: "absolute",
13767            top: 0,
13768            left: 0,
13769            opacity: 0,
13770            width: n.width * o,
13771            height: n.height * o,
13772            border: "none",
13773            maxWidth: "none",
13774            maxHeight: "none",
13775          })
13776          .appendTo(e),
13777        {
13778          init: function () {
13779            (s = u.outerWidth()),
13780              (i = u.outerHeight()),
13781              (r =
13782                t === e
13783                  ? ((a = s), i)
13784                  : ((a = h.outerWidth()), h.outerHeight())),
13785              (l = (n.width - s) / a),
13786              (c = (n.height - i) / r),
13787              (d = h.offset());
13788          },
13789          move: function (e) {
13790            var t = e.pageX - d.left,
13791              o = e.pageY - d.top,
13792              o = Math.max(Math.min(o, r), 0),
13793              t = Math.max(Math.min(t, a), 0);
13794            (n.style.left = t * -l + "px"), (n.style.top = o * -c + "px");
13795          },
13796        }
13797      );
13798    }),
13799      (f.fn.zoom = function (o) {
13800        return this.each(function () {
13801          var i = f.extend({}, n, o || {}),
13802            s = (i.target && f(i.target)[0]) || this,
13803            e = this,
13804            r = f(e),
13805            a = document.createElement("img"),
13806            l = f(a),
13807            c = "mousemove.zoom",
13808            d = !1,
13809            u = !1;
13810          if (!i.url) {
13811            var t = e.querySelector("img");
13812            if (
13813              (t &&
13814                (i.url = t.getAttribute("data-src") || t.currentSrc || t.src),
13815              !i.url)
13816            )
13817              return;
13818          }
13819          r.one(
13820            "zoom.destroy",
13821            function (e, t) {
13822              r.off(".zoom"),
13823                (s.style.position = e),
13824                (s.style.overflow = t),
13825                (a.onload = null),
13826                l.remove();
13827            }.bind(this, s.style.position, s.style.overflow)
13828          ),
13829            (a.onload = function () {
13830              function t(e) {
13831                n.init(),
13832                  n.move(e),
13833                  l
13834                    .stop()
13835                    .fadeTo(
13836                      f.support.opacity ? i.duration : 0,
13837                      1,
13838                      !!f.isFunction(i.onZoomIn) && i.onZoomIn.call(a)
13839                    );
13840              }
13841              function o() {
13842                l.stop().fadeTo(
13843                  i.duration,
13844                  0,
13845                  !!f.isFunction(i.onZoomOut) && i.onZoomOut.call(a)
13846                );
13847              }
13848              var n = f.zoom(s, e, a, i.magnify);
13849              "grab" === i.on
13850                ? r.on("mousedown.zoom", function (e) {
13851                    1 === e.which &&
13852                      (f(document).one("mouseup.zoom", function () {
13853                        o(), f(document).off(c, n.move);
13854                      }),
13855                      t(e),
13856                      f(document).on(c, n.move),
13857                      e.preventDefault());
13858                  })
13859                : "click" === i.on
13860                ? r.on("click.zoom", function (e) {
13861                    return d
13862                      ? void 0
13863                      : ((d = !0),
13864                        t(e),
13865                        f(document).on(c, n.move),
13866                        f(document).one("click.zoom", function () {
13867                          o(), (d = !1), f(document).off(c, n.move);
13868                        }),
13869                        !1);
13870                  })
13871                : "toggle" === i.on
13872                ? r.on("click.zoom", function (e) {
13873                    d ? o() : t(e), (d = !d);
13874                  })
13875                : "mouseover" === i.on &&
13876                  (n.init(),
13877                  r
13878                    .on("mouseenter.zoom", t)
13879                    .on("mouseleave.zoom", o)
13880                    .on(c, n.move)),
13881                i.touch &&
13882                  r
13883                    .on("touchstart.zoom", function (e) {
13884                      e.preventDefault(),
13885                        u
13886                          ? ((u = !1), o())
13887                          : ((u = !0),
13888                            t(
13889                              e.originalEvent.touches[0] ||
13890                                e.originalEvent.changedTouches[0]
13891                            ));
13892                    })
13893                    .on("touchmove.zoom", function (e) {
13894                      e.preventDefault(),
13895                        n.move(
13896                          e.originalEvent.touches[0] ||
13897                            e.originalEvent.changedTouches[0]
13898                        );
13899                    })
13900                    .on("touchend.zoom", function (e) {
13901                      e.preventDefault(), u && ((u = !1), o());
13902                    }),
13903                f.isFunction(i.callback) && i.callback.call(a);
13904            }),
13905            a.setAttribute("role", "presentation"),
13906            (a.alt = ""),
13907            (a.src = i.url);
13908        });
13909      }),
13910      (f.fn.zoom.defaults = n);
13911  })(window.jQuery);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.