whoami7 - Manager
:
/
home
/
n170823s
/
.trash
/
assets.2
/
js
/
Upload File:
files >> /home/n170823s/.trash/assets.2/js/app.min.js
/*! * Bootstrap v5.0.0-beta1 (https://getbootstrap.com/) * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) */ var DateFormatter; !function (e, t) { "object" == typeof exports && "undefined" != typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define(t) : (e = "undefined" != typeof globalThis ? globalThis : e || self).bootstrap = t() }(this, (function () { "use strict"; function e(e, t) { for (var i = 0; i < t.length; i++) { var n = t[i]; n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(e, n.key, n) } } function t(t, i, n) { return i && e(t.prototype, i), n && e(t, n), t } function i() { return (i = Object.assign || function (e) { for (var t = 1; t < arguments.length; t++) { var i = arguments[t]; for (var n in i) Object.prototype.hasOwnProperty.call(i, n) && (e[n] = i[n]) } return e }).apply(this, arguments) } function n(e, t) { e.prototype = Object.create(t.prototype), e.prototype.constructor = e, e.__proto__ = t } var r, s, o = function (e) { do { e += Math.floor(1e6 * Math.random()) } while (document.getElementById(e)); return e }, a = function (e) { var t = e.getAttribute("data-bs-target"); if (!t || "#" === t) { var i = e.getAttribute("href"); t = i && "#" !== i ? i.trim() : null } return t }, l = function (e) { var t = a(e); return t && document.querySelector(t) ? t : null }, u = function (e) { var t = a(e); return t ? document.querySelector(t) : null }, c = function (e) { if (!e) return 0; var t = window.getComputedStyle(e), i = t.transitionDuration, n = t.transitionDelay, r = Number.parseFloat(i), s = Number.parseFloat(n); return r || s ? (i = i.split(",")[0], n = n.split(",")[0], 1e3 * (Number.parseFloat(i) + Number.parseFloat(n))) : 0 }, d = function (e) { e.dispatchEvent(new Event("transitionend")) }, p = function (e) { return (e[0] || e).nodeType }, f = function (e, t) { var i = !1, n = t + 5; e.addEventListener("transitionend", (function t() { i = !0, e.removeEventListener("transitionend", t) })), setTimeout((function () { i || d(e) }), n) }, h = function (e, t, i) { Object.keys(i).forEach((function (n) { var r, s = i[n], o = t[n], a = o && p(o) ? "element" : null == (r = o) ? "" + r : {}.toString.call(r).match(/\s([a-z]+)/i)[1].toLowerCase(); if (!new RegExp(s).test(a)) throw new Error(e.toUpperCase() + ': Option "' + n + '" provided type "' + a + '" but expected type "' + s + '".') })) }, m = function (e) { if (!e) return !1; if (e.style && e.parentNode && e.parentNode.style) { var t = getComputedStyle(e), i = getComputedStyle(e.parentNode); return "none" !== t.display && "none" !== i.display && "hidden" !== t.visibility } return !1 }, g = function () { return function () { } }, v = function (e) { return e.offsetHeight }, y = function () { var e = window.jQuery; return e && !document.body.hasAttribute("data-bs-no-jquery") ? e : null }, b = function (e) { "loading" === document.readyState ? document.addEventListener("DOMContentLoaded", e) : e() }, w = "rtl" === document.documentElement.dir, D = (r = {}, s = 1, { set: function (e, t, i) { void 0 === e.bsKey && (e.bsKey = { key: t, id: s }, s++), r[e.bsKey.id] = i }, get: function (e, t) { if (!e || void 0 === e.bsKey) return null; var i = e.bsKey; return i.key === t ? r[i.id] : null }, delete: function (e, t) { if (void 0 !== e.bsKey) { var i = e.bsKey; i.key === t && (delete r[i.id], delete e.bsKey) } } }), _ = function (e, t, i) { D.set(e, t, i) }, x = function (e, t) { return D.get(e, t) }, E = /[^.]*(?=\..*)\.|.*/, T = /\..*/, S = /::\d+$/, C = {}, M = 1, k = { mouseenter: "mouseover", mouseleave: "mouseout" }, O = new Set(["click", "dblclick", "mouseup", "mousedown", "contextmenu", "mousewheel", "DOMMouseScroll", "mouseover", "mouseout", "mousemove", "selectstart", "selectend", "keydown", "keypress", "keyup", "orientationchange", "touchstart", "touchmove", "touchend", "touchcancel", "pointerdown", "pointermove", "pointerup", "pointerleave", "pointercancel", "gesturestart", "gesturechange", "gestureend", "focus", "blur", "change", "reset", "select", "submit", "focusin", "focusout", "load", "unload", "beforeunload", "resize", "move", "DOMContentLoaded", "readystatechange", "error", "abort", "scroll"]); function A(e, t) { return t && t + "::" + M++ || e.uidEvent || M++ } function P(e) { var t = A(e); return e.uidEvent = t, C[t] = C[t] || {}, C[t] } function F(e, t, i) { void 0 === i && (i = null); for (var n = Object.keys(e), r = 0, s = n.length; r < s; r++) { var o = e[n[r]]; if (o.originalHandler === t && o.delegationSelector === i) return o } return null } function L(e, t, i) { var n = "string" == typeof t, r = n ? i : t, s = e.replace(T, ""), o = k[s]; return o && (s = o), O.has(s) || (s = e), [n, r, s] } function I(e, t, i, n, r) { if ("string" == typeof t && e) { i || (i = n, n = null); var s = L(t, i, n), o = s[0], a = s[1], l = s[2], u = P(e), c = u[l] || (u[l] = {}), d = F(c, a, o ? i : null); if (d) d.oneOff = d.oneOff && r; else { var p = A(a, t.replace(E, "")), f = o ? function (e, t, i) { return function n(r) { for (var s = e.querySelectorAll(t), o = r.target; o && o !== this; o = o.parentNode)for (var a = s.length; a--;)if (s[a] === o) return r.delegateTarget = o, n.oneOff && B.off(e, r.type, i), i.apply(o, [r]); return null } }(e, i, n) : function (e, t) { return function i(n) { return n.delegateTarget = e, i.oneOff && B.off(e, n.type, t), t.apply(e, [n]) } }(e, i); f.delegationSelector = o ? i : null, f.originalHandler = a, f.oneOff = r, f.uidEvent = p, c[p] = f, e.addEventListener(l, f, o) } } } function z(e, t, i, n, r) { var s = F(t[i], n, r); s && (e.removeEventListener(i, s, Boolean(r)), delete t[i][s.uidEvent]) } var B = { on: function (e, t, i, n) { I(e, t, i, n, !1) }, one: function (e, t, i, n) { I(e, t, i, n, !0) }, off: function (e, t, i, n) { if ("string" == typeof t && e) { var r = L(t, i, n), s = r[0], o = r[1], a = r[2], l = a !== t, u = P(e), c = t.startsWith("."); if (void 0 === o) { c && Object.keys(u).forEach((function (i) { !function (e, t, i, n) { var r = t[i] || {}; Object.keys(r).forEach((function (s) { if (s.includes(n)) { var o = r[s]; z(e, t, i, o.originalHandler, o.delegationSelector) } })) }(e, u, i, t.slice(1)) })); var d = u[a] || {}; Object.keys(d).forEach((function (i) { var n = i.replace(S, ""); if (!l || t.includes(n)) { var r = d[i]; z(e, u, a, r.originalHandler, r.delegationSelector) } })) } else { if (!u || !u[a]) return; z(e, u, a, o, s ? i : null) } } }, trigger: function (e, t, i) { if ("string" != typeof t || !e) return null; var n, r = y(), s = t.replace(T, ""), o = t !== s, a = O.has(s), l = !0, u = !0, c = !1, d = null; return o && r && (n = r.Event(t, i), r(e).trigger(n), l = !n.isPropagationStopped(), u = !n.isImmediatePropagationStopped(), c = n.isDefaultPrevented()), a ? (d = document.createEvent("HTMLEvents")).initEvent(s, l, !0) : d = new CustomEvent(t, { bubbles: l, cancelable: !0 }), void 0 !== i && Object.keys(i).forEach((function (e) { Object.defineProperty(d, e, { get: function () { return i[e] } }) })), c && d.preventDefault(), u && e.dispatchEvent(d), d.defaultPrevented && void 0 !== n && n.preventDefault(), d } }, W = function () { function e(e) { e && (this._element = e, _(e, this.constructor.DATA_KEY, this)) } return e.prototype.dispose = function () { (function (e, t) { D.delete(e, t) })(this._element, this.constructor.DATA_KEY), this._element = null }, e.getInstance = function (e) { return x(e, this.DATA_KEY) }, t(e, null, [{ key: "VERSION", get: function () { return "5.0.0-beta1" } }]), e }(), j = "alert", N = function (e) { function i() { return e.apply(this, arguments) || this } n(i, e); var r = i.prototype; return r.close = function (e) { var t = e ? this._getRootElement(e) : this._element, i = this._triggerCloseEvent(t); null === i || i.defaultPrevented || this._removeElement(t) }, r._getRootElement = function (e) { return u(e) || e.closest(".alert") }, r._triggerCloseEvent = function (e) { return B.trigger(e, "close.bs.alert") }, r._removeElement = function (e) { var t = this; if (e.classList.remove("show"), e.classList.contains("fade")) { var i = c(e); B.one(e, "transitionend", (function () { return t._destroyElement(e) })), f(e, i) } else this._destroyElement(e) }, r._destroyElement = function (e) { e.parentNode && e.parentNode.removeChild(e), B.trigger(e, "closed.bs.alert") }, i.jQueryInterface = function (e) { return this.each((function () { var t = x(this, "bs.alert"); t || (t = new i(this)), "close" === e && t[e](this) })) }, i.handleDismiss = function (e) { return function (t) { t && t.preventDefault(), e.close(this) } }, t(i, null, [{ key: "DATA_KEY", get: function () { return "bs.alert" } }]), i }(W); B.on(document, "click.bs.alert.data-api", '[data-bs-dismiss="alert"]', N.handleDismiss(new N)), b((function () { var e = y(); if (e) { var t = e.fn[j]; e.fn[j] = N.jQueryInterface, e.fn[j].Constructor = N, e.fn[j].noConflict = function () { return e.fn[j] = t, N.jQueryInterface } } })); var R = function (e) { function i() { return e.apply(this, arguments) || this } return n(i, e), i.prototype.toggle = function () { this._element.setAttribute("aria-pressed", this._element.classList.toggle("active")) }, i.jQueryInterface = function (e) { return this.each((function () { var t = x(this, "bs.button"); t || (t = new i(this)), "toggle" === e && t[e]() })) }, t(i, null, [{ key: "DATA_KEY", get: function () { return "bs.button" } }]), i }(W); function H(e) { return "true" === e || "false" !== e && (e === Number(e).toString() ? Number(e) : "" === e || "null" === e ? null : e) } function Y(e) { return e.replace(/[A-Z]/g, (function (e) { return "-" + e.toLowerCase() })) } B.on(document, "click.bs.button.data-api", '[data-bs-toggle="button"]', (function (e) { e.preventDefault(); var t = e.target.closest('[data-bs-toggle="button"]'), i = x(t, "bs.button"); i || (i = new R(t)), i.toggle() })), b((function () { var e = y(); if (e) { var t = e.fn.button; e.fn.button = R.jQueryInterface, e.fn.button.Constructor = R, e.fn.button.noConflict = function () { return e.fn.button = t, R.jQueryInterface } } })); var q = { setDataAttribute: function (e, t, i) { e.setAttribute("data-bs-" + Y(t), i) }, removeDataAttribute: function (e, t) { e.removeAttribute("data-bs-" + Y(t)) }, getDataAttributes: function (e) { if (!e) return {}; var t = {}; return Object.keys(e.dataset).filter((function (e) { return e.startsWith("bs") })).forEach((function (i) { var n = i.replace(/^bs/, ""); n = n.charAt(0).toLowerCase() + n.slice(1, n.length), t[n] = H(e.dataset[i]) })), t }, getDataAttribute: function (e, t) { return H(e.getAttribute("data-bs-" + Y(t))) }, offset: function (e) { var t = e.getBoundingClientRect(); return { top: t.top + document.body.scrollTop, left: t.left + document.body.scrollLeft } }, position: function (e) { return { top: e.offsetTop, left: e.offsetLeft } } }, X = { matches: function (e, t) { return e.matches(t) }, find: function (e, t) { var i; return void 0 === t && (t = document.documentElement), (i = []).concat.apply(i, Element.prototype.querySelectorAll.call(t, e)) }, findOne: function (e, t) { return void 0 === t && (t = document.documentElement), Element.prototype.querySelector.call(t, e) }, children: function (e, t) { var i; return (i = []).concat.apply(i, e.children).filter((function (e) { return e.matches(t) })) }, parents: function (e, t) { for (var i = [], n = e.parentNode; n && n.nodeType === Node.ELEMENT_NODE && 3 !== n.nodeType;)this.matches(n, t) && i.push(n), n = n.parentNode; return i }, prev: function (e, t) { for (var i = e.previousElementSibling; i;) { if (i.matches(t)) return [i]; i = i.previousElementSibling } return [] }, next: function (e, t) { for (var i = e.nextElementSibling; i;) { if (this.matches(i, t)) return [i]; i = i.nextElementSibling } return [] } }, G = "carousel", V = { interval: 5e3, keyboard: !0, slide: !1, pause: "hover", wrap: !0, touch: !0 }, $ = { interval: "(number|boolean)", keyboard: "boolean", slide: "(boolean|string)", pause: "(string|boolean)", wrap: "boolean", touch: "boolean" }, U = { TOUCH: "touch", PEN: "pen" }, Q = function (e) { function r(t, i) { var n; return (n = e.call(this, t) || this)._items = null, n._interval = null, n._activeElement = null, n._isPaused = !1, n._isSliding = !1, n.touchTimeout = null, n.touchStartX = 0, n.touchDeltaX = 0, n._config = n._getConfig(i), n._indicatorsElement = X.findOne(".carousel-indicators", n._element), n._touchSupported = "ontouchstart" in document.documentElement || navigator.maxTouchPoints > 0, n._pointerEvent = Boolean(window.PointerEvent), n._addEventListeners(), n } n(r, e); var s = r.prototype; return s.next = function () { this._isSliding || this._slide("next") }, s.nextWhenVisible = function () { !document.hidden && m(this._element) && this.next() }, s.prev = function () { this._isSliding || this._slide("prev") }, s.pause = function (e) { e || (this._isPaused = !0), X.findOne(".carousel-item-next, .carousel-item-prev", this._element) && (d(this._element), this.cycle(!0)), clearInterval(this._interval), this._interval = null }, s.cycle = function (e) { e || (this._isPaused = !1), this._interval && (clearInterval(this._interval), this._interval = null), this._config && this._config.interval && !this._isPaused && (this._updateInterval(), this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval)) }, s.to = function (e) { var t = this; this._activeElement = X.findOne(".active.carousel-item", this._element); var i = this._getItemIndex(this._activeElement); if (!(e > this._items.length - 1 || e < 0)) if (this._isSliding) B.one(this._element, "slid.bs.carousel", (function () { return t.to(e) })); else { if (i === e) return this.pause(), void this.cycle(); var n = e > i ? "next" : "prev"; this._slide(n, this._items[e]) } }, s.dispose = function () { e.prototype.dispose.call(this), B.off(this._element, ".bs.carousel"), this._items = null, this._config = null, this._interval = null, this._isPaused = null, this._isSliding = null, this._activeElement = null, this._indicatorsElement = null }, s._getConfig = function (e) { return e = i({}, V, e), h(G, e, $), e }, s._handleSwipe = function () { var e = Math.abs(this.touchDeltaX); if (!(e <= 40)) { var t = e / this.touchDeltaX; this.touchDeltaX = 0, t > 0 && this.prev(), t < 0 && this.next() } }, s._addEventListeners = function () { var e = this; this._config.keyboard && B.on(this._element, "keydown.bs.carousel", (function (t) { return e._keydown(t) })), "hover" === this._config.pause && (B.on(this._element, "mouseenter.bs.carousel", (function (t) { return e.pause(t) })), B.on(this._element, "mouseleave.bs.carousel", (function (t) { return e.cycle(t) }))), this._config.touch && this._touchSupported && this._addTouchEventListeners() }, s._addTouchEventListeners = function () { var e = this, t = function (t) { e._pointerEvent && U[t.pointerType.toUpperCase()] ? e.touchStartX = t.clientX : e._pointerEvent || (e.touchStartX = t.touches[0].clientX) }, i = function (t) { e._pointerEvent && U[t.pointerType.toUpperCase()] && (e.touchDeltaX = t.clientX - e.touchStartX), e._handleSwipe(), "hover" === e._config.pause && (e.pause(), e.touchTimeout && clearTimeout(e.touchTimeout), e.touchTimeout = setTimeout((function (t) { return e.cycle(t) }), 500 + e._config.interval)) }; X.find(".carousel-item img", this._element).forEach((function (e) { B.on(e, "dragstart.bs.carousel", (function (e) { return e.preventDefault() })) })), this._pointerEvent ? (B.on(this._element, "pointerdown.bs.carousel", (function (e) { return t(e) })), B.on(this._element, "pointerup.bs.carousel", (function (e) { return i(e) })), this._element.classList.add("pointer-event")) : (B.on(this._element, "touchstart.bs.carousel", (function (e) { return t(e) })), B.on(this._element, "touchmove.bs.carousel", (function (t) { return function (t) { t.touches && t.touches.length > 1 ? e.touchDeltaX = 0 : e.touchDeltaX = t.touches[0].clientX - e.touchStartX }(t) })), B.on(this._element, "touchend.bs.carousel", (function (e) { return i(e) }))) }, s._keydown = function (e) { if (!/input|textarea/i.test(e.target.tagName)) switch (e.key) { case "ArrowLeft": e.preventDefault(), this.prev(); break; case "ArrowRight": e.preventDefault(), this.next() } }, s._getItemIndex = function (e) { return this._items = e && e.parentNode ? X.find(".carousel-item", e.parentNode) : [], this._items.indexOf(e) }, s._getItemByDirection = function (e, t) { var i = "next" === e, n = "prev" === e, r = this._getItemIndex(t), s = this._items.length - 1; if ((n && 0 === r || i && r === s) && !this._config.wrap) return t; var o = (r + ("prev" === e ? -1 : 1)) % this._items.length; return -1 === o ? this._items[this._items.length - 1] : this._items[o] }, s._triggerSlideEvent = function (e, t) { var i = this._getItemIndex(e), n = this._getItemIndex(X.findOne(".active.carousel-item", this._element)); return B.trigger(this._element, "slide.bs.carousel", { relatedTarget: e, direction: t, from: n, to: i }) }, s._setActiveIndicatorElement = function (e) { if (this._indicatorsElement) { for (var t = X.find(".active", this._indicatorsElement), i = 0; i < t.length; i++)t[i].classList.remove("active"); var n = this._indicatorsElement.children[this._getItemIndex(e)]; n && n.classList.add("active") } }, s._updateInterval = function () { var e = this._activeElement || X.findOne(".active.carousel-item", this._element); if (e) { var t = Number.parseInt(e.getAttribute("data-bs-interval"), 10); t ? (this._config.defaultInterval = this._config.defaultInterval || this._config.interval, this._config.interval = t) : this._config.interval = this._config.defaultInterval || this._config.interval } }, s._slide = function (e, t) { var i, n, r, s = this, o = X.findOne(".active.carousel-item", this._element), a = this._getItemIndex(o), l = t || o && this._getItemByDirection(e, o), u = this._getItemIndex(l), d = Boolean(this._interval); if ("next" === e ? (i = "carousel-item-start", n = "carousel-item-next", r = "left") : (i = "carousel-item-end", n = "carousel-item-prev", r = "right"), l && l.classList.contains("active")) this._isSliding = !1; else if (!this._triggerSlideEvent(l, r).defaultPrevented && o && l) { if (this._isSliding = !0, d && this.pause(), this._setActiveIndicatorElement(l), this._activeElement = l, this._element.classList.contains("slide")) { l.classList.add(n), v(l), o.classList.add(i), l.classList.add(i); var p = c(o); B.one(o, "transitionend", (function () { l.classList.remove(i, n), l.classList.add("active"), o.classList.remove("active", n, i), s._isSliding = !1, setTimeout((function () { B.trigger(s._element, "slid.bs.carousel", { relatedTarget: l, direction: r, from: a, to: u }) }), 0) })), f(o, p) } else o.classList.remove("active"), l.classList.add("active"), this._isSliding = !1, B.trigger(this._element, "slid.bs.carousel", { relatedTarget: l, direction: r, from: a, to: u }); d && this.cycle() } }, r.carouselInterface = function (e, t) { var n = x(e, "bs.carousel"), s = i({}, V, q.getDataAttributes(e)); "object" == typeof t && (s = i({}, s, t)); var o = "string" == typeof t ? t : s.slide; if (n || (n = new r(e, s)), "number" == typeof t) n.to(t); else if ("string" == typeof o) { if (void 0 === n[o]) throw new TypeError('No method named "' + o + '"'); n[o]() } else s.interval && s.ride && (n.pause(), n.cycle()) }, r.jQueryInterface = function (e) { return this.each((function () { r.carouselInterface(this, e) })) }, r.dataApiClickHandler = function (e) { var t = u(this); if (t && t.classList.contains("carousel")) { var n = i({}, q.getDataAttributes(t), q.getDataAttributes(this)), s = this.getAttribute("data-bs-slide-to"); s && (n.interval = !1), r.carouselInterface(t, n), s && x(t, "bs.carousel").to(s), e.preventDefault() } }, t(r, null, [{ key: "Default", get: function () { return V } }, { key: "DATA_KEY", get: function () { return "bs.carousel" } }]), r }(W); B.on(document, "click.bs.carousel.data-api", "[data-bs-slide], [data-bs-slide-to]", Q.dataApiClickHandler), B.on(window, "load.bs.carousel.data-api", (function () { for (var e = X.find('[data-bs-ride="carousel"]'), t = 0, i = e.length; t < i; t++)Q.carouselInterface(e[t], x(e[t], "bs.carousel")) })), b((function () { var e = y(); if (e) { var t = e.fn[G]; e.fn[G] = Q.jQueryInterface, e.fn[G].Constructor = Q, e.fn[G].noConflict = function () { return e.fn[G] = t, Q.jQueryInterface } } })); var K = "collapse", J = { toggle: !0, parent: "" }, Z = { toggle: "boolean", parent: "(string|element)" }, ee = function (e) { function r(t, i) { var n; (n = e.call(this, t) || this)._isTransitioning = !1, n._config = n._getConfig(i), n._triggerArray = X.find('[data-bs-toggle="collapse"][href="#' + t.id + '"],[data-bs-toggle="collapse"][data-bs-target="#' + t.id + '"]'); for (var r = X.find('[data-bs-toggle="collapse"]'), s = 0, o = r.length; s < o; s++) { var a = r[s], u = l(a), c = X.find(u).filter((function (e) { return e === t })); null !== u && c.length && (n._selector = u, n._triggerArray.push(a)) } return n._parent = n._config.parent ? n._getParent() : null, n._config.parent || n._addAriaAndCollapsedClass(n._element, n._triggerArray), n._config.toggle && n.toggle(), n } n(r, e); var s = r.prototype; return s.toggle = function () { this._element.classList.contains("show") ? this.hide() : this.show() }, s.show = function () { var e = this; if (!this._isTransitioning && !this._element.classList.contains("show")) { var t, i; this._parent && 0 === (t = X.find(".show, .collapsing", this._parent).filter((function (t) { return "string" == typeof e._config.parent ? t.getAttribute("data-bs-parent") === e._config.parent : t.classList.contains("collapse") }))).length && (t = null); var n = X.findOne(this._selector); if (t) { var s = t.find((function (e) { return n !== e })); if ((i = s ? x(s, "bs.collapse") : null) && i._isTransitioning) return } if (!B.trigger(this._element, "show.bs.collapse").defaultPrevented) { t && t.forEach((function (e) { n !== e && r.collapseInterface(e, "hide"), i || _(e, "bs.collapse", null) })); var o = this._getDimension(); this._element.classList.remove("collapse"), this._element.classList.add("collapsing"), this._element.style[o] = 0, this._triggerArray.length && this._triggerArray.forEach((function (e) { e.classList.remove("collapsed"), e.setAttribute("aria-expanded", !0) })), this.setTransitioning(!0); var a = "scroll" + (o[0].toUpperCase() + o.slice(1)), l = c(this._element); B.one(this._element, "transitionend", (function () { e._element.classList.remove("collapsing"), e._element.classList.add("collapse", "show"), e._element.style[o] = "", e.setTransitioning(!1), B.trigger(e._element, "shown.bs.collapse") })), f(this._element, l), this._element.style[o] = this._element[a] + "px" } } }, s.hide = function () { var e = this; if (!this._isTransitioning && this._element.classList.contains("show") && !B.trigger(this._element, "hide.bs.collapse").defaultPrevented) { var t = this._getDimension(); this._element.style[t] = this._element.getBoundingClientRect()[t] + "px", v(this._element), this._element.classList.add("collapsing"), this._element.classList.remove("collapse", "show"); var i = this._triggerArray.length; if (i > 0) for (var n = 0; n < i; n++) { var r = this._triggerArray[n], s = u(r); s && !s.classList.contains("show") && (r.classList.add("collapsed"), r.setAttribute("aria-expanded", !1)) } this.setTransitioning(!0), this._element.style[t] = ""; var o = c(this._element); B.one(this._element, "transitionend", (function () { e.setTransitioning(!1), e._element.classList.remove("collapsing"), e._element.classList.add("collapse"), B.trigger(e._element, "hidden.bs.collapse") })), f(this._element, o) } }, s.setTransitioning = function (e) { this._isTransitioning = e }, s.dispose = function () { e.prototype.dispose.call(this), this._config = null, this._parent = null, this._triggerArray = null, this._isTransitioning = null }, s._getConfig = function (e) { return (e = i({}, J, e)).toggle = Boolean(e.toggle), h(K, e, Z), e }, s._getDimension = function () { return this._element.classList.contains("width") ? "width" : "height" }, s._getParent = function () { var e = this, t = this._config.parent; p(t) ? void 0 === t.jquery && void 0 === t[0] || (t = t[0]) : t = X.findOne(t); var i = '[data-bs-toggle="collapse"][data-bs-parent="' + t + '"]'; return X.find(i, t).forEach((function (t) { var i = u(t); e._addAriaAndCollapsedClass(i, [t]) })), t }, s._addAriaAndCollapsedClass = function (e, t) { if (e && t.length) { var i = e.classList.contains("show"); t.forEach((function (e) { i ? e.classList.remove("collapsed") : e.classList.add("collapsed"), e.setAttribute("aria-expanded", i) })) } }, r.collapseInterface = function (e, t) { var n = x(e, "bs.collapse"), s = i({}, J, q.getDataAttributes(e), "object" == typeof t && t ? t : {}); if (!n && s.toggle && "string" == typeof t && /show|hide/.test(t) && (s.toggle = !1), n || (n = new r(e, s)), "string" == typeof t) { if (void 0 === n[t]) throw new TypeError('No method named "' + t + '"'); n[t]() } }, r.jQueryInterface = function (e) { return this.each((function () { r.collapseInterface(this, e) })) }, t(r, null, [{ key: "Default", get: function () { return J } }, { key: "DATA_KEY", get: function () { return "bs.collapse" } }]), r }(W); B.on(document, "click.bs.collapse.data-api", '[data-bs-toggle="collapse"]', (function (e) { "A" === e.target.tagName && e.preventDefault(); var t = q.getDataAttributes(this), i = l(this); X.find(i).forEach((function (e) { var i, n = x(e, "bs.collapse"); n ? (null === n._parent && "string" == typeof t.parent && (n._config.parent = t.parent, n._parent = n._getParent()), i = "toggle") : i = t, ee.collapseInterface(e, i) })) })), b((function () { var e = y(); if (e) { var t = e.fn[K]; e.fn[K] = ee.jQueryInterface, e.fn[K].Constructor = ee, e.fn[K].noConflict = function () { return e.fn[K] = t, ee.jQueryInterface } } })); var te = "top", ie = "bottom", ne = "right", re = "left", se = [te, ie, ne, re], oe = se.reduce((function (e, t) { return e.concat([t + "-start", t + "-end"]) }), []), ae = [].concat(se, ["auto"]).reduce((function (e, t) { return e.concat([t, t + "-start", t + "-end"]) }), []), le = ["beforeRead", "read", "afterRead", "beforeMain", "main", "afterMain", "beforeWrite", "write", "afterWrite"]; function ue(e) { return e ? (e.nodeName || "").toLowerCase() : null } function ce(e) { if ("[object Window]" !== e.toString()) { var t = e.ownerDocument; return t && t.defaultView || window } return e } function de(e) { return e instanceof ce(e).Element || e instanceof Element } function pe(e) { return e instanceof ce(e).HTMLElement || e instanceof HTMLElement } var fe = { name: "applyStyles", enabled: !0, phase: "write", fn: function (e) { var t = e.state; Object.keys(t.elements).forEach((function (e) { var i = t.styles[e] || {}, n = t.attributes[e] || {}, r = t.elements[e]; pe(r) && ue(r) && (Object.assign(r.style, i), Object.keys(n).forEach((function (e) { var t = n[e]; !1 === t ? r.removeAttribute(e) : r.setAttribute(e, !0 === t ? "" : t) }))) })) }, effect: function (e) { var t = e.state, i = { popper: { position: t.options.strategy, left: "0", top: "0", margin: "0" }, arrow: { position: "absolute" }, reference: {} }; return Object.assign(t.elements.popper.style, i.popper), t.elements.arrow && Object.assign(t.elements.arrow.style, i.arrow), function () { Object.keys(t.elements).forEach((function (e) { var n = t.elements[e], r = t.attributes[e] || {}, s = Object.keys(t.styles.hasOwnProperty(e) ? t.styles[e] : i[e]).reduce((function (e, t) { return e[t] = "", e }), {}); pe(n) && ue(n) && (Object.assign(n.style, s), Object.keys(r).forEach((function (e) { n.removeAttribute(e) }))) })) } }, requires: ["computeStyles"] }; function he(e) { return e.split("-")[0] } function me(e) { return { x: e.offsetLeft, y: e.offsetTop, width: e.offsetWidth, height: e.offsetHeight } } function ge(e, t) { var i, n = t.getRootNode && t.getRootNode(); if (e.contains(t)) return !0; if (n && ((i = n) instanceof ce(i).ShadowRoot || i instanceof ShadowRoot)) { var r = t; do { if (r && e.isSameNode(r)) return !0; r = r.parentNode || r.host } while (r) } return !1 } function ve(e) { return ce(e).getComputedStyle(e) } function ye(e) { return ["table", "td", "th"].indexOf(ue(e)) >= 0 } function be(e) { return ((de(e) ? e.ownerDocument : e.document) || window.document).documentElement } function we(e) { return "html" === ue(e) ? e : e.assignedSlot || e.parentNode || e.host || be(e) } function De(e) { if (!pe(e) || "fixed" === ve(e).position) return null; var t = e.offsetParent; if (t) { var i = be(t); if ("body" === ue(t) && "static" === ve(t).position && "static" !== ve(i).position) return i } return t } function _e(e) { for (var t = ce(e), i = De(e); i && ye(i) && "static" === ve(i).position;)i = De(i); return i && "body" === ue(i) && "static" === ve(i).position ? t : i || function (e) { for (var t = we(e); pe(t) && ["html", "body"].indexOf(ue(t)) < 0;) { var i = ve(t); if ("none" !== i.transform || "none" !== i.perspective || i.willChange && "auto" !== i.willChange) return t; t = t.parentNode } return null }(e) || t } function xe(e) { return ["top", "bottom"].indexOf(e) >= 0 ? "x" : "y" } function Ee(e, t, i) { return Math.max(e, Math.min(t, i)) } function Te(e) { return Object.assign(Object.assign({}, { top: 0, right: 0, bottom: 0, left: 0 }), e) } function Se(e, t) { return t.reduce((function (t, i) { return t[i] = e, t }), {}) } var Ce = { name: "arrow", enabled: !0, phase: "main", fn: function (e) { var t, i = e.state, n = e.name, r = i.elements.arrow, s = i.modifiersData.popperOffsets, o = he(i.placement), a = xe(o), l = [re, ne].indexOf(o) >= 0 ? "height" : "width"; if (r && s) { var u = i.modifiersData[n + "#persistent"].padding, c = me(r), d = "y" === a ? te : re, p = "y" === a ? ie : ne, f = i.rects.reference[l] + i.rects.reference[a] - s[a] - i.rects.popper[l], h = s[a] - i.rects.reference[a], m = _e(r), g = m ? "y" === a ? m.clientHeight || 0 : m.clientWidth || 0 : 0, v = f / 2 - h / 2, y = u[d], b = g - c[l] - u[p], w = g / 2 - c[l] / 2 + v, D = Ee(y, w, b), _ = a; i.modifiersData[n] = ((t = {})[_] = D, t.centerOffset = D - w, t) } }, effect: function (e) { var t = e.state, i = e.options, n = e.name, r = i.element, s = void 0 === r ? "[data-popper-arrow]" : r, o = i.padding, a = void 0 === o ? 0 : o; null != s && ("string" != typeof s || (s = t.elements.popper.querySelector(s))) && ge(t.elements.popper, s) && (t.elements.arrow = s, t.modifiersData[n + "#persistent"] = { padding: Te("number" != typeof a ? a : Se(a, se)) }) }, requires: ["popperOffsets"], requiresIfExists: ["preventOverflow"] }, Me = { top: "auto", right: "auto", bottom: "auto", left: "auto" }; function ke(e) { var t, i = e.popper, n = e.popperRect, r = e.placement, s = e.offsets, o = e.position, a = e.gpuAcceleration, l = e.adaptive, u = function (e) { var t = e.x, i = e.y, n = window.devicePixelRatio || 1; return { x: Math.round(t * n) / n || 0, y: Math.round(i * n) / n || 0 } }(s), c = u.x, d = u.y, p = s.hasOwnProperty("x"), f = s.hasOwnProperty("y"), h = re, m = te, g = window; if (l) { var v = _e(i); v === ce(i) && (v = be(i)), r === te && (m = ie, d -= v.clientHeight - n.height, d *= a ? 1 : -1), r === re && (h = ne, c -= v.clientWidth - n.width, c *= a ? 1 : -1) } var y, b = Object.assign({ position: o }, l && Me); return a ? Object.assign(Object.assign({}, b), {}, ((y = {})[m] = f ? "0" : "", y[h] = p ? "0" : "", y.transform = (g.devicePixelRatio || 1) < 2 ? "translate(" + c + "px, " + d + "px)" : "translate3d(" + c + "px, " + d + "px, 0)", y)) : Object.assign(Object.assign({}, b), {}, ((t = {})[m] = f ? d + "px" : "", t[h] = p ? c + "px" : "", t.transform = "", t)) } var Oe = { name: "computeStyles", enabled: !0, phase: "beforeWrite", fn: function (e) { var t = e.state, i = e.options, n = i.gpuAcceleration, r = void 0 === n || n, s = i.adaptive, o = void 0 === s || s, a = { placement: he(t.placement), popper: t.elements.popper, popperRect: t.rects.popper, gpuAcceleration: r }; null != t.modifiersData.popperOffsets && (t.styles.popper = Object.assign(Object.assign({}, t.styles.popper), ke(Object.assign(Object.assign({}, a), {}, { offsets: t.modifiersData.popperOffsets, position: t.options.strategy, adaptive: o })))), null != t.modifiersData.arrow && (t.styles.arrow = Object.assign(Object.assign({}, t.styles.arrow), ke(Object.assign(Object.assign({}, a), {}, { offsets: t.modifiersData.arrow, position: "absolute", adaptive: !1 })))), t.attributes.popper = Object.assign(Object.assign({}, t.attributes.popper), {}, { "data-popper-placement": t.placement }) }, data: {} }, Ae = { passive: !0 }, Pe = { name: "eventListeners", enabled: !0, phase: "write", fn: function () { }, effect: function (e) { var t = e.state, i = e.instance, n = e.options, r = n.scroll, s = void 0 === r || r, o = n.resize, a = void 0 === o || o, l = ce(t.elements.popper), u = [].concat(t.scrollParents.reference, t.scrollParents.popper); return s && u.forEach((function (e) { e.addEventListener("scroll", i.update, Ae) })), a && l.addEventListener("resize", i.update, Ae), function () { s && u.forEach((function (e) { e.removeEventListener("scroll", i.update, Ae) })), a && l.removeEventListener("resize", i.update, Ae) } }, data: {} }, Fe = { left: "right", right: "left", bottom: "top", top: "bottom" }; function Le(e) { return e.replace(/left|right|bottom|top/g, (function (e) { return Fe[e] })) } var Ie = { start: "end", end: "start" }; function ze(e) { return e.replace(/start|end/g, (function (e) { return Ie[e] })) } function Be(e) { var t = e.getBoundingClientRect(); return { width: t.width, height: t.height, top: t.top, right: t.right, bottom: t.bottom, left: t.left, x: t.left, y: t.top } } function We(e) { var t = ce(e); return { scrollLeft: t.pageXOffset, scrollTop: t.pageYOffset } } function je(e) { return Be(be(e)).left + We(e).scrollLeft } function Ne(e) { var t = ve(e), i = t.overflow, n = t.overflowX, r = t.overflowY; return /auto|scroll|overlay|hidden/.test(i + r + n) } function Re(e, t) { void 0 === t && (t = []); var i = function e(t) { return ["html", "body", "#document"].indexOf(ue(t)) >= 0 ? t.ownerDocument.body : pe(t) && Ne(t) ? t : e(we(t)) }(e), n = "body" === ue(i), r = ce(i), s = n ? [r].concat(r.visualViewport || [], Ne(i) ? i : []) : i, o = t.concat(s); return n ? o : o.concat(Re(we(s))) } function He(e) { return Object.assign(Object.assign({}, e), {}, { left: e.x, top: e.y, right: e.x + e.width, bottom: e.y + e.height }) } function Ye(e, t) { return "viewport" === t ? He(function (e) { var t = ce(e), i = be(e), n = t.visualViewport, r = i.clientWidth, s = i.clientHeight, o = 0, a = 0; return n && (r = n.width, s = n.height, /^((?!chrome|android).)*safari/i.test(navigator.userAgent) || (o = n.offsetLeft, a = n.offsetTop)), { width: r, height: s, x: o + je(e), y: a } }(e)) : pe(t) ? function (e) { var t = Be(e); return t.top = t.top + e.clientTop, t.left = t.left + e.clientLeft, t.bottom = t.top + e.clientHeight, t.right = t.left + e.clientWidth, t.width = e.clientWidth, t.height = e.clientHeight, t.x = t.left, t.y = t.top, t }(t) : He(function (e) { var t = be(e), i = We(e), n = e.ownerDocument.body, r = Math.max(t.scrollWidth, t.clientWidth, n ? n.scrollWidth : 0, n ? n.clientWidth : 0), s = Math.max(t.scrollHeight, t.clientHeight, n ? n.scrollHeight : 0, n ? n.clientHeight : 0), o = -i.scrollLeft + je(e), a = -i.scrollTop; return "rtl" === ve(n || t).direction && (o += Math.max(t.clientWidth, n ? n.clientWidth : 0) - r), { width: r, height: s, x: o, y: a } }(be(e))) } function qe(e) { return e.split("-")[1] } function Xe(e) { var t, i = e.reference, n = e.element, r = e.placement, s = r ? he(r) : null, o = r ? qe(r) : null, a = i.x + i.width / 2 - n.width / 2, l = i.y + i.height / 2 - n.height / 2; switch (s) { case te: t = { x: a, y: i.y - n.height }; break; case ie: t = { x: a, y: i.y + i.height }; break; case ne: t = { x: i.x + i.width, y: l }; break; case re: t = { x: i.x - n.width, y: l }; break; default: t = { x: i.x, y: i.y } }var u = s ? xe(s) : null; if (null != u) { var c = "y" === u ? "height" : "width"; switch (o) { case "start": t[u] = Math.floor(t[u]) - Math.floor(i[c] / 2 - n[c] / 2); break; case "end": t[u] = Math.floor(t[u]) + Math.ceil(i[c] / 2 - n[c] / 2) } } return t } function Ge(e, t) { void 0 === t && (t = {}); var i = t, n = i.placement, r = void 0 === n ? e.placement : n, s = i.boundary, o = void 0 === s ? "clippingParents" : s, a = i.rootBoundary, l = void 0 === a ? "viewport" : a, u = i.elementContext, c = void 0 === u ? "popper" : u, d = i.altBoundary, p = void 0 !== d && d, f = i.padding, h = void 0 === f ? 0 : f, m = Te("number" != typeof h ? h : Se(h, se)), g = "popper" === c ? "reference" : "popper", v = e.elements.reference, y = e.rects.popper, b = e.elements[p ? g : c], w = function (e, t, i) { var n = "clippingParents" === t ? function (e) { var t = Re(we(e)), i = ["absolute", "fixed"].indexOf(ve(e).position) >= 0 && pe(e) ? _e(e) : e; return de(i) ? t.filter((function (e) { return de(e) && ge(e, i) && "body" !== ue(e) })) : [] }(e) : [].concat(t), r = [].concat(n, [i]), s = r[0], o = r.reduce((function (t, i) { var n = Ye(e, i); return t.top = Math.max(n.top, t.top), t.right = Math.min(n.right, t.right), t.bottom = Math.min(n.bottom, t.bottom), t.left = Math.max(n.left, t.left), t }), Ye(e, s)); return o.width = o.right - o.left, o.height = o.bottom - o.top, o.x = o.left, o.y = o.top, o }(de(b) ? b : b.contextElement || be(e.elements.popper), o, l), D = Be(v), _ = Xe({ reference: D, element: y, strategy: "absolute", placement: r }), x = He(Object.assign(Object.assign({}, y), _)), E = "popper" === c ? x : D, T = { top: w.top - E.top + m.top, bottom: E.bottom - w.bottom + m.bottom, left: w.left - E.left + m.left, right: E.right - w.right + m.right }, S = e.modifiersData.offset; if ("popper" === c && S) { var C = S[r]; Object.keys(T).forEach((function (e) { var t = [ne, ie].indexOf(e) >= 0 ? 1 : -1, i = [te, ie].indexOf(e) >= 0 ? "y" : "x"; T[e] += C[i] * t })) } return T } var Ve = { name: "flip", enabled: !0, phase: "main", fn: function (e) { var t = e.state, i = e.options, n = e.name; if (!t.modifiersData[n]._skip) { for (var r = i.mainAxis, s = void 0 === r || r, o = i.altAxis, a = void 0 === o || o, l = i.fallbackPlacements, u = i.padding, c = i.boundary, d = i.rootBoundary, p = i.altBoundary, f = i.flipVariations, h = void 0 === f || f, m = i.allowedAutoPlacements, g = t.options.placement, v = he(g), y = l || (v !== g && h ? function (e) { if ("auto" === he(e)) return []; var t = Le(e); return [ze(e), t, ze(t)] }(g) : [Le(g)]), b = [g].concat(y).reduce((function (e, i) { return e.concat("auto" === he(i) ? function (e, t) { void 0 === t && (t = {}); var i = t, n = i.placement, r = i.boundary, s = i.rootBoundary, o = i.padding, a = i.flipVariations, l = i.allowedAutoPlacements, u = void 0 === l ? ae : l, c = qe(n), d = c ? a ? oe : oe.filter((function (e) { return qe(e) === c })) : se, p = d.filter((function (e) { return u.indexOf(e) >= 0 })); 0 === p.length && (p = d); var f = p.reduce((function (t, i) { return t[i] = Ge(e, { placement: i, boundary: r, rootBoundary: s, padding: o })[he(i)], t }), {}); return Object.keys(f).sort((function (e, t) { return f[e] - f[t] })) }(t, { placement: i, boundary: c, rootBoundary: d, padding: u, flipVariations: h, allowedAutoPlacements: m }) : i) }), []), w = t.rects.reference, D = t.rects.popper, _ = new Map, x = !0, E = b[0], T = 0; T < b.length; T++) { var S = b[T], C = he(S), M = "start" === qe(S), k = [te, ie].indexOf(C) >= 0, O = k ? "width" : "height", A = Ge(t, { placement: S, boundary: c, rootBoundary: d, altBoundary: p, padding: u }), P = k ? M ? ne : re : M ? ie : te; w[O] > D[O] && (P = Le(P)); var F = Le(P), L = []; if (s && L.push(A[C] <= 0), a && L.push(A[P] <= 0, A[F] <= 0), L.every((function (e) { return e }))) { E = S, x = !1; break } _.set(S, L) } if (x) for (var I = function (e) { var t = b.find((function (t) { var i = _.get(t); if (i) return i.slice(0, e).every((function (e) { return e })) })); if (t) return E = t, "break" }, z = h ? 3 : 1; z > 0 && "break" !== I(z); z--); t.placement !== E && (t.modifiersData[n]._skip = !0, t.placement = E, t.reset = !0) } }, requiresIfExists: ["offset"], data: { _skip: !1 } }; function $e(e, t, i) { return void 0 === i && (i = { x: 0, y: 0 }), { top: e.top - t.height - i.y, right: e.right - t.width + i.x, bottom: e.bottom - t.height + i.y, left: e.left - t.width - i.x } } function Ue(e) { return [te, ne, ie, re].some((function (t) { return e[t] >= 0 })) } var Qe = { name: "hide", enabled: !0, phase: "main", requiresIfExists: ["preventOverflow"], fn: function (e) { var t = e.state, i = e.name, n = t.rects.reference, r = t.rects.popper, s = t.modifiersData.preventOverflow, o = Ge(t, { elementContext: "reference" }), a = Ge(t, { altBoundary: !0 }), l = $e(o, n), u = $e(a, r, s), c = Ue(l), d = Ue(u); t.modifiersData[i] = { referenceClippingOffsets: l, popperEscapeOffsets: u, isReferenceHidden: c, hasPopperEscaped: d }, t.attributes.popper = Object.assign(Object.assign({}, t.attributes.popper), {}, { "data-popper-reference-hidden": c, "data-popper-escaped": d }) } }, Ke = { name: "offset", enabled: !0, phase: "main", requires: ["popperOffsets"], fn: function (e) { var t = e.state, i = e.options, n = e.name, r = i.offset, s = void 0 === r ? [0, 0] : r, o = ae.reduce((function (e, i) { return e[i] = function (e, t, i) { var n = he(e), r = [re, te].indexOf(n) >= 0 ? -1 : 1, s = "function" == typeof i ? i(Object.assign(Object.assign({}, t), {}, { placement: e })) : i, o = s[0], a = s[1]; return o = o || 0, a = (a || 0) * r, [re, ne].indexOf(n) >= 0 ? { x: a, y: o } : { x: o, y: a } }(i, t.rects, s), e }), {}), a = o[t.placement], l = a.x, u = a.y; null != t.modifiersData.popperOffsets && (t.modifiersData.popperOffsets.x += l, t.modifiersData.popperOffsets.y += u), t.modifiersData[n] = o } }, Je = { name: "popperOffsets", enabled: !0, phase: "read", fn: function (e) { var t = e.state, i = e.name; t.modifiersData[i] = Xe({ reference: t.rects.reference, element: t.rects.popper, strategy: "absolute", placement: t.placement }) }, data: {} }, Ze = { name: "preventOverflow", enabled: !0, phase: "main", fn: function (e) { var t = e.state, i = e.options, n = e.name, r = i.mainAxis, s = void 0 === r || r, o = i.altAxis, a = void 0 !== o && o, l = i.boundary, u = i.rootBoundary, c = i.altBoundary, d = i.padding, p = i.tether, f = void 0 === p || p, h = i.tetherOffset, m = void 0 === h ? 0 : h, g = Ge(t, { boundary: l, rootBoundary: u, padding: d, altBoundary: c }), v = he(t.placement), y = qe(t.placement), b = !y, w = xe(v), D = "x" === w ? "y" : "x", _ = t.modifiersData.popperOffsets, x = t.rects.reference, E = t.rects.popper, T = "function" == typeof m ? m(Object.assign(Object.assign({}, t.rects), {}, { placement: t.placement })) : m, S = { x: 0, y: 0 }; if (_) { if (s) { var C = "y" === w ? te : re, M = "y" === w ? ie : ne, k = "y" === w ? "height" : "width", O = _[w], A = _[w] + g[C], P = _[w] - g[M], F = f ? -E[k] / 2 : 0, L = "start" === y ? x[k] : E[k], I = "start" === y ? -E[k] : -x[k], z = t.elements.arrow, B = f && z ? me(z) : { width: 0, height: 0 }, W = t.modifiersData["arrow#persistent"] ? t.modifiersData["arrow#persistent"].padding : { top: 0, right: 0, bottom: 0, left: 0 }, j = W[C], N = W[M], R = Ee(0, x[k], B[k]), H = b ? x[k] / 2 - F - R - j - T : L - R - j - T, Y = b ? -x[k] / 2 + F + R + N + T : I + R + N + T, q = t.elements.arrow && _e(t.elements.arrow), X = q ? "y" === w ? q.clientTop || 0 : q.clientLeft || 0 : 0, G = t.modifiersData.offset ? t.modifiersData.offset[t.placement][w] : 0, V = _[w] + H - G - X, $ = _[w] + Y - G, U = Ee(f ? Math.min(A, V) : A, O, f ? Math.max(P, $) : P); _[w] = U, S[w] = U - O } if (a) { var Q = "x" === w ? te : re, K = "x" === w ? ie : ne, J = _[D], Z = Ee(J + g[Q], J, J - g[K]); _[D] = Z, S[D] = Z - J } t.modifiersData[n] = S } }, requiresIfExists: ["offset"] }; function et(e, t, i) { void 0 === i && (i = !1); var n, r, s = be(t), o = Be(e), a = pe(t), l = { scrollLeft: 0, scrollTop: 0 }, u = { x: 0, y: 0 }; return (a || !a && !i) && (("body" !== ue(t) || Ne(s)) && (l = (n = t) !== ce(n) && pe(n) ? { scrollLeft: (r = n).scrollLeft, scrollTop: r.scrollTop } : We(n)), pe(t) ? ((u = Be(t)).x += t.clientLeft, u.y += t.clientTop) : s && (u.x = je(s))), { x: o.left + l.scrollLeft - u.x, y: o.top + l.scrollTop - u.y, width: o.width, height: o.height } } var tt = { placement: "bottom", modifiers: [], strategy: "absolute" }; function it() { for (var e = arguments.length, t = new Array(e), i = 0; i < e; i++)t[i] = arguments[i]; return !t.some((function (e) { return !(e && "function" == typeof e.getBoundingClientRect) })) } function nt(e) { void 0 === e && (e = {}); var t = e, i = t.defaultModifiers, n = void 0 === i ? [] : i, r = t.defaultOptions, s = void 0 === r ? tt : r; return function (e, t, i) { void 0 === i && (i = s); var r, o, a = { placement: "bottom", orderedModifiers: [], options: Object.assign(Object.assign({}, tt), s), modifiersData: {}, elements: { reference: e, popper: t }, attributes: {}, styles: {} }, l = [], u = !1, c = { state: a, setOptions: function (i) { d(), a.options = Object.assign(Object.assign(Object.assign({}, s), a.options), i), a.scrollParents = { reference: de(e) ? Re(e) : e.contextElement ? Re(e.contextElement) : [], popper: Re(t) }; var r, o, u = function (e) { var t = function (e) { var t = new Map, i = new Set, n = []; return e.forEach((function (e) { t.set(e.name, e) })), e.forEach((function (e) { i.has(e.name) || function e(r) { i.add(r.name), [].concat(r.requires || [], r.requiresIfExists || []).forEach((function (n) { if (!i.has(n)) { var r = t.get(n); r && e(r) } })), n.push(r) }(e) })), n }(e); return le.reduce((function (e, i) { return e.concat(t.filter((function (e) { return e.phase === i }))) }), []) }((r = [].concat(n, a.options.modifiers), o = r.reduce((function (e, t) { var i = e[t.name]; return e[t.name] = i ? Object.assign(Object.assign(Object.assign({}, i), t), {}, { options: Object.assign(Object.assign({}, i.options), t.options), data: Object.assign(Object.assign({}, i.data), t.data) }) : t, e }), {}), Object.keys(o).map((function (e) { return o[e] })))); return a.orderedModifiers = u.filter((function (e) { return e.enabled })), a.orderedModifiers.forEach((function (e) { var t = e.name, i = e.options, n = void 0 === i ? {} : i, r = e.effect; if ("function" == typeof r) { var s = r({ state: a, name: t, instance: c, options: n }); l.push(s || function () { }) } })), c.update() }, forceUpdate: function () { if (!u) { var e = a.elements, t = e.reference, i = e.popper; if (it(t, i)) { a.rects = { reference: et(t, _e(i), "fixed" === a.options.strategy), popper: me(i) }, a.reset = !1, a.placement = a.options.placement, a.orderedModifiers.forEach((function (e) { return a.modifiersData[e.name] = Object.assign({}, e.data) })); for (var n = 0; n < a.orderedModifiers.length; n++)if (!0 !== a.reset) { var r = a.orderedModifiers[n], s = r.fn, o = r.options, l = void 0 === o ? {} : o, d = r.name; "function" == typeof s && (a = s({ state: a, options: l, name: d, instance: c }) || a) } else a.reset = !1, n = -1 } } }, update: (r = function () { return new Promise((function (e) { c.forceUpdate(), e(a) })) }, function () { return o || (o = new Promise((function (e) { Promise.resolve().then((function () { o = void 0, e(r()) })) }))), o }), destroy: function () { d(), u = !0 } }; if (!it(e, t)) return c; function d() { l.forEach((function (e) { return e() })), l = [] } return c.setOptions(i).then((function (e) { !u && i.onFirstUpdate && i.onFirstUpdate(e) })), c } } var rt = nt(), st = nt({ defaultModifiers: [Pe, Je, Oe, fe] }), ot = nt({ defaultModifiers: [Pe, Je, Oe, fe, Ke, Ve, Ze, Ce, Qe] }), at = Object.freeze({ __proto__: null, popperGenerator: nt, detectOverflow: Ge, createPopperBase: rt, createPopper: ot, createPopperLite: st, top: te, bottom: ie, right: ne, left: re, auto: "auto", basePlacements: se, start: "start", end: "end", clippingParents: "clippingParents", viewport: "viewport", popper: "popper", reference: "reference", variationPlacements: oe, placements: ae, beforeRead: "beforeRead", read: "read", afterRead: "afterRead", beforeMain: "beforeMain", main: "main", afterMain: "afterMain", beforeWrite: "beforeWrite", write: "write", afterWrite: "afterWrite", modifierPhases: le, applyStyles: fe, arrow: Ce, computeStyles: Oe, eventListeners: Pe, flip: Ve, hide: Qe, offset: Ke, popperOffsets: Je, preventOverflow: Ze }), lt = "dropdown", ut = new RegExp("ArrowUp|ArrowDown|Escape"), ct = w ? "top-end" : "top-start", dt = w ? "top-start" : "top-end", pt = w ? "bottom-end" : "bottom-start", ft = w ? "bottom-start" : "bottom-end", ht = w ? "left-start" : "right-start", mt = w ? "right-start" : "left-start", gt = { offset: 0, flip: !0, boundary: "clippingParents", reference: "toggle", display: "dynamic", popperConfig: null }, vt = { offset: "(number|string|function)", flip: "boolean", boundary: "(string|element)", reference: "(string|element)", display: "string", popperConfig: "(null|object)" }, yt = function (e) { function r(t, i) { var n; return (n = e.call(this, t) || this)._popper = null, n._config = n._getConfig(i), n._menu = n._getMenuElement(), n._inNavbar = n._detectNavbar(), n._addEventListeners(), n } n(r, e); var s = r.prototype; return s.toggle = function () { if (!this._element.disabled && !this._element.classList.contains("disabled")) { var e = this._element.classList.contains("show"); r.clearMenus(), e || this.show() } }, s.show = function () { if (!(this._element.disabled || this._element.classList.contains("disabled") || this._menu.classList.contains("show"))) { var e = r.getParentFromElement(this._element), t = { relatedTarget: this._element }; if (!B.trigger(this._element, "show.bs.dropdown", t).defaultPrevented) { if (!this._inNavbar) { if (void 0 === at) throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)"); var i = this._element; "parent" === this._config.reference ? i = e : p(this._config.reference) && (i = this._config.reference, void 0 !== this._config.reference.jquery && (i = this._config.reference[0])), this._popper = ot(i, this._menu, this._getPopperConfig()) } var n; "ontouchstart" in document.documentElement && !e.closest(".navbar-nav") && (n = []).concat.apply(n, document.body.children).forEach((function (e) { return B.on(e, "mouseover", null, (function () { })) })), this._element.focus(), this._element.setAttribute("aria-expanded", !0), this._menu.classList.toggle("show"), this._element.classList.toggle("show"), B.trigger(e, "shown.bs.dropdown", t) } } }, s.hide = function () { if (!this._element.disabled && !this._element.classList.contains("disabled") && this._menu.classList.contains("show")) { var e = r.getParentFromElement(this._element), t = { relatedTarget: this._element }; B.trigger(e, "hide.bs.dropdown", t).defaultPrevented || (this._popper && this._popper.destroy(), this._menu.classList.toggle("show"), this._element.classList.toggle("show"), B.trigger(e, "hidden.bs.dropdown", t)) } }, s.dispose = function () { e.prototype.dispose.call(this), B.off(this._element, ".bs.dropdown"), this._menu = null, this._popper && (this._popper.destroy(), this._popper = null) }, s.update = function () { this._inNavbar = this._detectNavbar(), this._popper && this._popper.update() }, s._addEventListeners = function () { var e = this; B.on(this._element, "click.bs.dropdown", (function (t) { t.preventDefault(), t.stopPropagation(), e.toggle() })) }, s._getConfig = function (e) { return e = i({}, this.constructor.Default, q.getDataAttributes(this._element), e), h(lt, e, this.constructor.DefaultType), e }, s._getMenuElement = function () { return X.next(this._element, ".dropdown-menu")[0] }, s._getPlacement = function () { var e = this._element.parentNode; if (e.classList.contains("dropend")) return ht; if (e.classList.contains("dropstart")) return mt; var t = "end" === getComputedStyle(this._menu).getPropertyValue("--bs-position").trim(); return e.classList.contains("dropup") ? t ? dt : ct : t ? ft : pt }, s._detectNavbar = function () { return null !== this._element.closest(".navbar") }, s._getPopperConfig = function () { var e = { placement: this._getPlacement(), modifiers: [{ name: "preventOverflow", options: { altBoundary: this._config.flip, rootBoundary: this._config.boundary } }] }; return "static" === this._config.display && (e.modifiers = [{ name: "applyStyles", enabled: !1 }]), i({}, e, this._config.popperConfig) }, r.dropdownInterface = function (e, t) { var i = x(e, "bs.dropdown"); if (i || (i = new r(e, "object" == typeof t ? t : null)), "string" == typeof t) { if (void 0 === i[t]) throw new TypeError('No method named "' + t + '"'); i[t]() } }, r.jQueryInterface = function (e) { return this.each((function () { r.dropdownInterface(this, e) })) }, r.clearMenus = function (e) { if (!e || 2 !== e.button && ("keyup" !== e.type || "Tab" === e.key)) for (var t = X.find('[data-bs-toggle="dropdown"]'), i = 0, n = t.length; i < n; i++) { var s = r.getParentFromElement(t[i]), o = x(t[i], "bs.dropdown"), a = { relatedTarget: t[i] }; if (e && "click" === e.type && (a.clickEvent = e), o) { var l, u = o._menu; if (t[i].classList.contains("show") && !(e && ("click" === e.type && /input|textarea/i.test(e.target.tagName) || "keyup" === e.type && "Tab" === e.key) && u.contains(e.target) || B.trigger(s, "hide.bs.dropdown", a).defaultPrevented)) "ontouchstart" in document.documentElement && (l = []).concat.apply(l, document.body.children).forEach((function (e) { return B.off(e, "mouseover", null, (function () { })) })), t[i].setAttribute("aria-expanded", "false"), o._popper && o._popper.destroy(), u.classList.remove("show"), t[i].classList.remove("show"), B.trigger(s, "hidden.bs.dropdown", a) } } }, r.getParentFromElement = function (e) { return u(e) || e.parentNode }, r.dataApiKeydownHandler = function (e) { if (!(/input|textarea/i.test(e.target.tagName) ? "Space" === e.key || "Escape" !== e.key && ("ArrowDown" !== e.key && "ArrowUp" !== e.key || e.target.closest(".dropdown-menu")) : !ut.test(e.key)) && (e.preventDefault(), e.stopPropagation(), !this.disabled && !this.classList.contains("disabled"))) { var t = r.getParentFromElement(this), i = this.classList.contains("show"); if ("Escape" === e.key) return (this.matches('[data-bs-toggle="dropdown"]') ? this : X.prev(this, '[data-bs-toggle="dropdown"]')[0]).focus(), void r.clearMenus(); if (i && "Space" !== e.key) { var n = X.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)", t).filter(m); if (n.length) { var s = n.indexOf(e.target); "ArrowUp" === e.key && s > 0 && s--, "ArrowDown" === e.key && s < n.length - 1 && s++, n[s = -1 === s ? 0 : s].focus() } } else r.clearMenus() } }, t(r, null, [{ key: "Default", get: function () { return gt } }, { key: "DefaultType", get: function () { return vt } }, { key: "DATA_KEY", get: function () { return "bs.dropdown" } }]), r }(W); B.on(document, "keydown.bs.dropdown.data-api", '[data-bs-toggle="dropdown"]', yt.dataApiKeydownHandler), B.on(document, "keydown.bs.dropdown.data-api", ".dropdown-menu", yt.dataApiKeydownHandler), B.on(document, "click.bs.dropdown.data-api", yt.clearMenus), B.on(document, "keyup.bs.dropdown.data-api", yt.clearMenus), B.on(document, "click.bs.dropdown.data-api", '[data-bs-toggle="dropdown"]', (function (e) { e.preventDefault(), e.stopPropagation(), yt.dropdownInterface(this, "toggle") })), B.on(document, "click.bs.dropdown.data-api", ".dropdown form", (function (e) { return e.stopPropagation() })), b((function () { var e = y(); if (e) { var t = e.fn[lt]; e.fn[lt] = yt.jQueryInterface, e.fn[lt].Constructor = yt, e.fn[lt].noConflict = function () { return e.fn[lt] = t, yt.jQueryInterface } } })); var bt = { backdrop: !0, keyboard: !0, focus: !0 }, wt = { backdrop: "(boolean|string)", keyboard: "boolean", focus: "boolean" }, Dt = function (e) { function r(t, i) { var n; return (n = e.call(this, t) || this)._config = n._getConfig(i), n._dialog = X.findOne(".modal-dialog", t), n._backdrop = null, n._isShown = !1, n._isBodyOverflowing = !1, n._ignoreBackdropClick = !1, n._isTransitioning = !1, n._scrollbarWidth = 0, n } n(r, e); var s = r.prototype; return s.toggle = function (e) { return this._isShown ? this.hide() : this.show(e) }, s.show = function (e) { var t = this; if (!this._isShown && !this._isTransitioning) { this._element.classList.contains("fade") && (this._isTransitioning = !0); var i = B.trigger(this._element, "show.bs.modal", { relatedTarget: e }); this._isShown || i.defaultPrevented || (this._isShown = !0, this._checkScrollbar(), this._setScrollbar(), this._adjustDialog(), this._setEscapeEvent(), this._setResizeEvent(), B.on(this._element, "click.dismiss.bs.modal", '[data-bs-dismiss="modal"]', (function (e) { return t.hide(e) })), B.on(this._dialog, "mousedown.dismiss.bs.modal", (function () { B.one(t._element, "mouseup.dismiss.bs.modal", (function (e) { e.target === t._element && (t._ignoreBackdropClick = !0) })) })), this._showBackdrop((function () { return t._showElement(e) }))) } }, s.hide = function (e) { var t = this; if (e && e.preventDefault(), this._isShown && !this._isTransitioning && !B.trigger(this._element, "hide.bs.modal").defaultPrevented) { this._isShown = !1; var i = this._element.classList.contains("fade"); if (i && (this._isTransitioning = !0), this._setEscapeEvent(), this._setResizeEvent(), B.off(document, "focusin.bs.modal"), this._element.classList.remove("show"), B.off(this._element, "click.dismiss.bs.modal"), B.off(this._dialog, "mousedown.dismiss.bs.modal"), i) { var n = c(this._element); B.one(this._element, "transitionend", (function (e) { return t._hideModal(e) })), f(this._element, n) } else this._hideModal() } }, s.dispose = function () { [window, this._element, this._dialog].forEach((function (e) { return B.off(e, ".bs.modal") })), e.prototype.dispose.call(this), B.off(document, "focusin.bs.modal"), this._config = null, this._dialog = null, this._backdrop = null, this._isShown = null, this._isBodyOverflowing = null, this._ignoreBackdropClick = null, this._isTransitioning = null, this._scrollbarWidth = null }, s.handleUpdate = function () { this._adjustDialog() }, s._getConfig = function (e) { return e = i({}, bt, e), h("modal", e, wt), e }, s._showElement = function (e) { var t = this, i = this._element.classList.contains("fade"), n = X.findOne(".modal-body", this._dialog); this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE || document.body.appendChild(this._element), this._element.style.display = "block", this._element.removeAttribute("aria-hidden"), this._element.setAttribute("aria-modal", !0), this._element.setAttribute("role", "dialog"), this._element.scrollTop = 0, n && (n.scrollTop = 0), i && v(this._element), this._element.classList.add("show"), this._config.focus && this._enforceFocus(); var r = function () { t._config.focus && t._element.focus(), t._isTransitioning = !1, B.trigger(t._element, "shown.bs.modal", { relatedTarget: e }) }; if (i) { var s = c(this._dialog); B.one(this._dialog, "transitionend", r), f(this._dialog, s) } else r() }, s._enforceFocus = function () { var e = this; B.off(document, "focusin.bs.modal"), B.on(document, "focusin.bs.modal", (function (t) { document === t.target || e._element === t.target || e._element.contains(t.target) || e._element.focus() })) }, s._setEscapeEvent = function () { var e = this; this._isShown ? B.on(this._element, "keydown.dismiss.bs.modal", (function (t) { e._config.keyboard && "Escape" === t.key ? (t.preventDefault(), e.hide()) : e._config.keyboard || "Escape" !== t.key || e._triggerBackdropTransition() })) : B.off(this._element, "keydown.dismiss.bs.modal") }, s._setResizeEvent = function () { var e = this; this._isShown ? B.on(window, "resize.bs.modal", (function () { return e._adjustDialog() })) : B.off(window, "resize.bs.modal") }, s._hideModal = function () { var e = this; this._element.style.display = "none", this._element.setAttribute("aria-hidden", !0), this._element.removeAttribute("aria-modal"), this._element.removeAttribute("role"), this._isTransitioning = !1, this._showBackdrop((function () { document.body.classList.remove("modal-open"), e._resetAdjustments(), e._resetScrollbar(), B.trigger(e._element, "hidden.bs.modal") })) }, s._removeBackdrop = function () { this._backdrop.parentNode.removeChild(this._backdrop), this._backdrop = null }, s._showBackdrop = function (e) { var t = this, i = this._element.classList.contains("fade") ? "fade" : ""; if (this._isShown && this._config.backdrop) { if (this._backdrop = document.createElement("div"), this._backdrop.className = "modal-backdrop", i && this._backdrop.classList.add(i), document.body.appendChild(this._backdrop), B.on(this._element, "click.dismiss.bs.modal", (function (e) { t._ignoreBackdropClick ? t._ignoreBackdropClick = !1 : e.target === e.currentTarget && ("static" === t._config.backdrop ? t._triggerBackdropTransition() : t.hide()) })), i && v(this._backdrop), this._backdrop.classList.add("show"), !i) return void e(); var n = c(this._backdrop); B.one(this._backdrop, "transitionend", e), f(this._backdrop, n) } else if (!this._isShown && this._backdrop) { this._backdrop.classList.remove("show"); var r = function () { t._removeBackdrop(), e() }; if (this._element.classList.contains("fade")) { var s = c(this._backdrop); B.one(this._backdrop, "transitionend", r), f(this._backdrop, s) } else r() } else e() }, s._triggerBackdropTransition = function () { var e = this; if (!B.trigger(this._element, "hidePrevented.bs.modal").defaultPrevented) { var t = this._element.scrollHeight > document.documentElement.clientHeight; t || (this._element.style.overflowY = "hidden"), this._element.classList.add("modal-static"); var i = c(this._dialog); B.off(this._element, "transitionend"), B.one(this._element, "transitionend", (function () { e._element.classList.remove("modal-static"), t || (B.one(e._element, "transitionend", (function () { e._element.style.overflowY = "" })), f(e._element, i)) })), f(this._element, i), this._element.focus() } }, s._adjustDialog = function () { var e = this._element.scrollHeight > document.documentElement.clientHeight; (!this._isBodyOverflowing && e && !w || this._isBodyOverflowing && !e && w) && (this._element.style.paddingLeft = this._scrollbarWidth + "px"), (this._isBodyOverflowing && !e && !w || !this._isBodyOverflowing && e && w) && (this._element.style.paddingRight = this._scrollbarWidth + "px") }, s._resetAdjustments = function () { this._element.style.paddingLeft = "", this._element.style.paddingRight = "" }, s._checkScrollbar = function () { var e = document.body.getBoundingClientRect(); this._isBodyOverflowing = Math.round(e.left + e.right) < window.innerWidth, this._scrollbarWidth = this._getScrollbarWidth() }, s._setScrollbar = function () { var e = this; if (this._isBodyOverflowing) { X.find(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top").forEach((function (t) { var i = t.style.paddingRight, n = window.getComputedStyle(t)["padding-right"]; q.setDataAttribute(t, "padding-right", i), t.style.paddingRight = Number.parseFloat(n) + e._scrollbarWidth + "px" })), X.find(".sticky-top").forEach((function (t) { var i = t.style.marginRight, n = window.getComputedStyle(t)["margin-right"]; q.setDataAttribute(t, "margin-right", i), t.style.marginRight = Number.parseFloat(n) - e._scrollbarWidth + "px" })); var t = document.body.style.paddingRight, i = window.getComputedStyle(document.body)["padding-right"]; q.setDataAttribute(document.body, "padding-right", t), document.body.style.paddingRight = Number.parseFloat(i) + this._scrollbarWidth + "px" } document.body.classList.add("modal-open") }, s._resetScrollbar = function () { X.find(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top").forEach((function (e) { var t = q.getDataAttribute(e, "padding-right"); void 0 !== t && (q.removeDataAttribute(e, "padding-right"), e.style.paddingRight = t) })), X.find(".sticky-top").forEach((function (e) { var t = q.getDataAttribute(e, "margin-right"); void 0 !== t && (q.removeDataAttribute(e, "margin-right"), e.style.marginRight = t) })); var e = q.getDataAttribute(document.body, "padding-right"); void 0 === e ? document.body.style.paddingRight = "" : (q.removeDataAttribute(document.body, "padding-right"), document.body.style.paddingRight = e) }, s._getScrollbarWidth = function () { var e = document.createElement("div"); e.className = "modal-scrollbar-measure", document.body.appendChild(e); var t = e.getBoundingClientRect().width - e.clientWidth; return document.body.removeChild(e), t }, r.jQueryInterface = function (e, t) { return this.each((function () { var n = x(this, "bs.modal"), s = i({}, bt, q.getDataAttributes(this), "object" == typeof e && e ? e : {}); if (n || (n = new r(this, s)), "string" == typeof e) { if (void 0 === n[e]) throw new TypeError('No method named "' + e + '"'); n[e](t) } })) }, t(r, null, [{ key: "Default", get: function () { return bt } }, { key: "DATA_KEY", get: function () { return "bs.modal" } }]), r }(W); B.on(document, "click.bs.modal.data-api", '[data-bs-toggle="modal"]', (function (e) { var t = this, n = u(this); "A" !== this.tagName && "AREA" !== this.tagName || e.preventDefault(), B.one(n, "show.bs.modal", (function (e) { e.defaultPrevented || B.one(n, "hidden.bs.modal", (function () { m(t) && t.focus() })) })); var r = x(n, "bs.modal"); if (!r) { var s = i({}, q.getDataAttributes(n), q.getDataAttributes(this)); r = new Dt(n, s) } r.show(this) })), b((function () { var e = y(); if (e) { var t = e.fn.modal; e.fn.modal = Dt.jQueryInterface, e.fn.modal.Constructor = Dt, e.fn.modal.noConflict = function () { return e.fn.modal = t, Dt.jQueryInterface } } })); var _t = new Set(["background", "cite", "href", "itemtype", "longdesc", "poster", "src", "xlink:href"]), xt = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi, Et = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i; function Tt(e, t, i) { var n; if (!e.length) return e; if (i && "function" == typeof i) return i(e); for (var r = (new window.DOMParser).parseFromString(e, "text/html"), s = Object.keys(t), o = (n = []).concat.apply(n, r.body.querySelectorAll("*")), a = function (e, i) { var n, r = o[e], a = r.nodeName.toLowerCase(); if (!s.includes(a)) return r.parentNode.removeChild(r), "continue"; var l = (n = []).concat.apply(n, r.attributes), u = [].concat(t["*"] || [], t[a] || []); l.forEach((function (e) { (function (e, t) { var i = e.nodeName.toLowerCase(); if (t.includes(i)) return !_t.has(i) || Boolean(e.nodeValue.match(xt) || e.nodeValue.match(Et)); for (var n = t.filter((function (e) { return e instanceof RegExp })), r = 0, s = n.length; r < s; r++)if (i.match(n[r])) return !0; return !1 })(e, u) || r.removeAttribute(e.nodeName) })) }, l = 0, u = o.length; l < u; l++)a(l); return r.body.innerHTML } var St = "tooltip", Ct = new RegExp("(^|\\s)bs-tooltip\\S+", "g"), Mt = new Set(["sanitize", "allowList", "sanitizeFn"]), kt = { animation: "boolean", template: "string", title: "(string|element|function)", trigger: "string", delay: "(number|object)", html: "boolean", selector: "(string|boolean)", placement: "(string|function)", container: "(string|element|boolean)", fallbackPlacements: "(null|array)", boundary: "(string|element)", customClass: "(string|function)", sanitize: "boolean", sanitizeFn: "(null|function)", allowList: "object", popperConfig: "(null|object)" }, Ot = { AUTO: "auto", TOP: "top", RIGHT: w ? "left" : "right", BOTTOM: "bottom", LEFT: w ? "right" : "left" }, At = { animation: !0, template: '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>', trigger: "hover focus", title: "", delay: 0, html: !1, selector: !1, placement: "top", container: !1, fallbackPlacements: null, boundary: "clippingParents", customClass: "", sanitize: !0, sanitizeFn: null, allowList: { "*": ["class", "dir", "id", "lang", "role", /^aria-[\w-]*$/i], a: ["target", "href", "title", "rel"], area: [], b: [], br: [], col: [], code: [], div: [], em: [], hr: [], h1: [], h2: [], h3: [], h4: [], h5: [], h6: [], i: [], img: ["src", "srcset", "alt", "title", "width", "height"], li: [], ol: [], p: [], pre: [], s: [], small: [], span: [], sub: [], sup: [], strong: [], u: [], ul: [] }, popperConfig: null }, Pt = { HIDE: "hide.bs.tooltip", HIDDEN: "hidden.bs.tooltip", SHOW: "show.bs.tooltip", SHOWN: "shown.bs.tooltip", INSERTED: "inserted.bs.tooltip", CLICK: "click.bs.tooltip", FOCUSIN: "focusin.bs.tooltip", FOCUSOUT: "focusout.bs.tooltip", MOUSEENTER: "mouseenter.bs.tooltip", MOUSELEAVE: "mouseleave.bs.tooltip" }, Ft = function (e) { function r(t, i) { var n; if (void 0 === at) throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)"); return (n = e.call(this, t) || this)._isEnabled = !0, n._timeout = 0, n._hoverState = "", n._activeTrigger = {}, n._popper = null, n.config = n._getConfig(i), n.tip = null, n._setListeners(), n } n(r, e); var s = r.prototype; return s.enable = function () { this._isEnabled = !0 }, s.disable = function () { this._isEnabled = !1 }, s.toggleEnabled = function () { this._isEnabled = !this._isEnabled }, s.toggle = function (e) { if (this._isEnabled) if (e) { var t = this.constructor.DATA_KEY, i = x(e.delegateTarget, t); i || (i = new this.constructor(e.delegateTarget, this._getDelegateConfig()), _(e.delegateTarget, t, i)), i._activeTrigger.click = !i._activeTrigger.click, i._isWithActiveTrigger() ? i._enter(null, i) : i._leave(null, i) } else { if (this.getTipElement().classList.contains("show")) return void this._leave(null, this); this._enter(null, this) } }, s.dispose = function () { clearTimeout(this._timeout), B.off(this._element, this.constructor.EVENT_KEY), B.off(this._element.closest(".modal"), "hide.bs.modal", this._hideModalHandler), this.tip && this.tip.parentNode.removeChild(this.tip), this._isEnabled = null, this._timeout = null, this._hoverState = null, this._activeTrigger = null, this._popper && this._popper.destroy(), this._popper = null, this.config = null, this.tip = null, e.prototype.dispose.call(this) }, s.show = function () { var e = this; if ("none" === this._element.style.display) throw new Error("Please use show on visible elements"); if (this.isWithContent() && this._isEnabled) { var t = B.trigger(this._element, this.constructor.Event.SHOW), i = function e(t) { if (!document.documentElement.attachShadow) return null; if ("function" == typeof t.getRootNode) { var i = t.getRootNode(); return i instanceof ShadowRoot ? i : null } return t instanceof ShadowRoot ? t : t.parentNode ? e(t.parentNode) : null }(this._element), n = null === i ? this._element.ownerDocument.documentElement.contains(this._element) : i.contains(this._element); if (t.defaultPrevented || !n) return; var r = this.getTipElement(), s = o(this.constructor.NAME); r.setAttribute("id", s), this._element.setAttribute("aria-describedby", s), this.setContent(), this.config.animation && r.classList.add("fade"); var a = "function" == typeof this.config.placement ? this.config.placement.call(this, r, this._element) : this.config.placement, l = this._getAttachment(a); this._addAttachmentClass(l); var u = this._getContainer(); _(r, this.constructor.DATA_KEY, this), this._element.ownerDocument.documentElement.contains(this.tip) || u.appendChild(r), B.trigger(this._element, this.constructor.Event.INSERTED), this._popper = ot(this._element, r, this._getPopperConfig(l)), r.classList.add("show"); var d, p, h = "function" == typeof this.config.customClass ? this.config.customClass() : this.config.customClass; h && (d = r.classList).add.apply(d, h.split(" ")), "ontouchstart" in document.documentElement && (p = []).concat.apply(p, document.body.children).forEach((function (e) { B.on(e, "mouseover", (function () { })) })); var m = function () { var t = e._hoverState; e._hoverState = null, B.trigger(e._element, e.constructor.Event.SHOWN), "out" === t && e._leave(null, e) }; if (this.tip.classList.contains("fade")) { var g = c(this.tip); B.one(this.tip, "transitionend", m), f(this.tip, g) } else m() } }, s.hide = function () { var e = this; if (this._popper) { var t = this.getTipElement(), i = function () { "show" !== e._hoverState && t.parentNode && t.parentNode.removeChild(t), e._cleanTipClass(), e._element.removeAttribute("aria-describedby"), B.trigger(e._element, e.constructor.Event.HIDDEN), e._popper && (e._popper.destroy(), e._popper = null) }; if (!B.trigger(this._element, this.constructor.Event.HIDE).defaultPrevented) { var n; if (t.classList.remove("show"), "ontouchstart" in document.documentElement && (n = []).concat.apply(n, document.body.children).forEach((function (e) { return B.off(e, "mouseover", g) })), this._activeTrigger.click = !1, this._activeTrigger.focus = !1, this._activeTrigger.hover = !1, this.tip.classList.contains("fade")) { var r = c(t); B.one(t, "transitionend", i), f(t, r) } else i(); this._hoverState = "" } } }, s.update = function () { null !== this._popper && this._popper.update() }, s.isWithContent = function () { return Boolean(this.getTitle()) }, s.getTipElement = function () { if (this.tip) return this.tip; var e = document.createElement("div"); return e.innerHTML = this.config.template, this.tip = e.children[0], this.tip }, s.setContent = function () { var e = this.getTipElement(); this.setElementContent(X.findOne(".tooltip-inner", e), this.getTitle()), e.classList.remove("fade", "show") }, s.setElementContent = function (e, t) { if (null !== e) return "object" == typeof t && p(t) ? (t.jquery && (t = t[0]), void (this.config.html ? t.parentNode !== e && (e.innerHTML = "", e.appendChild(t)) : e.textContent = t.textContent)) : void (this.config.html ? (this.config.sanitize && (t = Tt(t, this.config.allowList, this.config.sanitizeFn)), e.innerHTML = t) : e.textContent = t) }, s.getTitle = function () { var e = this._element.getAttribute("data-bs-original-title"); return e || (e = "function" == typeof this.config.title ? this.config.title.call(this._element) : this.config.title), e }, s.updateAttachment = function (e) { return "right" === e ? "end" : "left" === e ? "start" : e }, s._getPopperConfig = function (e) { var t = this, n = { name: "flip", options: { altBoundary: !0 } }; return this.config.fallbackPlacements && (n.options.fallbackPlacements = this.config.fallbackPlacements), i({}, { placement: e, modifiers: [n, { name: "preventOverflow", options: { rootBoundary: this.config.boundary } }, { name: "arrow", options: { element: "." + this.constructor.NAME + "-arrow" } }, { name: "onChange", enabled: !0, phase: "afterWrite", fn: function (e) { return t._handlePopperPlacementChange(e) } }], onFirstUpdate: function (e) { e.options.placement !== e.placement && t._handlePopperPlacementChange(e) } }, this.config.popperConfig) }, s._addAttachmentClass = function (e) { this.getTipElement().classList.add("bs-tooltip-" + this.updateAttachment(e)) }, s._getContainer = function () { return !1 === this.config.container ? document.body : p(this.config.container) ? this.config.container : X.findOne(this.config.container) }, s._getAttachment = function (e) { return Ot[e.toUpperCase()] }, s._setListeners = function () { var e = this; this.config.trigger.split(" ").forEach((function (t) { if ("click" === t) B.on(e._element, e.constructor.Event.CLICK, e.config.selector, (function (t) { return e.toggle(t) })); else if ("manual" !== t) { var i = "hover" === t ? e.constructor.Event.MOUSEENTER : e.constructor.Event.FOCUSIN, n = "hover" === t ? e.constructor.Event.MOUSELEAVE : e.constructor.Event.FOCUSOUT; B.on(e._element, i, e.config.selector, (function (t) { return e._enter(t) })), B.on(e._element, n, e.config.selector, (function (t) { return e._leave(t) })) } })), this._hideModalHandler = function () { e._element && e.hide() }, B.on(this._element.closest(".modal"), "hide.bs.modal", this._hideModalHandler), this.config.selector ? this.config = i({}, this.config, { trigger: "manual", selector: "" }) : this._fixTitle() }, s._fixTitle = function () { var e = this._element.getAttribute("title"), t = typeof this._element.getAttribute("data-bs-original-title"); (e || "string" !== t) && (this._element.setAttribute("data-bs-original-title", e || ""), !e || this._element.getAttribute("aria-label") || this._element.textContent || this._element.setAttribute("aria-label", e), this._element.setAttribute("title", "")) }, s._enter = function (e, t) { var i = this.constructor.DATA_KEY; (t = t || x(e.delegateTarget, i)) || (t = new this.constructor(e.delegateTarget, this._getDelegateConfig()), _(e.delegateTarget, i, t)), e && (t._activeTrigger["focusin" === e.type ? "focus" : "hover"] = !0), t.getTipElement().classList.contains("show") || "show" === t._hoverState ? t._hoverState = "show" : (clearTimeout(t._timeout), t._hoverState = "show", t.config.delay && t.config.delay.show ? t._timeout = setTimeout((function () { "show" === t._hoverState && t.show() }), t.config.delay.show) : t.show()) }, s._leave = function (e, t) { var i = this.constructor.DATA_KEY; (t = t || x(e.delegateTarget, i)) || (t = new this.constructor(e.delegateTarget, this._getDelegateConfig()), _(e.delegateTarget, i, t)), e && (t._activeTrigger["focusout" === e.type ? "focus" : "hover"] = !1), t._isWithActiveTrigger() || (clearTimeout(t._timeout), t._hoverState = "out", t.config.delay && t.config.delay.hide ? t._timeout = setTimeout((function () { "out" === t._hoverState && t.hide() }), t.config.delay.hide) : t.hide()) }, s._isWithActiveTrigger = function () { for (var e in this._activeTrigger) if (this._activeTrigger[e]) return !0; return !1 }, s._getConfig = function (e) { var t = q.getDataAttributes(this._element); return Object.keys(t).forEach((function (e) { Mt.has(e) && delete t[e] })), e && "object" == typeof e.container && e.container.jquery && (e.container = e.container[0]), "number" == typeof (e = i({}, this.constructor.Default, t, "object" == typeof e && e ? e : {})).delay && (e.delay = { show: e.delay, hide: e.delay }), "number" == typeof e.title && (e.title = e.title.toString()), "number" == typeof e.content && (e.content = e.content.toString()), h(St, e, this.constructor.DefaultType), e.sanitize && (e.template = Tt(e.template, e.allowList, e.sanitizeFn)), e }, s._getDelegateConfig = function () { var e = {}; if (this.config) for (var t in this.config) this.constructor.Default[t] !== this.config[t] && (e[t] = this.config[t]); return e }, s._cleanTipClass = function () { var e = this.getTipElement(), t = e.getAttribute("class").match(Ct); null !== t && t.length > 0 && t.map((function (e) { return e.trim() })).forEach((function (t) { return e.classList.remove(t) })) }, s._handlePopperPlacementChange = function (e) { var t = e.state; t && (this.tip = t.elements.popper, this._cleanTipClass(), this._addAttachmentClass(this._getAttachment(t.placement))) }, r.jQueryInterface = function (e) { return this.each((function () { var t = x(this, "bs.tooltip"), i = "object" == typeof e && e; if ((t || !/dispose|hide/.test(e)) && (t || (t = new r(this, i)), "string" == typeof e)) { if (void 0 === t[e]) throw new TypeError('No method named "' + e + '"'); t[e]() } })) }, t(r, null, [{ key: "Default", get: function () { return At } }, { key: "NAME", get: function () { return St } }, { key: "DATA_KEY", get: function () { return "bs.tooltip" } }, { key: "Event", get: function () { return Pt } }, { key: "EVENT_KEY", get: function () { return ".bs.tooltip" } }, { key: "DefaultType", get: function () { return kt } }]), r }(W); b((function () { var e = y(); if (e) { var t = e.fn[St]; e.fn[St] = Ft.jQueryInterface, e.fn[St].Constructor = Ft, e.fn[St].noConflict = function () { return e.fn[St] = t, Ft.jQueryInterface } } })); var Lt = "popover", It = new RegExp("(^|\\s)bs-popover\\S+", "g"), zt = i({}, Ft.Default, { placement: "right", trigger: "click", content: "", template: '<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>' }), Bt = i({}, Ft.DefaultType, { content: "(string|element|function)" }), Wt = { HIDE: "hide.bs.popover", HIDDEN: "hidden.bs.popover", SHOW: "show.bs.popover", SHOWN: "shown.bs.popover", INSERTED: "inserted.bs.popover", CLICK: "click.bs.popover", FOCUSIN: "focusin.bs.popover", FOCUSOUT: "focusout.bs.popover", MOUSEENTER: "mouseenter.bs.popover", MOUSELEAVE: "mouseleave.bs.popover" }, jt = function (e) { function i() { return e.apply(this, arguments) || this } n(i, e); var r = i.prototype; return r.isWithContent = function () { return this.getTitle() || this._getContent() }, r.setContent = function () { var e = this.getTipElement(); this.setElementContent(X.findOne(".popover-header", e), this.getTitle()); var t = this._getContent(); "function" == typeof t && (t = t.call(this._element)), this.setElementContent(X.findOne(".popover-body", e), t), e.classList.remove("fade", "show") }, r._addAttachmentClass = function (e) { this.getTipElement().classList.add("bs-popover-" + this.updateAttachment(e)) }, r._getContent = function () { return this._element.getAttribute("data-bs-content") || this.config.content }, r._cleanTipClass = function () { var e = this.getTipElement(), t = e.getAttribute("class").match(It); null !== t && t.length > 0 && t.map((function (e) { return e.trim() })).forEach((function (t) { return e.classList.remove(t) })) }, i.jQueryInterface = function (e) { return this.each((function () { var t = x(this, "bs.popover"), n = "object" == typeof e ? e : null; if ((t || !/dispose|hide/.test(e)) && (t || (t = new i(this, n), _(this, "bs.popover", t)), "string" == typeof e)) { if (void 0 === t[e]) throw new TypeError('No method named "' + e + '"'); t[e]() } })) }, t(i, null, [{ key: "Default", get: function () { return zt } }, { key: "NAME", get: function () { return Lt } }, { key: "DATA_KEY", get: function () { return "bs.popover" } }, { key: "Event", get: function () { return Wt } }, { key: "EVENT_KEY", get: function () { return ".bs.popover" } }, { key: "DefaultType", get: function () { return Bt } }]), i }(Ft); b((function () { var e = y(); if (e) { var t = e.fn[Lt]; e.fn[Lt] = jt.jQueryInterface, e.fn[Lt].Constructor = jt, e.fn[Lt].noConflict = function () { return e.fn[Lt] = t, jt.jQueryInterface } } })); var Nt = "scrollspy", Rt = { offset: 10, method: "auto", target: "" }, Ht = { offset: "number", method: "string", target: "(string|element)" }, Yt = function (e) { function r(t, i) { var n; return (n = e.call(this, t) || this)._scrollElement = "BODY" === t.tagName ? window : t, n._config = n._getConfig(i), n._selector = n._config.target + " .nav-link, " + n._config.target + " .list-group-item, " + n._config.target + " .dropdown-item", n._offsets = [], n._targets = [], n._activeTarget = null, n._scrollHeight = 0, B.on(n._scrollElement, "scroll.bs.scrollspy", (function (e) { return n._process(e) })), n.refresh(), n._process(), n } n(r, e); var s = r.prototype; return s.refresh = function () { var e = this, t = this._scrollElement === this._scrollElement.window ? "offset" : "position", i = "auto" === this._config.method ? t : this._config.method, n = "position" === i ? this._getScrollTop() : 0; this._offsets = [], this._targets = [], this._scrollHeight = this._getScrollHeight(), X.find(this._selector).map((function (e) { var t = l(e), r = t ? X.findOne(t) : null; if (r) { var s = r.getBoundingClientRect(); if (s.width || s.height) return [q[i](r).top + n, t] } return null })).filter((function (e) { return e })).sort((function (e, t) { return e[0] - t[0] })).forEach((function (t) { e._offsets.push(t[0]), e._targets.push(t[1]) })) }, s.dispose = function () { e.prototype.dispose.call(this), B.off(this._scrollElement, ".bs.scrollspy"), this._scrollElement = null, this._config = null, this._selector = null, this._offsets = null, this._targets = null, this._activeTarget = null, this._scrollHeight = null }, s._getConfig = function (e) { if ("string" != typeof (e = i({}, Rt, "object" == typeof e && e ? e : {})).target && p(e.target)) { var t = e.target.id; t || (t = o(Nt), e.target.id = t), e.target = "#" + t } return h(Nt, e, Ht), e }, s._getScrollTop = function () { return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop }, s._getScrollHeight = function () { return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight) }, s._getOffsetHeight = function () { return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height }, s._process = function () { var e = this._getScrollTop() + this._config.offset, t = this._getScrollHeight(), i = this._config.offset + t - this._getOffsetHeight(); if (this._scrollHeight !== t && this.refresh(), e >= i) { var n = this._targets[this._targets.length - 1]; this._activeTarget !== n && this._activate(n) } else { if (this._activeTarget && e < this._offsets[0] && this._offsets[0] > 0) return this._activeTarget = null, void this._clear(); for (var r = this._offsets.length; r--;)this._activeTarget !== this._targets[r] && e >= this._offsets[r] && (void 0 === this._offsets[r + 1] || e < this._offsets[r + 1]) && this._activate(this._targets[r]) } }, s._activate = function (e) { this._activeTarget = e, this._clear(); var t = this._selector.split(",").map((function (t) { return t + '[data-bs-target="' + e + '"],' + t + '[href="' + e + '"]' })), i = X.findOne(t.join(",")); i.classList.contains("dropdown-item") ? (X.findOne(".dropdown-toggle", i.closest(".dropdown")).classList.add("active"), i.classList.add("active")) : (i.classList.add("active"), X.parents(i, ".nav, .list-group").forEach((function (e) { X.prev(e, ".nav-link, .list-group-item").forEach((function (e) { return e.classList.add("active") })), X.prev(e, ".nav-item").forEach((function (e) { X.children(e, ".nav-link").forEach((function (e) { return e.classList.add("active") })) })) }))), B.trigger(this._scrollElement, "activate.bs.scrollspy", { relatedTarget: e }) }, s._clear = function () { X.find(this._selector).filter((function (e) { return e.classList.contains("active") })).forEach((function (e) { return e.classList.remove("active") })) }, r.jQueryInterface = function (e) { return this.each((function () { var t = x(this, "bs.scrollspy"); if (t || (t = new r(this, "object" == typeof e && e)), "string" == typeof e) { if (void 0 === t[e]) throw new TypeError('No method named "' + e + '"'); t[e]() } })) }, t(r, null, [{ key: "Default", get: function () { return Rt } }, { key: "DATA_KEY", get: function () { return "bs.scrollspy" } }]), r }(W); B.on(window, "load.bs.scrollspy.data-api", (function () { X.find('[data-bs-spy="scroll"]').forEach((function (e) { return new Yt(e, q.getDataAttributes(e)) })) })), b((function () { var e = y(); if (e) { var t = e.fn[Nt]; e.fn[Nt] = Yt.jQueryInterface, e.fn[Nt].Constructor = Yt, e.fn[Nt].noConflict = function () { return e.fn[Nt] = t, Yt.jQueryInterface } } })); var qt = function (e) { function i() { return e.apply(this, arguments) || this } n(i, e); var r = i.prototype; return r.show = function () { var e = this; if (!(this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && this._element.classList.contains("active") || this._element.classList.contains("disabled"))) { var t, i = u(this._element), n = this._element.closest(".nav, .list-group"); if (n) { var r = "UL" === n.nodeName || "OL" === n.nodeName ? ":scope > li > .active" : ".active"; t = (t = X.find(r, n))[t.length - 1] } var s = null; if (t && (s = B.trigger(t, "hide.bs.tab", { relatedTarget: this._element })), !(B.trigger(this._element, "show.bs.tab", { relatedTarget: t }).defaultPrevented || null !== s && s.defaultPrevented)) { this._activate(this._element, n); var o = function () { B.trigger(t, "hidden.bs.tab", { relatedTarget: e._element }), B.trigger(e._element, "shown.bs.tab", { relatedTarget: t }) }; i ? this._activate(i, i.parentNode, o) : o() } } }, r._activate = function (e, t, i) { var n = this, r = (!t || "UL" !== t.nodeName && "OL" !== t.nodeName ? X.children(t, ".active") : X.find(":scope > li > .active", t))[0], s = i && r && r.classList.contains("fade"), o = function () { return n._transitionComplete(e, r, i) }; if (r && s) { var a = c(r); r.classList.remove("show"), B.one(r, "transitionend", o), f(r, a) } else o() }, r._transitionComplete = function (e, t, i) { if (t) { t.classList.remove("active"); var n = X.findOne(":scope > .dropdown-menu .active", t.parentNode); n && n.classList.remove("active"), "tab" === t.getAttribute("role") && t.setAttribute("aria-selected", !1) } e.classList.add("active"), "tab" === e.getAttribute("role") && e.setAttribute("aria-selected", !0), v(e), e.classList.contains("fade") && e.classList.add("show"), e.parentNode && e.parentNode.classList.contains("dropdown-menu") && (e.closest(".dropdown") && X.find(".dropdown-toggle").forEach((function (e) { return e.classList.add("active") })), e.setAttribute("aria-expanded", !0)), i && i() }, i.jQueryInterface = function (e) { return this.each((function () { var t = x(this, "bs.tab") || new i(this); if ("string" == typeof e) { if (void 0 === t[e]) throw new TypeError('No method named "' + e + '"'); t[e]() } })) }, t(i, null, [{ key: "DATA_KEY", get: function () { return "bs.tab" } }]), i }(W); B.on(document, "click.bs.tab.data-api", '[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]', (function (e) { e.preventDefault(), (x(this, "bs.tab") || new qt(this)).show() })), b((function () { var e = y(); if (e) { var t = e.fn.tab; e.fn.tab = qt.jQueryInterface, e.fn.tab.Constructor = qt, e.fn.tab.noConflict = function () { return e.fn.tab = t, qt.jQueryInterface } } })); var Xt = { animation: "boolean", autohide: "boolean", delay: "number" }, Gt = { animation: !0, autohide: !0, delay: 5e3 }, Vt = function (e) { function r(t, i) { var n; return (n = e.call(this, t) || this)._config = n._getConfig(i), n._timeout = null, n._setListeners(), n } n(r, e); var s = r.prototype; return s.show = function () { var e = this; if (!B.trigger(this._element, "show.bs.toast").defaultPrevented) { this._clearTimeout(), this._config.animation && this._element.classList.add("fade"); var t = function () { e._element.classList.remove("showing"), e._element.classList.add("show"), B.trigger(e._element, "shown.bs.toast"), e._config.autohide && (e._timeout = setTimeout((function () { e.hide() }), e._config.delay)) }; if (this._element.classList.remove("hide"), v(this._element), this._element.classList.add("showing"), this._config.animation) { var i = c(this._element); B.one(this._element, "transitionend", t), f(this._element, i) } else t() } }, s.hide = function () { var e = this; if (this._element.classList.contains("show") && !B.trigger(this._element, "hide.bs.toast").defaultPrevented) { var t = function () { e._element.classList.add("hide"), B.trigger(e._element, "hidden.bs.toast") }; if (this._element.classList.remove("show"), this._config.animation) { var i = c(this._element); B.one(this._element, "transitionend", t), f(this._element, i) } else t() } }, s.dispose = function () { this._clearTimeout(), this._element.classList.contains("show") && this._element.classList.remove("show"), B.off(this._element, "click.dismiss.bs.toast"), e.prototype.dispose.call(this), this._config = null }, s._getConfig = function (e) { return e = i({}, Gt, q.getDataAttributes(this._element), "object" == typeof e && e ? e : {}), h("toast", e, this.constructor.DefaultType), e }, s._setListeners = function () { var e = this; B.on(this._element, "click.dismiss.bs.toast", '[data-bs-dismiss="toast"]', (function () { return e.hide() })) }, s._clearTimeout = function () { clearTimeout(this._timeout), this._timeout = null }, r.jQueryInterface = function (e) { return this.each((function () { var t = x(this, "bs.toast"); if (t || (t = new r(this, "object" == typeof e && e)), "string" == typeof e) { if (void 0 === t[e]) throw new TypeError('No method named "' + e + '"'); t[e](this) } })) }, t(r, null, [{ key: "DefaultType", get: function () { return Xt } }, { key: "Default", get: function () { return Gt } }, { key: "DATA_KEY", get: function () { return "bs.toast" } }]), r }(W); return b((function () { var e = y(); if (e) { var t = e.fn.toast; e.fn.toast = Vt.jQueryInterface, e.fn.toast.Constructor = Vt, e.fn.toast.noConflict = function () { return e.fn.toast = t, Vt.jQueryInterface } } })), { Alert: N, Button: R, Carousel: Q, Collapse: ee, Dropdown: yt, Modal: Dt, Popover: jt, ScrollSpy: Yt, Tab: qt, Toast: Vt, Tooltip: Ft } })), function (e, t) { "object" == typeof exports && "undefined" != typeof module ? t(exports) : "function" == typeof define && define.amd ? define(["exports"], t) : t((e = e || self).window = e.window || {}) }(this, (function (e) { "use strict"; function t(e, t) { e.prototype = Object.create(t.prototype), (e.prototype.constructor = e).__proto__ = t } function i(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e } function n(e) { return "string" == typeof e } function r(e) { return "function" == typeof e } function s(e) { return "number" == typeof e } function o(e) { return void 0 === e } function a(e) { return "object" == typeof e } function l(e) { return !1 !== e } function u() { return "undefined" != typeof window } function c(e) { return r(e) || n(e) } function d(e) { return (Ee = _t(e, ct)) && zi } function p(e, t) { return console.warn("Invalid property", e, "set to", t, "Missing plugin? gsap.registerPlugin()") } function f(e, t) { return !t && console.warn(e) } function h(e, t) { return e && (ct[e] = t) && Ee && (Ee[e] = t) || ct } function m() { return 0 } function g(e) { var t, i, n = e[0]; if (a(n) || r(n) || (e = [e]), !(t = (n._gsap || {}).harness)) { for (i = wt.length; i-- && !wt[i].targetTest(n);); t = wt[i] } for (i = e.length; i--;)e[i] && (e[i]._gsap || (e[i]._gsap = new Gt(e[i], t))) || e.splice(i, 1); return e } function v(e) { return e._gsap || g(kt(e))[0]._gsap } function y(e, t, i) { return (i = e[t]) && r(i) ? e[t]() : o(i) && e.getAttribute && e.getAttribute(t) || i } function b(e, t) { return (e = e.split(",")).forEach(t) || e } function w(e) { return Math.round(1e5 * e) / 1e5 || 0 } function D(e) { return Math.round(1e7 * e) / 1e7 || 0 } function _(e, t) { var i = t.charAt(0), n = parseFloat(t.substr(2)); return e = parseFloat(e), "+" === i ? e + n : "-" === i ? e - n : "*" === i ? e * n : e / n } function x(e, t) { for (var i = t.length, n = 0; e.indexOf(t[n]) < 0 && ++n < i;); return n < i } function E() { var e, t, i = mt.length, n = mt.slice(0); for (gt = {}, e = mt.length = 0; e < i; e++)(t = n[e]) && t._lazy && (t.render(t._lazy[0], t._lazy[1], !0)._lazy = 0) } function T(e, t, i, n) { mt.length && !ye && E(), e.render(t, i, n || ye && t < 0 && (e._initted || e._startAt)), mt.length && !ye && E() } function S(e) { var t = parseFloat(e); return (t || 0 === t) && (e + "").match(lt).length < 2 ? t : n(e) ? e.trim() : e } function C(e) { return e } function M(e, t) { for (var i in t) i in e || (e[i] = t[i]); return e } function k(e, t) { for (var i in t) "__proto__" !== i && "constructor" !== i && "prototype" !== i && (e[i] = a(t[i]) ? k(e[i] || (e[i] = {}), t[i]) : t[i]); return e } function O(e, t) { var i, n = {}; for (i in e) i in t || (n[i] = e[i]); return n } function A(e) { var t = e.parent || we, i = e.keyframes ? function (e) { return function (t, i) { for (var n in i) n in t || "duration" === n && e || "ease" === n || (t[n] = i[n]) } }(it(e.keyframes)) : M; if (l(e.inherit)) for (; t;)i(e, t.vars.defaults), t = t.parent || t._dp; return e } function P(e, t, i, n, r) { void 0 === i && (i = "_first"), void 0 === n && (n = "_last"); var s, o = e[n]; if (r) for (s = t[r]; o && o[r] > s;)o = o._prev; return o ? (t._next = o._next, o._next = t) : (t._next = e[i], e[i] = t), t._next ? t._next._prev = t : e[n] = t, t._prev = o, t.parent = t._dp = e, t } function F(e, t, i, n) { void 0 === i && (i = "_first"), void 0 === n && (n = "_last"); var r = t._prev, s = t._next; r ? r._next = s : e[i] === t && (e[i] = s), s ? s._prev = r : e[n] === t && (e[n] = r), t._next = t._prev = t.parent = null } function L(e, t) { !e.parent || t && !e.parent.autoRemoveChildren || e.parent.remove(e), e._act = 0 } function I(e, t) { if (e && (!t || t._end > e._dur || t._start < 0)) for (var i = e; i;)i._dirty = 1, i = i.parent; return e } function z(e, t, i, n) { return e._startAt && (ye ? e._startAt.revert(pt) : e.vars.immediateRender && !e.vars.autoRevert || e._startAt.render(t, !0, n)) } function B(e) { return e._repeat ? xt(e._tTime, e = e.duration() + e._rDelay) * e : 0 } function W(e, t) { return (e - t._start) * t._ts + (0 <= t._ts ? 0 : t._dirty ? t.totalDuration() : t._tDur) } function j(e) { return e._end = D(e._start + (e._tDur / Math.abs(e._ts || e._rts || $e) || 0)) } function N(e, t) { var i = e._dp; return i && i.smoothChildTiming && e._ts && (e._start = D(i._time - (0 < e._ts ? t / e._ts : ((e._dirty ? e.totalDuration() : e._tDur) - t) / -e._ts)), j(e), i._dirty || I(i, e)), e } function R(e, t) { var i; if ((t._time || t._initted && !t._dur) && (i = W(e.rawTime(), t), (!t._dur || Ct(0, t.totalDuration(), i) - t._tTime > $e) && t.render(i, !0)), I(e, t)._dp && e._initted && e._time >= e._dur && e._ts) { if (e._dur < e.duration()) for (i = e; i._dp;)0 <= i.rawTime() && i.totalTime(i._tTime), i = i._dp; e._zTime = -$e } } function H(e, t, i, n) { return t.parent && L(t), t._start = D((s(i) ? i : i || e !== we ? St(e, i, t) : e._time) + t._delay), t._end = D(t._start + (t.totalDuration() / Math.abs(t.timeScale()) || 0)), P(e, t, "_first", "_last", e._sort ? "_start" : 0), Et(t) || (e._recent = t), n || R(e, t), e._ts < 0 && N(e, e._tTime), e } function Y(e, t) { return (ct.ScrollTrigger || p("scrollTrigger", t)) && ct.ScrollTrigger.create(t, e) } function q(e, t, i, n, r) { return ti(e, t, r), e._initted ? !i && e._pt && !ye && (e._dur && !1 !== e.vars.lazy || !e._dur && e.vars.lazy) && Se !== zt.frame ? (mt.push(e), e._lazy = [r, n], 1) : void 0 : 1 } function X(e, t, i, n) { var r = e._repeat, s = D(t) || 0, o = e._tTime / e._tDur; return o && !n && (e._time *= s / e._dur), e._dur = s, e._tDur = r ? r < 0 ? 1e10 : D(s * (r + 1) + e._rDelay * r) : s, 0 < o && !n && N(e, e._tTime = e._tDur * o), e.parent && j(e), i || I(e.parent, e), e } function G(e) { return e instanceof Ut ? I(e) : X(e, e._dur) } function V(e, t, i) { var n, r, o = s(t[1]), a = (o ? 2 : 1) + (e < 2 ? 0 : 1), u = t[a]; if (o && (u.duration = t[1]), u.parent = i, e) { for (n = u, r = i; r && !("immediateRender" in n);)n = r.vars.defaults || {}, r = l(r.vars.inherit) && r.parent; u.immediateRender = l(n.immediateRender), e < 2 ? u.runBackwards = 1 : u.startAt = t[a - 1] } return new si(t[0], u, t[1 + a]) } function $(e, t) { return e || 0 === e ? t(e) : t } function U(e, t) { return n(e) && (t = ut.exec(e)) ? t[1] : "" } function Q(e, t) { return e && a(e) && "length" in e && (!t && !e.length || e.length - 1 in e && a(e[0])) && !e.nodeType && e !== De } function K(e) { return e = kt(e)[0] || f("Invalid scope") || {}, function (t) { var i = e.current || e.nativeElement || e; return kt(t, i.querySelectorAll ? i : i === e ? f("Invalid scope") || xe.createElement("div") : e) } } function J(e) { return e.sort((function () { return .5 - Math.random() })) } function Z(e) { if (r(e)) return e; var t = a(e) ? e : { each: e }, i = Ht(t.ease), s = t.from || 0, o = parseFloat(t.base) || 0, l = {}, u = 0 < s && s < 1, c = isNaN(s) || u, d = t.axis, p = s, f = s; return n(s) ? p = f = { center: .5, edges: .5, end: 1 }[s] || 0 : !u && c && (p = s[0], f = s[1]), function (e, n, r) { var a, u, h, m, g, v, y, b, w, _ = (r || t).length, x = l[_]; if (!x) { if (!(w = "auto" === t.grid ? 0 : (t.grid || [1, Ve])[1])) { for (y = -Ve; y < (y = r[w++].getBoundingClientRect().left) && w < _;); w-- } for (x = l[_] = [], a = c ? Math.min(w, _) * p - .5 : s % w, u = w === Ve ? 0 : c ? _ * f / w - .5 : s / w | 0, b = Ve, v = y = 0; v < _; v++)h = v % w - a, m = u - (v / w | 0), x[v] = g = d ? Math.abs("y" === d ? m : h) : Je(h * h + m * m), y < g && (y = g), g < b && (b = g); "random" === s && J(x), x.max = y - b, x.min = b, x.v = _ = (parseFloat(t.amount) || parseFloat(t.each) * (_ < w ? _ - 1 : d ? "y" === d ? _ / w : w : Math.max(w, _ / w)) || 0) * ("edges" === s ? -1 : 1), x.b = _ < 0 ? o - _ : o, x.u = U(t.amount || t.each) || 0, i = i && _ < 0 ? Rt(i) : i } return _ = (x[e] - x.min) / x.max || 0, D(x.b + (i ? i(_) : _) * x.v) + x.u } } function ee(e) { var t = Math.pow(10, ((e + "").split(".")[1] || "").length); return function (i) { var n = D(Math.round(parseFloat(i) / e) * e * t); return (n - n % 1) / t + (s(i) ? 0 : U(i)) } } function te(e, t) { var i, n, o = it(e); return !o && a(e) && (i = o = e.radius || Ve, e.values ? (e = kt(e.values), (n = !s(e[0])) && (i *= i)) : e = ee(e.increment)), $(t, o ? r(e) ? function (t) { return n = e(t), Math.abs(n - t) <= i ? n : t } : function (t) { for (var r, o, a = parseFloat(n ? t.x : t), l = parseFloat(n ? t.y : 0), u = Ve, c = 0, d = e.length; d--;)(r = n ? (r = e[d].x - a) * r + (o = e[d].y - l) * o : Math.abs(e[d] - a)) < u && (u = r, c = d); return c = !i || u <= i ? e[c] : t, n || c === t || s(t) ? c : c + U(t) } : ee(e)) } function ie(e, t, i, n) { return $(it(e) ? !t : !0 === i ? !!(i = 0) : !n, (function () { return it(e) ? e[~~(Math.random() * e.length)] : (i = i || 1e-5) && (n = i < 1 ? Math.pow(10, (i + "").length - 2) : 1) && Math.floor(Math.round((e - i / 2 + Math.random() * (t - e + .99 * i)) / i) * i * n) / n })) } function ne(e, t, i) { return $(i, (function (i) { return e[~~t(i)] })) } function re(e) { for (var t, i, n, r, s = 0, o = ""; ~(t = e.indexOf("random(", s));)n = e.indexOf(")", t), r = "[" === e.charAt(t + 7), i = e.substr(t + 7, n - t - 7).match(r ? lt : nt), o += e.substr(s, t - s) + ie(r ? i : +i[0], r ? 0 : +i[1], +i[2] || 1e-5), s = n + 1; return o + e.substr(s, e.length - s) } function se(e, t, i) { var n, r, s, o = e.labels, a = Ve; for (n in o) (r = o[n] - t) < 0 == !!i && r && a > (r = Math.abs(r)) && (s = n, a = r); return s } function oe(e) { return L(e), e.scrollTrigger && e.scrollTrigger.kill(!!ye), e.progress() < 1 && At(e, "onInterrupt"), e } function ae(e, t, i) { return (6 * (e += e < 0 ? 1 : 1 < e ? -1 : 0) < 1 ? t + (i - t) * e * 6 : e < .5 ? i : 3 * e < 2 ? t + (i - t) * (2 / 3 - e) * 6 : t) * Pt + .5 | 0 } function le(e, t, i) { var n, r, o, a, l, u, c, d, p, f, h = e ? s(e) ? [e >> 16, e >> 8 & Pt, e & Pt] : 0 : Ft.black; if (!h) { if ("," === e.substr(-1) && (e = e.substr(0, e.length - 1)), Ft[e]) h = Ft[e]; else if ("#" === e.charAt(0)) { if (e.length < 6 && (e = "#" + (n = e.charAt(1)) + n + (r = e.charAt(2)) + r + (o = e.charAt(3)) + o + (5 === e.length ? e.charAt(4) + e.charAt(4) : "")), 9 === e.length) return [(h = parseInt(e.substr(1, 6), 16)) >> 16, h >> 8 & Pt, h & Pt, parseInt(e.substr(7), 16) / 255]; h = [(e = parseInt(e.substr(1), 16)) >> 16, e >> 8 & Pt, e & Pt] } else if ("hsl" === e.substr(0, 3)) if (h = f = e.match(nt), t) { if (~e.indexOf("=")) return h = e.match(rt), i && h.length < 4 && (h[3] = 1), h } else a = +h[0] % 360 / 360, l = h[1] / 100, n = 2 * (u = h[2] / 100) - (r = u <= .5 ? u * (l + 1) : u + l - u * l), 3 < h.length && (h[3] *= 1), h[0] = ae(a + 1 / 3, n, r), h[1] = ae(a, n, r), h[2] = ae(a - 1 / 3, n, r); else h = e.match(nt) || Ft.transparent; h = h.map(Number) } return t && !f && (n = h[0] / Pt, r = h[1] / Pt, o = h[2] / Pt, u = ((c = Math.max(n, r, o)) + (d = Math.min(n, r, o))) / 2, c === d ? a = l = 0 : (p = c - d, l = .5 < u ? p / (2 - c - d) : p / (c + d), a = c === n ? (r - o) / p + (r < o ? 6 : 0) : c === r ? (o - n) / p + 2 : (n - r) / p + 4, a *= 60), h[0] = ~~(a + .5), h[1] = ~~(100 * l + .5), h[2] = ~~(100 * u + .5)), i && h.length < 4 && (h[3] = 1), h } function ue(e) { var t = [], i = [], n = -1; return e.split(Lt).forEach((function (e) { var r = e.match(st) || []; t.push.apply(t, r), i.push(n += r.length + 1) })), t.c = i, t } function ce(e, t, i) { var n, r, s, o, a = "", l = (e + a).match(Lt), u = t ? "hsla(" : "rgba(", c = 0; if (!l) return e; if (l = l.map((function (e) { return (e = le(e, t, 1)) && u + (t ? e[0] + "," + e[1] + "%," + e[2] + "%," + e[3] : e.join(",")) + ")" })), i && (s = ue(e), (n = i.c).join(a) !== s.c.join(a))) for (o = (r = e.replace(Lt, "1").split(st)).length - 1; c < o; c++)a += r[c] + (~n.indexOf(c) ? l.shift() || u + "0,0,0,0)" : (s.length ? s : l.length ? l : i).shift()); if (!r) for (o = (r = e.split(Lt)).length - 1; c < o; c++)a += r[c] + l[c]; return a + r[o] } function de(e) { var t, i = e.join(" "); if (Lt.lastIndex = 0, Lt.test(i)) return t = It.test(i), e[1] = ce(e[1], t), e[0] = ce(e[0], t, ue(e[1])), !0 } function pe(e, t) { for (var i, n = e._first; n;)n instanceof Ut ? pe(n, t) : !n.vars.yoyoEase || n._yoyo && n._repeat || n._yoyo === t || (n.timeline ? pe(n.timeline, t) : (i = n._ease, n._ease = n._yEase, n._yEase = i, n._yoyo = t)), n = n._next } function fe(e, t, i, n) { void 0 === i && (i = function (e) { return 1 - t(1 - e) }), void 0 === n && (n = function (e) { return e < .5 ? t(2 * e) / 2 : 1 - t(2 * (1 - e)) / 2 }); var r, s = { easeIn: t, easeOut: i, easeInOut: n }; return b(e, (function (e) { for (var t in Wt[e] = ct[e] = s, Wt[r = e.toLowerCase()] = i, s) Wt[r + ("easeIn" === t ? ".in" : "easeOut" === t ? ".out" : ".inOut")] = Wt[e + "." + t] = s[t] })), s } function he(e) { return function (t) { return t < .5 ? (1 - e(1 - 2 * t)) / 2 : .5 + e(2 * (t - .5)) / 2 } } function me(e, t, i) { function n(e) { return 1 === e ? 1 : r * Math.pow(2, -10 * e) * et((e - o) * s) + 1 } var r = 1 <= t ? t : 1, s = (i || (e ? .3 : .45)) / (t < 1 ? t : 1), o = s / Ue * (Math.asin(1 / r) || 0), a = "out" === e ? n : "in" === e ? function (e) { return 1 - n(1 - e) } : he(n); return s = Ue / s, a.config = function (t, i) { return me(e, t, i) }, a } function ge(e, t) { function i(e) { return e ? --e * e * ((t + 1) * e + t) + 1 : 0 } void 0 === t && (t = 1.70158); var n = "out" === e ? i : "in" === e ? function (e) { return 1 - i(1 - e) } : he(i); return n.config = function (t) { return ge(e, t) }, n } var ve, ye, be, we, De, _e, xe, Ee, Te, Se, Ce, Me, ke, Oe, Ae, Pe, Fe, Le, Ie, ze, Be, We, je, Ne, Re, He, Ye, qe, Xe = { autoSleep: 120, force3D: "auto", nullTargetWarn: 1, units: { lineHeight: "" } }, Ge = { duration: .5, overwrite: !1, delay: 0 }, Ve = 1e8, $e = 1 / Ve, Ue = 2 * Math.PI, Qe = Ue / 4, Ke = 0, Je = Math.sqrt, Ze = Math.cos, et = Math.sin, tt = "function" == typeof ArrayBuffer && ArrayBuffer.isView || function () { }, it = Array.isArray, nt = /(?:-?\.?\d|\.)+/gi, rt = /[-+=.]*\d+[.e\-+]*\d*[e\-+]*\d*/g, st = /[-+=.]*\d+[.e-]*\d*[a-z%]*/g, ot = /[-+=.]*\d+\.?\d*(?:e-|e\+)?\d*/gi, at = /[+-]=-?[.\d]+/, lt = /[^,'"\[\]\s]+/gi, ut = /^[+\-=e\s\d]*\d+[.\d]*([a-z]*|%)\s*$/i, ct = {}, dt = { suppressEvents: !0, isStart: !0, kill: !1 }, pt = { suppressEvents: !0, kill: !1 }, ft = { suppressEvents: !0 }, ht = {}, mt = [], gt = {}, vt = {}, yt = {}, bt = 30, wt = [], Dt = "", _t = function (e, t) { for (var i in t) e[i] = t[i]; return e }, xt = function (e, t) { var i = Math.floor(e /= t); return e && i === e ? i - 1 : i }, Et = function (e) { var t = e.data; return "isFromStart" === t || "isStart" === t }, Tt = { _start: 0, endTime: m, totalDuration: m }, St = function e(t, i, r) { var s, o, a, l = t.labels, u = t._recent || Tt, c = t.duration() >= Ve ? u.endTime(!1) : t._dur; return n(i) && (isNaN(i) || i in l) ? (o = i.charAt(0), a = "%" === i.substr(-1), s = i.indexOf("="), "<" === o || ">" === o ? (0 <= s && (i = i.replace(/=/, "")), ("<" === o ? u._start : u.endTime(0 <= u._repeat)) + (parseFloat(i.substr(1)) || 0) * (a ? (s < 0 ? u : r).totalDuration() / 100 : 1)) : s < 0 ? (i in l || (l[i] = c), l[i]) : (o = parseFloat(i.charAt(s - 1) + i.substr(s + 1)), a && r && (o = o / 100 * (it(r) ? r[0] : r).totalDuration()), 1 < s ? e(t, i.substr(0, s - 1), r) + o : c + o)) : null == i ? c : +i }, Ct = function (e, t, i) { return i < e ? e : t < i ? t : i }, Mt = [].slice, kt = function (e, t, i) { return be && !t && be.selector ? be.selector(e) : !n(e) || i || !_e && Bt() ? it(e) ? function (e, t, i) { return void 0 === i && (i = []), e.forEach((function (e) { return n(e) && !t || Q(e, 1) ? i.push.apply(i, kt(e)) : i.push(e) })) || i }(e, i) : Q(e) ? Mt.call(e, 0) : e ? [e] : [] : Mt.call((t || xe).querySelectorAll(e), 0) }, Ot = function (e, t, i, n, r) { var s = t - e, o = n - i; return $(r, (function (t) { return i + ((t - e) / s * o || 0) })) }, At = function (e, t, i) { var n, r, s, o = e.vars, a = o[t], l = be, u = e._ctx; if (a) return n = o[t + "Params"], r = o.callbackScope || e, i && mt.length && E(), u && (be = u), s = n ? a.apply(r, n) : a.call(r), be = l, s }, Pt = 255, Ft = { aqua: [0, Pt, Pt], lime: [0, Pt, 0], silver: [192, 192, 192], black: [0, 0, 0], maroon: [128, 0, 0], teal: [0, 128, 128], blue: [0, 0, Pt], navy: [0, 0, 128], white: [Pt, Pt, Pt], olive: [128, 128, 0], yellow: [Pt, Pt, 0], orange: [Pt, 165, 0], gray: [128, 128, 128], purple: [128, 0, 128], green: [0, 128, 0], red: [Pt, 0, 0], pink: [Pt, 192, 203], cyan: [0, Pt, Pt], transparent: [Pt, Pt, Pt, 0] }, Lt = function () { var e, t = "(?:\\b(?:(?:rgb|rgba|hsl|hsla)\\(.+?\\))|\\B#(?:[0-9a-f]{3,4}){1,2}\\b"; for (e in Ft) t += "|" + e + "\\b"; return new RegExp(t + ")", "gi") }(), It = /hsl[a]?\(/, zt = (Ie = Date.now, ze = 500, Be = 33, We = Ie(), je = We, Re = Ne = 1e3 / 240, Pe = { time: 0, frame: 0, tick: function () { Yt(!0) }, deltaRatio: function (e) { return Fe / (1e3 / (e || 60)) }, wake: function () { Te && (!_e && u() && (De = _e = window, xe = De.document || {}, ct.gsap = zi, (De.gsapVersions || (De.gsapVersions = [])).push(zi.version), d(Ee || De.GreenSockGlobals || !De.gsap && De || {}), Ae = De.requestAnimationFrame), ke && Pe.sleep(), Oe = Ae || function (e) { return setTimeout(e, Re - 1e3 * Pe.time + 1 | 0) }, Me = 1, Yt(2)) }, sleep: function () { (Ae ? De.cancelAnimationFrame : clearTimeout)(ke), Me = 0, Oe = m }, lagSmoothing: function (e, t) { ze = e || 1 / 0, Be = Math.min(t || 33, ze) }, fps: function (e) { Ne = 1e3 / (e || 240), Re = 1e3 * Pe.time + Ne }, add: function (e, t, i) { var n = t ? function (t, i, r, s) { e(t, i, r, s), Pe.remove(n) } : e; return Pe.remove(e), He[i ? "unshift" : "push"](n), Bt(), n }, remove: function (e, t) { ~(t = He.indexOf(e)) && He.splice(t, 1) && t <= Le && Le-- }, _listeners: He = [] }), Bt = function () { return !Me && zt.wake() }, Wt = {}, jt = /^[\d.\-M][\d.\-,\s]/, Nt = /["']/g, Rt = function (e) { return function (t) { return 1 - e(1 - t) } }, Ht = function (e, t) { return e && (r(e) ? e : Wt[e] || function (e) { var t = (e + "").split("("), i = Wt[t[0]]; return i && 1 < t.length && i.config ? i.config.apply(null, ~e.indexOf("{") ? [function (e) { for (var t, i, n, r = {}, s = e.substr(1, e.length - 3).split(":"), o = s[0], a = 1, l = s.length; a < l; a++)i = s[a], t = a !== l - 1 ? i.lastIndexOf(",") : i.length, n = i.substr(0, t), r[o] = isNaN(n) ? n.replace(Nt, "").trim() : +n, o = i.substr(t + 1).trim(); return r }(t[1])] : function (e) { var t = e.indexOf("(") + 1, i = e.indexOf(")"), n = e.indexOf("(", t); return e.substring(t, ~n && n < i ? e.indexOf(")", i + 1) : i) }(e).split(",").map(S)) : Wt._CE && jt.test(e) ? Wt._CE("", e) : i }(e)) || t }; function Yt(e) { var t, i, n, r, s = Ie() - je, o = !0 === e; if (ze < s && (We += s - Be), (0 < (t = (n = (je += s) - We) - Re) || o) && (r = ++Pe.frame, Fe = n - 1e3 * Pe.time, Pe.time = n /= 1e3, Re += t + (Ne <= t ? 4 : Ne - t), i = 1), o || (ke = Oe(Yt)), i) for (Le = 0; Le < He.length; Le++)He[Le](n, Fe, r, e) } function qt(e) { return e < qe ? Ye * e * e : e < .7272727272727273 ? Ye * Math.pow(e - 1.5 / 2.75, 2) + .75 : e < .9090909090909092 ? Ye * (e -= 2.25 / 2.75) * e + .9375 : Ye * Math.pow(e - 2.625 / 2.75, 2) + .984375 } b("Linear,Quad,Cubic,Quart,Quint,Strong", (function (e, t) { var i = t < 5 ? t + 1 : t; fe(e + ",Power" + (i - 1), t ? function (e) { return Math.pow(e, i) } : function (e) { return e }, (function (e) { return 1 - Math.pow(1 - e, i) }), (function (e) { return e < .5 ? Math.pow(2 * e, i) / 2 : 1 - Math.pow(2 * (1 - e), i) / 2 })) })), Wt.Linear.easeNone = Wt.none = Wt.Linear.easeIn, fe("Elastic", me("in"), me("out"), me()), Ye = 7.5625, qe = 1 / 2.75, fe("Bounce", (function (e) { return 1 - qt(1 - e) }), qt), fe("Expo", (function (e) { return e ? Math.pow(2, 10 * (e - 1)) : 0 })), fe("Circ", (function (e) { return -(Je(1 - e * e) - 1) })), fe("Sine", (function (e) { return 1 === e ? 1 : 1 - Ze(e * Qe) })), fe("Back", ge("in"), ge("out"), ge()), Wt.SteppedEase = Wt.steps = ct.SteppedEase = { config: function (e, t) { void 0 === e && (e = 1); var i = 1 / e, n = e + (t ? 0 : 1), r = t ? 1 : 0; return function (e) { return ((n * Ct(0, .99999999, e) | 0) + r) * i } } }, Ge.ease = Wt["quad.out"], b("onComplete,onUpdate,onStart,onRepeat,onReverseComplete,onInterrupt", (function (e) { return Dt += e + "," + e + "Params," })); var Xt, Gt = function (e, t) { this.id = Ke++, (e._gsap = this).target = e, this.harness = t, this.get = t ? t.get : y, this.set = t ? t.getSetter : di }, Vt = ((Xt = $t.prototype).delay = function (e) { return e || 0 === e ? (this.parent && this.parent.smoothChildTiming && this.startTime(this._start + e - this._delay), this._delay = e, this) : this._delay }, Xt.duration = function (e) { return arguments.length ? this.totalDuration(0 < this._repeat ? e + (e + this._rDelay) * this._repeat : e) : this.totalDuration() && this._dur }, Xt.totalDuration = function (e) { return arguments.length ? (this._dirty = 0, X(this, this._repeat < 0 ? e : (e - this._repeat * this._rDelay) / (this._repeat + 1))) : this._tDur }, Xt.totalTime = function (e, t) { if (Bt(), !arguments.length) return this._tTime; var i = this._dp; if (i && i.smoothChildTiming && this._ts) { for (N(this, e), !i._dp || i.parent || R(i, this); i && i.parent;)i.parent._time !== i._start + (0 <= i._ts ? i._tTime / i._ts : (i.totalDuration() - i._tTime) / -i._ts) && i.totalTime(i._tTime, !0), i = i.parent; !this.parent && this._dp.autoRemoveChildren && (0 < this._ts && e < this._tDur || this._ts < 0 && 0 < e || !this._tDur && !e) && H(this._dp, this, this._start - this._delay) } return (this._tTime !== e || !this._dur && !t || this._initted && Math.abs(this._zTime) === $e || !e && !this._initted && (this.add || this._ptLookup)) && (this._ts || (this._pTime = e), T(this, e, t)), this }, Xt.time = function (e, t) { return arguments.length ? this.totalTime(Math.min(this.totalDuration(), e + B(this)) % (this._dur + this._rDelay) || (e ? this._dur : 0), t) : this._time }, Xt.totalProgress = function (e, t) { return arguments.length ? this.totalTime(this.totalDuration() * e, t) : this.totalDuration() ? Math.min(1, this._tTime / this._tDur) : this.ratio }, Xt.progress = function (e, t) { return arguments.length ? this.totalTime(this.duration() * (!this._yoyo || 1 & this.iteration() ? e : 1 - e) + B(this), t) : this.duration() ? Math.min(1, this._time / this._dur) : this.ratio }, Xt.iteration = function (e, t) { var i = this.duration() + this._rDelay; return arguments.length ? this.totalTime(this._time + (e - 1) * i, t) : this._repeat ? xt(this._tTime, i) + 1 : 1 }, Xt.timeScale = function (e) { if (!arguments.length) return this._rts === -$e ? 0 : this._rts; if (this._rts === e) return this; var t = this.parent && this._ts ? W(this.parent._time, this) : this._tTime; return this._rts = +e || 0, this._ts = this._ps || e === -$e ? 0 : this._rts, this.totalTime(Ct(-this._delay, this._tDur, t), !0), j(this), function (e) { for (var t = e.parent; t && t.parent;)t._dirty = 1, t.totalDuration(), t = t.parent; return e }(this) }, Xt.paused = function (e) { return arguments.length ? (this._ps !== e && ((this._ps = e) ? (this._pTime = this._tTime || Math.max(-this._delay, this.rawTime()), this._ts = this._act = 0) : (Bt(), this._ts = this._rts, this.totalTime(this.parent && !this.parent.smoothChildTiming ? this.rawTime() : this._tTime || this._pTime, 1 === this.progress() && Math.abs(this._zTime) !== $e && (this._tTime -= $e)))), this) : this._ps }, Xt.startTime = function (e) { if (arguments.length) { this._start = e; var t = this.parent || this._dp; return !t || !t._sort && this.parent || H(t, this, e - this._delay), this } return this._start }, Xt.endTime = function (e) { return this._start + (l(e) ? this.totalDuration() : this.duration()) / Math.abs(this._ts || 1) }, Xt.rawTime = function (e) { var t = this.parent || this._dp; return t ? e && (!this._ts || this._repeat && this._time && this.totalProgress() < 1) ? this._tTime % (this._dur + this._rDelay) : this._ts ? W(t.rawTime(e), this) : this._tTime : this._tTime }, Xt.revert = function (e) { void 0 === e && (e = ft); var t = ye; return ye = e, (this._initted || this._startAt) && (this.timeline && this.timeline.revert(e), this.totalTime(-.01, e.suppressEvents)), "nested" !== this.data && !1 !== e.kill && this.kill(), ye = t, this }, Xt.globalTime = function (e) { for (var t = this, i = arguments.length ? e : t.rawTime(); t;)i = t._start + i / (t._ts || 1), t = t._dp; return !this.parent && this._sat ? this._sat.vars.immediateRender ? -1 : this._sat.globalTime(e) : i }, Xt.repeat = function (e) { return arguments.length ? (this._repeat = e === 1 / 0 ? -2 : e, G(this)) : -2 === this._repeat ? 1 / 0 : this._repeat }, Xt.repeatDelay = function (e) { if (arguments.length) { var t = this._time; return this._rDelay = e, G(this), t ? this.time(t) : this } return this._rDelay }, Xt.yoyo = function (e) { return arguments.length ? (this._yoyo = e, this) : this._yoyo }, Xt.seek = function (e, t) { return this.totalTime(St(this, e), l(t)) }, Xt.restart = function (e, t) { return this.play().totalTime(e ? -this._delay : 0, l(t)) }, Xt.play = function (e, t) { return null != e && this.seek(e, t), this.reversed(!1).paused(!1) }, Xt.reverse = function (e, t) { return null != e && this.seek(e || this.totalDuration(), t), this.reversed(!0).paused(!1) }, Xt.pause = function (e, t) { return null != e && this.seek(e, t), this.paused(!0) }, Xt.resume = function () { return this.paused(!1) }, Xt.reversed = function (e) { return arguments.length ? (!!e !== this.reversed() && this.timeScale(-this._rts || (e ? -$e : 0)), this) : this._rts < 0 }, Xt.invalidate = function () { return this._initted = this._act = 0, this._zTime = -$e, this }, Xt.isActive = function () { var e, t = this.parent || this._dp, i = this._start; return !(t && !(this._ts && this._initted && t.isActive() && (e = t.rawTime(!0)) >= i && e < this.endTime(!0) - $e)) }, Xt.eventCallback = function (e, t, i) { var n = this.vars; return 1 < arguments.length ? (t ? (n[e] = t, i && (n[e + "Params"] = i), "onUpdate" === e && (this._onUpdate = t)) : delete n[e], this) : n[e] }, Xt.then = function (e) { var t = this; return new Promise((function (i) { function n() { var e = t.then; t.then = null, r(s) && (s = s(t)) && (s.then || s === t) && (t.then = e), i(s), t.then = e } var s = r(e) ? e : C; t._initted && 1 === t.totalProgress() && 0 <= t._ts || !t._tTime && t._ts < 0 ? n() : t._prom = n })) }, Xt.kill = function () { oe(this) }, $t); function $t(e) { this.vars = e, this._delay = +e.delay || 0, (this._repeat = e.repeat === 1 / 0 ? -2 : e.repeat || 0) && (this._rDelay = e.repeatDelay || 0, this._yoyo = !!e.yoyo || !!e.yoyoEase), this._ts = 1, X(this, +e.duration, 1, 1), this.data = e.data, be && (this._ctx = be).data.push(this), Me || zt.wake() } M(Vt.prototype, { _time: 0, _start: 0, _end: 0, _tTime: 0, _tDur: 0, _dirty: 0, _repeat: 0, _yoyo: !1, parent: null, _initted: !1, _rDelay: 0, _ts: 1, _dp: 0, ratio: 0, _zTime: -$e, _prom: 0, _ps: !1, _rts: 1 }); var Ut = function (e) { function o(t, n) { var r; return void 0 === t && (t = {}), (r = e.call(this, t) || this).labels = {}, r.smoothChildTiming = !!t.smoothChildTiming, r.autoRemoveChildren = !!t.autoRemoveChildren, r._sort = l(t.sortChildren), we && H(t.parent || we, i(r), n), t.reversed && r.reverse(), t.paused && r.paused(!0), t.scrollTrigger && Y(i(r), t.scrollTrigger), r } t(o, e); var a = o.prototype; return a.to = function (e, t, i) { return V(0, arguments, this), this }, a.from = function (e, t, i) { return V(1, arguments, this), this }, a.fromTo = function (e, t, i, n) { return V(2, arguments, this), this }, a.set = function (e, t, i) { return t.duration = 0, t.parent = this, A(t).repeatDelay || (t.repeat = 0), t.immediateRender = !!t.immediateRender, new si(e, t, St(this, i), 1), this }, a.call = function (e, t, i) { return H(this, si.delayedCall(0, e, t), i) }, a.staggerTo = function (e, t, i, n, r, s, o) { return i.duration = t, i.stagger = i.stagger || n, i.onComplete = s, i.onCompleteParams = o, i.parent = this, new si(e, i, St(this, r)), this }, a.staggerFrom = function (e, t, i, n, r, s, o) { return i.runBackwards = 1, A(i).immediateRender = l(i.immediateRender), this.staggerTo(e, t, i, n, r, s, o) }, a.staggerFromTo = function (e, t, i, n, r, s, o, a) { return n.startAt = i, A(n).immediateRender = l(n.immediateRender), this.staggerTo(e, t, n, r, s, o, a) }, a.render = function (e, t, i) { var n, r, s, o, a, l, u, c, d, p, f, h, m = this._time, g = this._dirty ? this.totalDuration() : this._tDur, v = this._dur, y = e <= 0 ? 0 : D(e), b = this._zTime < 0 != e < 0 && (this._initted || !v); if (this !== we && g < y && 0 <= e && (y = g), y !== this._tTime || i || b) { if (m !== this._time && v && (y += this._time - m, e += this._time - m), n = y, d = this._start, l = !(c = this._ts), b && (v || (m = this._zTime), !e && t || (this._zTime = e)), this._repeat) { if (f = this._yoyo, a = v + this._rDelay, this._repeat < -1 && e < 0) return this.totalTime(100 * a + e, t, i); if (n = D(y % a), y === g ? (o = this._repeat, n = v) : ((o = ~~(y / a)) && o === y / a && (n = v, o--), v < n && (n = v)), p = xt(this._tTime, a), !m && this._tTime && p !== o && (p = o), f && 1 & o && (n = v - n, h = 1), o !== p && !this._lock) { var w = f && 1 & p, _ = w === (f && 1 & o); if (o < p && (w = !w), m = w ? 0 : v, this._lock = 1, this.render(m || (h ? 0 : D(o * a)), t, !v)._lock = 0, this._tTime = y, !t && this.parent && At(this, "onRepeat"), this.vars.repeatRefresh && !h && (this.invalidate()._lock = 1), m && m !== this._time || l != !this._ts || this.vars.onRepeat && !this.parent && !this._act) return this; if (v = this._dur, g = this._tDur, _ && (this._lock = 2, m = w ? v : -1e-4, this.render(m, !0), this.vars.repeatRefresh && !h && this.invalidate()), this._lock = 0, !this._ts && !l) return this; pe(this, h) } } if (this._hasPause && !this._forcing && this._lock < 2 && (u = function (e, t, i) { var n; if (t < i) for (n = e._first; n && n._start <= i;) { if ("isPause" === n.data && n._start > t) return n; n = n._next } else for (n = e._last; n && n._start >= i;) { if ("isPause" === n.data && n._start < t) return n; n = n._prev } }(this, D(m), D(n))) && (y -= n - (n = u._start)), this._tTime = y, this._time = n, this._act = !c, this._initted || (this._onUpdate = this.vars.onUpdate, this._initted = 1, this._zTime = e, m = 0), !m && n && !t && (At(this, "onStart"), this._tTime !== y)) return this; if (m <= n && 0 <= e) for (r = this._first; r;) { if (s = r._next, (r._act || n >= r._start) && r._ts && u !== r) { if (r.parent !== this) return this.render(e, t, i); if (r.render(0 < r._ts ? (n - r._start) * r._ts : (r._dirty ? r.totalDuration() : r._tDur) + (n - r._start) * r._ts, t, i), n !== this._time || !this._ts && !l) { u = 0, s && (y += this._zTime = -$e); break } } r = s } else { r = this._last; for (var x = e < 0 ? e : n; r;) { if (s = r._prev, (r._act || x <= r._end) && r._ts && u !== r) { if (r.parent !== this) return this.render(e, t, i); if (r.render(0 < r._ts ? (x - r._start) * r._ts : (r._dirty ? r.totalDuration() : r._tDur) + (x - r._start) * r._ts, t, i || ye && (r._initted || r._startAt)), n !== this._time || !this._ts && !l) { u = 0, s && (y += this._zTime = x ? -$e : $e); break } } r = s } } if (u && !t && (this.pause(), u.render(m <= n ? 0 : -$e)._zTime = m <= n ? 1 : -1, this._ts)) return this._start = d, j(this), this.render(e, t, i); this._onUpdate && !t && At(this, "onUpdate", !0), (y === g && this._tTime >= this.totalDuration() || !y && m) && (d !== this._start && Math.abs(c) === Math.abs(this._ts) || this._lock || (!e && v || !(y === g && 0 < this._ts || !y && this._ts < 0) || L(this, 1), t || e < 0 && !m || !y && !m && g || (At(this, y === g && 0 <= e ? "onComplete" : "onReverseComplete", !0), !this._prom || y < g && 0 < this.timeScale() || this._prom()))) } return this }, a.add = function (e, t) { var i = this; if (s(t) || (t = St(this, t, e)), !(e instanceof Vt)) { if (it(e)) return e.forEach((function (e) { return i.add(e, t) })), this; if (n(e)) return this.addLabel(e, t); if (!r(e)) return this; e = si.delayedCall(0, e) } return this !== e ? H(this, e, t) : this }, a.getChildren = function (e, t, i, n) { void 0 === e && (e = !0), void 0 === t && (t = !0), void 0 === i && (i = !0), void 0 === n && (n = -Ve); for (var r = [], s = this._first; s;)s._start >= n && (s instanceof si ? t && r.push(s) : (i && r.push(s), e && r.push.apply(r, s.getChildren(!0, t, i)))), s = s._next; return r }, a.getById = function (e) { for (var t = this.getChildren(1, 1, 1), i = t.length; i--;)if (t[i].vars.id === e) return t[i] }, a.remove = function (e) { return n(e) ? this.removeLabel(e) : r(e) ? this.killTweensOf(e) : (F(this, e), e === this._recent && (this._recent = this._last), I(this)) }, a.totalTime = function (t, i) { return arguments.length ? (this._forcing = 1, !this._dp && this._ts && (this._start = D(zt.time - (0 < this._ts ? t / this._ts : (this.totalDuration() - t) / -this._ts))), e.prototype.totalTime.call(this, t, i), this._forcing = 0, this) : this._tTime }, a.addLabel = function (e, t) { return this.labels[e] = St(this, t), this }, a.removeLabel = function (e) { return delete this.labels[e], this }, a.addPause = function (e, t, i) { var n = si.delayedCall(0, t || m, i); return n.data = "isPause", this._hasPause = 1, H(this, n, St(this, e)) }, a.removePause = function (e) { var t = this._first; for (e = St(this, e); t;)t._start === e && "isPause" === t.data && L(t), t = t._next }, a.killTweensOf = function (e, t, i) { for (var n = this.getTweensOf(e, i), r = n.length; r--;)Jt !== n[r] && n[r].kill(e, t); return this }, a.getTweensOf = function (e, t) { for (var i, n = [], r = kt(e), o = this._first, a = s(t); o;)o instanceof si ? x(o._targets, r) && (a ? (!Jt || o._initted && o._ts) && o.globalTime(0) <= t && o.globalTime(o.totalDuration()) > t : !t || o.isActive()) && n.push(o) : (i = o.getTweensOf(r, t)).length && n.push.apply(n, i), o = o._next; return n }, a.tweenTo = function (e, t) { t = t || {}; var i, n = this, r = St(n, e), s = t.startAt, o = t.onStart, a = t.onStartParams, l = t.immediateRender, u = si.to(n, M({ ease: t.ease || "none", lazy: !1, immediateRender: !1, time: r, overwrite: "auto", duration: t.duration || Math.abs((r - (s && "time" in s ? s.time : n._time)) / n.timeScale()) || $e, onStart: function () { if (n.pause(), !i) { var e = t.duration || Math.abs((r - (s && "time" in s ? s.time : n._time)) / n.timeScale()); u._dur !== e && X(u, e, 0, 1).render(u._time, !0, !0), i = 1 } o && o.apply(u, a || []) } }, t)); return l ? u.render(0) : u }, a.tweenFromTo = function (e, t, i) { return this.tweenTo(t, M({ startAt: { time: St(this, e) } }, i)) }, a.recent = function () { return this._recent }, a.nextLabel = function (e) { return void 0 === e && (e = this._time), se(this, St(this, e)) }, a.previousLabel = function (e) { return void 0 === e && (e = this._time), se(this, St(this, e), 1) }, a.currentLabel = function (e) { return arguments.length ? this.seek(e, !0) : this.previousLabel(this._time + $e) }, a.shiftChildren = function (e, t, i) { void 0 === i && (i = 0); for (var n, r = this._first, s = this.labels; r;)r._start >= i && (r._start += e, r._end += e), r = r._next; if (t) for (n in s) s[n] >= i && (s[n] += e); return I(this) }, a.invalidate = function (t) { var i = this._first; for (this._lock = 0; i;)i.invalidate(t), i = i._next; return e.prototype.invalidate.call(this, t) }, a.clear = function (e) { void 0 === e && (e = !0); for (var t, i = this._first; i;)t = i._next, this.remove(i), i = t; return this._dp && (this._time = this._tTime = this._pTime = 0), e && (this.labels = {}), I(this) }, a.totalDuration = function (e) { var t, i, n, r = 0, s = this, o = s._last, a = Ve; if (arguments.length) return s.timeScale((s._repeat < 0 ? s.duration() : s.totalDuration()) / (s.reversed() ? -e : e)); if (s._dirty) { for (n = s.parent; o;)t = o._prev, o._dirty && o.totalDuration(), a < (i = o._start) && s._sort && o._ts && !s._lock ? (s._lock = 1, H(s, o, i - o._delay, 1)._lock = 0) : a = i, i < 0 && o._ts && (r -= i, (!n && !s._dp || n && n.smoothChildTiming) && (s._start += i / s._ts, s._time -= i, s._tTime -= i), s.shiftChildren(-i, !1, -1 / 0), a = 0), o._end > r && o._ts && (r = o._end), o = t; X(s, s === we && s._time > r ? s._time : r, 1, 1), s._dirty = 0 } return s._tDur }, o.updateRoot = function (e) { if (we._ts && (T(we, W(e, we)), Se = zt.frame), zt.frame >= bt) { bt += Xe.autoSleep || 120; var t = we._first; if ((!t || !t._ts) && Xe.autoSleep && zt._listeners.length < 2) { for (; t && !t._ts;)t = t._next; t || zt.sleep() } } }, o }(Vt); function Qt(e, t, i, s, o, l) { var u, c, d, p; if (vt[e] && !1 !== (u = new vt[e]).init(o, u.rawVars ? t[e] : function (e, t, i, s, o) { if (r(e) && (e = ii(e, o, t, i, s)), !a(e) || e.style && e.nodeType || it(e) || tt(e)) return n(e) ? ii(e, o, t, i, s) : e; var l, u = {}; for (l in e) u[l] = ii(e[l], o, t, i, s); return u }(t[e], s, o, l, i), i, s, l) && (i._pt = c = new bi(i._pt, o, e, 0, 1, u.render, u, 0, u.priority), i !== Ce)) for (d = i._ptLookup[i._targets.indexOf(o)], p = u._props.length; p--;)d[u._props[p]] = c; return u } function Kt(e, t, i, n) { var r, s, o = t.ease || n || "power1.inOut"; if (it(t)) s = i[e] || (i[e] = []), t.forEach((function (e, i) { return s.push({ t: i / (t.length - 1) * 100, v: e, e: o }) })); else for (r in t) s = i[r] || (i[r] = []), "ease" === r || s.push({ t: parseFloat(e), v: t[r], e: o }) } M(Ut.prototype, { _lock: 0, _hasPause: 0, _forcing: 0 }); var Jt, Zt, ei = function (e, t, i, s, o, a, l, u, c, d) { r(s) && (s = s(o || 0, e, a)); var f, h = e[t], m = "get" !== i ? i : r(h) ? c ? e[t.indexOf("set") || !r(e["get" + t.substr(3)]) ? t : "get" + t.substr(3)](c) : e[t]() : h, g = r(h) ? c ? ci : ui : li; if (n(s) && (~s.indexOf("random(") && (s = re(s)), "=" === s.charAt(1) && (!(f = _(m, s) + (U(m) || 0)) && 0 !== f || (s = f))), !d || m !== s || Zt) return isNaN(m * s) || "" === s ? (h || t in e || p(t, s), function (e, t, i, n, r, s, o) { var a, l, u, c, d, p, f, h, m = new bi(this._pt, e, t, 0, 1, hi, null, r), g = 0, v = 0; for (m.b = i, m.e = n, i += "", (f = ~(n += "").indexOf("random(")) && (n = re(n)), s && (s(h = [i, n], e, t), i = h[0], n = h[1]), l = i.match(ot) || []; a = ot.exec(n);)c = a[0], d = n.substring(g, a.index), u ? u = (u + 1) % 5 : "rgba(" === d.substr(-5) && (u = 1), c !== l[v++] && (p = parseFloat(l[v - 1]) || 0, m._pt = { _next: m._pt, p: d || 1 === v ? d : ",", s: p, c: "=" === c.charAt(1) ? _(p, c) - p : parseFloat(c) - p, m: u && u < 4 ? Math.round : 0 }, g = ot.lastIndex); return m.c = g < n.length ? n.substring(g, n.length) : "", m.fp = o, (at.test(n) || f) && (m.e = 0), this._pt = m }.call(this, e, t, m, s, g, u || Xe.stringFilter, c)) : (f = new bi(this._pt, e, t, +m || 0, s - (m || 0), "boolean" == typeof h ? fi : pi, 0, g), c && (f.fp = c), l && f.modifier(l, this, e), this._pt = f) }, ti = function e(t, i, n) { var r, s, o, a, u, c, d, p, f, h, m, y, b, w = t.vars, D = w.ease, _ = w.startAt, x = w.immediateRender, T = w.lazy, S = w.onUpdate, C = w.onUpdateParams, k = w.callbackScope, A = w.runBackwards, P = w.yoyoEase, F = w.keyframes, I = w.autoRevert, z = t._dur, B = t._startAt, W = t._targets, j = t.parent, N = j && "nested" === j.data ? j.vars.targets : W, R = "auto" === t._overwrite && !ve, H = t.timeline; if (!H || F && D || (D = "none"), t._ease = Ht(D, Ge.ease), t._yEase = P ? Rt(Ht(!0 === P ? D : P, Ge.ease)) : 0, P && t._yoyo && !t._repeat && (P = t._yEase, t._yEase = t._ease, t._ease = P), t._from = !H && !!w.runBackwards, !H || F && !w.stagger) { if (y = (p = W[0] ? v(W[0]).harness : 0) && w[p.prop], r = O(w, ht), B && (B._zTime < 0 && B.progress(1), i < 0 && A && x && !I ? B.render(-1, !0) : B.revert(A && z ? pt : dt), B._lazy = 0), _) { if (L(t._startAt = si.set(W, M({ data: "isStart", overwrite: !1, parent: j, immediateRender: !0, lazy: !B && l(T), startAt: null, delay: 0, onUpdate: S, onUpdateParams: C, callbackScope: k, stagger: 0 }, _))), t._startAt._dp = 0, t._startAt._sat = t, i < 0 && (ye || !x && !I) && t._startAt.revert(pt), x && z && i <= 0 && n <= 0) return void (i && (t._zTime = i)) } else if (A && z && !B) if (i && (x = !1), o = M({ overwrite: !1, data: "isFromStart", lazy: x && !B && l(T), immediateRender: x, stagger: 0, parent: j }, r), y && (o[p.prop] = y), L(t._startAt = si.set(W, o)), t._startAt._dp = 0, t._startAt._sat = t, i < 0 && (ye ? t._startAt.revert(pt) : t._startAt.render(-1, !0)), t._zTime = i, x) { if (!i) return } else e(t._startAt, $e, $e); for (t._pt = t._ptCache = 0, T = z && l(T) || T && !z, s = 0; s < W.length; s++) { if (d = (u = W[s])._gsap || g(W)[s]._gsap, t._ptLookup[s] = h = {}, gt[d.id] && mt.length && E(), m = N === W ? s : N.indexOf(u), p && !1 !== (f = new p).init(u, y || r, t, m, N) && (t._pt = a = new bi(t._pt, u, f.name, 0, 1, f.render, f, 0, f.priority), f._props.forEach((function (e) { h[e] = a })), f.priority && (c = 1)), !p || y) for (o in r) vt[o] && (f = Qt(o, r, t, m, u, N)) ? f.priority && (c = 1) : h[o] = a = ei.call(t, u, o, "get", r[o], m, N, 0, w.stringFilter); t._op && t._op[s] && t.kill(u, t._op[s]), R && t._pt && (Jt = t, we.killTweensOf(u, h, t.globalTime(i)), b = !t.parent, Jt = 0), t._pt && T && (gt[d.id] = 1) } c && yi(t), t._onInit && t._onInit(t) } t._onUpdate = S, t._initted = (!t._op || t._pt) && !b, F && i <= 0 && H.render(Ve, !0, !0) }, ii = function (e, t, i, s, o) { return r(e) ? e.call(t, i, s, o) : n(e) && ~e.indexOf("random(") ? re(e) : e }, ni = Dt + "repeat,repeatDelay,yoyo,repeatRefresh,yoyoEase,autoRevert", ri = {}; b(ni + ",id,stagger,delay,duration,paused,scrollTrigger", (function (e) { return ri[e] = 1 })); var si = function (e) { function r(t, n, r, o) { var u; "number" == typeof n && (r.duration = n, n = r, r = null); var d, p, h, m, v, y, b, w, _ = (u = e.call(this, o ? n : A(n)) || this).vars, x = _.duration, E = _.delay, T = _.immediateRender, S = _.stagger, C = _.overwrite, k = _.keyframes, P = _.defaults, F = _.scrollTrigger, L = _.yoyoEase, I = n.parent || we, z = (it(t) || tt(t) ? s(t[0]) : "length" in n) ? [t] : kt(t); if (u._targets = z.length ? g(z) : f("GSAP target " + t + " not found. https://greensock.com", !Xe.nullTargetWarn) || [], u._ptLookup = [], u._overwrite = C, k || S || c(x) || c(E)) { if (n = u.vars, (d = u.timeline = new Ut({ data: "nested", defaults: P || {}, targets: I && "nested" === I.data ? I.vars.targets : z })).kill(), d.parent = d._dp = i(u), d._start = 0, S || c(x) || c(E)) { if (m = z.length, b = S && Z(S), a(S)) for (v in S) ~ni.indexOf(v) && ((w = w || {})[v] = S[v]); for (p = 0; p < m; p++)(h = O(n, ri)).stagger = 0, L && (h.yoyoEase = L), w && _t(h, w), y = z[p], h.duration = +ii(x, i(u), p, y, z), h.delay = (+ii(E, i(u), p, y, z) || 0) - u._delay, !S && 1 === m && h.delay && (u._delay = E = h.delay, u._start += E, h.delay = 0), d.to(y, h, b ? b(p, y, z) : 0), d._ease = Wt.none; d.duration() ? x = E = 0 : u.timeline = 0 } else if (k) { A(M(d.vars.defaults, { ease: "none" })), d._ease = Ht(k.ease || n.ease || "none"); var B, W, j, N = 0; if (it(k)) k.forEach((function (e) { return d.to(z, e, ">") })), d.duration(); else { for (v in h = {}, k) "ease" === v || "easeEach" === v || Kt(v, k[v], h, k.easeEach); for (v in h) for (B = h[v].sort((function (e, t) { return e.t - t.t })), p = N = 0; p < B.length; p++)(j = { ease: (W = B[p]).e, duration: (W.t - (p ? B[p - 1].t : 0)) / 100 * x })[v] = W.v, d.to(z, j, N), N += j.duration; d.duration() < x && d.to({}, { duration: x - d.duration() }) } } x || u.duration(x = d.duration()) } else u.timeline = 0; return !0 !== C || ve || (Jt = i(u), we.killTweensOf(z), Jt = 0), H(I, i(u), r), n.reversed && u.reverse(), n.paused && u.paused(!0), (T || !x && !k && u._start === D(I._time) && l(T) && function e(t) { return !t || t._ts && e(t.parent) }(i(u)) && "nested" !== I.data) && (u._tTime = -$e, u.render(Math.max(0, -E) || 0)), F && Y(i(u), F), u } t(r, e); var o = r.prototype; return o.render = function (e, t, i) { var n, r, s, o, a, l, u, c, d, p = this._time, f = this._tDur, h = this._dur, m = e < 0, g = f - $e < e && !m ? f : e < $e ? 0 : e; if (h) { if (g !== this._tTime || !e || i || !this._initted && this._tTime || this._startAt && this._zTime < 0 != m) { if (n = g, c = this.timeline, this._repeat) { if (o = h + this._rDelay, this._repeat < -1 && m) return this.totalTime(100 * o + e, t, i); if (n = D(g % o), g === f ? (s = this._repeat, n = h) : ((s = ~~(g / o)) && s === g / o && (n = h, s--), h < n && (n = h)), (l = this._yoyo && 1 & s) && (d = this._yEase, n = h - n), a = xt(this._tTime, o), n === p && !i && this._initted) return this._tTime = g, this; s !== a && (c && this._yEase && pe(c, l), !this.vars.repeatRefresh || l || this._lock || (this._lock = i = 1, this.render(D(o * s), !0).invalidate()._lock = 0)) } if (!this._initted) { if (q(this, m ? e : n, i, t, g)) return this._tTime = 0, this; if (p !== this._time) return this; if (h !== this._dur) return this.render(e, t, i) } if (this._tTime = g, this._time = n, !this._act && this._ts && (this._act = 1, this._lazy = 0), this.ratio = u = (d || this._ease)(n / h), this._from && (this.ratio = u = 1 - u), n && !p && !t && (At(this, "onStart"), this._tTime !== g)) return this; for (r = this._pt; r;)r.r(u, r.d), r = r._next; c && c.render(e < 0 ? e : !n && l ? -$e : c._dur * c._ease(n / this._dur), t, i) || this._startAt && (this._zTime = e), this._onUpdate && !t && (m && z(this, e, 0, i), At(this, "onUpdate")), this._repeat && s !== a && this.vars.onRepeat && !t && this.parent && At(this, "onRepeat"), g !== this._tDur && g || this._tTime !== g || (m && !this._onUpdate && z(this, e, 0, !0), !e && h || !(g === this._tDur && 0 < this._ts || !g && this._ts < 0) || L(this, 1), t || m && !p || !(g || p || l) || (At(this, g === f ? "onComplete" : "onReverseComplete", !0), !this._prom || g < f && 0 < this.timeScale() || this._prom())) } } else !function (e, t, i, n) { var r, s, o, a = e.ratio, l = t < 0 || !t && (!e._start && function e(t) { var i = t.parent; return i && i._ts && i._initted && !i._lock && (i.rawTime() < 0 || e(i)) }(e) && (e._initted || !Et(e)) || (e._ts < 0 || e._dp._ts < 0) && !Et(e)) ? 0 : 1, u = e._rDelay, c = 0; if (u && e._repeat && (c = Ct(0, e._tDur, t), s = xt(c, u), e._yoyo && 1 & s && (l = 1 - l), s !== xt(e._tTime, u) && (a = 1 - l, e.vars.repeatRefresh && e._initted && e.invalidate())), l !== a || ye || n || e._zTime === $e || !t && e._zTime) { if (!e._initted && q(e, t, n, i, c)) return; for (o = e._zTime, e._zTime = t || (i ? $e : 0), i = i || t && !o, e.ratio = l, e._from && (l = 1 - l), e._time = 0, e._tTime = c, r = e._pt; r;)r.r(l, r.d), r = r._next; t < 0 && z(e, t, 0, !0), e._onUpdate && !i && At(e, "onUpdate"), c && e._repeat && !i && e.parent && At(e, "onRepeat"), (t >= e._tDur || t < 0) && e.ratio === l && (l && L(e, 1), i || ye || (At(e, l ? "onComplete" : "onReverseComplete", !0), e._prom && e._prom())) } else e._zTime || (e._zTime = t) }(this, e, t, i); return this }, o.targets = function () { return this._targets }, o.invalidate = function (t) { return t && this.vars.runBackwards || (this._startAt = 0), this._pt = this._op = this._onUpdate = this._lazy = this.ratio = 0, this._ptLookup = [], this.timeline && this.timeline.invalidate(t), e.prototype.invalidate.call(this, t) }, o.resetTo = function (e, t, i, n) { Me || zt.wake(), this._ts || this.play(); var r = Math.min(this._dur, (this._dp._time - this._start) * this._ts); return this._initted || ti(this, r), function (e, t, i, n, r, s, o) { var a, l, u, c, d = (e._pt && e._ptCache || (e._ptCache = {}))[t]; if (!d) for (d = e._ptCache[t] = [], u = e._ptLookup, c = e._targets.length; c--;) { if ((a = u[c][t]) && a.d && a.d._pt) for (a = a.d._pt; a && a.p !== t && a.fp !== t;)a = a._next; if (!a) return Zt = 1, e.vars[t] = "+=0", ti(e, o), Zt = 0, 1; d.push(a) } for (c = d.length; c--;)(a = (l = d[c])._pt || l).s = !n && 0 !== n || r ? a.s + (n || 0) + s * a.c : n, a.c = i - a.s, l.e && (l.e = w(i) + U(l.e)), l.b && (l.b = a.s + U(l.b)) }(this, e, t, i, n, this._ease(r / this._dur), r) ? this.resetTo(e, t, i, n) : (N(this, 0), this.parent || P(this._dp, this, "_first", "_last", this._dp._sort ? "_start" : 0), this.render(0)) }, o.kill = function (e, t) { if (void 0 === t && (t = "all"), !(e || t && "all" !== t)) return this._lazy = this._pt = 0, this.parent ? oe(this) : this; if (this.timeline) { var i = this.timeline.totalDuration(); return this.timeline.killTweensOf(e, t, Jt && !0 !== Jt.vars.overwrite)._first || oe(this), this.parent && i !== this.timeline.totalDuration() && X(this, this._dur * this.timeline._tDur / i, 0, 1), this } var r, s, o, a, l, u, c, d = this._targets, p = e ? kt(e) : d, f = this._ptLookup, h = this._pt; if ((!t || "all" === t) && function (e, t) { for (var i = e.length, n = i === t.length; n && i-- && e[i] === t[i];); return i < 0 }(d, p)) return "all" === t && (this._pt = 0), oe(this); for (r = this._op = this._op || [], "all" !== t && (n(t) && (l = {}, b(t, (function (e) { return l[e] = 1 })), t = l), t = function (e, t) { var i, n, r, s, o = e[0] ? v(e[0]).harness : 0, a = o && o.aliases; if (!a) return t; for (n in i = _t({}, t), a) if (n in i) for (r = (s = a[n].split(",")).length; r--;)i[s[r]] = i[n]; return i }(d, t)), c = d.length; c--;)if (~p.indexOf(d[c])) for (l in s = f[c], "all" === t ? (r[c] = t, a = s, o = {}) : (o = r[c] = r[c] || {}, a = t), a) (u = s && s[l]) && ("kill" in u.d && !0 !== u.d.kill(l) || F(this, u, "_pt"), delete s[l]), "all" !== o && (o[l] = 1); return this._initted && !this._pt && h && oe(this), this }, r.to = function (e, t, i) { return new r(e, t, i) }, r.from = function (e, t) { return V(1, arguments) }, r.delayedCall = function (e, t, i, n) { return new r(t, 0, { immediateRender: !1, lazy: !1, overwrite: !1, delay: e, onComplete: t, onReverseComplete: t, onCompleteParams: i, onReverseCompleteParams: i, callbackScope: n }) }, r.fromTo = function (e, t, i) { return V(2, arguments) }, r.set = function (e, t) { return t.duration = 0, t.repeatDelay || (t.repeat = 0), new r(e, t) }, r.killTweensOf = function (e, t, i) { return we.killTweensOf(e, t, i) }, r }(Vt); function oi(e, t, i) { return e.setAttribute(t, i) } function ai(e, t, i, n) { n.mSet(e, t, n.m.call(n.tween, i, n.mt), n) } M(si.prototype, { _targets: [], _lazy: 0, _startAt: 0, _op: 0, _onInit: 0 }), b("staggerTo,staggerFrom,staggerFromTo", (function (e) { si[e] = function () { var t = new Ut, i = Mt.call(arguments, 0); return i.splice("staggerFromTo" === e ? 5 : 4, 0, 0), t[e].apply(t, i) } })); var li = function (e, t, i) { return e[t] = i }, ui = function (e, t, i) { return e[t](i) }, ci = function (e, t, i, n) { return e[t](n.fp, i) }, di = function (e, t) { return r(e[t]) ? ui : o(e[t]) && e.setAttribute ? oi : li }, pi = function (e, t) { return t.set(t.t, t.p, Math.round(1e6 * (t.s + t.c * e)) / 1e6, t) }, fi = function (e, t) { return t.set(t.t, t.p, !!(t.s + t.c * e), t) }, hi = function (e, t) { var i = t._pt, n = ""; if (!e && t.b) n = t.b; else if (1 === e && t.e) n = t.e; else { for (; i;)n = i.p + (i.m ? i.m(i.s + i.c * e) : Math.round(1e4 * (i.s + i.c * e)) / 1e4) + n, i = i._next; n += t.c } t.set(t.t, t.p, n, t) }, mi = function (e, t) { for (var i = t._pt; i;)i.r(e, i.d), i = i._next }, gi = function (e, t, i, n) { for (var r, s = this._pt; s;)r = s._next, s.p === n && s.modifier(e, t, i), s = r }, vi = function (e) { for (var t, i, n = this._pt; n;)i = n._next, n.p === e && !n.op || n.op === e ? F(this, n, "_pt") : n.dep || (t = 1), n = i; return !t }, yi = function (e) { for (var t, i, n, r, s = e._pt; s;) { for (t = s._next, i = n; i && i.pr > s.pr;)i = i._next; (s._prev = i ? i._prev : r) ? s._prev._next = s : n = s, (s._next = i) ? i._prev = s : r = s, s = t } e._pt = n }, bi = (wi.prototype.modifier = function (e, t, i) { this.mSet = this.mSet || this.set, this.set = ai, this.m = e, this.mt = i, this.tween = t }, wi); function wi(e, t, i, n, r, s, o, a, l) { this.t = t, this.s = n, this.c = r, this.p = i, this.r = s || pi, this.d = o || this, this.set = a || li, this.pr = l || 0, (this._next = e) && (e._prev = this) } function Di(e) { return (Ti[e] || Si).map((function (e) { return e() })) } function _i() { var e = Date.now(), t = []; 2 < e - Ci && (Di("matchMediaInit"), Ei.forEach((function (e) { var i, n, r, s, o = e.queries, a = e.conditions; for (n in o) (i = De.matchMedia(o[n]).matches) && (r = 1), i !== a[n] && (a[n] = i, s = 1); s && (e.revert(), r && t.push(e)) })), Di("matchMediaRevert"), t.forEach((function (e) { return e.onMatch(e) })), Ci = e, Di("matchMedia")) } b(Dt + "parent,duration,ease,delay,overwrite,runBackwards,startAt,yoyo,immediateRender,repeat,repeatDelay,data,paused,reversed,lazy,callbackScope,stringFilter,id,yoyoEase,stagger,inherit,repeatRefresh,keyframes,autoRevert,scrollTrigger", (function (e) { return ht[e] = 1 })), ct.TweenMax = ct.TweenLite = si, ct.TimelineLite = ct.TimelineMax = Ut, we = new Ut({ sortChildren: !1, defaults: Ge, autoRemoveChildren: !0, id: "root", smoothChildTiming: !0 }), Xe.stringFilter = de; var xi, Ei = [], Ti = {}, Si = [], Ci = 0, Mi = ((xi = ki.prototype).add = function (e, t, i) { function n() { var e, n = be, o = s.selector; return n && n !== s && n.data.push(s), i && (s.selector = K(i)), be = s, r(e = t.apply(s, arguments)) && s._r.push(e), be = n, s.selector = o, s.isReverted = !1, e } r(e) && (i = t, t = e, e = r); var s = this; return s.last = n, e === r ? n(s) : e ? s[e] = n : n }, xi.ignore = function (e) { var t = be; be = null, e(this), be = t }, xi.getTweens = function () { var e = []; return this.data.forEach((function (t) { return t instanceof ki ? e.push.apply(e, t.getTweens()) : t instanceof si && !(t.parent && "nested" === t.parent.data) && e.push(t) })), e }, xi.clear = function () { this._r.length = this.data.length = 0 }, xi.kill = function (e, t) { var i = this; if (e) { var n = this.getTweens(); this.data.forEach((function (e) { "isFlip" === e.data && (e.revert(), e.getChildren(!0, !0, !1).forEach((function (e) { return n.splice(n.indexOf(e), 1) }))) })), n.map((function (e) { return { g: e.globalTime(0), t: e } })).sort((function (e, t) { return t.g - e.g || -1 })).forEach((function (t) { return t.t.revert(e) })), this.data.forEach((function (t) { return !(t instanceof Vt) && t.revert && t.revert(e) })), this._r.forEach((function (t) { return t(e, i) })), this.isReverted = !0 } else this.data.forEach((function (e) { return e.kill && e.kill() })); if (this.clear(), t) { var r = Ei.indexOf(this); ~r && Ei.splice(r, 1) } }, xi.revert = function (e) { this.kill(e || {}) }, ki); function ki(e, t) { this.selector = t && K(t), this.data = [], this._r = [], this.isReverted = !1, e && this.add(e) } var Oi, Ai = ((Oi = Pi.prototype).add = function (e, t, i) { a(e) || (e = { matches: e }); var n, r, s, o = new Mi(0, i || this.scope), l = o.conditions = {}; for (r in this.contexts.push(o), t = o.add("onMatch", t), o.queries = e) "all" === r ? s = 1 : (n = De.matchMedia(e[r])) && (Ei.indexOf(o) < 0 && Ei.push(o), (l[r] = n.matches) && (s = 1), n.addListener ? n.addListener(_i) : n.addEventListener("change", _i)); return s && t(o), this }, Oi.revert = function (e) { this.kill(e || {}) }, Oi.kill = function (e) { this.contexts.forEach((function (t) { return t.kill(e, !0) })) }, Pi); function Pi(e) { this.contexts = [], this.scope = e } var Fi = { registerPlugin: function () { for (var e = arguments.length, t = new Array(e), i = 0; i < e; i++)t[i] = arguments[i]; t.forEach((function (e) { return function (e) { var t = (e = !e.name && e.default || e).name, i = r(e), n = t && !i && e.init ? function () { this._props = [] } : e, s = { init: m, render: mi, add: ei, kill: vi, modifier: gi, rawVars: 0 }, o = { targetTest: 0, get: 0, getSetter: di, aliases: {}, register: 0 }; if (Bt(), e !== n) { if (vt[t]) return; M(n, M(O(e, s), o)), _t(n.prototype, _t(s, O(e, o))), vt[n.prop = t] = n, e.targetTest && (wt.push(n), ht[t] = 1), t = ("css" === t ? "CSS" : t.charAt(0).toUpperCase() + t.substr(1)) + "Plugin" } h(t, n), e.register && e.register(zi, n, bi) }(e) })) }, timeline: function (e) { return new Ut(e) }, getTweensOf: function (e, t) { return we.getTweensOf(e, t) }, getProperty: function (e, t, i, r) { n(e) && (e = kt(e)[0]); var s = v(e || {}).get, o = i ? C : S; return "native" === i && (i = ""), e ? t ? o((vt[t] && vt[t].get || s)(e, t, i, r)) : function (t, i, n) { return o((vt[t] && vt[t].get || s)(e, t, i, n)) } : e }, quickSetter: function (e, t, i) { if (1 < (e = kt(e)).length) { var n = e.map((function (e) { return zi.quickSetter(e, t, i) })), r = n.length; return function (e) { for (var t = r; t--;)n[t](e) } } e = e[0] || {}; var s = vt[t], o = v(e), a = o.harness && (o.harness.aliases || {})[t] || t, l = s ? function (t) { var n = new s; Ce._pt = 0, n.init(e, i ? t + i : t, Ce, 0, [e]), n.render(1, n), Ce._pt && mi(1, Ce) } : o.set(e, a); return s ? l : function (t) { return l(e, a, i ? t + i : t, o, 1) } }, quickTo: function (e, t, i) { function n(e, i, n) { return s.resetTo(t, e, i, n) } var r, s = zi.to(e, _t(((r = {})[t] = "+=0.1", r.paused = !0, r), i || {})); return n.tween = s, n }, isTweening: function (e) { return 0 < we.getTweensOf(e, !0).length }, defaults: function (e) { return e && e.ease && (e.ease = Ht(e.ease, Ge.ease)), k(Ge, e || {}) }, config: function (e) { return k(Xe, e || {}) }, registerEffect: function (e) { var t = e.name, i = e.effect, n = e.plugins, r = e.defaults, s = e.extendTimeline; (n || "").split(",").forEach((function (e) { return e && !vt[e] && !ct[e] && f(t + " effect requires " + e + " plugin.") })), yt[t] = function (e, t, n) { return i(kt(e), M(t || {}, r), n) }, s && (Ut.prototype[t] = function (e, i, n) { return this.add(yt[t](e, a(i) ? i : (n = i) && {}, this), n) }) }, registerEase: function (e, t) { Wt[e] = Ht(t) }, parseEase: function (e, t) { return arguments.length ? Ht(e, t) : Wt }, getById: function (e) { return we.getById(e) }, exportRoot: function (e, t) { void 0 === e && (e = {}); var i, n, r = new Ut(e); for (r.smoothChildTiming = l(e.smoothChildTiming), we.remove(r), r._dp = 0, r._time = r._tTime = we._time, i = we._first; i;)n = i._next, !t && !i._dur && i instanceof si && i.vars.onComplete === i._targets[0] || H(r, i, i._start - i._delay), i = n; return H(we, r, 0), r }, context: function (e, t) { return e ? new Mi(e, t) : be }, matchMedia: function (e) { return new Ai(e) }, matchMediaRefresh: function () { return Ei.forEach((function (e) { var t, i, n = e.conditions; for (i in n) n[i] && (n[i] = !1, t = 1); t && e.revert() })) || _i() }, addEventListener: function (e, t) { var i = Ti[e] || (Ti[e] = []); ~i.indexOf(t) || i.push(t) }, removeEventListener: function (e, t) { var i = Ti[e], n = i && i.indexOf(t); 0 <= n && i.splice(n, 1) }, utils: { wrap: function e(t, i, n) { var r = i - t; return it(t) ? ne(t, e(0, t.length), i) : $(n, (function (e) { return (r + (e - t) % r) % r + t })) }, wrapYoyo: function e(t, i, n) { var r = i - t, s = 2 * r; return it(t) ? ne(t, e(0, t.length - 1), i) : $(n, (function (e) { return t + (r < (e = (s + (e - t) % s) % s || 0) ? s - e : e) })) }, distribute: Z, random: ie, snap: te, normalize: function (e, t, i) { return Ot(e, t, 0, 1, i) }, getUnit: U, clamp: function (e, t, i) { return $(i, (function (i) { return Ct(e, t, i) })) }, splitColor: le, toArray: kt, selector: K, mapRange: Ot, pipe: function () { for (var e = arguments.length, t = new Array(e), i = 0; i < e; i++)t[i] = arguments[i]; return function (e) { return t.reduce((function (e, t) { return t(e) }), e) } }, unitize: function (e, t) { return function (i) { return e(parseFloat(i)) + (t || U(i)) } }, interpolate: function e(t, i, r, s) { var o = isNaN(t + i) ? 0 : function (e) { return (1 - e) * t + e * i }; if (!o) { var a, l, u, c, d, p = n(t), f = {}; if (!0 === r && (s = 1) && (r = null), p) t = { p: t }, i = { p: i }; else if (it(t) && !it(i)) { for (u = [], c = t.length, d = c - 2, l = 1; l < c; l++)u.push(e(t[l - 1], t[l])); c--, o = function (e) { e *= c; var t = Math.min(d, ~~e); return u[t](e - t) }, r = i } else s || (t = _t(it(t) ? [] : {}, t)); if (!u) { for (a in i) ei.call(f, t, a, "get", i[a]); o = function (e) { return mi(e, f) || (p ? t.p : t) } } } return $(r, o) }, shuffle: J }, install: d, effects: yt, ticker: zt, updateRoot: Ut.updateRoot, plugins: vt, globalTimeline: we, core: { PropTween: bi, globals: h, Tween: si, Timeline: Ut, Animation: Vt, getCache: v, _removeLinkedListItem: F, reverting: function () { return ye }, context: function (e) { return e && be && (be.data.push(e), e._ctx = be), be }, suppressOverwrites: function (e) { return ve = e } } }; function Li(e, t) { for (var i = e._pt; i && i.p !== t && i.op !== t && i.fp !== t;)i = i._next; return i } function Ii(e, t) { return { name: e, rawVars: 1, init: function (e, i, r) { r._onInit = function (e) { var r, s; if (n(i) && (r = {}, b(i, (function (e) { return r[e] = 1 })), i = r), t) { for (s in r = {}, i) r[s] = t(i[s]); i = r } !function (e, t) { var i, n, r, s = e._targets; for (i in t) for (n = s.length; n--;)(r = (r = e._ptLookup[n][i]) && r.d) && (r._pt && (r = Li(r, i)), r && r.modifier && r.modifier(t[i], e, s[n], i)) }(e, i) } } } } b("to,from,fromTo,delayedCall,set,killTweensOf", (function (e) { return Fi[e] = si[e] })), zt.add(Ut.updateRoot), Ce = Fi.to({}, { duration: 0 }); var zi = Fi.registerPlugin({ name: "attr", init: function (e, t, i, n, r) { var s, o, a; for (s in this.tween = i, t) a = e.getAttribute(s) || "", (o = this.add(e, "setAttribute", (a || 0) + "", t[s], n, r, 0, 0, s)).op = s, o.b = a, this._props.push(s) }, render: function (e, t) { for (var i = t._pt; i;)ye ? i.set(i.t, i.p, i.b, i) : i.r(e, i.d), i = i._next } }, { name: "endArray", init: function (e, t) { for (var i = t.length; i--;)this.add(e, i, e[i] || 0, t[i], 0, 0, 0, 0, 0, 1) } }, Ii("roundProps", ee), Ii("modifiers"), Ii("snap", te)) || Fi; function Bi(e, t) { return t.set(t.t, t.p, Math.round(1e4 * (t.s + t.c * e)) / 1e4 + t.u, t) } function Wi(e, t) { return t.set(t.t, t.p, 1 === e ? t.e : Math.round(1e4 * (t.s + t.c * e)) / 1e4 + t.u, t) } function ji(e, t) { return t.set(t.t, t.p, e ? Math.round(1e4 * (t.s + t.c * e)) / 1e4 + t.u : t.b, t) } function Ni(e, t) { var i = t.s + t.c * e; t.set(t.t, t.p, ~~(i + (i < 0 ? -.5 : .5)) + t.u, t) } function Ri(e, t) { return t.set(t.t, t.p, e ? t.e : t.b, t) } function Hi(e, t) { return t.set(t.t, t.p, 1 !== e ? t.b : t.e, t) } function Yi(e, t, i) { return e.style[t] = i } function qi(e, t, i) { return e.style.setProperty(t, i) } function Xi(e, t, i) { return e._gsap[t] = i } function Gi(e, t, i) { return e._gsap.scaleX = e._gsap.scaleY = i } function Vi(e, t, i, n, r) { var s = e._gsap; s.scaleX = s.scaleY = i, s.renderTransform(r, s) } function $i(e, t, i, n, r) { var s = e._gsap; s[t] = i, s.renderTransform(r, s) } function Ui(e, t) { var i = this, n = this.target, r = n.style; if (e in Vn) { if (this.tfm = this.tfm || {}, "transform" !== e && (~(e = er[e] || e).indexOf(",") ? e.split(",").forEach((function (e) { return i.tfm[e] = ar(n, e) })) : this.tfm[e] = n._gsap.x ? n._gsap[e] : ar(n, e)), 0 <= this.props.indexOf(tr)) return; n._gsap.svg && (this.svgo = n.getAttribute("data-svg-origin"), this.props.push(ir, t, "")), e = tr } (r || t) && this.props.push(e, t, r[e]) } function Qi(e) { e.translate && (e.removeProperty("translate"), e.removeProperty("scale"), e.removeProperty("rotate")) } function Ki() { var e, t, i = this.props, n = this.target, r = n.style, s = n._gsap; for (e = 0; e < i.length; e += 3)i[e + 1] ? n[i[e]] = i[e + 2] : i[e + 2] ? r[i[e]] = i[e + 2] : r.removeProperty(i[e].replace(Kn, "-$1").toLowerCase()); if (this.tfm) { for (t in this.tfm) s[t] = this.tfm[t]; s.svg && (s.renderTransform(), n.setAttribute("data-svg-origin", this.svgo || "")), !(e = Cn()) || e.isStart || r[tr] || (Qi(r), s.uncache = 1) } } function Ji(e, t) { var i = { target: e, props: [], revert: Ki, save: Ui }; return t && t.split(",").forEach((function (e) { return i.save(e) })), i } function Zi(e, t) { var i = _n.createElementNS ? _n.createElementNS((t || "http://www.w3.org/1999/xhtml").replace(/^https/, "http"), e) : _n.createElement(e); return i.style ? i : _n.createElement(e) } function en(e, t, i) { var n = getComputedStyle(e); return n[t] || n.getPropertyValue(t.replace(Kn, "-$1").toLowerCase()) || n.getPropertyValue(t) || !i && en(e, rr(t) || t, 1) || "" } function tn() { "undefined" != typeof window && window.document && (Dn = window, _n = Dn.document, xn = _n.documentElement, Tn = Zi("div") || { style: {} }, Zi("div"), tr = rr(tr), ir = tr + "Origin", Tn.style.cssText = "border-width:0;line-height:0;position:absolute;padding:0", Mn = !!rr("perspective"), Cn = zi.core.reverting, En = 1) } function nn(e) { var t, i = Zi("svg", this.ownerSVGElement && this.ownerSVGElement.getAttribute("xmlns") || "http://www.w3.org/2000/svg"), n = this.parentNode, r = this.nextSibling, s = this.style.cssText; if (xn.appendChild(i), i.appendChild(this), this.style.display = "block", e) try { t = this.getBBox(), this._gsapBBox = this.getBBox, this.getBBox = nn } catch (e) { } else this._gsapBBox && (t = this._gsapBBox()); return n && (r ? n.insertBefore(this, r) : n.appendChild(this)), xn.removeChild(i), this.style.cssText = s, t } function rn(e, t) { for (var i = t.length; i--;)if (e.hasAttribute(t[i])) return e.getAttribute(t[i]) } function sn(e) { var t; try { t = e.getBBox() } catch (i) { t = nn.call(e, !0) } return t && (t.width || t.height) || e.getBBox === nn || (t = nn.call(e, !0)), !t || t.width || t.x || t.y ? t : { x: +rn(e, ["x", "cx", "x1"]) || 0, y: +rn(e, ["y", "cy", "y1"]) || 0, width: 0, height: 0 } } function on(e) { return !(!e.getCTM || e.parentNode && !e.ownerSVGElement || !sn(e)) } function an(e, t) { if (t) { var i = e.style; t in Vn && t !== ir && (t = tr), i.removeProperty ? ("ms" !== t.substr(0, 2) && "webkit" !== t.substr(0, 6) || (t = "-" + t), i.removeProperty(t.replace(Kn, "-$1").toLowerCase())) : i.removeAttribute(t) } } function ln(e, t, i, n, r, s) { var o = new bi(e._pt, t, i, 0, 1, s ? Hi : Ri); return (e._pt = o).b = n, o.e = r, e._props.push(i), o } function un(e, t, i, n) { var r, s, o, a, l = parseFloat(i) || 0, u = (i + "").trim().substr((l + "").length) || "px", c = Tn.style, d = Jn.test(t), p = "svg" === e.tagName.toLowerCase(), f = (p ? "client" : "offset") + (d ? "Width" : "Height"), h = "px" === n, m = "%" === n; return n === u || !l || sr[n] || sr[u] ? l : ("px" === u || h || (l = un(e, t, i, "px")), a = e.getCTM && on(e), !m && "%" !== u || !Vn[t] && !~t.indexOf("adius") ? (c[d ? "width" : "height"] = 100 + (h ? u : n), s = ~t.indexOf("adius") || "em" === n && e.appendChild && !p ? e : e.parentNode, a && (s = (e.ownerSVGElement || {}).parentNode), s && s !== _n && s.appendChild || (s = _n.body), (o = s._gsap) && m && o.width && d && o.time === zt.time && !o.uncache ? w(l / o.width * 100) : (!m && "%" !== u || or[en(s, "display")] || (c.position = en(e, "position")), s === e && (c.position = "static"), s.appendChild(Tn), r = Tn[f], s.removeChild(Tn), c.position = "absolute", d && m && ((o = v(s)).time = zt.time, o.width = s[f]), w(h ? r * l / 100 : r && l ? 100 / r * l : 0))) : (r = a ? e.getBBox()[d ? "width" : "height"] : e[f], w(m ? l / r * 100 : l / 100 * r))) } function cn(e, t, i, n) { if (!i || "none" === i) { var r = rr(t, e, 1), s = r && en(e, r, 1); s && s !== i ? (t = r, i = s) : "borderColor" === t && (i = en(e, "borderTopColor")) } var o, a, l, u, c, d, p, f, h, m, g, v = new bi(this._pt, e.style, t, 0, 1, hi), y = 0, b = 0; if (v.b = i, v.e = n, i += "", "auto" == (n += "") && (e.style[t] = n, n = en(e, t) || n, e.style[t] = i), de(o = [i, n]), n = o[1], l = (i = o[0]).match(st) || [], (n.match(st) || []).length) { for (; a = st.exec(n);)p = a[0], h = n.substring(y, a.index), c ? c = (c + 1) % 5 : "rgba(" !== h.substr(-5) && "hsla(" !== h.substr(-5) || (c = 1), p !== (d = l[b++] || "") && (u = parseFloat(d) || 0, g = d.substr((u + "").length), "=" === p.charAt(1) && (p = _(u, p) + g), f = parseFloat(p), m = p.substr((f + "").length), y = st.lastIndex - m.length, m || (m = m || Xe.units[t] || g, y === n.length && (n += m, v.e += m)), g !== m && (u = un(e, t, d, m) || 0), v._pt = { _next: v._pt, p: h || 1 === b ? h : ",", s: u, c: f - u, m: c && c < 4 || "zIndex" === t ? Math.round : 0 }); v.c = y < n.length ? n.substring(y, n.length) : "" } else v.r = "display" === t && "none" === n ? Hi : Ri; return at.test(n) && (v.e = 0), this._pt = v } function dn(e) { var t = e.split(" "), i = t[0], n = t[1] || "50%"; return "top" !== i && "bottom" !== i && "left" !== n && "right" !== n || (e = i, i = n, n = e), t[0] = lr[i] || i, t[1] = lr[n] || n, t.join(" ") } function pn(e, t) { if (t.tween && t.tween._time === t.tween._dur) { var i, n, r, s = t.t, o = s.style, a = t.u, l = s._gsap; if ("all" === a || !0 === a) o.cssText = "", n = 1; else for (r = (a = a.split(",")).length; -1 < --r;)i = a[r], Vn[i] && (n = 1, i = "transformOrigin" === i ? ir : tr), an(s, i); n && (an(s, tr), l && (l.svg && s.removeAttribute("transform"), pr(s, 1), l.uncache = 1, Qi(o))) } } function fn(e) { return "matrix(1, 0, 0, 1, 0, 0)" === e || "none" === e || !e } function hn(e) { var t = en(e, tr); return fn(t) ? cr : t.substr(7).match(rt).map(w) } function mn(e, t) { var i, n, r, s, o = e._gsap || v(e), a = e.style, l = hn(e); return o.svg && e.getAttribute("transform") ? "1,0,0,1,0,0" === (l = [(r = e.transform.baseVal.consolidate().matrix).a, r.b, r.c, r.d, r.e, r.f]).join(",") ? cr : l : (l !== cr || e.offsetParent || e === xn || o.svg || (r = a.display, a.display = "block", (i = e.parentNode) && e.offsetParent || (s = 1, n = e.nextElementSibling, xn.appendChild(e)), l = hn(e), r ? a.display = r : an(e, "display"), s && (n ? i.insertBefore(e, n) : i ? i.appendChild(e) : xn.removeChild(e))), t && 6 < l.length ? [l[0], l[1], l[4], l[5], l[12], l[13]] : l) } function gn(e, t, i, n, r, s) { var o, a, l, u = e._gsap, c = r || mn(e, !0), d = u.xOrigin || 0, p = u.yOrigin || 0, f = u.xOffset || 0, h = u.yOffset || 0, m = c[0], g = c[1], v = c[2], y = c[3], b = c[4], w = c[5], D = t.split(" "), _ = parseFloat(D[0]) || 0, x = parseFloat(D[1]) || 0; i ? c !== cr && (a = m * y - g * v) && (l = _ * (-g / a) + x * (m / a) - (m * w - g * b) / a, _ = _ * (y / a) + x * (-v / a) + (v * w - y * b) / a, x = l) : (_ = (o = sn(e)).x + (~D[0].indexOf("%") ? _ / 100 * o.width : _), x = o.y + (~(D[1] || D[0]).indexOf("%") ? x / 100 * o.height : x)), n || !1 !== n && u.smooth ? (b = _ - d, w = x - p, u.xOffset = f + (b * m + w * v) - b, u.yOffset = h + (b * g + w * y) - w) : u.xOffset = u.yOffset = 0, u.xOrigin = _, u.yOrigin = x, u.smooth = !!n, u.origin = t, u.originIsAbsolute = !!i, e.style[ir] = "0px 0px", s && (ln(s, u, "xOrigin", d, _), ln(s, u, "yOrigin", p, x), ln(s, u, "xOffset", f, u.xOffset), ln(s, u, "yOffset", h, u.yOffset)), e.setAttribute("data-svg-origin", _ + " " + x) } function vn(e, t, i) { var n = U(t); return w(parseFloat(t) + parseFloat(un(e, "x", i + "px", n))) + n } function yn(e, t, i, r, s) { var o, a, l = 360, u = n(s), c = parseFloat(s) * (u && ~s.indexOf("rad") ? $n : 1) - r, d = r + c + "deg"; return u && ("short" === (o = s.split("_")[1]) && (c %= l) != c % 180 && (c += c < 0 ? l : -l), "cw" === o && c < 0 ? c = (c + 36e9) % l - ~~(c / l) * l : "ccw" === o && 0 < c && (c = (c - 36e9) % l - ~~(c / l) * l)), e._pt = a = new bi(e._pt, t, i, r, c, Wi), a.e = d, a.u = "deg", e._props.push(i), a } function bn(e, t) { for (var i in t) e[i] = t[i]; return e } function wn(e, t, i) { var n, r, s, o, a, l, u, c = bn({}, i._gsap), d = i.style; for (r in c.svg ? (s = i.getAttribute("transform"), i.setAttribute("transform", ""), d[tr] = t, n = pr(i, 1), an(i, tr), i.setAttribute("transform", s)) : (s = getComputedStyle(i)[tr], d[tr] = t, n = pr(i, 1), d[tr] = s), Vn) (s = c[r]) !== (o = n[r]) && "perspective,force3D,transformOrigin,svgOrigin".indexOf(r) < 0 && (a = U(s) !== (u = U(o)) ? un(i, r, s, u) : parseFloat(s), l = parseFloat(o), e._pt = new bi(e._pt, n, r, a, l - a, Bi), e._pt.u = u || 0, e._props.push(r)); bn(n, c) } si.version = Ut.version = zi.version = "3.11.4", Te = 1, u() && Bt(); var Dn, _n, xn, En, Tn, Sn, Cn, Mn, kn = Wt.Power0, On = Wt.Power1, An = Wt.Power2, Pn = Wt.Power3, Fn = Wt.Power4, Ln = Wt.Linear, In = Wt.Quad, zn = Wt.Cubic, Bn = Wt.Quart, Wn = Wt.Quint, jn = Wt.Strong, Nn = Wt.Elastic, Rn = Wt.Back, Hn = Wt.SteppedEase, Yn = Wt.Bounce, qn = Wt.Sine, Xn = Wt.Expo, Gn = Wt.Circ, Vn = {}, $n = 180 / Math.PI, Un = Math.PI / 180, Qn = Math.atan2, Kn = /([A-Z])/g, Jn = /(left|right|width|margin|padding|x)/i, Zn = /[\s,\(]\S/, er = { autoAlpha: "opacity,visibility", scale: "scaleX,scaleY", alpha: "opacity" }, tr = "transform", ir = tr + "Origin", nr = "O,Moz,ms,Ms,Webkit".split(","), rr = function (e, t, i) { var n = (t || Tn).style, r = 5; if (e in n && !i) return e; for (e = e.charAt(0).toUpperCase() + e.substr(1); r-- && !(nr[r] + e in n);); return r < 0 ? null : (3 === r ? "ms" : 0 <= r ? nr[r] : "") + e }, sr = { deg: 1, rad: 1, turn: 1 }, or = { grid: 1, flex: 1 }, ar = function (e, t, i, n) { var r; return En || tn(), t in er && "transform" !== t && ~(t = er[t]).indexOf(",") && (t = t.split(",")[0]), Vn[t] && "transform" !== t ? (r = pr(e, n), r = "transformOrigin" !== t ? r[t] : r.svg ? r.origin : fr(en(e, ir)) + " " + r.zOrigin + "px") : (r = e.style[t]) && "auto" !== r && !n && !~(r + "").indexOf("calc(") || (r = ur[t] && ur[t](e, t, i) || en(e, t) || y(e, t) || ("opacity" === t ? 1 : 0)), i && !~(r + "").trim().indexOf(" ") ? un(e, t, r, i) + i : r }, lr = { top: "0%", bottom: "100%", left: "0%", right: "100%", center: "50%" }, ur = { clearProps: function (e, t, i, n, r) { if ("isFromStart" !== r.data) { var s = e._pt = new bi(e._pt, t, i, 0, 0, pn); return s.u = n, s.pr = -10, s.tween = r, e._props.push(i), 1 } } }, cr = [1, 0, 0, 1, 0, 0], dr = {}, pr = function (e, t) { var i = e._gsap || new Gt(e); if ("x" in i && !t && !i.uncache) return i; var n, r, s, o, a, l, u, c, d, p, f, h, m, g, v, y, b, D, _, x, E, T, S, C, M, k, O, A, P, F, L, I, z = e.style, B = i.scaleX < 0, W = "deg", j = getComputedStyle(e), N = en(e, ir) || "0"; return n = r = s = l = u = c = d = p = f = 0, o = a = 1, i.svg = !(!e.getCTM || !on(e)), j.translate && ("none" === j.translate && "none" === j.scale && "none" === j.rotate || (z[tr] = ("none" !== j.translate ? "translate3d(" + (j.translate + " 0 0").split(" ").slice(0, 3).join(", ") + ") " : "") + ("none" !== j.rotate ? "rotate(" + j.rotate + ") " : "") + ("none" !== j.scale ? "scale(" + j.scale.split(" ").join(",") + ") " : "") + ("none" !== j[tr] ? j[tr] : "")), z.scale = z.rotate = z.translate = "none"), g = mn(e, i.svg), i.svg && (C = i.uncache ? (M = e.getBBox(), N = i.xOrigin - M.x + "px " + (i.yOrigin - M.y) + "px", "") : !t && e.getAttribute("data-svg-origin"), gn(e, C || N, !!C || i.originIsAbsolute, !1 !== i.smooth, g)), h = i.xOrigin || 0, m = i.yOrigin || 0, g !== cr && (D = g[0], _ = g[1], x = g[2], E = g[3], n = T = g[4], r = S = g[5], 6 === g.length ? (o = Math.sqrt(D * D + _ * _), a = Math.sqrt(E * E + x * x), l = D || _ ? Qn(_, D) * $n : 0, (d = x || E ? Qn(x, E) * $n + l : 0) && (a *= Math.abs(Math.cos(d * Un))), i.svg && (n -= h - (h * D + m * x), r -= m - (h * _ + m * E))) : (I = g[6], F = g[7], O = g[8], A = g[9], P = g[10], L = g[11], n = g[12], r = g[13], s = g[14], u = (v = Qn(I, P)) * $n, v && (C = T * (y = Math.cos(-v)) + O * (b = Math.sin(-v)), M = S * y + A * b, k = I * y + P * b, O = T * -b + O * y, A = S * -b + A * y, P = I * -b + P * y, L = F * -b + L * y, T = C, S = M, I = k), c = (v = Qn(-x, P)) * $n, v && (y = Math.cos(-v), L = E * (b = Math.sin(-v)) + L * y, D = C = D * y - O * b, _ = M = _ * y - A * b, x = k = x * y - P * b), l = (v = Qn(_, D)) * $n, v && (C = D * (y = Math.cos(v)) + _ * (b = Math.sin(v)), M = T * y + S * b, _ = _ * y - D * b, S = S * y - T * b, D = C, T = M), u && 359.9 < Math.abs(u) + Math.abs(l) && (u = l = 0, c = 180 - c), o = w(Math.sqrt(D * D + _ * _ + x * x)), a = w(Math.sqrt(S * S + I * I)), v = Qn(T, S), d = 2e-4 < Math.abs(v) ? v * $n : 0, f = L ? 1 / (L < 0 ? -L : L) : 0), i.svg && (C = e.getAttribute("transform"), i.forceCSS = e.setAttribute("transform", "") || !fn(en(e, tr)), C && e.setAttribute("transform", C))), 90 < Math.abs(d) && Math.abs(d) < 270 && (B ? (o *= -1, d += l <= 0 ? 180 : -180, l += l <= 0 ? 180 : -180) : (a *= -1, d += d <= 0 ? 180 : -180)), t = t || i.uncache, i.x = n - ((i.xPercent = n && (!t && i.xPercent || (Math.round(e.offsetWidth / 2) === Math.round(-n) ? -50 : 0))) ? e.offsetWidth * i.xPercent / 100 : 0) + "px", i.y = r - ((i.yPercent = r && (!t && i.yPercent || (Math.round(e.offsetHeight / 2) === Math.round(-r) ? -50 : 0))) ? e.offsetHeight * i.yPercent / 100 : 0) + "px", i.z = s + "px", i.scaleX = w(o), i.scaleY = w(a), i.rotation = w(l) + W, i.rotationX = w(u) + W, i.rotationY = w(c) + W, i.skewX = d + W, i.skewY = p + W, i.transformPerspective = f + "px", (i.zOrigin = parseFloat(N.split(" ")[2]) || 0) && (z[ir] = fr(N)), i.xOffset = i.yOffset = 0, i.force3D = Xe.force3D, i.renderTransform = i.svg ? br : Mn ? yr : hr, i.uncache = 0, i }, fr = function (e) { return (e = e.split(" "))[0] + " " + e[1] }, hr = function (e, t) { t.z = "0px", t.rotationY = t.rotationX = "0deg", t.force3D = 0, yr(e, t) }, mr = "0deg", gr = "0px", vr = ") ", yr = function (e, t) { var i = t || this, n = i.xPercent, r = i.yPercent, s = i.x, o = i.y, a = i.z, l = i.rotation, u = i.rotationY, c = i.rotationX, d = i.skewX, p = i.skewY, f = i.scaleX, h = i.scaleY, m = i.transformPerspective, g = i.force3D, v = i.target, y = i.zOrigin, b = "", w = "auto" === g && e && 1 !== e || !0 === g; if (y && (c !== mr || u !== mr)) { var D, _ = parseFloat(u) * Un, x = Math.sin(_), E = Math.cos(_); _ = parseFloat(c) * Un, s = vn(v, s, x * (D = Math.cos(_)) * -y), o = vn(v, o, -Math.sin(_) * -y), a = vn(v, a, E * D * -y + y) } m !== gr && (b += "perspective(" + m + vr), (n || r) && (b += "translate(" + n + "%, " + r + "%) "), !w && s === gr && o === gr && a === gr || (b += a !== gr || w ? "translate3d(" + s + ", " + o + ", " + a + ") " : "translate(" + s + ", " + o + vr), l !== mr && (b += "rotate(" + l + vr), u !== mr && (b += "rotateY(" + u + vr), c !== mr && (b += "rotateX(" + c + vr), d === mr && p === mr || (b += "skew(" + d + ", " + p + vr), 1 === f && 1 === h || (b += "scale(" + f + ", " + h + vr), v.style[tr] = b || "translate(0, 0)" }, br = function (e, t) { var i, n, r, s, o, a = t || this, l = a.xPercent, u = a.yPercent, c = a.x, d = a.y, p = a.rotation, f = a.skewX, h = a.skewY, m = a.scaleX, g = a.scaleY, v = a.target, y = a.xOrigin, b = a.yOrigin, D = a.xOffset, _ = a.yOffset, x = a.forceCSS, E = parseFloat(c), T = parseFloat(d); p = parseFloat(p), f = parseFloat(f), (h = parseFloat(h)) && (f += h = parseFloat(h), p += h), p || f ? (p *= Un, f *= Un, i = Math.cos(p) * m, n = Math.sin(p) * m, r = Math.sin(p - f) * -g, s = Math.cos(p - f) * g, f && (h *= Un, o = Math.tan(f - h), r *= o = Math.sqrt(1 + o * o), s *= o, h && (o = Math.tan(h), i *= o = Math.sqrt(1 + o * o), n *= o)), i = w(i), n = w(n), r = w(r), s = w(s)) : (i = m, s = g, n = r = 0), (E && !~(c + "").indexOf("px") || T && !~(d + "").indexOf("px")) && (E = un(v, "x", c, "px"), T = un(v, "y", d, "px")), (y || b || D || _) && (E = w(E + y - (y * i + b * r) + D), T = w(T + b - (y * n + b * s) + _)), (l || u) && (E = w(E + l / 100 * (o = v.getBBox()).width), T = w(T + u / 100 * o.height)), o = "matrix(" + i + "," + n + "," + r + "," + s + "," + E + "," + T + ")", v.setAttribute("transform", o), x && (v.style[tr] = o) }; b("padding,margin,Width,Radius", (function (e, t) { var i = "Right", n = "Bottom", r = "Left", s = (t < 3 ? ["Top", i, n, r] : ["Top" + r, "Top" + i, n + i, n + r]).map((function (i) { return t < 2 ? e + i : "border" + i + e })); ur[1 < t ? "border" + e : e] = function (e, t, i, n, r) { var o, a; if (arguments.length < 4) return o = s.map((function (t) { return ar(e, t, i) })), 5 === (a = o.join(" ")).split(o[0]).length ? o[0] : a; o = (n + "").split(" "), a = {}, s.forEach((function (e, t) { return a[e] = o[t] = o[t] || o[(t - 1) / 2 | 0] })), e.init(t, a, r) } })); var wr, Dr, _r = { name: "css", register: tn, targetTest: function (e) { return e.style && e.nodeType }, init: function (e, t, i, r, s) { var o, a, l, u, c, d, f, h, m, g, v, y, b, w, D, x, E = this._props, T = e.style, S = i.vars.startAt; for (f in En || tn(), this.styles = this.styles || Ji(e), x = this.styles.props, this.tween = i, t) if ("autoRound" !== f && (a = t[f], !vt[f] || !Qt(f, t, i, r, e, s))) if (c = typeof a, d = ur[f], "function" === c && (c = typeof (a = a.call(i, r, e, s))), "string" === c && ~a.indexOf("random(") && (a = re(a)), d) d(this, e, f, a, i) && (D = 1); else if ("--" === f.substr(0, 2)) o = (getComputedStyle(e).getPropertyValue(f) + "").trim(), a += "", Lt.lastIndex = 0, Lt.test(o) || (h = U(o), m = U(a)), m ? h !== m && (o = un(e, f, o, m) + m) : h && (a += h), this.add(T, "setProperty", o, a, r, s, 0, 0, f), E.push(f), x.push(f, 0, T[f]); else if ("undefined" !== c) { if (S && f in S ? (n(o = "function" == typeof S[f] ? S[f].call(i, r, e, s) : S[f]) && ~o.indexOf("random(") && (o = re(o)), U(o + "") || (o += Xe.units[f] || U(ar(e, f)) || ""), "=" === (o + "").charAt(1) && (o = ar(e, f))) : o = ar(e, f), u = parseFloat(o), (g = "string" === c && "=" === a.charAt(1) && a.substr(0, 2)) && (a = a.substr(2)), l = parseFloat(a), f in er && ("autoAlpha" === f && (1 === u && "hidden" === ar(e, "visibility") && l && (u = 0), x.push("visibility", 0, T.visibility), ln(this, T, "visibility", u ? "inherit" : "hidden", l ? "inherit" : "hidden", !l)), "scale" !== f && "transform" !== f && ~(f = er[f]).indexOf(",") && (f = f.split(",")[0])), v = f in Vn) if (this.styles.save(f), y || ((b = e._gsap).renderTransform && !t.parseTransform || pr(e, t.parseTransform), w = !1 !== t.smoothOrigin && b.smooth, (y = this._pt = new bi(this._pt, T, tr, 0, 1, b.renderTransform, b, 0, -1)).dep = 1), "scale" === f) this._pt = new bi(this._pt, b, "scaleY", b.scaleY, (g ? _(b.scaleY, g + l) : l) - b.scaleY || 0, Bi), this._pt.u = 0, E.push("scaleY", f), f += "X"; else { if ("transformOrigin" === f) { x.push(ir, 0, T[ir]), a = dn(a), b.svg ? gn(e, a, 0, w, 0, this) : ((m = parseFloat(a.split(" ")[2]) || 0) !== b.zOrigin && ln(this, b, "zOrigin", b.zOrigin, m), ln(this, T, f, fr(o), fr(a))); continue } if ("svgOrigin" === f) { gn(e, a, 1, w, 0, this); continue } if (f in dr) { yn(this, b, f, u, g ? _(u, g + a) : a); continue } if ("smoothOrigin" === f) { ln(this, b, "smooth", b.smooth, a); continue } if ("force3D" === f) { b[f] = a; continue } if ("transform" === f) { wn(this, a, e); continue } } else f in T || (f = rr(f) || f); if (v || (l || 0 === l) && (u || 0 === u) && !Zn.test(a) && f in T) l = l || 0, (h = (o + "").substr((u + "").length)) !== (m = U(a) || (f in Xe.units ? Xe.units[f] : h)) && (u = un(e, f, o, m)), this._pt = new bi(this._pt, v ? b : T, f, u, (g ? _(u, g + l) : l) - u, v || "px" !== m && "zIndex" !== f || !1 === t.autoRound ? Bi : Ni), this._pt.u = m || 0, h !== m && "%" !== m && (this._pt.b = o, this._pt.r = ji); else if (f in T) cn.call(this, e, f, o, g ? g + a : a); else if (f in e) this.add(e, f, o || e[f], g ? g + a : a, r, s); else if ("parseTransform" !== f) { p(f, a); continue } v || (f in T ? x.push(f, 0, T[f]) : x.push(f, 1, o || e[f])), E.push(f) } D && yi(this) }, render: function (e, t) { if (t.tween._time || !Cn()) for (var i = t._pt; i;)i.r(e, i.d), i = i._next; else t.styles.revert() }, get: ar, aliases: er, getSetter: function (e, t, i) { var n = er[t]; return n && n.indexOf(",") < 0 && (t = n), t in Vn && t !== ir && (e._gsap.x || ar(e, "x")) ? i && Sn === i ? "scale" === t ? Gi : Xi : (Sn = i || {}) && ("scale" === t ? Vi : $i) : e.style && !o(e.style[t]) ? Yi : ~t.indexOf("-") ? qi : di(e, t) }, core: { _removeProperty: an, _getMatrix: mn } }; zi.utils.checkPrefix = rr, zi.core.getStyleSaver = Ji, Dr = b("x,y,z,scale,scaleX,scaleY,xPercent,yPercent" + "," + (wr = "rotation,rotationX,rotationY,skewX,skewY") + ",transform,transformOrigin,svgOrigin,force3D,smoothOrigin,transformPerspective", (function (e) { Vn[e] = 1 })), b(wr, (function (e) { Xe.units[e] = "deg", dr[e] = 1 })), er[Dr[13]] = "x,y,z,scale,scaleX,scaleY,xPercent,yPercent," + wr, b("0:translateX,1:translateY,2:translateZ,8:rotate,8:rotationZ,8:rotateZ,9:rotateX,10:rotateY", (function (e) { var t = e.split(":"); er[t[1]] = Dr[t[0]] })), b("x,y,z,top,right,bottom,left,width,height,fontSize,padding,margin,perspective", (function (e) { Xe.units[e] = "px" })), zi.registerPlugin(_r); var xr = zi.registerPlugin(_r) || zi, Er = xr.core.Tween; e.Back = Rn, e.Bounce = Yn, e.CSSPlugin = _r, e.Circ = Gn, e.Cubic = zn, e.Elastic = Nn, e.Expo = Xn, e.Linear = Ln, e.Power0 = kn, e.Power1 = On, e.Power2 = An, e.Power3 = Pn, e.Power4 = Fn, e.Quad = In, e.Quart = Bn, e.Quint = Wn, e.Sine = qn, e.SteppedEase = Hn, e.Strong = jn, e.TimelineLite = Ut, e.TimelineMax = Ut, e.TweenLite = si, e.TweenMax = Er, e.default = xr, e.gsap = xr, "undefined" == typeof window || window !== e ? Object.defineProperty(e, "__esModule", { value: !0 }) : delete e.default })), function (e, t) { "function" == typeof define && define.amd ? define("ev-emitter/ev-emitter", t) : "object" == typeof module && module.exports ? module.exports = t() : e.EvEmitter = t() }("undefined" != typeof window ? window : this, (function () { function e() { } var t = e.prototype; return t.on = function (e, t) { if (e && t) { var i = this._events = this._events || {}, n = i[e] = i[e] || []; return -1 == n.indexOf(t) && n.push(t), this } }, t.once = function (e, t) { if (e && t) { this.on(e, t); var i = this._onceEvents = this._onceEvents || {}; return (i[e] = i[e] || {})[t] = !0, this } }, t.off = function (e, t) { var i = this._events && this._events[e]; if (i && i.length) { var n = i.indexOf(t); return -1 != n && i.splice(n, 1), this } }, t.emitEvent = function (e, t) { var i = this._events && this._events[e]; if (i && i.length) { i = i.slice(0), t = t || []; for (var n = this._onceEvents && this._onceEvents[e], r = 0; r < i.length; r++) { var s = i[r]; n && n[s] && (this.off(e, s), delete n[s]), s.apply(this, t) } return this } }, t.allOff = function () { delete this._events, delete this._onceEvents }, e })), function (e, t) { "use strict"; "function" == typeof define && define.amd ? define(["ev-emitter/ev-emitter"], (function (i) { return t(e, i) })) : "object" == typeof module && module.exports ? module.exports = t(e, require("ev-emitter")) : e.imagesLoaded = t(e, e.EvEmitter) }("undefined" != typeof window ? window : this, (function (e, t) { function i(e, t) { for (var i in t) e[i] = t[i]; return e } function n(e, t, r) { if (!(this instanceof n)) return new n(e, t, r); var s, u = e; return "string" == typeof e && (u = document.querySelectorAll(e)), u ? (this.elements = (s = u, Array.isArray(s) ? s : "object" == typeof s && "number" == typeof s.length ? l.call(s) : [s]), this.options = i({}, this.options), "function" == typeof t ? r = t : i(this.options, t), r && this.on("always", r), this.getImages(), o && (this.jqDeferred = new o.Deferred), void setTimeout(this.check.bind(this))) : void a.error("Bad element for imagesLoaded " + (u || e)) } function r(e) { this.img = e } function s(e, t) { this.url = e, this.element = t, this.img = new Image } var o = e.jQuery, a = e.console, l = Array.prototype.slice; (n.prototype = Object.create(t.prototype)).options = {}, n.prototype.getImages = function () { this.images = [], this.elements.forEach(this.addElementImages, this) }, n.prototype.addElementImages = function (e) { "IMG" == e.nodeName && this.addImage(e), !0 === this.options.background && this.addElementBackgroundImages(e); var t = e.nodeType; if (t && u[t]) { for (var i = e.querySelectorAll("img"), n = 0; n < i.length; n++) { var r = i[n]; this.addImage(r) } if ("string" == typeof this.options.background) { var s = e.querySelectorAll(this.options.background); for (n = 0; n < s.length; n++) { var o = s[n]; this.addElementBackgroundImages(o) } } } }; var u = { 1: !0, 9: !0, 11: !0 }; return n.prototype.addElementBackgroundImages = function (e) { var t = getComputedStyle(e); if (t) for (var i = /url\((['"])?(.*?)\1\)/gi, n = i.exec(t.backgroundImage); null !== n;) { var r = n && n[2]; r && this.addBackground(r, e), n = i.exec(t.backgroundImage) } }, n.prototype.addImage = function (e) { var t = new r(e); this.images.push(t) }, n.prototype.addBackground = function (e, t) { var i = new s(e, t); this.images.push(i) }, n.prototype.check = function () { function e(e, i, n) { setTimeout((function () { t.progress(e, i, n) })) } var t = this; return this.progressedCount = 0, this.hasAnyBroken = !1, this.images.length ? void this.images.forEach((function (t) { t.once("progress", e), t.check() })) : void this.complete() }, n.prototype.progress = function (e, t, i) { this.progressedCount++, this.hasAnyBroken = this.hasAnyBroken || !e.isLoaded, this.emitEvent("progress", [this, e, t]), this.jqDeferred && this.jqDeferred.notify && this.jqDeferred.notify(this, e), this.progressedCount == this.images.length && this.complete(), this.options.debug && a && a.log("progress: " + i, e, t) }, n.prototype.complete = function () { var e = this.hasAnyBroken ? "fail" : "done"; if (this.isComplete = !0, this.emitEvent(e, [this]), this.emitEvent("always", [this]), this.jqDeferred) { var t = this.hasAnyBroken ? "reject" : "resolve"; this.jqDeferred[t](this) } }, (r.prototype = Object.create(t.prototype)).check = function () { return this.getIsImageComplete() ? void this.confirm(0 !== this.img.naturalWidth, "naturalWidth") : (this.proxyImage = new Image, this.proxyImage.addEventListener("load", this), this.proxyImage.addEventListener("error", this), this.img.addEventListener("load", this), this.img.addEventListener("error", this), void (this.proxyImage.src = this.img.src)) }, r.prototype.getIsImageComplete = function () { return this.img.complete && this.img.naturalWidth }, r.prototype.confirm = function (e, t) { this.isLoaded = e, this.emitEvent("progress", [this, this.img, t]) }, r.prototype.handleEvent = function (e) { var t = "on" + e.type; this[t] && this[t](e) }, r.prototype.onload = function () { this.confirm(!0, "onload"), this.unbindEvents() }, r.prototype.onerror = function () { this.confirm(!1, "onerror"), this.unbindEvents() }, r.prototype.unbindEvents = function () { this.proxyImage.removeEventListener("load", this), this.proxyImage.removeEventListener("error", this), this.img.removeEventListener("load", this), this.img.removeEventListener("error", this) }, (s.prototype = Object.create(r.prototype)).check = function () { this.img.addEventListener("load", this), this.img.addEventListener("error", this), this.img.src = this.url, this.getIsImageComplete() && (this.confirm(0 !== this.img.naturalWidth, "naturalWidth"), this.unbindEvents()) }, s.prototype.unbindEvents = function () { this.img.removeEventListener("load", this), this.img.removeEventListener("error", this) }, s.prototype.confirm = function (e, t) { this.isLoaded = e, this.emitEvent("progress", [this, this.element, t]) }, n.makeJQueryPlugin = function (t) { (t = t || e.jQuery) && ((o = t).fn.imagesLoaded = function (e, t) { return new n(this, e, t).jqDeferred.promise(o(this)) }) }, n.makeJQueryPlugin(), n })), function (e, t) { "function" == typeof define && define.amd ? define("jquery-bridget/jquery-bridget", ["jquery"], (function (i) { return t(e, i) })) : "object" == typeof module && module.exports ? module.exports = t(e, require("jquery")) : e.jQueryBridget = t(e, e.jQuery) }(window, (function (e, t) { "use strict"; function i(i, s, a) { (a = a || t || e.jQuery) && (s.prototype.option || (s.prototype.option = function (e) { a.isPlainObject(e) && (this.options = a.extend(!0, this.options, e)) }), a.fn[i] = function (e) { if ("string" != typeof e) return d = e, this.each((function (e, t) { var n = a.data(t, i); n ? (n.option(d), n._init()) : (n = new s(t, d), a.data(t, i, n)) })), this; var t, n, l, u, c, d, p = r.call(arguments, 1); return l = p, c = "$()." + i + '("' + (n = e) + '")', (t = this).each((function (e, t) { var r = a.data(t, i); if (r) { var s = r[n]; if (s && "_" != n.charAt(0)) { var d = s.apply(r, l); u = void 0 === u ? d : u } else o(c + " is not a valid method") } else o(i + " not initialized. Cannot call methods, i.e. " + c) })), void 0 !== u ? u : t }, n(a)) } function n(e) { !e || e && e.bridget || (e.bridget = i) } var r = Array.prototype.slice, s = e.console, o = void 0 === s ? function () { } : function (e) { s.error(e) }; return n(t || e.jQuery), i })), function (e, t) { "function" == typeof define && define.amd ? define("ev-emitter/ev-emitter", t) : "object" == typeof module && module.exports ? module.exports = t() : e.EvEmitter = t() }("undefined" != typeof window ? window : this, (function () { function e() { } var t = e.prototype; return t.on = function (e, t) { if (e && t) { var i = this._events = this._events || {}, n = i[e] = i[e] || []; return -1 == n.indexOf(t) && n.push(t), this } }, t.once = function (e, t) { if (e && t) { this.on(e, t); var i = this._onceEvents = this._onceEvents || {}; return (i[e] = i[e] || {})[t] = !0, this } }, t.off = function (e, t) { var i = this._events && this._events[e]; if (i && i.length) { var n = i.indexOf(t); return -1 != n && i.splice(n, 1), this } }, t.emitEvent = function (e, t) { var i = this._events && this._events[e]; if (i && i.length) { i = i.slice(0), t = t || []; for (var n = this._onceEvents && this._onceEvents[e], r = 0; r < i.length; r++) { var s = i[r]; n && n[s] && (this.off(e, s), delete n[s]), s.apply(this, t) } return this } }, t.allOff = function () { delete this._events, delete this._onceEvents }, e })), function (e, t) { "function" == typeof define && define.amd ? define("get-size/get-size", t) : "object" == typeof module && module.exports ? module.exports = t() : e.getSize = t() }(window, (function () { "use strict"; function e(e) { var t = parseFloat(e); return -1 == e.indexOf("%") && !isNaN(t) && t } function t(e) { var t = getComputedStyle(e); return t || n("Style returned " + t + ". Are you running this code in a hidden iframe on Firefox? See https://bit.ly/getsizebug1"), t } var i, n = "undefined" == typeof console ? function () { } : function (e) { console.error(e) }, r = ["paddingLeft", "paddingRight", "paddingTop", "paddingBottom", "marginLeft", "marginRight", "marginTop", "marginBottom", "borderLeftWidth", "borderRightWidth", "borderTopWidth", "borderBottomWidth"], s = r.length, o = !1; return function n(a) { if (function () { if (!o) { o = !0; var r = document.createElement("div"); r.style.width = "200px", r.style.padding = "1px 2px 3px 4px", r.style.borderStyle = "solid", r.style.borderWidth = "1px 2px 3px 4px", r.style.boxSizing = "border-box"; var s = document.body || document.documentElement; s.appendChild(r); var a = t(r); i = 200 == Math.round(e(a.width)), n.isBoxSizeOuter = i, s.removeChild(r) } }(), "string" == typeof a && (a = document.querySelector(a)), a && "object" == typeof a && a.nodeType) { var l = t(a); if ("none" == l.display) return function () { for (var e = { width: 0, height: 0, innerWidth: 0, innerHeight: 0, outerWidth: 0, outerHeight: 0 }, t = 0; t < s; t++)e[r[t]] = 0; return e }(); var u = {}; u.width = a.offsetWidth, u.height = a.offsetHeight; for (var c = u.isBorderBox = "border-box" == l.boxSizing, d = 0; d < s; d++) { var p = r[d], f = l[p], h = parseFloat(f); u[p] = isNaN(h) ? 0 : h } var m = u.paddingLeft + u.paddingRight, g = u.paddingTop + u.paddingBottom, v = u.marginLeft + u.marginRight, y = u.marginTop + u.marginBottom, b = u.borderLeftWidth + u.borderRightWidth, w = u.borderTopWidth + u.borderBottomWidth, D = c && i, _ = e(l.width); !1 !== _ && (u.width = _ + (D ? 0 : m + b)); var x = e(l.height); return !1 !== x && (u.height = x + (D ? 0 : g + w)), u.innerWidth = u.width - (m + b), u.innerHeight = u.height - (g + w), u.outerWidth = u.width + v, u.outerHeight = u.height + y, u } } })), function (e, t) { "use strict"; "function" == typeof define && define.amd ? define("desandro-matches-selector/matches-selector", t) : "object" == typeof module && module.exports ? module.exports = t() : e.matchesSelector = t() }(window, (function () { "use strict"; var e = function () { var e = window.Element.prototype; if (e.matches) return "matches"; if (e.matchesSelector) return "matchesSelector"; for (var t = ["webkit", "moz", "ms", "o"], i = 0; i < t.length; i++) { var n = t[i] + "MatchesSelector"; if (e[n]) return n } }(); return function (t, i) { return t[e](i) } })), function (e, t) { "function" == typeof define && define.amd ? define("fizzy-ui-utils/utils", ["desandro-matches-selector/matches-selector"], (function (i) { return t(e, i) })) : "object" == typeof module && module.exports ? module.exports = t(e, require("desandro-matches-selector")) : e.fizzyUIUtils = t(e, e.matchesSelector) }(window, (function (e, t) { var i = { extend: function (e, t) { for (var i in t) e[i] = t[i]; return e }, modulo: function (e, t) { return (e % t + t) % t } }, n = Array.prototype.slice; i.makeArray = function (e) { return Array.isArray(e) ? e : null == e ? [] : "object" == typeof e && "number" == typeof e.length ? n.call(e) : [e] }, i.removeFrom = function (e, t) { var i = e.indexOf(t); -1 != i && e.splice(i, 1) }, i.getParent = function (e, i) { for (; e.parentNode && e != document.body;)if (e = e.parentNode, t(e, i)) return e }, i.getQueryElement = function (e) { return "string" == typeof e ? document.querySelector(e) : e }, i.handleEvent = function (e) { var t = "on" + e.type; this[t] && this[t](e) }, i.filterFindElements = function (e, n) { e = i.makeArray(e); var r = []; return e.forEach((function (e) { if (e instanceof HTMLElement) { if (!n) return void r.push(e); t(e, n) && r.push(e); for (var i = e.querySelectorAll(n), s = 0; s < i.length; s++)r.push(i[s]) } })), r }, i.debounceMethod = function (e, t, i) { i = i || 100; var n = e.prototype[t], r = t + "Timeout"; e.prototype[t] = function () { var e = this[r]; clearTimeout(e); var t = arguments, s = this; this[r] = setTimeout((function () { n.apply(s, t), delete s[r] }), i) } }, i.docReady = function (e) { var t = document.readyState; "complete" == t || "interactive" == t ? setTimeout(e) : document.addEventListener("DOMContentLoaded", e) }, i.toDashed = function (e) { return e.replace(/(.)([A-Z])/g, (function (e, t, i) { return t + "-" + i })).toLowerCase() }; var r = e.console; return i.htmlInit = function (t, n) { i.docReady((function () { var s = i.toDashed(n), o = "data-" + s, a = document.querySelectorAll("[" + o + "]"), l = document.querySelectorAll(".js-" + s), u = i.makeArray(a).concat(i.makeArray(l)), c = o + "-options", d = e.jQuery; u.forEach((function (e) { var i, s = e.getAttribute(o) || e.getAttribute(c); try { i = s && JSON.parse(s) } catch (i) { return void (r && r.error("Error parsing " + o + " on " + e.className + ": " + i)) } var a = new t(e, i); d && d.data(e, n, a) })) })) }, i })), function (e, t) { "function" == typeof define && define.amd ? define("outlayer/item", ["ev-emitter/ev-emitter", "get-size/get-size"], t) : "object" == typeof module && module.exports ? module.exports = t(require("ev-emitter"), require("get-size")) : (e.Outlayer = {}, e.Outlayer.Item = t(e.EvEmitter, e.getSize)) }(window, (function (e, t) { "use strict"; function i(e, t) { e && (this.element = e, this.layout = t, this.position = { x: 0, y: 0 }, this._create()) } var n = document.documentElement.style, r = "string" == typeof n.transition ? "transition" : "WebkitTransition", s = "string" == typeof n.transform ? "transform" : "WebkitTransform", o = { WebkitTransition: "webkitTransitionEnd", transition: "transitionend" }[r], a = { transform: s, transition: r, transitionDuration: r + "Duration", transitionProperty: r + "Property", transitionDelay: r + "Delay" }, l = i.prototype = Object.create(e.prototype); l.constructor = i, l._create = function () { this._transn = { ingProperties: {}, clean: {}, onEnd: {} }, this.css({ position: "absolute" }) }, l.handleEvent = function (e) { var t = "on" + e.type; this[t] && this[t](e) }, l.getSize = function () { this.size = t(this.element) }, l.css = function (e) { var t = this.element.style; for (var i in e) t[a[i] || i] = e[i] }, l.getPosition = function () { var e = getComputedStyle(this.element), t = this.layout._getOption("originLeft"), i = this.layout._getOption("originTop"), n = e[t ? "left" : "right"], r = e[i ? "top" : "bottom"], s = parseFloat(n), o = parseFloat(r), a = this.layout.size; -1 != n.indexOf("%") && (s = s / 100 * a.width), -1 != r.indexOf("%") && (o = o / 100 * a.height), s = isNaN(s) ? 0 : s, o = isNaN(o) ? 0 : o, s -= t ? a.paddingLeft : a.paddingRight, o -= i ? a.paddingTop : a.paddingBottom, this.position.x = s, this.position.y = o }, l.layoutPosition = function () { var e = this.layout.size, t = {}, i = this.layout._getOption("originLeft"), n = this.layout._getOption("originTop"), r = i ? "paddingLeft" : "paddingRight", s = i ? "left" : "right", o = i ? "right" : "left", a = this.position.x + e[r]; t[s] = this.getXValue(a), t[o] = ""; var l = n ? "paddingTop" : "paddingBottom", u = n ? "top" : "bottom", c = n ? "bottom" : "top", d = this.position.y + e[l]; t[u] = this.getYValue(d), t[c] = "", this.css(t), this.emitEvent("layout", [this]) }, l.getXValue = function (e) { var t = this.layout._getOption("horizontal"); return this.layout.options.percentPosition && !t ? e / this.layout.size.width * 100 + "%" : e + "px" }, l.getYValue = function (e) { var t = this.layout._getOption("horizontal"); return this.layout.options.percentPosition && t ? e / this.layout.size.height * 100 + "%" : e + "px" }, l._transitionTo = function (e, t) { this.getPosition(); var i = this.position.x, n = this.position.y, r = e == this.position.x && t == this.position.y; if (this.setPosition(e, t), !r || this.isTransitioning) { var s = e - i, o = t - n, a = {}; a.transform = this.getTranslate(s, o), this.transition({ to: a, onTransitionEnd: { transform: this.layoutPosition }, isCleaning: !0 }) } else this.layoutPosition() }, l.getTranslate = function (e, t) { return "translate3d(" + (e = this.layout._getOption("originLeft") ? e : -e) + "px, " + (t = this.layout._getOption("originTop") ? t : -t) + "px, 0)" }, l.goTo = function (e, t) { this.setPosition(e, t), this.layoutPosition() }, l.moveTo = l._transitionTo, l.setPosition = function (e, t) { this.position.x = parseFloat(e), this.position.y = parseFloat(t) }, l._nonTransition = function (e) { for (var t in this.css(e.to), e.isCleaning && this._removeStyles(e.to), e.onTransitionEnd) e.onTransitionEnd[t].call(this) }, l.transition = function (e) { if (parseFloat(this.layout.options.transitionDuration)) { var t = this._transn; for (var i in e.onTransitionEnd) t.onEnd[i] = e.onTransitionEnd[i]; for (i in e.to) t.ingProperties[i] = !0, e.isCleaning && (t.clean[i] = !0); e.from && (this.css(e.from), this.element.offsetHeight), this.enableTransition(e.to), this.css(e.to), this.isTransitioning = !0 } else this._nonTransition(e) }; var u = "opacity," + s.replace(/([A-Z])/g, (function (e) { return "-" + e.toLowerCase() })); l.enableTransition = function () { if (!this.isTransitioning) { var e = this.layout.options.transitionDuration; e = "number" == typeof e ? e + "ms" : e, this.css({ transitionProperty: u, transitionDuration: e, transitionDelay: this.staggerDelay || 0 }), this.element.addEventListener(o, this, !1) } }, l.onwebkitTransitionEnd = function (e) { this.ontransitionend(e) }, l.onotransitionend = function (e) { this.ontransitionend(e) }; var c = { "-webkit-transform": "transform" }; l.ontransitionend = function (e) { if (e.target === this.element) { var t = this._transn, i = c[e.propertyName] || e.propertyName; delete t.ingProperties[i], function (e) { for (var t in e) return !1; return !0 }(t.ingProperties) && this.disableTransition(), i in t.clean && (this.element.style[e.propertyName] = "", delete t.clean[i]), i in t.onEnd && (t.onEnd[i].call(this), delete t.onEnd[i]), this.emitEvent("transitionEnd", [this]) } }, l.disableTransition = function () { this.removeTransitionStyles(), this.element.removeEventListener(o, this, !1), this.isTransitioning = !1 }, l._removeStyles = function (e) { var t = {}; for (var i in e) t[i] = ""; this.css(t) }; var d = { transitionProperty: "", transitionDuration: "", transitionDelay: "" }; return l.removeTransitionStyles = function () { this.css(d) }, l.stagger = function (e) { e = isNaN(e) ? 0 : e, this.staggerDelay = e + "ms" }, l.removeElem = function () { this.element.parentNode.removeChild(this.element), this.css({ display: "" }), this.emitEvent("remove", [this]) }, l.remove = function () { return r && parseFloat(this.layout.options.transitionDuration) ? (this.once("transitionEnd", (function () { this.removeElem() })), void this.hide()) : void this.removeElem() }, l.reveal = function () { delete this.isHidden, this.css({ display: "" }); var e = this.layout.options, t = {}; t[this.getHideRevealTransitionEndProperty("visibleStyle")] = this.onRevealTransitionEnd, this.transition({ from: e.hiddenStyle, to: e.visibleStyle, isCleaning: !0, onTransitionEnd: t }) }, l.onRevealTransitionEnd = function () { this.isHidden || this.emitEvent("reveal") }, l.getHideRevealTransitionEndProperty = function (e) { var t = this.layout.options[e]; if (t.opacity) return "opacity"; for (var i in t) return i }, l.hide = function () { this.isHidden = !0, this.css({ display: "" }); var e = this.layout.options, t = {}; t[this.getHideRevealTransitionEndProperty("hiddenStyle")] = this.onHideTransitionEnd, this.transition({ from: e.visibleStyle, to: e.hiddenStyle, isCleaning: !0, onTransitionEnd: t }) }, l.onHideTransitionEnd = function () { this.isHidden && (this.css({ display: "none" }), this.emitEvent("hide")) }, l.destroy = function () { this.css({ position: "", left: "", right: "", top: "", bottom: "", transition: "", transform: "" }) }, i })), function (e, t) { "use strict"; "function" == typeof define && define.amd ? define("outlayer/outlayer", ["ev-emitter/ev-emitter", "get-size/get-size", "fizzy-ui-utils/utils", "./item"], (function (i, n, r, s) { return t(e, i, n, r, s) })) : "object" == typeof module && module.exports ? module.exports = t(e, require("ev-emitter"), require("get-size"), require("fizzy-ui-utils"), require("./item")) : e.Outlayer = t(e, e.EvEmitter, e.getSize, e.fizzyUIUtils, e.Outlayer.Item) }(window, (function (e, t, i, n, r) { "use strict"; function s(e, t) { var i = n.getQueryElement(e); if (i) { this.element = i, l && (this.$element = l(this.element)), this.options = n.extend({}, this.constructor.defaults), this.option(t); var r = ++c; this.element.outlayerGUID = r, (d[r] = this)._create(), this._getOption("initLayout") && this.layout() } else a && a.error("Bad element for " + this.constructor.namespace + ": " + (i || e)) } function o(e) { function t() { e.apply(this, arguments) } return (t.prototype = Object.create(e.prototype)).constructor = t } var a = e.console, l = e.jQuery, u = function () { }, c = 0, d = {}; s.namespace = "outlayer", s.Item = r, s.defaults = { containerStyle: { position: "relative" }, initLayout: !0, originLeft: !0, originTop: !0, resize: !0, resizeContainer: !0, transitionDuration: "0.4s", hiddenStyle: { opacity: 0, transform: "scale(0.001)" }, visibleStyle: { opacity: 1, transform: "scale(1)" } }; var p = s.prototype; n.extend(p, t.prototype), p.option = function (e) { n.extend(this.options, e) }, p._getOption = function (e) { var t = this.constructor.compatOptions[e]; return t && void 0 !== this.options[t] ? this.options[t] : this.options[e] }, s.compatOptions = { initLayout: "isInitLayout", horizontal: "isHorizontal", layoutInstant: "isLayoutInstant", originLeft: "isOriginLeft", originTop: "isOriginTop", resize: "isResizeBound", resizeContainer: "isResizingContainer" }, p._create = function () { this.reloadItems(), this.stamps = [], this.stamp(this.options.stamp), n.extend(this.element.style, this.options.containerStyle), this._getOption("resize") && this.bindResize() }, p.reloadItems = function () { this.items = this._itemize(this.element.children) }, p._itemize = function (e) { for (var t = this._filterFindItemElements(e), i = this.constructor.Item, n = [], r = 0; r < t.length; r++) { var s = new i(t[r], this); n.push(s) } return n }, p._filterFindItemElements = function (e) { return n.filterFindElements(e, this.options.itemSelector) }, p.getItemElements = function () { return this.items.map((function (e) { return e.element })) }, p.layout = function () { this._resetLayout(), this._manageStamps(); var e = this._getOption("layoutInstant"), t = void 0 !== e ? e : !this._isLayoutInited; this.layoutItems(this.items, t), this._isLayoutInited = !0 }, p._init = p.layout, p._resetLayout = function () { this.getSize() }, p.getSize = function () { this.size = i(this.element) }, p._getMeasurement = function (e, t) { var n, r = this.options[e]; r ? ("string" == typeof r ? n = this.element.querySelector(r) : r instanceof HTMLElement && (n = r), this[e] = n ? i(n)[t] : r) : this[e] = 0 }, p.layoutItems = function (e, t) { e = this._getItemsForLayout(e), this._layoutItems(e, t), this._postLayout() }, p._getItemsForLayout = function (e) { return e.filter((function (e) { return !e.isIgnored })) }, p._layoutItems = function (e, t) { if (this._emitCompleteOnItems("layout", e), e && e.length) { var i = []; e.forEach((function (e) { var n = this._getItemLayoutPosition(e); n.item = e, n.isInstant = t || e.isLayoutInstant, i.push(n) }), this), this._processLayoutQueue(i) } }, p._getItemLayoutPosition = function () { return { x: 0, y: 0 } }, p._processLayoutQueue = function (e) { this.updateStagger(), e.forEach((function (e, t) { this._positionItem(e.item, e.x, e.y, e.isInstant, t) }), this) }, p.updateStagger = function () { var e = this.options.stagger; return null == e ? void (this.stagger = 0) : (this.stagger = function (e) { if ("number" == typeof e) return e; var t = e.match(/(^\d*\.?\d*)(\w*)/), i = t && t[1], n = t && t[2]; return i.length ? (i = parseFloat(i)) * (f[n] || 1) : 0 }(e), this.stagger) }, p._positionItem = function (e, t, i, n, r) { n ? e.goTo(t, i) : (e.stagger(r * this.stagger), e.moveTo(t, i)) }, p._postLayout = function () { this.resizeContainer() }, p.resizeContainer = function () { if (this._getOption("resizeContainer")) { var e = this._getContainerSize(); e && (this._setContainerMeasure(e.width, !0), this._setContainerMeasure(e.height, !1)) } }, p._getContainerSize = u, p._setContainerMeasure = function (e, t) { if (void 0 !== e) { var i = this.size; i.isBorderBox && (e += t ? i.paddingLeft + i.paddingRight + i.borderLeftWidth + i.borderRightWidth : i.paddingBottom + i.paddingTop + i.borderTopWidth + i.borderBottomWidth), e = Math.max(e, 0), this.element.style[t ? "width" : "height"] = e + "px" } }, p._emitCompleteOnItems = function (e, t) { function i() { r.dispatchEvent(e + "Complete", null, [t]) } function n() { ++o == s && i() } var r = this, s = t.length; if (t && s) { var o = 0; t.forEach((function (t) { t.once(e, n) })) } else i() }, p.dispatchEvent = function (e, t, i) { var n = t ? [t].concat(i) : i; if (this.emitEvent(e, n), l) if (this.$element = this.$element || l(this.element), t) { var r = l.Event(t); r.type = e, this.$element.trigger(r, i) } else this.$element.trigger(e, i) }, p.ignore = function (e) { var t = this.getItem(e); t && (t.isIgnored = !0) }, p.unignore = function (e) { var t = this.getItem(e); t && delete t.isIgnored }, p.stamp = function (e) { (e = this._find(e)) && (this.stamps = this.stamps.concat(e), e.forEach(this.ignore, this)) }, p.unstamp = function (e) { (e = this._find(e)) && e.forEach((function (e) { n.removeFrom(this.stamps, e), this.unignore(e) }), this) }, p._find = function (e) { if (e) return "string" == typeof e && (e = this.element.querySelectorAll(e)), n.makeArray(e) }, p._manageStamps = function () { this.stamps && this.stamps.length && (this._getBoundingRect(), this.stamps.forEach(this._manageStamp, this)) }, p._getBoundingRect = function () { var e = this.element.getBoundingClientRect(), t = this.size; this._boundingRect = { left: e.left + t.paddingLeft + t.borderLeftWidth, top: e.top + t.paddingTop + t.borderTopWidth, right: e.right - (t.paddingRight + t.borderRightWidth), bottom: e.bottom - (t.paddingBottom + t.borderBottomWidth) } }, p._manageStamp = u, p._getElementOffset = function (e) { var t = e.getBoundingClientRect(), n = this._boundingRect, r = i(e); return { left: t.left - n.left - r.marginLeft, top: t.top - n.top - r.marginTop, right: n.right - t.right - r.marginRight, bottom: n.bottom - t.bottom - r.marginBottom } }, p.handleEvent = n.handleEvent, p.bindResize = function () { e.addEventListener("resize", this), this.isResizeBound = !0 }, p.unbindResize = function () { e.removeEventListener("resize", this), this.isResizeBound = !1 }, p.onresize = function () { this.resize() }, n.debounceMethod(s, "onresize", 100), p.resize = function () { this.isResizeBound && this.needsResizeLayout() && this.layout() }, p.needsResizeLayout = function () { var e = i(this.element); return this.size && e && e.innerWidth !== this.size.innerWidth }, p.addItems = function (e) { var t = this._itemize(e); return t.length && (this.items = this.items.concat(t)), t }, p.appended = function (e) { var t = this.addItems(e); t.length && (this.layoutItems(t, !0), this.reveal(t)) }, p.prepended = function (e) { var t = this._itemize(e); if (t.length) { var i = this.items.slice(0); this.items = t.concat(i), this._resetLayout(), this._manageStamps(), this.layoutItems(t, !0), this.reveal(t), this.layoutItems(i) } }, p.reveal = function (e) { if (this._emitCompleteOnItems("reveal", e), e && e.length) { var t = this.updateStagger(); e.forEach((function (e, i) { e.stagger(i * t), e.reveal() })) } }, p.hide = function (e) { if (this._emitCompleteOnItems("hide", e), e && e.length) { var t = this.updateStagger(); e.forEach((function (e, i) { e.stagger(i * t), e.hide() })) } }, p.revealItemElements = function (e) { var t = this.getItems(e); this.reveal(t) }, p.hideItemElements = function (e) { var t = this.getItems(e); this.hide(t) }, p.getItem = function (e) { for (var t = 0; t < this.items.length; t++) { var i = this.items[t]; if (i.element == e) return i } }, p.getItems = function (e) { e = n.makeArray(e); var t = []; return e.forEach((function (e) { var i = this.getItem(e); i && t.push(i) }), this), t }, p.remove = function (e) { var t = this.getItems(e); this._emitCompleteOnItems("remove", t), t && t.length && t.forEach((function (e) { e.remove(), n.removeFrom(this.items, e) }), this) }, p.destroy = function () { var e = this.element.style; e.height = "", e.position = "", e.width = "", this.items.forEach((function (e) { e.destroy() })), this.unbindResize(); var t = this.element.outlayerGUID; delete d[t], delete this.element.outlayerGUID, l && l.removeData(this.element, this.constructor.namespace) }, s.data = function (e) { var t = (e = n.getQueryElement(e)) && e.outlayerGUID; return t && d[t] }, s.create = function (e, t) { var i = o(s); return i.defaults = n.extend({}, s.defaults), n.extend(i.defaults, t), i.compatOptions = n.extend({}, s.compatOptions), i.namespace = e, i.data = s.data, i.Item = o(r), n.htmlInit(i, e), l && l.bridget && l.bridget(e, i), i }; var f = { ms: 1, s: 1e3 }; return s.Item = r, s })), function (e, t) { "function" == typeof define && define.amd ? define("isotope-layout/js/item", ["outlayer/outlayer"], t) : "object" == typeof module && module.exports ? module.exports = t(require("outlayer")) : (e.Isotope = e.Isotope || {}, e.Isotope.Item = t(e.Outlayer)) }(window, (function (e) { "use strict"; function t() { e.Item.apply(this, arguments) } var i = t.prototype = Object.create(e.Item.prototype), n = i._create; i._create = function () { this.id = this.layout.itemGUID++, n.call(this), this.sortData = {} }, i.updateSortData = function () { if (!this.isIgnored) { this.sortData.id = this.id, this.sortData["original-order"] = this.id, this.sortData.random = Math.random(); var e = this.layout.options.getSortData, t = this.layout._sorters; for (var i in e) { var n = t[i]; this.sortData[i] = n(this.element, this) } } }; var r = i.destroy; return i.destroy = function () { r.apply(this, arguments), this.css({ display: "" }) }, t })), function (e, t) { "function" == typeof define && define.amd ? define("isotope-layout/js/layout-mode", ["get-size/get-size", "outlayer/outlayer"], t) : "object" == typeof module && module.exports ? module.exports = t(require("get-size"), require("outlayer")) : (e.Isotope = e.Isotope || {}, e.Isotope.LayoutMode = t(e.getSize, e.Outlayer)) }(window, (function (e, t) { "use strict"; function i(e) { (this.isotope = e) && (this.options = e.options[this.namespace], this.element = e.element, this.items = e.filteredItems, this.size = e.size) } var n = i.prototype; return ["_resetLayout", "_getItemLayoutPosition", "_manageStamp", "_getContainerSize", "_getElementOffset", "needsResizeLayout", "_getOption"].forEach((function (e) { n[e] = function () { return t.prototype[e].apply(this.isotope, arguments) } })), n.needsVerticalResizeLayout = function () { var t = e(this.isotope.element); return this.isotope.size && t && t.innerHeight != this.isotope.size.innerHeight }, n._getMeasurement = function () { this.isotope._getMeasurement.apply(this, arguments) }, n.getColumnWidth = function () { this.getSegmentSize("column", "Width") }, n.getRowHeight = function () { this.getSegmentSize("row", "Height") }, n.getSegmentSize = function (e, t) { var i = e + t, n = "outer" + t; if (this._getMeasurement(i, n), !this[i]) { var r = this.getFirstItemSize(); this[i] = r && r[n] || this.isotope.size["inner" + t] } }, n.getFirstItemSize = function () { var t = this.isotope.filteredItems[0]; return t && t.element && e(t.element) }, n.layout = function () { this.isotope.layout.apply(this.isotope, arguments) }, n.getSize = function () { this.isotope.getSize(), this.size = this.isotope.size }, i.modes = {}, i.create = function (e, t) { function r() { i.apply(this, arguments) } return (r.prototype = Object.create(n)).constructor = r, t && (r.options = t), i.modes[r.prototype.namespace = e] = r }, i })), function (e, t) { "function" == typeof define && define.amd ? define("masonry-layout/masonry", ["outlayer/outlayer", "get-size/get-size"], t) : "object" == typeof module && module.exports ? module.exports = t(require("outlayer"), require("get-size")) : e.Masonry = t(e.Outlayer, e.getSize) }(window, (function (e, t) { var i = e.create("masonry"); i.compatOptions.fitWidth = "isFitWidth"; var n = i.prototype; return n._resetLayout = function () { this.getSize(), this._getMeasurement("columnWidth", "outerWidth"), this._getMeasurement("gutter", "outerWidth"), this.measureColumns(), this.colYs = []; for (var e = 0; e < this.cols; e++)this.colYs.push(0); this.maxY = 0, this.horizontalColIndex = 0 }, n.measureColumns = function () { if (this.getContainerWidth(), !this.columnWidth) { var e = this.items[0], i = e && e.element; this.columnWidth = i && t(i).outerWidth || this.containerWidth } var n = this.columnWidth += this.gutter, r = this.containerWidth + this.gutter, s = r / n, o = n - r % n; s = Math[o && o < 1 ? "round" : "floor"](s), this.cols = Math.max(s, 1) }, n.getContainerWidth = function () { var e = this._getOption("fitWidth") ? this.element.parentNode : this.element, i = t(e); this.containerWidth = i && i.innerWidth }, n._getItemLayoutPosition = function (e) { e.getSize(); var t = e.size.outerWidth % this.columnWidth, i = Math[t && t < 1 ? "round" : "ceil"](e.size.outerWidth / this.columnWidth); i = Math.min(i, this.cols); for (var n = this[this.options.horizontalOrder ? "_getHorizontalColPosition" : "_getTopColPosition"](i, e), r = { x: this.columnWidth * n.col, y: n.y }, s = n.y + e.size.outerHeight, o = i + n.col, a = n.col; a < o; a++)this.colYs[a] = s; return r }, n._getTopColPosition = function (e) { var t = this._getTopColGroup(e), i = Math.min.apply(Math, t); return { col: t.indexOf(i), y: i } }, n._getTopColGroup = function (e) { if (e < 2) return this.colYs; for (var t = [], i = this.cols + 1 - e, n = 0; n < i; n++)t[n] = this._getColGroupY(n, e); return t }, n._getColGroupY = function (e, t) { if (t < 2) return this.colYs[e]; var i = this.colYs.slice(e, e + t); return Math.max.apply(Math, i) }, n._getHorizontalColPosition = function (e, t) { var i = this.horizontalColIndex % this.cols; i = 1 < e && i + e > this.cols ? 0 : i; var n = t.size.outerWidth && t.size.outerHeight; return this.horizontalColIndex = n ? i + e : this.horizontalColIndex, { col: i, y: this._getColGroupY(i, e) } }, n._manageStamp = function (e) { var i = t(e), n = this._getElementOffset(e), r = this._getOption("originLeft") ? n.left : n.right, s = r + i.outerWidth, o = Math.floor(r / this.columnWidth); o = Math.max(0, o); var a = Math.floor(s / this.columnWidth); a -= s % this.columnWidth ? 0 : 1, a = Math.min(this.cols - 1, a); for (var l = (this._getOption("originTop") ? n.top : n.bottom) + i.outerHeight, u = o; u <= a; u++)this.colYs[u] = Math.max(l, this.colYs[u]) }, n._getContainerSize = function () { this.maxY = Math.max.apply(Math, this.colYs); var e = { height: this.maxY }; return this._getOption("fitWidth") && (e.width = this._getContainerFitWidth()), e }, n._getContainerFitWidth = function () { for (var e = 0, t = this.cols; --t && 0 === this.colYs[t];)e++; return (this.cols - e) * this.columnWidth - this.gutter }, n.needsResizeLayout = function () { var e = this.containerWidth; return this.getContainerWidth(), e != this.containerWidth }, i })), function (e, t) { "function" == typeof define && define.amd ? define("isotope-layout/js/layout-modes/masonry", ["../layout-mode", "masonry-layout/masonry"], t) : "object" == typeof module && module.exports ? module.exports = t(require("../layout-mode"), require("masonry-layout")) : t(e.Isotope.LayoutMode, e.Masonry) }(window, (function (e, t) { "use strict"; var i = e.create("masonry"), n = i.prototype, r = { _getElementOffset: !0, layout: !0, _getMeasurement: !0 }; for (var s in t.prototype) r[s] || (n[s] = t.prototype[s]); var o = n.measureColumns; n.measureColumns = function () { this.items = this.isotope.filteredItems, o.call(this) }; var a = n._getOption; return n._getOption = function (e) { return "fitWidth" == e ? void 0 !== this.options.isFitWidth ? this.options.isFitWidth : this.options.fitWidth : a.apply(this.isotope, arguments) }, i })), function (e, t) { "function" == typeof define && define.amd ? define("isotope-layout/js/layout-modes/fit-rows", ["../layout-mode"], t) : "object" == typeof exports ? module.exports = t(require("../layout-mode")) : t(e.Isotope.LayoutMode) }(window, (function (e) { "use strict"; var t = e.create("fitRows"), i = t.prototype; return i._resetLayout = function () { this.x = 0, this.y = 0, this.maxY = 0, this._getMeasurement("gutter", "outerWidth") }, i._getItemLayoutPosition = function (e) { e.getSize(); var t = e.size.outerWidth + this.gutter, i = this.isotope.size.innerWidth + this.gutter; 0 !== this.x && t + this.x > i && (this.x = 0, this.y = this.maxY); var n = { x: this.x, y: this.y }; return this.maxY = Math.max(this.maxY, this.y + e.size.outerHeight), this.x += t, n }, i._getContainerSize = function () { return { height: this.maxY } }, t })), function (e, t) { "function" == typeof define && define.amd ? define("isotope-layout/js/layout-modes/vertical", ["../layout-mode"], t) : "object" == typeof module && module.exports ? module.exports = t(require("../layout-mode")) : t(e.Isotope.LayoutMode) }(window, (function (e) { "use strict"; var t = e.create("vertical", { horizontalAlignment: 0 }), i = t.prototype; return i._resetLayout = function () { this.y = 0 }, i._getItemLayoutPosition = function (e) { e.getSize(); var t = (this.isotope.size.innerWidth - e.size.outerWidth) * this.options.horizontalAlignment, i = this.y; return this.y += e.size.outerHeight, { x: t, y: i } }, i._getContainerSize = function () { return { height: this.y } }, t })), function (e, t) { "function" == typeof define && define.amd ? define(["outlayer/outlayer", "get-size/get-size", "desandro-matches-selector/matches-selector", "fizzy-ui-utils/utils", "isotope-layout/js/item", "isotope-layout/js/layout-mode", "isotope-layout/js/layout-modes/masonry", "isotope-layout/js/layout-modes/fit-rows", "isotope-layout/js/layout-modes/vertical"], (function (i, n, r, s, o, a) { return t(e, i, n, r, s, o, a) })) : "object" == typeof module && module.exports ? module.exports = t(e, require("outlayer"), require("get-size"), require("desandro-matches-selector"), require("fizzy-ui-utils"), require("isotope-layout/js/item"), require("isotope-layout/js/layout-mode"), require("isotope-layout/js/layout-modes/masonry"), require("isotope-layout/js/layout-modes/fit-rows"), require("isotope-layout/js/layout-modes/vertical")) : e.Isotope = t(e, e.Outlayer, e.getSize, e.matchesSelector, e.fizzyUIUtils, e.Isotope.Item, e.Isotope.LayoutMode) }(window, (function (e, t, i, n, r, s, o) { var a = e.jQuery, l = String.prototype.trim ? function (e) { return e.trim() } : function (e) { return e.replace(/^\s+|\s+$/g, "") }, u = t.create("isotope", { layoutMode: "masonry", isJQueryFiltering: !0, sortAscending: !0 }); u.Item = s, u.LayoutMode = o; var c = u.prototype; c._create = function () { for (var e in this.itemGUID = 0, this._sorters = {}, this._getSorters(), t.prototype._create.call(this), this.modes = {}, this.filteredItems = this.items, this.sortHistory = ["original-order"], o.modes) this._initLayoutMode(e) }, c.reloadItems = function () { this.itemGUID = 0, t.prototype.reloadItems.call(this) }, c._itemize = function () { for (var e = t.prototype._itemize.apply(this, arguments), i = 0; i < e.length; i++)e[i].id = this.itemGUID++; return this._updateItemsSortData(e), e }, c._initLayoutMode = function (e) { var t = o.modes[e], i = this.options[e] || {}; this.options[e] = t.options ? r.extend(t.options, i) : i, this.modes[e] = new t(this) }, c.layout = function () { return !this._isLayoutInited && this._getOption("initLayout") ? void this.arrange() : void this._layout() }, c._layout = function () { var e = this._getIsInstant(); this._resetLayout(), this._manageStamps(), this.layoutItems(this.filteredItems, e), this._isLayoutInited = !0 }, c.arrange = function (e) { this.option(e), this._getIsInstant(); var t = this._filter(this.items); this.filteredItems = t.matches, this._bindArrangeComplete(), this._isInstant ? this._noTransition(this._hideReveal, [t]) : this._hideReveal(t), this._sort(), this._layout() }, c._init = c.arrange, c._hideReveal = function (e) { this.reveal(e.needReveal), this.hide(e.needHide) }, c._getIsInstant = function () { var e = this._getOption("layoutInstant"), t = void 0 !== e ? e : !this._isLayoutInited; return this._isInstant = t }, c._bindArrangeComplete = function () { function e() { t && i && n && r.dispatchEvent("arrangeComplete", null, [r.filteredItems]) } var t, i, n, r = this; this.once("layoutComplete", (function () { t = !0, e() })), this.once("hideComplete", (function () { i = !0, e() })), this.once("revealComplete", (function () { n = !0, e() })) }, c._filter = function (e) { var t = this.options.filter; t = t || "*"; for (var i = [], n = [], r = [], s = this._getFilterTest(t), o = 0; o < e.length; o++) { var a = e[o]; if (!a.isIgnored) { var l = s(a); l && i.push(a), l && a.isHidden ? n.push(a) : l || a.isHidden || r.push(a) } } return { matches: i, needReveal: n, needHide: r } }, c._getFilterTest = function (e) { return a && this.options.isJQueryFiltering ? function (t) { return a(t.element).is(e) } : "function" == typeof e ? function (t) { return e(t.element) } : function (t) { return n(t.element, e) } }, c.updateSortData = function (e) { var t; t = e ? (e = r.makeArray(e), this.getItems(e)) : this.items, this._getSorters(), this._updateItemsSortData(t) }, c._getSorters = function () { var e = this.options.getSortData; for (var t in e) { var i = e[t]; this._sorters[t] = d(i) } }, c._updateItemsSortData = function (e) { for (var t = e && e.length, i = 0; t && i < t; i++)e[i].updateSortData() }; var d = function (e) { if ("string" != typeof e) return e; var t, i, n = l(e).split(" "), r = n[0], s = r.match(/^\[(.+)\]$/), o = s && s[1], a = (i = r, (t = o) ? function (e) { return e.getAttribute(t) } : function (e) { var t = e.querySelector(i); return t && t.textContent }), c = u.sortDataParsers[n[1]]; return c ? function (e) { return e && c(a(e)) } : function (e) { return e && a(e) } }; u.sortDataParsers = { parseInt: function (e) { return parseInt(e, 10) }, parseFloat: function (e) { return parseFloat(e) } }, c._sort = function () { if (this.options.sortBy) { var e = r.makeArray(this.options.sortBy); this._getIsSameSortBy(e) || (this.sortHistory = e.concat(this.sortHistory)); var t = (i = this.sortHistory, n = this.options.sortAscending, function (e, t) { for (var r = 0; r < i.length; r++) { var s = i[r], o = e.sortData[s], a = t.sortData[s]; if (a < o || o < a) return (a < o ? 1 : -1) * ((void 0 !== n[s] ? n[s] : n) ? 1 : -1) } return 0 }); this.filteredItems.sort(t) } var i, n }, c._getIsSameSortBy = function (e) { for (var t = 0; t < e.length; t++)if (e[t] != this.sortHistory[t]) return !1; return !0 }, c._mode = function () { var e = this.options.layoutMode, t = this.modes[e]; if (!t) throw new Error("No layout mode: " + e); return t.options = this.options[e], t }, c._resetLayout = function () { t.prototype._resetLayout.call(this), this._mode()._resetLayout() }, c._getItemLayoutPosition = function (e) { return this._mode()._getItemLayoutPosition(e) }, c._manageStamp = function (e) { this._mode()._manageStamp(e) }, c._getContainerSize = function () { return this._mode()._getContainerSize() }, c.needsResizeLayout = function () { return this._mode().needsResizeLayout() }, c.appended = function (e) { var t = this.addItems(e); if (t.length) { var i = this._filterRevealAdded(t); this.filteredItems = this.filteredItems.concat(i) } }, c.prepended = function (e) { var t = this._itemize(e); if (t.length) { this._resetLayout(), this._manageStamps(); var i = this._filterRevealAdded(t); this.layoutItems(this.filteredItems), this.filteredItems = i.concat(this.filteredItems), this.items = t.concat(this.items) } }, c._filterRevealAdded = function (e) { var t = this._filter(e); return this.hide(t.needHide), this.reveal(t.matches), this.layoutItems(t.matches, !0), t.matches }, c.insert = function (e) { var t = this.addItems(e); if (t.length) { var i, n, r = t.length; for (i = 0; i < r; i++)n = t[i], this.element.appendChild(n.element); var s = this._filter(t).matches; for (i = 0; i < r; i++)t[i].isLayoutInstant = !0; for (this.arrange(), i = 0; i < r; i++)delete t[i].isLayoutInstant; this.reveal(s) } }; var p = c.remove; return c.remove = function (e) { e = r.makeArray(e); var t = this.getItems(e); p.call(this, e); for (var i = t && t.length, n = 0; i && n < i; n++) { var s = t[n]; r.removeFrom(this.filteredItems, s) } }, c.shuffle = function () { for (var e = 0; e < this.items.length; e++)this.items[e].sortData.random = Math.random(); this.options.sortBy = "random", this._sort(), this._layout() }, c._noTransition = function (e, t) { var i = this.options.transitionDuration; this.options.transitionDuration = 0; var n = e.apply(this, t); return this.options.transitionDuration = i, n }, c.getFilteredItemElements = function () { return this.filteredItems.map((function (e) { return e.element })) }, u })), function () { "use strict"; function e(n) { if (!n) throw new Error("No options passed to Waypoint constructor"); if (!n.element) throw new Error("No element option passed to Waypoint constructor"); if (!n.handler) throw new Error("No handler option passed to Waypoint constructor"); this.key = "waypoint-" + t, this.options = e.Adapter.extend({}, e.defaults, n), this.element = this.options.element, this.adapter = new e.Adapter(this.element), this.callback = n.handler, this.axis = this.options.horizontal ? "horizontal" : "vertical", this.enabled = this.options.enabled, this.triggerPoint = null, this.group = e.Group.findOrCreate({ name: this.options.group, axis: this.axis }), this.context = e.Context.findOrCreateByElement(this.options.context), e.offsetAliases[this.options.offset] && (this.options.offset = e.offsetAliases[this.options.offset]), this.group.add(this), this.context.add(this), i[this.key] = this, t += 1 } var t = 0, i = {}; e.prototype.queueTrigger = function (e) { this.group.queueTrigger(this, e) }, e.prototype.trigger = function (e) { this.enabled && this.callback && this.callback.apply(this, e) }, e.prototype.destroy = function () { this.context.remove(this), this.group.remove(this), delete i[this.key] }, e.prototype.disable = function () { return this.enabled = !1, this }, e.prototype.enable = function () { return this.context.refresh(), this.enabled = !0, this }, e.prototype.next = function () { return this.group.next(this) }, e.prototype.previous = function () { return this.group.previous(this) }, e.invokeAll = function (e) { var t = []; for (var n in i) t.push(i[n]); for (var r = 0, s = t.length; s > r; r++)t[r][e]() }, e.destroyAll = function () { e.invokeAll("destroy") }, e.disableAll = function () { e.invokeAll("disable") }, e.enableAll = function () { e.invokeAll("enable") }, e.refreshAll = function () { e.Context.refreshAll() }, e.viewportHeight = function () { return window.innerHeight || document.documentElement.clientHeight }, e.viewportWidth = function () { return document.documentElement.clientWidth }, e.adapters = [], e.defaults = { context: window, continuous: !0, enabled: !0, group: "default", horizontal: !1, offset: 0 }, e.offsetAliases = { "bottom-in-view": function () { return this.context.innerHeight() - this.adapter.outerHeight() }, "right-in-view": function () { return this.context.innerWidth() - this.adapter.outerWidth() } }, window.Waypoint = e }(), function () { "use strict"; function e(e) { window.setTimeout(e, 1e3 / 60) } function t(e) { this.element = e, this.Adapter = r.Adapter, this.adapter = new this.Adapter(e), this.key = "waypoint-context-" + i, this.didScroll = !1, this.didResize = !1, this.oldScroll = { x: this.adapter.scrollLeft(), y: this.adapter.scrollTop() }, this.waypoints = { vertical: {}, horizontal: {} }, e.waypointContextKey = this.key, n[e.waypointContextKey] = this, i += 1, this.createThrottledScrollHandler(), this.createThrottledResizeHandler() } var i = 0, n = {}, r = window.Waypoint, s = window.onload; t.prototype.add = function (e) { var t = e.options.horizontal ? "horizontal" : "vertical"; this.waypoints[t][e.key] = e, this.refresh() }, t.prototype.checkEmpty = function () { var e = this.Adapter.isEmptyObject(this.waypoints.horizontal), t = this.Adapter.isEmptyObject(this.waypoints.vertical); e && t && (this.adapter.off(".waypoints"), delete n[this.key]) }, t.prototype.createThrottledResizeHandler = function () { function e() { t.handleResize(), t.didResize = !1 } var t = this; this.adapter.on("resize.waypoints", (function () { t.didResize || (t.didResize = !0, r.requestAnimationFrame(e)) })) }, t.prototype.createThrottledScrollHandler = function () { function e() { t.handleScroll(), t.didScroll = !1 } var t = this; this.adapter.on("scroll.waypoints", (function () { (!t.didScroll || r.isTouch) && (t.didScroll = !0, r.requestAnimationFrame(e)) })) }, t.prototype.handleResize = function () { r.Context.refreshAll() }, t.prototype.handleScroll = function () { var e = {}, t = { horizontal: { newScroll: this.adapter.scrollLeft(), oldScroll: this.oldScroll.x, forward: "right", backward: "left" }, vertical: { newScroll: this.adapter.scrollTop(), oldScroll: this.oldScroll.y, forward: "down", backward: "up" } }; for (var i in t) { var n = t[i], r = n.newScroll > n.oldScroll ? n.forward : n.backward; for (var s in this.waypoints[i]) { var o = this.waypoints[i][s], a = n.oldScroll < o.triggerPoint, l = n.newScroll >= o.triggerPoint; (a && l || !a && !l) && (o.queueTrigger(r), e[o.group.id] = o.group) } } for (var u in e) e[u].flushTriggers(); this.oldScroll = { x: t.horizontal.newScroll, y: t.vertical.newScroll } }, t.prototype.innerHeight = function () { return this.element == this.element.window ? r.viewportHeight() : this.adapter.innerHeight() }, t.prototype.remove = function (e) { delete this.waypoints[e.axis][e.key], this.checkEmpty() }, t.prototype.innerWidth = function () { return this.element == this.element.window ? r.viewportWidth() : this.adapter.innerWidth() }, t.prototype.destroy = function () { var e = []; for (var t in this.waypoints) for (var i in this.waypoints[t]) e.push(this.waypoints[t][i]); for (var n = 0, r = e.length; r > n; n++)e[n].destroy() }, t.prototype.refresh = function () { var e, t = this.element == this.element.window, i = t ? void 0 : this.adapter.offset(), n = {}; for (var s in this.handleScroll(), e = { horizontal: { contextOffset: t ? 0 : i.left, contextScroll: t ? 0 : this.oldScroll.x, contextDimension: this.innerWidth(), oldScroll: this.oldScroll.x, forward: "right", backward: "left", offsetProp: "left" }, vertical: { contextOffset: t ? 0 : i.top, contextScroll: t ? 0 : this.oldScroll.y, contextDimension: this.innerHeight(), oldScroll: this.oldScroll.y, forward: "down", backward: "up", offsetProp: "top" } }) { var o = e[s]; for (var a in this.waypoints[s]) { var l, u, c, d, p = this.waypoints[s][a], f = p.options.offset, h = p.triggerPoint, m = 0, g = null == h; p.element !== p.element.window && (m = p.adapter.offset()[o.offsetProp]), "function" == typeof f ? f = f.apply(p) : "string" == typeof f && (f = parseFloat(f), p.options.offset.indexOf("%") > -1 && (f = Math.ceil(o.contextDimension * f / 100))), l = o.contextScroll - o.contextOffset, p.triggerPoint = m + l - f, u = h < o.oldScroll, c = p.triggerPoint >= o.oldScroll, d = !u && !c, !g && (u && c) ? (p.queueTrigger(o.backward), n[p.group.id] = p.group) : (!g && d || g && o.oldScroll >= p.triggerPoint) && (p.queueTrigger(o.forward), n[p.group.id] = p.group) } } return r.requestAnimationFrame((function () { for (var e in n) n[e].flushTriggers() })), this }, t.findOrCreateByElement = function (e) { return t.findByElement(e) || new t(e) }, t.refreshAll = function () { for (var e in n) n[e].refresh() }, t.findByElement = function (e) { return n[e.waypointContextKey] }, window.onload = function () { s && s(), t.refreshAll() }, r.requestAnimationFrame = function (t) { (window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || e).call(window, t) }, r.Context = t }(), function () { "use strict"; function e(e, t) { return e.triggerPoint - t.triggerPoint } function t(e, t) { return t.triggerPoint - e.triggerPoint } function i(e) { this.name = e.name, this.axis = e.axis, this.id = this.name + "-" + this.axis, this.waypoints = [], this.clearTriggerQueues(), n[this.axis][this.name] = this } var n = { vertical: {}, horizontal: {} }, r = window.Waypoint; i.prototype.add = function (e) { this.waypoints.push(e) }, i.prototype.clearTriggerQueues = function () { this.triggerQueues = { up: [], down: [], left: [], right: [] } }, i.prototype.flushTriggers = function () { for (var i in this.triggerQueues) { var n = this.triggerQueues[i], r = "up" === i || "left" === i; n.sort(r ? t : e); for (var s = 0, o = n.length; o > s; s += 1) { var a = n[s]; (a.options.continuous || s === n.length - 1) && a.trigger([i]) } } this.clearTriggerQueues() }, i.prototype.next = function (t) { this.waypoints.sort(e); var i = r.Adapter.inArray(t, this.waypoints); return i === this.waypoints.length - 1 ? null : this.waypoints[i + 1] }, i.prototype.previous = function (t) { this.waypoints.sort(e); var i = r.Adapter.inArray(t, this.waypoints); return i ? this.waypoints[i - 1] : null }, i.prototype.queueTrigger = function (e, t) { this.triggerQueues[t].push(e) }, i.prototype.remove = function (e) { var t = r.Adapter.inArray(e, this.waypoints); t > -1 && this.waypoints.splice(t, 1) }, i.prototype.first = function () { return this.waypoints[0] }, i.prototype.last = function () { return this.waypoints[this.waypoints.length - 1] }, i.findOrCreate = function (e) { return n[e.axis][e.name] || new i(e) }, r.Group = i }(), function () { "use strict"; function e(e) { this.$element = t(e) } var t = window.jQuery, i = window.Waypoint; t.each(["innerHeight", "innerWidth", "off", "offset", "on", "outerHeight", "outerWidth", "scrollLeft", "scrollTop"], (function (t, i) { e.prototype[i] = function () { var e = Array.prototype.slice.call(arguments); return this.$element[i].apply(this.$element, e) } })), t.each(["extend", "inArray", "isEmptyObject"], (function (i, n) { e[n] = t[n] })), i.adapters.push({ name: "jquery", Adapter: e }), i.Adapter = e }(), function () { "use strict"; function e(e) { return function () { var i = [], n = arguments[0]; return e.isFunction(arguments[0]) && ((n = e.extend({}, arguments[1])).handler = arguments[0]), this.each((function () { var r = e.extend({}, n, { element: this }); "string" == typeof r.context && (r.context = e(this).closest(r.context)[0]), i.push(new t(r)) })), i } } var t = window.Waypoint; window.jQuery && (window.jQuery.fn.waypoint = e(window.jQuery)), window.Zepto && (window.Zepto.fn.waypoint = e(window.Zepto)) }(), /*! * jquery.counterup.js 1.0 * * Copyright 2013, Benjamin Intal http://gambit.ph @bfintal * Released under the GPL v2 License * * Date: Nov 26, 2013 */ function (e) { "use strict"; e.fn.counterUp = function (t) { var i, n = e.extend({ time: 400, delay: 10, offset: 100, beginAt: 0, formatter: !1, context: "window", callback: function () { } }, t); return this.each((function () { var t = e(this), r = { time: e(this).data("counterup-time") || n.time, delay: e(this).data("counterup-delay") || n.delay, offset: e(this).data("counterup-offset") || n.offset, beginAt: e(this).data("counterup-beginat") || n.beginAt, context: e(this).data("counterup-context") || n.context }; t.waypoint((function (s) { !function () { var s = [], o = r.time / r.delay, a = e(this).attr("data-num") ? e(this).attr("data-num") : t.text(), l = /[0-9]+,[0-9]+/.test(a), u = ((a = a.replace(/,/g, "")).split(".")[1] || []).length; r.beginAt > a && (r.beginAt = a); var c = /[0-9]+:[0-9]+:[0-9]+/.test(a); if (c) { var d = a.split(":"), p = 1; for (i = 0; d.length > 0;)i += p * parseInt(d.pop(), 10), p *= 60 } for (var f = o; f >= r.beginAt / a * o; f--) { var h = parseFloat(a / o * f).toFixed(u); if (c) { h = parseInt(i / o * f); var m = parseInt(h / 3600) % 24, g = parseInt(h / 60) % 60, v = parseInt(h % 60, 10); h = (m < 10 ? "0" + m : m) + ":" + (g < 10 ? "0" + g : g) + ":" + (v < 10 ? "0" + v : v) } if (l) for (; /(\d+)(\d{3})/.test(h.toString());)h = h.toString().replace(/(\d+)(\d{3})/, "$1,$2"); n.formatter && (h = n.formatter.call(this, h)), s.unshift(h) } t.data("counterup-nums", s), t.text(r.beginAt); t.data("counterup-func", (function () { t.data("counterup-nums") ? (t.html(t.data("counterup-nums").shift()), t.data("counterup-nums").length ? setTimeout(t.data("counterup-func"), r.delay) : (t.data("counterup-nums", null), t.data("counterup-func", null), n.callback.call(this))) : n.callback.call(this) })), setTimeout(t.data("counterup-func"), r.delay) }(), this.destroy() }), { offset: r.offset + "%", context: r.context }) })) } }(jQuery), function () { "use strict"; var e, t, i, n, r; e = function (e, t) { return "string" == typeof e && "string" == typeof t && e.toLowerCase() === t.toLowerCase() }, t = function (e, i, n) { var r = n || "0", s = e.toString(); return s.length < i ? t(r + s, i) : s }, i = function (e) { var t, n; for (e = e || {}, t = 1; t < arguments.length; t++)if (n = arguments[t]) for (var r in n) n.hasOwnProperty(r) && ("object" == typeof n[r] ? i(e[r], n[r]) : e[r] = n[r]); return e }, n = function (e, t) { for (var i = 0; i < t.length; i++)if (t[i].toLowerCase() === e.toLowerCase()) return i; return -1 }, r = { dateSettings: { days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], meridiem: ["AM", "PM"], ordinal: function (e) { var t = e % 10, i = { 1: "st", 2: "nd", 3: "rd" }; return 1 !== Math.floor(e % 100 / 10) && i[t] ? i[t] : "th" } }, separators: /[ \-+\/\.T:@]/g, validParts: /[dDjlNSwzWFmMntLoYyaABgGhHisueTIOPZcrU]/g, intParts: /[djwNzmnyYhHgGis]/g, tzParts: /\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g, tzClip: /[^-+\dA-Z]/g }, (DateFormatter = function (e) { var t = this, n = i(r, e); t.dateSettings = n.dateSettings, t.separators = n.separators, t.validParts = n.validParts, t.intParts = n.intParts, t.tzParts = n.tzParts, t.tzClip = n.tzClip }).prototype = { constructor: DateFormatter, getMonth: function (e) { var t; return 0 === (t = n(e, this.dateSettings.monthsShort) + 1) && (t = n(e, this.dateSettings.months) + 1), t }, parseDate: function (t, i) { var n, r, s, o, a, l, u, c, d, p, f = this, h = !1, m = !1, g = f.dateSettings, v = { date: null, year: null, month: null, day: null, hour: 0, min: 0, sec: 0 }; if (!t) return null; if (t instanceof Date) return t; if ("U" === i) return (s = parseInt(t)) ? new Date(1e3 * s) : t; switch (typeof t) { case "number": return new Date(t); case "string": break; default: return null }if (!(n = i.match(f.validParts)) || 0 === n.length) throw new Error("Invalid date format definition."); for (r = t.replace(f.separators, "\0").split("\0"), s = 0; s < r.length; s++)switch (o = r[s], a = parseInt(o), n[s]) { case "y": case "Y": if (!a) return null; d = o.length, v.year = 2 === d ? parseInt((a < 70 ? "20" : "19") + o) : a, h = !0; break; case "m": case "n": case "M": case "F": if (isNaN(a)) { if (!(0 < (l = f.getMonth(o)))) return null; v.month = l } else { if (!(1 <= a && a <= 12)) return null; v.month = a } h = !0; break; case "d": case "j": if (!(1 <= a && a <= 31)) return null; v.day = a, h = !0; break; case "g": case "h": if (p = r[u = -1 < n.indexOf("a") ? n.indexOf("a") : -1 < n.indexOf("A") ? n.indexOf("A") : -1], -1 < u) c = e(p, g.meridiem[0]) ? 0 : e(p, g.meridiem[1]) ? 12 : -1, 1 <= a && a <= 12 && -1 < c ? v.hour = a + c - 1 : 0 <= a && a <= 23 && (v.hour = a); else { if (!(0 <= a && a <= 23)) return null; v.hour = a } m = !0; break; case "G": case "H": if (!(0 <= a && a <= 23)) return null; v.hour = a, m = !0; break; case "i": if (!(0 <= a && a <= 59)) return null; v.min = a, m = !0; break; case "s": if (!(0 <= a && a <= 59)) return null; v.sec = a, m = !0 }if (!0 === h && v.year && v.month && v.day) v.date = new Date(v.year, v.month - 1, v.day, v.hour, v.min, v.sec, 0); else { if (!0 !== m) return null; v.date = new Date(0, 0, 0, v.hour, v.min, v.sec, 0) } return v.date }, guessDate: function (e, t) { if ("string" != typeof e) return e; var i, n, r, s, o, a, l = e.replace(this.separators, "\0").split("\0"), u = t.match(this.validParts), c = new Date, d = 0; if (!/^[djmn]/g.test(u[0])) return e; for (r = 0; r < l.length; r++) { if (d = 2, o = l[r], a = parseInt(o.substr(0, 2)), isNaN(a)) return null; switch (r) { case 0: "m" === u[0] || "n" === u[0] ? c.setMonth(a - 1) : c.setDate(a); break; case 1: "m" === u[0] || "n" === u[0] ? c.setDate(a) : c.setMonth(a - 1); break; case 2: if (n = c.getFullYear(), d = (i = o.length) < 4 ? i : 4, !(n = parseInt(i < 4 ? n.toString().substr(0, 4 - i) + o : o.substr(0, 4)))) return null; c.setFullYear(n); break; case 3: c.setHours(a); break; case 4: c.setMinutes(a); break; case 5: c.setSeconds(a) }0 < (s = o.substr(d)).length && l.splice(r + 1, 0, s) } return c }, parseFormat: function (e, i) { var n, r = this, s = r.dateSettings, o = /\\?(.?)/gi, a = function (e, t) { return n[e] ? n[e]() : t }; return n = { d: function () { return t(n.j(), 2) }, D: function () { return s.daysShort[n.w()] }, j: function () { return i.getDate() }, l: function () { return s.days[n.w()] }, N: function () { return n.w() || 7 }, w: function () { return i.getDay() }, z: function () { var e = new Date(n.Y(), n.n() - 1, n.j()), t = new Date(n.Y(), 0, 1); return Math.round((e - t) / 864e5) }, W: function () { var e = new Date(n.Y(), n.n() - 1, n.j() - n.N() + 3), i = new Date(e.getFullYear(), 0, 4); return t(1 + Math.round((e - i) / 864e5 / 7), 2) }, F: function () { return s.months[i.getMonth()] }, m: function () { return t(n.n(), 2) }, M: function () { return s.monthsShort[i.getMonth()] }, n: function () { return i.getMonth() + 1 }, t: function () { return new Date(n.Y(), n.n(), 0).getDate() }, L: function () { var e = n.Y(); return e % 4 == 0 && e % 100 != 0 || e % 400 == 0 ? 1 : 0 }, o: function () { var e = n.n(), t = n.W(); return n.Y() + (12 === e && t < 9 ? 1 : 1 === e && 9 < t ? -1 : 0) }, Y: function () { return i.getFullYear() }, y: function () { return n.Y().toString().slice(-2) }, a: function () { return n.A().toLowerCase() }, A: function () { var e = n.G() < 12 ? 0 : 1; return s.meridiem[e] }, B: function () { var e = 3600 * i.getUTCHours(), n = 60 * i.getUTCMinutes(), r = i.getUTCSeconds(); return t(Math.floor((e + n + r + 3600) / 86.4) % 1e3, 3) }, g: function () { return n.G() % 12 || 12 }, G: function () { return i.getHours() }, h: function () { return t(n.g(), 2) }, H: function () { return t(n.G(), 2) }, i: function () { return t(i.getMinutes(), 2) }, s: function () { return t(i.getSeconds(), 2) }, u: function () { return t(1e3 * i.getMilliseconds(), 6) }, e: function () { return /\((.*)\)/.exec(String(i))[1] || "Coordinated Universal Time" }, I: function () { return new Date(n.Y(), 0) - Date.UTC(n.Y(), 0) != new Date(n.Y(), 6) - Date.UTC(n.Y(), 6) ? 1 : 0 }, O: function () { var e = i.getTimezoneOffset(), n = Math.abs(e); return (0 < e ? "-" : "+") + t(100 * Math.floor(n / 60) + n % 60, 4) }, P: function () { var e = n.O(); return e.substr(0, 3) + ":" + e.substr(3, 2) }, T: function () { return (String(i).match(r.tzParts) || [""]).pop().replace(r.tzClip, "") || "UTC" }, Z: function () { return 60 * -i.getTimezoneOffset() }, c: function () { return "Y-m-d\\TH:i:sP".replace(o, a) }, r: function () { return "D, d M Y H:i:s O".replace(o, a) }, U: function () { return i.getTime() / 1e3 || 0 } }, a(e, e) }, formatDate: function (e, t) { var i, n, r, s, o, a = ""; if ("string" == typeof e && !(e = this.parseDate(e, t))) return null; if (e instanceof Date) { for (r = t.length, i = 0; i < r; i++)"S" !== (o = t.charAt(i)) && "\\" !== o && (0 < i && "\\" === t.charAt(i - 1) ? a += o : (s = this.parseFormat(o, e), i !== r - 1 && this.intParts.test(o) && "S" === t.charAt(i + 1) && (n = parseInt(s) || 0, s += this.dateSettings.ordinal(n)), a += s)); return a } return "" } } }(); var datetimepickerFactory = function (e) { "use strict"; var t = { i18n: { ar: { months: ["كانون الثاني", "شباط", "آذار", "نيسان", "مايو", "حزيران", "تموز", "آب", "أيلول", "تشرين الأول", "تشرين الثاني", "كانون الأول"], dayOfWeekShort: ["ن", "ث", "ع", "خ", "ج", "س", "ح"], dayOfWeek: ["الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت", "الأحد"] }, ro: { months: ["Ianuarie", "Februarie", "Martie", "Aprilie", "Mai", "Iunie", "Iulie", "August", "Septembrie", "Octombrie", "Noiembrie", "Decembrie"], dayOfWeekShort: ["Du", "Lu", "Ma", "Mi", "Jo", "Vi", "Sâ"], dayOfWeek: ["Duminică", "Luni", "Marţi", "Miercuri", "Joi", "Vineri", "Sâmbătă"] }, id: { months: ["Januari", "Februari", "Maret", "April", "Mei", "Juni", "Juli", "Agustus", "September", "Oktober", "November", "Desember"], dayOfWeekShort: ["Min", "Sen", "Sel", "Rab", "Kam", "Jum", "Sab"], dayOfWeek: ["Minggu", "Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu"] }, is: { months: ["Janúar", "Febrúar", "Mars", "Apríl", "Maí", "Júní", "Júlí", "Ágúst", "September", "Október", "Nóvember", "Desember"], dayOfWeekShort: ["Sun", "Mán", "Þrið", "Mið", "Fim", "Fös", "Lau"], dayOfWeek: ["Sunnudagur", "Mánudagur", "Þriðjudagur", "Miðvikudagur", "Fimmtudagur", "Föstudagur", "Laugardagur"] }, bg: { months: ["Януари", "Февруари", "Март", "Април", "Май", "Юни", "Юли", "Август", "Септември", "Октомври", "Ноември", "Декември"], dayOfWeekShort: ["Нд", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб"], dayOfWeek: ["Неделя", "Понеделник", "Вторник", "Сряда", "Четвъртък", "Петък", "Събота"] }, fa: { months: ["فروردین", "اردیبهشت", "خرداد", "تیر", "مرداد", "شهریور", "مهر", "آبان", "آذر", "دی", "بهمن", "اسفند"], dayOfWeekShort: ["یکشنبه", "دوشنبه", "سه شنبه", "چهارشنبه", "پنجشنبه", "جمعه", "شنبه"], dayOfWeek: ["یکشنبه", "دوشنبه", "سهشنبه", "چهارشنبه", "پنجشنبه", "جمعه", "شنبه", "یکشنبه"] }, ru: { months: ["Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь"], dayOfWeekShort: ["Вс", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб"], dayOfWeek: ["Воскресенье", "Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота"] }, uk: { months: ["Січень", "Лютий", "Березень", "Квітень", "Травень", "Червень", "Липень", "Серпень", "Вересень", "Жовтень", "Листопад", "Грудень"], dayOfWeekShort: ["Ндл", "Пнд", "Втр", "Срд", "Чтв", "Птн", "Сбт"], dayOfWeek: ["Неділя", "Понеділок", "Вівторок", "Середа", "Четвер", "П'ятниця", "Субота"] }, en: { months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], dayOfWeekShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], dayOfWeek: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"] }, el: { months: ["Ιανουάριος", "Φεβρουάριος", "Μάρτιος", "Απρίλιος", "Μάιος", "Ιούνιος", "Ιούλιος", "Αύγουστος", "Σεπτέμβριος", "Οκτώβριος", "Νοέμβριος", "Δεκέμβριος"], dayOfWeekShort: ["Κυρ", "Δευ", "Τρι", "Τετ", "Πεμ", "Παρ", "Σαβ"], dayOfWeek: ["Κυριακή", "Δευτέρα", "Τρίτη", "Τετάρτη", "Πέμπτη", "Παρασκευή", "Σάββατο"] }, de: { months: ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"], dayOfWeekShort: ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"], dayOfWeek: ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"] }, nl: { months: ["januari", "februari", "maart", "april", "mei", "juni", "juli", "augustus", "september", "oktober", "november", "december"], dayOfWeekShort: ["zo", "ma", "di", "wo", "do", "vr", "za"], dayOfWeek: ["zondag", "maandag", "dinsdag", "woensdag", "donderdag", "vrijdag", "zaterdag"] }, tr: { months: ["Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık"], dayOfWeekShort: ["Paz", "Pts", "Sal", "Çar", "Per", "Cum", "Cts"], dayOfWeek: ["Pazar", "Pazartesi", "Salı", "Çarşamba", "Perşembe", "Cuma", "Cumartesi"] }, fr: { months: ["Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"], dayOfWeekShort: ["Dim", "Lun", "Mar", "Mer", "Jeu", "Ven", "Sam"], dayOfWeek: ["dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"] }, es: { months: ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"], dayOfWeekShort: ["Dom", "Lun", "Mar", "Mié", "Jue", "Vie", "Sáb"], dayOfWeek: ["Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado"] }, th: { months: ["มกราคม", "กุมภาพันธ์", "มีนาคม", "เมษายน", "พฤษภาคม", "มิถุนายน", "กรกฎาคม", "สิงหาคม", "กันยายน", "ตุลาคม", "พฤศจิกายน", "ธันวาคม"], dayOfWeekShort: ["อา.", "จ.", "อ.", "พ.", "พฤ.", "ศ.", "ส."], dayOfWeek: ["อาทิตย์", "จันทร์", "อังคาร", "พุธ", "พฤหัส", "ศุกร์", "เสาร์", "อาทิตย์"] }, pl: { months: ["styczeń", "luty", "marzec", "kwiecień", "maj", "czerwiec", "lipiec", "sierpień", "wrzesień", "październik", "listopad", "grudzień"], dayOfWeekShort: ["nd", "pn", "wt", "śr", "cz", "pt", "sb"], dayOfWeek: ["niedziela", "poniedziałek", "wtorek", "środa", "czwartek", "piątek", "sobota"] }, pt: { months: ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"], dayOfWeekShort: ["Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sab"], dayOfWeek: ["Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado"] }, ch: { months: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"], dayOfWeekShort: ["日", "一", "二", "三", "四", "五", "六"] }, se: { months: ["Januari", "Februari", "Mars", "April", "Maj", "Juni", "Juli", "Augusti", "September", "Oktober", "November", "December"], dayOfWeekShort: ["Sön", "Mån", "Tis", "Ons", "Tor", "Fre", "Lör"] }, km: { months: ["មករា", "កុម្ភៈ", "មិនា", "មេសា", "ឧសភា", "មិថុនា", "កក្កដា", "សីហា", "កញ្ញា", "តុលា", "វិច្ឆិកា", "ធ្នូ"], dayOfWeekShort: ["អាទិ", "ច័ន្ទ", "អង្គារ", "ពុធ", "ព្រហ", "សុក្រ", "សៅរ៍"], dayOfWeek: ["អាទិត្យ", "ច័ន្ទ", "អង្គារ", "ពុធ", "ព្រហស្បតិ៍", "សុក្រ", "សៅរ៍"] }, kr: { months: ["1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월"], dayOfWeekShort: ["일", "월", "화", "수", "목", "금", "토"], dayOfWeek: ["일요일", "월요일", "화요일", "수요일", "목요일", "금요일", "토요일"] }, it: { months: ["Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre"], dayOfWeekShort: ["Dom", "Lun", "Mar", "Mer", "Gio", "Ven", "Sab"], dayOfWeek: ["Domenica", "Lunedì", "Martedì", "Mercoledì", "Giovedì", "Venerdì", "Sabato"] }, da: { months: ["Januar", "Februar", "Marts", "April", "Maj", "Juni", "Juli", "August", "September", "Oktober", "November", "December"], dayOfWeekShort: ["Søn", "Man", "Tir", "Ons", "Tor", "Fre", "Lør"], dayOfWeek: ["søndag", "mandag", "tirsdag", "onsdag", "torsdag", "fredag", "lørdag"] }, no: { months: ["Januar", "Februar", "Mars", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Desember"], dayOfWeekShort: ["Søn", "Man", "Tir", "Ons", "Tor", "Fre", "Lør"], dayOfWeek: ["Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag"] }, ja: { months: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"], dayOfWeekShort: ["日", "月", "火", "水", "木", "金", "土"], dayOfWeek: ["日曜", "月曜", "火曜", "水曜", "木曜", "金曜", "土曜"] }, vi: { months: ["Tháng 1", "Tháng 2", "Tháng 3", "Tháng 4", "Tháng 5", "Tháng 6", "Tháng 7", "Tháng 8", "Tháng 9", "Tháng 10", "Tháng 11", "Tháng 12"], dayOfWeekShort: ["CN", "T2", "T3", "T4", "T5", "T6", "T7"], dayOfWeek: ["Chủ nhật", "Thứ hai", "Thứ ba", "Thứ tư", "Thứ năm", "Thứ sáu", "Thứ bảy"] }, sl: { months: ["Januar", "Februar", "Marec", "April", "Maj", "Junij", "Julij", "Avgust", "September", "Oktober", "November", "December"], dayOfWeekShort: ["Ned", "Pon", "Tor", "Sre", "Čet", "Pet", "Sob"], dayOfWeek: ["Nedelja", "Ponedeljek", "Torek", "Sreda", "Četrtek", "Petek", "Sobota"] }, cs: { months: ["Leden", "Únor", "Březen", "Duben", "Květen", "Červen", "Červenec", "Srpen", "Září", "Říjen", "Listopad", "Prosinec"], dayOfWeekShort: ["Ne", "Po", "Út", "St", "Čt", "Pá", "So"] }, hu: { months: ["Január", "Február", "Március", "Április", "Május", "Június", "Július", "Augusztus", "Szeptember", "Október", "November", "December"], dayOfWeekShort: ["Va", "Hé", "Ke", "Sze", "Cs", "Pé", "Szo"], dayOfWeek: ["vasárnap", "hétfő", "kedd", "szerda", "csütörtök", "péntek", "szombat"] }, az: { months: ["Yanvar", "Fevral", "Mart", "Aprel", "May", "Iyun", "Iyul", "Avqust", "Sentyabr", "Oktyabr", "Noyabr", "Dekabr"], dayOfWeekShort: ["B", "Be", "Ça", "Ç", "Ca", "C", "Ş"], dayOfWeek: ["Bazar", "Bazar ertəsi", "Çərşənbə axşamı", "Çərşənbə", "Cümə axşamı", "Cümə", "Şənbə"] }, bs: { months: ["Januar", "Februar", "Mart", "April", "Maj", "Jun", "Jul", "Avgust", "Septembar", "Oktobar", "Novembar", "Decembar"], dayOfWeekShort: ["Ned", "Pon", "Uto", "Sri", "Čet", "Pet", "Sub"], dayOfWeek: ["Nedjelja", "Ponedjeljak", "Utorak", "Srijeda", "Četvrtak", "Petak", "Subota"] }, ca: { months: ["Gener", "Febrer", "Març", "Abril", "Maig", "Juny", "Juliol", "Agost", "Setembre", "Octubre", "Novembre", "Desembre"], dayOfWeekShort: ["Dg", "Dl", "Dt", "Dc", "Dj", "Dv", "Ds"], dayOfWeek: ["Diumenge", "Dilluns", "Dimarts", "Dimecres", "Dijous", "Divendres", "Dissabte"] }, "en-GB": { months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], dayOfWeekShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], dayOfWeek: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"] }, et: { months: ["Jaanuar", "Veebruar", "Märts", "Aprill", "Mai", "Juuni", "Juuli", "August", "September", "Oktoober", "November", "Detsember"], dayOfWeekShort: ["P", "E", "T", "K", "N", "R", "L"], dayOfWeek: ["Pühapäev", "Esmaspäev", "Teisipäev", "Kolmapäev", "Neljapäev", "Reede", "Laupäev"] }, eu: { months: ["Urtarrila", "Otsaila", "Martxoa", "Apirila", "Maiatza", "Ekaina", "Uztaila", "Abuztua", "Iraila", "Urria", "Azaroa", "Abendua"], dayOfWeekShort: ["Ig.", "Al.", "Ar.", "Az.", "Og.", "Or.", "La."], dayOfWeek: ["Igandea", "Astelehena", "Asteartea", "Asteazkena", "Osteguna", "Ostirala", "Larunbata"] }, fi: { months: ["Tammikuu", "Helmikuu", "Maaliskuu", "Huhtikuu", "Toukokuu", "Kesäkuu", "Heinäkuu", "Elokuu", "Syyskuu", "Lokakuu", "Marraskuu", "Joulukuu"], dayOfWeekShort: ["Su", "Ma", "Ti", "Ke", "To", "Pe", "La"], dayOfWeek: ["sunnuntai", "maanantai", "tiistai", "keskiviikko", "torstai", "perjantai", "lauantai"] }, gl: { months: ["Xan", "Feb", "Maz", "Abr", "Mai", "Xun", "Xul", "Ago", "Set", "Out", "Nov", "Dec"], dayOfWeekShort: ["Dom", "Lun", "Mar", "Mer", "Xov", "Ven", "Sab"], dayOfWeek: ["Domingo", "Luns", "Martes", "Mércores", "Xoves", "Venres", "Sábado"] }, hr: { months: ["Siječanj", "Veljača", "Ožujak", "Travanj", "Svibanj", "Lipanj", "Srpanj", "Kolovoz", "Rujan", "Listopad", "Studeni", "Prosinac"], dayOfWeekShort: ["Ned", "Pon", "Uto", "Sri", "Čet", "Pet", "Sub"], dayOfWeek: ["Nedjelja", "Ponedjeljak", "Utorak", "Srijeda", "Četvrtak", "Petak", "Subota"] }, ko: { months: ["1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월"], dayOfWeekShort: ["일", "월", "화", "수", "목", "금", "토"], dayOfWeek: ["일요일", "월요일", "화요일", "수요일", "목요일", "금요일", "토요일"] }, lt: { months: ["Sausio", "Vasario", "Kovo", "Balandžio", "Gegužės", "Birželio", "Liepos", "Rugpjūčio", "Rugsėjo", "Spalio", "Lapkričio", "Gruodžio"], dayOfWeekShort: ["Sek", "Pir", "Ant", "Tre", "Ket", "Pen", "Šeš"], dayOfWeek: ["Sekmadienis", "Pirmadienis", "Antradienis", "Trečiadienis", "Ketvirtadienis", "Penktadienis", "Šeštadienis"] }, lv: { months: ["Janvāris", "Februāris", "Marts", "Aprīlis ", "Maijs", "Jūnijs", "Jūlijs", "Augusts", "Septembris", "Oktobris", "Novembris", "Decembris"], dayOfWeekShort: ["Sv", "Pr", "Ot", "Tr", "Ct", "Pk", "St"], dayOfWeek: ["Svētdiena", "Pirmdiena", "Otrdiena", "Trešdiena", "Ceturtdiena", "Piektdiena", "Sestdiena"] }, mk: { months: ["јануари", "февруари", "март", "април", "мај", "јуни", "јули", "август", "септември", "октомври", "ноември", "декември"], dayOfWeekShort: ["нед", "пон", "вто", "сре", "чет", "пет", "саб"], dayOfWeek: ["Недела", "Понеделник", "Вторник", "Среда", "Четврток", "Петок", "Сабота"] }, mn: { months: ["1-р сар", "2-р сар", "3-р сар", "4-р сар", "5-р сар", "6-р сар", "7-р сар", "8-р сар", "9-р сар", "10-р сар", "11-р сар", "12-р сар"], dayOfWeekShort: ["Дав", "Мяг", "Лха", "Пүр", "Бсн", "Бям", "Ням"], dayOfWeek: ["Даваа", "Мягмар", "Лхагва", "Пүрэв", "Баасан", "Бямба", "Ням"] }, "pt-BR": { months: ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"], dayOfWeekShort: ["Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sáb"], dayOfWeek: ["Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado"] }, sk: { months: ["Január", "Február", "Marec", "Apríl", "Máj", "Jún", "Júl", "August", "September", "Október", "November", "December"], dayOfWeekShort: ["Ne", "Po", "Ut", "St", "Št", "Pi", "So"], dayOfWeek: ["Nedeľa", "Pondelok", "Utorok", "Streda", "Štvrtok", "Piatok", "Sobota"] }, sq: { months: ["Janar", "Shkurt", "Mars", "Prill", "Maj", "Qershor", "Korrik", "Gusht", "Shtator", "Tetor", "Nëntor", "Dhjetor"], dayOfWeekShort: ["Die", "Hën", "Mar", "Mër", "Enj", "Pre", "Shtu"], dayOfWeek: ["E Diel", "E Hënë", "E Martē", "E Mërkurë", "E Enjte", "E Premte", "E Shtunë"] }, "sr-YU": { months: ["Januar", "Februar", "Mart", "April", "Maj", "Jun", "Jul", "Avgust", "Septembar", "Oktobar", "Novembar", "Decembar"], dayOfWeekShort: ["Ned", "Pon", "Uto", "Sre", "čet", "Pet", "Sub"], dayOfWeek: ["Nedelja", "Ponedeljak", "Utorak", "Sreda", "Četvrtak", "Petak", "Subota"] }, sr: { months: ["јануар", "фебруар", "март", "април", "мај", "јун", "јул", "август", "септембар", "октобар", "новембар", "децембар"], dayOfWeekShort: ["нед", "пон", "уто", "сре", "чет", "пет", "суб"], dayOfWeek: ["Недеља", "Понедељак", "Уторак", "Среда", "Четвртак", "Петак", "Субота"] }, sv: { months: ["Januari", "Februari", "Mars", "April", "Maj", "Juni", "Juli", "Augusti", "September", "Oktober", "November", "December"], dayOfWeekShort: ["Sön", "Mån", "Tis", "Ons", "Tor", "Fre", "Lör"], dayOfWeek: ["Söndag", "Måndag", "Tisdag", "Onsdag", "Torsdag", "Fredag", "Lördag"] }, "zh-TW": { months: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"], dayOfWeekShort: ["日", "一", "二", "三", "四", "五", "六"], dayOfWeek: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"] }, zh: { months: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"], dayOfWeekShort: ["日", "一", "二", "三", "四", "五", "六"], dayOfWeek: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"] }, ug: { months: ["1-ئاي", "2-ئاي", "3-ئاي", "4-ئاي", "5-ئاي", "6-ئاي", "7-ئاي", "8-ئاي", "9-ئاي", "10-ئاي", "11-ئاي", "12-ئاي"], dayOfWeek: ["يەكشەنبە", "دۈشەنبە", "سەيشەنبە", "چارشەنبە", "پەيشەنبە", "جۈمە", "شەنبە"] }, he: { months: ["ינואר", "פברואר", "מרץ", "אפריל", "מאי", "יוני", "יולי", "אוגוסט", "ספטמבר", "אוקטובר", "נובמבר", "דצמבר"], dayOfWeekShort: ["א'", "ב'", "ג'", "ד'", "ה'", "ו'", "שבת"], dayOfWeek: ["ראשון", "שני", "שלישי", "רביעי", "חמישי", "שישי", "שבת", "ראשון"] }, hy: { months: ["Հունվար", "Փետրվար", "Մարտ", "Ապրիլ", "Մայիս", "Հունիս", "Հուլիս", "Օգոստոս", "Սեպտեմբեր", "Հոկտեմբեր", "Նոյեմբեր", "Դեկտեմբեր"], dayOfWeekShort: ["Կի", "Երկ", "Երք", "Չոր", "Հնգ", "Ուրբ", "Շբթ"], dayOfWeek: ["Կիրակի", "Երկուշաբթի", "Երեքշաբթի", "Չորեքշաբթի", "Հինգշաբթի", "Ուրբաթ", "Շաբաթ"] }, kg: { months: ["Үчтүн айы", "Бирдин айы", "Жалган Куран", "Чын Куран", "Бугу", "Кулжа", "Теке", "Баш Оона", "Аяк Оона", "Тогуздун айы", "Жетинин айы", "Бештин айы"], dayOfWeekShort: ["Жек", "Дүй", "Шей", "Шар", "Бей", "Жум", "Ише"], dayOfWeek: ["Жекшемб", "Дүйшөмб", "Шейшемб", "Шаршемб", "Бейшемби", "Жума", "Ишенб"] }, rm: { months: ["Schaner", "Favrer", "Mars", "Avrigl", "Matg", "Zercladur", "Fanadur", "Avust", "Settember", "October", "November", "December"], dayOfWeekShort: ["Du", "Gli", "Ma", "Me", "Gie", "Ve", "So"], dayOfWeek: ["Dumengia", "Glindesdi", "Mardi", "Mesemna", "Gievgia", "Venderdi", "Sonda"] }, ka: { months: ["იანვარი", "თებერვალი", "მარტი", "აპრილი", "მაისი", "ივნისი", "ივლისი", "აგვისტო", "სექტემბერი", "ოქტომბერი", "ნოემბერი", "დეკემბერი"], dayOfWeekShort: ["კვ", "ორშ", "სამშ", "ოთხ", "ხუთ", "პარ", "შაბ"], dayOfWeek: ["კვირა", "ორშაბათი", "სამშაბათი", "ოთხშაბათი", "ხუთშაბათი", "პარასკევი", "შაბათი"] } }, ownerDocument: document, contentWindow: window, value: "", rtl: !1, format: "Y/m/d H:i", formatTime: "H:i", formatDate: "Y/m/d", startDate: !1, step: 60, monthChangeSpinner: !0, closeOnDateSelect: !1, closeOnTimeSelect: !0, closeOnWithoutClick: !0, closeOnInputClick: !0, openOnFocus: !0, timepicker: !0, datepicker: !0, weeks: !1, defaultTime: !1, defaultDate: !1, minDate: !1, maxDate: !1, minTime: !1, maxTime: !1, minDateTime: !1, maxDateTime: !1, allowTimes: [], opened: !1, initTime: !0, inline: !1, theme: "", touchMovedThreshold: 5, onSelectDate: function () { }, onSelectTime: function () { }, onChangeMonth: function () { }, onGetWeekOfYear: function () { }, onChangeYear: function () { }, onChangeDateTime: function () { }, onShow: function () { }, onClose: function () { }, onGenerate: function () { }, withoutCopyright: !0, inverseButton: !1, hours12: !1, next: "xdsoft_next", prev: "xdsoft_prev", dayOfWeekStart: 0, parentID: "body", timeHeightInTimePicker: 25, timepickerScrollbar: !0, todayButton: !0, prevButton: !0, nextButton: !0, defaultSelect: !0, scrollMonth: !0, scrollTime: !0, scrollInput: !0, lazyInit: !1, mask: !1, validateOnBlur: !0, allowBlank: !0, yearStart: 1950, yearEnd: 2050, monthStart: 0, monthEnd: 11, style: "", id: "", fixed: !1, roundTime: "round", className: "", weekends: [], highlightedDates: [], highlightedPeriods: [], allowDates: [], allowDateRe: null, disabledDates: [], disabledWeekDays: [], yearOffset: 0, beforeShowDay: null, enterLikeTab: !0, showApplyButton: !1, insideParent: !1 }, i = null, n = null, r = "en", s = { meridiem: ["AM", "PM"] }, o = function () { var o = t.i18n[r], a = { days: o.dayOfWeek, daysShort: o.dayOfWeekShort, months: o.months, monthsShort: e.map(o.months, (function (e) { return e.substring(0, 3) })) }; "function" == typeof DateFormatter && (i = n = new DateFormatter({ dateSettings: e.extend({}, s, a) })) }, a = { moment: { default_options: { format: "YYYY/MM/DD HH:mm", formatDate: "YYYY/MM/DD", formatTime: "HH:mm" }, formatter: { parseDate: function (e, t) { if (u(t)) return n.parseDate(e, t); var i = moment(e, t); return !!i.isValid() && i.toDate() }, formatDate: function (e, t) { return u(t) ? n.formatDate(e, t) : moment(e).format(t) }, formatMask: function (e) { return e.replace(/Y{4}/g, "9999").replace(/Y{2}/g, "99").replace(/M{2}/g, "19").replace(/D{2}/g, "39").replace(/H{2}/g, "29").replace(/m{2}/g, "59").replace(/s{2}/g, "59") } } } }; e.datetimepicker = { setLocale: function (e) { var i = t.i18n[e] ? e : "en"; r !== i && (r = i, o()) }, setDateFormatter: function (n) { if ("string" == typeof n && a.hasOwnProperty(n)) { var r = a[n]; e.extend(t, r.default_options), i = r.formatter } else i = n } }; var l = { RFC_2822: "D, d M Y H:i:s O", ATOM: "Y-m-dTH:i:sP", ISO_8601: "Y-m-dTH:i:sO", RFC_822: "D, d M y H:i:s O", RFC_850: "l, d-M-y H:i:s T", RFC_1036: "D, d M y H:i:s O", RFC_1123: "D, d M Y H:i:s O", RSS: "D, d M Y H:i:s O", W3C: "Y-m-dTH:i:sP" }, u = function (e) { return -1 !== Object.values(l).indexOf(e) }; function c(e, t, i) { this.date = e, this.desc = t, this.style = i } e.extend(e.datetimepicker, l), o(), window.getComputedStyle || (window.getComputedStyle = function (e) { return this.el = e, this.getPropertyValue = function (t) { var i = /(-([a-z]))/g; return "float" === t && (t = "styleFloat"), i.test(t) && (t = t.replace(i, (function (e, t, i) { return i.toUpperCase() }))), e.currentStyle[t] || null }, this }), Array.prototype.indexOf || (Array.prototype.indexOf = function (e, t) { var i, n; for (i = t || 0, n = this.length; i < n; i += 1)if (this[i] === e) return i; return -1 }), Date.prototype.countDaysInMonth = function () { return new Date(this.getFullYear(), this.getMonth() + 1, 0).getDate() }, e.fn.xdsoftScroller = function (t, i) { return this.each((function () { var n, r, s, o, a, l = e(this), u = function (e) { var t, i = { x: 0, y: 0 }; return "touchstart" === e.type || "touchmove" === e.type || "touchend" === e.type || "touchcancel" === e.type ? (t = e.originalEvent.touches[0] || e.originalEvent.changedTouches[0], i.x = t.clientX, i.y = t.clientY) : "mousedown" !== e.type && "mouseup" !== e.type && "mousemove" !== e.type && "mouseover" !== e.type && "mouseout" !== e.type && "mouseenter" !== e.type && "mouseleave" !== e.type || (i.x = e.clientX, i.y = e.clientY), i }, c = 100, d = !1, p = 0, f = 0, h = 0, m = !1, g = 0, v = function () { }; "hide" !== i ? (e(this).hasClass("xdsoft_scroller_box") || (n = l.children().eq(0), r = l[0].clientHeight, s = n[0].offsetHeight, o = e('<div class="xdsoft_scrollbar"></div>'), a = e('<div class="xdsoft_scroller"></div>'), o.append(a), l.addClass("xdsoft_scroller_box").append(o), v = function (e) { var t = u(e).y - p + g; t < 0 && (t = 0), t + a[0].offsetHeight > h && (t = h - a[0].offsetHeight), l.trigger("scroll_element.xdsoft_scroller", [c ? t / c : 0]) }, a.on("touchstart.xdsoft_scroller mousedown.xdsoft_scroller", (function (n) { r || l.trigger("resize_scroll.xdsoft_scroller", [i]), p = u(n).y, g = parseInt(a.css("margin-top"), 10), h = o[0].offsetHeight, "mousedown" === n.type || "touchstart" === n.type ? (t.ownerDocument && e(t.ownerDocument.body).addClass("xdsoft_noselect"), e([t.ownerDocument.body, t.contentWindow]).on("touchend mouseup.xdsoft_scroller", (function i() { e([t.ownerDocument.body, t.contentWindow]).off("touchend mouseup.xdsoft_scroller", i).off("mousemove.xdsoft_scroller", v).removeClass("xdsoft_noselect") })), e(t.ownerDocument.body).on("mousemove.xdsoft_scroller", v)) : (m = !0, n.stopPropagation(), n.preventDefault()) })).on("touchmove", (function (e) { m && (e.preventDefault(), v(e)) })).on("touchend touchcancel", (function () { m = !1, g = 0 })), l.on("scroll_element.xdsoft_scroller", (function (e, t) { r || l.trigger("resize_scroll.xdsoft_scroller", [t, !0]), t = 1 < t ? 1 : t < 0 || isNaN(t) ? 0 : t, a.css("margin-top", c * t), setTimeout((function () { n.css("marginTop", -parseInt((n[0].offsetHeight - r) * t, 10)) }), 10) })).on("resize_scroll.xdsoft_scroller", (function (e, t, i) { var u, d; r = l[0].clientHeight, s = n[0].offsetHeight, d = (u = r / s) * o[0].offsetHeight, 1 < u ? a.hide() : (a.show(), a.css("height", parseInt(10 < d ? d : 10, 10)), c = o[0].offsetHeight - a[0].offsetHeight, !0 !== i && l.trigger("scroll_element.xdsoft_scroller", [t || Math.abs(parseInt(n.css("marginTop"), 10)) / (s - r)])) })), l.on("mousewheel", (function (e) { var t = Math.abs(parseInt(n.css("marginTop"), 10)); return (t -= 20 * e.deltaY) < 0 && (t = 0), l.trigger("scroll_element.xdsoft_scroller", [t / (s - r)]), e.stopPropagation(), !1 })), l.on("touchstart", (function (e) { d = u(e), f = Math.abs(parseInt(n.css("marginTop"), 10)) })), l.on("touchmove", (function (e) { if (d) { e.preventDefault(); var t = u(e); l.trigger("scroll_element.xdsoft_scroller", [(f - (t.y - d.y)) / (s - r)]) } })), l.on("touchend touchcancel", (function () { d = !1, f = 0 }))), l.trigger("resize_scroll.xdsoft_scroller", [i])) : l.find(".xdsoft_scrollbar").hide() })) }, e.fn.datetimepicker = function (n, s) { var o, a, l = this, u = 17, d = 13, p = 27, f = 37, h = 38, m = 39, g = 40, v = 9, y = 116, b = 65, w = 67, D = 86, _ = 90, x = 89, E = !1, T = e.isPlainObject(n) || !n ? e.extend(!0, {}, t, n) : e.extend(!0, {}, t), S = 0; return o = function (t) { var s, o, a, l, S, C, M = e('<div class="xdsoft_datetimepicker xdsoft_noselect"></div>'), k = e('<div class="xdsoft_copyright"><a target="_blank" href="http://xdsoft.net/jqplugins/datetimepicker/">xdsoft.net</a></div>'), O = e('<div class="xdsoft_datepicker active"></div>'), A = e('<div class="xdsoft_monthpicker"><button type="button" class="xdsoft_prev"></button><button type="button" class="xdsoft_today_button"></button><div class="xdsoft_label xdsoft_month"><span></span><i></i></div><div class="xdsoft_label xdsoft_year"><span></span><i></i></div><button type="button" class="xdsoft_next"></button></div>'), P = e('<div class="xdsoft_calendar"></div>'), F = e('<div class="xdsoft_timepicker active"><button type="button" class="xdsoft_prev"></button><div class="xdsoft_time_box"></div><button type="button" class="xdsoft_next"></button></div>'), L = F.find(".xdsoft_time_box").eq(0), I = e('<div class="xdsoft_time_variant"></div>'), z = e('<button type="button" class="xdsoft_save_selected blue-gradient-button">Save Selected</button>'), B = e('<div class="xdsoft_select xdsoft_monthselect"><div></div></div>'), W = e('<div class="xdsoft_select xdsoft_yearselect"><div></div></div>'), j = !1, N = 0; T.id && M.attr("id", T.id), T.style && M.attr("style", T.style), T.weeks && M.addClass("xdsoft_showweeks"), T.rtl && M.addClass("xdsoft_rtl"), M.addClass("xdsoft_" + T.theme), M.addClass(T.className), A.find(".xdsoft_month span").after(B), A.find(".xdsoft_year span").after(W), A.find(".xdsoft_month,.xdsoft_year").on("touchstart mousedown.xdsoft", (function (t) { var i, n, r = e(this).find(".xdsoft_select").eq(0), s = 0, o = 0, a = r.is(":visible"); for (A.find(".xdsoft_select").hide(), S.currentTime && (s = S.currentTime[e(this).hasClass("xdsoft_month") ? "getMonth" : "getFullYear"]()), r[a ? "hide" : "show"](), i = r.find("div.xdsoft_option"), n = 0; n < i.length && i.eq(n).data("value") !== s; n += 1)o += i[0].offsetHeight; return r.xdsoftScroller(T, o / (r.children()[0].offsetHeight - r[0].clientHeight)), t.stopPropagation(), !1 })); var R = function (e) { var t = e.originalEvent, i = t.touches ? t.touches[0] : t; this.touchStartPosition = this.touchStartPosition || i; var n = Math.abs(this.touchStartPosition.clientX - i.clientX), r = Math.abs(this.touchStartPosition.clientY - i.clientY); Math.sqrt(n * n + r * r) > T.touchMovedThreshold && (this.touchMoved = !0) }; function H() { var e, i = !1; return T.startDate ? i = S.strToDate(T.startDate) : (i = T.value || (t && t.val && t.val() ? t.val() : "")) ? (i = S.strToDateTime(i), T.yearOffset && (i = new Date(i.getFullYear() - T.yearOffset, i.getMonth(), i.getDate(), i.getHours(), i.getMinutes(), i.getSeconds(), i.getMilliseconds()))) : T.defaultDate && (i = S.strToDateTime(T.defaultDate), T.defaultTime && (e = S.strtotime(T.defaultTime), i.setHours(e.getHours()), i.setMinutes(e.getMinutes()))), i && S.isValidDate(i) ? M.data("changed", !0) : i = "", i || 0 } function Y(n) { var r = function (e, t) { var i = e.replace(/([\[\]\/\{\}\(\)\-\.\+]{1})/g, "\\$1").replace(/_/g, "{digit+}").replace(/([0-9]{1})/g, "{digit$1}").replace(/\{digit([0-9]{1})\}/g, "[0-$1_]{1}").replace(/\{digit[\+]\}/g, "[0-9_]{1}"); return new RegExp(i).test(t) }, s = function (e, t) { if (!(e = "string" == typeof e || e instanceof String ? n.ownerDocument.getElementById(e) : e)) return !1; if (e.createTextRange) { var i = e.createTextRange(); return i.collapse(!0), i.moveEnd("character", t), i.moveStart("character", t), i.select(), !0 } return !!e.setSelectionRange && (e.setSelectionRange(t, t), !0) }; n.mask && t.off("keydown.xdsoft"), !0 === n.mask && (i.formatMask ? n.mask = i.formatMask(n.format) : n.mask = n.format.replace(/Y/g, "9999").replace(/F/g, "9999").replace(/m/g, "19").replace(/d/g, "39").replace(/H/g, "29").replace(/i/g, "59").replace(/s/g, "59")), "string" === e.type(n.mask) && (r(n.mask, t.val()) || (t.val(n.mask.replace(/[0-9]/g, "_")), s(t[0], 0)), t.on("paste.xdsoft", (function (i) { var o = (i.clipboardData || i.originalEvent.clipboardData || window.clipboardData).getData("text"), a = this.value, l = this.selectionStart; return a = a.substr(0, l) + o + a.substr(l + o.length), l += o.length, r(n.mask, a) ? (this.value = a, s(this, l)) : "" === e.trim(a) ? this.value = n.mask.replace(/[0-9]/g, "_") : t.trigger("error_input.xdsoft"), i.preventDefault(), !1 })), t.on("keydown.xdsoft", (function (i) { var o, a = this.value, l = i.which, c = this.selectionStart, T = this.selectionEnd, S = c !== T; if (48 <= l && l <= 57 || 96 <= l && l <= 105 || 8 === l || 46 === l) { for (o = 8 === l || 46 === l ? "_" : String.fromCharCode(96 <= l && l <= 105 ? l - 48 : l), 8 === l && c && !S && (c -= 1); ;) { var C = n.mask.substr(c, 1), M = c < n.mask.length, k = 0 < c; if (!(/[^0-9_]/.test(C) && M && k)) break; c += 8 !== l || S ? 1 : -1 } if (i.metaKey && (S = !(c = 0)), S) { var O = T - c, A = n.mask.replace(/[0-9]/g, "_"), P = A.substr(c, O).substr(1); a = a.substr(0, c) + (o + P) + a.substr(c + O) } else a = a.substr(0, c) + o + a.substr(c + 1); if ("" === e.trim(a)) a = A; else if (c === n.mask.length) return i.preventDefault(), !1; for (c += 8 === l ? 0 : 1; /[^0-9_]/.test(n.mask.substr(c, 1)) && c < n.mask.length && 0 < c;)c += 8 === l ? 0 : 1; r(n.mask, a) ? (this.value = a, s(this, c)) : "" === e.trim(a) ? this.value = n.mask.replace(/[0-9]/g, "_") : t.trigger("error_input.xdsoft") } else if (-1 !== [b, w, D, _, x].indexOf(l) && E || -1 !== [p, h, g, f, m, y, u, v, d].indexOf(l)) return !0; return i.preventDefault(), !1 }))) } A.find(".xdsoft_select").xdsoftScroller(T).on("touchstart mousedown.xdsoft", (function (e) { var t = e.originalEvent; this.touchMoved = !1, this.touchStartPosition = t.touches ? t.touches[0] : t, e.stopPropagation(), e.preventDefault() })).on("touchmove", ".xdsoft_option", R).on("touchend mousedown.xdsoft", ".xdsoft_option", (function () { if (!this.touchMoved) { void 0 !== S.currentTime && null !== S.currentTime || (S.currentTime = S.now()); var t = S.currentTime.getFullYear(); S && S.currentTime && S.currentTime[e(this).parent().parent().hasClass("xdsoft_monthselect") ? "setMonth" : "setFullYear"](e(this).data("value")), e(this).parent().parent().hide(), M.trigger("xchange.xdsoft"), T.onChangeMonth && e.isFunction(T.onChangeMonth) && T.onChangeMonth.call(M, S.currentTime, M.data("input")), t !== S.currentTime.getFullYear() && e.isFunction(T.onChangeYear) && T.onChangeYear.call(M, S.currentTime, M.data("input")) } })), M.getValue = function () { return S.getCurrentTime() }, M.setOptions = function (n) { var r = {}; T = e.extend(!0, {}, T, n), n.allowTimes && e.isArray(n.allowTimes) && n.allowTimes.length && (T.allowTimes = e.extend(!0, [], n.allowTimes)), n.weekends && e.isArray(n.weekends) && n.weekends.length && (T.weekends = e.extend(!0, [], n.weekends)), n.allowDates && e.isArray(n.allowDates) && n.allowDates.length && (T.allowDates = e.extend(!0, [], n.allowDates)), n.allowDateRe && "[object String]" === Object.prototype.toString.call(n.allowDateRe) && (T.allowDateRe = new RegExp(n.allowDateRe)), n.highlightedDates && e.isArray(n.highlightedDates) && n.highlightedDates.length && (e.each(n.highlightedDates, (function (t, n) { var s, o = e.map(n.split(","), e.trim), a = new c(i.parseDate(o[0], T.formatDate), o[1], o[2]), l = i.formatDate(a.date, T.formatDate); void 0 !== r[l] ? (s = r[l].desc) && s.length && a.desc && a.desc.length && (r[l].desc = s + "\n" + a.desc) : r[l] = a })), T.highlightedDates = e.extend(!0, [], r)), n.highlightedPeriods && e.isArray(n.highlightedPeriods) && n.highlightedPeriods.length && (r = e.extend(!0, [], T.highlightedDates), e.each(n.highlightedPeriods, (function (t, n) { var s, o, a, l, u, d, p; if (e.isArray(n)) s = n[0], o = n[1], a = n[2], p = n[3]; else { var f = e.map(n.split(","), e.trim); s = i.parseDate(f[0], T.formatDate), o = i.parseDate(f[1], T.formatDate), a = f[2], p = f[3] } for (; s <= o;)l = new c(s, a, p), u = i.formatDate(s, T.formatDate), s.setDate(s.getDate() + 1), void 0 !== r[u] ? (d = r[u].desc) && d.length && l.desc && l.desc.length && (r[u].desc = d + "\n" + l.desc) : r[u] = l })), T.highlightedDates = e.extend(!0, [], r)), n.disabledDates && e.isArray(n.disabledDates) && n.disabledDates.length && (T.disabledDates = e.extend(!0, [], n.disabledDates)), n.disabledWeekDays && e.isArray(n.disabledWeekDays) && n.disabledWeekDays.length && (T.disabledWeekDays = e.extend(!0, [], n.disabledWeekDays)), !T.open && !T.opened || T.inline || t.trigger("open.xdsoft"), T.inline && (j = !0, M.addClass("xdsoft_inline"), t.after(M).hide()), T.inverseButton && (T.next = "xdsoft_prev", T.prev = "xdsoft_next"), T.datepicker ? O.addClass("active") : O.removeClass("active"), T.timepicker ? F.addClass("active") : F.removeClass("active"), T.value && (S.setCurrentTime(T.value), t && t.val && t.val(S.str)), isNaN(T.dayOfWeekStart) ? T.dayOfWeekStart = 0 : T.dayOfWeekStart = parseInt(T.dayOfWeekStart, 10) % 7, T.timepickerScrollbar || L.xdsoftScroller(T, "hide"), T.minDate && /^[\+\-](.*)$/.test(T.minDate) && (T.minDate = i.formatDate(S.strToDateTime(T.minDate), T.formatDate)), T.maxDate && /^[\+\-](.*)$/.test(T.maxDate) && (T.maxDate = i.formatDate(S.strToDateTime(T.maxDate), T.formatDate)), T.minDateTime && /^\+(.*)$/.test(T.minDateTime) && (T.minDateTime = S.strToDateTime(T.minDateTime).dateFormat(T.formatDate)), T.maxDateTime && /^\+(.*)$/.test(T.maxDateTime) && (T.maxDateTime = S.strToDateTime(T.maxDateTime).dateFormat(T.formatDate)), z.toggle(T.showApplyButton), A.find(".xdsoft_today_button").css("visibility", T.todayButton ? "visible" : "hidden"), A.find("." + T.prev).css("visibility", T.prevButton ? "visible" : "hidden"), A.find("." + T.next).css("visibility", T.nextButton ? "visible" : "hidden"), Y(T), T.validateOnBlur && t.off("blur.xdsoft").on("blur.xdsoft", (function () { if (T.allowBlank && (!e.trim(e(this).val()).length || "string" == typeof T.mask && e.trim(e(this).val()) === T.mask.replace(/[0-9]/g, "_"))) e(this).val(null), M.data("xdsoft_datetime").empty(); else { var t = i.parseDate(e(this).val(), T.format); if (t) e(this).val(i.formatDate(t, T.format)); else { var n = +[e(this).val()[0], e(this).val()[1]].join(""), r = +[e(this).val()[2], e(this).val()[3]].join(""); !T.datepicker && T.timepicker && 0 <= n && n < 24 && 0 <= r && r < 60 ? e(this).val([n, r].map((function (e) { return 9 < e ? e : "0" + e })).join(":")) : e(this).val(i.formatDate(S.now(), T.format)) } M.data("xdsoft_datetime").setCurrentTime(e(this).val()) } M.trigger("changedatetime.xdsoft"), M.trigger("close.xdsoft") })), T.dayOfWeekStartPrev = 0 === T.dayOfWeekStart ? 6 : T.dayOfWeekStart - 1, M.trigger("xchange.xdsoft").trigger("afterOpen.xdsoft") }, M.data("options", T).on("touchstart mousedown.xdsoft", (function (e) { return e.stopPropagation(), e.preventDefault(), W.hide(), B.hide(), !1 })), L.append(I), L.xdsoftScroller(T), M.on("afterOpen.xdsoft", (function () { L.xdsoftScroller(T) })), M.append(O).append(F), !0 !== T.withoutCopyright && M.append(k), O.append(A).append(P).append(z), T.insideParent ? e(t).parent().append(M) : e(T.parentID).append(M), S = new function () { var t = this; t.now = function (e) { var i, n, r = new Date; return !e && T.defaultDate && (i = t.strToDateTime(T.defaultDate), r.setFullYear(i.getFullYear()), r.setMonth(i.getMonth()), r.setDate(i.getDate())), r.setFullYear(r.getFullYear()), !e && T.defaultTime && (n = t.strtotime(T.defaultTime), r.setHours(n.getHours()), r.setMinutes(n.getMinutes()), r.setSeconds(n.getSeconds()), r.setMilliseconds(n.getMilliseconds())), r }, t.isValidDate = function (e) { return "[object Date]" === Object.prototype.toString.call(e) && !isNaN(e.getTime()) }, t.setCurrentTime = function (e, i) { "string" == typeof e ? t.currentTime = t.strToDateTime(e) : t.isValidDate(e) ? t.currentTime = e : e || i || !T.allowBlank || T.inline ? t.currentTime = t.now() : t.currentTime = null, M.trigger("xchange.xdsoft") }, t.empty = function () { t.currentTime = null }, t.getCurrentTime = function () { return t.currentTime }, t.nextMonth = function () { void 0 !== t.currentTime && null !== t.currentTime || (t.currentTime = t.now()); var i, n = t.currentTime.getMonth() + 1; return 12 === n && (t.currentTime.setFullYear(t.currentTime.getFullYear() + 1), n = 0), i = t.currentTime.getFullYear(), t.currentTime.setDate(Math.min(new Date(t.currentTime.getFullYear(), n + 1, 0).getDate(), t.currentTime.getDate())), t.currentTime.setMonth(n), T.onChangeMonth && e.isFunction(T.onChangeMonth) && T.onChangeMonth.call(M, S.currentTime, M.data("input")), i !== t.currentTime.getFullYear() && e.isFunction(T.onChangeYear) && T.onChangeYear.call(M, S.currentTime, M.data("input")), M.trigger("xchange.xdsoft"), n }, t.prevMonth = function () { void 0 !== t.currentTime && null !== t.currentTime || (t.currentTime = t.now()); var i = t.currentTime.getMonth() - 1; return -1 === i && (t.currentTime.setFullYear(t.currentTime.getFullYear() - 1), i = 11), t.currentTime.setDate(Math.min(new Date(t.currentTime.getFullYear(), i + 1, 0).getDate(), t.currentTime.getDate())), t.currentTime.setMonth(i), T.onChangeMonth && e.isFunction(T.onChangeMonth) && T.onChangeMonth.call(M, S.currentTime, M.data("input")), M.trigger("xchange.xdsoft"), i }, t.getWeekOfYear = function (t) { if (T.onGetWeekOfYear && e.isFunction(T.onGetWeekOfYear)) { var i = T.onGetWeekOfYear.call(M, t); if (void 0 !== i) return i } var n = new Date(t.getFullYear(), 0, 1); return 4 !== n.getDay() && n.setMonth(0, 1 + (4 - n.getDay() + 7) % 7), Math.ceil(((t - n) / 864e5 + n.getDay() + 1) / 7) }, t.strToDateTime = function (e) { var n, r, s = []; return e && e instanceof Date && t.isValidDate(e) ? e : ((s = /^([+-]{1})(.*)$/.exec(e)) && (s[2] = i.parseDate(s[2], T.formatDate)), r = s && s[2] ? (n = s[2].getTime() - 6e4 * s[2].getTimezoneOffset(), new Date(t.now(!0).getTime() + parseInt(s[1] + "1", 10) * n)) : e ? i.parseDate(e, T.format) : t.now(), t.isValidDate(r) || (r = t.now()), r) }, t.strToDate = function (e) { if (e && e instanceof Date && t.isValidDate(e)) return e; var n = e ? i.parseDate(e, T.formatDate) : t.now(!0); return t.isValidDate(n) || (n = t.now(!0)), n }, t.strtotime = function (e) { if (e && e instanceof Date && t.isValidDate(e)) return e; var n = e ? i.parseDate(e, T.formatTime) : t.now(!0); return t.isValidDate(n) || (n = t.now(!0)), n }, t.str = function () { var e = T.format; return T.yearOffset && (e = (e = e.replace("Y", t.currentTime.getFullYear() + T.yearOffset)).replace("y", String(t.currentTime.getFullYear() + T.yearOffset).substring(2, 4))), i.formatDate(t.currentTime, e) }, t.currentTime = this.now() }, z.on("touchend click", (function (e) { e.preventDefault(), M.data("changed", !0), S.setCurrentTime(H()), t.val(S.str()), M.trigger("close.xdsoft") })), A.find(".xdsoft_today_button").on("touchend mousedown.xdsoft", (function () { M.data("changed", !0), S.setCurrentTime(0, !0), M.trigger("afterOpen.xdsoft") })).on("dblclick.xdsoft", (function () { var e, i, n = S.getCurrentTime(); n = new Date(n.getFullYear(), n.getMonth(), n.getDate()), e = S.strToDate(T.minDate), n < (e = new Date(e.getFullYear(), e.getMonth(), e.getDate())) || (i = S.strToDate(T.maxDate), (i = new Date(i.getFullYear(), i.getMonth(), i.getDate())) < n || (t.val(S.str()), t.trigger("change"), M.trigger("close.xdsoft"))) })), A.find(".xdsoft_prev,.xdsoft_next").on("touchend mousedown.xdsoft", (function () { var t = e(this), i = 0, n = !1; !function e(r) { t.hasClass(T.next) ? S.nextMonth() : t.hasClass(T.prev) && S.prevMonth(), T.monthChangeSpinner && (n || (i = setTimeout(e, r || 100))) }(500), e([T.ownerDocument.body, T.contentWindow]).on("touchend mouseup.xdsoft", (function t() { clearTimeout(i), n = !0, e([T.ownerDocument.body, T.contentWindow]).off("touchend mouseup.xdsoft", t) })) })), F.find(".xdsoft_prev,.xdsoft_next").on("touchend mousedown.xdsoft", (function () { var t = e(this), i = 0, n = !1, r = 110; !function e(s) { var o = L[0].clientHeight, a = I[0].offsetHeight, l = Math.abs(parseInt(I.css("marginTop"), 10)); t.hasClass(T.next) && a - o - T.timeHeightInTimePicker >= l ? I.css("marginTop", "-" + (l + T.timeHeightInTimePicker) + "px") : t.hasClass(T.prev) && 0 <= l - T.timeHeightInTimePicker && I.css("marginTop", "-" + (l - T.timeHeightInTimePicker) + "px"), L.trigger("scroll_element.xdsoft_scroller", [Math.abs(parseInt(I[0].style.marginTop, 10) / (a - o))]), r = 10 < r ? 10 : r - 10, n || (i = setTimeout(e, s || r)) }(500), e([T.ownerDocument.body, T.contentWindow]).on("touchend mouseup.xdsoft", (function t() { clearTimeout(i), n = !0, e([T.ownerDocument.body, T.contentWindow]).off("touchend mouseup.xdsoft", t) })) })), s = 0, M.on("xchange.xdsoft", (function (o) { clearTimeout(s), s = setTimeout((function () { void 0 !== S.currentTime && null !== S.currentTime || (S.currentTime = S.now()); for (var s, o, a, l, u, c, d, p, f, h, m = "", g = new Date(S.currentTime.getFullYear(), S.currentTime.getMonth(), 1, 12, 0, 0), v = 0, y = S.now(), b = !1, w = !1, D = !1, _ = !1, x = [], E = !0, C = ""; g.getDay() !== T.dayOfWeekStart;)g.setDate(g.getDate() - 1); for (m += "<table><thead><tr>", T.weeks && (m += "<th></th>"), s = 0; s < 7; s += 1)m += "<th>" + T.i18n[r].dayOfWeekShort[(s + T.dayOfWeekStart) % 7] + "</th>"; for (m += "</tr></thead>", m += "<tbody>", !1 !== T.maxDate && (b = S.strToDate(T.maxDate), b = new Date(b.getFullYear(), b.getMonth(), b.getDate(), 23, 59, 59, 999)), !1 !== T.minDate && (w = S.strToDate(T.minDate), w = new Date(w.getFullYear(), w.getMonth(), w.getDate())), !1 !== T.minDateTime && (D = S.strToDate(T.minDateTime), D = new Date(D.getFullYear(), D.getMonth(), D.getDate(), D.getHours(), D.getMinutes(), D.getSeconds())), !1 !== T.maxDateTime && (_ = S.strToDate(T.maxDateTime), _ = new Date(_.getFullYear(), _.getMonth(), _.getDate(), _.getHours(), _.getMinutes(), _.getSeconds())), !1 !== _ && (h = 31 * (12 * _.getFullYear() + _.getMonth()) + _.getDate()); v < S.currentTime.countDaysInMonth() || g.getDay() !== T.dayOfWeekStart || S.currentTime.getMonth() === g.getMonth();) { x = [], v += 1, a = g.getDay(), l = g.getDate(), u = g.getFullYear(), z = g.getMonth(), c = S.getWeekOfYear(g), f = "", x.push("xdsoft_date"), d = T.beforeShowDay && e.isFunction(T.beforeShowDay.call) ? T.beforeShowDay.call(M, g) : null, T.allowDateRe && "[object RegExp]" === Object.prototype.toString.call(T.allowDateRe) && (T.allowDateRe.test(i.formatDate(g, T.formatDate)) || x.push("xdsoft_disabled")), T.allowDates && 0 < T.allowDates.length && -1 === T.allowDates.indexOf(i.formatDate(g, T.formatDate)) && x.push("xdsoft_disabled"); var k = 31 * (12 * g.getFullYear() + g.getMonth()) + g.getDate(); (!1 !== b && b < g || !1 !== D && g < D || !1 !== w && g < w || !1 !== _ && h < k || d && !1 === d[0]) && x.push("xdsoft_disabled"), -1 !== T.disabledDates.indexOf(i.formatDate(g, T.formatDate)) && x.push("xdsoft_disabled"), -1 !== T.disabledWeekDays.indexOf(a) && x.push("xdsoft_disabled"), t.is("[disabled]") && x.push("xdsoft_disabled"), d && "" !== d[1] && x.push(d[1]), S.currentTime.getMonth() !== z && x.push("xdsoft_other_month"), (T.defaultSelect || M.data("changed")) && i.formatDate(S.currentTime, T.formatDate) === i.formatDate(g, T.formatDate) && x.push("xdsoft_current"), i.formatDate(y, T.formatDate) === i.formatDate(g, T.formatDate) && x.push("xdsoft_today"), 0 !== g.getDay() && 6 !== g.getDay() && -1 === T.weekends.indexOf(i.formatDate(g, T.formatDate)) || x.push("xdsoft_weekend"), void 0 !== T.highlightedDates[i.formatDate(g, T.formatDate)] && (o = T.highlightedDates[i.formatDate(g, T.formatDate)], x.push(void 0 === o.style ? "xdsoft_highlighted_default" : o.style), f = void 0 === o.desc ? "" : o.desc), T.beforeShowDay && e.isFunction(T.beforeShowDay) && x.push(T.beforeShowDay(g)), E && (m += "<tr>", E = !1, T.weeks && (m += "<th>" + c + "</th>")), m += '<td data-date="' + l + '" data-month="' + z + '" data-year="' + u + '" class="xdsoft_date xdsoft_day_of_week' + g.getDay() + " " + x.join(" ") + '" title="' + f + '"><div>' + l + "</div></td>", g.getDay() === T.dayOfWeekStartPrev && (m += "</tr>", E = !0), g.setDate(l + 1) } m += "</tbody></table>", P.html(m), A.find(".xdsoft_label span").eq(0).text(T.i18n[r].months[S.currentTime.getMonth()]), A.find(".xdsoft_label span").eq(1).text(S.currentTime.getFullYear() + T.yearOffset), z = C = ""; var O = 0; if (!1 !== T.minTime) { var F = S.strtotime(T.minTime); O = 60 * F.getHours() + F.getMinutes() } var L = 1440; if (!1 !== T.maxTime && (F = S.strtotime(T.maxTime), L = 60 * F.getHours() + F.getMinutes()), !1 !== T.minDateTime && (F = S.strToDateTime(T.minDateTime), i.formatDate(S.currentTime, T.formatDate) === i.formatDate(F, T.formatDate))) { var z = 60 * F.getHours() + F.getMinutes(); O < z && (O = z) } if (!1 !== T.maxDateTime && (F = S.strToDateTime(T.maxDateTime), i.formatDate(S.currentTime, T.formatDate) === i.formatDate(F, T.formatDate) && (z = 60 * F.getHours() + F.getMinutes()) < L && (L = z)), p = function (n, r) { var s, o = S.now(), a = T.allowTimes && e.isArray(T.allowTimes) && T.allowTimes.length; o.setHours(n), n = parseInt(o.getHours(), 10), o.setMinutes(r), r = parseInt(o.getMinutes(), 10), x = []; var l = 60 * n + r; (t.is("[disabled]") || L <= l || l < O) && x.push("xdsoft_disabled"), (s = new Date(S.currentTime)).setHours(parseInt(S.currentTime.getHours(), 10)), a || s.setMinutes(Math[T.roundTime](S.currentTime.getMinutes() / T.step) * T.step), (T.initTime || T.defaultSelect || M.data("changed")) && s.getHours() === parseInt(n, 10) && (!a && 59 < T.step || s.getMinutes() === parseInt(r, 10)) && (T.defaultSelect || M.data("changed") ? x.push("xdsoft_current") : T.initTime && x.push("xdsoft_init_time")), parseInt(y.getHours(), 10) === parseInt(n, 10) && parseInt(y.getMinutes(), 10) === parseInt(r, 10) && x.push("xdsoft_today"), C += '<div class="xdsoft_time ' + x.join(" ") + '" data-hour="' + n + '" data-minute="' + r + '">' + i.formatDate(o, T.formatTime) + "</div>" }, T.allowTimes && e.isArray(T.allowTimes) && T.allowTimes.length) for (v = 0; v < T.allowTimes.length; v += 1)p(S.strtotime(T.allowTimes[v]).getHours(), z = S.strtotime(T.allowTimes[v]).getMinutes()); else for (s = v = 0; v < (T.hours12 ? 12 : 24); v += 1)for (s = 0; s < 60; s += T.step) { var j = 60 * v + s; j < O || L <= j || p((v < 10 ? "0" : "") + v, z = (s < 10 ? "0" : "") + s) } for (I.html(C), n = "", v = parseInt(T.yearStart, 10); v <= parseInt(T.yearEnd, 10); v += 1)n += '<div class="xdsoft_option ' + (S.currentTime.getFullYear() === v ? "xdsoft_current" : "") + '" data-value="' + v + '">' + (v + T.yearOffset) + "</div>"; for (W.children().eq(0).html(n), v = parseInt(T.monthStart, 10), n = ""; v <= parseInt(T.monthEnd, 10); v += 1)n += '<div class="xdsoft_option ' + (S.currentTime.getMonth() === v ? "xdsoft_current" : "") + '" data-value="' + v + '">' + T.i18n[r].months[v] + "</div>"; B.children().eq(0).html(n), e(M).trigger("generate.xdsoft") }), 10), o.stopPropagation() })).on("afterOpen.xdsoft", (function () { var e, t, i, n; T.timepicker && (I.find(".xdsoft_current").length ? e = ".xdsoft_current" : I.find(".xdsoft_init_time").length && (e = ".xdsoft_init_time"), e ? (t = L[0].clientHeight, (i = I[0].offsetHeight) - t < (n = I.find(e).index() * T.timeHeightInTimePicker + 1) && (n = i - t), L.trigger("scroll_element.xdsoft_scroller", [parseInt(n, 10) / (i - t)])) : L.trigger("scroll_element.xdsoft_scroller", [0])) })), o = 0, P.on("touchend click.xdsoft", "td", (function (i) { i.stopPropagation(), o += 1; var n = e(this), r = S.currentTime; if (null == r && (S.currentTime = S.now(), r = S.currentTime), n.hasClass("xdsoft_disabled")) return !1; r.setDate(1), r.setFullYear(n.data("year")), r.setMonth(n.data("month")), r.setDate(n.data("date")), M.trigger("select.xdsoft", [r]), t.val(S.str()), T.onSelectDate && e.isFunction(T.onSelectDate) && T.onSelectDate.call(M, S.currentTime, M.data("input"), i), M.data("changed", !0), M.trigger("xchange.xdsoft"), M.trigger("changedatetime.xdsoft"), (1 < o || !0 === T.closeOnDateSelect || !1 === T.closeOnDateSelect && !T.timepicker) && !T.inline && M.trigger("close.xdsoft"), setTimeout((function () { o = 0 }), 200) })), I.on("touchstart", "div", (function (e) { this.touchMoved = !1 })).on("touchmove", "div", R).on("touchend click.xdsoft", "div", (function (t) { if (!this.touchMoved) { t.stopPropagation(); var i = e(this), n = S.currentTime; if (null == n && (S.currentTime = S.now(), n = S.currentTime), i.hasClass("xdsoft_disabled")) return !1; n.setHours(i.data("hour")), n.setMinutes(i.data("minute")), M.trigger("select.xdsoft", [n]), M.data("input").val(S.str()), T.onSelectTime && e.isFunction(T.onSelectTime) && T.onSelectTime.call(M, S.currentTime, M.data("input"), t), M.data("changed", !0), M.trigger("xchange.xdsoft"), M.trigger("changedatetime.xdsoft"), !0 !== T.inline && !0 === T.closeOnTimeSelect && M.trigger("close.xdsoft") } })), O.on("mousewheel.xdsoft", (function (e) { return !T.scrollMonth || (e.deltaY < 0 ? S.nextMonth() : S.prevMonth(), !1) })), t.on("mousewheel.xdsoft", (function (e) { return !T.scrollInput || (!T.datepicker && T.timepicker ? (0 <= (a = I.find(".xdsoft_current").length ? I.find(".xdsoft_current").eq(0).index() : 0) + e.deltaY && a + e.deltaY < I.children().length && (a += e.deltaY), I.children().eq(a).length && I.children().eq(a).trigger("mousedown"), !1) : T.datepicker && !T.timepicker ? (O.trigger(e, [e.deltaY, e.deltaX, e.deltaY]), t.val && t.val(S.str()), M.trigger("changedatetime.xdsoft"), !1) : void 0) })), M.on("changedatetime.xdsoft", (function (t) { if (T.onChangeDateTime && e.isFunction(T.onChangeDateTime)) { var i = M.data("input"); T.onChangeDateTime.call(M, S.currentTime, i, t), delete T.value, i.trigger("change") } })).on("generate.xdsoft", (function () { T.onGenerate && e.isFunction(T.onGenerate) && T.onGenerate.call(M, S.currentTime, M.data("input")), j && (M.trigger("afterOpen.xdsoft"), j = !1) })).on("click.xdsoft", (function (e) { e.stopPropagation() })), a = 0, C = function (e, t) { do { if (!(e = e.parentNode) || !1 === t(e)) break } while ("HTML" !== e.nodeName) }, l = function () { var t, i, n, r, s, o, a, l, u, c, d, p, f; if (t = (l = M.data("input")).offset(), i = l[0], c = "top", n = t.top + i.offsetHeight - 1, r = t.left, s = "absolute", u = e(T.contentWindow).width(), p = e(T.contentWindow).height(), f = e(T.contentWindow).scrollTop(), T.ownerDocument.documentElement.clientWidth - t.left < O.parent().outerWidth(!0)) { var h = O.parent().outerWidth(!0) - i.offsetWidth; r -= h } "rtl" === l.parent().css("direction") && (r -= M.outerWidth() - l.outerWidth()), T.fixed ? (n -= f, r -= e(T.contentWindow).scrollLeft(), s = "fixed") : (a = !1, C(i, (function (e) { return null !== e && ("fixed" === T.contentWindow.getComputedStyle(e).getPropertyValue("position") ? !(a = !0) : void 0) })), a && !T.insideParent ? (s = "fixed", n + M.outerHeight() > p + f ? (c = "bottom", n = p + f - t.top) : n -= f) : n + M[0].offsetHeight > p + f && (n = t.top - M[0].offsetHeight + 1), n < 0 && (n = 0), r + i.offsetWidth > u && (r = u - i.offsetWidth)), o = M[0], C(o, (function (e) { if ("relative" === T.contentWindow.getComputedStyle(e).getPropertyValue("position") && u >= e.offsetWidth) return r -= (u - e.offsetWidth) / 2, !1 })), d = { position: s, left: T.insideParent ? i.offsetLeft : r, top: "", bottom: "" }, T.insideParent ? d[c] = i.offsetTop + i.offsetHeight : d[c] = n, M.css(d) }, M.on("open.xdsoft", (function (t) { var i = !0; T.onShow && e.isFunction(T.onShow) && (i = T.onShow.call(M, S.currentTime, M.data("input"), t)), !1 !== i && (M.show(), l(), e(T.contentWindow).off("resize.xdsoft", l).on("resize.xdsoft", l), T.closeOnWithoutClick && e([T.ownerDocument.body, T.contentWindow]).on("touchstart mousedown.xdsoft", (function t() { M.trigger("close.xdsoft"), e([T.ownerDocument.body, T.contentWindow]).off("touchstart mousedown.xdsoft", t) }))) })).on("close.xdsoft", (function (t) { var i = !0; A.find(".xdsoft_month,.xdsoft_year").find(".xdsoft_select").hide(), T.onClose && e.isFunction(T.onClose) && (i = T.onClose.call(M, S.currentTime, M.data("input"), t)), !1 === i || T.opened || T.inline || M.hide(), t.stopPropagation() })).on("toggle.xdsoft", (function () { M.is(":visible") ? M.trigger("close.xdsoft") : M.trigger("open.xdsoft") })).data("input", t), N = 0, M.data("xdsoft_datetime", S), M.setOptions(T), S.setCurrentTime(H()), t.data("xdsoft_datetimepicker", M).on("open.xdsoft focusin.xdsoft mousedown.xdsoft touchstart", (function () { t.is(":disabled") || t.data("xdsoft_datetimepicker").is(":visible") && T.closeOnInputClick || T.openOnFocus && (clearTimeout(N), N = setTimeout((function () { t.is(":disabled") || (j = !0, S.setCurrentTime(H(), !0), T.mask && Y(T), M.trigger("open.xdsoft")) }), 100)) })).on("keydown.xdsoft", (function (t) { var i, n = t.which; return -1 !== [d].indexOf(n) && T.enterLikeTab ? (i = e("input:visible,textarea:visible,button:visible,a:visible"), M.trigger("close.xdsoft"), i.eq(i.index(this) + 1).focus(), !1) : -1 !== [v].indexOf(n) ? (M.trigger("close.xdsoft"), !0) : void 0 })).on("blur.xdsoft", (function () { M.trigger("close.xdsoft") })) }, a = function (t) { var i = t.data("xdsoft_datetimepicker"); i && (i.data("xdsoft_datetime", null), i.remove(), t.data("xdsoft_datetimepicker", null).off(".xdsoft"), e(T.contentWindow).off("resize.xdsoft"), e([T.contentWindow, T.ownerDocument.body]).off("mousedown.xdsoft touchstart"), t.unmousewheel && t.unmousewheel()) }, e(T.ownerDocument).off("keydown.xdsoftctrl keyup.xdsoftctrl").off("keydown.xdsoftcmd keyup.xdsoftcmd").on("keydown.xdsoftctrl", (function (e) { e.keyCode === u && (E = !0) })).on("keyup.xdsoftctrl", (function (e) { e.keyCode === u && (E = !1) })).on("keydown.xdsoftcmd", (function (e) { e.keyCode })).on("keyup.xdsoftcmd", (function (e) { e.keyCode })), this.each((function () { var t, r = e(this).data("xdsoft_datetimepicker"); if (r) { if ("string" === e.type(n)) switch (n) { case "show": e(this).select().focus(), r.trigger("open.xdsoft"); break; case "hide": r.trigger("close.xdsoft"); break; case "toggle": r.trigger("toggle.xdsoft"); break; case "destroy": a(e(this)); break; case "reset": this.value = this.defaultValue, this.value && r.data("xdsoft_datetime").isValidDate(i.parseDate(this.value, T.format)) || r.data("changed", !1), r.data("xdsoft_datetime").setCurrentTime(this.value); break; case "validate": r.data("input").trigger("blur.xdsoft"); break; default: r[n] && e.isFunction(r[n]) && (l = r[n](s)) } else r.setOptions(n); return 0 } "string" !== e.type(n) && (!T.lazyInit || T.open || T.inline ? o(e(this)) : (t = e(this)).on("open.xdsoft focusin.xdsoft mousedown.xdsoft touchstart", (function e() { t.is(":disabled") || t.data("xdsoft_datetimepicker") || (clearTimeout(S), S = setTimeout((function () { t.data("xdsoft_datetimepicker") || o(t), t.off("open.xdsoft focusin.xdsoft mousedown.xdsoft touchstart", e).trigger("open.xdsoft") }), 100)) }))) })), l }, e.fn.datetimepicker.defaults = t }; !function (e) { "function" == typeof define && define.amd ? define(["jquery", "jquery-mousewheel"], e) : "object" == typeof exports ? module.exports = e(require("jquery")) : e(jQuery) }(datetimepickerFactory), function (e) { "function" == typeof define && define.amd ? define(["jquery"], e) : "object" == typeof exports ? module.exports = e : e(jQuery) }((function (e) { var t, i, n = ["wheel", "mousewheel", "DOMMouseScroll", "MozMousePixelScroll"], r = "onwheel" in document || 9 <= document.documentMode ? ["wheel"] : ["mousewheel", "DomMouseScroll", "MozMousePixelScroll"], s = Array.prototype.slice; if (e.event.fixHooks) for (var o = n.length; o;)e.event.fixHooks[n[--o]] = e.event.mouseHooks; var a = e.event.special.mousewheel = { version: "3.1.12", setup: function () { if (this.addEventListener) for (var t = r.length; t;)this.addEventListener(r[--t], l, !1); else this.onmousewheel = l; e.data(this, "mousewheel-line-height", a.getLineHeight(this)), e.data(this, "mousewheel-page-height", a.getPageHeight(this)) }, teardown: function () { if (this.removeEventListener) for (var t = r.length; t;)this.removeEventListener(r[--t], l, !1); else this.onmousewheel = null; e.removeData(this, "mousewheel-line-height"), e.removeData(this, "mousewheel-page-height") }, getLineHeight: function (t) { var i = e(t), n = i["offsetParent" in e.fn ? "offsetParent" : "parent"](); return n.length || (n = e("body")), parseInt(n.css("fontSize"), 10) || parseInt(i.css("fontSize"), 10) || 16 }, getPageHeight: function (t) { return e(t).height() }, settings: { adjustOldDeltas: !0, normalizeOffset: !0 } }; function l(n) { var r, o = n || window.event, l = s.call(arguments, 1), d = 0, p = 0, f = 0, h = 0, m = 0; if ((n = e.event.fix(o)).type = "mousewheel", "detail" in o && (f = -1 * o.detail), "wheelDelta" in o && (f = o.wheelDelta), "wheelDeltaY" in o && (f = o.wheelDeltaY), "wheelDeltaX" in o && (p = -1 * o.wheelDeltaX), "axis" in o && o.axis === o.HORIZONTAL_AXIS && (p = -1 * f, f = 0), d = 0 === f ? p : f, "deltaY" in o && (d = f = -1 * o.deltaY), "deltaX" in o && (p = o.deltaX, 0 === f && (d = -1 * p)), 0 !== f || 0 !== p) { if (1 === o.deltaMode) { var g = e.data(this, "mousewheel-line-height"); d *= g, f *= g, p *= g } else if (2 === o.deltaMode) { var v = e.data(this, "mousewheel-page-height"); d *= v, f *= v, p *= v } if (r = Math.max(Math.abs(f), Math.abs(p)), (!i || r < i) && c(o, i = r) && (i /= 40), c(o, r) && (d /= 40, p /= 40, f /= 40), d = Math[1 <= d ? "floor" : "ceil"](d / i), p = Math[1 <= p ? "floor" : "ceil"](p / i), f = Math[1 <= f ? "floor" : "ceil"](f / i), a.settings.normalizeOffset && this.getBoundingClientRect) { var y = this.getBoundingClientRect(); h = n.clientX - y.left, m = n.clientY - y.top } return n.deltaX = p, n.deltaY = f, n.deltaFactor = i, n.offsetX = h, n.offsetY = m, n.deltaMode = 0, l.unshift(n, d, p, f), t && clearTimeout(t), t = setTimeout(u, 200), (e.event.dispatch || e.event.handle).apply(this, l) } } function u() { i = null } function c(e, t) { return a.settings.adjustOldDeltas && "mousewheel" === e.type && t % 120 == 0 } e.fn.extend({ mousewheel: function (e) { return e ? this.bind("mousewheel", e) : this.trigger("mousewheel") }, unmousewheel: function (e) { return this.unbind("mousewheel", e) } }) })), function (e) { "function" == typeof define && define.amd ? define(["jquery"], e) : e("object" == typeof exports ? require("jquery") : window.jQuery || window.Zepto) }((function (e) { var t, i, n, r, s, o, a = "Close", l = "BeforeClose", u = "MarkupParse", c = "Open", d = "Change", p = "mfp", f = ".mfp", h = "mfp-ready", m = "mfp-removing", g = "mfp-prevent-close", v = function () { }, y = !!window.jQuery, b = e(window), w = function (e, i) { t.ev.on(p + e + f, i) }, D = function (t, i, n, r) { var s = document.createElement("div"); return s.className = "mfp-" + t, n && (s.innerHTML = n), r ? i && i.appendChild(s) : (s = e(s), i && s.appendTo(i)), s }, _ = function (i, n) { t.ev.triggerHandler(p + i, n), t.st.callbacks && (i = i.charAt(0).toLowerCase() + i.slice(1), t.st.callbacks[i] && t.st.callbacks[i].apply(t, e.isArray(n) ? n : [n])) }, x = function (i) { return i === o && t.currTemplate.closeBtn || (t.currTemplate.closeBtn = e(t.st.closeMarkup.replace("%title%", t.st.tClose)), o = i), t.currTemplate.closeBtn }, E = function () { e.magnificPopup.instance || ((t = new v).init(), e.magnificPopup.instance = t) }; v.prototype = { constructor: v, init: function () { var i = navigator.appVersion; t.isLowIE = t.isIE8 = document.all && !document.addEventListener, t.isAndroid = /android/gi.test(i), t.isIOS = /iphone|ipad|ipod/gi.test(i), t.supportsTransition = function () { var e = document.createElement("p").style, t = ["ms", "O", "Moz", "Webkit"]; if (void 0 !== e.transition) return !0; for (; t.length;)if (t.pop() + "Transition" in e) return !0; return !1 }(), t.probablyMobile = t.isAndroid || t.isIOS || /(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent), n = e(document), t.popupsCache = {} }, open: function (i) { var r; if (!1 === i.isObj) { t.items = i.items.toArray(), t.index = 0; var o, a = i.items; for (r = 0; r < a.length; r++)if ((o = a[r]).parsed && (o = o.el[0]), o === i.el[0]) { t.index = r; break } } else t.items = e.isArray(i.items) ? i.items : [i.items], t.index = i.index || 0; if (!t.isOpen) { t.types = [], s = "", i.mainEl && i.mainEl.length ? t.ev = i.mainEl.eq(0) : t.ev = n, i.key ? (t.popupsCache[i.key] || (t.popupsCache[i.key] = {}), t.currTemplate = t.popupsCache[i.key]) : t.currTemplate = {}, t.st = e.extend(!0, {}, e.magnificPopup.defaults, i), t.fixedContentPos = "auto" === t.st.fixedContentPos ? !t.probablyMobile : t.st.fixedContentPos, t.st.modal && (t.st.closeOnContentClick = !1, t.st.closeOnBgClick = !1, t.st.showCloseBtn = !1, t.st.enableEscapeKey = !1), t.bgOverlay || (t.bgOverlay = D("bg").on("click" + f, (function () { t.close() })), t.wrap = D("wrap").attr("tabindex", -1).on("click" + f, (function (e) { t._checkIfClose(e.target) && t.close() })), t.container = D("container", t.wrap)), t.contentContainer = D("content"), t.st.preloader && (t.preloader = D("preloader", t.container, t.st.tLoading)); var l = e.magnificPopup.modules; for (r = 0; r < l.length; r++) { var d = l[r]; d = d.charAt(0).toUpperCase() + d.slice(1), t["init" + d].call(t) } _("BeforeOpen"), t.st.showCloseBtn && (t.st.closeBtnInside ? (w(u, (function (e, t, i, n) { i.close_replaceWith = x(n.type) })), s += " mfp-close-btn-in") : t.wrap.append(x())), t.st.alignTop && (s += " mfp-align-top"), t.fixedContentPos ? t.wrap.css({ overflow: t.st.overflowY, overflowX: "hidden", overflowY: t.st.overflowY }) : t.wrap.css({ top: b.scrollTop(), position: "absolute" }), (!1 === t.st.fixedBgPos || "auto" === t.st.fixedBgPos && !t.fixedContentPos) && t.bgOverlay.css({ height: n.height(), position: "absolute" }), t.st.enableEscapeKey && n.on("keyup" + f, (function (e) { 27 === e.keyCode && t.close() })), b.on("resize" + f, (function () { t.updateSize() })), t.st.closeOnContentClick || (s += " mfp-auto-cursor"), s && t.wrap.addClass(s); var p = t.wH = b.height(), m = {}; if (t.fixedContentPos && t._hasScrollBar(p)) { var g = t._getScrollbarSize(); g && (m.marginRight = g) } t.fixedContentPos && (t.isIE7 ? e("body, html").css("overflow", "hidden") : m.overflow = "hidden"); var v = t.st.mainClass; return t.isIE7 && (v += " mfp-ie7"), v && t._addClassToMFP(v), t.updateItemHTML(), _("BuildControls"), e("html").css(m), t.bgOverlay.add(t.wrap).prependTo(t.st.prependTo || e(document.body)), t._lastFocusedEl = document.activeElement, setTimeout((function () { t.content ? (t._addClassToMFP(h), t._setFocus()) : t.bgOverlay.addClass(h), n.on("focusin" + f, t._onFocusIn) }), 16), t.isOpen = !0, t.updateSize(p), _(c), i } t.updateItemHTML() }, close: function () { t.isOpen && (_(l), t.isOpen = !1, t.st.removalDelay && !t.isLowIE && t.supportsTransition ? (t._addClassToMFP(m), setTimeout((function () { t._close() }), t.st.removalDelay)) : t._close()) }, _close: function () { _(a); var i = m + " " + h + " "; if (t.bgOverlay.detach(), t.wrap.detach(), t.container.empty(), t.st.mainClass && (i += t.st.mainClass + " "), t._removeClassFromMFP(i), t.fixedContentPos) { var r = { marginRight: "" }; t.isIE7 ? e("body, html").css("overflow", "") : r.overflow = "", e("html").css(r) } n.off("keyup.mfp focusin" + f), t.ev.off(f), t.wrap.attr("class", "mfp-wrap").removeAttr("style"), t.bgOverlay.attr("class", "mfp-bg"), t.container.attr("class", "mfp-container"), !t.st.showCloseBtn || t.st.closeBtnInside && !0 !== t.currTemplate[t.currItem.type] || t.currTemplate.closeBtn && t.currTemplate.closeBtn.detach(), t.st.autoFocusLast && t._lastFocusedEl && e(t._lastFocusedEl).focus(), t.currItem = null, t.content = null, t.currTemplate = null, t.prevHeight = 0, _("AfterClose") }, updateSize: function (e) { if (t.isIOS) { var i = document.documentElement.clientWidth / window.innerWidth, n = window.innerHeight * i; t.wrap.css("height", n), t.wH = n } else t.wH = e || b.height(); t.fixedContentPos || t.wrap.css("height", t.wH), _("Resize") }, updateItemHTML: function () { var i = t.items[t.index]; t.contentContainer.detach(), t.content && t.content.detach(), i.parsed || (i = t.parseEl(t.index)); var n = i.type; if (_("BeforeChange", [t.currItem ? t.currItem.type : "", n]), t.currItem = i, !t.currTemplate[n]) { var s = !!t.st[n] && t.st[n].markup; _("FirstMarkupParse", s), t.currTemplate[n] = !s || e(s) } r && r !== i.type && t.container.removeClass("mfp-" + r + "-holder"); var o = t["get" + n.charAt(0).toUpperCase() + n.slice(1)](i, t.currTemplate[n]); t.appendContent(o, n), i.preloaded = !0, _(d, i), r = i.type, t.container.prepend(t.contentContainer), _("AfterChange") }, appendContent: function (e, i) { t.content = e, e ? t.st.showCloseBtn && t.st.closeBtnInside && !0 === t.currTemplate[i] ? t.content.find(".mfp-close").length || t.content.append(x()) : t.content = e : t.content = "", _("BeforeAppend"), t.container.addClass("mfp-" + i + "-holder"), t.contentContainer.append(t.content) }, parseEl: function (i) { var n, r = t.items[i]; if (r.tagName ? r = { el: e(r) } : (n = r.type, r = { data: r, src: r.src }), r.el) { for (var s = t.types, o = 0; o < s.length; o++)if (r.el.hasClass("mfp-" + s[o])) { n = s[o]; break } r.src = r.el.attr("data-mfp-src"), r.src || (r.src = r.el.attr("href")) } return r.type = n || t.st.type || "inline", r.index = i, r.parsed = !0, t.items[i] = r, _("ElementParse", r), t.items[i] }, addGroup: function (e, i) { var n = function (n) { n.mfpEl = this, t._openClick(n, e, i) }; i || (i = {}); var r = "click.magnificPopup"; i.mainEl = e, i.items ? (i.isObj = !0, e.off(r).on(r, n)) : (i.isObj = !1, i.delegate ? e.off(r).on(r, i.delegate, n) : (i.items = e, e.off(r).on(r, n))) }, _openClick: function (i, n, r) { if ((void 0 !== r.midClick ? r.midClick : e.magnificPopup.defaults.midClick) || !(2 === i.which || i.ctrlKey || i.metaKey || i.altKey || i.shiftKey)) { var s = void 0 !== r.disableOn ? r.disableOn : e.magnificPopup.defaults.disableOn; if (s) if (e.isFunction(s)) { if (!s.call(t)) return !0 } else if (b.width() < s) return !0; i.type && (i.preventDefault(), t.isOpen && i.stopPropagation()), r.el = e(i.mfpEl), r.delegate && (r.items = n.find(r.delegate)), t.open(r) } }, updateStatus: function (e, n) { if (t.preloader) { i !== e && t.container.removeClass("mfp-s-" + i), n || "loading" !== e || (n = t.st.tLoading); var r = { status: e, text: n }; _("UpdateStatus", r), e = r.status, n = r.text, t.preloader.html(n), t.preloader.find("a").on("click", (function (e) { e.stopImmediatePropagation() })), t.container.addClass("mfp-s-" + e), i = e } }, _checkIfClose: function (i) { if (!e(i).hasClass(g)) { var n = t.st.closeOnContentClick, r = t.st.closeOnBgClick; if (n && r) return !0; if (!t.content || e(i).hasClass("mfp-close") || t.preloader && i === t.preloader[0]) return !0; if (i === t.content[0] || e.contains(t.content[0], i)) { if (n) return !0 } else if (r && e.contains(document, i)) return !0; return !1 } }, _addClassToMFP: function (e) { t.bgOverlay.addClass(e), t.wrap.addClass(e) }, _removeClassFromMFP: function (e) { this.bgOverlay.removeClass(e), t.wrap.removeClass(e) }, _hasScrollBar: function (e) { return (t.isIE7 ? n.height() : document.body.scrollHeight) > (e || b.height()) }, _setFocus: function () { (t.st.focus ? t.content.find(t.st.focus).eq(0) : t.wrap).focus() }, _onFocusIn: function (i) { return i.target === t.wrap[0] || e.contains(t.wrap[0], i.target) ? void 0 : (t._setFocus(), !1) }, _parseMarkup: function (t, i, n) { var r; n.data && (i = e.extend(n.data, i)), _(u, [t, i, n]), e.each(i, (function (i, n) { if (void 0 === n || !1 === n) return !0; if ((r = i.split("_")).length > 1) { var s = t.find(f + "-" + r[0]); if (s.length > 0) { var o = r[1]; "replaceWith" === o ? s[0] !== n[0] && s.replaceWith(n) : "img" === o ? s.is("img") ? s.attr("src", n) : s.replaceWith(e("<img>").attr("src", n).attr("class", s.attr("class"))) : s.attr(r[1], n) } } else t.find(f + "-" + i).html(n) })) }, _getScrollbarSize: function () { if (void 0 === t.scrollbarSize) { var e = document.createElement("div"); e.style.cssText = "width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;", document.body.appendChild(e), t.scrollbarSize = e.offsetWidth - e.clientWidth, document.body.removeChild(e) } return t.scrollbarSize } }, e.magnificPopup = { instance: null, proto: v.prototype, modules: [], open: function (t, i) { return E(), (t = t ? e.extend(!0, {}, t) : {}).isObj = !0, t.index = i || 0, this.instance.open(t) }, close: function () { return e.magnificPopup.instance && e.magnificPopup.instance.close() }, registerModule: function (t, i) { i.options && (e.magnificPopup.defaults[t] = i.options), e.extend(this.proto, i.proto), this.modules.push(t) }, defaults: { disableOn: 0, key: null, midClick: !1, mainClass: "", preloader: !0, focus: "", closeOnContentClick: !1, closeOnBgClick: !0, closeBtnInside: !0, showCloseBtn: !0, enableEscapeKey: !0, modal: !1, alignTop: !1, removalDelay: 0, prependTo: null, fixedContentPos: "auto", fixedBgPos: "auto", overflowY: "auto", closeMarkup: '<button title="%title%" type="button" class="mfp-close">×</button>', tClose: "Close (Esc)", tLoading: "Loading...", autoFocusLast: !0 } }, e.fn.magnificPopup = function (i) { E(); var n = e(this); if ("string" == typeof i) if ("open" === i) { var r, s = y ? n.data("magnificPopup") : n[0].magnificPopup, o = parseInt(arguments[1], 10) || 0; s.items ? r = s.items[o] : (r = n, s.delegate && (r = r.find(s.delegate)), r = r.eq(o)), t._openClick({ mfpEl: r }, n, s) } else t.isOpen && t[i].apply(t, Array.prototype.slice.call(arguments, 1)); else i = e.extend(!0, {}, i), y ? n.data("magnificPopup", i) : n[0].magnificPopup = i, t.addGroup(n, i); return n }; var T, S, C, M = "inline", k = function () { C && (S.after(C.addClass(T)).detach(), C = null) }; e.magnificPopup.registerModule(M, { options: { hiddenClass: "hide", markup: "", tNotFound: "Content not found" }, proto: { initInline: function () { t.types.push(M), w(a + "." + M, (function () { k() })) }, getInline: function (i, n) { if (k(), i.src) { var r = t.st.inline, s = e(i.src); if (s.length) { var o = s[0].parentNode; o && o.tagName && (S || (T = r.hiddenClass, S = D(T), T = "mfp-" + T), C = s.after(S).detach().removeClass(T)), t.updateStatus("ready") } else t.updateStatus("error", r.tNotFound), s = e("<div>"); return i.inlineElement = s, s } return t.updateStatus("ready"), t._parseMarkup(n, {}, i), n } } }); var O, A = "ajax", P = function () { O && e(document.body).removeClass(O) }, F = function () { P(), t.req && t.req.abort() }; e.magnificPopup.registerModule(A, { options: { settings: null, cursor: "mfp-ajax-cur", tError: '<a href="%url%">The content</a> could not be loaded.' }, proto: { initAjax: function () { t.types.push(A), O = t.st.ajax.cursor, w(a + "." + A, F), w("BeforeChange." + A, F) }, getAjax: function (i) { O && e(document.body).addClass(O), t.updateStatus("loading"); var n = e.extend({ url: i.src, success: function (n, r, s) { var o = { data: n, xhr: s }; _("ParseAjax", o), t.appendContent(e(o.data), A), i.finished = !0, P(), t._setFocus(), setTimeout((function () { t.wrap.addClass(h) }), 16), t.updateStatus("ready"), _("AjaxContentAdded") }, error: function () { P(), i.finished = i.loadError = !0, t.updateStatus("error", t.st.ajax.tError.replace("%url%", i.src)) } }, t.st.ajax.settings); return t.req = e.ajax(n), "" } } }); var L, I = function (i) { if (i.data && void 0 !== i.data.title) return i.data.title; var n = t.st.image.titleSrc; if (n) { if (e.isFunction(n)) return n.call(t, i); if (i.el) return i.el.attr(n) || "" } return "" }; e.magnificPopup.registerModule("image", { options: { markup: '<div class="mfp-figure"><div class="mfp-close"></div><figure><div class="mfp-img"></div><figcaption><div class="mfp-bottom-bar"><div class="mfp-title"></div><div class="mfp-counter"></div></div></figcaption></figure></div>', cursor: "mfp-zoom-out-cur", titleSrc: "title", verticalFit: !0, tError: '<a href="%url%">The image</a> could not be loaded.' }, proto: { initImage: function () { var i = t.st.image, n = ".image"; t.types.push("image"), w(c + n, (function () { "image" === t.currItem.type && i.cursor && e(document.body).addClass(i.cursor) })), w(a + n, (function () { i.cursor && e(document.body).removeClass(i.cursor), b.off("resize" + f) })), w("Resize" + n, t.resizeImage), t.isLowIE && w("AfterChange", t.resizeImage) }, resizeImage: function () { var e = t.currItem; if (e && e.img && t.st.image.verticalFit) { var i = 0; t.isLowIE && (i = parseInt(e.img.css("padding-top"), 10) + parseInt(e.img.css("padding-bottom"), 10)), e.img.css("max-height", t.wH - i) } }, _onImageHasSize: function (e) { e.img && (e.hasSize = !0, L && clearInterval(L), e.isCheckingImgSize = !1, _("ImageHasSize", e), e.imgHidden && (t.content && t.content.removeClass("mfp-loading"), e.imgHidden = !1)) }, findImageSize: function (e) { var i = 0, n = e.img[0], r = function (s) { L && clearInterval(L), L = setInterval((function () { return n.naturalWidth > 0 ? void t._onImageHasSize(e) : (i > 200 && clearInterval(L), void (3 === ++i ? r(10) : 40 === i ? r(50) : 100 === i && r(500))) }), s) }; r(1) }, getImage: function (i, n) { var r = 0, s = function () { i && (i.img[0].complete ? (i.img.off(".mfploader"), i === t.currItem && (t._onImageHasSize(i), t.updateStatus("ready")), i.hasSize = !0, i.loaded = !0, _("ImageLoadComplete")) : 200 > ++r ? setTimeout(s, 100) : o()) }, o = function () { i && (i.img.off(".mfploader"), i === t.currItem && (t._onImageHasSize(i), t.updateStatus("error", a.tError.replace("%url%", i.src))), i.hasSize = !0, i.loaded = !0, i.loadError = !0) }, a = t.st.image, l = n.find(".mfp-img"); if (l.length) { var u = document.createElement("img"); u.className = "mfp-img", i.el && i.el.find("img").length && (u.alt = i.el.find("img").attr("alt")), i.img = e(u).on("load.mfploader", s).on("error.mfploader", o), u.src = i.src, l.is("img") && (i.img = i.img.clone()), (u = i.img[0]).naturalWidth > 0 ? i.hasSize = !0 : u.width || (i.hasSize = !1) } return t._parseMarkup(n, { title: I(i), img_replaceWith: i.img }, i), t.resizeImage(), i.hasSize ? (L && clearInterval(L), i.loadError ? (n.addClass("mfp-loading"), t.updateStatus("error", a.tError.replace("%url%", i.src))) : (n.removeClass("mfp-loading"), t.updateStatus("ready")), n) : (t.updateStatus("loading"), i.loading = !0, i.hasSize || (i.imgHidden = !0, n.addClass("mfp-loading"), t.findImageSize(i)), n) } } }); var z; e.magnificPopup.registerModule("zoom", { options: { enabled: !1, easing: "ease-in-out", duration: 300, opener: function (e) { return e.is("img") ? e : e.find("img") } }, proto: { initZoom: function () { var e, i = t.st.zoom, n = ".zoom"; if (i.enabled && t.supportsTransition) { var r, s, o = i.duration, u = function (e) { var t = e.clone().removeAttr("style").removeAttr("class").addClass("mfp-animated-image"), n = "all " + i.duration / 1e3 + "s " + i.easing, r = { position: "fixed", zIndex: 9999, left: 0, top: 0, "-webkit-backface-visibility": "hidden" }, s = "transition"; return r["-webkit-" + s] = r["-moz-" + s] = r["-o-" + s] = r[s] = n, t.css(r), t }, c = function () { t.content.css("visibility", "visible") }; w("BuildControls" + n, (function () { if (t._allowZoom()) { if (clearTimeout(r), t.content.css("visibility", "hidden"), !(e = t._getItemToZoom())) return void c(); (s = u(e)).css(t._getOffset()), t.wrap.append(s), r = setTimeout((function () { s.css(t._getOffset(!0)), r = setTimeout((function () { c(), setTimeout((function () { s.remove(), e = s = null, _("ZoomAnimationEnded") }), 16) }), o) }), 16) } })), w(l + n, (function () { if (t._allowZoom()) { if (clearTimeout(r), t.st.removalDelay = o, !e) { if (!(e = t._getItemToZoom())) return; s = u(e) } s.css(t._getOffset(!0)), t.wrap.append(s), t.content.css("visibility", "hidden"), setTimeout((function () { s.css(t._getOffset()) }), 16) } })), w(a + n, (function () { t._allowZoom() && (c(), s && s.remove(), e = null) })) } }, _allowZoom: function () { return "image" === t.currItem.type }, _getItemToZoom: function () { return !!t.currItem.hasSize && t.currItem.img }, _getOffset: function (i) { var n, r = (n = i ? t.currItem.img : t.st.zoom.opener(t.currItem.el || t.currItem)).offset(), s = parseInt(n.css("padding-top"), 10), o = parseInt(n.css("padding-bottom"), 10); r.top -= e(window).scrollTop() - s; var a = { width: n.width(), height: (y ? n.innerHeight() : n[0].offsetHeight) - o - s }; return void 0 === z && (z = void 0 !== document.createElement("p").style.MozTransform), z ? a["-moz-transform"] = a.transform = "translate(" + r.left + "px," + r.top + "px)" : (a.left = r.left, a.top = r.top), a } } }); var B = "iframe", W = function (e) { if (t.currTemplate[B]) { var i = t.currTemplate[B].find("iframe"); i.length && (e || (i[0].src = "//about:blank"), t.isIE8 && i.css("display", e ? "block" : "none")) } }; e.magnificPopup.registerModule(B, { options: { markup: '<div class="mfp-iframe-scaler"><div class="mfp-close"></div><iframe class="mfp-iframe" src="//about:blank" frameborder="0" allowfullscreen></iframe></div>', srcAction: "iframe_src", patterns: { youtube: { index: "youtube.com", id: "v=", src: "//www.youtube.com/embed/%id%?autoplay=1" }, vimeo: { index: "vimeo.com/", id: "/", src: "//player.vimeo.com/video/%id%?autoplay=1" }, gmaps: { index: "//maps.google.", src: "%id%&output=embed" } } }, proto: { initIframe: function () { t.types.push(B), w("BeforeChange", (function (e, t, i) { t !== i && (t === B ? W() : i === B && W(!0)) })), w(a + "." + B, (function () { W() })) }, getIframe: function (i, n) { var r = i.src, s = t.st.iframe; e.each(s.patterns, (function () { return r.indexOf(this.index) > -1 ? (this.id && (r = "string" == typeof this.id ? r.substr(r.lastIndexOf(this.id) + this.id.length, r.length) : this.id.call(this, r)), r = this.src.replace("%id%", r), !1) : void 0 })); var o = {}; return s.srcAction && (o[s.srcAction] = r), t._parseMarkup(n, o, i), t.updateStatus("ready"), n } } }); var j = function (e) { var i = t.items.length; return e > i - 1 ? e - i : 0 > e ? i + e : e }, N = function (e, t, i) { return e.replace(/%curr%/gi, t + 1).replace(/%total%/gi, i) }; e.magnificPopup.registerModule("gallery", { options: { enabled: !1, arrowMarkup: '<button title="%title%" type="button" class="mfp-arrow mfp-arrow-%dir%"></button>', preload: [0, 2], navigateByImgClick: !0, arrows: !0, tPrev: "Previous (Left arrow key)", tNext: "Next (Right arrow key)", tCounter: "%curr% of %total%" }, proto: { initGallery: function () { var i = t.st.gallery, r = ".mfp-gallery"; return t.direction = !0, !(!i || !i.enabled) && (s += " mfp-gallery", w(c + r, (function () { i.navigateByImgClick && t.wrap.on("click" + r, ".mfp-img", (function () { return t.items.length > 1 ? (t.next(), !1) : void 0 })), n.on("keydown" + r, (function (e) { 37 === e.keyCode ? t.prev() : 39 === e.keyCode && t.next() })) })), w("UpdateStatus" + r, (function (e, i) { i.text && (i.text = N(i.text, t.currItem.index, t.items.length)) })), w(u + r, (function (e, n, r, s) { var o = t.items.length; r.counter = o > 1 ? N(i.tCounter, s.index, o) : "" })), w("BuildControls" + r, (function () { if (t.items.length > 1 && i.arrows && !t.arrowLeft) { var n = i.arrowMarkup, r = t.arrowLeft = e(n.replace(/%title%/gi, i.tPrev).replace(/%dir%/gi, "left")).addClass(g), s = t.arrowRight = e(n.replace(/%title%/gi, i.tNext).replace(/%dir%/gi, "right")).addClass(g); r.click((function () { t.prev() })), s.click((function () { t.next() })), t.container.append(r.add(s)) } })), w(d + r, (function () { t._preloadTimeout && clearTimeout(t._preloadTimeout), t._preloadTimeout = setTimeout((function () { t.preloadNearbyImages(), t._preloadTimeout = null }), 16) })), void w(a + r, (function () { n.off(r), t.wrap.off("click" + r), t.arrowRight = t.arrowLeft = null }))) }, next: function () { t.direction = !0, t.index = j(t.index + 1), t.updateItemHTML() }, prev: function () { t.direction = !1, t.index = j(t.index - 1), t.updateItemHTML() }, goTo: function (e) { t.direction = e >= t.index, t.index = e, t.updateItemHTML() }, preloadNearbyImages: function () { var e, i = t.st.gallery.preload, n = Math.min(i[0], t.items.length), r = Math.min(i[1], t.items.length); for (e = 1; e <= (t.direction ? r : n); e++)t._preloadItem(t.index + e); for (e = 1; e <= (t.direction ? n : r); e++)t._preloadItem(t.index - e) }, _preloadItem: function (i) { if (i = j(i), !t.items[i].preloaded) { var n = t.items[i]; n.parsed || (n = t.parseEl(i)), _("LazyLoad", n), "image" === n.type && (n.img = e('<img class="mfp-img" />').on("load.mfploader", (function () { n.hasSize = !0 })).on("error.mfploader", (function () { n.hasSize = !0, n.loadError = !0, _("LazyLoadError", n) })).attr("src", n.src)), n.preloaded = !0 } } } }); var R = "retina"; e.magnificPopup.registerModule(R, { options: { replaceSrc: function (e) { return e.src.replace(/\.\w+$/, (function (e) { return "@2x" + e })) }, ratio: 1 }, proto: { initRetina: function () { if (window.devicePixelRatio > 1) { var e = t.st.retina, i = e.ratio; (i = isNaN(i) ? i() : i) > 1 && (w("ImageHasSize." + R, (function (e, t) { t.img.css({ "max-width": t.img[0].naturalWidth / i, width: "100%" }) })), w("ElementParse." + R, (function (t, n) { n.src = e.replaceSrc(n, i) }))) } } } }), E() })), function (e, t) { "object" == typeof exports && "undefined" != typeof module ? t(exports) : "function" == typeof define && define.amd ? define(["exports"], t) : t((e = e || self).window = e.window || {}) }(this, (function (e) { "use strict"; function t(e, t) { for (var i = 0; i < t.length; i++) { var n = t[i]; n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(e, n.key, n) } } function i() { return "undefined" != typeof window } function n() { return r || i() && (r = window.gsap) && r.registerPlugin && r } var r, s, o, a, l, u, c, d, p, f, h, m, g, v, y, b = (w.register = function (e) { return s || (r = e || n(), i() && window.document && (o = window, a = document, l = a.documentElement, u = a.body), r && (c = r.utils.toArray, d = r.utils.clamp, h = r.parseEase("expo"), v = r.core.context || function () { }, y = r.delayedCall(.2, (function () { return p.isRefreshing || f && f.refresh() })).pause(), p = r.core.globals().ScrollTrigger, r.core.globals("ScrollSmoother", w), u && p && (m = p.core._getVelocityProp, g = p.core._inputObserver, w.refresh = p.refresh, s = 1))), s }, function (e, i, n) { i && t(e.prototype, i), n && t(e, n) }(w, [{ key: "progress", get: function () { return this.scrollTrigger ? this.scrollTrigger.animation._time / 100 : 0 } }]), w); function w(e) { var t = this; function i() { return le.update(-se) } function n() { return A.style.overflow = "visible" } function b(e) { e.update(); var t = e.getTween(); t && (t.pause(), t._time = t._dur, t._tTime = t._tDur), q = !1, e.animation.progress(e.progress, !0) } function D(e, t) { (e !== se && !N || t) && (J && (e = Math.round(e)), ne && (A.style.transform = "matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, " + e + ", 0, 1)", A._gsap.y = e + "px"), oe = e - se, se = e, p.isUpdating || p.update()) } function _(e) { return arguments.length ? (e < 0 && (e = 0), ue.y = -e, q = !0, N ? se = -e : D(-e), p.isRefreshing ? L.update() : ie(e), this) : -se } function x(e) { P.scrollTop = 0, e.target.contains && e.target.contains(P) || Q && !1 === Q(t, e) || (p.isInViewport(e.target) || e.target === X || t.scrollTo(e.target, !1, "center center"), X = e.target) } function E(e) { var t, i, n, s; I.forEach((function (o) { t = o.pins, s = o.markers, e.forEach((function (e) { o.trigger && e.trigger && o !== e && (e.trigger === o.trigger || e.pinnedContainer === o.trigger || o.trigger.contains(e.trigger)) && (i = e.start, n = (i - o.start - o.offset) / o.ratio - (i - o.start), t.forEach((function (e) { return n -= e.distance / o.ratio - e.distance })), e.setPositions(i + n, e.end + n), e.markerStart && s.push(r.quickSetter([e.markerStart, e.markerEnd], "y", "px")), e.pin && 0 < e.end && (n = e.end - e.start, t.push({ start: e.start, end: e.end, distance: n, trig: e }), o.setPositions(o.start, o.end + n), o.vars.onRefresh(o))) })) })) } function T() { n(), requestAnimationFrame(n), I && (I.forEach((function (e) { var t = e.start, i = e.auto ? Math.min(p.maxScroll(e.scroller), e.end) : t + (e.end - t) / e.ratio, n = (i - e.end) / 2; t -= n, i -= n, e.offset = n || 1e-4, e.pins.length = 0, e.setPositions(Math.min(t, i), Math.max(t, i)), e.vars.onRefresh(e) })), E(p.sort())), le.reset() } function S() { return p.addEventListener("refresh", T) } function C() { return I && I.forEach((function (e) { return e.vars.onRefresh(e) })) } function M() { return I && I.forEach((function (e) { return e.vars.onRefreshInit(e) })), C } function k(e, t, i, n) { return function () { var r = "function" == typeof t ? t(i, n) : t; return r || 0 === r || (r = n.getAttribute("data-" + te + e) || ("speed" === e ? 1 : 0)), n.setAttribute("data-" + te + e, r), "auto" === r ? r : parseFloat(r) } } function O(e, t, i, n, s) { function a() { t = w(), i = D(), f = parseFloat(t) || 1, y = (g = "auto" === t) ? 0 : .5, v && v.kill(), v = i && r.to(e, { ease: h, overwrite: !1, y: "+=0", duration: i }), m && (m.ratio = f, m.autoSpeed = g) } function u() { x.y = _ + "px", x.renderTransform(1), a() } function c(t) { if (g) { u(); var i = function (e, t) { var i, n, r = e.parentNode || l, s = e.getBoundingClientRect(), a = r.getBoundingClientRect(), u = a.top - s.top, c = a.bottom - s.bottom, d = (Math.abs(u) > Math.abs(c) ? u : c) / (1 - t), p = -d * t; return 0 < d && (n = .5 == (i = a.height / (o.innerHeight + a.height)) ? 2 * a.height : 2 * Math.min(a.height, -d * i / (2 * i - 1)) * (t || 1), p += t ? -n * t : -n / 2, d += n), { change: d, offset: p } }(e, d(0, 1, -t.start / (t.end - t.start))); S = i.change, b = i.offset } else S = (t.end - t.start) * (1 - f), b = 0; E.forEach((function (e) { return S -= e.distance * (1 - f) })), t.vars.onUpdate(t), v && v.progress(1) } s = ("function" == typeof s ? s(n, e) : s) || 0; var f, m, g, v, y, b, w = k("speed", t, n, e), D = k("lag", i, n, e), _ = r.getProperty(e, "y"), x = e._gsap, E = [], T = [], S = 0; return a(), (1 !== f || g || v) && (c(m = p.create({ trigger: g ? e.parentNode : e, start: "top bottom+=" + s, end: "bottom top-=" + s, scroller: P, scrub: !0, refreshPriority: -999, onRefreshInit: u, onRefresh: c, onKill: function (e) { var t = I.indexOf(e); 0 <= t && I.splice(t, 1), u() }, onUpdate: function (e) { var t, i, n, s = _ + S * (e.progress - y), o = E.length, a = 0; if (e.offset) { if (o) { for (i = -se, n = e.end; o--;) { if ((t = E[o]).trig.isActive || i >= t.start && i <= t.end) return void (v && (t.trig.progress += t.trig.direction < 0 ? .001 : -.001, t.trig.update(0, 0, 1), v.resetTo("y", parseFloat(x.y), -oe, !0), ae && v.progress(1))); i > t.end && (a += t.distance), n -= t.distance } s = _ + a + S * ((r.utils.clamp(e.start, e.end, i) - e.start - a) / (n - e.start) - y) } s = function (e) { return Math.round(1e5 * e) / 1e5 || 0 }(s + b), T.length && !g && T.forEach((function (e) { return e(s - a) })), v ? (v.resetTo("y", s, -oe, !0), ae && v.progress(1)) : (x.y = s + "px", x.renderTransform(1)) } } })), r.core.getCache(m.trigger).stRevert = M, m.startY = _, m.pins = E, m.markers = T, m.ratio = f, m.autoSpeed = g, e.style.willChange = "transform"), m } s || w.register(r) || console.warn("Please gsap.registerPlugin(ScrollSmoother)"), e = this.vars = e || {}, f && f.kill(), v(f = this); var A, P, F, L, I, z, B, W, j, N, R, H, Y, q, X, G = e.smoothTouch, V = e.onUpdate, $ = e.onStop, U = e.smooth, Q = e.onFocusIn, K = e.normalizeScroll, J = e.wholePixels, Z = this, ee = "undefined" != typeof ResizeObserver && !1 !== e.autoResize && new ResizeObserver((function () { return p.isRefreshing || y.restart(!0) })), te = e.effectsPrefix || "", ie = p.getScrollFunc(o), ne = 1 === p.isTouch ? !0 === G ? .8 : parseFloat(G) || 0 : 0 === U || !1 === U ? 0 : parseFloat(U) || .8, re = ne && +e.speed || 1, se = 0, oe = 0, ae = 1, le = m(0), ue = { y: 0 }; function ce() { return F = A.clientHeight, A.style.overflow = "visible", u.style.height = o.innerHeight + (F - o.innerHeight) / re + "px", F - o.innerHeight } S(), p.addEventListener("killAll", S), r.delayedCall(.5, (function () { return ae = 0 })), this.scrollTop = _, this.scrollTo = function (e, i, n) { var s = r.utils.clamp(0, p.maxScroll(o), isNaN(e) ? t.offset(e, n) : +e); i ? N ? r.to(t, { duration: ne, scrollTop: s, overwrite: "auto", ease: h }) : ie(s) : _(s) }, this.offset = function (e, t) { var i, n = (e = c(e)[0]).style.cssText, s = p.create({ trigger: e, start: t || "top top" }); return I && E([s]), i = s.start, s.kill(!1), e.style.cssText = n, r.core.getCache(e).uncache = 1, i }, this.content = function (e) { if (arguments.length) { var t = c(e || "#smooth-content")[0] || console.warn("ScrollSmoother needs a valid content element.") || u.children[0]; return t !== A && (j = (A = t).getAttribute("style") || "", ee && ee.observe(A), r.set(A, { overflow: "visible", width: "100%", boxSizing: "border-box", y: "+=0" }), ne || r.set(A, { clearProps: "transform" })), this } return A }, this.wrapper = function (e) { return arguments.length ? (P = c(e || "#smooth-wrapper")[0] || function (e) { var t = a.querySelector(".ScrollSmoother-wrapper"); return t || ((t = a.createElement("div")).classList.add("ScrollSmoother-wrapper"), e.parentNode.insertBefore(t, e), t.appendChild(e)), t }(A), W = P.getAttribute("style") || "", ce(), r.set(P, ne ? { overflow: "hidden", position: "fixed", height: "100%", width: "100%", top: 0, left: 0, right: 0, bottom: 0 } : { overflow: "visible", position: "relative", width: "100%", height: "auto", top: "auto", bottom: "auto", left: "auto", right: "auto" }), this) : P }, this.effects = function (e, t) { if (I = I || [], !e) return I.slice(0); (e = c(e)).forEach((function (e) { for (var t = I.length; t--;)I[t].trigger === e && I[t].kill() })); var i, n, r = (t = t || {}).speed, s = t.lag, o = t.effectsPadding, a = []; for (i = 0; i < e.length; i++)(n = O(e[i], r, s, i, o)) && a.push(n); return I.push.apply(I, a), a }, this.sections = function (e, t) { if (z = z || [], !e) return z.slice(0); var i = c(e).map((function (e) { return p.create({ trigger: e, start: "top 120%", end: "bottom -20%", onToggle: function (t) { e.style.opacity = t.isActive ? "1" : "0", e.style.pointerEvents = t.isActive ? "all" : "none" } }) })); return t && t.add ? z.push.apply(z, i) : z = i.slice(0), i }, this.content(e.content), this.wrapper(e.wrapper), this.render = function (e) { return D(e || 0 === e ? e : se) }, this.getVelocity = function () { return le.getVelocity(-se) }, p.scrollerProxy(P, { scrollTop: _, scrollHeight: function () { return ce() && u.scrollHeight }, fixedMarkers: !1 !== e.fixedMarkers && !!ne, content: A, getBoundingClientRect: function () { return { top: 0, left: 0, width: o.innerWidth, height: o.innerHeight } } }), p.defaults({ scroller: P }); var de = p.getAll().filter((function (e) { return e.scroller === o || e.scroller === P })); de.forEach((function (e) { return e.revert(!0, !0) })), L = p.create({ animation: r.fromTo(ue, { y: 0 }, { y: function () { return -ce() }, immediateRender: !1, ease: "none", data: "ScrollSmoother", duration: 100, onUpdate: function () { if (this._dur) { var e = q; e && (b(L), ue.y = se), D(ue.y, e), i(), V && !N && V(Z) } } }), onRefreshInit: function (e) { if (I) { var t = p.getAll().filter((function (e) { return !!e.pin })); I.forEach((function (e) { e.vars.pinnedContainer || t.forEach((function (t) { if (t.pin.contains(e.trigger)) { var i = e.vars; i.pinnedContainer = t.pin, e.vars = null, e.init(i, e.animation) } })) })) } var i = e.getTween(); Y = i && i._end > i._dp._time, H = se, ue.y = 0, ne && (P.style.pointerEvents = "none", P.scrollTop = 0, setTimeout((function () { return P.style.removeProperty("pointer-events") }), 50)) }, onRefresh: function (e) { e.animation.invalidate(), e.setPositions(e.start, ce() / re), Y || b(e), ue.y = -ie(), D(ue.y), ae || e.animation.progress(r.utils.clamp(0, 1, H / -e.end)), Y && (e.progress -= .001, e.update()) }, id: "ScrollSmoother", scroller: o, invalidateOnRefresh: !0, start: 0, refreshPriority: -9999, end: function () { return ce() / re }, onScrubComplete: function () { le.reset(), $ && $(t) }, scrub: ne || !0 }), this.smooth = function (t) { return arguments.length && (re = (ne = t || 0) && +e.speed || 1, L.scrubDuration(t)), L.getTween() ? L.getTween().duration() : 0 }, L.getTween() && (L.getTween().vars.ease = e.ease || h), this.scrollTrigger = L, e.effects && this.effects(!0 === e.effects ? "[data-" + te + "speed], [data-" + te + "lag]" : e.effects, { effectsPadding: e.effectsPadding }), e.sections && this.sections(!0 === e.sections ? "[data-section]" : e.sections), de.forEach((function (e) { e.vars.scroller = P, e.revert(!1, !0), e.init(e.vars, e.animation) })), this.paused = function (e, t) { return arguments.length ? (!!N !== e && (e ? (L.getTween() && L.getTween().pause(), ie(-se), le.reset(), (R = p.normalizeScroll()) && R.disable(), (N = p.observe({ preventDefault: !0, type: "wheel,touch,scroll", debounce: !1, allowClicks: !0, onChangeY: function () { return _(-se) } })).nested = g(l, "wheel,touch,scroll", !0, !1 !== t)) : (N.nested.kill(), N.kill(), N = 0, R && R.enable(), L.progress = (-se - L.start) / (L.end - L.start), b(L))), this) : !!N }, this.kill = this.revert = function () { t.paused(!1), b(L), L.kill(); for (var e = (I || []).concat(z || []), i = e.length; i--;)e[i].kill(); p.scrollerProxy(P), p.removeEventListener("killAll", S), p.removeEventListener("refresh", T), P.style.cssText = W, A.style.cssText = j; var n = p.defaults({}); n && n.scroller === P && p.defaults({ scroller: o }), t.normalizer && p.normalizeScroll(!1), clearInterval(B), f = null, ee && ee.disconnect(), u.style.removeProperty("height"), o.removeEventListener("focusin", x) }, this.refresh = function (e, t) { return L.refresh(e, t) }, K && (this.normalizer = p.normalizeScroll(!0 === K ? { debounce: !0, content: !ne && A } : K)), p.config(e), "overscrollBehavior" in o.getComputedStyle(u) && r.set([u, l], { overscrollBehavior: "none" }), "scrollBehavior" in o.getComputedStyle(u) && r.set([u, l], { scrollBehavior: "auto" }), o.addEventListener("focusin", x), B = setInterval(i, 250), "loading" === a.readyState || requestAnimationFrame((function () { return p.refresh() })) } b.version = "3.11.4", b.create = function (e) { return f && e && f.content() === c(e.content)[0] ? f : new b(e) }, b.get = function () { return f }, n() && r.registerPlugin(b), e.ScrollSmoother = b, e.default = b, "undefined" == typeof window || window !== e ? Object.defineProperty(e, "__esModule", { value: !0 }) : delete e.default })), function (e, t) { "object" == typeof exports && "undefined" != typeof module ? t(exports) : "function" == typeof define && define.amd ? define(["exports"], t) : t((e = e || self).window = e.window || {}) }(this, (function (e) { "use strict"; function t() { return "undefined" != typeof window } function i() { return c || t() && (c = window.gsap) && c.registerPlugin && c } function n(e) { return "string" == typeof e } function r(e) { return "function" == typeof e } function s(e, t) { var i = "x" === t ? "Width" : "Height", n = "scroll" + i, r = "client" + i; return e === p || e === f || e === h ? Math.max(f[n], h[n]) - (p["inner" + i] || f[r] || h[r]) : e[n] - e["offset" + i] } function o(e, t) { var i = "scroll" + ("x" === t ? "Left" : "Top"); return e === p && (null != e.pageXOffset ? i = "page" + t.toUpperCase() + "Offset" : e = null != f[i] ? f : h), function () { return e[i] } } function a(e, t) { if (!(e = m(e)[0]) || !e.getBoundingClientRect) return console.warn("scrollTo target doesn't exist. Using 0") || { x: 0, y: 0 }; var i = e.getBoundingClientRect(), n = !t || t === p || t === h, r = n ? { top: f.clientTop - (p.pageYOffset || f.scrollTop || h.scrollTop || 0), left: f.clientLeft - (p.pageXOffset || f.scrollLeft || h.scrollLeft || 0) } : t.getBoundingClientRect(), s = { x: i.left - r.left, y: i.top - r.top }; return !n && t && (s.x += o(t, "x")(), s.y += o(t, "y")()), s } function l(e, t, i, r, o) { return isNaN(e) || "object" == typeof e ? n(e) && "=" === e.charAt(1) ? parseFloat(e.substr(2)) * ("-" === e.charAt(0) ? -1 : 1) + r - o : "max" === e ? s(t, i) - o : Math.min(s(t, i), a(e, t)[i] - o) : parseFloat(e) - o } function u() { c = i(), t() && c && "undefined" != typeof document && document.body && (p = window, h = document.body, f = document.documentElement, m = c.utils.toArray, c.config({ autoKillThreshold: 7 }), g = c.config(), d = 1) } var c, d, p, f, h, m, g, v, y = { version: "3.11.4", name: "scrollTo", rawVars: 1, register: function (e) { c = e, u() }, init: function (e, t, i, s, a) { d || u(); var f = this, h = c.getProperty(e, "scrollSnapType"); f.isWin = e === p, f.target = e, f.tween = i, t = function (e, t, i, s) { if (r(e) && (e = e(t, i, s)), "object" != typeof e) return n(e) && "max" !== e && "=" !== e.charAt(1) ? { x: e, y: e } : { y: e }; if (e.nodeType) return { y: e, x: e }; var o, a = {}; for (o in e) a[o] = "onAutoKill" !== o && r(e[o]) ? e[o](t, i, s) : e[o]; return a }(t, s, e, a), f.vars = t, f.autoKill = !!t.autoKill, f.getX = o(e, "x"), f.getY = o(e, "y"), f.x = f.xPrev = f.getX(), f.y = f.yPrev = f.getY(), v = v || c.core.globals().ScrollTrigger, "smooth" === c.getProperty(e, "scrollBehavior") && c.set(e, { scrollBehavior: "auto" }), h && "none" !== h && (f.snap = 1, f.snapInline = e.style.scrollSnapType, e.style.scrollSnapType = "none"), null != t.x ? (f.add(f, "x", f.x, l(t.x, e, "x", f.x, t.offsetX || 0), s, a), f._props.push("scrollTo_x")) : f.skipX = 1, null != t.y ? (f.add(f, "y", f.y, l(t.y, e, "y", f.y, t.offsetY || 0), s, a), f._props.push("scrollTo_y")) : f.skipY = 1 }, render: function (e, t) { for (var i, n, r, o, a, l = t._pt, u = t.target, c = t.tween, d = t.autoKill, f = t.xPrev, h = t.yPrev, m = t.isWin, y = t.snap, b = t.snapInline; l;)l.r(e, l.d), l = l._next; i = m || !t.skipX ? t.getX() : f, r = (n = m || !t.skipY ? t.getY() : h) - h, o = i - f, a = g.autoKillThreshold, t.x < 0 && (t.x = 0), t.y < 0 && (t.y = 0), d && (!t.skipX && (a < o || o < -a) && i < s(u, "x") && (t.skipX = 1), !t.skipY && (a < r || r < -a) && n < s(u, "y") && (t.skipY = 1), t.skipX && t.skipY && (c.kill(), t.vars.onAutoKill && t.vars.onAutoKill.apply(c, t.vars.onAutoKillParams || []))), m ? p.scrollTo(t.skipX ? i : t.x, t.skipY ? n : t.y) : (t.skipY || (u.scrollTop = t.y), t.skipX || (u.scrollLeft = t.x)), !y || 1 !== e && 0 !== e || (n = u.scrollTop, i = u.scrollLeft, b ? u.style.scrollSnapType = b : u.style.removeProperty("scroll-snap-type"), u.scrollTop = n + 1, u.scrollLeft = i + 1, u.scrollTop = n, u.scrollLeft = i), t.xPrev = t.x, t.yPrev = t.y, v && v.update() }, kill: function (e) { var t = "scrollTo" === e; !t && "scrollTo_x" !== e || (this.skipX = 1), !t && "scrollTo_y" !== e || (this.skipY = 1) } }; y.max = s, y.getOffset = a, y.buildGetter = o, i() && c.registerPlugin(y), e.ScrollToPlugin = y, e.default = y, "undefined" == typeof window || window !== e ? Object.defineProperty(e, "__esModule", { value: !0 }) : delete e.default })), function (e, t) { "object" == typeof exports && "undefined" != typeof module ? t(exports) : "function" == typeof define && define.amd ? define(["exports"], t) : t((e = e || self).window = e.window || {}) }(this, (function (e) { "use strict"; function t(e, t) { for (var i = 0; i < t.length; i++) { var n = t[i]; n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(e, n.key, n) } } function i() { return g || "undefined" != typeof window && (g = window.gsap) && g.registerPlugin && g } function n(e, t) { return ~P.indexOf(e) && P[P.indexOf(e) + 1][t] } function r(e) { return !!~T.indexOf(e) } function s(e, t, i, n, r) { return e.addEventListener(t, i, { passive: !n, capture: !!r }) } function o(e, t, i, n) { return e.removeEventListener(t, i, !!n) } function a() { return S && S.isPressed || A.cache++ } function l(e, t) { function i(n) { if (n || 0 === n) { k && (y.history.scrollRestoration = "manual"); var r = S && S.isPressed; n = i.v = Math.round(n) || (S && S.iOS ? 1 : 0), e(n), i.cacheID = A.cache, r && L("ss", n) } else (t || A.cache !== i.cacheID || L("ref")) && (i.cacheID = A.cache, i.v = e()); return i.v + i.offset } return i.offset = 0, e && i } function u(e) { return g.utils.toArray(e)[0] || ("string" == typeof e && !1 !== g.config().nullTargetWarn ? console.warn("Element not found:", e) : null) } function c(e, t) { var i = t.s, s = t.sc; r(e) && (e = b.scrollingElement || w); var o = A.indexOf(e), u = s === W.sc ? 1 : 2; ~o || (o = A.push(e) - 1), A[o + u] || e.addEventListener("scroll", a); var c = A[o + u], d = c || (A[o + u] = l(n(e, i), !0) || (r(e) ? s : l((function (t) { return arguments.length ? e[i] = t : e[i] })))); return d.target = e, c || (d.smooth = "smooth" === g.getProperty(e, "scrollBehavior")), d } function d(e, t, i) { function n(e, t) { var n = F(); t || l < n - o ? (s = r, r = e, a = o, o = n) : i ? r += e : r = s + (e - s) / (n - a) * (o - a) } var r = e, s = e, o = F(), a = o, l = t || 50, u = Math.max(500, 3 * l); return { update: n, reset: function () { s = r = i ? 0 : r, a = o = 0 }, getVelocity: function (e) { var t = a, l = s, c = F(); return !e && 0 !== e || e === r || n(e), o === a || u < c - a ? 0 : (r + (i ? l : -l)) / ((i ? c : o) - t) * 1e3 } } } function p(e, t) { return t && !e._gsapAllow && e.preventDefault(), e.changedTouches ? e.changedTouches[0] : e } function f(e) { var t = Math.max.apply(Math, e), i = Math.min.apply(Math, e); return Math.abs(t) >= Math.abs(i) ? t : i } function h() { (E = g.core.globals().ScrollTrigger) && E.core && function () { var e = E.core, t = e.bridge || {}, i = e._scrollers, n = e._proxies; i.push.apply(i, A), n.push.apply(n, P), A = i, P = n, L = function (e, i) { return t[e](i) } }() } function m(e) { return (g = e || i()) && "undefined" != typeof document && document.body && (y = window, w = (b = document).documentElement, D = b.body, T = [y, b, w, D], g.utils.clamp, M = g.core.context || function () { }, x = "onpointerenter" in D ? "pointer" : "mouse", _ = j.isTouch = y.matchMedia && y.matchMedia("(hover: none), (pointer: coarse)").matches ? 1 : "ontouchstart" in y || 0 < navigator.maxTouchPoints || 0 < navigator.msMaxTouchPoints ? 2 : 0, C = j.eventTypes = ("ontouchstart" in w ? "touchstart,touchmove,touchcancel,touchend" : "onpointerdown" in w ? "pointerdown,pointermove,pointercancel,pointerup" : "mousedown,mousemove,mouseup,mouseup").split(","), setTimeout((function () { return k = 0 }), 500), h(), v = 1), v } var g, v, y, b, w, D, _, x, E, T, S, C, M, k = 1, O = [], A = [], P = [], F = Date.now, L = function (e, t) { return t }, I = "scrollLeft", z = "scrollTop", B = { s: I, p: "left", p2: "Left", os: "right", os2: "Right", d: "width", d2: "Width", a: "x", sc: l((function (e) { return arguments.length ? y.scrollTo(e, W.sc()) : y.pageXOffset || b[I] || w[I] || D[I] || 0 })) }, W = { s: z, p: "top", p2: "Top", os: "bottom", os2: "Bottom", d: "height", d2: "Height", a: "y", op: B, sc: l((function (e) { return arguments.length ? y.scrollTo(B.sc(), e) : y.pageYOffset || b[z] || w[z] || D[z] || 0 })) }; B.op = W, A.cache = 0; var j = (N.prototype.init = function (e) { v || m(g) || console.warn("Please gsap.registerPlugin(Observer)"), E || h(); var t = e.tolerance, i = e.dragMinimum, n = e.type, l = e.target, T = e.lineHeight, k = e.debounce, A = e.preventDefault, P = e.onStop, L = e.onStopDelay, I = e.ignore, z = e.wheelSpeed, j = e.event, N = e.onDragStart, R = e.onDragEnd, H = e.onDrag, Y = e.onPress, q = e.onRelease, X = e.onRight, G = e.onLeft, V = e.onUp, $ = e.onDown, U = e.onChangeX, Q = e.onChangeY, K = e.onChange, J = e.onToggleX, Z = e.onToggleY, ee = e.onHover, te = e.onHoverEnd, ie = e.onMove, ne = e.ignoreCheck, re = e.isNormalizer, se = e.onGestureStart, oe = e.onGestureEnd, ae = e.onWheel, le = e.onEnable, ue = e.onDisable, ce = e.onClick, de = e.scrollSpeed, pe = e.capture, fe = e.allowClicks, he = e.lockAxis, me = e.onLockAxis; function ge() { return Qe = F() } function ve(e, t) { return (We.event = e) && I && ~I.indexOf(e.target) || t && Xe && "touch" !== e.pointerType || ne && ne(e, t) } function ye() { var e = We.deltaX = f($e), i = We.deltaY = f(Ue), n = Math.abs(e) >= t, r = Math.abs(i) >= t; K && (n || r) && K(We, e, i, $e, Ue), n && (X && 0 < We.deltaX && X(We), G && We.deltaX < 0 && G(We), U && U(We), J && We.deltaX < 0 != je < 0 && J(We), je = We.deltaX, $e[0] = $e[1] = $e[2] = 0), r && ($ && 0 < We.deltaY && $(We), V && We.deltaY < 0 && V(We), Q && Q(We), Z && We.deltaY < 0 != Ne < 0 && Z(We), Ne = We.deltaY, Ue[0] = Ue[1] = Ue[2] = 0), (Le || Fe) && (ie && ie(We), Fe && (H(We), Fe = !1), Le = !1), ze && !(ze = !1) && me && me(We), Ie && (ae(We), Ie = !1), Ae = 0 } function be(e, t, i) { $e[i] += e, Ue[i] += t, We._vx.update(e), We._vy.update(t), k ? Ae = Ae || requestAnimationFrame(ye) : ye() } function we(e, t) { he && !Be && (We.axis = Be = Math.abs(e) > Math.abs(t) ? "x" : "y", ze = !0), "y" !== Be && ($e[2] += e, We._vx.update(e, !0)), "x" !== Be && (Ue[2] += t, We._vy.update(t, !0)), k ? Ae = Ae || requestAnimationFrame(ye) : ye() } function De(e) { if (!ve(e, 1)) { var t = (e = p(e, A)).clientX, n = e.clientY, r = t - We.x, s = n - We.y, o = We.isDragging; We.x = t, We.y = n, (o || Math.abs(We.startX - t) >= i || Math.abs(We.startY - n) >= i) && (H && (Fe = !0), o || (We.isDragging = !0), we(r, s), o || N && N(We)) } } function _e(e) { if (!ve(e, 1)) { o(re ? l : Ve, C[1], De, !0); var t = !isNaN(We.y - We.startY), i = We.isDragging && (3 < Math.abs(We.x - We.startX) || 3 < Math.abs(We.y - We.startY)), n = p(e); !i && t && (We._vx.reset(), We._vy.reset(), A && fe && g.delayedCall(.08, (function () { if (300 < F() - Qe && !e.defaultPrevented) if (e.target.click) e.target.click(); else if (Ve.createEvent) { var t = Ve.createEvent("MouseEvents"); t.initMouseEvent("click", !0, !0, y, 1, n.screenX, n.screenY, n.clientX, n.clientY, !1, !1, !1, !1, 0, null), e.target.dispatchEvent(t) } }))), We.isDragging = We.isGesturing = We.isPressed = !1, P && !re && Pe.restart(!0), R && i && R(We), q && q(We, i) } } function xe(e) { return e.touches && 1 < e.touches.length && (We.isGesturing = !0) && se(e, We.isDragging) } function Ee() { return (We.isGesturing = !1) || oe(We) } function Te(e) { if (!ve(e)) { var t = Re(), i = He(); be((t - Ye) * de, (i - qe) * de, 1), Ye = t, qe = i, P && Pe.restart(!0) } } function Se(e) { if (!ve(e)) { e = p(e, A), ae && (Ie = !0); var t = (1 === e.deltaMode ? T : 2 === e.deltaMode ? y.innerHeight : 1) * z; be(e.deltaX * t, e.deltaY * t, 0), P && !re && Pe.restart(!0) } } function Ce(e) { if (!ve(e)) { var t = e.clientX, i = e.clientY, n = t - We.x, r = i - We.y; We.x = t, We.y = i, Le = !0, (n || r) && we(n, r) } } function Me(e) { We.event = e, ee(We) } function ke(e) { We.event = e, te(We) } function Oe(e) { return ve(e) || p(e, A) && ce(We) } this.target = l = u(l) || w, this.vars = e, I = I && g.utils.toArray(I), t = t || 1e-9, i = i || 0, z = z || 1, de = de || 1, n = n || "wheel,touch,pointer", k = !1 !== k, T = T || parseFloat(y.getComputedStyle(D).lineHeight) || 22; var Ae, Pe, Fe, Le, Ie, ze, Be, We = this, je = 0, Ne = 0, Re = c(l, B), He = c(l, W), Ye = Re(), qe = He(), Xe = ~n.indexOf("touch") && !~n.indexOf("pointer") && "pointerdown" === C[0], Ge = r(l), Ve = l.ownerDocument || b, $e = [0, 0, 0], Ue = [0, 0, 0], Qe = 0, Ke = We.onPress = function (e) { ve(e, 1) || (We.axis = Be = null, Pe.pause(), We.isPressed = !0, e = p(e), je = Ne = 0, We.startX = We.x = e.clientX, We.startY = We.y = e.clientY, We._vx.reset(), We._vy.reset(), s(re ? l : Ve, C[1], De, A, !0), We.deltaX = We.deltaY = 0, Y && Y(We)) }; Pe = We._dc = g.delayedCall(L || .25, (function () { We._vx.reset(), We._vy.reset(), Pe.pause(), P && P(We) })).pause(), We.deltaX = We.deltaY = 0, We._vx = d(0, 50, !0), We._vy = d(0, 50, !0), We.scrollX = Re, We.scrollY = He, We.isDragging = We.isGesturing = We.isPressed = !1, M(this), We.enable = function (e) { return We.isEnabled || (s(Ge ? Ve : l, "scroll", a), 0 <= n.indexOf("scroll") && s(Ge ? Ve : l, "scroll", Te, A, pe), 0 <= n.indexOf("wheel") && s(l, "wheel", Se, A, pe), (0 <= n.indexOf("touch") && _ || 0 <= n.indexOf("pointer")) && (s(l, C[0], Ke, A, pe), s(Ve, C[2], _e), s(Ve, C[3], _e), fe && s(l, "click", ge, !1, !0), ce && s(l, "click", Oe), se && s(Ve, "gesturestart", xe), oe && s(Ve, "gestureend", Ee), ee && s(l, x + "enter", Me), te && s(l, x + "leave", ke), ie && s(l, x + "move", Ce)), We.isEnabled = !0, e && e.type && Ke(e), le && le(We)), We }, We.disable = function () { We.isEnabled && (O.filter((function (e) { return e !== We && r(e.target) })).length || o(Ge ? Ve : l, "scroll", a), We.isPressed && (We._vx.reset(), We._vy.reset(), o(re ? l : Ve, C[1], De, !0)), o(Ge ? Ve : l, "scroll", Te, pe), o(l, "wheel", Se, pe), o(l, C[0], Ke, pe), o(Ve, C[2], _e), o(Ve, C[3], _e), o(l, "click", ge, !0), o(l, "click", Oe), o(Ve, "gesturestart", xe), o(Ve, "gestureend", Ee), o(l, x + "enter", Me), o(l, x + "leave", ke), o(l, x + "move", Ce), We.isEnabled = We.isPressed = We.isDragging = !1, ue && ue(We)) }, We.kill = We.revert = function () { We.disable(); var e = O.indexOf(We); 0 <= e && O.splice(e, 1), S === We && (S = 0) }, O.push(We), re && r(l) && (S = We), We.enable(j) }, function (e, i, n) { i && t(e.prototype, i), n && t(e, n) }(N, [{ key: "velocityX", get: function () { return this._vx.getVelocity() } }, { key: "velocityY", get: function () { return this._vy.getVelocity() } }]), N); function N(e) { this.init(e) } function R() { return Ne = 1 } function H() { return Ne = 0 } function Y(e) { return e } function q(e) { return Math.round(1e5 * e) / 1e5 || 0 } function X() { return "undefined" != typeof window } function G() { return Ce || X() && (Ce = window.gsap) && Ce.registerPlugin && Ce } function V(e) { return !!~Fe.indexOf(e) } function $(e) { return n(e, "getBoundingClientRect") || (V(e) ? function () { return Xt.width = ke.innerWidth, Xt.height = ke.innerHeight, Xt } : function () { return Tt(e) }) } function U(e, t) { var i = t.s, r = t.d2, s = t.d, o = t.a; return (i = "scroll" + r) && (o = n(e, i)) ? o() - $(e)()[s] : V(e) ? (Ae[i] || Pe[i]) - (ke["inner" + r] || Ae["client" + r] || Pe["client" + r]) : e[i] - e["offset" + r] } function Q(e, t) { for (var i = 0; i < Xe.length; i += 3)t && !~t.indexOf(Xe[i + 1]) || e(Xe[i], Xe[i + 1], Xe[i + 2]) } function K(e) { return "string" == typeof e } function J(e) { return "function" == typeof e } function Z(e) { return "number" == typeof e } function ee(e) { return "object" == typeof e } function te(e, t, i) { return e && e.progress(t ? 0 : 1) && i && e.pause() } function ie(e, t) { if (e.enabled) { var i = t(e); i && i.totalTime && (e.callbackAnimation = i) } } function ne(e) { return ke.getComputedStyle(e) } function re(e, t) { for (var i in t) i in e || (e[i] = t[i]); return e } function se(e, t) { var i = t.d2; return e["offset" + i] || e["client" + i] || 0 } function oe(e) { var t, i = [], n = e.labels, r = e.duration(); for (t in n) i.push(n[t] / r); return i } function ae(e) { var t = Ce.utils.snap(e), i = Array.isArray(e) && e.slice(0).sort((function (e, t) { return e - t })); return i ? function (e, n, r) { var s; if (void 0 === r && (r = .001), !n) return t(e); if (0 < n) { for (e -= r, s = 0; s < i.length; s++)if (i[s] >= e) return i[s]; return i[s - 1] } for (s = i.length, e += r; s--;)if (i[s] <= e) return i[s]; return i[0] } : function (i, n, r) { void 0 === r && (r = .001); var s = t(i); return !n || Math.abs(s - i) < r || s - i < 0 == n < 0 ? s : t(n < 0 ? i - e : i + e) } } function le(e, t, i, n) { return i.split(",").forEach((function (i) { return e(t, i, n) })) } function ue(e, t, i, n, r) { return e.addEventListener(t, i, { passive: !n, capture: !!r }) } function ce(e, t, i, n) { return e.removeEventListener(t, i, !!n) } function de(e, t, i) { return i && i.wheelHandler && e(t, "wheel", i) } function pe(e, t) { if (K(e)) { var i = e.indexOf("="), n = ~i ? (e.charAt(i - 1) + 1) * parseFloat(e.substr(i + 1)) : 0; ~i && (e.indexOf("%") > i && (n *= t / 100), e = e.substr(0, i - 1)), e = n + (e in Mt ? Mt[e] * t : ~e.indexOf("%") ? parseFloat(e) * t / 100 : parseFloat(e) || 0) } return e } function fe(e, t, i, r, s, o, a, l) { var u = s.startColor, c = s.endColor, d = s.fontSize, p = s.indent, f = s.fontWeight, h = Oe.createElement("div"), m = V(i) || "fixed" === n(i, "pinType"), g = -1 !== e.indexOf("scroller"), v = m ? Pe : i, y = -1 !== e.indexOf("start"), b = y ? u : c, w = "border-color:" + b + ";font-size:" + d + ";color:" + b + ";font-weight:" + f + ";pointer-events:none;white-space:nowrap;font-family:sans-serif,Arial;z-index:1000;padding:4px 8px;border-width:0;border-style:solid;"; return w += "position:" + ((g || l) && m ? "fixed;" : "absolute;"), !g && !l && m || (w += (r === W ? ft : ht) + ":" + (o + parseFloat(p)) + "px;"), a && (w += "box-sizing:border-box;text-align:left;width:" + a.offsetWidth + "px;"), h._isStart = y, h.setAttribute("class", "gsap-marker-" + e + (t ? " marker-" + t : "")), h.style.cssText = w, h.innerText = t || 0 === t ? e + "-" + t : e, v.children[0] ? v.insertBefore(h, v.children[0]) : v.appendChild(h), h._offset = h["offset" + r.op.d2], kt(h, 0, r, y), h } function he() { return 34 < lt() - ct && (nt = nt || requestAnimationFrame(Nt)) } function me() { Ue && Ue.isPressed && !(Ue.startX > Pe.clientWidth) || (A.cache++, Ue ? nt = nt || requestAnimationFrame(Nt) : Nt(), ct || Lt("scrollStart"), ct = lt()) } function ge() { Je = ke.innerWidth, Ke = ke.innerHeight } function ve() { A.cache++, je || $e || Oe.fullscreenElement || Oe.webkitFullscreenElement || Qe && Je === ke.innerWidth && !(Math.abs(ke.innerHeight - Ke) > .25 * ke.innerHeight) || Le.restart(!0) } function ye() { return ce(Vt, "scrollEnd", ye) || Bt(!0) } function be(e) { for (var t = 0; t < It.length; t += 5)(!e || It[t + 4] && It[t + 4].query === e) && (It[t].style.cssText = It[t + 1], It[t].getBBox && It[t].setAttribute("transform", It[t + 2] || ""), It[t + 3].uncache = 1) } function we(e, t) { var i; for (He = 0; He < Ot.length; He++)!(i = Ot[He]) || t && i._ctx !== t || (e ? i.kill(1) : i.revert(!0, !0)); t && be(t), t || Lt("revert") } function De(e, t) { A.cache++, !t && rt || A.forEach((function (e) { return J(e) && e.cacheID++ && (e.rec = 0) })), K(e) && (ke.history.scrollRestoration = tt = e) } function _e(e, t, i, n) { if (!e._gsap.swappedIn) { for (var r, s = Rt.length, o = t.style, a = e.style; s--;)o[r = Rt[s]] = i[r]; o.position = "absolute" === i.position ? "absolute" : "relative", "inline" === i.display && (o.display = "inline-block"), a[ht] = a[ft] = "auto", o.flexBasis = i.flexBasis || "auto", o.overflow = "visible", o.boxSizing = "border-box", o[mt] = se(e, B) + Et, o[gt] = se(e, W) + Et, o[Dt] = a[_t] = a.top = a.left = "0", qt(n), a[mt] = a.maxWidth = i[mt], a[gt] = a.maxHeight = i[gt], a[Dt] = i[Dt], e.parentNode !== t && (e.parentNode.insertBefore(t, e), t.appendChild(e)), e._gsap.swappedIn = !0 } } function xe(e) { for (var t = Ht.length, i = e.style, n = [], r = 0; r < t; r++)n.push(Ht[r], i[Ht[r]]); return n.t = e, n } function Ee(e, t, i, n, r, s, o, a, l, c, d, p, f) { J(e) && (e = e(a)), K(e) && "max" === e.substr(0, 3) && (e = p + ("=" === e.charAt(4) ? pe("0" + e.substr(3), i) : 0)); var h, m, g, v = f ? f.time() : 0; if (f && f.seek(0), Z(e)) o && kt(o, i, n, !0); else { J(t) && (t = t(a)); var y, b, w, D, _ = (e || "0").split(" "); g = u(t) || Pe, (y = Tt(g) || {}) && (y.left || y.top) || "none" !== ne(g).display || (D = g.style.display, g.style.display = "block", y = Tt(g), D ? g.style.display = D : g.style.removeProperty("display")), b = pe(_[0], y[n.d]), w = pe(_[1] || "0", i), e = y[n.p] - l[n.p] - c + b + r - w, o && kt(o, w, n, i - w < 20 || o._isStart && 20 < w), i -= i - w } if (s) { var x = e + i, E = s._isStart; h = "scroll" + n.d2, kt(s, x, n, E && 20 < x || !E && (d ? Math.max(Pe[h], Ae[h]) : s.parentNode[h]) <= x + 1), d && (l = Tt(o), d && (s.style[n.op.p] = l[n.op.p] - n.op.m - s._offset + Et)) } return f && g && (h = Tt(g), f.seek(p), m = Tt(g), f._caScrollDist = h[n.p] - m[n.p], e = e / f._caScrollDist * p), f && f.seek(v), f ? e : Math.round(e) } function Te(e, t, i, n) { if (e.parentNode !== t) { var r, s, o = e.style; if (t === Pe) { for (r in e._stOrig = o.cssText, s = ne(e)) +r || Gt.test(r) || !s[r] || "string" != typeof o[r] || "0" === r || (o[r] = s[r]); o.top = i, o.left = n } else o.cssText = e._stOrig; Ce.core.getCache(e).uncache = 1, t.appendChild(e) } } function Se(e, t) { function i(t, a, l, u, c) { var d = i.tween, p = a.onComplete; return l = l || s(), c = u && c || 0, u = u || t - l, d && d.kill(), n = Math.round(l), a[o] = t, (a.modifiers = {})[o] = function (e) { return (e = Math.round(s())) !== n && e !== r && 3 < Math.abs(e - n) && 3 < Math.abs(e - r) ? (d.kill(), i.tween = 0) : e = l + u * d.ratio + c * d.ratio * d.ratio, r = n, n = Math.round(e) }, a.onUpdate = function () { A.cache++, Nt() }, a.onComplete = function () { i.tween = 0, p && p.call(d) }, d = i.tween = Ce.to(e, a) } var n, r, s = c(e, t), o = "_scroll" + t.p2; return (e[o] = s).wheelHandler = function () { return i.tween && i.tween.kill() && (i.tween = 0) }, ue(e, "wheel", s.wheelHandler), i } j.version = "3.11.4", j.create = function (e) { return new j(e) }, j.register = m, j.getAll = function () { return O.slice() }, j.getById = function (e) { return O.filter((function (t) { return t.vars.id === e }))[0] }, i() && g.registerPlugin(j); var Ce, Me, ke, Oe, Ae, Pe, Fe, Le, Ie, ze, Be, We, je, Ne, Re, He, Ye, qe, Xe, Ge, Ve, $e, Ue, Qe, Ke, Je, Ze, et, tt, it, nt, rt, st, ot, at = 1, lt = Date.now, ut = lt(), ct = 0, dt = 0, pt = Math.abs, ft = "right", ht = "bottom", mt = "width", gt = "height", vt = "Right", yt = "Left", bt = "Top", wt = "Bottom", Dt = "padding", _t = "margin", xt = "Width", Et = "px", Tt = function (e, t) { var i = t && "matrix(1, 0, 0, 1, 0, 0)" !== ne(e)[Re] && Ce.to(e, { x: 0, y: 0, xPercent: 0, yPercent: 0, rotation: 0, rotationX: 0, rotationY: 0, scale: 1, skewX: 0, skewY: 0 }).progress(1), n = e.getBoundingClientRect(); return i && i.progress(0).kill(), n }, St = { startColor: "green", endColor: "red", indent: 0, fontSize: "16px", fontWeight: "normal" }, Ct = { toggleActions: "play", anticipatePin: 0 }, Mt = { top: 0, left: 0, center: .5, bottom: 1, right: 1 }, kt = function (e, t, i, n) { var r = { display: "block" }, s = i[n ? "os2" : "p2"], o = i[n ? "p2" : "os2"]; e._isFlipped = n, r[i.a + "Percent"] = n ? -100 : 0, r[i.a] = n ? "1px" : 0, r["border" + s + xt] = 1, r["border" + o + xt] = 0, r[i.p] = t + "px", Ce.set(e, r) }, Ot = [], At = {}, Pt = {}, Ft = [], Lt = function (e) { return Pt[e] && Pt[e].map((function (e) { return e() })) || Ft }, It = [], zt = 0, Bt = function (e, t) { if (!ct || e) { rt = Vt.isRefreshing = !0, A.forEach((function (e) { return J(e) && e.cacheID++ && (e.rec = e()) })); var i = Lt("refreshInit"); Ge && Vt.sort(), t || we(), A.forEach((function (e) { J(e) && (e.smooth && (e.target.style.scrollBehavior = "auto"), e(0)) })), Ot.slice(0).forEach((function (e) { return e.refresh() })), Ot.forEach((function (e, t) { if (e._subPinOffset && e.pin) { var i = e.vars.horizontal ? "offsetWidth" : "offsetHeight", n = e.pin[i]; e.revert(!0, 1), e.adjustPinSpacing(e.pin[i] - n), e.revert(!1, 1) } })), Ot.forEach((function (e) { return "max" === e.vars.end && e.setPositions(e.start, Math.max(e.start + 1, U(e.scroller, e._dir))) })), i.forEach((function (e) { return e && e.render && e.render(-1) })), A.forEach((function (e) { J(e) && (e.smooth && requestAnimationFrame((function () { return e.target.style.scrollBehavior = "smooth" })), e.rec && e(e.rec)) })), De(tt, 1), Le.pause(), zt++, Nt(2), Ot.forEach((function (e) { return J(e.vars.onRefresh) && e.vars.onRefresh(e) })), rt = Vt.isRefreshing = !1, Lt("refresh") } else ue(Vt, "scrollEnd", ye) }, Wt = 0, jt = 1, Nt = function (e) { if (!rt || 2 === e) { Vt.isUpdating = !0, ot && ot.update(0); var t = Ot.length, i = lt(), n = 50 <= i - ut, r = t && Ot[0].scroll(); if (jt = r < Wt ? -1 : 1, Wt = r, n && (ct && !Ne && 200 < i - ct && (ct = 0, Lt("scrollEnd")), Be = ut, ut = i), jt < 0) { for (He = t; 0 < He--;)Ot[He] && Ot[He].update(0, n); jt = 1 } else for (He = 0; He < t; He++)Ot[He] && Ot[He].update(0, n); Vt.isUpdating = !1 } nt = 0 }, Rt = ["left", "top", ht, ft, _t + wt, _t + vt, _t + bt, _t + yt, "display", "flexShrink", "float", "zIndex", "gridColumnStart", "gridColumnEnd", "gridRowStart", "gridRowEnd", "gridArea", "justifySelf", "alignSelf", "placeSelf", "order"], Ht = Rt.concat([mt, gt, "boxSizing", "max" + xt, "maxHeight", "position", _t, Dt, Dt + bt, Dt + vt, Dt + wt, Dt + yt]), Yt = /([A-Z])/g, qt = function (e) { if (e) { var t, i, n = e.t.style, r = e.length, s = 0; for ((e.t._gsap || Ce.core.getCache(e.t)).uncache = 1; s < r; s += 2)i = e[s + 1], t = e[s], i ? n[t] = i : n[t] && n.removeProperty(t.replace(Yt, "-$1").toLowerCase()) } }, Xt = { left: 0, top: 0 }, Gt = /(webkit|moz|length|cssText|inset)/i, Vt = ($t.prototype.init = function (e, t) { if (this.progress = this.start = 0, this.vars && this.kill(!0, !0), dt) { var i, r, s, o, a, l, d, p, f, h, m, g, v, y, b, w, D, _, x, E, T, S, C, M, k, O, F, L, I, z, j, N, R, H, X, G, Q, le, de, he = (e = re(K(e) || Z(e) || e.nodeType ? { trigger: e } : e, Ct)).onUpdate, ge = e.toggleClass, be = e.id, we = e.onToggle, De = e.onRefresh, Me = e.scrub, Fe = e.trigger, Le = e.pin, We = e.pinSpacing, Re = e.invalidateOnRefresh, Ye = e.anticipatePin, qe = e.onScrubComplete, Xe = e.onSnapComplete, $e = e.once, Ue = e.snap, Qe = e.pinReparent, Ke = e.pinSpacer, Je = e.containerAnimation, Ze = e.fastScrollEnd, tt = e.preventOverlaps, nt = e.horizontal || e.containerAnimation && !1 !== e.horizontal ? B : W, ut = !Me && 0 !== Me, ft = u(e.scroller || ke), ht = Ce.core.getCache(ft), Mt = V(ft), kt = "fixed" === ("pinType" in e ? e.pinType : n(ft, "pinType") || Mt && "fixed"), Pt = [e.onEnter, e.onLeave, e.onEnterBack, e.onLeaveBack], Ft = ut && e.toggleActions.split(" "), Lt = "markers" in e ? e.markers : Ct.markers, It = Mt ? 0 : parseFloat(ne(ft)["border" + nt.p2 + xt]) || 0, Wt = this, Nt = e.onRefreshInit && function () { return e.onRefreshInit(Wt) }, Rt = function (e, t, i) { var r = i.d, s = i.d2, o = i.a; return (o = n(e, "getBoundingClientRect")) ? function () { return o()[r] } : function () { return (t ? ke["inner" + s] : e["client" + s]) || 0 } }(ft, Mt, nt), Ht = function (e, t) { return !t || ~P.indexOf(e) ? $(e) : function () { return Xt } }(ft, Mt), Yt = 0, Gt = 0, Vt = c(ft, nt); if (et(Wt), Wt._dir = nt, Ye *= 45, Wt.scroller = ft, Wt.scroll = Je ? Je.time.bind(Je) : Vt, o = Vt(), Wt.vars = e, t = t || e.animation, "refreshPriority" in e && (Ge = 1, -9999 === e.refreshPriority && (ot = Wt)), ht.tweenScroll = ht.tweenScroll || { top: Se(ft, W), left: Se(ft, B) }, Wt.tweenTo = i = ht.tweenScroll[nt.p], Wt.scrubDuration = function (e) { (N = Z(e) && e) ? j ? j.duration(e) : j = Ce.to(t, { ease: "expo", totalProgress: "+=0.001", duration: N, paused: !0, onComplete: function () { return qe && qe(Wt) } }) : (j && j.progress(1).kill(), j = 0) }, t && (t.vars.lazy = !1, t._initted || !1 !== t.vars.immediateRender && !1 !== e.immediateRender && t.duration() && t.render(0, !0, !0), Wt.animation = t.pause(), (t.scrollTrigger = Wt).scrubDuration(Me), I = 0, be = be || t.vars.id), Ot.push(Wt), Ue && (ee(Ue) && !Ue.push || (Ue = { snapTo: Ue }), "scrollBehavior" in Pe.style && Ce.set(Mt ? [Pe, Ae] : ft, { scrollBehavior: "auto" }), A.forEach((function (e) { return J(e) && e.target === (Mt ? Oe.scrollingElement || Ae : ft) && (e.smooth = !1) })), s = J(Ue.snapTo) ? Ue.snapTo : "labels" === Ue.snapTo ? function (e) { return function (t) { return Ce.utils.snap(oe(e), t) } }(t) : "labelsDirectional" === Ue.snapTo ? function (e) { return function (t, i) { return ae(oe(e))(t, i.direction) } }(t) : !1 !== Ue.directional ? function (e, t) { return ae(Ue.snapTo)(e, lt() - Gt < 500 ? 0 : t.direction) } : Ce.utils.snap(Ue.snapTo), R = ee(R = Ue.duration || { min: .1, max: 2 }) ? ze(R.min, R.max) : ze(R, R), H = Ce.delayedCall(Ue.delay || N / 2 || .1, (function () { var e = Vt(), n = lt() - Gt < 500, r = i.tween; if (!(n || Math.abs(Wt.getVelocity()) < 10) || r || Ne || Yt === e) Wt.isActive && Yt !== e && H.restart(!0); else { var o = (e - l) / v, a = t && !ut ? t.totalProgress() : o, u = n ? 0 : (a - z) / (lt() - Be) * 1e3 || 0, c = Ce.utils.clamp(-o, 1 - o, pt(u / 2) * u / .185), p = o + (!1 === Ue.inertia ? 0 : c), f = ze(0, 1, s(p, Wt)), h = Math.round(l + f * v), m = Ue.onStart, g = Ue.onInterrupt, y = Ue.onComplete; if (e <= d && l <= e && h !== e) { if (r && !r._initted && r.data <= pt(h - e)) return; !1 === Ue.inertia && (c = f - o), i(h, { duration: R(pt(.185 * Math.max(pt(p - a), pt(f - a)) / u / .05 || 0)), ease: Ue.ease || "power3", data: pt(h - e), onInterrupt: function () { return H.restart(!0) && g && g(Wt) }, onComplete: function () { Wt.update(), Yt = Vt(), I = z = t && !ut ? t.totalProgress() : Wt.progress, Xe && Xe(Wt), y && y(Wt) } }, e, c * v, h - e - c * v), m && m(Wt, i.tween) } } })).pause()), be && (At[be] = Wt), de = (de = (Fe = Wt.trigger = u(Fe || Le)) && Fe._gsap && Fe._gsap.stRevert) && de(Wt), Le = !0 === Le ? Fe : u(Le), K(ge) && (ge = { targets: Fe, className: ge }), Le && (!1 === We || We === _t || (We = !(!We && Le.parentNode && Le.parentNode.style && "flex" === ne(Le.parentNode).display) && Dt), Wt.pin = Le, (r = Ce.core.getCache(Le)).spacer ? y = r.pinState : (Ke && ((Ke = u(Ke)) && !Ke.nodeType && (Ke = Ke.current || Ke.nativeElement), r.spacerIsNative = !!Ke, Ke && (r.spacerState = xe(Ke))), r.spacer = D = Ke || Oe.createElement("div"), D.classList.add("pin-spacer"), be && D.classList.add("pin-spacer-" + be), r.pinState = y = xe(Le)), !1 !== e.force3D && Ce.set(Le, { force3D: !0 }), Wt.spacer = D = r.spacer, L = ne(Le), C = L[We + nt.os2], x = Ce.getProperty(Le), E = Ce.quickSetter(Le, nt.a, Et), _e(Le, D, L), w = xe(Le)), Lt) { g = ee(Lt) ? re(Lt, St) : St, h = fe("scroller-start", be, ft, nt, g, 0), m = fe("scroller-end", be, ft, nt, g, 0, h), _ = h["offset" + nt.op.d2]; var Ut = u(n(ft, "content") || ft); p = this.markerStart = fe("start", be, Ut, nt, g, _, 0, Je), f = this.markerEnd = fe("end", be, Ut, nt, g, _, 0, Je), Je && (le = Ce.quickSetter([p, f], nt.a, Et)), kt || P.length && !0 === n(ft, "fixedMarkers") || (function (e) { var t = ne(e).position; e.style.position = "absolute" === t || "fixed" === t ? t : "relative" }(Mt ? Pe : ft), Ce.set([h, m], { force3D: !0 }), k = Ce.quickSetter(h, nt.a, Et), F = Ce.quickSetter(m, nt.a, Et)) } if (Je) { var Qt = Je.vars.onUpdate, Kt = Je.vars.onUpdateParams; Je.eventCallback("onUpdate", (function () { Wt.update(0, 0, 1), Qt && Qt.apply(Kt || []) })) } Wt.previous = function () { return Ot[Ot.indexOf(Wt) - 1] }, Wt.next = function () { return Ot[Ot.indexOf(Wt) + 1] }, Wt.revert = function (e, i) { if (!i) return Wt.kill(!0); var n = !1 !== e || !Wt.enabled, r = je; n !== Wt.isReverted && (n && (G = Math.max(Vt(), Wt.scroll.rec || 0), X = Wt.progress, Q = t && t.progress()), p && [p, f, h, m].forEach((function (e) { return e.style.display = n ? "none" : "block" })), n && (je = 1, Wt.update(n)), !Le || Qe && Wt.isActive || (n ? function (e, t, i) { qt(i); var n = e._gsap; if (n.spacerIsNative) qt(n.spacerState); else if (e._gsap.swappedIn) { var r = t.parentNode; r && (r.insertBefore(e, t), r.removeChild(t)) } e._gsap.swappedIn = !1 }(Le, D, y) : _e(Le, D, ne(Le), M)), n || Wt.update(n), je = r, Wt.isReverted = n) }, Wt.refresh = function (n, r) { if (!je && Wt.enabled || r) if (Le && n && ct) ue($t, "scrollEnd", ye); else { !rt && Nt && Nt(Wt), je = 1, Gt = lt(), i.tween && (i.tween.kill(), i.tween = 0), j && j.pause(), Re && t && t.revert({ kill: !1 }).invalidate(), Wt.isReverted || Wt.revert(!0, !0), Wt._subPinOffset = !1; for (var s, g, _, E, C, k, A, P, F, L, I, z = Rt(), N = Ht(), R = Je ? Je.duration() : U(ft, nt), Y = 0, q = 0, V = e.end, $ = e.endTrigger || Fe, ee = e.start || (0 !== e.start && Fe ? Le ? "0 0" : "0 100%" : 0), te = Wt.pinnedContainer = e.pinnedContainer && u(e.pinnedContainer), ie = Fe && Math.max(0, Ot.indexOf(Wt)) || 0, re = ie; re--;)(k = Ot[re]).end || k.refresh(0, 1) || (je = 1), !(A = k.pin) || A !== Fe && A !== Le || k.isReverted || ((L = L || []).unshift(k), k.revert(!0, !0)), k !== Ot[re] && (ie--, re--); for (J(ee) && (ee = ee(Wt)), l = Ee(ee, Fe, z, nt, Vt(), p, h, Wt, N, It, kt, R, Je) || (Le ? -.001 : 0), J(V) && (V = V(Wt)), K(V) && !V.indexOf("+=") && (~V.indexOf(" ") ? V = (K(ee) ? ee.split(" ")[0] : "") + V : (Y = pe(V.substr(2), z), V = K(ee) ? ee : l + Y, $ = Fe)), d = Math.max(l, Ee(V || ($ ? "100% 0" : R), $, z, nt, Vt() + Y, f, m, Wt, N, It, kt, R, Je)) || -.001, v = d - l || (l -= .01) && .001, Y = 0, re = ie; re--;)(A = (k = Ot[re]).pin) && k.start - k._pinPush <= l && !Je && 0 < k.end && (s = k.end - k.start, (A === Fe && k.start - k._pinPush < l || A === te) && !Z(ee) && (Y += s * (1 - k.progress)), A === Le && (q += s)); if (l += Y, d += Y, Wt._pinPush = q, p && Y && ((s = {})[nt.a] = "+=" + Y, te && (s[nt.p] = "-=" + Vt()), Ce.set([p, f], s)), Le) s = ne(Le), E = nt === W, _ = Vt(), T = parseFloat(x(nt.a)) + q, !R && 1 < d && ((I = { style: I = (Mt ? Oe.scrollingElement || Ae : ft).style, value: I["overflow" + nt.a.toUpperCase()] })["overflow" + nt.a.toUpperCase()] = "scroll"), _e(Le, D, s), w = xe(Le), g = Tt(Le, !0), P = kt && c(ft, E ? B : W)(), We && ((M = [We + nt.os2, v + q + Et]).t = D, (re = We === Dt ? se(Le, nt) + v + q : 0) && M.push(nt.d, re + Et), qt(M), te && Ot.forEach((function (e) { e.pin === te && !1 !== e.vars.pinSpacing && (e._subPinOffset = !0) })), kt && Vt(G)), kt && ((C = { top: g.top + (E ? _ - l : P) + Et, left: g.left + (E ? P : _ - l) + Et, boxSizing: "border-box", position: "fixed" })[mt] = C.maxWidth = Math.ceil(g.width) + Et, C[gt] = C.maxHeight = Math.ceil(g.height) + Et, C[_t] = C[_t + bt] = C[_t + vt] = C[_t + wt] = C[_t + yt] = "0", C[Dt] = s[Dt], C[Dt + bt] = s[Dt + bt], C[Dt + vt] = s[Dt + vt], C[Dt + wt] = s[Dt + wt], C[Dt + yt] = s[Dt + yt], b = function (e, t, i) { for (var n, r = [], s = e.length, o = i ? 8 : 0; o < s; o += 2)n = e[o], r.push(n, n in t ? t[n] : e[o + 1]); return r.t = e.t, r }(y, C, Qe), rt && Vt(0)), t ? (F = t._initted, Ve(1), t.render(t.duration(), !0, !0), S = x(nt.a) - T + v + q, O = 1 < Math.abs(v - S), kt && O && b.splice(b.length - 2, 2), t.render(0, !0, !0), F || t.invalidate(!0), t.parent || t.totalTime(t.totalTime()), Ve(0)) : S = v, I && (I.value ? I.style["overflow" + nt.a.toUpperCase()] = I.value : I.style.removeProperty("overflow-" + nt.a)); else if (Fe && Vt() && !Je) for (g = Fe.parentNode; g && g !== Pe;)g._pinOffset && (l -= g._pinOffset, d -= g._pinOffset), g = g.parentNode; L && L.forEach((function (e) { return e.revert(!1, !0) })), Wt.start = l, Wt.end = d, o = a = rt ? G : Vt(), Je || rt || (o < G && Vt(G), Wt.scroll.rec = 0), Wt.revert(!1, !0), H && (Yt = -1, Wt.isActive && Vt(l + v * X), H.restart(!0)), je = 0, t && ut && (t._initted || Q) && t.progress() !== Q && t.progress(Q, !0).render(t.time(), !0, !0), X === Wt.progress && !Je || (t && !ut && t.totalProgress(X, !0), Wt.progress = (o - l) / v === X ? 0 : X), Le && We && (D._pinOffset = Math.round(Wt.progress * S)), De && !rt && De(Wt) } }, Wt.getVelocity = function () { return (Vt() - a) / (lt() - Be) * 1e3 || 0 }, Wt.endAnimation = function () { te(Wt.callbackAnimation), t && (j ? j.progress(1) : t.paused() ? ut || te(t, Wt.direction < 0, 1) : te(t, t.reversed())) }, Wt.labelToScroll = function (e) { return t && t.labels && (l || Wt.refresh() || l) + t.labels[e] / t.duration() * v || 0 }, Wt.getTrailing = function (e) { var t = Ot.indexOf(Wt), i = 0 < Wt.direction ? Ot.slice(0, t).reverse() : Ot.slice(t + 1); return (K(e) ? i.filter((function (t) { return t.vars.preventOverlaps === e })) : i).filter((function (e) { return 0 < Wt.direction ? e.end <= l : e.start >= d })) }, Wt.update = function (e, n, r) { if (!Je || r || e) { var s, u, c, p, f, m, g, y = rt ? G : Wt.scroll(), _ = e ? 0 : (y - l) / v, x = _ < 0 ? 0 : 1 < _ ? 1 : _ || 0, M = Wt.progress; if (n && (a = o, o = Je ? Vt() : y, Ue && (z = I, I = t && !ut ? t.totalProgress() : x)), Ye && !x && Le && !je && !at && ct && l < y + (y - a) / (lt() - Be) * Ye && (x = 1e-4), x !== M && Wt.enabled) { if (p = (f = (s = Wt.isActive = !!x && x < 1) != (!!M && M < 1)) || !!x != !!M, Wt.direction = M < x ? 1 : -1, Wt.progress = x, p && !je && (u = x && !M ? 0 : 1 === x ? 1 : 1 === M ? 2 : 3, ut && (c = !f && "none" !== Ft[u + 1] && Ft[u + 1] || Ft[u], g = t && ("complete" === c || "reset" === c || c in t))), tt && (f || g) && (g || Me || !t) && (J(tt) ? tt(Wt) : Wt.getTrailing(tt).forEach((function (e) { return e.endAnimation() }))), ut || (!j || je || at ? t && t.totalProgress(x, !!je) : (j._dp._time - j._start !== j._time && j.render(j._dp._time - j._start), j.resetTo ? j.resetTo("totalProgress", x, t._tTime / t._tDur) : (j.vars.totalProgress = x, j.invalidate().restart()))), Le) if (e && We && (D.style[We + nt.os2] = C), kt) { if (p) { if (m = !e && M < x && y < d + 1 && y + 1 >= U(ft, nt), Qe) if (e || !s && !m) Te(Le, D); else { var A = Tt(Le, !0), P = y - l; Te(Le, Pe, A.top + (nt === W ? P : 0) + Et, A.left + (nt === W ? 0 : P) + Et) } qt(s || m ? b : w), O && x < 1 && s || E(T + (1 !== x || m ? 0 : S)) } } else E(q(T + S * x)); !Ue || i.tween || je || at || H.restart(!0), ge && (f || $e && x && (x < 1 || !it)) && Ie(ge.targets).forEach((function (e) { return e.classList[s || $e ? "add" : "remove"](ge.className) })), !he || ut || e || he(Wt), p && !je ? (ut && (g && ("complete" === c ? t.pause().totalProgress(1) : "reset" === c ? t.restart(!0).pause() : "restart" === c ? t.restart(!0) : t[c]()), he && he(Wt)), !f && it || (we && f && ie(Wt, we), Pt[u] && ie(Wt, Pt[u]), $e && (1 === x ? Wt.kill(!1, 1) : Pt[u] = 0), f || Pt[u = 1 === x ? 1 : 3] && ie(Wt, Pt[u])), Ze && !s && Math.abs(Wt.getVelocity()) > (Z(Ze) ? Ze : 2500) && (te(Wt.callbackAnimation), j ? j.progress(1) : te(t, "reverse" === c ? 1 : !x, 1))) : ut && he && !je && he(Wt) } if (F) { var L = Je ? y / Je.duration() * (Je._caScrollDist || 0) : y; k(L + (h._isFlipped ? 1 : 0)), F(L) } le && le(-y / Je.duration() * (Je._caScrollDist || 0)) } }, Wt.enable = function (e, t) { Wt.enabled || (Wt.enabled = !0, ue(ft, "resize", ve), ue(Mt ? Oe : ft, "scroll", me), Nt && ue($t, "refreshInit", Nt), !1 !== e && (Wt.progress = X = 0, o = a = Yt = Vt()), !1 !== t && Wt.refresh()) }, Wt.getTween = function (e) { return e && i ? i.tween : j }, Wt.setPositions = function (e, t) { Le && (T += e - l, S += t - e - v, We === Dt && Wt.adjustPinSpacing(t - e - v)), Wt.start = l = e, Wt.end = d = t, v = t - e, Wt.update() }, Wt.adjustPinSpacing = function (e) { if (M) { var t = M.indexOf(nt.d) + 1; M[t] = parseFloat(M[t]) + e + Et, M[1] = parseFloat(M[1]) + e + Et, qt(M) } }, Wt.disable = function (e, t) { if (Wt.enabled && (!1 !== e && Wt.revert(!0, !0), Wt.enabled = Wt.isActive = !1, t || j && j.pause(), G = 0, r && (r.uncache = 1), Nt && ce($t, "refreshInit", Nt), H && (H.pause(), i.tween && i.tween.kill() && (i.tween = 0)), !Mt)) { for (var n = Ot.length; n--;)if (Ot[n].scroller === ft && Ot[n] !== Wt) return; ce(ft, "resize", ve), ce(ft, "scroll", me) } }, Wt.kill = function (i, n) { Wt.disable(i, n), j && !n && j.kill(), be && delete At[be]; var s = Ot.indexOf(Wt); 0 <= s && Ot.splice(s, 1), s === He && 0 < jt && He--, s = 0, Ot.forEach((function (e) { return e.scroller === Wt.scroller && (s = 1) })), s || rt || (Wt.scroll.rec = 0), t && (t.scrollTrigger = null, i && t.revert({ kill: !1 }), n || t.kill()), p && [p, f, h, m].forEach((function (e) { return e.parentNode && e.parentNode.removeChild(e) })), ot === Wt && (ot = 0), Le && (r && (r.uncache = 1), s = 0, Ot.forEach((function (e) { return e.pin === Le && s++ })), s || (r.spacer = 0)), e.onKill && e.onKill(Wt) }, Wt.enable(!1, !1), de && de(Wt), t && t.add && !v ? Ce.delayedCall(.01, (function () { return l || d || Wt.refresh() })) && (v = .01) && (l = d = 0) : Wt.refresh(), Le && function () { if (st !== zt) { var e = st = zt; requestAnimationFrame((function () { return e === zt && Bt(!0) })) } }() } else this.update = this.refresh = this.kill = Y }, $t.register = function (e) { return Me || (Ce = e || G(), X() && window.document && $t.enable(), Me = dt), Me }, $t.defaults = function (e) { if (e) for (var t in e) Ct[t] = e[t]; return Ct }, $t.disable = function (e, t) { dt = 0, Ot.forEach((function (i) { return i[t ? "kill" : "disable"](e) })), ce(ke, "wheel", me), ce(Oe, "scroll", me), clearInterval(We), ce(Oe, "touchcancel", Y), ce(Pe, "touchstart", Y), le(ce, Oe, "pointerdown,touchstart,mousedown", R), le(ce, Oe, "pointerup,touchend,mouseup", H), Le.kill(), Q(ce); for (var i = 0; i < A.length; i += 3)de(ce, A[i], A[i + 1]), de(ce, A[i], A[i + 2]) }, $t.enable = function () { if (ke = window, Oe = document, Ae = Oe.documentElement, Pe = Oe.body, Ce && (Ie = Ce.utils.toArray, ze = Ce.utils.clamp, et = Ce.core.context || Y, Ve = Ce.core.suppressOverwrites || Y, tt = ke.history.scrollRestoration || "auto", Ce.core.globals("ScrollTrigger", $t), Pe)) { dt = 1, j.register(Ce), $t.isTouch = j.isTouch, Ze = j.isTouch && /(iPad|iPhone|iPod|Mac)/g.test(navigator.userAgent), ue(ke, "wheel", me), Fe = [ke, Oe, Ae, Pe], Ce.matchMedia ? ($t.matchMedia = function (e) { var t, i = Ce.matchMedia(); for (t in e) i.add(t, e[t]); return i }, Ce.addEventListener("matchMediaInit", (function () { return we() })), Ce.addEventListener("matchMediaRevert", (function () { return be() })), Ce.addEventListener("matchMedia", (function () { Bt(0, 1), Lt("matchMedia") })), Ce.matchMedia("(orientation: portrait)", (function () { return ge(), ge }))) : console.warn("Requires GSAP 3.11.0 or later"), ge(), ue(Oe, "scroll", me); var e, t, i = Pe.style, n = i.borderTopStyle, r = Ce.core.Animation.prototype; for (r.revert || Object.defineProperty(r, "revert", { value: function () { return this.time(-.01, !0) } }), i.borderTopStyle = "solid", e = Tt(Pe), W.m = Math.round(e.top + W.sc()) || 0, B.m = Math.round(e.left + B.sc()) || 0, n ? i.borderTopStyle = n : i.removeProperty("border-top-style"), We = setInterval(he, 250), Ce.delayedCall(.5, (function () { return at = 0 })), ue(Oe, "touchcancel", Y), ue(Pe, "touchstart", Y), le(ue, Oe, "pointerdown,touchstart,mousedown", R), le(ue, Oe, "pointerup,touchend,mouseup", H), Re = Ce.utils.checkPrefix("transform"), Ht.push(Re), Me = lt(), Le = Ce.delayedCall(.2, Bt).pause(), Xe = [Oe, "visibilitychange", function () { var e = ke.innerWidth, t = ke.innerHeight; Oe.hidden ? (Ye = e, qe = t) : Ye === e && qe === t || ve() }, Oe, "DOMContentLoaded", Bt, ke, "load", Bt, ke, "resize", ve], Q(ue), Ot.forEach((function (e) { return e.enable(0, 1) })), t = 0; t < A.length; t += 3)de(ce, A[t], A[t + 1]), de(ce, A[t], A[t + 2]) } }, $t.config = function (e) { "limitCallbacks" in e && (it = !!e.limitCallbacks); var t = e.syncInterval; t && clearInterval(We) || (We = t) && setInterval(he, t), "ignoreMobileResize" in e && (Qe = 1 === $t.isTouch && e.ignoreMobileResize), "autoRefreshEvents" in e && (Q(ce) || Q(ue, e.autoRefreshEvents || "none"), $e = -1 === (e.autoRefreshEvents + "").indexOf("resize")) }, $t.scrollerProxy = function (e, t) { var i = u(e), n = A.indexOf(i), r = V(i); ~n && A.splice(n, r ? 6 : 2), t && (r ? P.unshift(ke, t, Pe, t, Ae, t) : P.unshift(i, t)) }, $t.clearMatchMedia = function (e) { Ot.forEach((function (t) { return t._ctx && t._ctx.query === e && t._ctx.kill(!0, !0) })) }, $t.isInViewport = function (e, t, i) { var n = (K(e) ? u(e) : e).getBoundingClientRect(), r = n[i ? mt : gt] * t || 0; return i ? 0 < n.right - r && n.left + r < ke.innerWidth : 0 < n.bottom - r && n.top + r < ke.innerHeight }, $t.positionInViewport = function (e, t, i) { K(e) && (e = u(e)); var n = e.getBoundingClientRect(), r = n[i ? mt : gt], s = null == t ? r / 2 : t in Mt ? Mt[t] * r : ~t.indexOf("%") ? parseFloat(t) * r / 100 : parseFloat(t) || 0; return i ? (n.left + s) / ke.innerWidth : (n.top + s) / ke.innerHeight }, $t.killAll = function (e) { if (Ot.slice(0).forEach((function (e) { return "ScrollSmoother" !== e.vars.id && e.kill() })), !0 !== e) { var t = Pt.killAll || []; Pt = {}, t.forEach((function (e) { return e() })) } }, $t); function $t(e, t) { Me || $t.register(Ce) || console.warn("Please gsap.registerPlugin(ScrollTrigger)"), this.init(e, t) } function Ut(e, t, i, n) { return n < t ? e(n) : t < 0 && e(0), n < i ? (n - t) / (i - t) : i < 0 ? t / (t - i) : 1 } function Qt(e, t) { !0 === t ? e.style.removeProperty("touch-action") : e.style.touchAction = !0 === t ? "auto" : t ? "pan-" + t + (j.isTouch ? " pinch-zoom" : "") : "none", e === Ae && Qt(Pe, t) } function Kt(e) { var t, i = e.event, n = e.target, r = e.axis, s = (i.changedTouches ? i.changedTouches[0] : i).target, o = s._gsap || Ce.core.getCache(s), a = lt(); if (!o._isScrollT || 2e3 < a - o._isScrollT) { for (; s && s !== Pe && (s.scrollHeight <= s.clientHeight && s.scrollWidth <= s.clientWidth || !ei[(t = ne(s)).overflowY] && !ei[t.overflowX]);)s = s.parentNode; o._isScroll = s && s !== n && !V(s) && (ei[(t = ne(s)).overflowY] || ei[t.overflowX]), o._isScrollT = a } !o._isScroll && "x" !== r || (i.stopPropagation(), i._gsapAllow = !0) } function Jt(e, t, i, n) { return j.create({ target: e, capture: !0, debounce: !1, lockAxis: !0, type: t, onWheel: n = n && Kt, onPress: n, onDrag: n, onScroll: n, onEnable: function () { return i && ue(Oe, j.eventTypes[0], ii, !1, !0) }, onDisable: function () { return ce(Oe, j.eventTypes[0], ii, !0) } }) } Vt.version = "3.11.4", Vt.saveStyles = function (e) { return e ? Ie(e).forEach((function (e) { if (e && e.style) { var t = It.indexOf(e); 0 <= t && It.splice(t, 5), It.push(e, e.style.cssText, e.getBBox && e.getAttribute("transform"), Ce.core.getCache(e), et()) } })) : It }, Vt.revert = function (e, t) { return we(!e, t) }, Vt.create = function (e, t) { return new Vt(e, t) }, Vt.refresh = function (e) { return e ? ve() : (Me || Vt.register()) && Bt(!0) }, Vt.update = function (e) { return ++A.cache && Nt(!0 === e ? 2 : 0) }, Vt.clearScrollMemory = De, Vt.maxScroll = function (e, t) { return U(e, t ? B : W) }, Vt.getScrollFunc = function (e, t) { return c(u(e), t ? B : W) }, Vt.getById = function (e) { return At[e] }, Vt.getAll = function () { return Ot.filter((function (e) { return "ScrollSmoother" !== e.vars.id })) }, Vt.isScrolling = function () { return !!ct }, Vt.snapDirectional = ae, Vt.addEventListener = function (e, t) { var i = Pt[e] || (Pt[e] = []); ~i.indexOf(t) || i.push(t) }, Vt.removeEventListener = function (e, t) { var i = Pt[e], n = i && i.indexOf(t); 0 <= n && i.splice(n, 1) }, Vt.batch = function (e, t) { function i(e, t) { var i = [], n = [], r = Ce.delayedCall(o, (function () { t(i, n), i = [], n = [] })).pause(); return function (e) { i.length || r.restart(!0), i.push(e.trigger), n.push(e), a <= i.length && r.progress(1) } } var n, r = [], s = {}, o = t.interval || .016, a = t.batchMax || 1e9; for (n in t) s[n] = "on" === n.substr(0, 2) && J(t[n]) && "onRefreshInit" !== n ? i(0, t[n]) : t[n]; return J(a) && (a = a(), ue(Vt, "refresh", (function () { return a = t.batchMax() }))), Ie(e).forEach((function (e) { var t = {}; for (n in s) t[n] = s[n]; t.trigger = e, r.push(Vt.create(t)) })), r }; var Zt, ei = { auto: 1, scroll: 1 }, ti = /(input|label|select|textarea)/i, ii = function (e) { var t = ti.test(e.target.tagName); (t || Zt) && (e._gsapAllow = !0, Zt = t) }; Vt.sort = function (e) { return Ot.sort(e || function (e, t) { return -1e6 * (e.vars.refreshPriority || 0) + e.start - (t.start + -1e6 * (t.vars.refreshPriority || 0)) }) }, Vt.observe = function (e) { return new j(e) }, Vt.normalizeScroll = function (e) { if (void 0 === e) return Ue; if (!0 === e && Ue) return Ue.enable(); if (!1 === e) return Ue && Ue.kill(); var t = e instanceof j ? e : function (e) { function t() { return l = !1 } function i() { o = U(y, W), O = ze(Ze ? 1 : 0, o), m && (k = ze(0, U(y, B))), a = zt } function n() { D._gsap.y = q(parseFloat(D._gsap.y) + _.offset) + "px", D.style.transform = "matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, " + parseFloat(D._gsap.y) + ", 0, 1)", _.offset = _.cacheID = 0 } function r() { i(), d.isActive() && d.vars.scrollY > o && (_() > o ? d.progress(1) && _(o) : d.resetTo("scrollY", o)) } ee(e) || (e = {}), e.preventDefault = e.isNormalizer = e.allowClicks = !0, e.type || (e.type = "wheel,touch"), e.debounce = !!e.debounce, e.id = e.id || "normalizer"; var s, o, a, l, d, p, f, h, m = e.normalizeScrollX, g = e.momentum, v = e.allowNestedScroll, y = u(e.target) || Ae, b = Ce.core.globals().ScrollSmoother, w = b && b.get(), D = Ze && (e.content && u(e.content) || w && !1 !== e.content && !w.smooth() && w.content()), _ = c(y, W), x = c(y, B), E = 1, T = (j.isTouch && ke.visualViewport ? ke.visualViewport.scale * ke.visualViewport.width : ke.outerWidth) / ke.innerWidth, S = 0, C = J(g) ? function () { return g(s) } : function () { return g || 2.8 }, M = Jt(y, e.type, !0, v), k = Y, O = Y; return D && Ce.set(D, { y: "+=0" }), e.ignoreCheck = function (e) { return Ze && "touchmove" === e.type && function () { if (l) { requestAnimationFrame(t); var e = q(s.deltaY / 2), i = O(_.v - e); if (D && i !== _.v + _.offset) { _.offset = i - _.v; var r = q((parseFloat(D && D._gsap.y) || 0) - _.offset); D.style.transform = "matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, " + r + ", 0, 1)", D._gsap.y = r + "px", _.cacheID = A.cache, Nt() } return !0 } _.offset && n(), l = !0 }() || 1.05 < E && "touchstart" !== e.type || s.isGesturing || e.touches && 1 < e.touches.length }, e.onPress = function () { var e = E; E = q((ke.visualViewport && ke.visualViewport.scale || 1) / T), d.pause(), e !== E && Qt(y, 1.01 < E || !m && "x"), p = x(), f = _(), i(), a = zt }, e.onRelease = e.onGestureStart = function (e, t) { if (_.offset && n(), t) { A.cache++; var i, s, a = C(); m && (s = (i = x()) + .05 * a * -e.velocityX / .227, a *= Ut(x, i, s, U(y, B)), d.vars.scrollX = k(s)), s = (i = _()) + .05 * a * -e.velocityY / .227, a *= Ut(_, i, s, U(y, W)), d.vars.scrollY = O(s), d.invalidate().duration(a).play(.01), (Ze && d.vars.scrollY >= o || o - 1 <= i) && Ce.to({}, { onUpdate: r, duration: a }) } else h.restart(!0) }, e.onWheel = function () { d._ts && d.pause(), 1e3 < lt() - S && (a = 0, S = lt()) }, e.onChange = function (e, t, r, s, o) { if (zt !== a && i(), t && m && x(k(s[2] === t ? p + (e.startX - e.x) : x() + t - s[1])), r) { _.offset && n(); var l = o[2] === r, u = l ? f + e.startY - e.y : _() + r - o[1], c = O(u); l && u !== c && (f += c - u), _(c) } (r || t) && Nt() }, e.onEnable = function () { Qt(y, !m && "x"), Vt.addEventListener("refresh", r), ue(ke, "resize", r), _.smooth && (_.target.style.scrollBehavior = "auto", _.smooth = x.smooth = !1), M.enable() }, e.onDisable = function () { Qt(y, !0), ce(ke, "resize", r), Vt.removeEventListener("refresh", r), M.kill() }, e.lockAxis = !1 !== e.lockAxis, ((s = new j(e)).iOS = Ze) && !_() && _(1), Ze && Ce.ticker.add(Y), h = s._dc, d = Ce.to(s, { ease: "power4", paused: !0, scrollX: m ? "+=0.1" : "+=0", scrollY: "+=0.1", onComplete: h.vars.onComplete }), s }(e); return Ue && Ue.target === t.target && Ue.kill(), V(t.target) && (Ue = t), t }, Vt.core = { _getVelocityProp: d, _inputObserver: Jt, _scrollers: A, _proxies: P, bridge: { ss: function () { ct || Lt("scrollStart"), ct = lt() }, ref: function () { return je } } }, G() && Ce.registerPlugin(Vt), e.ScrollTrigger = Vt, e.default = Vt, "undefined" == typeof window || window !== e ? Object.defineProperty(e, "__esModule", { value: !0 }) : delete e.default })), function (e, t) { "object" == typeof exports && "undefined" != typeof module ? t(exports) : "function" == typeof define && define.amd ? define(["exports"], t) : t((e = e || self).window = e.window || {}) }(this, (function (e) { "use strict"; var t = /([\uD800-\uDBFF][\uDC00-\uDFFF](?:[\u200D\uFE0F][\uD800-\uDBFF][\uDC00-\uDFFF]){2,}|\uD83D\uDC69(?:\u200D(?:(?:\uD83D\uDC69\u200D)?\uD83D\uDC67|(?:\uD83D\uDC69\u200D)?\uD83D\uDC66)|\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC69\u200D(?:\uD83D\uDC69\u200D)?\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D(?:\uD83D\uDC69\u200D)?\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]\uFE0F|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC6F\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3C-\uDD3E\uDDD6-\uDDDF])\u200D[\u2640\u2642]\uFE0F|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F\u200D[\u2640\u2642]|(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642])\uFE0F|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2695\u2696\u2708]|\uD83D\uDC69\u200D[\u2695\u2696\u2708]|\uD83D\uDC68(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708]))\uFE0F|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83D\uDC69\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69]))|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67)\uDB40\uDC7F|\uD83D\uDC68(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:(?:\uD83D[\uDC68\uDC69])\u200D)?\uD83D\uDC66\u200D\uD83D\uDC66|(?:(?:\uD83D[\uDC68\uDC69])\u200D)?\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92])|(?:\uD83C[\uDFFB-\uDFFF])\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]))|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDD1-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\u200D(?:(?:(?:\uD83D[\uDC68\uDC69])\u200D)?\uD83D\uDC67|(?:(?:\uD83D[\uDC68\uDC69])\u200D)?\uD83D\uDC66)|\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC69\uDC6E\uDC70-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD18-\uDD1C\uDD1E\uDD1F\uDD26\uDD30-\uDD39\uDD3D\uDD3E\uDDD1-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])?|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDEEB\uDEEC\uDEF4-\uDEF8]|\uD83E[\uDD10-\uDD3A\uDD3C-\uDD3E\uDD40-\uDD45\uDD47-\uDD4C\uDD50-\uDD6B\uDD80-\uDD97\uDDC0\uDDD0-\uDDE6])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u2660\u2663\u2665\u2666\u2668\u267B\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEF8]|\uD83E[\uDD10-\uDD3A\uDD3C-\uDD3E\uDD40-\uDD45\uDD47-\uDD4C\uDD50-\uDD6B\uDD80-\uDD97\uDDC0\uDDD0-\uDDE6])\uFE0F)/; function i(e) { return g.getComputedStyle(e) } function n(e, t) { var i; return D(e) ? e : "string" == (i = typeof e) && !t && e ? _.call(m.querySelectorAll(e), 0) : e && "object" == i && "length" in e ? _.call(e, 0) : e ? [e] : [] } function r(e) { return "absolute" === e.position || !0 === e.absolute } function s(e, t) { for (var i, n = t.length; -1 < --n;)if (i = t[n], e.substr(0, i.length) === i) return i.length } function o(e, t) { void 0 === e && (e = ""); var i = ~e.indexOf("++"), n = 1; return i && (e = e.split("++").join("")), function () { return "<" + t + " style='position:relative;display:inline-block;'" + (e ? " class='" + e + (i ? n++ : "") + "'>" : ">") } } function a(e, t, i) { var n = e.nodeType; if (1 === n || 9 === n || 11 === n) for (e = e.firstChild; e; e = e.nextSibling)a(e, t, i); else 3 !== n && 4 !== n || (e.nodeValue = e.nodeValue.split(t).join(i)) } function l(e, t) { for (var i = t.length; -1 < --i;)e.push(t[i]) } function u(e, t, i) { for (var n; e && e !== t;) { if (n = e._next || e.nextSibling) return n.textContent.charAt(0) === i; e = e.parentNode || e._parent } } function c(e) { var t, i, r = n(e.childNodes), s = r.length; for (t = 0; t < s; t++)(i = r[t])._isSplit ? c(i) : t && i.previousSibling && 3 === i.previousSibling.nodeType ? (i.previousSibling.nodeValue += 3 === i.nodeType ? i.nodeValue : i.firstChild.nodeValue, e.removeChild(i)) : 3 !== i.nodeType && (e.insertBefore(i.firstChild, i), e.removeChild(i)) } function d(e, t) { return parseFloat(t[e]) || 0 } function p(e, t, n, s, o, p, f) { var h, g, v, y, b, w, D, _, x, E, T, S, C = i(e), M = d("paddingLeft", C), k = -999, O = d("borderBottomWidth", C) + d("borderTopWidth", C), A = d("borderLeftWidth", C) + d("borderRightWidth", C), P = d("paddingTop", C) + d("paddingBottom", C), F = d("paddingLeft", C) + d("paddingRight", C), L = d("fontSize", C) * (t.lineThreshold || .2), I = C.textAlign, z = [], B = [], W = [], j = t.wordDelimiter || " ", N = t.tag ? t.tag : t.span ? "span" : "div", R = t.type || t.split || "chars,words,lines", H = o && ~R.indexOf("lines") ? [] : null, Y = ~R.indexOf("words"), q = ~R.indexOf("chars"), X = r(t), G = t.linesClass, V = ~(G || "").indexOf("++"), $ = [], U = "flex" === C.display, Q = e.style.display; for (V && (G = G.split("++").join("")), U && (e.style.display = "block"), v = (g = e.getElementsByTagName("*")).length, b = [], h = 0; h < v; h++)b[h] = g[h]; if (H || X) for (h = 0; h < v; h++)((w = (y = b[h]).parentNode === e) || X || q && !Y) && (S = y.offsetTop, H && w && Math.abs(S - k) > L && ("BR" !== y.nodeName || 0 === h) && (D = [], H.push(D), k = S), X && (y._x = y.offsetLeft, y._y = S, y._w = y.offsetWidth, y._h = y.offsetHeight), H && ((y._isSplit && w || !q && w || Y && w || !Y && y.parentNode.parentNode === e && !y.parentNode._isSplit) && (D.push(y), y._x -= M, u(y, e, j) && (y._wordEnd = !0)), "BR" === y.nodeName && (y.nextSibling && "BR" === y.nextSibling.nodeName || 0 === h) && H.push([]))); for (h = 0; h < v; h++)if (w = (y = b[h]).parentNode === e, "BR" !== y.nodeName) if (X && (x = y.style, Y || w || (y._x += y.parentNode._x, y._y += y.parentNode._y), x.left = y._x + "px", x.top = y._y + "px", x.position = "absolute", x.display = "block", x.width = y._w + 1 + "px", x.height = y._h + "px"), !Y && q) if (y._isSplit) for (y._next = g = y.nextSibling, y.parentNode.appendChild(y); g && 3 === g.nodeType && " " === g.textContent;)y._next = g.nextSibling, y.parentNode.appendChild(g), g = g.nextSibling; else y.parentNode._isSplit ? (y._parent = y.parentNode, !y.previousSibling && y.firstChild && (y.firstChild._isFirst = !0), y.nextSibling && " " === y.nextSibling.textContent && !y.nextSibling.nextSibling && $.push(y.nextSibling), y._next = y.nextSibling && y.nextSibling._isFirst ? null : y.nextSibling, y.parentNode.removeChild(y), b.splice(h--, 1), v--) : w || (S = !y.nextSibling && u(y.parentNode, e, j), y.parentNode._parent && y.parentNode._parent.appendChild(y), S && y.parentNode.appendChild(m.createTextNode(" ")), "span" === N && (y.style.display = "inline"), z.push(y)); else y.parentNode._isSplit && !y._isSplit && "" !== y.innerHTML ? B.push(y) : q && !y._isSplit && ("span" === N && (y.style.display = "inline"), z.push(y)); else H || X ? (y.parentNode && y.parentNode.removeChild(y), b.splice(h--, 1), v--) : Y || e.appendChild(y); for (h = $.length; -1 < --h;)$[h].parentNode.removeChild($[h]); if (H) { for (X && (E = m.createElement(N), e.appendChild(E), T = E.offsetWidth + "px", S = E.offsetParent === e ? 0 : e.offsetLeft, e.removeChild(E)), x = e.style.cssText, e.style.cssText = "display:none;"; e.firstChild;)e.removeChild(e.firstChild); for (_ = " " === j && (!X || !Y && !q), h = 0; h < H.length; h++) { for (D = H[h], (E = m.createElement(N)).style.cssText = "display:block;text-align:" + I + ";position:" + (X ? "absolute;" : "relative;"), G && (E.className = G + (V ? h + 1 : "")), W.push(E), v = D.length, g = 0; g < v; g++)"BR" !== D[g].nodeName && (y = D[g], E.appendChild(y), _ && y._wordEnd && E.appendChild(m.createTextNode(" ")), X && (0 === g && (E.style.top = y._y + "px", E.style.left = M + S + "px"), y.style.top = "0px", S && (y.style.left = y._x - S + "px"))); 0 === v ? E.innerHTML = " " : Y || q || (c(E), a(E, String.fromCharCode(160), " ")), X && (E.style.width = T, E.style.height = y._h + "px"), e.appendChild(E) } e.style.cssText = x } X && (f > e.clientHeight && (e.style.height = f - P + "px", e.clientHeight < f && (e.style.height = f + O + "px")), p > e.clientWidth && (e.style.width = p - F + "px", e.clientWidth < p && (e.style.width = p + A + "px"))), U && (Q ? e.style.display = Q : e.style.removeProperty("display")), l(n, z), Y && l(s, B), l(o, W) } function f(e, i, n, o) { var l, u, c, d, p, f, h, g, v = i.tag ? i.tag : i.span ? "span" : "div", y = ~(i.type || i.split || "chars,words,lines").indexOf("chars"), D = r(i), _ = i.wordDelimiter || " ", x = " " !== _ ? "" : D ? "­ " : " ", E = "</" + v + ">", T = 1, S = i.specialChars ? "function" == typeof i.specialChars ? i.specialChars : s : null, C = m.createElement("div"), M = e.parentNode; for (M.insertBefore(C, e), C.textContent = e.nodeValue, M.removeChild(e), h = -1 !== (l = function e(t) { var i = t.nodeType, n = ""; if (1 === i || 9 === i || 11 === i) { if ("string" == typeof t.textContent) return t.textContent; for (t = t.firstChild; t; t = t.nextSibling)n += e(t) } else if (3 === i || 4 === i) return t.nodeValue; return n }(e = C)).indexOf("<"), !1 !== i.reduceWhiteSpace && (l = l.replace(w, " ").replace(b, "")), h && (l = l.split("<").join("{{LT}}")), p = l.length, u = (" " === l.charAt(0) ? x : "") + n(), c = 0; c < p; c++)if (f = l.charAt(c), S && (g = S(l.substr(c), i.specialChars))) f = l.substr(c, g || 1), u += y && " " !== f ? o() + f + "</" + v + ">" : f, c += g - 1; else if (f === _ && l.charAt(c - 1) !== _ && c) { for (u += T ? E : "", T = 0; l.charAt(c + 1) === _;)u += x, c++; c === p - 1 ? u += x : ")" !== l.charAt(c + 1) && (u += x + n(), T = 1) } else "{" === f && "{{LT}}" === l.substr(c, 6) ? (u += y ? o() + "{{LT}}</" + v + ">" : "{{LT}}", c += 5) : 55296 <= f.charCodeAt(0) && f.charCodeAt(0) <= 56319 || 65024 <= l.charCodeAt(c + 1) && l.charCodeAt(c + 1) <= 65039 ? (d = ((l.substr(c, 12).split(t) || [])[1] || "").length || 2, u += y && " " !== f ? o() + l.substr(c, d) + "</" + v + ">" : l.substr(c, d), c += d - 1) : u += y && " " !== f ? o() + f + "</" + v + ">" : f; e.outerHTML = u + (T ? E : ""), h && a(M, "{{LT}}", "<") } function h(e, t, s, o) { var a, l, u = n(e.childNodes), c = u.length, d = r(t); if (3 !== e.nodeType || 1 < c) { for (t.absolute = !1, a = 0; a < c; a++)(l = u[a])._next = l._isFirst = l._parent = l._wordEnd = null, 3 === l.nodeType && !/\S+/.test(l.nodeValue) || (d && 3 !== l.nodeType && "inline" === i(l).display && (l.style.display = "inline-block", l.style.position = "relative"), l._isSplit = !0, h(l, t, s, o)); return t.absolute = d, void (e._isSplit = !0) } f(e, t, s, o) } var m, g, v, y, b = /(?:\r|\n|\t\t)/g, w = /(?:\s\s+)/g, D = Array.isArray, _ = [].slice, x = ((y = E.prototype).split = function (e) { this.isSplit && this.revert(), this.vars = e = e || this.vars, this._originals.length = this.chars.length = this.words.length = this.lines.length = 0; for (var t, i, n, r = this.elements.length, s = e.tag ? e.tag : e.span ? "span" : "div", a = o(e.wordsClass, s), l = o(e.charsClass, s); -1 < --r;)n = this.elements[r], this._originals[r] = n.innerHTML, t = n.clientHeight, i = n.clientWidth, h(n, e, a, l), p(n, e, this.chars, this.words, this.lines, i, t); return this.chars.reverse(), this.words.reverse(), this.lines.reverse(), this.isSplit = !0, this }, y.revert = function () { var e = this._originals; if (!e) throw "revert() call wasn't scoped properly."; return this.elements.forEach((function (t, i) { return t.innerHTML = e[i] })), this.chars = [], this.words = [], this.lines = [], this.isSplit = !1, this }, E.create = function (e, t) { return new E(e, t) }, E); function E(e, t) { v || (m = document, g = window, v = 1), this.elements = n(e), this.chars = [], this.words = [], this.lines = [], this._originals = [], this.vars = t || {}, this.split(t) } x.version = "3.11.2", e.SplitText = x, e.default = x, "undefined" == typeof window || window !== e ? Object.defineProperty(e, "__esModule", { value: !0 }) : delete e.default })); var Swiper = function () { "use strict"; function e(e) { return null !== e && "object" == typeof e && "constructor" in e && e.constructor === Object } function t(i, n) { void 0 === i && (i = {}), void 0 === n && (n = {}), Object.keys(n).forEach(r => { void 0 === i[r] ? i[r] = n[r] : e(n[r]) && e(i[r]) && Object.keys(n[r]).length > 0 && t(i[r], n[r]) }) } const i = { body: {}, addEventListener() { }, removeEventListener() { }, activeElement: { blur() { }, nodeName: "" }, querySelector: () => null, querySelectorAll: () => [], getElementById: () => null, createEvent: () => ({ initEvent() { } }), createElement: () => ({ children: [], childNodes: [], style: {}, setAttribute() { }, getElementsByTagName: () => [] }), createElementNS: () => ({}), importNode: () => null, location: { hash: "", host: "", hostname: "", href: "", origin: "", pathname: "", protocol: "", search: "" } }; function n() { const e = "undefined" != typeof document ? document : {}; return t(e, i), e } const r = { document: i, navigator: { userAgent: "" }, location: { hash: "", host: "", hostname: "", href: "", origin: "", pathname: "", protocol: "", search: "" }, history: { replaceState() { }, pushState() { }, go() { }, back() { } }, CustomEvent: function () { return this }, addEventListener() { }, removeEventListener() { }, getComputedStyle: () => ({ getPropertyValue: () => "" }), Image() { }, Date() { }, screen: {}, setTimeout() { }, clearTimeout() { }, matchMedia: () => ({}), requestAnimationFrame: e => "undefined" == typeof setTimeout ? (e(), null) : setTimeout(e, 0), cancelAnimationFrame(e) { "undefined" != typeof setTimeout && clearTimeout(e) } }; function s() { const e = "undefined" != typeof window ? window : {}; return t(e, r), e } function o(e) { return void 0 === e && (e = ""), e.trim().split(" ").filter(e => !!e.trim()) } function a(e, t) { return void 0 === t && (t = 0), setTimeout(e, t) } function l() { return Date.now() } function u(e, t) { void 0 === t && (t = "x"); const i = s(); let n, r, o; const a = function (e) { const t = s(); let i; return t.getComputedStyle && (i = t.getComputedStyle(e, null)), !i && e.currentStyle && (i = e.currentStyle), i || (i = e.style), i }(e); return i.WebKitCSSMatrix ? (r = a.transform || a.webkitTransform, r.split(",").length > 6 && (r = r.split(", ").map(e => e.replace(",", ".")).join(", ")), o = new i.WebKitCSSMatrix("none" === r ? "" : r)) : (o = a.MozTransform || a.OTransform || a.MsTransform || a.msTransform || a.transform || a.getPropertyValue("transform").replace("translate(", "matrix(1, 0, 0, 1,"), n = o.toString().split(",")), "x" === t && (r = i.WebKitCSSMatrix ? o.m41 : 16 === n.length ? parseFloat(n[12]) : parseFloat(n[4])), "y" === t && (r = i.WebKitCSSMatrix ? o.m42 : 16 === n.length ? parseFloat(n[13]) : parseFloat(n[5])), r || 0 } function c(e) { return "object" == typeof e && null !== e && e.constructor && "Object" === Object.prototype.toString.call(e).slice(8, -1) } function d() { const e = Object(arguments.length <= 0 ? void 0 : arguments[0]), t = ["__proto__", "constructor", "prototype"]; for (let n = 1; n < arguments.length; n += 1) { const r = n < 0 || arguments.length <= n ? void 0 : arguments[n]; if (null != r && (i = r, !("undefined" != typeof window && void 0 !== window.HTMLElement ? i instanceof HTMLElement : i && (1 === i.nodeType || 11 === i.nodeType)))) { const i = Object.keys(Object(r)).filter(e => t.indexOf(e) < 0); for (let t = 0, n = i.length; t < n; t += 1) { const n = i[t], s = Object.getOwnPropertyDescriptor(r, n); void 0 !== s && s.enumerable && (c(e[n]) && c(r[n]) ? r[n].__swiper__ ? e[n] = r[n] : d(e[n], r[n]) : !c(e[n]) && c(r[n]) ? (e[n] = {}, r[n].__swiper__ ? e[n] = r[n] : d(e[n], r[n])) : e[n] = r[n]) } } } var i; return e } function p(e, t, i) { e.style.setProperty(t, i) } function f(e) { let { swiper: t, targetPosition: i, side: n } = e; const r = s(), o = -t.translate; let a, l = null; const u = t.params.speed; t.wrapperEl.style.scrollSnapType = "none", r.cancelAnimationFrame(t.cssModeFrameID); const c = i > o ? "next" : "prev", d = (e, t) => "next" === c && e >= t || "prev" === c && e <= t, p = () => { a = (new Date).getTime(), null === l && (l = a); const e = Math.max(Math.min((a - l) / u, 1), 0), s = .5 - Math.cos(e * Math.PI) / 2; let c = o + s * (i - o); if (d(c, i) && (c = i), t.wrapperEl.scrollTo({ [n]: c }), d(c, i)) return t.wrapperEl.style.overflow = "hidden", t.wrapperEl.style.scrollSnapType = "", setTimeout(() => { t.wrapperEl.style.overflow = "", t.wrapperEl.scrollTo({ [n]: c }) }), void r.cancelAnimationFrame(t.cssModeFrameID); t.cssModeFrameID = r.requestAnimationFrame(p) }; p() } function h(e) { return e.querySelector(".swiper-slide-transform") || e.shadowRoot && e.shadowRoot.querySelector(".swiper-slide-transform") || e } function m(e, t) { return void 0 === t && (t = ""), [...e.children].filter(e => e.matches(t)) } function g(e) { try { return void console.warn(e) } catch (e) { } } function v(e, t) { void 0 === t && (t = []); const i = document.createElement(e); return i.classList.add(...Array.isArray(t) ? t : o(t)), i } function y(e) { const t = s(), i = n(), r = e.getBoundingClientRect(), o = i.body, a = e.clientTop || o.clientTop || 0, l = e.clientLeft || o.clientLeft || 0, u = e === t ? t.scrollY : e.scrollTop, c = e === t ? t.scrollX : e.scrollLeft; return { top: r.top + u - a, left: r.left + c - l } } function b(e, t) { return s().getComputedStyle(e, null).getPropertyValue(t) } function w(e) { let t, i = e; if (i) { for (t = 0; null !== (i = i.previousSibling);)1 === i.nodeType && (t += 1); return t } } function D(e, t) { const i = []; let n = e.parentElement; for (; n;)t ? n.matches(t) && i.push(n) : i.push(n), n = n.parentElement; return i } function _(e, t) { t && e.addEventListener("transitionend", (function i(n) { n.target === e && (t.call(e, n), e.removeEventListener("transitionend", i)) })) } function x(e, t, i) { const n = s(); return i ? e["width" === t ? "offsetWidth" : "offsetHeight"] + parseFloat(n.getComputedStyle(e, null).getPropertyValue("width" === t ? "margin-right" : "margin-top")) + parseFloat(n.getComputedStyle(e, null).getPropertyValue("width" === t ? "margin-left" : "margin-bottom")) : e.offsetWidth } function E(e) { return (Array.isArray(e) ? e : [e]).filter(e => !!e) } let T, S, C; function M() { return T || (T = function () { const e = s(), t = n(); return { smoothScroll: t.documentElement && t.documentElement.style && "scrollBehavior" in t.documentElement.style, touch: !!("ontouchstart" in e || e.DocumentTouch && t instanceof e.DocumentTouch) } }()), T } function k(e) { return void 0 === e && (e = {}), S || (S = function (e) { let { userAgent: t } = void 0 === e ? {} : e; const i = M(), n = s(), r = n.navigator.platform, o = t || n.navigator.userAgent, a = { ios: !1, android: !1 }, l = n.screen.width, u = n.screen.height, c = o.match(/(Android);?[\s\/]+([\d.]+)?/); let d = o.match(/(iPad).*OS\s([\d_]+)/); const p = o.match(/(iPod)(.*OS\s([\d_]+))?/), f = !d && o.match(/(iPhone\sOS|iOS)\s([\d_]+)/), h = "Win32" === r; let m = "MacIntel" === r; return !d && m && i.touch && ["1024x1366", "1366x1024", "834x1194", "1194x834", "834x1112", "1112x834", "768x1024", "1024x768", "820x1180", "1180x820", "810x1080", "1080x810"].indexOf(`${l}x${u}`) >= 0 && (d = o.match(/(Version)\/([\d.]+)/), d || (d = [0, 1, "13_0_0"]), m = !1), c && !h && (a.os = "android", a.android = !0), (d || f || p) && (a.os = "ios", a.ios = !0), a }(e)), S } function O() { return C || (C = function () { const e = s(), t = k(); let i = !1; function n() { const t = e.navigator.userAgent.toLowerCase(); return t.indexOf("safari") >= 0 && t.indexOf("chrome") < 0 && t.indexOf("android") < 0 } if (n()) { const t = String(e.navigator.userAgent); if (t.includes("Version/")) { const [e, n] = t.split("Version/")[1].split(" ")[0].split(".").map(e => Number(e)); i = e < 16 || 16 === e && n < 2 } } const r = /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(e.navigator.userAgent), o = n(); return { isSafari: i || o, needPerspectiveFix: i, need3dFix: o || r && t.ios, isWebView: r } }()), C } const A = (e, t, i) => { t && !e.classList.contains(i) ? e.classList.add(i) : !t && e.classList.contains(i) && e.classList.remove(i) }, P = (e, t) => { if (!e || e.destroyed || !e.params) return; const i = t.closest(e.isElement ? "swiper-slide" : "." + e.params.slideClass); if (i) { let t = i.querySelector("." + e.params.lazyPreloaderClass); !t && e.isElement && (i.shadowRoot ? t = i.shadowRoot.querySelector("." + e.params.lazyPreloaderClass) : requestAnimationFrame(() => { i.shadowRoot && (t = i.shadowRoot.querySelector("." + e.params.lazyPreloaderClass), t && t.remove()) })), t && t.remove() } }, F = (e, t) => { if (!e.slides[t]) return; const i = e.slides[t].querySelector('[loading="lazy"]'); i && i.removeAttribute("loading") }, L = e => { if (!e || e.destroyed || !e.params) return; let t = e.params.lazyPreloadPrevNext; const i = e.slides.length; if (!i || !t || t < 0) return; t = Math.min(t, i); const n = "auto" === e.params.slidesPerView ? e.slidesPerViewDynamic() : Math.ceil(e.params.slidesPerView), r = e.activeIndex; if (e.params.grid && e.params.grid.rows > 1) { const i = r, s = [i - t]; return s.push(...Array.from({ length: t }).map((e, t) => i + n + t)), void e.slides.forEach((t, i) => { s.includes(t.column) && F(e, i) }) } const s = r + n - 1; if (e.params.rewind || e.params.loop) for (let n = r - t; n <= s + t; n += 1) { const t = (n % i + i) % i; (t < r || t > s) && F(e, t) } else for (let n = Math.max(r - t, 0); n <= Math.min(s + t, i - 1); n += 1)n !== r && (n > s || n < r) && F(e, n) }; function I(e) { let { swiper: t, runCallbacks: i, direction: n, step: r } = e; const { activeIndex: s, previousIndex: o } = t; let a = n; if (a || (a = s > o ? "next" : s < o ? "prev" : "reset"), t.emit("transition" + r), i && s !== o) { if ("reset" === a) return void t.emit("slideResetTransition" + r); t.emit("slideChangeTransition" + r), "next" === a ? t.emit("slideNextTransition" + r) : t.emit("slidePrevTransition" + r) } } function z(e, t, i) { const n = s(), { params: r } = e, o = r.edgeSwipeDetection, a = r.edgeSwipeThreshold; return !o || !(i <= a || i >= n.innerWidth - a) || "prevent" === o && (t.preventDefault(), !0) } function B(e) { const t = this, i = n(); let r = e; r.originalEvent && (r = r.originalEvent); const o = t.touchEventsData; if ("pointerdown" === r.type) { if (null !== o.pointerId && o.pointerId !== r.pointerId) return; o.pointerId = r.pointerId } else "touchstart" === r.type && 1 === r.targetTouches.length && (o.touchId = r.targetTouches[0].identifier); if ("touchstart" === r.type) return void z(t, r, r.targetTouches[0].pageX); const { params: a, touches: u, enabled: c } = t; if (!c) return; if (!a.simulateTouch && "mouse" === r.pointerType) return; if (t.animating && a.preventInteractionOnTransition) return; !t.animating && a.cssMode && a.loop && t.loopFix(); let d = r.target; if ("wrapper" === a.touchEventsTarget && !t.wrapperEl.contains(d)) return; if ("which" in r && 3 === r.which) return; if ("button" in r && r.button > 0) return; if (o.isTouched && o.isMoved) return; const p = !!a.noSwipingClass && "" !== a.noSwipingClass, f = r.composedPath ? r.composedPath() : r.path; p && r.target && r.target.shadowRoot && f && (d = f[0]); const h = a.noSwipingSelector ? a.noSwipingSelector : "." + a.noSwipingClass, m = !(!r.target || !r.target.shadowRoot); if (a.noSwiping && (m ? function (e, t) { return void 0 === t && (t = this), function t(i) { if (!i || i === n() || i === s()) return null; i.assignedSlot && (i = i.assignedSlot); const r = i.closest(e); return r || i.getRootNode ? r || t(i.getRootNode().host) : null }(t) }(h, d) : d.closest(h))) return void (t.allowClick = !0); if (a.swipeHandler && !d.closest(a.swipeHandler)) return; u.currentX = r.pageX, u.currentY = r.pageY; const g = u.currentX, v = u.currentY; if (!z(t, r, g)) return; Object.assign(o, { isTouched: !0, isMoved: !1, allowTouchCallbacks: !0, isScrolling: void 0, startMoving: void 0 }), u.startX = g, u.startY = v, o.touchStartTime = l(), t.allowClick = !0, t.updateSize(), t.swipeDirection = void 0, a.threshold > 0 && (o.allowThresholdMove = !1); let y = !0; d.matches(o.focusableElements) && (y = !1, "SELECT" === d.nodeName && (o.isTouched = !1)), i.activeElement && i.activeElement.matches(o.focusableElements) && i.activeElement !== d && i.activeElement.blur(); const b = y && t.allowTouchMove && a.touchStartPreventDefault; !a.touchStartForcePreventDefault && !b || d.isContentEditable || r.preventDefault(), a.freeMode && a.freeMode.enabled && t.freeMode && t.animating && !a.cssMode && t.freeMode.onTouchStart(), t.emit("touchStart", r) } function W(e) { const t = n(), i = this, r = i.touchEventsData, { params: s, touches: o, rtlTranslate: a, enabled: u } = i; if (!u) return; if (!s.simulateTouch && "mouse" === e.pointerType) return; let c, d = e; if (d.originalEvent && (d = d.originalEvent), "pointermove" === d.type) { if (null !== r.touchId) return; if (d.pointerId !== r.pointerId) return } if ("touchmove" === d.type) { if (c = [...d.changedTouches].filter(e => e.identifier === r.touchId)[0], !c || c.identifier !== r.touchId) return } else c = d; if (!r.isTouched) return void (r.startMoving && r.isScrolling && i.emit("touchMoveOpposite", d)); const p = c.pageX, f = c.pageY; if (d.preventedByNestedSwiper) return o.startX = p, void (o.startY = f); if (!i.allowTouchMove) return d.target.matches(r.focusableElements) || (i.allowClick = !1), void (r.isTouched && (Object.assign(o, { startX: p, startY: f, currentX: p, currentY: f }), r.touchStartTime = l())); if (s.touchReleaseOnEdges && !s.loop) if (i.isVertical()) { if (f < o.startY && i.translate <= i.maxTranslate() || f > o.startY && i.translate >= i.minTranslate()) return r.isTouched = !1, void (r.isMoved = !1) } else if (p < o.startX && i.translate <= i.maxTranslate() || p > o.startX && i.translate >= i.minTranslate()) return; if (t.activeElement && d.target === t.activeElement && d.target.matches(r.focusableElements)) return r.isMoved = !0, void (i.allowClick = !1); r.allowTouchCallbacks && i.emit("touchMove", d), o.previousX = o.currentX, o.previousY = o.currentY, o.currentX = p, o.currentY = f; const h = o.currentX - o.startX, m = o.currentY - o.startY; if (i.params.threshold && Math.sqrt(h ** 2 + m ** 2) < i.params.threshold) return; if (void 0 === r.isScrolling) { let e; i.isHorizontal() && o.currentY === o.startY || i.isVertical() && o.currentX === o.startX ? r.isScrolling = !1 : h * h + m * m >= 25 && (e = 180 * Math.atan2(Math.abs(m), Math.abs(h)) / Math.PI, r.isScrolling = i.isHorizontal() ? e > s.touchAngle : 90 - e > s.touchAngle) } if (r.isScrolling && i.emit("touchMoveOpposite", d), void 0 === r.startMoving && (o.currentX === o.startX && o.currentY === o.startY || (r.startMoving = !0)), r.isScrolling) return void (r.isTouched = !1); if (!r.startMoving) return; i.allowClick = !1, !s.cssMode && d.cancelable && d.preventDefault(), s.touchMoveStopPropagation && !s.nested && d.stopPropagation(); let g = i.isHorizontal() ? h : m, v = i.isHorizontal() ? o.currentX - o.previousX : o.currentY - o.previousY; s.oneWayMovement && (g = Math.abs(g) * (a ? 1 : -1), v = Math.abs(v) * (a ? 1 : -1)), o.diff = g, g *= s.touchRatio, a && (g = -g, v = -v); const y = i.touchesDirection; i.swipeDirection = g > 0 ? "prev" : "next", i.touchesDirection = v > 0 ? "prev" : "next"; const b = i.params.loop && !s.cssMode, w = "next" === i.touchesDirection && i.allowSlideNext || "prev" === i.touchesDirection && i.allowSlidePrev; if (!r.isMoved) { if (b && w && i.loopFix({ direction: i.swipeDirection }), r.startTranslate = i.getTranslate(), i.setTransition(0), i.animating) { const e = new window.CustomEvent("transitionend", { bubbles: !0, cancelable: !0 }); i.wrapperEl.dispatchEvent(e) } r.allowMomentumBounce = !1, !s.grabCursor || !0 !== i.allowSlideNext && !0 !== i.allowSlidePrev || i.setGrabCursor(!0), i.emit("sliderFirstMove", d) } if ((new Date).getTime(), r.isMoved && r.allowThresholdMove && y !== i.touchesDirection && b && w && Math.abs(g) >= 1) return Object.assign(o, { startX: p, startY: f, currentX: p, currentY: f, startTranslate: r.currentTranslate }), r.loopSwapReset = !0, void (r.startTranslate = r.currentTranslate); i.emit("sliderMove", d), r.isMoved = !0, r.currentTranslate = g + r.startTranslate; let D = !0, _ = s.resistanceRatio; if (s.touchReleaseOnEdges && (_ = 0), g > 0 ? (b && w && r.allowThresholdMove && r.currentTranslate > (s.centeredSlides ? i.minTranslate() - i.slidesSizesGrid[i.activeIndex + 1] : i.minTranslate()) && i.loopFix({ direction: "prev", setTranslate: !0, activeSlideIndex: 0 }), r.currentTranslate > i.minTranslate() && (D = !1, s.resistance && (r.currentTranslate = i.minTranslate() - 1 + (-i.minTranslate() + r.startTranslate + g) ** _))) : g < 0 && (b && w && r.allowThresholdMove && r.currentTranslate < (s.centeredSlides ? i.maxTranslate() + i.slidesSizesGrid[i.slidesSizesGrid.length - 1] : i.maxTranslate()) && i.loopFix({ direction: "next", setTranslate: !0, activeSlideIndex: i.slides.length - ("auto" === s.slidesPerView ? i.slidesPerViewDynamic() : Math.ceil(parseFloat(s.slidesPerView, 10))) }), r.currentTranslate < i.maxTranslate() && (D = !1, s.resistance && (r.currentTranslate = i.maxTranslate() + 1 - (i.maxTranslate() - r.startTranslate - g) ** _))), D && (d.preventedByNestedSwiper = !0), !i.allowSlideNext && "next" === i.swipeDirection && r.currentTranslate < r.startTranslate && (r.currentTranslate = r.startTranslate), !i.allowSlidePrev && "prev" === i.swipeDirection && r.currentTranslate > r.startTranslate && (r.currentTranslate = r.startTranslate), i.allowSlidePrev || i.allowSlideNext || (r.currentTranslate = r.startTranslate), s.threshold > 0) { if (!(Math.abs(g) > s.threshold || r.allowThresholdMove)) return void (r.currentTranslate = r.startTranslate); if (!r.allowThresholdMove) return r.allowThresholdMove = !0, o.startX = o.currentX, o.startY = o.currentY, r.currentTranslate = r.startTranslate, void (o.diff = i.isHorizontal() ? o.currentX - o.startX : o.currentY - o.startY) } s.followFinger && !s.cssMode && ((s.freeMode && s.freeMode.enabled && i.freeMode || s.watchSlidesProgress) && (i.updateActiveIndex(), i.updateSlidesClasses()), s.freeMode && s.freeMode.enabled && i.freeMode && i.freeMode.onTouchMove(), i.updateProgress(r.currentTranslate), i.setTranslate(r.currentTranslate)) } function j(e) { const t = this, i = t.touchEventsData; let n, r = e; if (r.originalEvent && (r = r.originalEvent), "touchend" === r.type || "touchcancel" === r.type) { if (n = [...r.changedTouches].filter(e => e.identifier === i.touchId)[0], !n || n.identifier !== i.touchId) return } else { if (null !== i.touchId) return; if (r.pointerId !== i.pointerId) return; n = r } if (["pointercancel", "pointerout", "pointerleave", "contextmenu"].includes(r.type) && (!["pointercancel", "contextmenu"].includes(r.type) || !t.browser.isSafari && !t.browser.isWebView)) return; i.pointerId = null, i.touchId = null; const { params: s, touches: o, rtlTranslate: u, slidesGrid: c, enabled: d } = t; if (!d) return; if (!s.simulateTouch && "mouse" === r.pointerType) return; if (i.allowTouchCallbacks && t.emit("touchEnd", r), i.allowTouchCallbacks = !1, !i.isTouched) return i.isMoved && s.grabCursor && t.setGrabCursor(!1), i.isMoved = !1, void (i.startMoving = !1); s.grabCursor && i.isMoved && i.isTouched && (!0 === t.allowSlideNext || !0 === t.allowSlidePrev) && t.setGrabCursor(!1); const p = l(), f = p - i.touchStartTime; if (t.allowClick) { const e = r.path || r.composedPath && r.composedPath(); t.updateClickedSlide(e && e[0] || r.target, e), t.emit("tap click", r), f < 300 && p - i.lastClickTime < 300 && t.emit("doubleTap doubleClick", r) } if (i.lastClickTime = l(), a(() => { t.destroyed || (t.allowClick = !0) }), !i.isTouched || !i.isMoved || !t.swipeDirection || 0 === o.diff && !i.loopSwapReset || i.currentTranslate === i.startTranslate && !i.loopSwapReset) return i.isTouched = !1, i.isMoved = !1, void (i.startMoving = !1); let h; if (i.isTouched = !1, i.isMoved = !1, i.startMoving = !1, h = s.followFinger ? u ? t.translate : -t.translate : -i.currentTranslate, s.cssMode) return; if (s.freeMode && s.freeMode.enabled) return void t.freeMode.onTouchEnd({ currentPos: h }); const m = h >= -t.maxTranslate() && !t.params.loop; let g = 0, v = t.slidesSizesGrid[0]; for (let e = 0; e < c.length; e += e < s.slidesPerGroupSkip ? 1 : s.slidesPerGroup) { const t = e < s.slidesPerGroupSkip - 1 ? 1 : s.slidesPerGroup; void 0 !== c[e + t] ? (m || h >= c[e] && h < c[e + t]) && (g = e, v = c[e + t] - c[e]) : (m || h >= c[e]) && (g = e, v = c[c.length - 1] - c[c.length - 2]) } let y = null, b = null; s.rewind && (t.isBeginning ? b = s.virtual && s.virtual.enabled && t.virtual ? t.virtual.slides.length - 1 : t.slides.length - 1 : t.isEnd && (y = 0)); const w = (h - c[g]) / v, D = g < s.slidesPerGroupSkip - 1 ? 1 : s.slidesPerGroup; if (f > s.longSwipesMs) { if (!s.longSwipes) return void t.slideTo(t.activeIndex); "next" === t.swipeDirection && (w >= s.longSwipesRatio ? t.slideTo(s.rewind && t.isEnd ? y : g + D) : t.slideTo(g)), "prev" === t.swipeDirection && (w > 1 - s.longSwipesRatio ? t.slideTo(g + D) : null !== b && w < 0 && Math.abs(w) > s.longSwipesRatio ? t.slideTo(b) : t.slideTo(g)) } else { if (!s.shortSwipes) return void t.slideTo(t.activeIndex); !t.navigation || r.target !== t.navigation.nextEl && r.target !== t.navigation.prevEl ? ("next" === t.swipeDirection && t.slideTo(null !== y ? y : g + D), "prev" === t.swipeDirection && t.slideTo(null !== b ? b : g)) : r.target === t.navigation.nextEl ? t.slideTo(g + D) : t.slideTo(g) } } function N() { const e = this, { params: t, el: i } = e; if (i && 0 === i.offsetWidth) return; t.breakpoints && e.setBreakpoint(); const { allowSlideNext: n, allowSlidePrev: r, snapGrid: s } = e, o = e.virtual && e.params.virtual.enabled; e.allowSlideNext = !0, e.allowSlidePrev = !0, e.updateSize(), e.updateSlides(), e.updateSlidesClasses(); const a = o && t.loop; !("auto" === t.slidesPerView || t.slidesPerView > 1) || !e.isEnd || e.isBeginning || e.params.centeredSlides || a ? e.params.loop && !o ? e.slideToLoop(e.realIndex, 0, !1, !0) : e.slideTo(e.activeIndex, 0, !1, !0) : e.slideTo(e.slides.length - 1, 0, !1, !0), e.autoplay && e.autoplay.running && e.autoplay.paused && (clearTimeout(e.autoplay.resizeTimeout), e.autoplay.resizeTimeout = setTimeout(() => { e.autoplay && e.autoplay.running && e.autoplay.paused && e.autoplay.resume() }, 500)), e.allowSlidePrev = r, e.allowSlideNext = n, e.params.watchOverflow && s !== e.snapGrid && e.checkOverflow() } function R(e) { const t = this; t.enabled && (t.allowClick || (t.params.preventClicks && e.preventDefault(), t.params.preventClicksPropagation && t.animating && (e.stopPropagation(), e.stopImmediatePropagation()))) } function H() { const e = this, { wrapperEl: t, rtlTranslate: i, enabled: n } = e; if (!n) return; let r; e.previousTranslate = e.translate, e.isHorizontal() ? e.translate = -t.scrollLeft : e.translate = -t.scrollTop, 0 === e.translate && (e.translate = 0), e.updateActiveIndex(), e.updateSlidesClasses(); const s = e.maxTranslate() - e.minTranslate(); r = 0 === s ? 0 : (e.translate - e.minTranslate()) / s, r !== e.progress && e.updateProgress(i ? -e.translate : e.translate), e.emit("setTranslate", e.translate, !1) } function Y(e) { const t = this; P(t, e.target), t.params.cssMode || "auto" !== t.params.slidesPerView && !t.params.autoHeight || t.update() } function q() { const e = this; e.documentTouchHandlerProceeded || (e.documentTouchHandlerProceeded = !0, e.params.touchReleaseOnEdges && (e.el.style.touchAction = "auto")) } const X = (e, t) => { const i = n(), { params: r, el: s, wrapperEl: o, device: a } = e, l = !!r.nested, u = "on" === t ? "addEventListener" : "removeEventListener", c = t; i[u]("touchstart", e.onDocumentTouchStart, { passive: !1, capture: l }), s[u]("touchstart", e.onTouchStart, { passive: !1 }), s[u]("pointerdown", e.onTouchStart, { passive: !1 }), i[u]("touchmove", e.onTouchMove, { passive: !1, capture: l }), i[u]("pointermove", e.onTouchMove, { passive: !1, capture: l }), i[u]("touchend", e.onTouchEnd, { passive: !0 }), i[u]("pointerup", e.onTouchEnd, { passive: !0 }), i[u]("pointercancel", e.onTouchEnd, { passive: !0 }), i[u]("touchcancel", e.onTouchEnd, { passive: !0 }), i[u]("pointerout", e.onTouchEnd, { passive: !0 }), i[u]("pointerleave", e.onTouchEnd, { passive: !0 }), i[u]("contextmenu", e.onTouchEnd, { passive: !0 }), (r.preventClicks || r.preventClicksPropagation) && s[u]("click", e.onClick, !0), r.cssMode && o[u]("scroll", e.onScroll), r.updateOnWindowResize ? e[c](a.ios || a.android ? "resize orientationchange observerUpdate" : "resize observerUpdate", N, !0) : e[c]("observerUpdate", N, !0), s[u]("load", e.onLoad, { capture: !0 }) }, G = (e, t) => e.grid && t.grid && t.grid.rows > 1; var V = { init: !0, direction: "horizontal", oneWayMovement: !1, swiperElementNodeName: "SWIPER-CONTAINER", touchEventsTarget: "wrapper", initialSlide: 0, speed: 300, cssMode: !1, updateOnWindowResize: !0, resizeObserver: !0, nested: !1, createElements: !1, eventsPrefix: "swiper", enabled: !0, focusableElements: "input, select, option, textarea, button, video, label", width: null, height: null, preventInteractionOnTransition: !1, userAgent: null, url: null, edgeSwipeDetection: !1, edgeSwipeThreshold: 20, autoHeight: !1, setWrapperSize: !1, virtualTranslate: !1, effect: "slide", breakpoints: void 0, breakpointsBase: "window", spaceBetween: 0, slidesPerView: 1, slidesPerGroup: 1, slidesPerGroupSkip: 0, slidesPerGroupAuto: !1, centeredSlides: !1, centeredSlidesBounds: !1, slidesOffsetBefore: 0, slidesOffsetAfter: 0, normalizeSlideIndex: !0, centerInsufficientSlides: !1, watchOverflow: !0, roundLengths: !1, touchRatio: 1, touchAngle: 45, simulateTouch: !0, shortSwipes: !0, longSwipes: !0, longSwipesRatio: .5, longSwipesMs: 300, followFinger: !0, allowTouchMove: !0, threshold: 5, touchMoveStopPropagation: !1, touchStartPreventDefault: !0, touchStartForcePreventDefault: !1, touchReleaseOnEdges: !1, uniqueNavElements: !0, resistance: !0, resistanceRatio: .85, watchSlidesProgress: !1, grabCursor: !1, preventClicks: !0, preventClicksPropagation: !0, slideToClickedSlide: !1, loop: !1, loopAddBlankSlides: !0, loopAdditionalSlides: 0, loopPreventsSliding: !0, rewind: !1, allowSlidePrev: !0, allowSlideNext: !0, swipeHandler: null, noSwiping: !0, noSwipingClass: "swiper-no-swiping", noSwipingSelector: null, passiveListeners: !0, maxBackfaceHiddenSlides: 10, containerModifierClass: "swiper-", slideClass: "swiper-slide", slideBlankClass: "swiper-slide-blank", slideActiveClass: "swiper-slide-active", slideVisibleClass: "swiper-slide-visible", slideFullyVisibleClass: "swiper-slide-fully-visible", slideNextClass: "swiper-slide-next", slidePrevClass: "swiper-slide-prev", wrapperClass: "swiper-wrapper", lazyPreloaderClass: "swiper-lazy-preloader", lazyPreloadPrevNext: 0, runCallbacksOnInit: !0, _emitClasses: !1 }; function $(e, t) { return function (i) { void 0 === i && (i = {}); const n = Object.keys(i)[0], r = i[n]; "object" == typeof r && null !== r ? (!0 === e[n] && (e[n] = { enabled: !0 }), "navigation" === n && e[n] && e[n].enabled && !e[n].prevEl && !e[n].nextEl && (e[n].auto = !0), ["pagination", "scrollbar"].indexOf(n) >= 0 && e[n] && e[n].enabled && !e[n].el && (e[n].auto = !0), n in e && "enabled" in r ? ("object" != typeof e[n] || "enabled" in e[n] || (e[n].enabled = !0), e[n] || (e[n] = { enabled: !1 }), d(t, i)) : d(t, i)) : d(t, i) } } const U = { eventsEmitter: { on(e, t, i) { const n = this; if (!n.eventsListeners || n.destroyed) return n; if ("function" != typeof t) return n; const r = i ? "unshift" : "push"; return e.split(" ").forEach(e => { n.eventsListeners[e] || (n.eventsListeners[e] = []), n.eventsListeners[e][r](t) }), n }, once(e, t, i) { const n = this; if (!n.eventsListeners || n.destroyed) return n; if ("function" != typeof t) return n; function r() { n.off(e, r), r.__emitterProxy && delete r.__emitterProxy; for (var i = arguments.length, s = new Array(i), o = 0; o < i; o++)s[o] = arguments[o]; t.apply(n, s) } return r.__emitterProxy = t, n.on(e, r, i) }, onAny(e, t) { const i = this; if (!i.eventsListeners || i.destroyed) return i; if ("function" != typeof e) return i; const n = t ? "unshift" : "push"; return i.eventsAnyListeners.indexOf(e) < 0 && i.eventsAnyListeners[n](e), i }, offAny(e) { const t = this; if (!t.eventsListeners || t.destroyed) return t; if (!t.eventsAnyListeners) return t; const i = t.eventsAnyListeners.indexOf(e); return i >= 0 && t.eventsAnyListeners.splice(i, 1), t }, off(e, t) { const i = this; return !i.eventsListeners || i.destroyed ? i : i.eventsListeners ? (e.split(" ").forEach(e => { void 0 === t ? i.eventsListeners[e] = [] : i.eventsListeners[e] && i.eventsListeners[e].forEach((n, r) => { (n === t || n.__emitterProxy && n.__emitterProxy === t) && i.eventsListeners[e].splice(r, 1) }) }), i) : i }, emit() { const e = this; if (!e.eventsListeners || e.destroyed) return e; if (!e.eventsListeners) return e; let t, i, n; for (var r = arguments.length, s = new Array(r), o = 0; o < r; o++)s[o] = arguments[o]; return "string" == typeof s[0] || Array.isArray(s[0]) ? (t = s[0], i = s.slice(1, s.length), n = e) : (t = s[0].events, i = s[0].data, n = s[0].context || e), i.unshift(n), (Array.isArray(t) ? t : t.split(" ")).forEach(t => { e.eventsAnyListeners && e.eventsAnyListeners.length && e.eventsAnyListeners.forEach(e => { e.apply(n, [t, ...i]) }), e.eventsListeners && e.eventsListeners[t] && e.eventsListeners[t].forEach(e => { e.apply(n, i) }) }), e } }, update: { updateSize: function () { const e = this; let t, i; const n = e.el; t = void 0 !== e.params.width && null !== e.params.width ? e.params.width : n.clientWidth, i = void 0 !== e.params.height && null !== e.params.height ? e.params.height : n.clientHeight, 0 === t && e.isHorizontal() || 0 === i && e.isVertical() || (t = t - parseInt(b(n, "padding-left") || 0, 10) - parseInt(b(n, "padding-right") || 0, 10), i = i - parseInt(b(n, "padding-top") || 0, 10) - parseInt(b(n, "padding-bottom") || 0, 10), Number.isNaN(t) && (t = 0), Number.isNaN(i) && (i = 0), Object.assign(e, { width: t, height: i, size: e.isHorizontal() ? t : i })) }, updateSlides: function () { const e = this; function t(t, i) { return parseFloat(t.getPropertyValue(e.getDirectionLabel(i)) || 0) } const i = e.params, { wrapperEl: n, slidesEl: r, size: s, rtlTranslate: o, wrongRTL: a } = e, l = e.virtual && i.virtual.enabled, u = l ? e.virtual.slides.length : e.slides.length, c = m(r, `.${e.params.slideClass}, swiper-slide`), d = l ? e.virtual.slides.length : c.length; let f = []; const h = [], g = []; let v = i.slidesOffsetBefore; "function" == typeof v && (v = i.slidesOffsetBefore.call(e)); let y = i.slidesOffsetAfter; "function" == typeof y && (y = i.slidesOffsetAfter.call(e)); const w = e.snapGrid.length, D = e.slidesGrid.length; let _ = i.spaceBetween, E = -v, T = 0, S = 0; if (void 0 === s) return; "string" == typeof _ && _.indexOf("%") >= 0 ? _ = parseFloat(_.replace("%", "")) / 100 * s : "string" == typeof _ && (_ = parseFloat(_)), e.virtualSize = -_, c.forEach(e => { o ? e.style.marginLeft = "" : e.style.marginRight = "", e.style.marginBottom = "", e.style.marginTop = "" }), i.centeredSlides && i.cssMode && (p(n, "--swiper-centered-offset-before", ""), p(n, "--swiper-centered-offset-after", "")); const C = i.grid && i.grid.rows > 1 && e.grid; let M; C ? e.grid.initSlides(c) : e.grid && e.grid.unsetSlides(); const k = "auto" === i.slidesPerView && i.breakpoints && Object.keys(i.breakpoints).filter(e => void 0 !== i.breakpoints[e].slidesPerView).length > 0; for (let n = 0; n < d; n += 1) { let r; if (M = 0, c[n] && (r = c[n]), C && e.grid.updateSlide(n, r, c), !c[n] || "none" !== b(r, "display")) { if ("auto" === i.slidesPerView) { k && (c[n].style[e.getDirectionLabel("width")] = ""); const s = getComputedStyle(r), o = r.style.transform, a = r.style.webkitTransform; if (o && (r.style.transform = "none"), a && (r.style.webkitTransform = "none"), i.roundLengths) M = e.isHorizontal() ? x(r, "width", !0) : x(r, "height", !0); else { const e = t(s, "width"), i = t(s, "padding-left"), n = t(s, "padding-right"), o = t(s, "margin-left"), a = t(s, "margin-right"), l = s.getPropertyValue("box-sizing"); if (l && "border-box" === l) M = e + o + a; else { const { clientWidth: t, offsetWidth: s } = r; M = e + i + n + o + a + (s - t) } } o && (r.style.transform = o), a && (r.style.webkitTransform = a), i.roundLengths && (M = Math.floor(M)) } else M = (s - (i.slidesPerView - 1) * _) / i.slidesPerView, i.roundLengths && (M = Math.floor(M)), c[n] && (c[n].style[e.getDirectionLabel("width")] = M + "px"); c[n] && (c[n].swiperSlideSize = M), g.push(M), i.centeredSlides ? (E = E + M / 2 + T / 2 + _, 0 === T && 0 !== n && (E = E - s / 2 - _), 0 === n && (E = E - s / 2 - _), Math.abs(E) < .001 && (E = 0), i.roundLengths && (E = Math.floor(E)), S % i.slidesPerGroup == 0 && f.push(E), h.push(E)) : (i.roundLengths && (E = Math.floor(E)), (S - Math.min(e.params.slidesPerGroupSkip, S)) % e.params.slidesPerGroup == 0 && f.push(E), h.push(E), E = E + M + _), e.virtualSize += M + _, T = M, S += 1 } } if (e.virtualSize = Math.max(e.virtualSize, s) + y, o && a && ("slide" === i.effect || "coverflow" === i.effect) && (n.style.width = e.virtualSize + _ + "px"), i.setWrapperSize && (n.style[e.getDirectionLabel("width")] = e.virtualSize + _ + "px"), C && e.grid.updateWrapperSize(M, f), !i.centeredSlides) { const t = []; for (let n = 0; n < f.length; n += 1) { let r = f[n]; i.roundLengths && (r = Math.floor(r)), f[n] <= e.virtualSize - s && t.push(r) } f = t, Math.floor(e.virtualSize - s) - Math.floor(f[f.length - 1]) > 1 && f.push(e.virtualSize - s) } if (l && i.loop) { const t = g[0] + _; if (i.slidesPerGroup > 1) { const n = Math.ceil((e.virtual.slidesBefore + e.virtual.slidesAfter) / i.slidesPerGroup), r = t * i.slidesPerGroup; for (let e = 0; e < n; e += 1)f.push(f[f.length - 1] + r) } for (let n = 0; n < e.virtual.slidesBefore + e.virtual.slidesAfter; n += 1)1 === i.slidesPerGroup && f.push(f[f.length - 1] + t), h.push(h[h.length - 1] + t), e.virtualSize += t } if (0 === f.length && (f = [0]), 0 !== _) { const t = e.isHorizontal() && o ? "marginLeft" : e.getDirectionLabel("marginRight"); c.filter((e, t) => !(i.cssMode && !i.loop) || t !== c.length - 1).forEach(e => { e.style[t] = _ + "px" }) } if (i.centeredSlides && i.centeredSlidesBounds) { let e = 0; g.forEach(t => { e += t + (_ || 0) }), e -= _; const t = e - s; f = f.map(e => e <= 0 ? -v : e > t ? t + y : e) } if (i.centerInsufficientSlides) { let e = 0; if (g.forEach(t => { e += t + (_ || 0) }), e -= _, e < s) { const t = (s - e) / 2; f.forEach((e, i) => { f[i] = e - t }), h.forEach((e, i) => { h[i] = e + t }) } } if (Object.assign(e, { slides: c, snapGrid: f, slidesGrid: h, slidesSizesGrid: g }), i.centeredSlides && i.cssMode && !i.centeredSlidesBounds) { p(n, "--swiper-centered-offset-before", -f[0] + "px"), p(n, "--swiper-centered-offset-after", e.size / 2 - g[g.length - 1] / 2 + "px"); const t = -e.snapGrid[0], i = -e.slidesGrid[0]; e.snapGrid = e.snapGrid.map(e => e + t), e.slidesGrid = e.slidesGrid.map(e => e + i) } if (d !== u && e.emit("slidesLengthChange"), f.length !== w && (e.params.watchOverflow && e.checkOverflow(), e.emit("snapGridLengthChange")), h.length !== D && e.emit("slidesGridLengthChange"), i.watchSlidesProgress && e.updateSlidesOffset(), e.emit("slidesUpdated"), !(l || i.cssMode || "slide" !== i.effect && "fade" !== i.effect)) { const t = i.containerModifierClass + "backface-hidden", n = e.el.classList.contains(t); d <= i.maxBackfaceHiddenSlides ? n || e.el.classList.add(t) : n && e.el.classList.remove(t) } }, updateAutoHeight: function (e) { const t = this, i = [], n = t.virtual && t.params.virtual.enabled; let r, s = 0; "number" == typeof e ? t.setTransition(e) : !0 === e && t.setTransition(t.params.speed); const o = e => n ? t.slides[t.getSlideIndexByData(e)] : t.slides[e]; if ("auto" !== t.params.slidesPerView && t.params.slidesPerView > 1) if (t.params.centeredSlides) (t.visibleSlides || []).forEach(e => { i.push(e) }); else for (r = 0; r < Math.ceil(t.params.slidesPerView); r += 1) { const e = t.activeIndex + r; if (e > t.slides.length && !n) break; i.push(o(e)) } else i.push(o(t.activeIndex)); for (r = 0; r < i.length; r += 1)if (void 0 !== i[r]) { const e = i[r].offsetHeight; s = e > s ? e : s } (s || 0 === s) && (t.wrapperEl.style.height = s + "px") }, updateSlidesOffset: function () { const e = this, t = e.slides, i = e.isElement ? e.isHorizontal() ? e.wrapperEl.offsetLeft : e.wrapperEl.offsetTop : 0; for (let n = 0; n < t.length; n += 1)t[n].swiperSlideOffset = (e.isHorizontal() ? t[n].offsetLeft : t[n].offsetTop) - i - e.cssOverflowAdjustment() }, updateSlidesProgress: function (e) { void 0 === e && (e = this && this.translate || 0); const t = this, i = t.params, { slides: n, rtlTranslate: r, snapGrid: s } = t; if (0 === n.length) return; void 0 === n[0].swiperSlideOffset && t.updateSlidesOffset(); let o = -e; r && (o = e), n.forEach(e => { e.classList.remove(i.slideVisibleClass, i.slideFullyVisibleClass) }), t.visibleSlidesIndexes = [], t.visibleSlides = []; let a = i.spaceBetween; "string" == typeof a && a.indexOf("%") >= 0 ? a = parseFloat(a.replace("%", "")) / 100 * t.size : "string" == typeof a && (a = parseFloat(a)); for (let e = 0; e < n.length; e += 1) { const l = n[e]; let u = l.swiperSlideOffset; i.cssMode && i.centeredSlides && (u -= n[0].swiperSlideOffset); const c = (o + (i.centeredSlides ? t.minTranslate() : 0) - u) / (l.swiperSlideSize + a), d = (o - s[0] + (i.centeredSlides ? t.minTranslate() : 0) - u) / (l.swiperSlideSize + a), p = -(o - u), f = p + t.slidesSizesGrid[e], h = p >= 0 && p <= t.size - t.slidesSizesGrid[e]; (p >= 0 && p < t.size - 1 || f > 1 && f <= t.size || p <= 0 && f >= t.size) && (t.visibleSlides.push(l), t.visibleSlidesIndexes.push(e), n[e].classList.add(i.slideVisibleClass)), h && n[e].classList.add(i.slideFullyVisibleClass), l.progress = r ? -c : c, l.originalProgress = r ? -d : d } }, updateProgress: function (e) { const t = this; if (void 0 === e) { const i = t.rtlTranslate ? -1 : 1; e = t && t.translate && t.translate * i || 0 } const i = t.params, n = t.maxTranslate() - t.minTranslate(); let { progress: r, isBeginning: s, isEnd: o, progressLoop: a } = t; const l = s, u = o; if (0 === n) r = 0, s = !0, o = !0; else { r = (e - t.minTranslate()) / n; const i = Math.abs(e - t.minTranslate()) < 1, a = Math.abs(e - t.maxTranslate()) < 1; s = i || r <= 0, o = a || r >= 1, i && (r = 0), a && (r = 1) } if (i.loop) { const i = t.getSlideIndexByData(0), n = t.getSlideIndexByData(t.slides.length - 1), r = t.slidesGrid[i], s = t.slidesGrid[n], o = t.slidesGrid[t.slidesGrid.length - 1], l = Math.abs(e); a = l >= r ? (l - r) / o : (l + o - s) / o, a > 1 && (a -= 1) } Object.assign(t, { progress: r, progressLoop: a, isBeginning: s, isEnd: o }), (i.watchSlidesProgress || i.centeredSlides && i.autoHeight) && t.updateSlidesProgress(e), s && !l && t.emit("reachBeginning toEdge"), o && !u && t.emit("reachEnd toEdge"), (l && !s || u && !o) && t.emit("fromEdge"), t.emit("progress", r) }, updateSlidesClasses: function () { const e = this, { slides: t, params: i, slidesEl: n, activeIndex: r } = e, s = e.virtual && i.virtual.enabled, o = e.grid && i.grid && i.grid.rows > 1, a = e => m(n, `.${i.slideClass}${e}, swiper-slide${e}`)[0]; let l, u, c; if (s) if (i.loop) { let t = r - e.virtual.slidesBefore; t < 0 && (t = e.virtual.slides.length + t), t >= e.virtual.slides.length && (t -= e.virtual.slides.length), l = a(`[data-swiper-slide-index="${t}"]`) } else l = a(`[data-swiper-slide-index="${r}"]`); else o ? (l = t.filter(e => e.column === r)[0], c = t.filter(e => e.column === r + 1)[0], u = t.filter(e => e.column === r - 1)[0]) : l = t[r]; l && (o || (c = function (e, t) { const i = []; for (; e.nextElementSibling;) { const n = e.nextElementSibling; t ? n.matches(t) && i.push(n) : i.push(n), e = n } return i }(l, `.${i.slideClass}, swiper-slide`)[0], i.loop && !c && (c = t[0]), u = function (e, t) { const i = []; for (; e.previousElementSibling;) { const n = e.previousElementSibling; t ? n.matches(t) && i.push(n) : i.push(n), e = n } return i }(l, `.${i.slideClass}, swiper-slide`)[0], i.loop && 0 === !u && (u = t[t.length - 1]))), t.forEach(e => { A(e, e === l, i.slideActiveClass), A(e, e === c, i.slideNextClass), A(e, e === u, i.slidePrevClass) }), e.emitSlidesClasses() }, updateActiveIndex: function (e) { const t = this, i = t.rtlTranslate ? t.translate : -t.translate, { snapGrid: n, params: r, activeIndex: s, realIndex: o, snapIndex: a } = t; let l, u = e; const c = e => { let i = e - t.virtual.slidesBefore; return i < 0 && (i = t.virtual.slides.length + i), i >= t.virtual.slides.length && (i -= t.virtual.slides.length), i }; if (void 0 === u && (u = function (e) { const { slidesGrid: t, params: i } = e, n = e.rtlTranslate ? e.translate : -e.translate; let r; for (let e = 0; e < t.length; e += 1)void 0 !== t[e + 1] ? n >= t[e] && n < t[e + 1] - (t[e + 1] - t[e]) / 2 ? r = e : n >= t[e] && n < t[e + 1] && (r = e + 1) : n >= t[e] && (r = e); return i.normalizeSlideIndex && (r < 0 || void 0 === r) && (r = 0), r }(t)), n.indexOf(i) >= 0) l = n.indexOf(i); else { const e = Math.min(r.slidesPerGroupSkip, u); l = e + Math.floor((u - e) / r.slidesPerGroup) } if (l >= n.length && (l = n.length - 1), u === s && !t.params.loop) return void (l !== a && (t.snapIndex = l, t.emit("snapIndexChange"))); if (u === s && t.params.loop && t.virtual && t.params.virtual.enabled) return void (t.realIndex = c(u)); const d = t.grid && r.grid && r.grid.rows > 1; let p; if (t.virtual && r.virtual.enabled && r.loop) p = c(u); else if (d) { const e = t.slides.filter(e => e.column === u)[0]; let i = parseInt(e.getAttribute("data-swiper-slide-index"), 10); Number.isNaN(i) && (i = Math.max(t.slides.indexOf(e), 0)), p = Math.floor(i / r.grid.rows) } else if (t.slides[u]) { const e = t.slides[u].getAttribute("data-swiper-slide-index"); p = e ? parseInt(e, 10) : u } else p = u; Object.assign(t, { previousSnapIndex: a, snapIndex: l, previousRealIndex: o, realIndex: p, previousIndex: s, activeIndex: u }), t.initialized && L(t), t.emit("activeIndexChange"), t.emit("snapIndexChange"), (t.initialized || t.params.runCallbacksOnInit) && (o !== p && t.emit("realIndexChange"), t.emit("slideChange")) }, updateClickedSlide: function (e, t) { const i = this, n = i.params; let r = e.closest(`.${n.slideClass}, swiper-slide`); !r && i.isElement && t && t.length > 1 && t.includes(e) && [...t.slice(t.indexOf(e) + 1, t.length)].forEach(e => { !r && e.matches && e.matches(`.${n.slideClass}, swiper-slide`) && (r = e) }); let s, o = !1; if (r) for (let e = 0; e < i.slides.length; e += 1)if (i.slides[e] === r) { o = !0, s = e; break } if (!r || !o) return i.clickedSlide = void 0, void (i.clickedIndex = void 0); i.clickedSlide = r, i.virtual && i.params.virtual.enabled ? i.clickedIndex = parseInt(r.getAttribute("data-swiper-slide-index"), 10) : i.clickedIndex = s, n.slideToClickedSlide && void 0 !== i.clickedIndex && i.clickedIndex !== i.activeIndex && i.slideToClickedSlide() } }, translate: { getTranslate: function (e) { void 0 === e && (e = this.isHorizontal() ? "x" : "y"); const { params: t, rtlTranslate: i, translate: n, wrapperEl: r } = this; if (t.virtualTranslate) return i ? -n : n; if (t.cssMode) return n; let s = u(r, e); return s += this.cssOverflowAdjustment(), i && (s = -s), s || 0 }, setTranslate: function (e, t) { const i = this, { rtlTranslate: n, params: r, wrapperEl: s, progress: o } = i; let a, l = 0, u = 0; i.isHorizontal() ? l = n ? -e : e : u = e, r.roundLengths && (l = Math.floor(l), u = Math.floor(u)), i.previousTranslate = i.translate, i.translate = i.isHorizontal() ? l : u, r.cssMode ? s[i.isHorizontal() ? "scrollLeft" : "scrollTop"] = i.isHorizontal() ? -l : -u : r.virtualTranslate || (i.isHorizontal() ? l -= i.cssOverflowAdjustment() : u -= i.cssOverflowAdjustment(), s.style.transform = `translate3d(${l}px, ${u}px, 0px)`); const c = i.maxTranslate() - i.minTranslate(); a = 0 === c ? 0 : (e - i.minTranslate()) / c, a !== o && i.updateProgress(e), i.emit("setTranslate", i.translate, t) }, minTranslate: function () { return -this.snapGrid[0] }, maxTranslate: function () { return -this.snapGrid[this.snapGrid.length - 1] }, translateTo: function (e, t, i, n, r) { void 0 === e && (e = 0), void 0 === t && (t = this.params.speed), void 0 === i && (i = !0), void 0 === n && (n = !0); const s = this, { params: o, wrapperEl: a } = s; if (s.animating && o.preventInteractionOnTransition) return !1; const l = s.minTranslate(), u = s.maxTranslate(); let c; if (c = n && e > l ? l : n && e < u ? u : e, s.updateProgress(c), o.cssMode) { const e = s.isHorizontal(); if (0 === t) a[e ? "scrollLeft" : "scrollTop"] = -c; else { if (!s.support.smoothScroll) return f({ swiper: s, targetPosition: -c, side: e ? "left" : "top" }), !0; a.scrollTo({ [e ? "left" : "top"]: -c, behavior: "smooth" }) } return !0 } return 0 === t ? (s.setTransition(0), s.setTranslate(c), i && (s.emit("beforeTransitionStart", t, r), s.emit("transitionEnd"))) : (s.setTransition(t), s.setTranslate(c), i && (s.emit("beforeTransitionStart", t, r), s.emit("transitionStart")), s.animating || (s.animating = !0, s.onTranslateToWrapperTransitionEnd || (s.onTranslateToWrapperTransitionEnd = function (e) { s && !s.destroyed && e.target === this && (s.wrapperEl.removeEventListener("transitionend", s.onTranslateToWrapperTransitionEnd), s.onTranslateToWrapperTransitionEnd = null, delete s.onTranslateToWrapperTransitionEnd, s.animating = !1, i && s.emit("transitionEnd")) }), s.wrapperEl.addEventListener("transitionend", s.onTranslateToWrapperTransitionEnd))), !0 } }, transition: { setTransition: function (e, t) { const i = this; i.params.cssMode || (i.wrapperEl.style.transitionDuration = e + "ms", i.wrapperEl.style.transitionDelay = 0 === e ? "0ms" : ""), i.emit("setTransition", e, t) }, transitionStart: function (e, t) { void 0 === e && (e = !0); const i = this, { params: n } = i; n.cssMode || (n.autoHeight && i.updateAutoHeight(), I({ swiper: i, runCallbacks: e, direction: t, step: "Start" })) }, transitionEnd: function (e, t) { void 0 === e && (e = !0); const i = this, { params: n } = i; i.animating = !1, n.cssMode || (i.setTransition(0), I({ swiper: i, runCallbacks: e, direction: t, step: "End" })) } }, slide: { slideTo: function (e, t, i, n, r) { void 0 === e && (e = 0), void 0 === i && (i = !0), "string" == typeof e && (e = parseInt(e, 10)); const s = this; let o = e; o < 0 && (o = 0); const { params: a, snapGrid: l, slidesGrid: u, previousIndex: c, activeIndex: d, rtlTranslate: p, wrapperEl: h, enabled: m } = s; if (!m && !n && !r || s.destroyed || s.animating && a.preventInteractionOnTransition) return !1; void 0 === t && (t = s.params.speed); const g = Math.min(s.params.slidesPerGroupSkip, o); let v = g + Math.floor((o - g) / s.params.slidesPerGroup); v >= l.length && (v = l.length - 1); const y = -l[v]; if (a.normalizeSlideIndex) for (let e = 0; e < u.length; e += 1) { const t = -Math.floor(100 * y), i = Math.floor(100 * u[e]), n = Math.floor(100 * u[e + 1]); void 0 !== u[e + 1] ? t >= i && t < n - (n - i) / 2 ? o = e : t >= i && t < n && (o = e + 1) : t >= i && (o = e) } if (s.initialized && o !== d) { if (!s.allowSlideNext && (p ? y > s.translate && y > s.minTranslate() : y < s.translate && y < s.minTranslate())) return !1; if (!s.allowSlidePrev && y > s.translate && y > s.maxTranslate() && (d || 0) !== o) return !1 } let b; if (o !== (c || 0) && i && s.emit("beforeSlideChangeStart"), s.updateProgress(y), b = o > d ? "next" : o < d ? "prev" : "reset", p && -y === s.translate || !p && y === s.translate) return s.updateActiveIndex(o), a.autoHeight && s.updateAutoHeight(), s.updateSlidesClasses(), "slide" !== a.effect && s.setTranslate(y), "reset" !== b && (s.transitionStart(i, b), s.transitionEnd(i, b)), !1; if (a.cssMode) { const e = s.isHorizontal(), i = p ? y : -y; if (0 === t) { const t = s.virtual && s.params.virtual.enabled; t && (s.wrapperEl.style.scrollSnapType = "none", s._immediateVirtual = !0), t && !s._cssModeVirtualInitialSet && s.params.initialSlide > 0 ? (s._cssModeVirtualInitialSet = !0, requestAnimationFrame(() => { h[e ? "scrollLeft" : "scrollTop"] = i })) : h[e ? "scrollLeft" : "scrollTop"] = i, t && requestAnimationFrame(() => { s.wrapperEl.style.scrollSnapType = "", s._immediateVirtual = !1 }) } else { if (!s.support.smoothScroll) return f({ swiper: s, targetPosition: i, side: e ? "left" : "top" }), !0; h.scrollTo({ [e ? "left" : "top"]: i, behavior: "smooth" }) } return !0 } return s.setTransition(t), s.setTranslate(y), s.updateActiveIndex(o), s.updateSlidesClasses(), s.emit("beforeTransitionStart", t, n), s.transitionStart(i, b), 0 === t ? s.transitionEnd(i, b) : s.animating || (s.animating = !0, s.onSlideToWrapperTransitionEnd || (s.onSlideToWrapperTransitionEnd = function (e) { s && !s.destroyed && e.target === this && (s.wrapperEl.removeEventListener("transitionend", s.onSlideToWrapperTransitionEnd), s.onSlideToWrapperTransitionEnd = null, delete s.onSlideToWrapperTransitionEnd, s.transitionEnd(i, b)) }), s.wrapperEl.addEventListener("transitionend", s.onSlideToWrapperTransitionEnd)), !0 }, slideToLoop: function (e, t, i, n) { void 0 === e && (e = 0), void 0 === i && (i = !0), "string" == typeof e && (e = parseInt(e, 10)); const r = this; if (r.destroyed) return; void 0 === t && (t = r.params.speed); const s = r.grid && r.params.grid && r.params.grid.rows > 1; let o = e; if (r.params.loop) if (r.virtual && r.params.virtual.enabled) o += r.virtual.slidesBefore; else { let e; if (s) { const t = o * r.params.grid.rows; e = r.slides.filter(e => 1 * e.getAttribute("data-swiper-slide-index") === t)[0].column } else e = r.getSlideIndexByData(o); const t = s ? Math.ceil(r.slides.length / r.params.grid.rows) : r.slides.length, { centeredSlides: i } = r.params; let a = r.params.slidesPerView; "auto" === a ? a = r.slidesPerViewDynamic() : (a = Math.ceil(parseFloat(r.params.slidesPerView, 10)), i && a % 2 == 0 && (a += 1)); let l = t - e < a; if (i && (l = l || e < Math.ceil(a / 2)), n && i && "auto" !== r.params.slidesPerView && !s && (l = !1), l) { const n = i ? e < r.activeIndex ? "prev" : "next" : e - r.activeIndex - 1 < r.params.slidesPerView ? "next" : "prev"; r.loopFix({ direction: n, slideTo: !0, activeSlideIndex: "next" === n ? e + 1 : e - t + 1, slideRealIndex: "next" === n ? r.realIndex : void 0 }) } if (s) { const e = o * r.params.grid.rows; o = r.slides.filter(t => 1 * t.getAttribute("data-swiper-slide-index") === e)[0].column } else o = r.getSlideIndexByData(o) } return requestAnimationFrame(() => { r.slideTo(o, t, i, n) }), r }, slideNext: function (e, t, i) { void 0 === t && (t = !0); const n = this, { enabled: r, params: s, animating: o } = n; if (!r || n.destroyed) return n; void 0 === e && (e = n.params.speed); let a = s.slidesPerGroup; "auto" === s.slidesPerView && 1 === s.slidesPerGroup && s.slidesPerGroupAuto && (a = Math.max(n.slidesPerViewDynamic("current", !0), 1)); const l = n.activeIndex < s.slidesPerGroupSkip ? 1 : a, u = n.virtual && s.virtual.enabled; if (s.loop) { if (o && !u && s.loopPreventsSliding) return !1; if (n.loopFix({ direction: "next" }), n._clientLeft = n.wrapperEl.clientLeft, n.activeIndex === n.slides.length - 1 && s.cssMode) return requestAnimationFrame(() => { n.slideTo(n.activeIndex + l, e, t, i) }), !0 } return s.rewind && n.isEnd ? n.slideTo(0, e, t, i) : n.slideTo(n.activeIndex + l, e, t, i) }, slidePrev: function (e, t, i) { void 0 === t && (t = !0); const n = this, { params: r, snapGrid: s, slidesGrid: o, rtlTranslate: a, enabled: l, animating: u } = n; if (!l || n.destroyed) return n; void 0 === e && (e = n.params.speed); const c = n.virtual && r.virtual.enabled; if (r.loop) { if (u && !c && r.loopPreventsSliding) return !1; n.loopFix({ direction: "prev" }), n._clientLeft = n.wrapperEl.clientLeft } function d(e) { return e < 0 ? -Math.floor(Math.abs(e)) : Math.floor(e) } const p = d(a ? n.translate : -n.translate), f = s.map(e => d(e)); let h = s[f.indexOf(p) - 1]; if (void 0 === h && r.cssMode) { let e; s.forEach((t, i) => { p >= t && (e = i) }), void 0 !== e && (h = s[e > 0 ? e - 1 : e]) } let m = 0; if (void 0 !== h && (m = o.indexOf(h), m < 0 && (m = n.activeIndex - 1), "auto" === r.slidesPerView && 1 === r.slidesPerGroup && r.slidesPerGroupAuto && (m = m - n.slidesPerViewDynamic("previous", !0) + 1, m = Math.max(m, 0))), r.rewind && n.isBeginning) { const r = n.params.virtual && n.params.virtual.enabled && n.virtual ? n.virtual.slides.length - 1 : n.slides.length - 1; return n.slideTo(r, e, t, i) } return r.loop && 0 === n.activeIndex && r.cssMode ? (requestAnimationFrame(() => { n.slideTo(m, e, t, i) }), !0) : n.slideTo(m, e, t, i) }, slideReset: function (e, t, i) { void 0 === t && (t = !0); const n = this; if (!n.destroyed) return void 0 === e && (e = n.params.speed), n.slideTo(n.activeIndex, e, t, i) }, slideToClosest: function (e, t, i, n) { void 0 === t && (t = !0), void 0 === n && (n = .5); const r = this; if (r.destroyed) return; void 0 === e && (e = r.params.speed); let s = r.activeIndex; const o = Math.min(r.params.slidesPerGroupSkip, s), a = o + Math.floor((s - o) / r.params.slidesPerGroup), l = r.rtlTranslate ? r.translate : -r.translate; if (l >= r.snapGrid[a]) { const e = r.snapGrid[a]; l - e > (r.snapGrid[a + 1] - e) * n && (s += r.params.slidesPerGroup) } else { const e = r.snapGrid[a - 1]; l - e <= (r.snapGrid[a] - e) * n && (s -= r.params.slidesPerGroup) } return s = Math.max(s, 0), s = Math.min(s, r.slidesGrid.length - 1), r.slideTo(s, e, t, i) }, slideToClickedSlide: function () { const e = this; if (e.destroyed) return; const { params: t, slidesEl: i } = e, n = "auto" === t.slidesPerView ? e.slidesPerViewDynamic() : t.slidesPerView; let r, s = e.clickedIndex; const o = e.isElement ? "swiper-slide" : "." + t.slideClass; if (t.loop) { if (e.animating) return; r = parseInt(e.clickedSlide.getAttribute("data-swiper-slide-index"), 10), t.centeredSlides ? s < e.loopedSlides - n / 2 || s > e.slides.length - e.loopedSlides + n / 2 ? (e.loopFix(), s = e.getSlideIndex(m(i, `${o}[data-swiper-slide-index="${r}"]`)[0]), a(() => { e.slideTo(s) })) : e.slideTo(s) : s > e.slides.length - n ? (e.loopFix(), s = e.getSlideIndex(m(i, `${o}[data-swiper-slide-index="${r}"]`)[0]), a(() => { e.slideTo(s) })) : e.slideTo(s) } else e.slideTo(s) } }, loop: { loopCreate: function (e) { const t = this, { params: i, slidesEl: n } = t; if (!i.loop || t.virtual && t.params.virtual.enabled) return; const r = () => { m(n, `.${i.slideClass}, swiper-slide`).forEach((e, t) => { e.setAttribute("data-swiper-slide-index", t) }) }, s = t.grid && i.grid && i.grid.rows > 1, o = i.slidesPerGroup * (s ? i.grid.rows : 1), a = t.slides.length % o != 0, l = s && t.slides.length % i.grid.rows != 0, u = e => { for (let n = 0; n < e; n += 1) { const e = t.isElement ? v("swiper-slide", [i.slideBlankClass]) : v("div", [i.slideClass, i.slideBlankClass]); t.slidesEl.append(e) } }; a ? (i.loopAddBlankSlides ? (u(o - t.slides.length % o), t.recalcSlides(), t.updateSlides()) : g("Swiper Loop Warning: The number of slides is not even to slidesPerGroup, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)"), r()) : l ? (i.loopAddBlankSlides ? (u(i.grid.rows - t.slides.length % i.grid.rows), t.recalcSlides(), t.updateSlides()) : g("Swiper Loop Warning: The number of slides is not even to grid.rows, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)"), r()) : r(), t.loopFix({ slideRealIndex: e, direction: i.centeredSlides ? void 0 : "next" }) }, loopFix: function (e) { let { slideRealIndex: t, slideTo: i = !0, direction: n, setTranslate: r, activeSlideIndex: s, byController: o, byMousewheel: a } = void 0 === e ? {} : e; const l = this; if (!l.params.loop) return; l.emit("beforeLoopFix"); const { slides: u, allowSlidePrev: c, allowSlideNext: d, slidesEl: p, params: f } = l, { centeredSlides: h } = f; if (l.allowSlidePrev = !0, l.allowSlideNext = !0, l.virtual && f.virtual.enabled) return i && (f.centeredSlides || 0 !== l.snapIndex ? f.centeredSlides && l.snapIndex < f.slidesPerView ? l.slideTo(l.virtual.slides.length + l.snapIndex, 0, !1, !0) : l.snapIndex === l.snapGrid.length - 1 && l.slideTo(l.virtual.slidesBefore, 0, !1, !0) : l.slideTo(l.virtual.slides.length, 0, !1, !0)), l.allowSlidePrev = c, l.allowSlideNext = d, void l.emit("loopFix"); let m = f.slidesPerView; "auto" === m ? m = l.slidesPerViewDynamic() : (m = Math.ceil(parseFloat(f.slidesPerView, 10)), h && m % 2 == 0 && (m += 1)); const v = f.slidesPerGroupAuto ? m : f.slidesPerGroup; let y = v; y % v != 0 && (y += v - y % v), y += f.loopAdditionalSlides, l.loopedSlides = y; const b = l.grid && f.grid && f.grid.rows > 1; u.length < m + y ? g("Swiper Loop Warning: The number of slides is not enough for loop mode, it will be disabled and not function properly. You need to add more slides (or make duplicates) or lower the values of slidesPerView and slidesPerGroup parameters") : b && "row" === f.grid.fill && g("Swiper Loop Warning: Loop mode is not compatible with grid.fill = `row`"); const w = [], D = []; let _ = l.activeIndex; void 0 === s ? s = l.getSlideIndex(u.filter(e => e.classList.contains(f.slideActiveClass))[0]) : _ = s; const x = "next" === n || !n, E = "prev" === n || !n; let T = 0, S = 0; const C = b ? Math.ceil(u.length / f.grid.rows) : u.length, M = (b ? u[s].column : s) + (h && void 0 === r ? -m / 2 + .5 : 0); if (M < y) { T = Math.max(y - M, v); for (let e = 0; e < y - M; e += 1) { const t = e - Math.floor(e / C) * C; if (b) { const e = C - t - 1; for (let t = u.length - 1; t >= 0; t -= 1)u[t].column === e && w.push(t) } else w.push(C - t - 1) } } else if (M + m > C - y) { S = Math.max(M - (C - 2 * y), v); for (let e = 0; e < S; e += 1) { const t = e - Math.floor(e / C) * C; b ? u.forEach((e, i) => { e.column === t && D.push(i) }) : D.push(t) } } if (l.__preventObserver__ = !0, requestAnimationFrame(() => { l.__preventObserver__ = !1 }), E && w.forEach(e => { u[e].swiperLoopMoveDOM = !0, p.prepend(u[e]), u[e].swiperLoopMoveDOM = !1 }), x && D.forEach(e => { u[e].swiperLoopMoveDOM = !0, p.append(u[e]), u[e].swiperLoopMoveDOM = !1 }), l.recalcSlides(), "auto" === f.slidesPerView ? l.updateSlides() : b && (w.length > 0 && E || D.length > 0 && x) && l.slides.forEach((e, t) => { l.grid.updateSlide(t, e, l.slides) }), f.watchSlidesProgress && l.updateSlidesOffset(), i) if (w.length > 0 && E) { if (void 0 === t) { const e = l.slidesGrid[_], t = l.slidesGrid[_ + T] - e; a ? l.setTranslate(l.translate - t) : (l.slideTo(_ + Math.ceil(T), 0, !1, !0), r && (l.touchEventsData.startTranslate = l.touchEventsData.startTranslate - t, l.touchEventsData.currentTranslate = l.touchEventsData.currentTranslate - t)) } else if (r) { const e = b ? w.length / f.grid.rows : w.length; l.slideTo(l.activeIndex + e, 0, !1, !0), l.touchEventsData.currentTranslate = l.translate } } else if (D.length > 0 && x) if (void 0 === t) { const e = l.slidesGrid[_], t = l.slidesGrid[_ - S] - e; a ? l.setTranslate(l.translate - t) : (l.slideTo(_ - S, 0, !1, !0), r && (l.touchEventsData.startTranslate = l.touchEventsData.startTranslate - t, l.touchEventsData.currentTranslate = l.touchEventsData.currentTranslate - t)) } else { const e = b ? D.length / f.grid.rows : D.length; l.slideTo(l.activeIndex - e, 0, !1, !0) } if (l.allowSlidePrev = c, l.allowSlideNext = d, l.controller && l.controller.control && !o) { const e = { slideRealIndex: t, direction: n, setTranslate: r, activeSlideIndex: s, byController: !0 }; Array.isArray(l.controller.control) ? l.controller.control.forEach(t => { !t.destroyed && t.params.loop && t.loopFix({ ...e, slideTo: t.params.slidesPerView === f.slidesPerView && i }) }) : l.controller.control instanceof l.constructor && l.controller.control.params.loop && l.controller.control.loopFix({ ...e, slideTo: l.controller.control.params.slidesPerView === f.slidesPerView && i }) } l.emit("loopFix") }, loopDestroy: function () { const e = this, { params: t, slidesEl: i } = e; if (!t.loop || e.virtual && e.params.virtual.enabled) return; e.recalcSlides(); const n = []; e.slides.forEach(e => { const t = void 0 === e.swiperSlideIndex ? 1 * e.getAttribute("data-swiper-slide-index") : e.swiperSlideIndex; n[t] = e }), e.slides.forEach(e => { e.removeAttribute("data-swiper-slide-index") }), n.forEach(e => { i.append(e) }), e.recalcSlides(), e.slideTo(e.realIndex, 0) } }, grabCursor: { setGrabCursor: function (e) { const t = this; if (!t.params.simulateTouch || t.params.watchOverflow && t.isLocked || t.params.cssMode) return; const i = "container" === t.params.touchEventsTarget ? t.el : t.wrapperEl; t.isElement && (t.__preventObserver__ = !0), i.style.cursor = "move", i.style.cursor = e ? "grabbing" : "grab", t.isElement && requestAnimationFrame(() => { t.__preventObserver__ = !1 }) }, unsetGrabCursor: function () { const e = this; e.params.watchOverflow && e.isLocked || e.params.cssMode || (e.isElement && (e.__preventObserver__ = !0), e["container" === e.params.touchEventsTarget ? "el" : "wrapperEl"].style.cursor = "", e.isElement && requestAnimationFrame(() => { e.__preventObserver__ = !1 })) } }, events: { attachEvents: function () { const e = this, { params: t } = e; e.onTouchStart = B.bind(e), e.onTouchMove = W.bind(e), e.onTouchEnd = j.bind(e), e.onDocumentTouchStart = q.bind(e), t.cssMode && (e.onScroll = H.bind(e)), e.onClick = R.bind(e), e.onLoad = Y.bind(e), X(e, "on") }, detachEvents: function () { X(this, "off") } }, breakpoints: { setBreakpoint: function () { const e = this, { realIndex: t, initialized: i, params: n, el: r } = e, s = n.breakpoints; if (!s || s && 0 === Object.keys(s).length) return; const o = e.getBreakpoint(s, e.params.breakpointsBase, e.el); if (!o || e.currentBreakpoint === o) return; const a = (o in s ? s[o] : void 0) || e.originalParams, l = G(e, n), u = G(e, a), c = e.params.grabCursor, p = a.grabCursor, f = n.enabled; l && !u ? (r.classList.remove(n.containerModifierClass + "grid", n.containerModifierClass + "grid-column"), e.emitContainerClasses()) : !l && u && (r.classList.add(n.containerModifierClass + "grid"), (a.grid.fill && "column" === a.grid.fill || !a.grid.fill && "column" === n.grid.fill) && r.classList.add(n.containerModifierClass + "grid-column"), e.emitContainerClasses()), c && !p ? e.unsetGrabCursor() : !c && p && e.setGrabCursor(), ["navigation", "pagination", "scrollbar"].forEach(t => { if (void 0 === a[t]) return; const i = n[t] && n[t].enabled, r = a[t] && a[t].enabled; i && !r && e[t].disable(), !i && r && e[t].enable() }); const h = a.direction && a.direction !== n.direction, m = n.loop && (a.slidesPerView !== n.slidesPerView || h), g = n.loop; h && i && e.changeDirection(), d(e.params, a); const v = e.params.enabled, y = e.params.loop; Object.assign(e, { allowTouchMove: e.params.allowTouchMove, allowSlideNext: e.params.allowSlideNext, allowSlidePrev: e.params.allowSlidePrev }), f && !v ? e.disable() : !f && v && e.enable(), e.currentBreakpoint = o, e.emit("_beforeBreakpoint", a), i && (m ? (e.loopDestroy(), e.loopCreate(t), e.updateSlides()) : !g && y ? (e.loopCreate(t), e.updateSlides()) : g && !y && e.loopDestroy()), e.emit("breakpoint", a) }, getBreakpoint: function (e, t, i) { if (void 0 === t && (t = "window"), !e || "container" === t && !i) return; let n = !1; const r = s(), o = "window" === t ? r.innerHeight : i.clientHeight, a = Object.keys(e).map(e => { if ("string" == typeof e && 0 === e.indexOf("@")) { const t = parseFloat(e.substr(1)); return { value: o * t, point: e } } return { value: e, point: e } }); a.sort((e, t) => parseInt(e.value, 10) - parseInt(t.value, 10)); for (let e = 0; e < a.length; e += 1) { const { point: s, value: o } = a[e]; "window" === t ? r.matchMedia(`(min-width: ${o}px)`).matches && (n = s) : o <= i.clientWidth && (n = s) } return n || "max" } }, checkOverflow: { checkOverflow: function () { const e = this, { isLocked: t, params: i } = e, { slidesOffsetBefore: n } = i; if (n) { const t = e.slides.length - 1, i = e.slidesGrid[t] + e.slidesSizesGrid[t] + 2 * n; e.isLocked = e.size > i } else e.isLocked = 1 === e.snapGrid.length; !0 === i.allowSlideNext && (e.allowSlideNext = !e.isLocked), !0 === i.allowSlidePrev && (e.allowSlidePrev = !e.isLocked), t && t !== e.isLocked && (e.isEnd = !1), t !== e.isLocked && e.emit(e.isLocked ? "lock" : "unlock") } }, classes: { addClasses: function () { const e = this, { classNames: t, params: i, rtl: n, el: r, device: s } = e, o = function (e, t) { const i = []; return e.forEach(e => { "object" == typeof e ? Object.keys(e).forEach(n => { e[n] && i.push(t + n) }) : "string" == typeof e && i.push(t + e) }), i }(["initialized", i.direction, { "free-mode": e.params.freeMode && i.freeMode.enabled }, { autoheight: i.autoHeight }, { rtl: n }, { grid: i.grid && i.grid.rows > 1 }, { "grid-column": i.grid && i.grid.rows > 1 && "column" === i.grid.fill }, { android: s.android }, { ios: s.ios }, { "css-mode": i.cssMode }, { centered: i.cssMode && i.centeredSlides }, { "watch-progress": i.watchSlidesProgress }], i.containerModifierClass); t.push(...o), r.classList.add(...t), e.emitContainerClasses() }, removeClasses: function () { const { el: e, classNames: t } = this; e.classList.remove(...t), this.emitContainerClasses() } } }, Q = {}; class K { constructor() { let e, t; for (var i = arguments.length, r = new Array(i), s = 0; s < i; s++)r[s] = arguments[s]; 1 === r.length && r[0].constructor && "Object" === Object.prototype.toString.call(r[0]).slice(8, -1) ? t = r[0] : [e, t] = r, t || (t = {}), t = d({}, t), e && !t.el && (t.el = e); const o = n(); if (t.el && "string" == typeof t.el && o.querySelectorAll(t.el).length > 1) { const e = []; return o.querySelectorAll(t.el).forEach(i => { const n = d({}, t, { el: i }); e.push(new K(n)) }), e } const a = this; a.__swiper__ = !0, a.support = M(), a.device = k({ userAgent: t.userAgent }), a.browser = O(), a.eventsListeners = {}, a.eventsAnyListeners = [], a.modules = [...a.__modules__], t.modules && Array.isArray(t.modules) && a.modules.push(...t.modules); const l = {}; a.modules.forEach(e => { e({ params: t, swiper: a, extendParams: $(t, l), on: a.on.bind(a), once: a.once.bind(a), off: a.off.bind(a), emit: a.emit.bind(a) }) }); const u = d({}, V, l); return a.params = d({}, u, Q, t), a.originalParams = d({}, a.params), a.passedParams = d({}, t), a.params && a.params.on && Object.keys(a.params.on).forEach(e => { a.on(e, a.params.on[e]) }), a.params && a.params.onAny && a.onAny(a.params.onAny), Object.assign(a, { enabled: a.params.enabled, el: e, classNames: [], slides: [], slidesGrid: [], snapGrid: [], slidesSizesGrid: [], isHorizontal: () => "horizontal" === a.params.direction, isVertical: () => "vertical" === a.params.direction, activeIndex: 0, realIndex: 0, isBeginning: !0, isEnd: !1, translate: 0, previousTranslate: 0, progress: 0, velocity: 0, animating: !1, cssOverflowAdjustment() { return Math.trunc(this.translate / 2 ** 23) * 2 ** 23 }, allowSlideNext: a.params.allowSlideNext, allowSlidePrev: a.params.allowSlidePrev, touchEventsData: { isTouched: void 0, isMoved: void 0, allowTouchCallbacks: void 0, touchStartTime: void 0, isScrolling: void 0, currentTranslate: void 0, startTranslate: void 0, allowThresholdMove: void 0, focusableElements: a.params.focusableElements, lastClickTime: 0, clickTimeout: void 0, velocities: [], allowMomentumBounce: void 0, startMoving: void 0, pointerId: null, touchId: null }, allowClick: !0, allowTouchMove: a.params.allowTouchMove, touches: { startX: 0, startY: 0, currentX: 0, currentY: 0, diff: 0 }, imagesToLoad: [], imagesLoaded: 0 }), a.emit("_swiper"), a.params.init && a.init(), a } getDirectionLabel(e) { return this.isHorizontal() ? e : { width: "height", "margin-top": "margin-left", "margin-bottom ": "margin-right", "margin-left": "margin-top", "margin-right": "margin-bottom", "padding-left": "padding-top", "padding-right": "padding-bottom", marginRight: "marginBottom" }[e] } getSlideIndex(e) { const { slidesEl: t, params: i } = this, n = w(m(t, `.${i.slideClass}, swiper-slide`)[0]); return w(e) - n } getSlideIndexByData(e) { return this.getSlideIndex(this.slides.filter(t => 1 * t.getAttribute("data-swiper-slide-index") === e)[0]) } recalcSlides() { const { slidesEl: e, params: t } = this; this.slides = m(e, `.${t.slideClass}, swiper-slide`) } enable() { const e = this; e.enabled || (e.enabled = !0, e.params.grabCursor && e.setGrabCursor(), e.emit("enable")) } disable() { const e = this; e.enabled && (e.enabled = !1, e.params.grabCursor && e.unsetGrabCursor(), e.emit("disable")) } setProgress(e, t) { const i = this; e = Math.min(Math.max(e, 0), 1); const n = i.minTranslate(), r = (i.maxTranslate() - n) * e + n; i.translateTo(r, void 0 === t ? 0 : t), i.updateActiveIndex(), i.updateSlidesClasses() } emitContainerClasses() { const e = this; if (!e.params._emitClasses || !e.el) return; const t = e.el.className.split(" ").filter(t => 0 === t.indexOf("swiper") || 0 === t.indexOf(e.params.containerModifierClass)); e.emit("_containerClasses", t.join(" ")) } getSlideClasses(e) { const t = this; return t.destroyed ? "" : e.className.split(" ").filter(e => 0 === e.indexOf("swiper-slide") || 0 === e.indexOf(t.params.slideClass)).join(" ") } emitSlidesClasses() { const e = this; if (!e.params._emitClasses || !e.el) return; const t = []; e.slides.forEach(i => { const n = e.getSlideClasses(i); t.push({ slideEl: i, classNames: n }), e.emit("_slideClass", i, n) }), e.emit("_slideClasses", t) } slidesPerViewDynamic(e, t) { void 0 === e && (e = "current"), void 0 === t && (t = !1); const { params: i, slides: n, slidesGrid: r, slidesSizesGrid: s, size: o, activeIndex: a } = this; let l = 1; if ("number" == typeof i.slidesPerView) return i.slidesPerView; if (i.centeredSlides) { let e, t = n[a] ? Math.ceil(n[a].swiperSlideSize) : 0; for (let i = a + 1; i < n.length; i += 1)n[i] && !e && (t += Math.ceil(n[i].swiperSlideSize), l += 1, t > o && (e = !0)); for (let i = a - 1; i >= 0; i -= 1)n[i] && !e && (t += n[i].swiperSlideSize, l += 1, t > o && (e = !0)) } else if ("current" === e) for (let e = a + 1; e < n.length; e += 1)(t ? r[e] + s[e] - r[a] < o : r[e] - r[a] < o) && (l += 1); else for (let e = a - 1; e >= 0; e -= 1)r[a] - r[e] < o && (l += 1); return l } update() { const e = this; if (!e || e.destroyed) return; const { snapGrid: t, params: i } = e; function n() { const t = e.rtlTranslate ? -1 * e.translate : e.translate, i = Math.min(Math.max(t, e.maxTranslate()), e.minTranslate()); e.setTranslate(i), e.updateActiveIndex(), e.updateSlidesClasses() } let r; if (i.breakpoints && e.setBreakpoint(), [...e.el.querySelectorAll('[loading="lazy"]')].forEach(t => { t.complete && P(e, t) }), e.updateSize(), e.updateSlides(), e.updateProgress(), e.updateSlidesClasses(), i.freeMode && i.freeMode.enabled && !i.cssMode) n(), i.autoHeight && e.updateAutoHeight(); else { if (("auto" === i.slidesPerView || i.slidesPerView > 1) && e.isEnd && !i.centeredSlides) { const t = e.virtual && i.virtual.enabled ? e.virtual.slides : e.slides; r = e.slideTo(t.length - 1, 0, !1, !0) } else r = e.slideTo(e.activeIndex, 0, !1, !0); r || n() } i.watchOverflow && t !== e.snapGrid && e.checkOverflow(), e.emit("update") } changeDirection(e, t) { void 0 === t && (t = !0); const i = this, n = i.params.direction; return e || (e = "horizontal" === n ? "vertical" : "horizontal"), e === n || "horizontal" !== e && "vertical" !== e || (i.el.classList.remove(`${i.params.containerModifierClass}${n}`), i.el.classList.add(`${i.params.containerModifierClass}${e}`), i.emitContainerClasses(), i.params.direction = e, i.slides.forEach(t => { "vertical" === e ? t.style.width = "" : t.style.height = "" }), i.emit("changeDirection"), t && i.update()), i } changeLanguageDirection(e) { const t = this; t.rtl && "rtl" === e || !t.rtl && "ltr" === e || (t.rtl = "rtl" === e, t.rtlTranslate = "horizontal" === t.params.direction && t.rtl, t.rtl ? (t.el.classList.add(t.params.containerModifierClass + "rtl"), t.el.dir = "rtl") : (t.el.classList.remove(t.params.containerModifierClass + "rtl"), t.el.dir = "ltr"), t.update()) } mount(e) { const t = this; if (t.mounted) return !0; let i = e || t.params.el; if ("string" == typeof i && (i = document.querySelector(i)), !i) return !1; i.swiper = t, i.parentNode && i.parentNode.host && i.parentNode.host.nodeName === t.params.swiperElementNodeName.toUpperCase() && (t.isElement = !0); const n = () => "." + (t.params.wrapperClass || "").trim().split(" ").join("."); let r = i && i.shadowRoot && i.shadowRoot.querySelector ? i.shadowRoot.querySelector(n()) : m(i, n())[0]; return !r && t.params.createElements && (r = v("div", t.params.wrapperClass), i.append(r), m(i, "." + t.params.slideClass).forEach(e => { r.append(e) })), Object.assign(t, { el: i, wrapperEl: r, slidesEl: t.isElement && !i.parentNode.host.slideSlots ? i.parentNode.host : r, hostEl: t.isElement ? i.parentNode.host : i, mounted: !0, rtl: "rtl" === i.dir.toLowerCase() || "rtl" === b(i, "direction"), rtlTranslate: "horizontal" === t.params.direction && ("rtl" === i.dir.toLowerCase() || "rtl" === b(i, "direction")), wrongRTL: "-webkit-box" === b(r, "display") }), !0 } init(e) { const t = this; if (t.initialized) return t; if (!1 === t.mount(e)) return t; t.emit("beforeInit"), t.params.breakpoints && t.setBreakpoint(), t.addClasses(), t.updateSize(), t.updateSlides(), t.params.watchOverflow && t.checkOverflow(), t.params.grabCursor && t.enabled && t.setGrabCursor(), t.params.loop && t.virtual && t.params.virtual.enabled ? t.slideTo(t.params.initialSlide + t.virtual.slidesBefore, 0, t.params.runCallbacksOnInit, !1, !0) : t.slideTo(t.params.initialSlide, 0, t.params.runCallbacksOnInit, !1, !0), t.params.loop && t.loopCreate(), t.attachEvents(); const i = [...t.el.querySelectorAll('[loading="lazy"]')]; return t.isElement && i.push(...t.hostEl.querySelectorAll('[loading="lazy"]')), i.forEach(e => { e.complete ? P(t, e) : e.addEventListener("load", e => { P(t, e.target) }) }), L(t), t.initialized = !0, L(t), t.emit("init"), t.emit("afterInit"), t } destroy(e, t) { void 0 === e && (e = !0), void 0 === t && (t = !0); const i = this, { params: n, el: r, wrapperEl: s, slides: o } = i; return void 0 === i.params || i.destroyed || (i.emit("beforeDestroy"), i.initialized = !1, i.detachEvents(), n.loop && i.loopDestroy(), t && (i.removeClasses(), r.removeAttribute("style"), s.removeAttribute("style"), o && o.length && o.forEach(e => { e.classList.remove(n.slideVisibleClass, n.slideFullyVisibleClass, n.slideActiveClass, n.slideNextClass, n.slidePrevClass), e.removeAttribute("style"), e.removeAttribute("data-swiper-slide-index") })), i.emit("destroy"), Object.keys(i.eventsListeners).forEach(e => { i.off(e) }), !1 !== e && (i.el.swiper = null, function (e) { const t = e; Object.keys(t).forEach(e => { try { t[e] = null } catch (e) { } try { delete t[e] } catch (e) { } }) }(i)), i.destroyed = !0), null } static extendDefaults(e) { d(Q, e) } static get extendedDefaults() { return Q } static get defaults() { return V } static installModule(e) { K.prototype.__modules__ || (K.prototype.__modules__ = []); const t = K.prototype.__modules__; "function" == typeof e && t.indexOf(e) < 0 && t.push(e) } static use(e) { return Array.isArray(e) ? (e.forEach(e => K.installModule(e)), K) : (K.installModule(e), K) } } function J(e, t, i, n) { return e.params.createElements && Object.keys(n).forEach(r => { if (!i[r] && !0 === i.auto) { let s = m(e.el, "." + n[r])[0]; s || (s = v("div", n[r]), s.className = n[r], e.el.append(s)), i[r] = s, t[r] = s } }), i } function Z(e) { return void 0 === e && (e = ""), "." + e.trim().replace(/([\.:!+\/])/g, "\\$1").replace(/ /g, ".") } function ee(e) { const t = this, { params: i, slidesEl: n } = t; i.loop && t.loopDestroy(); const r = e => { if ("string" == typeof e) { const t = document.createElement("div"); t.innerHTML = e, n.append(t.children[0]), t.innerHTML = "" } else n.append(e) }; if ("object" == typeof e && "length" in e) for (let t = 0; t < e.length; t += 1)e[t] && r(e[t]); else r(e); t.recalcSlides(), i.loop && t.loopCreate(), i.observer && !t.isElement || t.update() } function te(e) { const t = this, { params: i, activeIndex: n, slidesEl: r } = t; i.loop && t.loopDestroy(); let s = n + 1; const o = e => { if ("string" == typeof e) { const t = document.createElement("div"); t.innerHTML = e, r.prepend(t.children[0]), t.innerHTML = "" } else r.prepend(e) }; if ("object" == typeof e && "length" in e) { for (let t = 0; t < e.length; t += 1)e[t] && o(e[t]); s = n + e.length } else o(e); t.recalcSlides(), i.loop && t.loopCreate(), i.observer && !t.isElement || t.update(), t.slideTo(s, 0, !1) } function ie(e, t) { const i = this, { params: n, activeIndex: r, slidesEl: s } = i; let o = r; n.loop && (o -= i.loopedSlides, i.loopDestroy(), i.recalcSlides()); const a = i.slides.length; if (e <= 0) return void i.prependSlide(t); if (e >= a) return void i.appendSlide(t); let l = o > e ? o + 1 : o; const u = []; for (let t = a - 1; t >= e; t -= 1) { const e = i.slides[t]; e.remove(), u.unshift(e) } if ("object" == typeof t && "length" in t) { for (let e = 0; e < t.length; e += 1)t[e] && s.append(t[e]); l = o > e ? o + t.length : o } else s.append(t); for (let e = 0; e < u.length; e += 1)s.append(u[e]); i.recalcSlides(), n.loop && i.loopCreate(), n.observer && !i.isElement || i.update(), n.loop ? i.slideTo(l + i.loopedSlides, 0, !1) : i.slideTo(l, 0, !1) } function ne(e) { const t = this, { params: i, activeIndex: n } = t; let r = n; i.loop && (r -= t.loopedSlides, t.loopDestroy()); let s, o = r; if ("object" == typeof e && "length" in e) { for (let i = 0; i < e.length; i += 1)s = e[i], t.slides[s] && t.slides[s].remove(), s < o && (o -= 1); o = Math.max(o, 0) } else s = e, t.slides[s] && t.slides[s].remove(), s < o && (o -= 1), o = Math.max(o, 0); t.recalcSlides(), i.loop && t.loopCreate(), i.observer && !t.isElement || t.update(), i.loop ? t.slideTo(o + t.loopedSlides, 0, !1) : t.slideTo(o, 0, !1) } function re() { const e = this, t = []; for (let i = 0; i < e.slides.length; i += 1)t.push(i); e.removeSlide(t) } function se(e) { const { effect: t, swiper: i, on: n, setTranslate: r, setTransition: s, overwriteParams: o, perspective: a, recreateShadows: l, getEffectParams: u } = e; let c; n("beforeInit", () => { if (i.params.effect !== t) return; i.classNames.push(`${i.params.containerModifierClass}${t}`), a && a() && i.classNames.push(i.params.containerModifierClass + "3d"); const e = o ? o() : {}; Object.assign(i.params, e), Object.assign(i.originalParams, e) }), n("setTranslate", () => { i.params.effect === t && r() }), n("setTransition", (e, n) => { i.params.effect === t && s(n) }), n("transitionEnd", () => { if (i.params.effect === t && l) { if (!u || !u().slideShadows) return; i.slides.forEach(e => { e.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach(e => e.remove()) }), l() } }), n("virtualUpdate", () => { i.params.effect === t && (i.slides.length || (c = !0), requestAnimationFrame(() => { c && i.slides && i.slides.length && (r(), c = !1) })) }) } function oe(e, t) { const i = h(t); return i !== t && (i.style.backfaceVisibility = "hidden", i.style["-webkit-backface-visibility"] = "hidden"), i } function ae(e) { let { swiper: t, duration: i, transformElements: n, allSlides: r } = e; const { activeIndex: s } = t; if (t.params.virtualTranslate && 0 !== i) { let e, i = !1; e = r ? n : n.filter(e => { const i = e.classList.contains("swiper-slide-transform") ? (e => e.parentElement ? e.parentElement : t.slides.filter(t => t.shadowRoot && t.shadowRoot === e.parentNode)[0])(e) : e; return t.getSlideIndex(i) === s }), e.forEach(e => { _(e, () => { if (i) return; if (!t || t.destroyed) return; i = !0, t.animating = !1; const e = new window.CustomEvent("transitionend", { bubbles: !0, cancelable: !0 }); t.wrapperEl.dispatchEvent(e) }) }) } } function le(e, t, i) { const n = `swiper-slide-shadow${i ? "-" + i : ""}${e ? " swiper-slide-shadow-" + e : ""}`, r = h(t); let s = r.querySelector("." + n.split(" ").join(".")); return s || (s = v("div", n.split(" ")), r.append(s)), s } Object.keys(U).forEach(e => { Object.keys(U[e]).forEach(t => { K.prototype[t] = U[e][t] }) }), K.use([function (e) { let { swiper: t, on: i, emit: n } = e; const r = s(); let o = null, a = null; const l = () => { t && !t.destroyed && t.initialized && (n("beforeResize"), n("resize")) }, u = () => { t && !t.destroyed && t.initialized && n("orientationchange") }; i("init", () => { t.params.resizeObserver && void 0 !== r.ResizeObserver ? t && !t.destroyed && t.initialized && (o = new ResizeObserver(e => { a = r.requestAnimationFrame(() => { const { width: i, height: n } = t; let r = i, s = n; e.forEach(e => { let { contentBoxSize: i, contentRect: n, target: o } = e; o && o !== t.el || (r = n ? n.width : (i[0] || i).inlineSize, s = n ? n.height : (i[0] || i).blockSize) }), r === i && s === n || l() }) }), o.observe(t.el)) : (r.addEventListener("resize", l), r.addEventListener("orientationchange", u)) }), i("destroy", () => { a && r.cancelAnimationFrame(a), o && o.unobserve && t.el && (o.unobserve(t.el), o = null), r.removeEventListener("resize", l), r.removeEventListener("orientationchange", u) }) }, function (e) { let { swiper: t, extendParams: i, on: n, emit: r } = e; const o = [], a = s(), l = function (e, i) { void 0 === i && (i = {}); const n = new (a.MutationObserver || a.WebkitMutationObserver)(e => { if (t.__preventObserver__) return; if (1 === e.length) return void r("observerUpdate", e[0]); const i = function () { r("observerUpdate", e[0]) }; a.requestAnimationFrame ? a.requestAnimationFrame(i) : a.setTimeout(i, 0) }); n.observe(e, { attributes: void 0 === i.attributes || i.attributes, childList: void 0 === i.childList || i.childList, characterData: void 0 === i.characterData || i.characterData }), o.push(n) }; i({ observer: !1, observeParents: !1, observeSlideChildren: !1 }), n("init", () => { if (t.params.observer) { if (t.params.observeParents) { const e = D(t.hostEl); for (let t = 0; t < e.length; t += 1)l(e[t]) } l(t.hostEl, { childList: t.params.observeSlideChildren }), l(t.wrapperEl, { attributes: !1 }) } }), n("destroy", () => { o.forEach(e => { e.disconnect() }), o.splice(0, o.length) }) }]); const ue = [function (e) { let t, { swiper: i, extendParams: r, on: s, emit: o } = e; r({ virtual: { enabled: !1, slides: [], cache: !0, renderSlide: null, renderExternal: null, renderExternalUpdate: !0, addSlidesBefore: 0, addSlidesAfter: 0 } }); const a = n(); i.virtual = { cache: {}, from: void 0, to: void 0, slides: [], offset: 0, slidesGrid: [] }; const l = a.createElement("div"); function u(e, t) { const n = i.params.virtual; if (n.cache && i.virtual.cache[t]) return i.virtual.cache[t]; let r; return n.renderSlide ? (r = n.renderSlide.call(i, e, t), "string" == typeof r && (l.innerHTML = r, r = l.children[0])) : r = i.isElement ? v("swiper-slide") : v("div", i.params.slideClass), r.setAttribute("data-swiper-slide-index", t), n.renderSlide || (r.innerHTML = e), n.cache && (i.virtual.cache[t] = r), r } function c(e, t) { const { slidesPerView: n, slidesPerGroup: r, centeredSlides: s, loop: a, initialSlide: l } = i.params; if (t && !a && l > 0) return; const { addSlidesBefore: c, addSlidesAfter: d } = i.params.virtual, { from: p, to: f, slides: h, slidesGrid: g, offset: v } = i.virtual; i.params.cssMode || i.updateActiveIndex(); const y = i.activeIndex || 0; let b, w, D; b = i.rtlTranslate ? "right" : i.isHorizontal() ? "left" : "top", s ? (w = Math.floor(n / 2) + r + d, D = Math.floor(n / 2) + r + c) : (w = n + (r - 1) + d, D = (a ? n : r) + c); let _ = y - D, x = y + w; a || (_ = Math.max(_, 0), x = Math.min(x, h.length - 1)); let E = (i.slidesGrid[_] || 0) - (i.slidesGrid[0] || 0); function T() { i.updateSlides(), i.updateProgress(), i.updateSlidesClasses(), o("virtualUpdate") } if (a && y >= D ? (_ -= D, s || (E += i.slidesGrid[0])) : a && y < D && (_ = -D, s && (E += i.slidesGrid[0])), Object.assign(i.virtual, { from: _, to: x, offset: E, slidesGrid: i.slidesGrid, slidesBefore: D, slidesAfter: w }), p === _ && f === x && !e) return i.slidesGrid !== g && E !== v && i.slides.forEach(e => { e.style[b] = E - Math.abs(i.cssOverflowAdjustment()) + "px" }), i.updateProgress(), void o("virtualUpdate"); if (i.params.virtual.renderExternal) return i.params.virtual.renderExternal.call(i, { offset: E, from: _, to: x, slides: function () { const e = []; for (let t = _; t <= x; t += 1)e.push(h[t]); return e }() }), void (i.params.virtual.renderExternalUpdate ? T() : o("virtualUpdate")); const S = [], C = [], M = e => { let t = e; return e < 0 ? t = h.length + e : t >= h.length && (t -= h.length), t }; if (e) i.slides.filter(e => e.matches(`.${i.params.slideClass}, swiper-slide`)).forEach(e => { e.remove() }); else for (let e = p; e <= f; e += 1)if (e < _ || e > x) { const t = M(e); i.slides.filter(e => e.matches(`.${i.params.slideClass}[data-swiper-slide-index="${t}"], swiper-slide[data-swiper-slide-index="${t}"]`)).forEach(e => { e.remove() }) } const k = a ? -h.length : 0, O = a ? 2 * h.length : h.length; for (let t = k; t < O; t += 1)if (t >= _ && t <= x) { const i = M(t); void 0 === f || e ? C.push(i) : (t > f && C.push(i), t < p && S.push(i)) } if (C.forEach(e => { i.slidesEl.append(u(h[e], e)) }), a) for (let e = S.length - 1; e >= 0; e -= 1) { const t = S[e]; i.slidesEl.prepend(u(h[t], t)) } else S.sort((e, t) => t - e), S.forEach(e => { i.slidesEl.prepend(u(h[e], e)) }); m(i.slidesEl, ".swiper-slide, swiper-slide").forEach(e => { e.style[b] = E - Math.abs(i.cssOverflowAdjustment()) + "px" }), T() } s("beforeInit", () => { if (!i.params.virtual.enabled) return; let e; if (void 0 === i.passedParams.virtual.slides) { const t = [...i.slidesEl.children].filter(e => e.matches(`.${i.params.slideClass}, swiper-slide`)); t && t.length && (i.virtual.slides = [...t], e = !0, t.forEach((e, t) => { e.setAttribute("data-swiper-slide-index", t), i.virtual.cache[t] = e, e.remove() })) } e || (i.virtual.slides = i.params.virtual.slides), i.classNames.push(i.params.containerModifierClass + "virtual"), i.params.watchSlidesProgress = !0, i.originalParams.watchSlidesProgress = !0, c(!1, !0) }), s("setTranslate", () => { i.params.virtual.enabled && (i.params.cssMode && !i._immediateVirtual ? (clearTimeout(t), t = setTimeout(() => { c() }, 100)) : c()) }), s("init update resize", () => { i.params.virtual.enabled && i.params.cssMode && p(i.wrapperEl, "--swiper-virtual-size", i.virtualSize + "px") }), Object.assign(i.virtual, { appendSlide: function (e) { if ("object" == typeof e && "length" in e) for (let t = 0; t < e.length; t += 1)e[t] && i.virtual.slides.push(e[t]); else i.virtual.slides.push(e); c(!0) }, prependSlide: function (e) { const t = i.activeIndex; let n = t + 1, r = 1; if (Array.isArray(e)) { for (let t = 0; t < e.length; t += 1)e[t] && i.virtual.slides.unshift(e[t]); n = t + e.length, r = e.length } else i.virtual.slides.unshift(e); if (i.params.virtual.cache) { const e = i.virtual.cache, t = {}; Object.keys(e).forEach(i => { const n = e[i], s = n.getAttribute("data-swiper-slide-index"); s && n.setAttribute("data-swiper-slide-index", parseInt(s, 10) + r), t[parseInt(i, 10) + r] = n }), i.virtual.cache = t } c(!0), i.slideTo(n, 0) }, removeSlide: function (e) { if (null == e) return; let t = i.activeIndex; if (Array.isArray(e)) for (let n = e.length - 1; n >= 0; n -= 1)i.params.virtual.cache && (delete i.virtual.cache[e[n]], Object.keys(i.virtual.cache).forEach(t => { t > e && (i.virtual.cache[t - 1] = i.virtual.cache[t], i.virtual.cache[t - 1].setAttribute("data-swiper-slide-index", t - 1), delete i.virtual.cache[t]) })), i.virtual.slides.splice(e[n], 1), e[n] < t && (t -= 1), t = Math.max(t, 0); else i.params.virtual.cache && (delete i.virtual.cache[e], Object.keys(i.virtual.cache).forEach(t => { t > e && (i.virtual.cache[t - 1] = i.virtual.cache[t], i.virtual.cache[t - 1].setAttribute("data-swiper-slide-index", t - 1), delete i.virtual.cache[t]) })), i.virtual.slides.splice(e, 1), e < t && (t -= 1), t = Math.max(t, 0); c(!0), i.slideTo(t, 0) }, removeAllSlides: function () { i.virtual.slides = [], i.params.virtual.cache && (i.virtual.cache = {}), c(!0), i.slideTo(0, 0) }, update: c }) }, function (e) { let { swiper: t, extendParams: i, on: r, emit: o } = e; const a = n(), l = s(); function u(e) { if (!t.enabled) return; const { rtlTranslate: i } = t; let n = e; n.originalEvent && (n = n.originalEvent); const r = n.keyCode || n.charCode, s = t.params.keyboard.pageUpDown, u = s && 33 === r, c = s && 34 === r, d = 37 === r, p = 39 === r, f = 38 === r, h = 40 === r; if (!t.allowSlideNext && (t.isHorizontal() && p || t.isVertical() && h || c)) return !1; if (!t.allowSlidePrev && (t.isHorizontal() && d || t.isVertical() && f || u)) return !1; if (!(n.shiftKey || n.altKey || n.ctrlKey || n.metaKey || a.activeElement && a.activeElement.nodeName && ("input" === a.activeElement.nodeName.toLowerCase() || "textarea" === a.activeElement.nodeName.toLowerCase()))) { if (t.params.keyboard.onlyInViewport && (u || c || d || p || f || h)) { let e = !1; if (D(t.el, `.${t.params.slideClass}, swiper-slide`).length > 0 && 0 === D(t.el, "." + t.params.slideActiveClass).length) return; const n = t.el, r = n.clientWidth, s = n.clientHeight, o = l.innerWidth, a = l.innerHeight, u = y(n); i && (u.left -= n.scrollLeft); const c = [[u.left, u.top], [u.left + r, u.top], [u.left, u.top + s], [u.left + r, u.top + s]]; for (let t = 0; t < c.length; t += 1) { const i = c[t]; if (i[0] >= 0 && i[0] <= o && i[1] >= 0 && i[1] <= a) { if (0 === i[0] && 0 === i[1]) continue; e = !0 } } if (!e) return } t.isHorizontal() ? ((u || c || d || p) && (n.preventDefault ? n.preventDefault() : n.returnValue = !1), ((c || p) && !i || (u || d) && i) && t.slideNext(), ((u || d) && !i || (c || p) && i) && t.slidePrev()) : ((u || c || f || h) && (n.preventDefault ? n.preventDefault() : n.returnValue = !1), (c || h) && t.slideNext(), (u || f) && t.slidePrev()), o("keyPress", r) } } function c() { t.keyboard.enabled || (a.addEventListener("keydown", u), t.keyboard.enabled = !0) } function d() { t.keyboard.enabled && (a.removeEventListener("keydown", u), t.keyboard.enabled = !1) } t.keyboard = { enabled: !1 }, i({ keyboard: { enabled: !1, onlyInViewport: !0, pageUpDown: !0 } }), r("init", () => { t.params.keyboard.enabled && c() }), r("destroy", () => { t.keyboard.enabled && d() }), Object.assign(t.keyboard, { enable: c, disable: d }) }, function (e) { let { swiper: t, extendParams: i, on: n, emit: r } = e; const o = s(); let u; i({ mousewheel: { enabled: !1, releaseOnEdges: !1, invert: !1, forceToAxis: !1, sensitivity: 1, eventsTarget: "container", thresholdDelta: null, thresholdTime: null, noMousewheelClass: "swiper-no-mousewheel" } }), t.mousewheel = { enabled: !1 }; let c, d = l(); const p = []; function f() { t.enabled && (t.mouseEntered = !0) } function h() { t.enabled && (t.mouseEntered = !1) } function m(e) { return !(t.params.mousewheel.thresholdDelta && e.delta < t.params.mousewheel.thresholdDelta || t.params.mousewheel.thresholdTime && l() - d < t.params.mousewheel.thresholdTime || !(e.delta >= 6 && l() - d < 60) && (e.direction < 0 ? t.isEnd && !t.params.loop || t.animating || (t.slideNext(), r("scroll", e.raw)) : t.isBeginning && !t.params.loop || t.animating || (t.slidePrev(), r("scroll", e.raw)), d = (new o.Date).getTime(), 1)) } function g(e) { let i = e, n = !0; if (!t.enabled) return; if (e.target.closest("." + t.params.mousewheel.noMousewheelClass)) return; const s = t.params.mousewheel; t.params.cssMode && i.preventDefault(); let o = t.el; "container" !== t.params.mousewheel.eventsTarget && (o = document.querySelector(t.params.mousewheel.eventsTarget)); const d = o && o.contains(i.target); if (!t.mouseEntered && !d && !s.releaseOnEdges) return !0; i.originalEvent && (i = i.originalEvent); let f = 0; const h = t.rtlTranslate ? -1 : 1, g = function (e) { let t = 0, i = 0, n = 0, r = 0; return "detail" in e && (i = e.detail), "wheelDelta" in e && (i = -e.wheelDelta / 120), "wheelDeltaY" in e && (i = -e.wheelDeltaY / 120), "wheelDeltaX" in e && (t = -e.wheelDeltaX / 120), "axis" in e && e.axis === e.HORIZONTAL_AXIS && (t = i, i = 0), n = 10 * t, r = 10 * i, "deltaY" in e && (r = e.deltaY), "deltaX" in e && (n = e.deltaX), e.shiftKey && !n && (n = r, r = 0), (n || r) && e.deltaMode && (1 === e.deltaMode ? (n *= 40, r *= 40) : (n *= 800, r *= 800)), n && !t && (t = n < 1 ? -1 : 1), r && !i && (i = r < 1 ? -1 : 1), { spinX: t, spinY: i, pixelX: n, pixelY: r } }(i); if (s.forceToAxis) if (t.isHorizontal()) { if (!(Math.abs(g.pixelX) > Math.abs(g.pixelY))) return !0; f = -g.pixelX * h } else { if (!(Math.abs(g.pixelY) > Math.abs(g.pixelX))) return !0; f = -g.pixelY } else f = Math.abs(g.pixelX) > Math.abs(g.pixelY) ? -g.pixelX * h : -g.pixelY; if (0 === f) return !0; s.invert && (f = -f); let v = t.getTranslate() + f * s.sensitivity; if (v >= t.minTranslate() && (v = t.minTranslate()), v <= t.maxTranslate() && (v = t.maxTranslate()), n = !!t.params.loop || !(v === t.minTranslate() || v === t.maxTranslate()), n && t.params.nested && i.stopPropagation(), t.params.freeMode && t.params.freeMode.enabled) { const e = { time: l(), delta: Math.abs(f), direction: Math.sign(f) }, n = c && e.time < c.time + 500 && e.delta <= c.delta && e.direction === c.direction; if (!n) { c = void 0; let o = t.getTranslate() + f * s.sensitivity; const l = t.isBeginning, d = t.isEnd; if (o >= t.minTranslate() && (o = t.minTranslate()), o <= t.maxTranslate() && (o = t.maxTranslate()), t.setTransition(0), t.setTranslate(o), t.updateProgress(), t.updateActiveIndex(), t.updateSlidesClasses(), (!l && t.isBeginning || !d && t.isEnd) && t.updateSlidesClasses(), t.params.loop && t.loopFix({ direction: e.direction < 0 ? "next" : "prev", byMousewheel: !0 }), t.params.freeMode.sticky) { clearTimeout(u), u = void 0, p.length >= 15 && p.shift(); const i = p.length ? p[p.length - 1] : void 0, n = p[0]; if (p.push(e), i && (e.delta > i.delta || e.direction !== i.direction)) p.splice(0); else if (p.length >= 15 && e.time - n.time < 500 && n.delta - e.delta >= 1 && e.delta <= 6) { const i = f > 0 ? .8 : .2; c = e, p.splice(0), u = a(() => { t.slideToClosest(t.params.speed, !0, void 0, i) }, 0) } u || (u = a(() => { c = e, p.splice(0), t.slideToClosest(t.params.speed, !0, void 0, .5) }, 500)) } if (n || r("scroll", i), t.params.autoplay && t.params.autoplayDisableOnInteraction && t.autoplay.stop(), s.releaseOnEdges && (o === t.minTranslate() || o === t.maxTranslate())) return !0 } } else { const i = { time: l(), delta: Math.abs(f), direction: Math.sign(f), raw: e }; p.length >= 2 && p.shift(); const n = p.length ? p[p.length - 1] : void 0; if (p.push(i), n ? (i.direction !== n.direction || i.delta > n.delta || i.time > n.time + 150) && m(i) : m(i), function (e) { const i = t.params.mousewheel; if (e.direction < 0) { if (t.isEnd && !t.params.loop && i.releaseOnEdges) return !0 } else if (t.isBeginning && !t.params.loop && i.releaseOnEdges) return !0; return !1 }(i)) return !0 } return i.preventDefault ? i.preventDefault() : i.returnValue = !1, !1 } function v(e) { let i = t.el; "container" !== t.params.mousewheel.eventsTarget && (i = document.querySelector(t.params.mousewheel.eventsTarget)), i[e]("mouseenter", f), i[e]("mouseleave", h), i[e]("wheel", g) } function y() { return t.params.cssMode ? (t.wrapperEl.removeEventListener("wheel", g), !0) : !t.mousewheel.enabled && (v("addEventListener"), t.mousewheel.enabled = !0, !0) } function b() { return t.params.cssMode ? (t.wrapperEl.addEventListener(event, g), !0) : !!t.mousewheel.enabled && (v("removeEventListener"), t.mousewheel.enabled = !1, !0) } n("init", () => { !t.params.mousewheel.enabled && t.params.cssMode && b(), t.params.mousewheel.enabled && y() }), n("destroy", () => { t.params.cssMode && y(), t.mousewheel.enabled && b() }), Object.assign(t.mousewheel, { enable: y, disable: b }) }, function (e) { let { swiper: t, extendParams: i, on: n, emit: r } = e; function s(e) { let i; return e && "string" == typeof e && t.isElement && (i = t.el.querySelector(e), i) ? i : (e && ("string" == typeof e && (i = [...document.querySelectorAll(e)]), t.params.uniqueNavElements && "string" == typeof e && i && i.length > 1 && 1 === t.el.querySelectorAll(e).length ? i = t.el.querySelector(e) : i && 1 === i.length && (i = i[0])), e && !i ? e : i) } function o(e, i) { const n = t.params.navigation; (e = E(e)).forEach(e => { e && (e.classList[i ? "add" : "remove"](...n.disabledClass.split(" ")), "BUTTON" === e.tagName && (e.disabled = i), t.params.watchOverflow && t.enabled && e.classList[t.isLocked ? "add" : "remove"](n.lockClass)) }) } function a() { const { nextEl: e, prevEl: i } = t.navigation; if (t.params.loop) return o(i, !1), void o(e, !1); o(i, t.isBeginning && !t.params.rewind), o(e, t.isEnd && !t.params.rewind) } function l(e) { e.preventDefault(), (!t.isBeginning || t.params.loop || t.params.rewind) && (t.slidePrev(), r("navigationPrev")) } function u(e) { e.preventDefault(), (!t.isEnd || t.params.loop || t.params.rewind) && (t.slideNext(), r("navigationNext")) } function c() { const e = t.params.navigation; if (t.params.navigation = J(t, t.originalParams.navigation, t.params.navigation, { nextEl: "swiper-button-next", prevEl: "swiper-button-prev" }), !e.nextEl && !e.prevEl) return; let i = s(e.nextEl), n = s(e.prevEl); Object.assign(t.navigation, { nextEl: i, prevEl: n }), i = E(i), n = E(n); const r = (i, n) => { i && i.addEventListener("click", "next" === n ? u : l), !t.enabled && i && i.classList.add(...e.lockClass.split(" ")) }; i.forEach(e => r(e, "next")), n.forEach(e => r(e, "prev")) } function d() { let { nextEl: e, prevEl: i } = t.navigation; e = E(e), i = E(i); const n = (e, i) => { e.removeEventListener("click", "next" === i ? u : l), e.classList.remove(...t.params.navigation.disabledClass.split(" ")) }; e.forEach(e => n(e, "next")), i.forEach(e => n(e, "prev")) } i({ navigation: { nextEl: null, prevEl: null, hideOnClick: !1, disabledClass: "swiper-button-disabled", hiddenClass: "swiper-button-hidden", lockClass: "swiper-button-lock", navigationDisabledClass: "swiper-navigation-disabled" } }), t.navigation = { nextEl: null, prevEl: null }, n("init", () => { !1 === t.params.navigation.enabled ? p() : (c(), a()) }), n("toEdge fromEdge lock unlock", () => { a() }), n("destroy", () => { d() }), n("enable disable", () => { let { nextEl: e, prevEl: i } = t.navigation; e = E(e), i = E(i), t.enabled ? a() : [...e, ...i].filter(e => !!e).forEach(e => e.classList.add(t.params.navigation.lockClass)) }), n("click", (e, i) => { let { nextEl: n, prevEl: s } = t.navigation; n = E(n), s = E(s); const o = i.target; if (t.params.navigation.hideOnClick && !s.includes(o) && !n.includes(o)) { if (t.pagination && t.params.pagination && t.params.pagination.clickable && (t.pagination.el === o || t.pagination.el.contains(o))) return; let e; n.length ? e = n[0].classList.contains(t.params.navigation.hiddenClass) : s.length && (e = s[0].classList.contains(t.params.navigation.hiddenClass)), r(!0 === e ? "navigationShow" : "navigationHide"), [...n, ...s].filter(e => !!e).forEach(e => e.classList.toggle(t.params.navigation.hiddenClass)) } }); const p = () => { t.el.classList.add(...t.params.navigation.navigationDisabledClass.split(" ")), d() }; Object.assign(t.navigation, { enable: () => { t.el.classList.remove(...t.params.navigation.navigationDisabledClass.split(" ")), c(), a() }, disable: p, update: a, init: c, destroy: d }) }, function (e) { let { swiper: t, extendParams: i, on: n, emit: r } = e; const s = "swiper-pagination"; let o; i({ pagination: { el: null, bulletElement: "span", clickable: !1, hideOnClick: !1, renderBullet: null, renderProgressbar: null, renderFraction: null, renderCustom: null, progressbarOpposite: !1, type: "bullets", dynamicBullets: !1, dynamicMainBullets: 1, formatFractionCurrent: e => e, formatFractionTotal: e => e, bulletClass: s + "-bullet", bulletActiveClass: s + "-bullet-active", modifierClass: s + "-", currentClass: s + "-current", totalClass: s + "-total", hiddenClass: s + "-hidden", progressbarFillClass: s + "-progressbar-fill", progressbarOppositeClass: s + "-progressbar-opposite", clickableClass: s + "-clickable", lockClass: s + "-lock", horizontalClass: s + "-horizontal", verticalClass: s + "-vertical", paginationDisabledClass: s + "-disabled" } }), t.pagination = { el: null, bullets: [] }; let a = 0; function l() { return !t.params.pagination.el || !t.pagination.el || Array.isArray(t.pagination.el) && 0 === t.pagination.el.length } function u(e, i) { const { bulletActiveClass: n } = t.params.pagination; e && (e = e[("prev" === i ? "previous" : "next") + "ElementSibling"]) && (e.classList.add(`${n}-${i}`), (e = e[("prev" === i ? "previous" : "next") + "ElementSibling"]) && e.classList.add(`${n}-${i}-${i}`)) } function c(e) { const i = e.target.closest(Z(t.params.pagination.bulletClass)); if (!i) return; e.preventDefault(); const n = w(i) * t.params.slidesPerGroup; if (t.params.loop) { if (t.realIndex === n) return; t.slideToLoop(n) } else t.slideTo(n) } function d() { const e = t.rtl, i = t.params.pagination; if (l()) return; let n, s, c = t.pagination.el; c = E(c); const d = t.virtual && t.params.virtual.enabled ? t.virtual.slides.length : t.slides.length, p = t.params.loop ? Math.ceil(d / t.params.slidesPerGroup) : t.snapGrid.length; if (t.params.loop ? (s = t.previousRealIndex || 0, n = t.params.slidesPerGroup > 1 ? Math.floor(t.realIndex / t.params.slidesPerGroup) : t.realIndex) : void 0 !== t.snapIndex ? (n = t.snapIndex, s = t.previousSnapIndex) : (s = t.previousIndex || 0, n = t.activeIndex || 0), "bullets" === i.type && t.pagination.bullets && t.pagination.bullets.length > 0) { const r = t.pagination.bullets; let l, d, p; if (i.dynamicBullets && (o = x(r[0], t.isHorizontal() ? "width" : "height", !0), c.forEach(e => { e.style[t.isHorizontal() ? "width" : "height"] = o * (i.dynamicMainBullets + 4) + "px" }), i.dynamicMainBullets > 1 && void 0 !== s && (a += n - (s || 0), a > i.dynamicMainBullets - 1 ? a = i.dynamicMainBullets - 1 : a < 0 && (a = 0)), l = Math.max(n - a, 0), d = l + (Math.min(r.length, i.dynamicMainBullets) - 1), p = (d + l) / 2), r.forEach(e => { const t = [...["", "-next", "-next-next", "-prev", "-prev-prev", "-main"].map(e => `${i.bulletActiveClass}${e}`)].map(e => "string" == typeof e && e.includes(" ") ? e.split(" ") : e).flat(); e.classList.remove(...t) }), c.length > 1) r.forEach(e => { const r = w(e); r === n ? e.classList.add(...i.bulletActiveClass.split(" ")) : t.isElement && e.setAttribute("part", "bullet"), i.dynamicBullets && (r >= l && r <= d && e.classList.add(...(i.bulletActiveClass + "-main").split(" ")), r === l && u(e, "prev"), r === d && u(e, "next")) }); else { const e = r[n]; if (e && e.classList.add(...i.bulletActiveClass.split(" ")), t.isElement && r.forEach((e, t) => { e.setAttribute("part", t === n ? "bullet-active" : "bullet") }), i.dynamicBullets) { const e = r[l], t = r[d]; for (let e = l; e <= d; e += 1)r[e] && r[e].classList.add(...(i.bulletActiveClass + "-main").split(" ")); u(e, "prev"), u(t, "next") } } if (i.dynamicBullets) { const n = Math.min(r.length, i.dynamicMainBullets + 4), s = (o * n - o) / 2 - p * o, a = e ? "right" : "left"; r.forEach(e => { e.style[t.isHorizontal() ? a : "top"] = s + "px" }) } } c.forEach((e, s) => { if ("fraction" === i.type && (e.querySelectorAll(Z(i.currentClass)).forEach(e => { e.textContent = i.formatFractionCurrent(n + 1) }), e.querySelectorAll(Z(i.totalClass)).forEach(e => { e.textContent = i.formatFractionTotal(p) })), "progressbar" === i.type) { let r; r = i.progressbarOpposite ? t.isHorizontal() ? "vertical" : "horizontal" : t.isHorizontal() ? "horizontal" : "vertical"; const s = (n + 1) / p; let o = 1, a = 1; "horizontal" === r ? o = s : a = s, e.querySelectorAll(Z(i.progressbarFillClass)).forEach(e => { e.style.transform = `translate3d(0,0,0) scaleX(${o}) scaleY(${a})`, e.style.transitionDuration = t.params.speed + "ms" }) } "custom" === i.type && i.renderCustom ? (e.innerHTML = i.renderCustom(t, n + 1, p), 0 === s && r("paginationRender", e)) : (0 === s && r("paginationRender", e), r("paginationUpdate", e)), t.params.watchOverflow && t.enabled && e.classList[t.isLocked ? "add" : "remove"](i.lockClass) }) } function p() { const e = t.params.pagination; if (l()) return; const i = t.virtual && t.params.virtual.enabled ? t.virtual.slides.length : t.grid && t.params.grid.rows > 1 ? t.slides.length / Math.ceil(t.params.grid.rows) : t.slides.length; let n = t.pagination.el; n = E(n); let s = ""; if ("bullets" === e.type) { let n = t.params.loop ? Math.ceil(i / t.params.slidesPerGroup) : t.snapGrid.length; t.params.freeMode && t.params.freeMode.enabled && n > i && (n = i); for (let i = 0; i < n; i += 1)e.renderBullet ? s += e.renderBullet.call(t, i, e.bulletClass) : s += `<${e.bulletElement} ${t.isElement ? 'part="bullet"' : ""} class="${e.bulletClass}"></${e.bulletElement}>` } "fraction" === e.type && (s = e.renderFraction ? e.renderFraction.call(t, e.currentClass, e.totalClass) : `<span class="${e.currentClass}"></span> / <span class="${e.totalClass}"></span>`), "progressbar" === e.type && (s = e.renderProgressbar ? e.renderProgressbar.call(t, e.progressbarFillClass) : `<span class="${e.progressbarFillClass}"></span>`), t.pagination.bullets = [], n.forEach(i => { "custom" !== e.type && (i.innerHTML = s || ""), "bullets" === e.type && t.pagination.bullets.push(...i.querySelectorAll(Z(e.bulletClass))) }), "custom" !== e.type && r("paginationRender", n[0]) } function f() { t.params.pagination = J(t, t.originalParams.pagination, t.params.pagination, { el: "swiper-pagination" }); const e = t.params.pagination; if (!e.el) return; let i; "string" == typeof e.el && t.isElement && (i = t.el.querySelector(e.el)), i || "string" != typeof e.el || (i = [...document.querySelectorAll(e.el)]), i || (i = e.el), i && 0 !== i.length && (t.params.uniqueNavElements && "string" == typeof e.el && Array.isArray(i) && i.length > 1 && (i = [...t.el.querySelectorAll(e.el)], i.length > 1 && (i = i.filter(e => D(e, ".swiper")[0] === t.el)[0])), Array.isArray(i) && 1 === i.length && (i = i[0]), Object.assign(t.pagination, { el: i }), i = E(i), i.forEach(i => { "bullets" === e.type && e.clickable && i.classList.add(...(e.clickableClass || "").split(" ")), i.classList.add(e.modifierClass + e.type), i.classList.add(t.isHorizontal() ? e.horizontalClass : e.verticalClass), "bullets" === e.type && e.dynamicBullets && (i.classList.add(`${e.modifierClass}${e.type}-dynamic`), a = 0, e.dynamicMainBullets < 1 && (e.dynamicMainBullets = 1)), "progressbar" === e.type && e.progressbarOpposite && i.classList.add(e.progressbarOppositeClass), e.clickable && i.addEventListener("click", c), t.enabled || i.classList.add(e.lockClass) })) } function h() { const e = t.params.pagination; if (l()) return; let i = t.pagination.el; i && (i = E(i), i.forEach(i => { i.classList.remove(e.hiddenClass), i.classList.remove(e.modifierClass + e.type), i.classList.remove(t.isHorizontal() ? e.horizontalClass : e.verticalClass), e.clickable && (i.classList.remove(...(e.clickableClass || "").split(" ")), i.removeEventListener("click", c)) })), t.pagination.bullets && t.pagination.bullets.forEach(t => t.classList.remove(...e.bulletActiveClass.split(" "))) } n("changeDirection", () => { if (!t.pagination || !t.pagination.el) return; const e = t.params.pagination; let { el: i } = t.pagination; i = E(i), i.forEach(i => { i.classList.remove(e.horizontalClass, e.verticalClass), i.classList.add(t.isHorizontal() ? e.horizontalClass : e.verticalClass) }) }), n("init", () => { !1 === t.params.pagination.enabled ? m() : (f(), p(), d()) }), n("activeIndexChange", () => { void 0 === t.snapIndex && d() }), n("snapIndexChange", () => { d() }), n("snapGridLengthChange", () => { p(), d() }), n("destroy", () => { h() }), n("enable disable", () => { let { el: e } = t.pagination; e && (e = E(e), e.forEach(e => e.classList[t.enabled ? "remove" : "add"](t.params.pagination.lockClass))) }), n("lock unlock", () => { d() }), n("click", (e, i) => { const n = i.target, s = E(t.pagination.el); if (t.params.pagination.el && t.params.pagination.hideOnClick && s && s.length > 0 && !n.classList.contains(t.params.pagination.bulletClass)) { if (t.navigation && (t.navigation.nextEl && n === t.navigation.nextEl || t.navigation.prevEl && n === t.navigation.prevEl)) return; const e = s[0].classList.contains(t.params.pagination.hiddenClass); r(!0 === e ? "paginationShow" : "paginationHide"), s.forEach(e => e.classList.toggle(t.params.pagination.hiddenClass)) } }); const m = () => { t.el.classList.add(t.params.pagination.paginationDisabledClass); let { el: e } = t.pagination; e && (e = E(e), e.forEach(e => e.classList.add(t.params.pagination.paginationDisabledClass))), h() }; Object.assign(t.pagination, { enable: () => { t.el.classList.remove(t.params.pagination.paginationDisabledClass); let { el: e } = t.pagination; e && (e = E(e), e.forEach(e => e.classList.remove(t.params.pagination.paginationDisabledClass))), f(), p(), d() }, disable: m, render: p, update: d, init: f, destroy: h }) }, function (e) { let { swiper: t, extendParams: i, on: r, emit: s } = e; const l = n(); let u, c, d, p, f = !1, h = null, m = null; function g() { if (!t.params.scrollbar.el || !t.scrollbar.el) return; const { scrollbar: e, rtlTranslate: i } = t, { dragEl: n, el: r } = e, s = t.params.scrollbar, o = t.params.loop ? t.progressLoop : t.progress; let a = c, l = (d - c) * o; i ? (l = -l, l > 0 ? (a = c - l, l = 0) : -l + c > d && (a = d + l)) : l < 0 ? (a = c + l, l = 0) : l + c > d && (a = d - l), t.isHorizontal() ? (n.style.transform = `translate3d(${l}px, 0, 0)`, n.style.width = a + "px") : (n.style.transform = `translate3d(0px, ${l}px, 0)`, n.style.height = a + "px"), s.hide && (clearTimeout(h), r.style.opacity = 1, h = setTimeout(() => { r.style.opacity = 0, r.style.transitionDuration = "400ms" }, 1e3)) } function b() { if (!t.params.scrollbar.el || !t.scrollbar.el) return; const { scrollbar: e } = t, { dragEl: i, el: n } = e; i.style.width = "", i.style.height = "", d = t.isHorizontal() ? n.offsetWidth : n.offsetHeight, p = t.size / (t.virtualSize + t.params.slidesOffsetBefore - (t.params.centeredSlides ? t.snapGrid[0] : 0)), c = "auto" === t.params.scrollbar.dragSize ? d * p : parseInt(t.params.scrollbar.dragSize, 10), t.isHorizontal() ? i.style.width = c + "px" : i.style.height = c + "px", n.style.display = p >= 1 ? "none" : "", t.params.scrollbar.hide && (n.style.opacity = 0), t.params.watchOverflow && t.enabled && e.el.classList[t.isLocked ? "add" : "remove"](t.params.scrollbar.lockClass) } function w(e) { return t.isHorizontal() ? e.clientX : e.clientY } function D(e) { const { scrollbar: i, rtlTranslate: n } = t, { el: r } = i; let s; s = (w(e) - y(r)[t.isHorizontal() ? "left" : "top"] - (null !== u ? u : c / 2)) / (d - c), s = Math.max(Math.min(s, 1), 0), n && (s = 1 - s); const o = t.minTranslate() + (t.maxTranslate() - t.minTranslate()) * s; t.updateProgress(o), t.setTranslate(o), t.updateActiveIndex(), t.updateSlidesClasses() } function _(e) { const i = t.params.scrollbar, { scrollbar: n, wrapperEl: r } = t, { el: o, dragEl: a } = n; f = !0, u = e.target === a ? w(e) - e.target.getBoundingClientRect()[t.isHorizontal() ? "left" : "top"] : null, e.preventDefault(), e.stopPropagation(), r.style.transitionDuration = "100ms", a.style.transitionDuration = "100ms", D(e), clearTimeout(m), o.style.transitionDuration = "0ms", i.hide && (o.style.opacity = 1), t.params.cssMode && (t.wrapperEl.style["scroll-snap-type"] = "none"), s("scrollbarDragStart", e) } function x(e) { const { scrollbar: i, wrapperEl: n } = t, { el: r, dragEl: o } = i; f && (e.preventDefault && e.cancelable ? e.preventDefault() : e.returnValue = !1, D(e), n.style.transitionDuration = "0ms", r.style.transitionDuration = "0ms", o.style.transitionDuration = "0ms", s("scrollbarDragMove", e)) } function T(e) { const i = t.params.scrollbar, { scrollbar: n, wrapperEl: r } = t, { el: o } = n; f && (f = !1, t.params.cssMode && (t.wrapperEl.style["scroll-snap-type"] = "", r.style.transitionDuration = ""), i.hide && (clearTimeout(m), m = a(() => { o.style.opacity = 0, o.style.transitionDuration = "400ms" }, 1e3)), s("scrollbarDragEnd", e), i.snapOnRelease && t.slideToClosest()) } function S(e) { const { scrollbar: i, params: n } = t, r = i.el; if (!r) return; const s = r, o = !!n.passiveListeners && { passive: !1, capture: !1 }, a = !!n.passiveListeners && { passive: !0, capture: !1 }; if (!s) return; const u = "on" === e ? "addEventListener" : "removeEventListener"; s[u]("pointerdown", _, o), l[u]("pointermove", x, o), l[u]("pointerup", T, a) } function C() { const { scrollbar: e, el: i } = t; t.params.scrollbar = J(t, t.originalParams.scrollbar, t.params.scrollbar, { el: "swiper-scrollbar" }); const n = t.params.scrollbar; if (!n.el) return; let r, s; if ("string" == typeof n.el && t.isElement && (r = t.el.querySelector(n.el)), r || "string" != typeof n.el) r || (r = n.el); else if (r = l.querySelectorAll(n.el), !r.length) return; t.params.uniqueNavElements && "string" == typeof n.el && r.length > 1 && 1 === i.querySelectorAll(n.el).length && (r = i.querySelector(n.el)), r.length > 0 && (r = r[0]), r.classList.add(t.isHorizontal() ? n.horizontalClass : n.verticalClass), r && (s = r.querySelector(Z(t.params.scrollbar.dragClass)), s || (s = v("div", t.params.scrollbar.dragClass), r.append(s))), Object.assign(e, { el: r, dragEl: s }), n.draggable && t.params.scrollbar.el && t.scrollbar.el && S("on"), r && r.classList[t.enabled ? "remove" : "add"](...o(t.params.scrollbar.lockClass)) } function M() { const e = t.params.scrollbar, i = t.scrollbar.el; i && i.classList.remove(...o(t.isHorizontal() ? e.horizontalClass : e.verticalClass)), t.params.scrollbar.el && t.scrollbar.el && S("off") } i({ scrollbar: { el: null, dragSize: "auto", hide: !1, draggable: !1, snapOnRelease: !0, lockClass: "swiper-scrollbar-lock", dragClass: "swiper-scrollbar-drag", scrollbarDisabledClass: "swiper-scrollbar-disabled", horizontalClass: "swiper-scrollbar-horizontal", verticalClass: "swiper-scrollbar-vertical" } }), t.scrollbar = { el: null, dragEl: null }, r("changeDirection", () => { if (!t.scrollbar || !t.scrollbar.el) return; const e = t.params.scrollbar; let { el: i } = t.scrollbar; i = E(i), i.forEach(i => { i.classList.remove(e.horizontalClass, e.verticalClass), i.classList.add(t.isHorizontal() ? e.horizontalClass : e.verticalClass) }) }), r("init", () => { !1 === t.params.scrollbar.enabled ? k() : (C(), b(), g()) }), r("update resize observerUpdate lock unlock changeDirection", () => { b() }), r("setTranslate", () => { g() }), r("setTransition", (e, i) => { !function (e) { t.params.scrollbar.el && t.scrollbar.el && (t.scrollbar.dragEl.style.transitionDuration = e + "ms") }(i) }), r("enable disable", () => { const { el: e } = t.scrollbar; e && e.classList[t.enabled ? "remove" : "add"](...o(t.params.scrollbar.lockClass)) }), r("destroy", () => { M() }); const k = () => { t.el.classList.add(...o(t.params.scrollbar.scrollbarDisabledClass)), t.scrollbar.el && t.scrollbar.el.classList.add(...o(t.params.scrollbar.scrollbarDisabledClass)), M() }; Object.assign(t.scrollbar, { enable: () => { t.el.classList.remove(...o(t.params.scrollbar.scrollbarDisabledClass)), t.scrollbar.el && t.scrollbar.el.classList.remove(...o(t.params.scrollbar.scrollbarDisabledClass)), C(), b(), g() }, disable: k, updateSize: b, setTranslate: g, init: C, destroy: M }) }, function (e) { let { swiper: t, extendParams: i, on: n } = e; i({ parallax: { enabled: !1 } }); const r = "[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]", s = (e, i) => { const { rtl: n } = t, r = n ? -1 : 1, s = e.getAttribute("data-swiper-parallax") || "0"; let o = e.getAttribute("data-swiper-parallax-x"), a = e.getAttribute("data-swiper-parallax-y"); const l = e.getAttribute("data-swiper-parallax-scale"), u = e.getAttribute("data-swiper-parallax-opacity"), c = e.getAttribute("data-swiper-parallax-rotate"); if (o || a ? (o = o || "0", a = a || "0") : t.isHorizontal() ? (o = s, a = "0") : (a = s, o = "0"), o = o.indexOf("%") >= 0 ? parseInt(o, 10) * i * r + "%" : o * i * r + "px", a = a.indexOf("%") >= 0 ? parseInt(a, 10) * i + "%" : a * i + "px", null != u) { const t = u - (u - 1) * (1 - Math.abs(i)); e.style.opacity = t } let d = `translate3d(${o}, ${a}, 0px)`; null != l && (d += ` scale(${l - (l - 1) * (1 - Math.abs(i))})`), c && null != c && (d += ` rotate(${c * i * -1}deg)`), e.style.transform = d }, o = () => { const { el: e, slides: i, progress: n, snapGrid: o, isElement: a } = t, l = m(e, r); t.isElement && l.push(...m(t.hostEl, r)), l.forEach(e => { s(e, n) }), i.forEach((e, i) => { let a = e.progress; t.params.slidesPerGroup > 1 && "auto" !== t.params.slidesPerView && (a += Math.ceil(i / 2) - n * (o.length - 1)), a = Math.min(Math.max(a, -1), 1), e.querySelectorAll(r + ", [data-swiper-parallax-rotate]").forEach(e => { s(e, a) }) }) }; n("beforeInit", () => { t.params.parallax.enabled && (t.params.watchSlidesProgress = !0, t.originalParams.watchSlidesProgress = !0) }), n("init", () => { t.params.parallax.enabled && o() }), n("setTranslate", () => { t.params.parallax.enabled && o() }), n("setTransition", (e, i) => { t.params.parallax.enabled && function (e) { void 0 === e && (e = t.params.speed); const { el: i, hostEl: n } = t, s = [...i.querySelectorAll(r)]; t.isElement && s.push(...n.querySelectorAll(r)), s.forEach(t => { let i = parseInt(t.getAttribute("data-swiper-parallax-duration"), 10) || e; 0 === e && (i = 0), t.style.transitionDuration = i + "ms" }) }(i) }) }, function (e) { let { swiper: t, extendParams: i, on: n, emit: r } = e; const o = s(); i({ zoom: { enabled: !1, limitToOriginalSize: !1, maxRatio: 3, minRatio: 1, toggle: !0, containerClass: "swiper-zoom-container", zoomedSlideClass: "swiper-slide-zoomed" } }), t.zoom = { enabled: !1 }; let a, l, c = 1, d = !1; const p = [], f = { originX: 0, originY: 0, slideEl: void 0, slideWidth: void 0, slideHeight: void 0, imageEl: void 0, imageWrapEl: void 0, maxRatio: 3 }, h = { isTouched: void 0, isMoved: void 0, currentX: void 0, currentY: void 0, minX: void 0, minY: void 0, maxX: void 0, maxY: void 0, width: void 0, height: void 0, startX: void 0, startY: void 0, touchesStart: {}, touchesCurrent: {} }, g = { x: void 0, y: void 0, prevPositionX: void 0, prevPositionY: void 0, prevTime: void 0 }; let v = 1; function b() { if (p.length < 2) return 1; const e = p[0].pageX, t = p[0].pageY, i = p[1].pageX, n = p[1].pageY; return Math.sqrt((i - e) ** 2 + (n - t) ** 2) } function w() { const e = t.params.zoom, i = f.imageWrapEl.getAttribute("data-swiper-zoom") || e.maxRatio; if (e.limitToOriginalSize && f.imageEl && f.imageEl.naturalWidth) { const e = f.imageEl.naturalWidth / f.imageEl.offsetWidth; return Math.min(e, i) } return i } function _(e) { const i = t.isElement ? "swiper-slide" : "." + t.params.slideClass; return !!e.target.matches(i) || t.slides.filter(t => t.contains(e.target)).length > 0 } function x(e) { if ("mouse" === e.pointerType && p.splice(0, p.length), !_(e)) return; const i = t.params.zoom; if (a = !1, l = !1, p.push(e), !(p.length < 2)) { if (a = !0, f.scaleStart = b(), !f.slideEl) { f.slideEl = e.target.closest(`.${t.params.slideClass}, swiper-slide`), f.slideEl || (f.slideEl = t.slides[t.activeIndex]); let n = f.slideEl.querySelector("." + i.containerClass); if (n && (n = n.querySelectorAll("picture, img, svg, canvas, .swiper-zoom-target")[0]), f.imageEl = n, f.imageWrapEl = n ? D(f.imageEl, "." + i.containerClass)[0] : void 0, !f.imageWrapEl) return void (f.imageEl = void 0); f.maxRatio = w() } if (f.imageEl) { const [e, t] = function () { if (p.length < 2) return { x: null, y: null }; const e = f.imageEl.getBoundingClientRect(); return [(p[0].pageX + (p[1].pageX - p[0].pageX) / 2 - e.x - o.scrollX) / c, (p[0].pageY + (p[1].pageY - p[0].pageY) / 2 - e.y - o.scrollY) / c] }(); f.originX = e, f.originY = t, f.imageEl.style.transitionDuration = "0ms" } d = !0 } } function E(e) { if (!_(e)) return; const i = t.params.zoom, n = t.zoom, r = p.findIndex(t => t.pointerId === e.pointerId); r >= 0 && (p[r] = e), p.length < 2 || (l = !0, f.scaleMove = b(), f.imageEl && (n.scale = f.scaleMove / f.scaleStart * c, n.scale > f.maxRatio && (n.scale = f.maxRatio - 1 + (n.scale - f.maxRatio + 1) ** .5), n.scale < i.minRatio && (n.scale = i.minRatio + 1 - (i.minRatio - n.scale + 1) ** .5), f.imageEl.style.transform = `translate3d(0,0,0) scale(${n.scale})`)) } function T(e) { if (!_(e)) return; if ("mouse" === e.pointerType && "pointerout" === e.type) return; const i = t.params.zoom, n = t.zoom, r = p.findIndex(t => t.pointerId === e.pointerId); r >= 0 && p.splice(r, 1), a && l && (a = !1, l = !1, f.imageEl && (n.scale = Math.max(Math.min(n.scale, f.maxRatio), i.minRatio), f.imageEl.style.transitionDuration = t.params.speed + "ms", f.imageEl.style.transform = `translate3d(0,0,0) scale(${n.scale})`, c = n.scale, d = !1, n.scale > 1 && f.slideEl ? f.slideEl.classList.add("" + i.zoomedSlideClass) : n.scale <= 1 && f.slideEl && f.slideEl.classList.remove("" + i.zoomedSlideClass), 1 === n.scale && (f.originX = 0, f.originY = 0, f.slideEl = void 0))) } function S(e) { if (!_(e) || !function (e) { const i = "." + t.params.zoom.containerClass; return !!e.target.matches(i) || [...t.hostEl.querySelectorAll(i)].filter(t => t.contains(e.target)).length > 0 }(e)) return; const i = t.zoom; if (!f.imageEl) return; if (!h.isTouched || !f.slideEl) return; h.isMoved || (h.width = f.imageEl.offsetWidth || f.imageEl.clientWidth, h.height = f.imageEl.offsetHeight || f.imageEl.clientHeight, h.startX = u(f.imageWrapEl, "x") || 0, h.startY = u(f.imageWrapEl, "y") || 0, f.slideWidth = f.slideEl.offsetWidth, f.slideHeight = f.slideEl.offsetHeight, f.imageWrapEl.style.transitionDuration = "0ms"); const n = h.width * i.scale, r = h.height * i.scale; if (n < f.slideWidth && r < f.slideHeight) return; if (h.minX = Math.min(f.slideWidth / 2 - n / 2, 0), h.maxX = -h.minX, h.minY = Math.min(f.slideHeight / 2 - r / 2, 0), h.maxY = -h.minY, h.touchesCurrent.x = p.length > 0 ? p[0].pageX : e.pageX, h.touchesCurrent.y = p.length > 0 ? p[0].pageY : e.pageY, Math.max(Math.abs(h.touchesCurrent.x - h.touchesStart.x), Math.abs(h.touchesCurrent.y - h.touchesStart.y)) > 5 && (t.allowClick = !1), !h.isMoved && !d) { if (t.isHorizontal() && (Math.floor(h.minX) === Math.floor(h.startX) && h.touchesCurrent.x < h.touchesStart.x || Math.floor(h.maxX) === Math.floor(h.startX) && h.touchesCurrent.x > h.touchesStart.x)) return void (h.isTouched = !1); if (!t.isHorizontal() && (Math.floor(h.minY) === Math.floor(h.startY) && h.touchesCurrent.y < h.touchesStart.y || Math.floor(h.maxY) === Math.floor(h.startY) && h.touchesCurrent.y > h.touchesStart.y)) return void (h.isTouched = !1) } e.cancelable && e.preventDefault(), e.stopPropagation(), h.isMoved = !0; const s = (i.scale - c) / (f.maxRatio - t.params.zoom.minRatio), { originX: o, originY: a } = f; h.currentX = h.touchesCurrent.x - h.touchesStart.x + h.startX + s * (h.width - 2 * o), h.currentY = h.touchesCurrent.y - h.touchesStart.y + h.startY + s * (h.height - 2 * a), h.currentX < h.minX && (h.currentX = h.minX + 1 - (h.minX - h.currentX + 1) ** .8), h.currentX > h.maxX && (h.currentX = h.maxX - 1 + (h.currentX - h.maxX + 1) ** .8), h.currentY < h.minY && (h.currentY = h.minY + 1 - (h.minY - h.currentY + 1) ** .8), h.currentY > h.maxY && (h.currentY = h.maxY - 1 + (h.currentY - h.maxY + 1) ** .8), g.prevPositionX || (g.prevPositionX = h.touchesCurrent.x), g.prevPositionY || (g.prevPositionY = h.touchesCurrent.y), g.prevTime || (g.prevTime = Date.now()), g.x = (h.touchesCurrent.x - g.prevPositionX) / (Date.now() - g.prevTime) / 2, g.y = (h.touchesCurrent.y - g.prevPositionY) / (Date.now() - g.prevTime) / 2, Math.abs(h.touchesCurrent.x - g.prevPositionX) < 2 && (g.x = 0), Math.abs(h.touchesCurrent.y - g.prevPositionY) < 2 && (g.y = 0), g.prevPositionX = h.touchesCurrent.x, g.prevPositionY = h.touchesCurrent.y, g.prevTime = Date.now(), f.imageWrapEl.style.transform = `translate3d(${h.currentX}px, ${h.currentY}px,0)` } function C() { const e = t.zoom; f.slideEl && t.activeIndex !== t.slides.indexOf(f.slideEl) && (f.imageEl && (f.imageEl.style.transform = "translate3d(0,0,0) scale(1)"), f.imageWrapEl && (f.imageWrapEl.style.transform = "translate3d(0,0,0)"), f.slideEl.classList.remove("" + t.params.zoom.zoomedSlideClass), e.scale = 1, c = 1, f.slideEl = void 0, f.imageEl = void 0, f.imageWrapEl = void 0, f.originX = 0, f.originY = 0) } function M(e) { const i = t.zoom, n = t.params.zoom; if (!f.slideEl) { e && e.target && (f.slideEl = e.target.closest(`.${t.params.slideClass}, swiper-slide`)), f.slideEl || (t.params.virtual && t.params.virtual.enabled && t.virtual ? f.slideEl = m(t.slidesEl, "." + t.params.slideActiveClass)[0] : f.slideEl = t.slides[t.activeIndex]); let i = f.slideEl.querySelector("." + n.containerClass); i && (i = i.querySelectorAll("picture, img, svg, canvas, .swiper-zoom-target")[0]), f.imageEl = i, f.imageWrapEl = i ? D(f.imageEl, "." + n.containerClass)[0] : void 0 } if (!f.imageEl || !f.imageWrapEl) return; let r, s, a, l, u, d, p, g, v, b, _, x, E, T, S, C, M, k; t.params.cssMode && (t.wrapperEl.style.overflow = "hidden", t.wrapperEl.style.touchAction = "none"), f.slideEl.classList.add("" + n.zoomedSlideClass), void 0 === h.touchesStart.x && e ? (r = e.pageX, s = e.pageY) : (r = h.touchesStart.x, s = h.touchesStart.y); const O = "number" == typeof e ? e : null; 1 === c && O && (r = void 0, s = void 0); const A = w(); i.scale = O || A, c = O || A, !e || 1 === c && O ? (p = 0, g = 0) : (M = f.slideEl.offsetWidth, k = f.slideEl.offsetHeight, a = y(f.slideEl).left + o.scrollX, l = y(f.slideEl).top + o.scrollY, u = a + M / 2 - r, d = l + k / 2 - s, v = f.imageEl.offsetWidth || f.imageEl.clientWidth, b = f.imageEl.offsetHeight || f.imageEl.clientHeight, _ = v * i.scale, x = b * i.scale, E = Math.min(M / 2 - _ / 2, 0), T = Math.min(k / 2 - x / 2, 0), S = -E, C = -T, p = u * i.scale, g = d * i.scale, p < E && (p = E), p > S && (p = S), g < T && (g = T), g > C && (g = C)), O && 1 === i.scale && (f.originX = 0, f.originY = 0), f.imageWrapEl.style.transitionDuration = "300ms", f.imageWrapEl.style.transform = `translate3d(${p}px, ${g}px,0)`, f.imageEl.style.transitionDuration = "300ms", f.imageEl.style.transform = `translate3d(0,0,0) scale(${i.scale})` } function k() { const e = t.zoom, i = t.params.zoom; if (!f.slideEl) { t.params.virtual && t.params.virtual.enabled && t.virtual ? f.slideEl = m(t.slidesEl, "." + t.params.slideActiveClass)[0] : f.slideEl = t.slides[t.activeIndex]; let e = f.slideEl.querySelector("." + i.containerClass); e && (e = e.querySelectorAll("picture, img, svg, canvas, .swiper-zoom-target")[0]), f.imageEl = e, f.imageWrapEl = e ? D(f.imageEl, "." + i.containerClass)[0] : void 0 } f.imageEl && f.imageWrapEl && (t.params.cssMode && (t.wrapperEl.style.overflow = "", t.wrapperEl.style.touchAction = ""), e.scale = 1, c = 1, f.imageWrapEl.style.transitionDuration = "300ms", f.imageWrapEl.style.transform = "translate3d(0,0,0)", f.imageEl.style.transitionDuration = "300ms", f.imageEl.style.transform = "translate3d(0,0,0) scale(1)", f.slideEl.classList.remove("" + i.zoomedSlideClass), f.slideEl = void 0, f.originX = 0, f.originY = 0) } function O(e) { const i = t.zoom; i.scale && 1 !== i.scale ? k() : M(e) } function A() { return { passiveListener: !!t.params.passiveListeners && { passive: !0, capture: !1 }, activeListenerWithCapture: !t.params.passiveListeners || { passive: !1, capture: !0 } } } function P() { const e = t.zoom; if (e.enabled) return; e.enabled = !0; const { passiveListener: i, activeListenerWithCapture: n } = A(); t.wrapperEl.addEventListener("pointerdown", x, i), t.wrapperEl.addEventListener("pointermove", E, n), ["pointerup", "pointercancel", "pointerout"].forEach(e => { t.wrapperEl.addEventListener(e, T, i) }), t.wrapperEl.addEventListener("pointermove", S, n) } function F() { const e = t.zoom; if (!e.enabled) return; e.enabled = !1; const { passiveListener: i, activeListenerWithCapture: n } = A(); t.wrapperEl.removeEventListener("pointerdown", x, i), t.wrapperEl.removeEventListener("pointermove", E, n), ["pointerup", "pointercancel", "pointerout"].forEach(e => { t.wrapperEl.removeEventListener(e, T, i) }), t.wrapperEl.removeEventListener("pointermove", S, n) } Object.defineProperty(t.zoom, "scale", { get: () => v, set(e) { if (v !== e) { const t = f.imageEl, i = f.slideEl; r("zoomChange", e, t, i) } v = e } }), n("init", () => { t.params.zoom.enabled && P() }), n("destroy", () => { F() }), n("touchStart", (e, i) => { t.zoom.enabled && function (e) { const i = t.device; if (!f.imageEl) return; if (h.isTouched) return; i.android && e.cancelable && e.preventDefault(), h.isTouched = !0; const n = p.length > 0 ? p[0] : e; h.touchesStart.x = n.pageX, h.touchesStart.y = n.pageY }(i) }), n("touchEnd", (e, i) => { t.zoom.enabled && function () { const e = t.zoom; if (!f.imageEl) return; if (!h.isTouched || !h.isMoved) return h.isTouched = !1, void (h.isMoved = !1); h.isTouched = !1, h.isMoved = !1; let i = 300, n = 300; const r = g.x * i, s = h.currentX + r, o = g.y * n, a = h.currentY + o; 0 !== g.x && (i = Math.abs((s - h.currentX) / g.x)), 0 !== g.y && (n = Math.abs((a - h.currentY) / g.y)); const l = Math.max(i, n); h.currentX = s, h.currentY = a; const u = h.width * e.scale, c = h.height * e.scale; h.minX = Math.min(f.slideWidth / 2 - u / 2, 0), h.maxX = -h.minX, h.minY = Math.min(f.slideHeight / 2 - c / 2, 0), h.maxY = -h.minY, h.currentX = Math.max(Math.min(h.currentX, h.maxX), h.minX), h.currentY = Math.max(Math.min(h.currentY, h.maxY), h.minY), f.imageWrapEl.style.transitionDuration = l + "ms", f.imageWrapEl.style.transform = `translate3d(${h.currentX}px, ${h.currentY}px,0)` }() }), n("doubleTap", (e, i) => { !t.animating && t.params.zoom.enabled && t.zoom.enabled && t.params.zoom.toggle && O(i) }), n("transitionEnd", () => { t.zoom.enabled && t.params.zoom.enabled && C() }), n("slideChange", () => { t.zoom.enabled && t.params.zoom.enabled && t.params.cssMode && C() }), Object.assign(t.zoom, { enable: P, disable: F, in: M, out: k, toggle: O }) }, function (e) { let { swiper: t, extendParams: i, on: n } = e; function r(e, t) { const i = function () { let e, t, i; return (n, r) => { for (t = -1, e = n.length; e - t > 1;)i = e + t >> 1, n[i] <= r ? t = i : e = i; return e } }(); let n, r; return this.x = e, this.y = t, this.lastIndex = e.length - 1, this.interpolate = function (e) { return e ? (r = i(this.x, e), n = r - 1, (e - this.x[n]) * (this.y[r] - this.y[n]) / (this.x[r] - this.x[n]) + this.y[n]) : 0 }, this } function s() { t.controller.control && t.controller.spline && (t.controller.spline = void 0, delete t.controller.spline) } i({ controller: { control: void 0, inverse: !1, by: "slide" } }), t.controller = { control: void 0 }, n("beforeInit", () => { if ("undefined" != typeof window && ("string" == typeof t.params.controller.control || t.params.controller.control instanceof HTMLElement)) { const e = document.querySelector(t.params.controller.control); if (e && e.swiper) t.controller.control = e.swiper; else if (e) { const i = n => { t.controller.control = n.detail[0], t.update(), e.removeEventListener("init", i) }; e.addEventListener("init", i) } } else t.controller.control = t.params.controller.control }), n("update", () => { s() }), n("resize", () => { s() }), n("observerUpdate", () => { s() }), n("setTranslate", (e, i, n) => { t.controller.control && !t.controller.control.destroyed && t.controller.setTranslate(i, n) }), n("setTransition", (e, i, n) => { t.controller.control && !t.controller.control.destroyed && t.controller.setTransition(i, n) }), Object.assign(t.controller, { setTranslate: function (e, i) { const n = t.controller.control; let s, o; const a = t.constructor; function l(e) { if (e.destroyed) return; const i = t.rtlTranslate ? -t.translate : t.translate; "slide" === t.params.controller.by && (function (e) { t.controller.spline = t.params.loop ? new r(t.slidesGrid, e.slidesGrid) : new r(t.snapGrid, e.snapGrid) }(e), o = -t.controller.spline.interpolate(-i)), o && "container" !== t.params.controller.by || (s = (e.maxTranslate() - e.minTranslate()) / (t.maxTranslate() - t.minTranslate()), !Number.isNaN(s) && Number.isFinite(s) || (s = 1), o = (i - t.minTranslate()) * s + e.minTranslate()), t.params.controller.inverse && (o = e.maxTranslate() - o), e.updateProgress(o), e.setTranslate(o, t), e.updateActiveIndex(), e.updateSlidesClasses() } if (Array.isArray(n)) for (let e = 0; e < n.length; e += 1)n[e] !== i && n[e] instanceof a && l(n[e]); else n instanceof a && i !== n && l(n) }, setTransition: function (e, i) { const n = t.constructor, r = t.controller.control; let s; function o(i) { i.destroyed || (i.setTransition(e, t), 0 !== e && (i.transitionStart(), i.params.autoHeight && a(() => { i.updateAutoHeight() }), _(i.wrapperEl, () => { r && i.transitionEnd() }))) } if (Array.isArray(r)) for (s = 0; s < r.length; s += 1)r[s] !== i && r[s] instanceof n && o(r[s]); else r instanceof n && i !== r && o(r) } }) }, function (e) { let { swiper: t, extendParams: i, on: r } = e; i({ a11y: { enabled: !0, notificationClass: "swiper-notification", prevSlideMessage: "Previous slide", nextSlideMessage: "Next slide", firstSlideMessage: "This is the first slide", lastSlideMessage: "This is the last slide", paginationBulletMessage: "Go to slide {{index}}", slideLabelMessage: "{{index}} / {{slidesLength}}", containerMessage: null, containerRoleDescriptionMessage: null, itemRoleDescriptionMessage: null, slideRole: "group", id: null } }), t.a11y = { clicked: !1 }; let s, o, a = null, l = (new Date).getTime(); function u(e) { const t = a; 0 !== t.length && (t.innerHTML = "", t.innerHTML = e) } function c(e) { (e = E(e)).forEach(e => { e.setAttribute("tabIndex", "0") }) } function d(e) { (e = E(e)).forEach(e => { e.setAttribute("tabIndex", "-1") }) } function p(e, t) { (e = E(e)).forEach(e => { e.setAttribute("role", t) }) } function f(e, t) { (e = E(e)).forEach(e => { e.setAttribute("aria-roledescription", t) }) } function h(e, t) { (e = E(e)).forEach(e => { e.setAttribute("aria-label", t) }) } function m(e) { (e = E(e)).forEach(e => { e.setAttribute("aria-disabled", !0) }) } function g(e) { (e = E(e)).forEach(e => { e.setAttribute("aria-disabled", !1) }) } function y(e) { if (13 !== e.keyCode && 32 !== e.keyCode) return; const i = t.params.a11y, n = e.target; if (!t.pagination || !t.pagination.el || n !== t.pagination.el && !t.pagination.el.contains(e.target) || e.target.matches(Z(t.params.pagination.bulletClass))) { if (t.navigation && t.navigation.prevEl && t.navigation.nextEl) { const e = E(t.navigation.prevEl); E(t.navigation.nextEl).includes(n) && (t.isEnd && !t.params.loop || t.slideNext(), t.isEnd ? u(i.lastSlideMessage) : u(i.nextSlideMessage)), e.includes(n) && (t.isBeginning && !t.params.loop || t.slidePrev(), t.isBeginning ? u(i.firstSlideMessage) : u(i.prevSlideMessage)) } t.pagination && n.matches(Z(t.params.pagination.bulletClass)) && n.click() } } function b() { return t.pagination && t.pagination.bullets && t.pagination.bullets.length } function D() { return b() && t.params.pagination.clickable } const _ = (e, t, i) => { c(e), "BUTTON" !== e.tagName && (p(e, "button"), e.addEventListener("keydown", y)), h(e, i), function (e, t) { (e = E(e)).forEach(e => { e.setAttribute("aria-controls", t) }) }(e, t) }, x = e => { o && o !== e.target && !o.contains(e.target) && (s = !0), t.a11y.clicked = !0 }, T = () => { s = !1, requestAnimationFrame(() => { requestAnimationFrame(() => { t.destroyed || (t.a11y.clicked = !1) }) }) }, S = e => { l = (new Date).getTime() }, C = e => { if (t.a11y.clicked) return; if ((new Date).getTime() - l < 100) return; const i = e.target.closest(`.${t.params.slideClass}, swiper-slide`); if (!i || !t.slides.includes(i)) return; o = i; const n = t.slides.indexOf(i) === t.activeIndex, r = t.params.watchSlidesProgress && t.visibleSlides && t.visibleSlides.includes(i); n || r || e.sourceCapabilities && e.sourceCapabilities.firesTouchEvents || (t.isHorizontal() ? t.el.scrollLeft = 0 : t.el.scrollTop = 0, requestAnimationFrame(() => { s || (t.slideTo(t.slides.indexOf(i), 0), s = !1) })) }, M = () => { const e = t.params.a11y; e.itemRoleDescriptionMessage && f(t.slides, e.itemRoleDescriptionMessage), e.slideRole && p(t.slides, e.slideRole); const i = t.slides.length; e.slideLabelMessage && t.slides.forEach((n, r) => { const s = t.params.loop ? parseInt(n.getAttribute("data-swiper-slide-index"), 10) : r; h(n, e.slideLabelMessage.replace(/\{\{index\}\}/, s + 1).replace(/\{\{slidesLength\}\}/, i)) }) }; r("beforeInit", () => { a = v("span", t.params.a11y.notificationClass), a.setAttribute("aria-live", "assertive"), a.setAttribute("aria-atomic", "true") }), r("afterInit", () => { t.params.a11y.enabled && (() => { const e = t.params.a11y; t.el.append(a); const i = t.el; e.containerRoleDescriptionMessage && f(i, e.containerRoleDescriptionMessage), e.containerMessage && h(i, e.containerMessage); const r = t.wrapperEl, s = e.id || r.getAttribute("id") || "swiper-wrapper-" + (void 0 === (o = 16) && (o = 16), "x".repeat(o).replace(/x/g, () => Math.round(16 * Math.random()).toString(16))); var o; const l = t.params.autoplay && t.params.autoplay.enabled ? "off" : "polite"; var u; u = s, E(r).forEach(e => { e.setAttribute("id", u) }), function (e, t) { (e = E(e)).forEach(e => { e.setAttribute("aria-live", t) }) }(r, l), M(); let { nextEl: c, prevEl: d } = t.navigation ? t.navigation : {}; c = E(c), d = E(d), c && c.forEach(t => _(t, s, e.nextSlideMessage)), d && d.forEach(t => _(t, s, e.prevSlideMessage)), D() && E(t.pagination.el).forEach(e => { e.addEventListener("keydown", y) }), n().addEventListener("visibilitychange", S), t.el.addEventListener("focus", C, !0), t.el.addEventListener("focus", C, !0), t.el.addEventListener("pointerdown", x, !0), t.el.addEventListener("pointerup", T, !0) })() }), r("slidesLengthChange snapGridLengthChange slidesGridLengthChange", () => { t.params.a11y.enabled && M() }), r("fromEdge toEdge afterInit lock unlock", () => { t.params.a11y.enabled && function () { if (t.params.loop || t.params.rewind || !t.navigation) return; const { nextEl: e, prevEl: i } = t.navigation; i && (t.isBeginning ? (m(i), d(i)) : (g(i), c(i))), e && (t.isEnd ? (m(e), d(e)) : (g(e), c(e))) }() }), r("paginationUpdate", () => { t.params.a11y.enabled && function () { const e = t.params.a11y; b() && t.pagination.bullets.forEach(i => { t.params.pagination.clickable && (c(i), t.params.pagination.renderBullet || (p(i, "button"), h(i, e.paginationBulletMessage.replace(/\{\{index\}\}/, w(i) + 1)))), i.matches(Z(t.params.pagination.bulletActiveClass)) ? i.setAttribute("aria-current", "true") : i.removeAttribute("aria-current") }) }() }), r("destroy", () => { t.params.a11y.enabled && function () { a && a.remove(); let { nextEl: e, prevEl: i } = t.navigation ? t.navigation : {}; e = E(e), i = E(i), e && e.forEach(e => e.removeEventListener("keydown", y)), i && i.forEach(e => e.removeEventListener("keydown", y)), D() && E(t.pagination.el).forEach(e => { e.removeEventListener("keydown", y) }), n().removeEventListener("visibilitychange", S), t.el.removeEventListener("focus", C, !0), t.el.removeEventListener("pointerdown", x, !0), t.el.removeEventListener("pointerup", T, !0) }() }) }, function (e) { let { swiper: t, extendParams: i, on: n } = e; i({ history: { enabled: !1, root: "", replaceState: !1, key: "slides", keepQuery: !1 } }); let r = !1, o = {}; const a = e => e.toString().replace(/\s+/g, "-").replace(/[^\w-]+/g, "").replace(/--+/g, "-").replace(/^-+/, "").replace(/-+$/, ""), l = e => { const t = s(); let i; i = e ? new URL(e) : t.location; const n = i.pathname.slice(1).split("/").filter(e => "" !== e), r = n.length; return { key: n[r - 2], value: n[r - 1] } }, u = (e, i) => { const n = s(); if (!r || !t.params.history.enabled) return; let o; o = t.params.url ? new URL(t.params.url) : n.location; const l = t.virtual && t.params.virtual.enabled ? t.slidesEl.querySelector(`[data-swiper-slide-index="${i}"]`) : t.slides[i]; let u = a(l.getAttribute("data-history")); if (t.params.history.root.length > 0) { let i = t.params.history.root; "/" === i[i.length - 1] && (i = i.slice(0, i.length - 1)), u = `${i}/${e ? e + "/" : ""}${u}` } else o.pathname.includes(e) || (u = `${e ? e + "/" : ""}${u}`); t.params.history.keepQuery && (u += o.search); const c = n.history.state; c && c.value === u || (t.params.history.replaceState ? n.history.replaceState({ value: u }, null, u) : n.history.pushState({ value: u }, null, u)) }, c = (e, i, n) => { if (i) for (let r = 0, s = t.slides.length; r < s; r += 1) { const s = t.slides[r]; if (a(s.getAttribute("data-history")) === i) { const i = t.getSlideIndex(s); t.slideTo(i, e, n) } } else t.slideTo(0, e, n) }, d = () => { o = l(t.params.url), c(t.params.speed, o.value, !1) }; n("init", () => { t.params.history.enabled && (() => { const e = s(); if (t.params.history) { if (!e.history || !e.history.pushState) return t.params.history.enabled = !1, void (t.params.hashNavigation.enabled = !0); r = !0, o = l(t.params.url), o.key || o.value ? (c(0, o.value, t.params.runCallbacksOnInit), t.params.history.replaceState || e.addEventListener("popstate", d)) : t.params.history.replaceState || e.addEventListener("popstate", d) } })() }), n("destroy", () => { t.params.history.enabled && (() => { const e = s(); t.params.history.replaceState || e.removeEventListener("popstate", d) })() }), n("transitionEnd _freeModeNoMomentumRelease", () => { r && u(t.params.history.key, t.activeIndex) }), n("slideChange", () => { r && t.params.cssMode && u(t.params.history.key, t.activeIndex) }) }, function (e) { let { swiper: t, extendParams: i, emit: r, on: o } = e, a = !1; const l = n(), u = s(); i({ hashNavigation: { enabled: !1, replaceState: !1, watchState: !1, getSlideIndex(e, i) { if (t.virtual && t.params.virtual.enabled) { const e = t.slides.filter(e => e.getAttribute("data-hash") === i)[0]; return e ? parseInt(e.getAttribute("data-swiper-slide-index"), 10) : 0 } return t.getSlideIndex(m(t.slidesEl, `.${t.params.slideClass}[data-hash="${i}"], swiper-slide[data-hash="${i}"]`)[0]) } } }); const c = () => { r("hashChange"); const e = l.location.hash.replace("#", ""), i = t.virtual && t.params.virtual.enabled ? t.slidesEl.querySelector(`[data-swiper-slide-index="${t.activeIndex}"]`) : t.slides[t.activeIndex]; if (e !== (i ? i.getAttribute("data-hash") : "")) { const i = t.params.hashNavigation.getSlideIndex(t, e); if (void 0 === i || Number.isNaN(i)) return; t.slideTo(i) } }, d = () => { if (!a || !t.params.hashNavigation.enabled) return; const e = t.virtual && t.params.virtual.enabled ? t.slidesEl.querySelector(`[data-swiper-slide-index="${t.activeIndex}"]`) : t.slides[t.activeIndex], i = e ? e.getAttribute("data-hash") || e.getAttribute("data-history") : ""; t.params.hashNavigation.replaceState && u.history && u.history.replaceState ? (u.history.replaceState(null, null, "#" + i || ""), r("hashSet")) : (l.location.hash = i || "", r("hashSet")) }; o("init", () => { t.params.hashNavigation.enabled && (() => { if (!t.params.hashNavigation.enabled || t.params.history && t.params.history.enabled) return; a = !0; const e = l.location.hash.replace("#", ""); if (e) { const i = 0, n = t.params.hashNavigation.getSlideIndex(t, e); t.slideTo(n || 0, i, t.params.runCallbacksOnInit, !0) } t.params.hashNavigation.watchState && u.addEventListener("hashchange", c) })() }), o("destroy", () => { t.params.hashNavigation.enabled && t.params.hashNavigation.watchState && u.removeEventListener("hashchange", c) }), o("transitionEnd _freeModeNoMomentumRelease", () => { a && d() }), o("slideChange", () => { a && t.params.cssMode && d() }) }, function (e) { let t, i, { swiper: r, extendParams: s, on: o, emit: a, params: l } = e; r.autoplay = { running: !1, paused: !1, timeLeft: 0 }, s({ autoplay: { enabled: !1, delay: 3e3, waitForTransition: !0, disableOnInteraction: !1, stopOnLastSlide: !1, reverseDirection: !1, pauseOnMouseEnter: !1 } }); let u, c, d, p, f, h, m, g, v = l && l.autoplay ? l.autoplay.delay : 3e3, y = l && l.autoplay ? l.autoplay.delay : 3e3, b = (new Date).getTime(); function w(e) { r && !r.destroyed && r.wrapperEl && e.target === r.wrapperEl && (r.wrapperEl.removeEventListener("transitionend", w), g || S()) } const D = () => { if (r.destroyed || !r.autoplay.running) return; r.autoplay.paused ? c = !0 : c && (y = u, c = !1); const e = r.autoplay.paused ? u : b + y - (new Date).getTime(); r.autoplay.timeLeft = e, a("autoplayTimeLeft", e, e / v), i = requestAnimationFrame(() => { D() }) }, _ = e => { if (r.destroyed || !r.autoplay.running) return; cancelAnimationFrame(i), D(); let n = void 0 === e ? r.params.autoplay.delay : e; v = r.params.autoplay.delay, y = r.params.autoplay.delay; const s = (() => { let e; if (e = r.virtual && r.params.virtual.enabled ? r.slides.filter(e => e.classList.contains("swiper-slide-active"))[0] : r.slides[r.activeIndex], e) return parseInt(e.getAttribute("data-swiper-autoplay"), 10) })(); !Number.isNaN(s) && s > 0 && void 0 === e && (n = s, v = s, y = s), u = n; const o = r.params.speed, l = () => { r && !r.destroyed && (r.params.autoplay.reverseDirection ? !r.isBeginning || r.params.loop || r.params.rewind ? (r.slidePrev(o, !0, !0), a("autoplay")) : r.params.autoplay.stopOnLastSlide || (r.slideTo(r.slides.length - 1, o, !0, !0), a("autoplay")) : !r.isEnd || r.params.loop || r.params.rewind ? (r.slideNext(o, !0, !0), a("autoplay")) : r.params.autoplay.stopOnLastSlide || (r.slideTo(0, o, !0, !0), a("autoplay")), r.params.cssMode && (b = (new Date).getTime(), requestAnimationFrame(() => { _() }))) }; return n > 0 ? (clearTimeout(t), t = setTimeout(() => { l() }, n)) : requestAnimationFrame(() => { l() }), n }, x = () => { b = (new Date).getTime(), r.autoplay.running = !0, _(), a("autoplayStart") }, E = () => { r.autoplay.running = !1, clearTimeout(t), cancelAnimationFrame(i), a("autoplayStop") }, T = (e, i) => { if (r.destroyed || !r.autoplay.running) return; clearTimeout(t), e || (m = !0); const n = () => { a("autoplayPause"), r.params.autoplay.waitForTransition ? r.wrapperEl.addEventListener("transitionend", w) : S() }; if (r.autoplay.paused = !0, i) return h && (u = r.params.autoplay.delay), h = !1, void n(); const s = u || r.params.autoplay.delay; u = s - ((new Date).getTime() - b), r.isEnd && u < 0 && !r.params.loop || (u < 0 && (u = 0), n()) }, S = () => { r.isEnd && u < 0 && !r.params.loop || r.destroyed || !r.autoplay.running || (b = (new Date).getTime(), m ? (m = !1, _(u)) : _(), r.autoplay.paused = !1, a("autoplayResume")) }, C = () => { if (r.destroyed || !r.autoplay.running) return; const e = n(); "hidden" === e.visibilityState && (m = !0, T(!0)), "visible" === e.visibilityState && S() }, M = e => { "mouse" === e.pointerType && (m = !0, g = !0, r.animating || r.autoplay.paused || T(!0)) }, k = e => { "mouse" === e.pointerType && (g = !1, r.autoplay.paused && S()) }; o("init", () => { r.params.autoplay.enabled && (r.params.autoplay.pauseOnMouseEnter && (r.el.addEventListener("pointerenter", M), r.el.addEventListener("pointerleave", k)), n().addEventListener("visibilitychange", C), x()) }), o("destroy", () => { r.el.removeEventListener("pointerenter", M), r.el.removeEventListener("pointerleave", k), n().removeEventListener("visibilitychange", C), r.autoplay.running && E() }), o("_freeModeStaticRelease", () => { (p || m) && S() }), o("_freeModeNoMomentumRelease", () => { r.params.autoplay.disableOnInteraction ? E() : T(!0, !0) }), o("beforeTransitionStart", (e, t, i) => { !r.destroyed && r.autoplay.running && (i || !r.params.autoplay.disableOnInteraction ? T(!0, !0) : E()) }), o("sliderFirstMove", () => { !r.destroyed && r.autoplay.running && (r.params.autoplay.disableOnInteraction ? E() : (d = !0, p = !1, m = !1, f = setTimeout(() => { m = !0, p = !0, T(!0) }, 200))) }), o("touchEnd", () => { if (!r.destroyed && r.autoplay.running && d) { if (clearTimeout(f), clearTimeout(t), r.params.autoplay.disableOnInteraction) return p = !1, void (d = !1); p && r.params.cssMode && S(), p = !1, d = !1 } }), o("slideChange", () => { !r.destroyed && r.autoplay.running && (h = !0) }), Object.assign(r.autoplay, { start: x, stop: E, pause: T, resume: S }) }, function (e) { let { swiper: t, extendParams: i, on: r } = e; i({ thumbs: { swiper: null, multipleActiveThumbs: !0, autoScrollOffset: 0, slideThumbActiveClass: "swiper-slide-thumb-active", thumbsContainerClass: "swiper-thumbs" } }); let s = !1, o = !1; function a() { const e = t.thumbs.swiper; if (!e || e.destroyed) return; const i = e.clickedIndex, n = e.clickedSlide; if (n && n.classList.contains(t.params.thumbs.slideThumbActiveClass)) return; if (null == i) return; let r; r = e.params.loop ? parseInt(e.clickedSlide.getAttribute("data-swiper-slide-index"), 10) : i, t.params.loop ? t.slideToLoop(r) : t.slideTo(r) } function l() { const { thumbs: e } = t.params; if (s) return !1; s = !0; const i = t.constructor; if (e.swiper instanceof i) t.thumbs.swiper = e.swiper, Object.assign(t.thumbs.swiper.originalParams, { watchSlidesProgress: !0, slideToClickedSlide: !1 }), Object.assign(t.thumbs.swiper.params, { watchSlidesProgress: !0, slideToClickedSlide: !1 }), t.thumbs.swiper.update(); else if (c(e.swiper)) { const n = Object.assign({}, e.swiper); Object.assign(n, { watchSlidesProgress: !0, slideToClickedSlide: !1 }), t.thumbs.swiper = new i(n), o = !0 } return t.thumbs.swiper.el.classList.add(t.params.thumbs.thumbsContainerClass), t.thumbs.swiper.on("tap", a), !0 } function u(e) { const i = t.thumbs.swiper; if (!i || i.destroyed) return; const n = "auto" === i.params.slidesPerView ? i.slidesPerViewDynamic() : i.params.slidesPerView; let r = 1; const s = t.params.thumbs.slideThumbActiveClass; if (t.params.slidesPerView > 1 && !t.params.centeredSlides && (r = t.params.slidesPerView), t.params.thumbs.multipleActiveThumbs || (r = 1), r = Math.floor(r), i.slides.forEach(e => e.classList.remove(s)), i.params.loop || i.params.virtual && i.params.virtual.enabled) for (let e = 0; e < r; e += 1)m(i.slidesEl, `[data-swiper-slide-index="${t.realIndex + e}"]`).forEach(e => { e.classList.add(s) }); else for (let e = 0; e < r; e += 1)i.slides[t.realIndex + e] && i.slides[t.realIndex + e].classList.add(s); const o = t.params.thumbs.autoScrollOffset, a = o && !i.params.loop; if (t.realIndex !== i.realIndex || a) { const r = i.activeIndex; let s, l; if (i.params.loop) { const e = i.slides.filter(e => e.getAttribute("data-swiper-slide-index") === "" + t.realIndex)[0]; s = i.slides.indexOf(e), l = t.activeIndex > t.previousIndex ? "next" : "prev" } else s = t.realIndex, l = s > t.previousIndex ? "next" : "prev"; a && (s += "next" === l ? o : -1 * o), i.visibleSlidesIndexes && i.visibleSlidesIndexes.indexOf(s) < 0 && (i.params.centeredSlides ? s = s > r ? s - Math.floor(n / 2) + 1 : s + Math.floor(n / 2) - 1 : s > r && i.params.slidesPerGroup, i.slideTo(s, e ? 0 : void 0)) } } t.thumbs = { swiper: null }, r("beforeInit", () => { const { thumbs: e } = t.params; if (e && e.swiper) if ("string" == typeof e.swiper || e.swiper instanceof HTMLElement) { const i = n(), r = () => { const n = "string" == typeof e.swiper ? i.querySelector(e.swiper) : e.swiper; if (n && n.swiper) e.swiper = n.swiper, l(), u(!0); else if (n) { const i = r => { e.swiper = r.detail[0], n.removeEventListener("init", i), l(), u(!0), e.swiper.update(), t.update() }; n.addEventListener("init", i) } return n }, s = () => { t.destroyed || r() || requestAnimationFrame(s) }; requestAnimationFrame(s) } else l(), u(!0) }), r("slideChange update resize observerUpdate", () => { u() }), r("setTransition", (e, i) => { const n = t.thumbs.swiper; n && !n.destroyed && n.setTransition(i) }), r("beforeDestroy", () => { const e = t.thumbs.swiper; e && !e.destroyed && o && e.destroy() }), Object.assign(t.thumbs, { init: l, update: u }) }, function (e) { let { swiper: t, extendParams: i, emit: n, once: r } = e; i({ freeMode: { enabled: !1, momentum: !0, momentumRatio: 1, momentumBounce: !0, momentumBounceRatio: 1, momentumVelocityRatio: 1, sticky: !1, minimumVelocity: .02 } }), Object.assign(t, { freeMode: { onTouchStart: function () { if (t.params.cssMode) return; const e = t.getTranslate(); t.setTranslate(e), t.setTransition(0), t.touchEventsData.velocities.length = 0, t.freeMode.onTouchEnd({ currentPos: t.rtl ? t.translate : -t.translate }) }, onTouchMove: function () { if (t.params.cssMode) return; const { touchEventsData: e, touches: i } = t; 0 === e.velocities.length && e.velocities.push({ position: i[t.isHorizontal() ? "startX" : "startY"], time: e.touchStartTime }), e.velocities.push({ position: i[t.isHorizontal() ? "currentX" : "currentY"], time: l() }) }, onTouchEnd: function (e) { let { currentPos: i } = e; if (t.params.cssMode) return; const { params: s, wrapperEl: o, rtlTranslate: a, snapGrid: u, touchEventsData: c } = t, d = l() - c.touchStartTime; if (i < -t.minTranslate()) t.slideTo(t.activeIndex); else if (i > -t.maxTranslate()) t.slides.length < u.length ? t.slideTo(u.length - 1) : t.slideTo(t.slides.length - 1); else { if (s.freeMode.momentum) { if (c.velocities.length > 1) { const e = c.velocities.pop(), i = c.velocities.pop(), n = e.position - i.position, r = e.time - i.time; t.velocity = n / r, t.velocity /= 2, Math.abs(t.velocity) < s.freeMode.minimumVelocity && (t.velocity = 0), (r > 150 || l() - e.time > 300) && (t.velocity = 0) } else t.velocity = 0; t.velocity *= s.freeMode.momentumVelocityRatio, c.velocities.length = 0; let e = 1e3 * s.freeMode.momentumRatio; const i = t.velocity * e; let d = t.translate + i; a && (d = -d); let p, f = !1; const h = 20 * Math.abs(t.velocity) * s.freeMode.momentumBounceRatio; let m; if (d < t.maxTranslate()) s.freeMode.momentumBounce ? (d + t.maxTranslate() < -h && (d = t.maxTranslate() - h), p = t.maxTranslate(), f = !0, c.allowMomentumBounce = !0) : d = t.maxTranslate(), s.loop && s.centeredSlides && (m = !0); else if (d > t.minTranslate()) s.freeMode.momentumBounce ? (d - t.minTranslate() > h && (d = t.minTranslate() + h), p = t.minTranslate(), f = !0, c.allowMomentumBounce = !0) : d = t.minTranslate(), s.loop && s.centeredSlides && (m = !0); else if (s.freeMode.sticky) { let e; for (let t = 0; t < u.length; t += 1)if (u[t] > -d) { e = t; break } d = Math.abs(u[e] - d) < Math.abs(u[e - 1] - d) || "next" === t.swipeDirection ? u[e] : u[e - 1], d = -d } if (m && r("transitionEnd", () => { t.loopFix() }), 0 !== t.velocity) { if (e = a ? Math.abs((-d - t.translate) / t.velocity) : Math.abs((d - t.translate) / t.velocity), s.freeMode.sticky) { const i = Math.abs((a ? -d : d) - t.translate), n = t.slidesSizesGrid[t.activeIndex]; e = i < n ? s.speed : i < 2 * n ? 1.5 * s.speed : 2.5 * s.speed } } else if (s.freeMode.sticky) return void t.slideToClosest(); s.freeMode.momentumBounce && f ? (t.updateProgress(p), t.setTransition(e), t.setTranslate(d), t.transitionStart(!0, t.swipeDirection), t.animating = !0, _(o, () => { t && !t.destroyed && c.allowMomentumBounce && (n("momentumBounce"), t.setTransition(s.speed), setTimeout(() => { t.setTranslate(p), _(o, () => { t && !t.destroyed && t.transitionEnd() }) }, 0)) })) : t.velocity ? (n("_freeModeNoMomentumRelease"), t.updateProgress(d), t.setTransition(e), t.setTranslate(d), t.transitionStart(!0, t.swipeDirection), t.animating || (t.animating = !0, _(o, () => { t && !t.destroyed && t.transitionEnd() }))) : t.updateProgress(d), t.updateActiveIndex(), t.updateSlidesClasses() } else { if (s.freeMode.sticky) return void t.slideToClosest(); s.freeMode && n("_freeModeNoMomentumRelease") } (!s.freeMode.momentum || d >= s.longSwipesMs) && (n("_freeModeStaticRelease"), t.updateProgress(), t.updateActiveIndex(), t.updateSlidesClasses()) } } } }) }, function (e) { let t, i, n, r, { swiper: s, extendParams: o, on: a } = e; o({ grid: { rows: 1, fill: "column" } }); const l = () => { let e = s.params.spaceBetween; return "string" == typeof e && e.indexOf("%") >= 0 ? e = parseFloat(e.replace("%", "")) / 100 * s.size : "string" == typeof e && (e = parseFloat(e)), e }; a("init", () => { r = s.params.grid && s.params.grid.rows > 1 }), a("update", () => { const { params: e, el: t } = s, i = e.grid && e.grid.rows > 1; r && !i ? (t.classList.remove(e.containerModifierClass + "grid", e.containerModifierClass + "grid-column"), n = 1, s.emitContainerClasses()) : !r && i && (t.classList.add(e.containerModifierClass + "grid"), "column" === e.grid.fill && t.classList.add(e.containerModifierClass + "grid-column"), s.emitContainerClasses()), r = i }), s.grid = { initSlides: e => { const { slidesPerView: r } = s.params, { rows: o, fill: a } = s.params.grid, l = s.virtual && s.params.virtual.enabled ? s.virtual.slides.length : e.length; n = Math.floor(l / o), t = Math.floor(l / o) === l / o ? l : Math.ceil(l / o) * o, "auto" !== r && "row" === a && (t = Math.max(t, r * o)), i = t / o }, unsetSlides: () => { s.slides && s.slides.forEach(e => { e.swiperSlideGridSet && (e.style.height = "", e.style[s.getDirectionLabel("margin-top")] = "") }) }, updateSlide: (e, r, o) => { const { slidesPerGroup: a } = s.params, u = l(), { rows: c, fill: d } = s.params.grid, p = s.virtual && s.params.virtual.enabled ? s.virtual.slides.length : o.length; let f, h, m; if ("row" === d && a > 1) { const i = Math.floor(e / (a * c)), n = e - c * a * i, s = 0 === i ? a : Math.min(Math.ceil((p - i * c * a) / c), a); m = Math.floor(n / s), h = n - m * s + i * a, f = h + m * t / c, r.style.order = f } else "column" === d ? (h = Math.floor(e / c), m = e - h * c, (h > n || h === n && m === c - 1) && (m += 1, m >= c && (m = 0, h += 1))) : (m = Math.floor(e / i), h = e - m * i); r.row = m, r.column = h, r.style.height = `calc((100% - ${(c - 1) * u}px) / ${c})`, r.style[s.getDirectionLabel("margin-top")] = 0 !== m ? u && u + "px" : "", r.swiperSlideGridSet = !0 }, updateWrapperSize: (e, i) => { const { centeredSlides: n, roundLengths: r } = s.params, o = l(), { rows: a } = s.params.grid; if (s.virtualSize = (e + o) * t, s.virtualSize = Math.ceil(s.virtualSize / a) - o, s.params.cssMode || (s.wrapperEl.style[s.getDirectionLabel("width")] = s.virtualSize + o + "px"), n) { const e = []; for (let t = 0; t < i.length; t += 1) { let n = i[t]; r && (n = Math.floor(n)), i[t] < s.virtualSize + i[0] && e.push(n) } i.splice(0, i.length), i.push(...e) } } } }, function (e) { let { swiper: t } = e; Object.assign(t, { appendSlide: ee.bind(t), prependSlide: te.bind(t), addSlide: ie.bind(t), removeSlide: ne.bind(t), removeAllSlides: re.bind(t) }) }, function (e) { let { swiper: t, extendParams: i, on: n } = e; i({ fadeEffect: { crossFade: !1 } }), se({ effect: "fade", swiper: t, on: n, setTranslate: () => { const { slides: e } = t; t.params.fadeEffect; for (let i = 0; i < e.length; i += 1) { const e = t.slides[i]; let n = -e.swiperSlideOffset; t.params.virtualTranslate || (n -= t.translate); let r = 0; t.isHorizontal() || (r = n, n = 0); const s = t.params.fadeEffect.crossFade ? Math.max(1 - Math.abs(e.progress), 0) : 1 + Math.min(Math.max(e.progress, -1), 0), o = oe(0, e); o.style.opacity = s, o.style.transform = `translate3d(${n}px, ${r}px, 0px)` } }, setTransition: e => { const i = t.slides.map(e => h(e)); i.forEach(t => { t.style.transitionDuration = e + "ms" }), ae({ swiper: t, duration: e, transformElements: i, allSlides: !0 }) }, overwriteParams: () => ({ slidesPerView: 1, slidesPerGroup: 1, watchSlidesProgress: !0, spaceBetween: 0, virtualTranslate: !t.params.cssMode }) }) }, function (e) { let { swiper: t, extendParams: i, on: n } = e; i({ cubeEffect: { slideShadows: !0, shadow: !0, shadowOffset: 20, shadowScale: .94 } }); const r = (e, t, i) => { let n = i ? e.querySelector(".swiper-slide-shadow-left") : e.querySelector(".swiper-slide-shadow-top"), r = i ? e.querySelector(".swiper-slide-shadow-right") : e.querySelector(".swiper-slide-shadow-bottom"); n || (n = v("div", ("swiper-slide-shadow-cube swiper-slide-shadow-" + (i ? "left" : "top")).split(" ")), e.append(n)), r || (r = v("div", ("swiper-slide-shadow-cube swiper-slide-shadow-" + (i ? "right" : "bottom")).split(" ")), e.append(r)), n && (n.style.opacity = Math.max(-t, 0)), r && (r.style.opacity = Math.max(t, 0)) }; se({ effect: "cube", swiper: t, on: n, setTranslate: () => { const { el: e, wrapperEl: i, slides: n, width: s, height: o, rtlTranslate: a, size: l, browser: u } = t, c = t.params.cubeEffect, d = t.isHorizontal(), p = t.virtual && t.params.virtual.enabled; let f, h = 0; c.shadow && (d ? (f = t.wrapperEl.querySelector(".swiper-cube-shadow"), f || (f = v("div", "swiper-cube-shadow"), t.wrapperEl.append(f)), f.style.height = s + "px") : (f = e.querySelector(".swiper-cube-shadow"), f || (f = v("div", "swiper-cube-shadow"), e.append(f)))); for (let e = 0; e < n.length; e += 1) { const i = n[e]; let s = e; p && (s = parseInt(i.getAttribute("data-swiper-slide-index"), 10)); let o = 90 * s, u = Math.floor(o / 360); a && (o = -o, u = Math.floor(-o / 360)); const f = Math.max(Math.min(i.progress, 1), -1); let m = 0, g = 0, v = 0; s % 4 == 0 ? (m = 4 * -u * l, v = 0) : (s - 1) % 4 == 0 ? (m = 0, v = 4 * -u * l) : (s - 2) % 4 == 0 ? (m = l + 4 * u * l, v = l) : (s - 3) % 4 == 0 && (m = -l, v = 3 * l + 4 * l * u), a && (m = -m), d || (g = m, m = 0); const y = `rotateX(${d ? 0 : -o}deg) rotateY(${d ? o : 0}deg) translate3d(${m}px, ${g}px, ${v}px)`; f <= 1 && f > -1 && (h = 90 * s + 90 * f, a && (h = 90 * -s - 90 * f), t.browser && t.browser.need3dFix && Math.abs(h) / 90 % 2 == 1 && (h += .001)), i.style.transform = y, c.slideShadows && r(i, f, d) } if (i.style.transformOrigin = `50% 50% -${l / 2}px`, i.style["-webkit-transform-origin"] = `50% 50% -${l / 2}px`, c.shadow) if (d) f.style.transform = `translate3d(0px, ${s / 2 + c.shadowOffset}px, ${-s / 2}px) rotateX(89.99deg) rotateZ(0deg) scale(${c.shadowScale})`; else { const e = Math.abs(h) - 90 * Math.floor(Math.abs(h) / 90), t = 1.5 - (Math.sin(2 * e * Math.PI / 360) / 2 + Math.cos(2 * e * Math.PI / 360) / 2), i = c.shadowScale, n = c.shadowScale / t, r = c.shadowOffset; f.style.transform = `scale3d(${i}, 1, ${n}) translate3d(0px, ${o / 2 + r}px, ${-o / 2 / n}px) rotateX(-89.99deg)` } const m = (u.isSafari || u.isWebView) && u.needPerspectiveFix ? -l / 2 : 0; i.style.transform = `translate3d(0px,0,${m}px) rotateX(${t.isHorizontal() ? 0 : h}deg) rotateY(${t.isHorizontal() ? -h : 0}deg)`, i.style.setProperty("--swiper-cube-translate-z", m + "px") }, setTransition: e => { const { el: i, slides: n } = t; if (n.forEach(t => { t.style.transitionDuration = e + "ms", t.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach(t => { t.style.transitionDuration = e + "ms" }) }), t.params.cubeEffect.shadow && !t.isHorizontal()) { const t = i.querySelector(".swiper-cube-shadow"); t && (t.style.transitionDuration = e + "ms") } }, recreateShadows: () => { const e = t.isHorizontal(); t.slides.forEach(t => { const i = Math.max(Math.min(t.progress, 1), -1); r(t, i, e) }) }, getEffectParams: () => t.params.cubeEffect, perspective: () => !0, overwriteParams: () => ({ slidesPerView: 1, slidesPerGroup: 1, watchSlidesProgress: !0, resistanceRatio: 0, spaceBetween: 0, centeredSlides: !1, virtualTranslate: !0 }) }) }, function (e) { let { swiper: t, extendParams: i, on: n } = e; i({ flipEffect: { slideShadows: !0, limitRotation: !0 } }); const r = (e, i) => { let n = t.isHorizontal() ? e.querySelector(".swiper-slide-shadow-left") : e.querySelector(".swiper-slide-shadow-top"), r = t.isHorizontal() ? e.querySelector(".swiper-slide-shadow-right") : e.querySelector(".swiper-slide-shadow-bottom"); n || (n = le("flip", e, t.isHorizontal() ? "left" : "top")), r || (r = le("flip", e, t.isHorizontal() ? "right" : "bottom")), n && (n.style.opacity = Math.max(-i, 0)), r && (r.style.opacity = Math.max(i, 0)) }; se({ effect: "flip", swiper: t, on: n, setTranslate: () => { const { slides: e, rtlTranslate: i } = t, n = t.params.flipEffect; for (let s = 0; s < e.length; s += 1) { const o = e[s]; let a = o.progress; t.params.flipEffect.limitRotation && (a = Math.max(Math.min(o.progress, 1), -1)); const l = o.swiperSlideOffset; let u = -180 * a, c = 0, d = t.params.cssMode ? -l - t.translate : -l, p = 0; t.isHorizontal() ? i && (u = -u) : (p = d, d = 0, c = -u, u = 0), t.browser && t.browser.need3dFix && (Math.abs(u) / 90 % 2 == 1 && (u += .001), Math.abs(c) / 90 % 2 == 1 && (c += .001)), o.style.zIndex = -Math.abs(Math.round(a)) + e.length, n.slideShadows && r(o, a); const f = `translate3d(${d}px, ${p}px, 0px) rotateX(${c}deg) rotateY(${u}deg)`; oe(0, o).style.transform = f } }, setTransition: e => { const i = t.slides.map(e => h(e)); i.forEach(t => { t.style.transitionDuration = e + "ms", t.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach(t => { t.style.transitionDuration = e + "ms" }) }), ae({ swiper: t, duration: e, transformElements: i }) }, recreateShadows: () => { t.params.flipEffect, t.slides.forEach(e => { let i = e.progress; t.params.flipEffect.limitRotation && (i = Math.max(Math.min(e.progress, 1), -1)), r(e, i) }) }, getEffectParams: () => t.params.flipEffect, perspective: () => !0, overwriteParams: () => ({ slidesPerView: 1, slidesPerGroup: 1, watchSlidesProgress: !0, spaceBetween: 0, virtualTranslate: !t.params.cssMode }) }) }, function (e) { let { swiper: t, extendParams: i, on: n } = e; i({ coverflowEffect: { rotate: 50, stretch: 0, depth: 100, scale: 1, modifier: 1, slideShadows: !0 } }), se({ effect: "coverflow", swiper: t, on: n, setTranslate: () => { const { width: e, height: i, slides: n, slidesSizesGrid: r } = t, s = t.params.coverflowEffect, o = t.isHorizontal(), a = t.translate, l = o ? e / 2 - a : i / 2 - a, u = o ? s.rotate : -s.rotate, c = s.depth; for (let e = 0, i = n.length; e < i; e += 1) { const i = n[e], a = r[e], d = (l - i.swiperSlideOffset - a / 2) / a, p = "function" == typeof s.modifier ? s.modifier(d) : d * s.modifier; let f = o ? u * p : 0, h = o ? 0 : u * p, m = -c * Math.abs(p), g = s.stretch; "string" == typeof g && -1 !== g.indexOf("%") && (g = parseFloat(s.stretch) / 100 * a); let v = o ? 0 : g * p, y = o ? g * p : 0, b = 1 - (1 - s.scale) * Math.abs(p); Math.abs(y) < .001 && (y = 0), Math.abs(v) < .001 && (v = 0), Math.abs(m) < .001 && (m = 0), Math.abs(f) < .001 && (f = 0), Math.abs(h) < .001 && (h = 0), Math.abs(b) < .001 && (b = 0), t.browser && t.browser.need3dFix && (Math.abs(f) / 90 % 2 == 1 && (f += .001), Math.abs(h) / 90 % 2 == 1 && (h += .001)); const w = `translate3d(${y}px,${v}px,${m}px) rotateX(${h}deg) rotateY(${f}deg) scale(${b})`; if (oe(0, i).style.transform = w, i.style.zIndex = 1 - Math.abs(Math.round(p)), s.slideShadows) { let e = o ? i.querySelector(".swiper-slide-shadow-left") : i.querySelector(".swiper-slide-shadow-top"), t = o ? i.querySelector(".swiper-slide-shadow-right") : i.querySelector(".swiper-slide-shadow-bottom"); e || (e = le("coverflow", i, o ? "left" : "top")), t || (t = le("coverflow", i, o ? "right" : "bottom")), e && (e.style.opacity = p > 0 ? p : 0), t && (t.style.opacity = -p > 0 ? -p : 0) } } }, setTransition: e => { t.slides.map(e => h(e)).forEach(t => { t.style.transitionDuration = e + "ms", t.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach(t => { t.style.transitionDuration = e + "ms" }) }) }, perspective: () => !0, overwriteParams: () => ({ watchSlidesProgress: !0 }) }) }, function (e) { let { swiper: t, extendParams: i, on: n } = e; i({ creativeEffect: { limitProgress: 1, shadowPerProgress: !1, progressMultiplier: 1, perspective: !0, prev: { translate: [0, 0, 0], rotate: [0, 0, 0], opacity: 1, scale: 1 }, next: { translate: [0, 0, 0], rotate: [0, 0, 0], opacity: 1, scale: 1 } } }); const r = e => "string" == typeof e ? e : e + "px"; se({ effect: "creative", swiper: t, on: n, setTranslate: () => { const { slides: e, wrapperEl: i, slidesSizesGrid: n } = t, s = t.params.creativeEffect, { progressMultiplier: o } = s, a = t.params.centeredSlides; if (a) { const e = n[0] / 2 - t.params.slidesOffsetBefore || 0; i.style.transform = `translateX(calc(50% - ${e}px))` } for (let i = 0; i < e.length; i += 1) { const n = e[i], l = n.progress, u = Math.min(Math.max(n.progress, -s.limitProgress), s.limitProgress); let c = u; a || (c = Math.min(Math.max(n.originalProgress, -s.limitProgress), s.limitProgress)); const d = n.swiperSlideOffset, p = [t.params.cssMode ? -d - t.translate : -d, 0, 0], f = [0, 0, 0]; let h = !1; t.isHorizontal() || (p[1] = p[0], p[0] = 0); let m = { translate: [0, 0, 0], rotate: [0, 0, 0], scale: 1, opacity: 1 }; u < 0 ? (m = s.next, h = !0) : u > 0 && (m = s.prev, h = !0), p.forEach((e, t) => { p[t] = `calc(${e}px + (${r(m.translate[t])} * ${Math.abs(u * o)}))` }), f.forEach((e, i) => { let n = m.rotate[i] * Math.abs(u * o); t.browser && t.browser.need3dFix && Math.abs(n) / 90 % 2 == 1 && (n += .001), f[i] = n }), n.style.zIndex = -Math.abs(Math.round(l)) + e.length; const g = p.join(", "), v = `rotateX(${f[0]}deg) rotateY(${f[1]}deg) rotateZ(${f[2]}deg)`, y = c < 0 ? `scale(${1 + (1 - m.scale) * c * o})` : `scale(${1 - (1 - m.scale) * c * o})`, b = c < 0 ? 1 + (1 - m.opacity) * c * o : 1 - (1 - m.opacity) * c * o, w = `translate3d(${g}) ${v} ${y}`; if (h && m.shadow || !h) { let e = n.querySelector(".swiper-slide-shadow"); if (!e && m.shadow && (e = le("creative", n)), e) { const t = s.shadowPerProgress ? u * (1 / s.limitProgress) : u; e.style.opacity = Math.min(Math.max(Math.abs(t), 0), 1) } } const D = oe(0, n); D.style.transform = w, D.style.opacity = b, m.origin && (D.style.transformOrigin = m.origin) } }, setTransition: e => { const i = t.slides.map(e => h(e)); i.forEach(t => { t.style.transitionDuration = e + "ms", t.querySelectorAll(".swiper-slide-shadow").forEach(t => { t.style.transitionDuration = e + "ms" }) }), ae({ swiper: t, duration: e, transformElements: i, allSlides: !0 }) }, perspective: () => t.params.creativeEffect.perspective, overwriteParams: () => ({ watchSlidesProgress: !0, virtualTranslate: !t.params.cssMode }) }) }, function (e) { let { swiper: t, extendParams: i, on: n } = e; i({ cardsEffect: { slideShadows: !0, rotate: !0, perSlideRotate: 2, perSlideOffset: 8 } }), se({ effect: "cards", swiper: t, on: n, setTranslate: () => { const { slides: e, activeIndex: i, rtlTranslate: n } = t, r = t.params.cardsEffect, { startTranslate: s, isTouched: o } = t.touchEventsData, a = n ? -t.translate : t.translate; for (let l = 0; l < e.length; l += 1) { const u = e[l], c = u.progress, d = Math.min(Math.max(c, -4), 4); let p = u.swiperSlideOffset; t.params.centeredSlides && !t.params.cssMode && (t.wrapperEl.style.transform = `translateX(${t.minTranslate()}px)`), t.params.centeredSlides && t.params.cssMode && (p -= e[0].swiperSlideOffset); let f = t.params.cssMode ? -p - t.translate : -p, h = 0; const m = -100 * Math.abs(d); let g = 1, v = -r.perSlideRotate * d, y = r.perSlideOffset - .75 * Math.abs(d); const b = t.virtual && t.params.virtual.enabled ? t.virtual.from + l : l, w = (b === i || b === i - 1) && d > 0 && d < 1 && (o || t.params.cssMode) && a < s, D = (b === i || b === i + 1) && d < 0 && d > -1 && (o || t.params.cssMode) && a > s; if (w || D) { const e = (1 - Math.abs((Math.abs(d) - .5) / .5)) ** .5; v += -28 * d * e, g += -.5 * e, y += 96 * e, h = -25 * e * Math.abs(d) + "%" } if (f = d < 0 ? `calc(${f}px ${n ? "-" : "+"} (${y * Math.abs(d)}%))` : d > 0 ? `calc(${f}px ${n ? "-" : "+"} (-${y * Math.abs(d)}%))` : f + "px", !t.isHorizontal()) { const e = h; h = f, f = e } const _ = d < 0 ? "" + (1 + (1 - g) * d) : "" + (1 - (1 - g) * d), x = `\n translate3d(${f}, ${h}, ${m}px)\n rotateZ(${r.rotate ? n ? -v : v : 0}deg)\n scale(${_})\n `; if (r.slideShadows) { let e = u.querySelector(".swiper-slide-shadow"); e || (e = le("cards", u)), e && (e.style.opacity = Math.min(Math.max((Math.abs(d) - .5) / .5, 0), 1)) } u.style.zIndex = -Math.abs(Math.round(c)) + e.length, oe(0, u).style.transform = x } }, setTransition: e => { const i = t.slides.map(e => h(e)); i.forEach(t => { t.style.transitionDuration = e + "ms", t.querySelectorAll(".swiper-slide-shadow").forEach(t => { t.style.transitionDuration = e + "ms" }) }), ae({ swiper: t, duration: e, transformElements: i }) }, perspective: () => !0, overwriteParams: () => ({ watchSlidesProgress: !0, virtualTranslate: !t.params.cssMode }) }) }]; return K.use(ue), K }();
Copyright ©2021 || Defacer Indonesia