PageSourceSearch

https://tincan.kids/cdn/shop/t/25/assets/swiper-bundle.min.js?v=173332990101541922801745273298

js tincan.kids collected 2026-10-02 06:01:20 UTC 261,687 bytes, 7,673 lines download raw bytes

1/**
2 * Swiper 11.2.6
3 * Most modern mobile touch slider and framework with hardware accelerated transitions
4 * https://swiperjs.com
5 *
6 * Copyright 2014-2025 Vladimir Kharlampidi
7 *
8 * Released under the MIT License
9 *
10 * Released on: March 19, 2025
11 */
12
13var Swiper = (function () {
14  "use strict";
15  function e(e) {
16    return (
17      null !== e &&
18      "object" == typeof e &&
19      "constructor" in e &&
20      e.constructor === Object
21    );
22  }
23  function t(s, a) {
24    void 0 === s && (s = {}), void 0 === a && (a = {});
25    const i = ["__proto__", "constructor", "prototype"];
26    Object.keys(a)
27      .filter((e) => i.indexOf(e) < 0)
28      .forEach((i) => {
29        void 0 === s[i]
30          ? (s[i] = a[i])
31          : e(a[i]) && e(s[i]) && Object.keys(a[i]).length > 0 && t(s[i], a[i]);
32      });
33  }
34  const s = {
35    body: {},
36    addEventListener() {},
37    removeEventListener() {},
38    activeElement: { blur() {}, nodeName: "" },
39    querySelector: () => null,
40    querySelectorAll: () => [],
41    getElementById: () => null,
42    createEvent: () => ({ initEvent() {} }),
43    createElement: () => ({
44      children: [],
45      childNodes: [],
46      style: {},
47      setAttribute() {},
48      getElementsByTagName: () => [],
49    }),
50    createElementNS: () => ({}),
51    importNode: () => null,
52    location: {
53      hash: "",
54      host: "",
55      hostname: "",
56      href: "",
57      origin: "",
58      pathname: "",
59      protocol: "",
60      search: "",
61    },
62  };
63  function a() {
64    const e = "undefined" != typeof document ? document : {};
65    return t(e, s), e;
66  }
67  const i = {
68    document: s,
69    navigator: { userAgent: "" },
70    location: {
71      hash: "",
72      host: "",
73      hostname: "",
74      href: "",
75      origin: "",
76      pathname: "",
77      protocol: "",
78      search: "",
79    },
80    history: { replaceState() {}, pushState() {}, go() {}, back() {} },
81    CustomEvent: function () {
82      return this;
83    },
84    addEventListener() {},
85    removeEventListener() {},
86    getComputedStyle: () => ({ getPropertyValue: () => "" }),
87    Image() {},
88    Date() {},
89    screen: {},
90    setTimeout() {},
91    clearTimeout() {},
92    matchMedia: () => ({}),
93    requestAnimationFrame: (e) =>
94      "undefined" == typeof setTimeout ? (e(), null) : setTimeout(e, 0),
95    cancelAnimationFrame(e) {
96      "undefined" != typeof setTimeout && clearTimeout(e);
97    },
98  };
99  function r() {
100    const e = "undefined" != typeof window ? window : {};
101    return t(e, i), e;
102  }
103  function n(e) {
104    return (
105      void 0 === e && (e = ""),
106      e
107        .trim()
108        .split(" ")
109        .filter((e) => !!e.trim())
110    );
111  }
112  function l(e, t) {
113    return void 0 === t && (t = 0), setTimeout(e, t);
114  }
115  function o() {
116    return Date.now();
117  }
118  function d(e, t) {
119    void 0 === t && (t = "x");
120    const s = r();
121    let a, i, n;
122    const l = (function (e) {
123      const t = r();
124      let s;
125      return (
126        t.getComputedStyle && (s = t.getComputedStyle(e, null)),
127        !s && e.currentStyle && (s = e.currentStyle),
128        s || (s = e.style),
129        s
130      );
131    })(e);
132    return (
133      s.WebKitCSSMatrix
134        ? ((i = l.transform || l.webkitTransform),
135          i.split(",").length > 6 &&
136            (i = i
137              .split(", ")
138              .map((e) => e.replace(",", "."))
139              .join(", ")),
140          (n = new s.WebKitCSSMatrix("none" === i ? "" : i)))
141        : ((n =
142            l.MozTransform ||
143            l.OTransform ||
144            l.MsTransform ||
145            l.msTransform ||
146            l.transform ||
147            l
148              .getPropertyValue("transform")
149              .replace("translate(", "matrix(1, 0, 0, 1,")),
150          (a = n.toString().split(","))),
151      "x" === t &&
152        (i = s.WebKitCSSMatrix
153          ? n.m41
154          : 16 === a.length
155          ? parseFloat(a[12])
156          : parseFloat(a[4])),
157      "y" === t &&
158        (i = s.WebKitCSSMatrix
159          ? n.m42
160          : 16 === a.length
161          ? parseFloat(a[13])
162          : parseFloat(a[5])),
163      i || 0
164    );
165  }
166  function c(e) {
167    return (
168      "object" == typeof e &&
169      null !== e &&
170      e.constructor &&
171      "Object" === Object.prototype.toString.call(e).slice(8, -1)
172    );
173  }
174  function p() {
175    const e = Object(arguments.length <= 0 ? void 0 : arguments[0]),
176      t = ["__proto__", "constructor", "prototype"];
177    for (let a = 1; a < arguments.length; a += 1) {
178      const i = a < 0 || arguments.length <= a ? void 0 : arguments[a];
179      if (
180        null != i &&
181        ((s = i),
182        !("undefined" != typeof window && void 0 !== window.HTMLElement
183          ? s instanceof HTMLElement
184          : s && (1 === s.nodeType || 11 === s.nodeType)))
185      ) {
186        const s = Object.keys(Object(i)).filter((e) => t.indexOf(e) < 0);
187        for (let t = 0, a = s.length; t < a; t += 1) {
188          const a = s[t],
189            r = Object.getOwnPropertyDescriptor(i, a);
190          void 0 !== r &&
191            r.enumerable &&
192            (c(e[a]) && c(i[a])
193              ? i[a].__swiper__
194                ? (e[a] = i[a])
195                : p(e[a], i[a])
196              : !c(e[a]) && c(i[a])
197              ? ((e[a] = {}), i[a].__swiper__ ? (e[a] = i[a]) : p(e[a], i[a]))
198              : (e[a] = i[a]));
199        }
200      }
201    }
202    var s;
203    return e;
204  }
205  function u(e, t, s) {
206    e.style.setProperty(t, s);
207  }
208  function m(e) {
209    let { swiper: t, targetPosition: s, side: a } = e;
210    const i = r(),
211      n = -t.translate;
212    let l,
213      o = null;
214    const d = t.params.speed;
215    (t.wrapperEl.style.scrollSnapType = "none"),
216      i.cancelAnimationFrame(t.cssModeFrameID);
217    const c = s > n ? "next" : "prev",
218      p = (e, t) => ("next" === c && e >= t) || ("prev" === c && e <= t),
219      u = () => {
220        (l = new Date().getTime()), null === o && (o = l);
221        const e = Math.max(Math.min((l - o) / d, 1), 0),
222          r = 0.5 - Math.cos(e * Math.PI) / 2;
223        let c = n + r * (s - n);
224        if ((p(c, s) && (c = s), t.wrapperEl.scrollTo({ [a]: c }), p(c, s)))
225          return (
226            (t.wrapperEl.style.overflow = "hidden"),
227            (t.wrapperEl.style.scrollSnapType = ""),
228            setTimeout(() => {
229              (t.wrapperEl.style.overflow = ""),
230                t.wrapperEl.scrollTo({ [a]: c });
231            }),
232            void i.cancelAnimationFrame(t.cssModeFrameID)
233          );
234        t.cssModeFrameID = i.requestAnimationFrame(u);
235      };
236    u();
237  }
238  function h(e) {
239    return (
240      e.querySelector(".swiper-slide-transform") ||
241      (e.shadowRoot && e.shadowRoot.querySelector(".swiper-slide-transform")) ||
242      e
243    );
244  }
245  function f(e, t) {
246    void 0 === t && (t = "");
247    const s = r(),
248      a = [...e.children];
249    return (
250      s.HTMLSlotElement &&
251        e instanceof HTMLSlotElement &&
252        a.push(...e.assignedElements()),
253      t ? a.filter((e) => e.matches(t)) : a
254    );
255  }
256  function g(e) {
257    try {
258      return void console.warn(e);
259    } catch (e) {}
260  }
261  function v(e, t) {
262    void 0 === t && (t = []);
263    const s = document.createElement(e);
264    return s.classList.add(...(Array.isArray(t) ? t : n(t))), s;
265  }
266  function w(e) {
267    const t = r(),
268      s = a(),
269      i = e.getBoundingClientRect(),
270      n = s.body,
271      l = e.clientTop || n.clientTop || 0,
272      o = e.clientLeft || n.clientLeft || 0,
273      d = e === t ? t.scrollY : e.scrollTop,
274      c = e === t ? t.scrollX : e.scrollLeft;
275    return { top: i.top + d - l, left: i.left + c - o };
276  }
277  function b(e, t) {
278    return r().getComputedStyle(e, null).getPropertyValue(t);
279  }
280  function y(e) {
281    let t,
282      s = e;
283    if (s) {
284      for (t = 0; null !== (s = s.previousSibling); )
285        1 === s.nodeType && (t += 1);
286      return t;
287    }
288  }
289  function E(e, t) {
290    const s = [];
291    let a = e.parentElement;
292    for (; a; )
293      t ? a.matches(t) && s.push(a) : s.push(a), (a = a.parentElement);
294    return s;
295  }
296  function x(e, t) {
297    t &&
298      e.addEventListener("transitionend", function s(a) {
299        a.target === e &&
300          (t.call(e, a), e.removeEventListener("transitionend", s));
301      });
302  }
303  function S(e, t, s) {
304    const a = r();
305    return s
306      ? e["width" === t ? "offsetWidth" : "offsetHeight"] +
307          parseFloat(
308            a
309              .getComputedStyle(e, null)
310              .getPropertyValue("width" === t ? "margin-right" : "margin-top")
311          ) +
312          parseFloat(
313            a
314              .getComputedStyle(e, null)
315              .getPropertyValue("width" === t ? "margin-left" : "margin-bottom")
316          )
317      : e.offsetWidth;
318  }
319  function T(e) {
320    return (Array.isArray(e) ? e : [e]).filter((e) => !!e);
321  }
322  function M(e) {
323    return (t) =>
324      Math.abs(t) > 0 &&
325      e.browser &&
326      e.browser.need3dFix &&
327      Math.abs(t) % 90 == 0
328        ? t + 0.001
329        : t;
330  }
331  let C, P, L;
332  function I() {
333    return (
334      C ||
335        (C = (function () {
336          const e = r(),
337            t = a();
338          return {
339            smoothScroll:
340              t.documentElement &&
341              t.documentElement.style &&
342              "scrollBehavior" in t.documentElement.style,
343            touch: !!(
344              "ontouchstart" in e ||
345              (e.DocumentTouch && t instanceof e.DocumentTouch)
346            ),
347          };
348        })()),
349      C
350    );
351  }
352  function z(e) {
353    return (
354      void 0 === e && (e = {}),
355      P ||
356        (P = (function (e) {
357          let { userAgent: t } = void 0 === e ? {} : e;
358          const s = I(),
359            a = r(),
360            i = a.navigator.platform,
361            n = t || a.navigator.userAgent,
362            l = { ios: !1, android: !1 },
363            o = a.screen.width,
364            d = a.screen.height,
365            c = n.match(/(Android);?[\s\/]+([\d.]+)?/);
366          let p = n.match(/(iPad).*OS\s([\d_]+)/);
367          const u = n.match(/(iPod)(.*OS\s([\d_]+))?/),
368            m = !p && n.match(/(iPhone\sOS|iOS)\s([\d_]+)/),
369            h = "Win32" === i;
370          let f = "MacIntel" === i;
371          return (
372            !p &&
373              f &&
374              s.touch &&
375              [
376                "1024x1366",
377                "1366x1024",
378                "834x1194",
379                "1194x834",
380                "834x1112",
381                "1112x834",
382                "768x1024",
383                "1024x768",
384                "820x1180",
385                "1180x820",
386                "810x1080",
387                "1080x810",
388              ].indexOf(`${o}x${d}`) >= 0 &&
389              ((p = n.match(/(Version)\/([\d.]+)/)),
390              p || (p = [0, 1, "13_0_0"]),
391              (f = !1)),
392            c && !h && ((l.os = "android"), (l.android = !0)),
393            (p || m || u) && ((l.os = "ios"), (l.ios = !0)),
394            l
395          );
396        })(e)),
397      P
398    );
399  }
400  function A() {
401    return (
402      L ||
403        (L = (function () {
404          const e = r(),
405            t = z();
406          let s = !1;
407          function a() {
408            const t = e.navigator.userAgent.toLowerCase();
409            return (
410              t.indexOf("safari") >= 0 &&
411              t.indexOf("chrome") < 0 &&
412              t.indexOf("android") < 0
413            );
414          }
415          if (a()) {
416            const t = String(e.navigator.userAgent);
417            if (t.includes("Version/")) {
418              const [e, a] = t
419                .split("Version/")[1]
420                .split(" ")[0]
421                .split(".")
422                .map((e) => Number(e));
423              s = e < 16 || (16 === e && a < 2);
424            }
425          }
426          const i = /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(
427              e.navigator.userAgent
428            ),
429            n = a();
430          return {
431            isSafari: s || n,
432            needPerspectiveFix: s,
433            need3dFix: n || (i && t.ios),
434            isWebView: i,
435          };
436        })()),
437      L
438    );
439  }
440  var $ = {
441    on(e, t, s) {
442      const a = this;
443      if (!a.eventsListeners || a.destroyed) return a;
444      if ("function" != typeof t) return a;
445      const i = s ? "unshift" : "push";
446      return (
447        e.split(" ").forEach((e) => {
448          a.eventsListeners[e] || (a.eventsListeners[e] = []),
449            a.eventsListeners[e][i](t);
450        }),
451        a
452      );
453    },
454    once(e, t, s) {
455      const a = this;
456      if (!a.eventsListeners || a.destroyed) return a;
457      if ("function" != typeof t) return a;
458      function i() {
459        a.off(e, i), i.__emitterProxy && delete i.__emitterProxy;
460        for (var s = arguments.length, r = new Array(s), n = 0; n < s; n++)
461          r[n] = arguments[n];
462        t.apply(a, r);
463      }
464      return (i.__emitterProxy = t), a.on(e, i, s);
465    },
466    onAny(e, t) {
467      const s = this;
468      if (!s.eventsListeners || s.destroyed) return s;
469      if ("function" != typeof e) return s;
470      const a = t ? "unshift" : "push";
471      return (
472        s.eventsAnyListeners.indexOf(e) < 0 && s.eventsAnyListeners[a](e), s
473      );
474    },
475    offAny(e) {
476      const t = this;
477      if (!t.eventsListeners || t.destroyed) return t;
478      if (!t.eventsAnyListeners) return t;
479      const s = t.eventsAnyListeners.indexOf(e);
480      return s >= 0 && t.eventsAnyListeners.splice(s, 1), t;
481    },
482    off(e, t) {
483      const s = this;
484      return !s.eventsListeners || s.destroyed
485        ? s
486        : s.eventsListeners
487        ? (e.split(" ").forEach((e) => {
488            void 0 === t
489              ? (s.eventsListeners[e] = [])
490              : s.eventsListeners[e] &&
491                s.eventsListeners[e].forEach((a, i) => {
492                  (a === t || (a.__emitterProxy && a.__emitterProxy === t)) &&
493                    s.eventsListeners[e].splice(i, 1);
494                });
495          }),
496          s)
497        : s;
498    },
499    emit() {
500      const e = this;
501      if (!e.eventsListeners || e.destroyed) return e;
502      if (!e.eventsListeners) return e;
503      let t, s, a;
504      for (var i = arguments.length, r = new Array(i), n = 0; n < i; n++)
505        r[n] = arguments[n];
506      "string" == typeof r[0] || Array.isArray(r[0])
507        ? ((t = r[0]), (s = r.slice(1, r.length)), (a = e))
508        : ((t = r[0].events), (s = r[0].data), (a = r[0].context || e)),
509        s.unshift(a);
510      return (
511        (Array.isArray(t) ? t : t.split(" ")).forEach((t) => {
512          e.eventsAnyListeners &&
513            e.eventsAnyListeners.length &&
514            e.eventsAnyListeners.forEach((e) => {
515              e.apply(a, [t, ...s]);
516            }),
517            e.eventsListeners &&
518              e.eventsListeners[t] &&
519              e.eventsListeners[t].forEach((e) => {
520                e.apply(a, s);
521              });
522        }),
523        e
524      );
525    },
526  };
527  const k = (e, t, s) => {
528    t && !e.classList.contains(s)
529      ? e.classList.add(s)
530      : !t && e.classList.contains(s) && e.classList.remove(s);
531  };
532  const O = (e, t, s) => {
533    t && !e.classList.contains(s)
534      ? e.classList.add(s)
535      : !t && e.classList.contains(s) && e.classList.remove(s);
536  };
537  const D = (e, t) => {
538      if (!e || e.destroyed || !e.params) return;
539      const s = t.closest(
540        e.isElement ? "swiper-slide" : `.${e.params.slideClass}`
541      );
542      if (s) {
543        let t = s.querySelector(`.${e.params.lazyPreloaderClass}`);
544        !t &&
545          e.isElement &&
546          (s.shadowRoot
547            ? (t = s.shadowRoot.querySelector(
548                `.${e.params.lazyPreloaderClass}`
549              ))
550            : requestAnimationFrame(() => {
551                s.shadowRoot &&
552                  ((t = s.shadowRoot.querySelector(
553                    `.${e.params.lazyPreloaderClass}`
554                  )),
555                  t && t.remove());
556              })),
557          t && t.remove();
558      }
559    },
560    G = (e, t) => {
561      if (!e.slides[t]) return;
562      const s = e.slides[t].querySelector('[loading="lazy"]');
563      s && s.removeAttribute("loading");
564    },
565    X = (e) => {
566      if (!e || e.destroyed || !e.params) return;
567      let t = e.params.lazyPreloadPrevNext;
568      const s = e.slides.length;
569      if (!s || !t || t < 0) return;
570      t = Math.min(t, s);
571      const a =
572          "auto" === e.params.slidesPerView
573            ? e.slidesPerViewDynamic()
574            : Math.ceil(e.params.slidesPerView),
575        i = e.activeIndex;
576      if (e.params.grid && e.params.grid.rows > 1) {
577        const s = i,
578          r = [s - t];
579        return (
580          r.push(...Array.from({ length: t }).map((e, t) => s + a + t)),
581          void e.slides.forEach((t, s) => {
582            r.includes(t.column) && G(e, s);
583          })
584        );
585      }
586      const r = i + a - 1;
587      if (e.params.rewind || e.params.loop)
588        for (let a = i - t; a <= r + t; a += 1) {
589          const t = ((a % s) + s) % s;
590          (t < i || t > r) && G(e, t);
591        }
592      else
593        for (let a = Math.max(i - t, 0); a <= Math.min(r + t, s - 1); a += 1)
594          a !== i && (a > r || a < i) && G(e, a);
595    };
596  var H = {
597    updateSize: function () {
598      const e = this;
599      let t, s;
600      const a = e.el;
601      (t =
602        void 0 !== e.params.width && null !== e.params.width
603          ? e.params.width
604          : a.clientWidth),
605        (s =
606          void 0 !== e.params.height && null !== e.params.height
607            ? e.params.height
608            : a.clientHeight),
609        (0 === t && e.isHorizontal()) ||
610          (0 === s && e.isVertical()) ||
611          ((t =
612            t -
613            parseInt(b(a, "padding-left") || 0, 10) -
614            parseInt(b(a, "padding-right") || 0, 10)),
615          (s =
616            s -
617            parseInt(b(a, "padding-top") || 0, 10) -
618            parseInt(b(a, "padding-bottom") || 0, 10)),
619          Number.isNaN(t) && (t = 0),
620          Number.isNaN(s) && (s = 0),
621          Object.assign(e, {
622            width: t,
623            height: s,
624            size: e.isHorizontal() ? t : s,
625          }));
626    },
627    updateSlides: function () {
628      const e = this;
629      function t(t, s) {
630        return parseFloat(t.getPropertyValue(e.getDirectionLabel(s)) || 0);
631      }
632      const s = e.params,
633        {
634          wrapperEl: a,
635          slidesEl: i,
636          size: r,
637          rtlTranslate: n,
638          wrongRTL: l,
639        } = e,
640        o = e.virtual && s.virtual.enabled,
641        d = o ? e.virtual.slides.length : e.slides.length,
642        c = f(i, `.${e.params.slideClass}, swiper-slide`),
643        p = o ? e.virtual.slides.length : c.length;
644      let m = [];
645      const h = [],
646        g = [];
647      let v = s.slidesOffsetBefore;
648      "function" == typeof v && (v = s.slidesOffsetBefore.call(e));
649      let w = s.slidesOffsetAfter;
650      "function" == typeof w && (w = s.slidesOffsetAfter.call(e));
651      const y = e.snapGrid.length,
652        E = e.slidesGrid.length;
653      let x = s.spaceBetween,
654        T = -v,
655        M = 0,
656        C = 0;
657      if (void 0 === r) return;
658      "string" == typeof x && x.indexOf("%") >= 0
659        ? (x = (parseFloat(x.replace("%", "")) / 100) * r)
660        : "string" == typeof x && (x = parseFloat(x)),
661        (e.virtualSize = -x),
662        c.forEach((e) => {
663          n ? (e.style.marginLeft = "") : (e.style.marginRight = ""),
664            (e.style.marginBottom = ""),
665            (e.style.marginTop = "");
666        }),
667        s.centeredSlides &&
668          s.cssMode &&
669          (u(a, "--swiper-centered-offset-before", ""),
670          u(a, "--swiper-centered-offset-after", ""));
671      const P = s.grid && s.grid.rows > 1 && e.grid;
672      let L;
673      P ? e.grid.initSlides(c) : e.grid && e.grid.unsetSlides();
674      const I =
675        "auto" === s.slidesPerView &&
676        s.breakpoints &&
677        Object.keys(s.breakpoints).filter(
678          (e) => void 0 !== s.breakpoints[e].slidesPerView
679        ).length > 0;
680      for (let a = 0; a < p; a += 1) {
681        let i;
682        if (
683          ((L = 0),
684          c[a] && (i = c[a]),
685          P && e.grid.updateSlide(a, i, c),
686          !c[a] || "none" !== b(i, "display"))
687        ) {
688          if ("auto" === s.slidesPerView) {
689            I && (c[a].style[e.getDirectionLabel("width")] = "");
690            const r = getComputedStyle(i),
691              n = i.style.transform,
692              l = i.style.webkitTransform;
693            if (
694              (n && (i.style.transform = "none"),
695              l && (i.style.webkitTransform = "none"),
696              s.roundLengths)
697            )
698              L = e.isHorizontal() ? S(i, "width", !0) : S(i, "height", !0);
699            else {
700              const e = t(r, "width"),
701                s = t(r, "padding-left"),
702                a = t(r, "padding-right"),
703                n = t(r, "margin-left"),
704                l = t(r, "margin-right"),
705                o = r.getPropertyValue("box-sizing");
706              if (o && "border-box" === o) L = e + n + l;
707              else {
708                const { clientWidth: t, offsetWidth: r } = i;
709                L = e + s + a + n + l + (r - t);
710              }
711            }
712            n && (i.style.transform = n),
713              l && (i.style.webkitTransform = l),
714              s.roundLengths && (L = Math.floor(L));
715          } else
716            (L = (r - (s.slidesPerView - 1) * x) / s.slidesPerView),
717              s.roundLengths && (L = Math.floor(L)),
718              c[a] && (c[a].style[e.getDirectionLabel("width")] = `${L}px`);
719          c[a] && (c[a].swiperSlideSize = L),
720            g.push(L),
721            s.centeredSlides
722              ? ((T = T + L / 2 + M / 2 + x),
723                0 === M && 0 !== a && (T = T - r / 2 - x),
724                0 === a && (T = T - r / 2 - x),
725                Math.abs(T) < 0.001 && (T = 0),
726                s.roundLengths && (T = Math.floor(T)),
727                C % s.slidesPerGroup == 0 && m.push(T),
728                h.push(T))
729              : (s.roundLengths && (T = Math.floor(T)),
730                (C - Math.min(e.params.slidesPerGroupSkip, C)) %
731                  e.params.slidesPerGroup ==
732                  0 && m.push(T),
733                h.push(T),
734                (T = T + L + x)),
735            (e.virtualSize += L + x),
736            (M = L),
737            (C += 1);
738        }
739      }
740      if (
741        ((e.virtualSize = Math.max(e.virtualSize, r) + w),
742        n &&
743          l &&
744          ("slide" === s.effect || "coverflow" === s.effect) &&
745          (a.style.width = `${e.virtualSize + x}px`),
746        s.setWrapperSize &&
747          (a.style[e.getDirectionLabel("width")] = `${e.virtualSize + x}px`),
748        P && e.grid.updateWrapperSize(L, m),
749        !s.centeredSlides)
750      ) {
751        const t = [];
752        for (let a = 0; a < m.length; a += 1) {
753          let i = m[a];
754          s.roundLengths && (i = Math.floor(i)),
755            m[a] <= e.virtualSize - r && t.push(i);
756        }
757        (m = t),
758          Math.floor(e.virtualSize - r) - Math.floor(m[m.length - 1]) > 1 &&
759            m.push(e.virtualSize - r);
760      }
761      if (o && s.loop) {
762        const t = g[0] + x;
763        if (s.slidesPerGroup > 1) {
764          const a = Math.ceil(
765              (e.virtual.slidesBefore + e.virtual.slidesAfter) /
766                s.slidesPerGroup
767            ),
768            i = t * s.slidesPerGroup;
769          for (let e = 0; e < a; e += 1) m.push(m[m.length - 1] + i);
770        }
771        for (
772          let a = 0;
773          a < e.virtual.slidesBefore + e.virtual.slidesAfter;
774          a += 1
775        )
776          1 === s.slidesPerGroup && m.push(m[m.length - 1] + t),
777            h.push(h[h.length - 1] + t),
778            (e.virtualSize += t);
779      }
780      if ((0 === m.length && (m = [0]), 0 !== x)) {
781        const t =
782          e.isHorizontal() && n
783            ? "marginLeft"
784            : e.getDirectionLabel("marginRight");
785        c.filter(
786          (e, t) => !(s.cssMode && !s.loop) || t !== c.length - 1
787        ).forEach((e) => {
788          e.style[t] = `${x}px`;
789        });
790      }
791      if (s.centeredSlides && s.centeredSlidesBounds) {
792        let e = 0;
793        g.forEach((t) => {
794          e += t + (x || 0);
795        }),
796          (e -= x);
797        const t = e > r ? e - r : 0;
798        m = m.map((e) => (e <= 0 ? -v : e > t ? t + w : e));
799      }
800      if (s.centerInsufficientSlides) {
801        let e = 0;
802        g.forEach((t) => {
803          e += t + (x || 0);
804        }),
805          (e -= x);
806        const t = (s.slidesOffsetBefore || 0) + (s.slidesOffsetAfter || 0);
807        if (e + t < r) {
808          const s = (r - e - t) / 2;
809          m.forEach((e, t) => {
810            m[t] = e - s;
811          }),
812            h.forEach((e, t) => {
813              h[t] = e + s;
814            });
815        }
816      }
817      if (
818        (Object.assign(e, {
819          slides: c,
820          snapGrid: m,
821          slidesGrid: h,
822          slidesSizesGrid: g,
823        }),
824        s.centeredSlides && s.cssMode && !s.centeredSlidesBounds)
825      ) {
826        u(a, "--swiper-centered-offset-before", -m[0] + "px"),
827          u(
828            a,
829            "--swiper-centered-offset-after",
830            e.size / 2 - g[g.length - 1] / 2 + "px"
831          );
832        const t = -e.snapGrid[0],
833          s = -e.slidesGrid[0];
834        (e.snapGrid = e.snapGrid.map((e) => e + t)),
835          (e.slidesGrid = e.slidesGrid.map((e) => e + s));
836      }
837      if (
838        (p !== d && e.emit("slidesLengthChange"),
839        m.length !== y &&
840          (e.params.watchOverflow && e.checkOverflow(),
841          e.emit("snapGridLengthChange")),
842        h.length !== E && e.emit("slidesGridLengthChange"),
843        s.watchSlidesProgress && e.updateSlidesOffset(),
844        e.emit("slidesUpdated"),
845        !(o || s.cssMode || ("slide" !== s.effect && "fade" !== s.effect)))
846      ) {
847        const t = `${s.containerModifierClass}backface-hidden`,
848          a = e.el.classList.contains(t);
849        p <= s.maxBackfaceHiddenSlides
850          ? a || e.el.classList.add(t)
851          : a && e.el.classList.remove(t);
852      }
853    },
854    updateAutoHeight: function (e) {
855      const t = this,
856        s = [],
857        a = t.virtual && t.params.virtual.enabled;
858      let i,
859        r = 0;
860      "number" == typeof e
861        ? t.setTransition(e)
862        : !0 === e && t.setTransition(t.params.speed);
863      const n = (e) => (a ? t.slides[t.getSlideIndexByData(e)] : t.slides[e]);
864      if ("auto" !== t.params.slidesPerView && t.params.slidesPerView > 1)
865        if (t.params.centeredSlides)
866          (t.visibleSlides || []).forEach((e) => {
867            s.push(e);
868          });
869        else
870          for (i = 0; i < Math.ceil(t.params.slidesPerView); i += 1) {
871            const e = t.activeIndex + i;
872            if (e > t.slides.length && !a) break;
873            s.push(n(e));
874          }
875      else s.push(n(t.activeIndex));
876      for (i = 0; i < s.length; i += 1)
877        if (void 0 !== s[i]) {
878          const e = s[i].offsetHeight;
879          r = e > r ? e : r;
880        }
881      (r || 0 === r) && (t.wrapperEl.style.height = `${r}px`);
882    },
883    updateSlidesOffset: function () {
884      const e = this,
885        t = e.slides,
886        s = e.isElement
887          ? e.isHorizontal()
888            ? e.wrapperEl.offsetLeft
889            : e.wrapperEl.offsetTop
890          : 0;
891      for (let a = 0; a < t.length; a += 1)
892        t[a].swiperSlideOffset =
893          (e.isHorizontal() ? t[a].offsetLeft : t[a].offsetTop) -
894          s -
895          e.cssOverflowAdjustment();
896    },
897    updateSlidesProgress: function (e) {
898      void 0 === e && (e = (this && this.translate) || 0);
899      const t = this,
900        s = t.params,
901        { slides: a, rtlTranslate: i, snapGrid: r } = t;
902      if (0 === a.length) return;
903      void 0 === a[0].swiperSlideOffset && t.updateSlidesOffset();
904      let n = -e;
905      i && (n = e), (t.visibleSlidesIndexes = []), (t.visibleSlides = []);
906      let l = s.spaceBetween;
907      "string" == typeof l && l.indexOf("%") >= 0
908        ? (l = (parseFloat(l.replace("%", "")) / 100) * t.size)
909        : "string" == typeof l && (l = parseFloat(l));
910      for (let e = 0; e < a.length; e += 1) {
911        const o = a[e];
912        let d = o.swiperSlideOffset;
913        s.cssMode && s.centeredSlides && (d -= a[0].swiperSlideOffset);
914        const c =
915            (n + (s.centeredSlides ? t.minTranslate() : 0) - d) /
916            (o.swiperSlideSize + l),
917          p =
918            (n - r[0] + (s.centeredSlides ? t.minTranslate() : 0) - d) /
919            (o.swiperSlideSize + l),
920          u = -(n - d),
921          m = u + t.slidesSizesGrid[e],
922          h = u >= 0 && u <= t.size - t.slidesSizesGrid[e],
923          f =
924            (u >= 0 && u < t.size - 1) ||
925            (m > 1 && m <= t.size) ||
926            (u <= 0 && m >= t.size);
927        f && (t.visibleSlides.push(o), t.visibleSlidesIndexes.push(e)),
928          k(o, f, s.slideVisibleClass),
929          k(o, h, s.slideFullyVisibleClass),
930          (o.progress = i ? -c : c),
931          (o.originalProgress = i ? -p : p);
932      }
933    },
934    updateProgress: function (e) {
935      const t = this;
936      if (void 0 === e) {
937        const s = t.rtlTranslate ? -1 : 1;
938        e = (t && t.translate && t.translate * s) || 0;
939      }
940      const s = t.params,
941        a = t.maxTranslate() - t.minTranslate();
942      let { progress: i, isBeginning: r, isEnd: n, progressLoop: l } = t;
943      const o = r,
944        d = n;
945      if (0 === a) (i = 0), (r = !0), (n = !0);
946      else {
947        i = (e - t.minTranslate()) / a;
948        const s = Math.abs(e - t.minTranslate()) < 1,
949          l = Math.abs(e - t.maxTranslate()) < 1;
950        (r = s || i <= 0), (n = l || i >= 1), s && (i = 0), l && (i = 1);
951      }
952      if (s.loop) {
953        const s = t.getSlideIndexByData(0),
954          a = t.getSlideIndexByData(t.slides.length - 1),
955          i = t.slidesGrid[s],
956          r = t.slidesGrid[a],
957          n = t.slidesGrid[t.slidesGrid.length - 1],
958          o = Math.abs(e);
959        (l = o >= i ? (o - i) / n : (o + n - r) / n), l > 1 && (l -= 1);
960      }
961      Object.assign(t, {
962        progress: i,
963        progressLoop: l,
964        isBeginning: r,
965        isEnd: n,
966      }),
967        (s.watchSlidesProgress || (s.centeredSlides && s.autoHeight)) &&
968          t.updateSlidesProgress(e),
969        r && !o && t.emit("reachBeginning toEdge"),
970        n && !d && t.emit("reachEnd toEdge"),
971        ((o && !r) || (d && !n)) && t.emit("fromEdge"),
972        t.emit("progress", i);
973    },
974    updateSlidesClasses: function () {
975      const e = this,
976        { slides: t, params: s, slidesEl: a, activeIndex: i } = e,
977        r = e.virtual && s.virtual.enabled,
978        n = e.grid && s.grid && s.grid.rows > 1,
979        l = (e) => f(a, `.${s.slideClass}${e}, swiper-slide${e}`)[0];
980      let o, d, c;
981      if (r)
982        if (s.loop) {
983          let t = i - e.virtual.slidesBefore;
984          t < 0 && (t = e.virtual.slides.length + t),
985            t >= e.virtual.slides.length && (t -= e.virtual.slides.length),
986            (o = l(`[data-swiper-slide-index="${t}"]`));
987        } else o = l(`[data-swiper-slide-index="${i}"]`);
988      else
989        n
990          ? ((o = t.find((e) => e.column === i)),
991            (c = t.find((e) => e.column === i + 1)),
992            (d = t.find((e) => e.column === i - 1)))
993          : (o = t[i]);
994      o &&
995        (n ||
996          ((c = (function (e, t) {
997            const s = [];
998            for (; e.nextElementSibling; ) {
999              const a = e.nextElementSibling;
1000              t ? a.matches(t) && s.push(a) : s.push(a), (e = a);
1001            }
1002            return s;
1003          })(o, `.${s.slideClass}, swiper-slide`)[0]),
1004          s.loop && !c && (c = t[0]),
1005          (d = (function (e, t) {
1006            const s = [];
1007            for (; e.previousElementSibling; ) {
1008              const a = e.previousElementSibling;
1009              t ? a.matches(t) && s.push(a) : s.push(a), (e = a);
1010            }
1011            return s;
1012          })(o, `.${s.slideClass}, swiper-slide`)[0]),
1013          s.loop && 0 === !d && (d = t[t.length - 1]))),
1014        t.forEach((e) => {
1015          O(e, e === o, s.slideActiveClass),
1016            O(e, e === c, s.slideNextClass),
1017            O(e, e === d, s.slidePrevClass);
1018        }),
1019        e.emitSlidesClasses();
1020    },
1021    updateActiveIndex: function (e) {
1022      const t = this,
1023        s = t.rtlTranslate ? t.translate : -t.translate,
1024        {
1025          snapGrid: a,
1026          params: i,
1027          activeIndex: r,
1028          realIndex: n,
1029          snapIndex: l,
1030        } = t;
1031      let o,
1032        d = e;
1033      const c = (e) => {
1034        let s = e - t.virtual.slidesBefore;
1035        return (
1036          s < 0 && (s = t.virtual.slides.length + s),
1037          s >= t.virtual.slides.length && (s -= t.virtual.slides.length),
1038          s
1039        );
1040      };
1041      if (
1042        (void 0 === d &&
1043          (d = (function (e) {
1044            const { slidesGrid: t, params: s } = e,
1045              a = e.rtlTranslate ? e.translate : -e.translate;
1046            let i;
1047            for (let e = 0; e < t.length; e += 1)
1048              void 0 !== t[e + 1]
1049                ? a >= t[e] && a < t[e + 1] - (t[e + 1] - t[e]) / 2
1050                  ? (i = e)
1051                  : a >= t[e] && a < t[e + 1] && (i = e + 1)
1052                : a >= t[e] && (i = e);
1053            return (
1054              s.normalizeSlideIndex && (i < 0 || void 0 === i) && (i = 0), i
1055            );
1056          })(t)),
1057        a.indexOf(s) >= 0)
1058      )
1059        o = a.indexOf(s);
1060      else {
1061        const e = Math.min(i.slidesPerGroupSkip, d);
1062        o = e + Math.floor((d - e) / i.slidesPerGroup);
1063      }
1064      if ((o >= a.length && (o = a.length - 1), d === r && !t.params.loop))
1065        return void (o !== l && ((t.snapIndex = o), t.emit("snapIndexChange")));
1066      if (d === r && t.params.loop && t.virtual && t.params.virtual.enabled)
1067        return void (t.realIndex = c(d));
1068      const p = t.grid && i.grid && i.grid.rows > 1;
1069      let u;
1070      if (t.virtual && i.virtual.enabled && i.loop) u = c(d);
1071      else if (p) {
1072        const e = t.slides.find((e) => e.column === d);
1073        let s = parseInt(e.getAttribute("data-swiper-slide-index"), 10);
1074        Number.isNaN(s) && (s = Math.max(t.slides.indexOf(e), 0)),
1075          (u = Math.floor(s / i.grid.rows));
1076      } else if (t.slides[d]) {
1077        const e = t.slides[d].getAttribute("data-swiper-slide-index");
1078        u = e ? parseInt(e, 10) : d;
1079      } else u = d;
1080      Object.assign(t, {
1081        previousSnapIndex: l,
1082        snapIndex: o,
1083        previousRealIndex: n,
1084        realIndex: u,
1085        previousIndex: r,
1086        activeIndex: d,
1087      }),
1088        t.initialized && X(t),
1089        t.emit("activeIndexChange"),
1090        t.emit("snapIndexChange"),
1091        (t.initialized || t.params.runCallbacksOnInit) &&
1092          (n !== u && t.emit("realIndexChange"), t.emit("slideChange"));
1093    },
1094    updateClickedSlide: function (e, t) {
1095      const s = this,
1096        a = s.params;
1097      let i = e.closest(`.${a.slideClass}, swiper-slide`);
1098      !i &&
1099        s.isElement &&
1100        t &&
1101        t.length > 1 &&
1102        t.includes(e) &&
1103        [...t.slice(t.indexOf(e) + 1, t.length)].forEach((e) => {
1104          !i &&
1105            e.matches &&
1106            e.matches(`.${a.slideClass}, swiper-slide`) &&
1107            (i = e);
1108        });
1109      let r,
1110        n = !1;
1111      if (i)
1112        for (let e = 0; e < s.slides.length; e += 1)
1113          if (s.slides[e] === i) {
1114            (n = !0), (r = e);
1115            break;
1116          }
1117      if (!i || !n)
1118        return (s.clickedSlide = void 0), void (s.clickedIndex = void 0);
1119      (s.clickedSlide = i),
1120        s.virtual && s.params.virtual.enabled
1121          ? (s.clickedIndex = parseInt(
1122              i.getAttribute("data-swiper-slide-index"),
1123              10
1124            ))
1125          : (s.clickedIndex = r),
1126        a.slideToClickedSlide &&
1127          void 0 !== s.clickedIndex &&
1128          s.clickedIndex !== s.activeIndex &&
1129          s.slideToClickedSlide();
1130    },
1131  };
1132  var Y = {
1133    getTranslate: function (e) {
1134      void 0 === e && (e = this.isHorizontal() ? "x" : "y");
1135      const { params: t, rtlTranslate: s, translate: a, wrapperEl: i } = this;
1136      if (t.virtualTranslate) return s ? -a : a;
1137      if (t.cssMode) return a;
1138      let r = d(i, e);
1139      return (r += this.cssOverflowAdjustment()), s && (r = -r), r || 0;
1140    },
1141    setTranslate: function (e, t) {
1142      const s = this,
1143        { rtlTranslate: a, params: i, wrapperEl: r, progress: n } = s;
1144      let l,
1145        o = 0,
1146        d = 0;
1147      s.isHorizontal() ? (o = a ? -e : e) : (d = e),
1148        i.roundLengths && ((o = Math.floor(o)), (d = Math.floor(d))),
1149        (s.previousTranslate = s.translate),
1150        (s.translate = s.isHorizontal() ? o : d),
1151        i.cssMode
1152          ? (r[s.isHorizontal() ? "scrollLeft" : "scrollTop"] = s.isHorizontal()
1153              ? -o
1154              : -d)
1155          : i.virtualTranslate ||
1156            (s.isHorizontal()
1157              ? (o -= s.cssOverflowAdjustment())
1158              : (d -= s.cssOverflowAdjustment()),
1159            (r.style.transform = `translate3d(${o}px, ${d}px, 0px)`));
1160      const c = s.maxTranslate() - s.minTranslate();
1161      (l = 0 === c ? 0 : (e - s.minTranslate()) / c),
1162        l !== n && s.updateProgress(e),
1163        s.emit("setTranslate", s.translate, t);
1164    },
1165    minTranslate: function () {
1166      return -this.snapGrid[0];
1167    },
1168    maxTranslate: function () {
1169      return -this.snapGrid[this.snapGrid.length - 1];
1170    },
1171    translateTo: function (e, t, s, a, i) {
1172      void 0 === e && (e = 0),
1173        void 0 === t && (t = this.params.speed),
1174        void 0 === s && (s = !0),
1175        void 0 === a && (a = !0);
1176      const r = this,
1177        { params: n, wrapperEl: l } = r;
1178      if (r.animating && n.preventInteractionOnTransition) return !1;
1179      const o = r.minTranslate(),
1180        d = r.maxTranslate();
1181      let c;
1182      if (
1183        ((c = a && e > o ? o : a && e < d ? d : e),
1184        r.updateProgress(c),
1185        n.cssMode)
1186      ) {
1187        const e = r.isHorizontal();
1188        if (0 === t) l[e ? "scrollLeft" : "scrollTop"] = -c;
1189        else {
1190          if (!r.support.smoothScroll)
1191            return (
1192              m({ swiper: r, targetPosition: -c, side: e ? "left" : "top" }), !0
1193            );
1194          l.scrollTo({ [e ? "left" : "top"]: -c, behavior: "smooth" });
1195        }
1196        return !0;
1197      }
1198      return (
1199        0 === t
1200          ? (r.setTransition(0),
1201            r.setTranslate(c),
1202            s &&
1203              (r.emit("beforeTransitionStart", t, i), r.emit("transitionEnd")))
1204          : (r.setTransition(t),
1205            r.setTranslate(c),
1206            s &&
1207              (r.emit("beforeTransitionStart", t, i),
1208              r.emit("transitionStart")),
1209            r.animating ||
1210              ((r.animating = !0),
1211              r.onTranslateToWrapperTransitionEnd ||
1212                (r.onTranslateToWrapperTransitionEnd = function (e) {
1213                  r &&
1214                    !r.destroyed &&
1215                    e.target === this &&
1216                    (r.wrapperEl.removeEventListener(
1217                      "transitionend",
1218                      r.onTranslateToWrapperTransitionEnd
1219                    ),
1220                    (r.onTranslateToWrapperTransitionEnd = null),
1221                    delete r.onTranslateToWrapperTransitionEnd,
1222                    (r.animating = !1),
1223                    s && r.emit("transitionEnd"));
1224                }),
1225              r.wrapperEl.addEventListener(
1226                "transitionend",
1227                r.onTranslateToWrapperTransitionEnd
1228              ))),
1229        !0
1230      );
1231    },
1232  };
1233  function B(e) {
1234    let { swiper: t, runCallbacks: s, direction: a, step: i } = e;
1235    const { activeIndex: r, previousIndex: n } = t;
1236    let l = a;
1237    if (
1238      (l || (l = r > n ? "next" : r < n ? "prev" : "reset"),
1239      t.emit(`transition${i}`),
1240      s && r !== n)
1241    ) {
1242      if ("reset" === l) return void t.emit(`slideResetTransition${i}`);
1243      t.emit(`slideChangeTransition${i}`),
1244        "next" === l
1245          ? t.emit(`slideNextTransition${i}`)
1246          : t.emit(`slidePrevTransition${i}`);
1247    }
1248  }
1249  var N = {
1250    slideTo: function (e, t, s, a, i) {
1251      void 0 === e && (e = 0),
1252        void 0 === s && (s = !0),
1253        "string" == typeof e && (e = parseInt(e, 10));
1254      const r = this;
1255      let n = e;
1256      n < 0 && (n = 0);
1257      const {
1258        params: l,
1259        snapGrid: o,
1260        slidesGrid: d,
1261        previousIndex: c,
1262        activeIndex: p,
1263        rtlTranslate: u,
1264        wrapperEl: h,
1265        enabled: f,
1266      } = r;
1267      if (
1268        (!f && !a && !i) ||
1269        r.destroyed ||
1270        (r.animating && l.preventInteractionOnTransition)
1271      )
1272        return !1;
1273      void 0 === t && (t = r.params.speed);
1274      const g = Math.min(r.params.slidesPerGroupSkip, n);
1275      let v = g + Math.floor((n - g) / r.params.slidesPerGroup);
1276      v >= o.length && (v = o.length - 1);
1277      const w = -o[v];
1278      if (l.normalizeSlideIndex)
1279        for (let e = 0; e < d.length; e += 1) {
1280          const t = -Math.floor(100 * w),
1281            s = Math.floor(100 * d[e]),
1282            a = Math.floor(100 * d[e + 1]);
1283          void 0 !== d[e + 1]
1284            ? t >= s && t < a - (a - s) / 2
1285              ? (n = e)
1286              : t >= s && t < a && (n = e + 1)
1287            : t >= s && (n = e);
1288        }
1289      if (r.initialized && n !== p) {
1290        if (
1291          !r.allowSlideNext &&
1292          (u
1293            ? w > r.translate && w > r.minTranslate()
1294            : w < r.translate && w < r.minTranslate())
1295        )
1296          return !1;
1297        if (
1298          !r.allowSlidePrev &&
1299          w > r.translate &&
1300          w > r.maxTranslate() &&
1301          (p || 0) !== n
1302        )
1303          return !1;
1304      }
1305      let b;
1306      n !== (c || 0) && s && r.emit("beforeSlideChangeStart"),
1307        r.updateProgress(w),
1308        (b = n > p ? "next" : n < p ? "prev" : "reset");
1309      const y = r.virtual && r.params.virtual.enabled;
1310      if (!(y && i) && ((u && -w === r.translate) || (!u && w === r.translate)))
1311        return (
1312          r.updateActiveIndex(n),
1313          l.autoHeight && r.updateAutoHeight(),
1314          r.updateSlidesClasses(),
1315          "slide" !== l.effect && r.setTranslate(w),
1316          "reset" !== b && (r.transitionStart(s, b), r.transitionEnd(s, b)),
1317          !1
1318        );
1319      if (l.cssMode) {
1320        const e = r.isHorizontal(),
1321          s = u ? w : -w;
1322        if (0 === t)
1323          y &&
1324            ((r.wrapperEl.style.scrollSnapType = "none"),
1325            (r._immediateVirtual = !0)),
1326            y && !r._cssModeVirtualInitialSet && r.params.initialSlide > 0
1327              ? ((r._cssModeVirtualInitialSet = !0),
1328                requestAnimationFrame(() => {
1329                  h[e ? "scrollLeft" : "scrollTop"] = s;
1330                }))
1331              : (h[e ? "scrollLeft" : "scrollTop"] = s),
1332            y &&
1333              requestAnimationFrame(() => {
1334                (r.wrapperEl.style.scrollSnapType = ""),
1335                  (r._immediateVirtual = !1);
1336              });
1337        else {
1338          if (!r.support.smoothScroll)
1339            return (
1340              m({ swiper: r, targetPosition: s, side: e ? "left" : "top" }), !0
1341            );
1342          h.scrollTo({ [e ? "left" : "top"]: s, behavior: "smooth" });
1343        }
1344        return !0;
1345      }
1346      const E = A().isSafari;
1347      return (
1348        y && !i && E && r.isElement && r.virtual.update(!1, !1, n),
1349        r.setTransition(t),
1350        r.setTranslate(w),
1351        r.updateActiveIndex(n),
1352        r.updateSlidesClasses(),
1353        r.emit("beforeTransitionStart", t, a),
1354        r.transitionStart(s, b),
1355        0 === t
1356          ? r.transitionEnd(s, b)
1357          : r.animating ||
1358            ((r.animating = !0),
1359            r.onSlideToWrapperTransitionEnd ||
1360              (r.onSlideToWrapperTransitionEnd = function (e) {
1361                r &&
1362                  !r.destroyed &&
1363                  e.target === this &&
1364                  (r.wrapperEl.removeEventListener(
1365                    "transitionend",
1366                    r.onSlideToWrapperTransitionEnd
1367                  ),
1368                  (r.onSlideToWrapperTransitionEnd = null),
1369                  delete r.onSlideToWrapperTransitionEnd,
1370                  r.transitionEnd(s, b));
1371              }),
1372            r.wrapperEl.addEventListener(
1373              "transitionend",
1374              r.onSlideToWrapperTransitionEnd
1375            )),
1376        !0
1377      );
1378    },
1379    slideToLoop: function (e, t, s, a) {
1380      if (
1381        (void 0 === e && (e = 0),
1382        void 0 === s && (s = !0),
1383        "string" == typeof e)
1384      ) {
1385        e = parseInt(e, 10);
1386      }
1387      const i = this;
1388      if (i.destroyed) return;
1389      void 0 === t && (t = i.params.speed);
1390      const r = i.grid && i.params.grid && i.params.grid.rows > 1;
1391      let n = e;
1392      if (i.params.loop)
1393        if (i.virtual && i.params.virtual.enabled) n += i.virtual.slidesBefore;
1394        else {
1395          let e;
1396          if (r) {
1397            const t = n * i.params.grid.rows;
1398            e = i.slides.find(
1399              (e) => 1 * e.getAttribute("data-swiper-slide-index") === t
1400            ).column;
1401          } else e = i.getSlideIndexByData(n);
1402          const t = r
1403              ? Math.ceil(i.slides.length / i.params.grid.rows)
1404              : i.slides.length,
1405            { centeredSlides: s } = i.params;
1406          let l = i.params.slidesPerView;
1407          "auto" === l
1408            ? (l = i.slidesPerViewDynamic())
1409            : ((l = Math.ceil(parseFloat(i.params.slidesPerView, 10))),
1410              s && l % 2 == 0 && (l += 1));
1411          let o = t - e < l;
1412          if (
1413            (s && (o = o || e < Math.ceil(l / 2)),
1414            a && s && "auto" !== i.params.slidesPerView && !r && (o = !1),
1415            o)
1416          ) {
1417            const a = s
1418              ? e < i.activeIndex
1419                ? "prev"
1420                : "next"
1421              : e - i.activeIndex - 1 < i.params.slidesPerView
1422              ? "next"
1423              : "prev";
1424            i.loopFix({
1425              direction: a,
1426              slideTo: !0,
1427              activeSlideIndex: "next" === a ? e + 1 : e - t + 1,
1428              slideRealIndex: "next" === a ? i.realIndex : void 0,
1429            });
1430          }
1431          if (r) {
1432            const e = n * i.params.grid.rows;
1433            n = i.slides.find(
1434              (t) => 1 * t.getAttribute("data-swiper-slide-index") === e
1435            ).column;
1436          } else n = i.getSlideIndexByData(n);
1437        }
1438      return (
1439        requestAnimationFrame(() => {
1440          i.slideTo(n, t, s, a);
1441        }),
1442        i
1443      );
1444    },
1445    slideNext: function (e, t, s) {
1446      void 0 === t && (t = !0);
1447      const a = this,
1448        { enabled: i, params: r, animating: n } = a;
1449      if (!i || a.destroyed) return a;
1450      void 0 === e && (e = a.params.speed);
1451      let l = r.slidesPerGroup;
1452      "auto" === r.slidesPerView &&
1453        1 === r.slidesPerGroup &&
1454        r.slidesPerGroupAuto &&
1455        (l = Math.max(a.slidesPerViewDynamic("current", !0), 1));
1456      const o = a.activeIndex < r.slidesPerGroupSkip ? 1 : l,
1457        d = a.virtual && r.virtual.enabled;
1458      if (r.loop) {
1459        if (n && !d && r.loopPreventsSliding) return !1;
1460        if (
1461          (a.loopFix({ direction: "next" }),
1462          (a._clientLeft = a.wrapperEl.clientLeft),
1463          a.activeIndex === a.slides.length - 1 && r.cssMode)
1464        )
1465          return (
1466            requestAnimationFrame(() => {
1467              a.slideTo(a.activeIndex + o, e, t, s);
1468            }),
1469            !0
1470          );
1471      }
1472      return r.rewind && a.isEnd
1473        ? a.slideTo(0, e, t, s)
1474        : a.slideTo(a.activeIndex + o, e, t, s);
1475    },
1476    slidePrev: function (e, t, s) {
1477      void 0 === t && (t = !0);
1478      const a = this,
1479        {
1480          params: i,
1481          snapGrid: r,
1482          slidesGrid: n,
1483          rtlTranslate: l,
1484          enabled: o,
1485          animating: d,
1486        } = a;
1487      if (!o || a.destroyed) return a;
1488      void 0 === e && (e = a.params.speed);
1489      const c = a.virtual && i.virtual.enabled;
1490      if (i.loop) {
1491        if (d && !c && i.loopPreventsSliding) return !1;
1492        a.loopFix({ direction: "prev" }),
1493          (a._clientLeft = a.wrapperEl.clientLeft);
1494      }
1495      function p(e) {
1496        return e < 0 ? -Math.floor(Math.abs(e)) : Math.floor(e);
1497      }
1498      const u = p(l ? a.translate : -a.translate),
1499        m = r.map((e) => p(e)),
1500        h = i.freeMode && i.freeMode.enabled;
1501      let f = r[m.indexOf(u) - 1];
1502      if (void 0 === f && (i.cssMode || h)) {
1503        let e;
1504        r.forEach((t, s) => {
1505          u >= t && (e = s);
1506        }),
1507          void 0 !== e && (f = h ? r[e] : r[e > 0 ? e - 1 : e]);
1508      }
1509      let g = 0;
1510      if (
1511        (void 0 !== f &&
1512          ((g = n.indexOf(f)),
1513          g < 0 && (g = a.activeIndex - 1),
1514          "auto" === i.slidesPerView &&
1515            1 === i.slidesPerGroup &&
1516            i.slidesPerGroupAuto &&
1517            ((g = g - a.slidesPerViewDynamic("previous", !0) + 1),
1518            (g = Math.max(g, 0)))),
1519        i.rewind && a.isBeginning)
1520      ) {
1521        const i =
1522          a.params.virtual && a.params.virtual.enabled && a.virtual
1523            ? a.virtual.slides.length - 1
1524            : a.slides.length - 1;
1525        return a.slideTo(i, e, t, s);
1526      }
1527      return i.loop && 0 === a.activeIndex && i.cssMode
1528        ? (requestAnimationFrame(() => {
1529            a.slideTo(g, e, t, s);
1530          }),
1531          !0)
1532        : a.slideTo(g, e, t, s);
1533    },
1534    slideReset: function (e, t, s) {
1535      void 0 === t && (t = !0);
1536      const a = this;
1537      if (!a.destroyed)
1538        return (
1539          void 0 === e && (e = a.params.speed),
1540          a.slideTo(a.activeIndex, e, t, s)
1541        );
1542    },
1543    slideToClosest: function (e, t, s, a) {
1544      void 0 === t && (t = !0), void 0 === a && (a = 0.5);
1545      const i = this;
1546      if (i.destroyed) return;
1547      void 0 === e && (e = i.params.speed);
1548      let r = i.activeIndex;
1549      const n = Math.min(i.params.slidesPerGroupSkip, r),
1550        l = n + Math.floor((r - n) / i.params.slidesPerGroup),
1551        o = i.rtlTranslate ? i.translate : -i.translate;
1552      if (o >= i.snapGrid[l]) {
1553        const e = i.snapGrid[l];
1554        o - e > (i.snapGrid[l + 1] - e) * a && (r += i.params.slidesPerGroup);
1555      } else {
1556        const e = i.snapGrid[l - 1];
1557        o - e <= (i.snapGrid[l] - e) * a && (r -= i.params.slidesPerGroup);
1558      }
1559      return (
1560        (r = Math.max(r, 0)),
1561        (r = Math.min(r, i.slidesGrid.length - 1)),
1562        i.slideTo(r, e, t, s)
1563      );
1564    },
1565    slideToClickedSlide: function () {
1566      const e = this;
1567      if (e.destroyed) return;
1568      const { params: t, slidesEl: s } = e,
1569        a =
1570          "auto" === t.slidesPerView
1571            ? e.slidesPerViewDynamic()
1572            : t.slidesPerView;
1573      let i,
1574        r = e.clickedIndex;
1575      const n = e.isElement ? "swiper-slide" : `.${t.slideClass}`;
1576      if (t.loop) {
1577        if (e.animating) return;
1578        (i = parseInt(
1579          e.clickedSlide.getAttribute("data-swiper-slide-index"),
1580          10
1581        )),
1582          t.centeredSlides
1583            ? r < e.loopedSlides - a / 2 ||
1584              r > e.slides.length - e.loopedSlides + a / 2
1585              ? (e.loopFix(),
1586                (r = e.getSlideIndex(
1587                  f(s, `${n}[data-swiper-slide-index="${i}"]`)[0]
1588                )),
1589                l(() => {
1590                  e.slideTo(r);
1591                }))
1592              : e.slideTo(r)
1593            : r > e.slides.length - a
1594            ? (e.loopFix(),
1595              (r = e.getSlideIndex(
1596                f(s, `${n}[data-swiper-slide-index="${i}"]`)[0]
1597              )),
1598              l(() => {
1599                e.slideTo(r);
1600              }))
1601            : e.slideTo(r);
1602      } else e.slideTo(r);
1603    },
1604  };
1605  var R = {
1606    loopCreate: function (e, t) {
1607      const s = this,
1608        { params: a, slidesEl: i } = s;
1609      if (!a.loop || (s.virtual && s.params.virtual.enabled)) return;
1610      const r = () => {
1611          f(i, `.${a.slideClass}, swiper-slide`).forEach((e, t) => {
1612            e.setAttribute("data-swiper-slide-index", t);
1613          });
1614        },
1615        n = s.grid && a.grid && a.grid.rows > 1,
1616        l = a.slidesPerGroup * (n ? a.grid.rows : 1),
1617        o = s.slides.length % l != 0,
1618        d = n && s.slides.length % a.grid.rows != 0,
1619        c = (e) => {
1620          for (let t = 0; t < e; t += 1) {
1621            const e = s.isElement
1622              ? v("swiper-slide", [a.slideBlankClass])
1623              : v("div", [a.slideClass, a.slideBlankClass]);
1624            s.slidesEl.append(e);
1625          }
1626        };
1627      if (o) {
1628        if (a.loopAddBlankSlides) {
1629          c(l - (s.slides.length % l)), s.recalcSlides(), s.updateSlides();
1630        } else
1631          g(
1632            "Swiper Loop Warning: The number of slides is not even to slidesPerGroup, loop mode may 
1632not function properly. You need to add more slides (or make duplicates, or empty slides)"
1633          );
1634        r();
1635      } else if (d) {
1636        if (a.loopAddBlankSlides) {
1637          c(a.grid.rows - (s.slides.length % a.grid.rows)),
1638            s.recalcSlides(),
1639            s.updateSlides();
1640        } else
1641          g(
1642            "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)"
1643          );
1644        r();
1645      } else r();
1646      s.loopFix({
1647        slideRealIndex: e,
1648        direction: a.centeredSlides ? void 0 : "next",
1649        initial: t,
1650      });
1651    },
1652    loopFix: function (e) {
1653      let {
1654        slideRealIndex: t,
1655        slideTo: s = !0,
1656        direction: a,
1657        setTranslate: i,
1658        activeSlideIndex: r,
1659        initial: n,
1660        byController: l,
1661        byMousewheel: o,
1662      } = void 0 === e ? {} : e;
1663      const d = this;
1664      if (!d.params.loop) return;
1665      d.emit("beforeLoopFix");
1666      const {
1667          slides: c,
1668          allowSlidePrev: p,
1669          allowSlideNext: u,
1670          slidesEl: m,
1671          params: h,
1672        } = d,
1673        { centeredSlides: f, initialSlide: v } = h;
1674      if (
1675        ((d.allowSlidePrev = !0),
1676        (d.allowSlideNext = !0),
1677        d.virtual && h.virtual.enabled)
1678      )
1679        return (
1680          s &&
1681            (h.centeredSlides || 0 !== d.snapIndex
1682              ? h.centeredSlides && d.snapIndex < h.slidesPerView
1683                ? d.slideTo(d.virtual.slides.length + d.snapIndex, 0, !1, !0)
1684                : d.snapIndex === d.snapGrid.length - 1 &&
1685                  d.slideTo(d.virtual.slidesBefore, 0, !1, !0)
1686              : d.slideTo(d.virtual.slides.length, 0, !1, !0)),
1687          (d.allowSlidePrev = p),
1688          (d.allowSlideNext = u),
1689          void d.emit("loopFix")
1690        );
1691      let w = h.slidesPerView;
1692      "auto" === w
1693        ? (w = d.slidesPerViewDynamic())
1694        : ((w = Math.ceil(parseFloat(h.slidesPerView, 10))),
1695          f && w % 2 == 0 && (w += 1));
1696      const b = h.slidesPerGroupAuto ? w : h.slidesPerGroup;
1697      let y = b;
1698      y % b != 0 && (y += b - (y % b)),
1699        (y += h.loopAdditionalSlides),
1700        (d.loopedSlides = y);
1701      const E = d.grid && h.grid && h.grid.rows > 1;
1702      c.length < w + y || ("cards" === d.params.effect && c.length < w + 2 * y)
1703        ? g(
1704            "Swiper Loop Warning: The number of slides is not enough for loop mode, it will be disabled or not function properly. You need to add more slides (or make duplicates) or lower the values of slidesPerView and slidesPerGroup parameters"
1705          )
1706        : E &&
1707          "row" === h.grid.fill &&
1708          g(
1709            "Swiper Loop Warning: Loop mode is not compatible with grid.fill = `row`"
1710          );
1711      const x = [],
1712        S = [],
1713        T = E ? Math.ceil(c.length / h.grid.rows) : c.length,
1714        M = n && T - v < w && !f;
1715      let C = M ? v : d.activeIndex;
1716      void 0 === r
1717        ? (r = d.getSlideIndex(
1718            c.find((e) => e.classList.contains(h.slideActiveClass))
1719          ))
1720        : (C = r);
1721      const P = "next" === a || !a,
1722        L = "prev" === a || !a;
1723      let I = 0,
1724        z = 0;
1725      const A = (E ? c[r].column : r) + (f && void 0 === i ? -w / 2 + 0.5 : 0);
1726      if (A < y) {
1727        I = Math.max(y - A, b);
1728        for (let e = 0; e < y - A; e += 1) {
1729          const t = e - Math.floor(e / T) * T;
1730          if (E) {
1731            const e = T - t - 1;
1732            for (let t = c.length - 1; t >= 0; t -= 1)
1733              c[t].column === e && x.push(t);
1734          } else x.push(T - t - 1);
1735        }
1736      } else if (A + w > T - y) {
1737        (z = Math.max(A - (T - 2 * y), b)),
1738          M && (z = Math.max(z, w - T + v + 1));
1739        for (let e = 0; e < z; e += 1) {
1740          const t = e - Math.floor(e / T) * T;
1741          E
1742            ? c.forEach((e, s) => {
1743                e.column === t && S.push(s);
1744              })
1745            : S.push(t);
1746        }
1747      }
1748      if (
1749        ((d.__preventObserver__ = !0),
1750        requestAnimationFrame(() => {
1751          d.__preventObserver__ = !1;
1752        }),
1753        "cards" === d.params.effect &&
1754          c.length < w + 2 * y &&
1755          (S.includes(r) && S.splice(S.indexOf(r), 1),
1756          x.includes(r) && x.splice(x.indexOf(r), 1)),
1757        L &&
1758          x.forEach((e) => {
1759            (c[e].swiperLoopMoveDOM = !0),
1760              m.prepend(c[e]),
1761              (c[e].swiperLoopMoveDOM = !1);
1762          }),
1763        P &&
1764          S.forEach((e) => {
1765            (c[e].swiperLoopMoveDOM = !0),
1766              m.append(c[e]),
1767              (c[e].swiperLoopMoveDOM = !1);
1768          }),
1769        d.recalcSlides(),
1770        "auto" === h.slidesPerView
1771          ? d.updateSlides()
1772          : E &&
1773            ((x.length > 0 && L) || (S.length > 0 && P)) &&
1774            d.slides.forEach((e, t) => {
1775              d.grid.updateSlide(t, e, d.slides);
1776            }),
1777        h.watchSlidesProgress && d.updateSlidesOffset(),
1778        s)
1779      )
1780        if (x.length > 0 && L) {
1781          if (void 0 === t) {
1782            const e = d.slidesGrid[C],
1783              t = d.slidesGrid[C + I] - e;
1784            o
1785              ? d.setTranslate(d.translate - t)
1786              : (d.slideTo(C + Math.ceil(I), 0, !1, !0),
1787                i &&
1788                  ((d.touchEventsData.startTranslate =
1789                    d.touchEventsData.startTranslate - t),
1790                  (d.touchEventsData.currentTranslate =
1791                    d.touchEventsData.currentTranslate - t)));
1792          } else if (i) {
1793            const e = E ? x.length / h.grid.rows : x.length;
1794            d.slideTo(d.activeIndex + e, 0, !1, !0),
1795              (d.touchEventsData.currentTranslate = d.translate);
1796          }
1797        } else if (S.length > 0 && P)
1798          if (void 0 === t) {
1799            const e = d.slidesGrid[C],
1800              t = d.slidesGrid[C - z] - e;
1801            o
1802              ? d.setTranslate(d.translate - t)
1803              : (d.slideTo(C - z, 0, !1, !0),
1804                i &&
1805                  ((d.touchEventsData.startTranslate =
1806                    d.touchEventsData.startTranslate - t),
1807                  (d.touchEventsData.currentTranslate =
1808                    d.touchEventsData.currentTranslate - t)));
1809          } else {
1810            const e = E ? S.length / h.grid.rows : S.length;
1811            d.slideTo(d.activeIndex - e, 0, !1, !0);
1812          }
1813      if (
1814        ((d.allowSlidePrev = p),
1815        (d.allowSlideNext = u),
1816        d.controller && d.controller.control && !l)
1817      ) {
1818        const e = {
1819          slideRealIndex: t,
1820          direction: a,
1821          setTranslate: i,
1822          activeSlideIndex: r,
1823          byController: !0,
1824        };
1825        Array.isArray(d.controller.control)
1826          ? d.controller.control.forEach((t) => {
1827              !t.destroyed &&
1828                t.params.loop &&
1829                t.loopFix({
1830                  ...e,
1831                  slideTo: t.params.slidesPerView === h.slidesPerView && s,
1832                });
1833            })
1834          : d.controller.control instanceof d.constructor &&
1835            d.controller.control.params.loop &&
1836            d.controller.control.loopFix({
1837              ...e,
1838              slideTo:
1839                d.controller.control.params.slidesPerView === h.slidesPerView &&
1840                s,
1841            });
1842      }
1843      d.emit("loopFix");
1844    },
1845    loopDestroy: function () {
1846      const e = this,
1847        { params: t, slidesEl: s } = e;
1848      if (!t.loop || !s || (e.virtual && e.params.virtual.enabled)) return;
1849      e.recalcSlides();
1850      const a = [];
1851      e.slides.forEach((e) => {
1852        const t =
1853          void 0 === e.swiperSlideIndex
1854            ? 1 * e.getAttribute("data-swiper-slide-index")
1855            : e.swiperSlideIndex;
1856        a[t] = e;
1857      }),
1858        e.slides.forEach((e) => {
1859          e.removeAttribute("data-swiper-slide-index");
1860        }),
1861        a.forEach((e) => {
1862          s.append(e);
1863        }),
1864        e.recalcSlides(),
1865        e.slideTo(e.realIndex, 0);
1866    },
1867  };
1868  function q(e, t, s) {
1869    const a = r(),
1870      { params: i } = e,
1871      n = i.edgeSwipeDetection,
1872      l = i.edgeSwipeThreshold;
1873    return (
1874      !n ||
1875      !(s <= l || s >= a.innerWidth - l) ||
1876      ("prevent" === n && (t.preventDefault(), !0))
1877    );
1878  }
1879  function _(e) {
1880    const t = this,
1881      s = a();
1882    let i = e;
1883    i.originalEvent && (i = i.originalEvent);
1884    const n = t.touchEventsData;
1885    if ("pointerdown" === i.type) {
1886      if (null !== n.pointerId && n.pointerId !== i.pointerId) return;
1887      n.pointerId = i.pointerId;
1888    } else
1889      "touchstart" === i.type &&
1890        1 === i.targetTouches.length &&
1891        (n.touchId = i.targetTouches[0].identifier);
1892    if ("touchstart" === i.type) return void q(t, i, i.targetTouches[0].pageX);
1893    const { params: l, touches: d, enabled: c } = t;
1894    if (!c) return;
1895    if (!l.simulateTouch && "mouse" === i.pointerType) return;
1896    if (t.animating && l.preventInteractionOnTransition) return;
1897    !t.animating && l.cssMode && l.loop && t.loopFix();
1898    let p = i.target;
1899    if (
1900      "wrapper" === l.touchEventsTarget &&
1901      !(function (e, t) {
1902        const s = r();
1903        let a = t.contains(e);
1904        !a &&
1905          s.HTMLSlotElement &&
1906          t instanceof HTMLSlotElement &&
1907          ((a = [...t.assignedElements()].includes(e)),
1908          a ||
1909            (a = (function (e, t) {
1910              const s = [t];
1911              for (; s.length > 0; ) {
1912                const t = s.shift();
1913                if (e === t) return !0;
1914                s.push(
1915                  ...t.children,
1916                  ...(t.shadowRoot ? t.shadowRoot.children : []),
1917                  ...(t.assignedElements ? t.assignedElements() : [])
1918                );
1919              }
1920            })(e, t)));
1921        return a;
1922      })(p, t.wrapperEl)
1923    )
1924      return;
1925    if ("which" in i && 3 === i.which) return;
1926    if ("button" in i && i.button > 0) return;
1927    if (n.isTouched && n.isMoved) return;
1928    const u = !!l.noSwipingClass && "" !== l.noSwipingClass,
1929      m = i.composedPath ? i.composedPath() : i.path;
1930    u && i.target && i.target.shadowRoot && m && (p = m[0]);
1931    const h = l.noSwipingSelector
1932        ? l.noSwipingSelector
1933        : `.${l.noSwipingClass}`,
1934      f = !(!i.target || !i.target.shadowRoot);
1935    if (
1936      l.noSwiping &&
1937      (f
1938        ? (function (e, t) {
1939            return (
1940              void 0 === t && (t = this),
1941              (function t(s) {
1942                if (!s || s === a() || s === r()) return null;
1943                s.assignedSlot && (s = s.assignedSlot);
1944                const i = s.closest(e);
1945                return i || s.getRootNode ? i || t(s.getRootNode().host) : null;
1946              })(t)
1947            );
1948          })(h, p)
1949        : p.closest(h))
1950    )
1951      return void (t.allowClick = !0);
1952    if (l.swipeHandler && !p.closest(l.swipeHandler)) return;
1953    (d.currentX = i.pageX), (d.currentY = i.pageY);
1954    const g = d.currentX,
1955      v = d.currentY;
1956    if (!q(t, i, g)) return;
1957    Object.assign(n, {
1958      isTouched: !0,
1959      isMoved: !1,
1960      allowTouchCallbacks: !0,
1961      isScrolling: void 0,
1962      startMoving: void 0,
1963    }),
1964      (d.startX = g),
1965      (d.startY = v),
1966      (n.touchStartTime = o()),
1967      (t.allowClick = !0),
1968      t.updateSize(),
1969      (t.swipeDirection = void 0),
1970      l.threshold > 0 && (n.allowThresholdMove = !1);
1971    let w = !0;
1972    p.matches(n.focusableElements) &&
1973      ((w = !1), "SELECT" === p.nodeName && (n.isTouched = !1)),
1974      s.activeElement &&
1975        s.activeElement.matches(n.focusableElements) &&
1976        s.activeElement !== p &&
1977        ("mouse" === i.pointerType ||
1978          ("mouse" !== i.pointerType && !p.matches(n.focusableElements))) &&
1979        s.activeElement.blur();
1980    const b = w && t.allowTouchMove && l.touchStartPreventDefault;
1981    (!l.touchStartForcePreventDefault && !b) ||
1982      p.isContentEditable ||
1983      i.preventDefault(),
1984      l.freeMode &&
1985        l.freeMode.enabled &&
1986        t.freeMode &&
1987        t.animating &&
1988        !l.cssMode &&
1989        t.freeMode.onTouchStart(),
1990      t.emit("touchStart", i);
1991  }
1992  function F(e) {
1993    const t = a(),
1994      s = this,
1995      i = s.touchEventsData,
1996      { params: r, touches: n, rtlTranslate: l, enabled: d } = s;
1997    if (!d) return;
1998    if (!r.simulateTouch && "mouse" === e.pointerType) return;
1999    let c,
2000      p = e;
2001    if ((p.originalEvent && (p = p.originalEvent), "pointermove" === p.type)) {
2002      if (null !== i.touchId) return;
2003      if (p.pointerId !== i.pointerId) return;
2004    }
2005    if ("touchmove" === p.type) {
2006      if (
2007        ((c = [...p.changedTouches].find((e) => e.identifier === i.touchId)),
2008        !c || c.identifier !== i.touchId)
2009      )
2010        return;
2011    } else c = p;
2012    if (!i.isTouched)
2013      return void (
2014        i.startMoving &&
2015        i.isScrolling &&
2016        s.emit("touchMoveOpposite", p)
2017      );
2018    const u = c.pageX,
2019      m = c.pageY;
2020    if (p.preventedByNestedSwiper) return (n.startX = u), void (n.startY = m);
2021    if (!s.allowTouchMove)
2022      return (
2023        p.target.matches(i.focusableElements) || (s.allowClick = !1),
2024        void (
2025          i.isTouched &&
2026          (Object.assign(n, { startX: u, startY: m, currentX: u, currentY: m }),
2027          (i.touchStartTime = o()))
2028        )
2029      );
2030    if (r.touchReleaseOnEdges && !r.loop)
2031      if (s.isVertical()) {
2032        if (
2033          (m < n.startY && s.translate <= s.maxTranslate()) ||
2034          (m > n.startY && s.translate >= s.minTranslate())
2035        )
2036          return (i.isTouched = !1), void (i.isMoved = !1);
2037      } else {
2038        if (
2039          l &&
2040          ((u > n.startX && -s.translate <= s.maxTranslate()) ||
2041            (u < n.startX && -s.translate >= s.minTranslate()))
2042        )
2043          return;
2044        if (
2045          !l &&
2046          ((u < n.startX && s.translate <= s.maxTranslate()) ||
2047            (u > n.startX && s.translate >= s.minTranslate()))
2048        )
2049          return;
2050      }
2051    if (
2052      (t.activeElement &&
2053        t.activeElement.matches(i.focusableElements) &&
2054        t.activeElement !== p.target &&
2055        "mouse" !== p.pointerType &&
2056        t.activeElement.blur(),
2057      t.activeElement &&
2058        p.target === t.activeElement &&
2059        p.target.matches(i.focusableElements))
2060    )
2061      return (i.isMoved = !0), void (s.allowClick = !1);
2062    i.allowTouchCallbacks && s.emit("touchMove", p),
2063      (n.previousX = n.currentX),
2064      (n.previousY = n.currentY),
2065      (n.currentX = u),
2066      (n.currentY = m);
2067    const h = n.currentX - n.startX,
2068      f = n.currentY - n.startY;
2069    if (s.params.threshold && Math.sqrt(h ** 2 + f ** 2) < s.params.threshold)
2070      return;
2071    if (void 0 === i.isScrolling) {
2072      let e;
2073      (s.isHorizontal() && n.currentY === n.startY) ||
2074      (s.isVertical() && n.currentX === n.startX)
2075        ? (i.isScrolling = !1)
2076        : h * h + f * f >= 25 &&
2077          ((e = (180 * Math.atan2(Math.abs(f), Math.abs(h))) / Math.PI),
2078          (i.isScrolling = s.isHorizontal()
2079            ? e > r.touchAngle
2080            : 90 - e > r.touchAngle));
2081    }
2082    if (
2083      (i.isScrolling && s.emit("touchMoveOpposite", p),
2084      void 0 === i.startMoving &&
2085        ((n.currentX === n.startX && n.currentY === n.startY) ||
2086          (i.startMoving = !0)),
2087      i.isScrolling ||
2088        ("touchmove" === p.type && i.preventTouchMoveFromPointerMove))
2089    )
2090      return void (i.isTouched = !1);
2091    if (!i.startMoving) return;
2092    (s.allowClick = !1),
2093      !r.cssMode && p.cancelable && p.preventDefault(),
2094      r.touchMoveStopPropagation && !r.nested && p.stopPropagation();
2095    let g = s.isHorizontal() ? h : f,
2096      v = s.isHorizontal()
2097        ? n.currentX - n.previousX
2098        : n.currentY - n.previousY;
2099    r.oneWayMovement &&
2100      ((g = Math.abs(g) * (l ? 1 : -1)), (v = Math.abs(v) * (l ? 1 : -1))),
2101      (n.diff = g),
2102      (g *= r.touchRatio),
2103      l && ((g = -g), (v = -v));
2104    const w = s.touchesDirection;
2105    (s.swipeDirection = g > 0 ? "prev" : "next"),
2106      (s.touchesDirection = v > 0 ? "prev" : "next");
2107    const b = s.params.loop && !r.cssMode,
2108      y =
2109        ("next" === s.touchesDirection && s.allowSlideNext) ||
2110        ("prev" === s.touchesDirection && s.allowSlidePrev);
2111    if (!i.isMoved) {
2112      if (
2113        (b && y && s.loopFix({ direction: s.swipeDirection }),
2114        (i.startTranslate = s.getTranslate()),
2115        s.setTransition(0),
2116        s.animating)
2117      ) {
2118        const e = new window.CustomEvent("transitionend", {
2119          bubbles: !0,
2120          cancelable: !0,
2121          detail: { bySwiperTouchMove: !0 },
2122        });
2123        s.wrapperEl.dispatchEvent(e);
2124      }
2125      (i.allowMomentumBounce = !1),
2126        !r.grabCursor ||
2127          (!0 !== s.allowSlideNext && !0 !== s.allowSlidePrev) ||
2128          s.setGrabCursor(!0),
2129        s.emit("sliderFirstMove", p);
2130    }
2131    if (
2132      (new Date().getTime(),
2133      !1 !== r._loopSwapReset &&
2134        i.isMoved &&
2135        i.allowThresholdMove &&
2136        w !== s.touchesDirection &&
2137        b &&
2138        y &&
2139        Math.abs(g) >= 1)
2140    )
2141      return (
2142        Object.assign(n, {
2143          startX: u,
2144          startY: m,
2145          currentX: u,
2146          currentY: m,
2147          startTranslate: i.currentTranslate,
2148        }),
2149        (i.loopSwapReset = !0),
2150        void (i.startTranslate = i.currentTranslate)
2151      );
2152    s.emit("sliderMove", p),
2153      (i.isMoved = !0),
2154      (i.currentTranslate = g + i.startTranslate);
2155    let E = !0,
2156      x = r.resistanceRatio;
2157    if (
2158      (r.touchReleaseOnEdges && (x = 0),
2159      g > 0
2160        ? (b &&
2161            y &&
2162            i.allowThresholdMove &&
2163            i.currentTranslate >
2164              (r.centeredSlides
2165                ? s.minTranslate() -
2166                  s.slidesSizesGrid[s.activeIndex + 1] -
2167                  ("auto" !== r.slidesPerView &&
2168                  s.slides.length - r.slidesPerView >= 2
2169                    ? s.slidesSizesGrid[s.activeIndex + 1] +
2170                      s.params.spaceBetween
2171                    : 0) -
2172                  s.params.spaceBetween
2173                : s.minTranslate()) &&
2174            s.loopFix({
2175              direction: "prev",
2176              setTranslate: !0,
2177              activeSlideIndex: 0,
2178            }),
2179          i.currentTranslate > s.minTranslate() &&
2180            ((E = !1),
2181            r.resistance &&
2182              (i.currentTranslate =
2183                s.minTranslate() -
2184                1 +
2185                (-s.minTranslate() + i.startTranslate + g) ** x)))
2186        : g < 0 &&
2187          (b &&
2188            y &&
2189            i.allowThresholdMove &&
2190            i.currentTranslate <
2191              (r.centeredSlides
2192                ? s.maxTranslate() +
2193                  s.slidesSizesGrid[s.slidesSizesGrid.length - 1] +
2194                  s.params.spaceBetween +
2195                  ("auto" !== r.slidesPerView &&
2196                  s.slides.length - r.slidesPerView >= 2
2197                    ? s.slidesSizesGrid[s.slidesSizesGrid.length - 1] +
2198                      s.params.spaceBetween
2199                    : 0)
2200                : s.maxTranslate()) &&
2201            s.loopFix({
2202              direction: "next",
2203              setTranslate: !0,
2204              activeSlideIndex:
2205                s.slides.length -
2206                ("auto" === r.slidesPerView
2207                  ? s.slidesPerViewDynamic()
2208                  : Math.ceil(parseFloat(r.slidesPerView, 10))),
2209            }),
2210          i.currentTranslate < s.maxTranslate() &&
2211            ((E = !1),
2212            r.resistance &&
2213              (i.currentTranslate =
2214                s.maxTranslate() +
2215                1 -
2216                (s.maxTranslate() - i.startTranslate - g) ** x))),
2217      E && (p.preventedByNestedSwiper = !0),
2218      !s.allowSlideNext &&
2219        "next" === s.swipeDirection &&
2220        i.currentTranslate < i.startTranslate &&
2221        (i.currentTranslate = i.startTranslate),
2222      !s.allowSlidePrev &&
2223        "prev" === s.swipeDirection &&
2224        i.currentTranslate > i.startTranslate &&
2225        (i.currentTranslate = i.startTranslate),
2226      s.allowSlidePrev ||
2227        s.allowSlideNext ||
2228        (i.currentTranslate = i.startTranslate),
2229      r.threshold > 0)
2230    ) {
2231      if (!(Math.abs(g) > r.threshold || i.allowThresholdMove))
2232        return void (i.currentTranslate = i.startTranslate);
2233      if (!i.allowThresholdMove)
2234        return (
2235          (i.allowThresholdMove = !0),
2236          (n.startX = n.currentX),
2237          (n.startY = n.currentY),
2238          (i.currentTranslate = i.startTranslate),
2239          void (n.diff = s.isHorizontal()
2240            ? n.currentX - n.startX
2241            : n.currentY - n.startY)
2242        );
2243    }
2244    r.followFinger &&
2245      !r.cssMode &&
2246      (((r.freeMode && r.freeMode.enabled && s.freeMode) ||
2247        r.watchSlidesProgress) &&
2248        (s.updateActiveIndex(), s.updateSlidesClasses()),
2249      r.freeMode &&
2250        r.freeMode.enabled &&
2251        s.freeMode &&
2252        s.freeMode.onTouchMove(),
2253      s.updateProgress(i.currentTranslate),
2254      s.setTranslate(i.currentTranslate));
2255  }
2256  function V(e) {
2257    const t = this,
2258      s = t.touchEventsData;
2259    let a,
2260      i = e;
2261    i.originalEvent && (i = i.originalEvent);
2262    if ("touchend" === i.type || "touchcancel" === i.type) {
2263      if (
2264        ((a = [...i.changedTouches].find((e) => e.identifier === s.touchId)),
2265        !a || a.identifier !== s.touchId)
2266      )
2267        return;
2268    } else {
2269      if (null !== s.touchId) return;
2270      if (i.pointerId !== s.pointerId) return;
2271      a = i;
2272    }
2273    if (
2274      ["pointercancel", "pointerout", "pointerleave", "contextmenu"].includes(
2275        i.type
2276      )
2277    ) {
2278      if (
2279        !(
2280          ["pointercancel", "contextmenu"].includes(i.type) &&
2281          (t.browser.isSafari || t.browser.isWebView)
2282        )
2283      )
2284        return;
2285    }
2286    (s.pointerId = null), (s.touchId = null);
2287    const {
2288      params: r,
2289      touches: n,
2290      rtlTranslate: d,
2291      slidesGrid: c,
2292      enabled: p,
2293    } = t;
2294    if (!p) return;
2295    if (!r.simulateTouch && "mouse" === i.pointerType) return;
2296    if (
2297      (s.allowTouchCallbacks && t.emit("touchEnd", i),
2298      (s.allowTouchCallbacks = !1),
2299      !s.isTouched)
2300    )
2301      return (
2302        s.isMoved && r.grabCursor && t.setGrabCursor(!1),
2303        (s.isMoved = !1),
2304        void (s.startMoving = !1)
2305      );
2306    r.grabCursor &&
2307      s.isMoved &&
2308      s.isTouched &&
2309      (!0 === t.allowSlideNext || !0 === t.allowSlidePrev) &&
2310      t.setGrabCursor(!1);
2311    const u = o(),
2312      m = u - s.touchStartTime;
2313    if (t.allowClick) {
2314      const e = i.path || (i.composedPath && i.composedPath());
2315      t.updateClickedSlide((e && e[0]) || i.target, e),
2316        t.emit("tap click", i),
2317        m < 300 &&
2318          u - s.lastClickTime < 300 &&
2319          t.emit("doubleTap doubleClick", i);
2320    }
2321    if (
2322      ((s.lastClickTime = o()),
2323      l(() => {
2324        t.destroyed || (t.allowClick = !0);
2325      }),
2326      !s.isTouched ||
2327        !s.isMoved ||
2328        !t.swipeDirection ||
2329        (0 === n.diff && !s.loopSwapReset) ||
2330        (s.currentTranslate === s.startTranslate && !s.loopSwapReset))
2331    )
2332      return (s.isTouched = !1), (s.isMoved = !1), void (s.startMoving = !1);
2333    let h;
2334    if (
2335      ((s.isTouched = !1),
2336      (s.isMoved = !1),
2337      (s.startMoving = !1),
2338      (h = r.followFinger
2339        ? d
2340          ? t.translate
2341          : -t.translate
2342        : -s.currentTranslate),
2343      r.cssMode)
2344    )
2345      return;
2346    if (r.freeMode && r.freeMode.enabled)
2347      return void t.freeMode.onTouchEnd({ currentPos: h });
2348    const f = h >= -t.maxTranslate() && !t.params.loop;
2349    let g = 0,
2350      v = t.slidesSizesGrid[0];
2351    for (
2352      let e = 0;
2353      e < c.length;
2354      e += e < r.slidesPerGroupSkip ? 1 : r.slidesPerGroup
2355    ) {
2356      const t = e < r.slidesPerGroupSkip - 1 ? 1 : r.slidesPerGroup;
2357      void 0 !== c[e + t]
2358        ? (f || (h >= c[e] && h < c[e + t])) && ((g = e), (v = c[e + t] - c[e]))
2359        : (f || h >= c[e]) &&
2360          ((g = e), (v = c[c.length - 1] - c[c.length - 2]));
2361    }
2362    let w = null,
2363      b = null;
2364    r.rewind &&
2365      (t.isBeginning
2366        ? (b =
2367            r.virtual && r.virtual.enabled && t.virtual
2368              ? t.virtual.slides.length - 1
2369              : t.slides.length - 1)
2370        : t.isEnd && (w = 0));
2371    const y = (h - c[g]) / v,
2372      E = g < r.slidesPerGroupSkip - 1 ? 1 : r.slidesPerGroup;
2373    if (m > r.longSwipesMs) {
2374      if (!r.longSwipes) return void t.slideTo(t.activeIndex);
2375      "next" === t.swipeDirection &&
2376        (y >= r.longSwipesRatio
2377          ? t.slideTo(r.rewind && t.isEnd ? w : g + E)
2378          : t.slideTo(g)),
2379        "prev" === t.swipeDirection &&
2380          (y > 1 - r.longSwipesRatio
2381            ? t.slideTo(g + E)
2382            : null !== b && y < 0 && Math.abs(y) > r.longSwipesRatio
2383            ? t.slideTo(b)
2384            : t.slideTo(g));
2385    } else {
2386      if (!r.shortSwipes) return void t.slideTo(t.activeIndex);
2387      t.navigation &&
2388      (i.target === t.navigation.nextEl || i.target === t.navigation.prevEl)
2389        ? i.target === t.navigation.nextEl
2390          ? t.slideTo(g + E)
2391          : t.slideTo(g)
2392        : ("next" === t.swipeDirection && t.slideTo(null !== w ? w : g + E),
2393          "prev" === t.swipeDirection && t.slideTo(null !== b ? b : g));
2394    }
2395  }
2396  function W() {
2397    const e = this,
2398      { params: t, el: s } = e;
2399    if (s && 0 === s.offsetWidth) return;
2400    t.breakpoints && e.setBreakpoint();
2401    const { allowSlideNext: a, allowSlidePrev: i, snapGrid: r } = e,
2402      n = e.virtual && e.params.virtual.enabled;
2403    (e.allowSlideNext = !0),
2404      (e.allowSlidePrev = !0),
2405      e.updateSize(),
2406      e.updateSlides(),
2407      e.updateSlidesClasses();
2408    const l = n && t.loop;
2409    !("auto" === t.slidesPerView || t.slidesPerView > 1) ||
2410    !e.isEnd ||
2411    e.isBeginning ||
2412    e.params.centeredSlides ||
2413    l
2414      ? e.params.loop && !n
2415        ? e.slideToLoop(e.realIndex, 0, !1, !0)
2416        : e.slideTo(e.activeIndex, 0, !1, !0)
2417      : e.slideTo(e.slides.length - 1, 0, !1, !0),
2418      e.autoplay &&
2419        e.autoplay.running &&
2420        e.autoplay.paused &&
2421        (clearTimeout(e.autoplay.resizeTimeout),
2422        (e.autoplay.resizeTimeout = setTimeout(() => {
2423          e.autoplay &&
2424            e.autoplay.running &&
2425            e.autoplay.paused &&
2426            e.autoplay.resume();
2427        }, 500))),
2428      (e.allowSlidePrev = i),
2429      (e.allowSlideNext = a),
2430      e.params.watchOverflow && r !== e.snapGrid && e.checkOverflow();
2431  }
2432  function j(e) {
2433    const t = this;
2434    t.enabled &&
2435      (t.allowClick ||
2436        (t.params.preventClicks && e.preventDefault(),
2437        t.params.preventClicksPropagation &&
2438          t.animating &&
2439          (e.stopPropagation(), e.stopImmediatePropagation())));
2440  }
2441  function U() {
2442    const e = this,
2443      { wrapperEl: t, rtlTranslate: s, enabled: a } = e;
2444    if (!a) return;
2445    let i;
2446    (e.previousTranslate = e.translate),
2447      e.isHorizontal()
2448        ? (e.translate = -t.scrollLeft)
2449        : (e.translate = -t.scrollTop),
2450      0 === e.translate && (e.translate = 0),
2451      e.updateActiveIndex(),
2452      e.updateSlidesClasses();
2453    const r = e.maxTranslate() - e.minTranslate();
2454    (i = 0 === r ? 0 : (e.translate - e.minTranslate()) / r),
2455      i !== e.progress && e.updateProgress(s ? -e.translate : e.translate),
2456      e.emit("setTranslate", e.translate, !1);
2457  }
2458  function K(e) {
2459    const t = this;
2460    D(t, e.target),
2461      t.params.cssMode ||
2462        ("auto" !== t.params.slidesPerView && !t.params.autoHeight) ||
2463        t.update();
2464  }
2465  function Z() {
2466    const e = this;
2467    e.documentTouchHandlerProceeded ||
2468      ((e.documentTouchHandlerProceeded = !0),
2469      e.params.touchReleaseOnEdges && (e.el.style.touchAction = "auto"));
2470  }
2471  const Q = (e, t) => {
2472    const s = a(),
2473      { params: i, el: r, wrapperEl: n, device: l } = e,
2474      o = !!i.nested,
2475      d = "on" === t ? "addEventListener" : "removeEventListener",
2476      c = t;
2477    r &&
2478      "string" != typeof r &&
2479      (s[d]("touchstart", e.onDocumentTouchStart, { passive: !1, capture: o }),
2480      r[d]("touchstart", e.onTouchStart, { passive: !1 }),
2481      r[d]("pointerdown", e.onTouchStart, { passive: !1 }),
2482      s[d]("touchmove", e.onTouchMove, { passive: !1, capture: o }),
2483      s[d]("pointermove", e.onTouchMove, { passive: !1, capture: o }),
2484      s[d]("touchend", e.onTouchEnd, { passive: !0 }),
2485      s[d]("pointerup", e.onTouchEnd, { passive: !0 }),
2486      s[d]("pointercancel", e.onTouchEnd, { passive: !0 }),
2487      s[d]("touchcancel", e.onTouchEnd, { passive: !0 }),
2488      s[d]("pointerout", e.onTouchEnd, { passive: !0 }),
2489      s[d]("pointerleave", e.onTouchEnd, { passive: !0 }),
2490      s[d]("contextmenu", e.onTouchEnd, { passive: !0 }),
2491      (i.preventClicks || i.preventClicksPropagation) &&
2492        r[d]("click", e.onClick, !0),
2493      i.cssMode && n[d]("scroll", e.onScroll),
2494      i.updateOnWindowResize
2495        ? e[c](
2496            l.ios || l.android
2497              ? "resize orientationchange observerUpdate"
2498              : "resize observerUpdate",
2499            W,
2500            !0
2501          )
2502        : e[c]("observerUpdate", W, !0),
2503      r[d]("load", e.onLoad, { capture: !0 }));
2504  };
2505  const J = (e, t) => e.grid && t.grid && t.grid.rows > 1;
2506  var ee = {
2507    init: !0,
2508    direction: "horizontal",
2509    oneWayMovement: !1,
2510    swiperElementNodeName: "SWIPER-CONTAINER",
2511    touchEventsTarget: "wrapper",
2512    initialSlide: 0,
2513    speed: 300,
2514    cssMode: !1,
2515    updateOnWindowResize: !0,
2516    resizeObserver: !0,
2517    nested: !1,
2518    createElements: !1,
2519    eventsPrefix: "swiper",
2520    enabled: !0,
2521    focusableElements: "input, select, option, textarea, button, video, label",
2522    width: null,
2523    height: null,
2524    preventInteractionOnTransition: !1,
2525    userAgent: null,
2526    url: null,
2527    edgeSwipeDetection: !1,
2528    edgeSwipeThreshold: 20,
2529    autoHeight: !1,
2530    setWrapperSize: !1,
2531    virtualTranslate: !1,
2532    effect: "slide",
2533    breakpoints: void 0,
2534    breakpointsBase: "window",
2535    spaceBetween: 0,
2536    slidesPerView: 1,
2537    slidesPerGroup: 1,
2538    slidesPerGroupSkip: 0,
2539    slidesPerGroupAuto: !1,
2540    centeredSlides: !1,
2541    centeredSlidesBounds: !1,
2542    slidesOffsetBefore: 0,
2543    slidesOffsetAfter: 0,
2544    normalizeSlideIndex: !0,
2545    centerInsufficientSlides: !1,
2546    watchOverflow: !0,
2547    roundLengths: !1,
2548    touchRatio: 1,
2549    touchAngle: 45,
2550    simulateTouch: !0,
2551    shortSwipes: !0,
2552    longSwipes: !0,
2553    longSwipesRatio: 0.5,
2554    longSwipesMs: 300,
2555    followFinger: !0,
2556    allowTouchMove: !0,
2557    threshold: 5,
2558    touchMoveStopPropagation: !1,
2559    touchStartPreventDefault: !0,
2560    touchStartForcePreventDefault: !1,
2561    touchReleaseOnEdges: !1,
2562    uniqueNavElements: !0,
2563    resistance: !0,
2564    resistanceRatio: 0.85,
2565    watchSlidesProgress: !1,
2566    grabCursor: !1,
2567    preventClicks: !0,
2568    preventClicksPropagation: !0,
2569    slideToClickedSlide: !1,
2570    loop: !1,
2571    loopAddBlankSlides: !0,
2572    loopAdditionalSlides: 0,
2573    loopPreventsSliding: !0,
2574    rewind: !1,
2575    allowSlidePrev: !0,
2576    allowSlideNext: !0,
2577    swipeHandler: null,
2578    noSwiping: !0,
2579    noSwipingClass: "swiper-no-swiping",
2580    noSwipingSelector: null,
2581    passiveListeners: !0,
2582    maxBackfaceHiddenSlides: 10,
2583    containerModifierClass: "swiper-",
2584    slideClass: "swiper-slide",
2585    slideBlankClass: "swiper-slide-blank",
2586    slideActiveClass: "swiper-slide-active",
2587    slideVisibleClass: "swiper-slide-visible",
2588    slideFullyVisibleClass: "swiper-slide-fully-visible",
2589    slideNextClass: "swiper-slide-next",
2590    slidePrevClass: "swiper-slide-prev",
2591    wrapperClass: "swiper-wrapper",
2592    lazyPreloaderClass: "swiper-lazy-preloader",
2593    lazyPreloadPrevNext: 0,
2594    runCallbacksOnInit: !0,
2595    _emitClasses: !1,
2596  };
2597  function te(e, t) {
2598    return function (s) {
2599      void 0 === s && (s = {});
2600      const a = Object.keys(s)[0],
2601        i = s[a];
2602      "object" == typeof i && null !== i
2603        ? (!0 === e[a] && (e[a] = { enabled: !0 }),
2604          "navigation" === a &&
2605            e[a] &&
2606            e[a].enabled &&
2607            !e[a].prevEl &&
2608            !e[a].nextEl &&
2609            (e[a].auto = !0),
2610          ["pagination", "scrollbar"].indexOf(a) >= 0 &&
2611            e[a] &&
2612            e[a].enabled &&
2613            !e[a].el &&
2614            (e[a].auto = !0),
2615          a in e && "enabled" in i
2616            ? ("object" != typeof e[a] ||
2617                "enabled" in e[a] ||
2618                (e[a].enabled = !0),
2619              e[a] || (e[a] = { enabled: !1 }),
2620              p(t, s))
2621            : p(t, s))
2622        : p(t, s);
2623    };
2624  }
2625  const se = {
2626      eventsEmitter: $,
2627      update: H,
2628      translate: Y,
2629      transition: {
2630        setTransition: function (e, t) {
2631          const s = this;
2632          s.params.cssMode ||
2633            ((s.wrapperEl.style.transitionDuration = `${e}ms`),
2634            (s.wrapperEl.style.transitionDelay = 0 === e ? "0ms" : "")),
2635            s.emit("setTransition", e, t);
2636        },
2637        transitionStart: function (e, t) {
2638          void 0 === e && (e = !0);
2639          const s = this,
2640            { params: a } = s;
2641          a.cssMode ||
2642            (a.autoHeight && s.updateAutoHeight(),
2643            B({ swiper: s, runCallbacks: e, direction: t, step: "Start" }));
2644        },
2645        transitionEnd: function (e, t) {
2646          void 0 === e && (e = !0);
2647          const s = this,
2648            { params: a } = s;
2649          (s.animating = !1),
2650            a.cssMode ||
2651              (s.setTransition(0),
2652              B({ swiper: s, runCallbacks: e, direction: t, step: "End" }));
2653        },
2654      },
2655      slide: N,
2656      loop: R,
2657      grabCursor: {
2658        setGrabCursor: function (e) {
2659          const t = this;
2660          if (
2661            !t.params.simulateTouch ||
2662            (t.params.watchOverflow && t.isLocked) ||
2663            t.params.cssMode
2664          )
2665            return;
2666          const s =
2667            "container" === t.params.touchEventsTarget ? t.el : t.wrapperEl;
2668          t.isElement && (t.__preventObserver__ = !0),
2669            (s.style.cursor = "move"),
2670            (s.style.cursor = e ? "grabbing" : "grab"),
2671            t.isElement &&
2672              requestAnimationFrame(() => {
2673                t.__preventObserver__ = !1;
2674              });
2675        },
2676        unsetGrabCursor: function () {
2677          const e = this;
2678          (e.params.watchOverflow && e.isLocked) ||
2679            e.params.cssMode ||
2680            (e.isElement && (e.__preventObserver__ = !0),
2681            (e[
2682              "container" === e.params.touchEventsTarget ? "el" : "wrapperEl"
2683            ].style.cursor = ""),
2684            e.isElement &&
2685              requestAnimationFrame(() => {
2686                e.__preventObserver__ = !1;
2687              }));
2688        },
2689      },
2690      events: {
2691        attachEvents: function () {
2692          const e = this,
2693            { params: t } = e;
2694          (e.onTouchStart = _.bind(e)),
2695            (e.onTouchMove = F.bind(e)),
2696            (e.onTouchEnd = V.bind(e)),
2697            (e.onDocumentTouchStart = Z.bind(e)),
2698            t.cssMode && (e.onScroll = U.bind(e)),
2699            (e.onClick = j.bind(e)),
2700            (e.onLoad = K.bind(e)),
2701            Q(e, "on");
2702        },
2703        detachEvents: function () {
2704          Q(this, "off");
2705        },
2706      },
2707      breakpoints: {
2708        setBreakpoint: function () {
2709          const e = this,
2710            { realIndex: t, initialized: s, params: i, el: r } = e,
2711            n = i.breakpoints;
2712          if (!n || (n && 0 === Object.keys(n).length)) return;
2713          const l = a(),
2714            o =
2715              "window" !== i.breakpointsBase && i.breakpointsBase
2716                ? "container"
2717                : i.breakpointsBase,
2718            d =
2719              ["window", "container"].includes(i.breakpointsBase) ||
2720              !i.breakpointsBase
2721                ? e.el
2722                : l.querySelector(i.breakpointsBase),
2723            c = e.getBreakpoint(n, o, d);
2724          if (!c || e.currentBreakpoint === c) return;
2725          const u = (c in n ? n[c] : void 0) || e.originalParams,
2726            m = J(e, i),
2727            h = J(e, u),
2728            f = e.params.grabCursor,
2729            g = u.grabCursor,
2730            v = i.enabled;
2731          m && !h
2732            ? (r.classList.remove(
2733                `${i.containerModifierClass}grid`,
2734                `${i.containerModifierClass}grid-column`
2735              ),
2736              e.emitContainerClasses())
2737            : !m &&
2738              h &&
2739              (r.classList.add(`${i.containerModifierClass}grid`),
2740              ((u.grid.fill && "column" === u.grid.fill) ||
2741                (!u.grid.fill && "column" === i.grid.fill)) &&
2742                r.classList.add(`${i.containerModifierClass}grid-column`),
2743              e.emitContainerClasses()),
2744            f && !g ? e.unsetGrabCursor() : !f && g && e.setGrabCursor(),
2745            ["navigation", "pagination", "scrollbar"].forEach((t) => {
2746              if (void 0 === u[t]) return;
2747              const s = i[t] && i[t].enabled,
2748                a = u[t] && u[t].enabled;
2749              s && !a && e[t].disable(), !s && a && e[t].enable();
2750            });
2751          const w = u.direction && u.direction !== i.direction,
2752            b = i.loop && (u.slidesPerView !== i.slidesPerView || w),
2753            y = i.loop;
2754          w && s && e.changeDirection(), p(e.params, u);
2755          const E = e.params.enabled,
2756            x = e.params.loop;
2757          Object.assign(e, {
2758            allowTouchMove: e.params.allowTouchMove,
2759            allowSlideNext: e.params.allowSlideNext,
2760            allowSlidePrev: e.params.allowSlidePrev,
2761          }),
2762            v && !E ? e.disable() : !v && E && e.enable(),
2763            (e.currentBreakpoint = c),
2764            e.emit("_beforeBreakpoint", u),
2765            s &&
2766              (b
2767                ? (e.loopDestroy(), e.loopCreate(t), e.updateSlides())
2768                : !y && x
2769                ? (e.loopCreate(t), e.updateSlides())
2770                : y && !x && e.loopDestroy()),
2771            e.emit("breakpoint", u);
2772        },
2773        getBreakpoint: function (e, t, s) {
2774          if ((void 0 === t && (t = "window"), !e || ("container" === t && !s)))
2775            return;
2776          let a = !1;
2777          const i = r(),
2778            n = "window" === t ? i.innerHeight : s.clientHeight,
2779            l = Object.keys(e).map((e) => {
2780              if ("string" == typeof e && 0 === e.indexOf("@")) {
2781                const t = parseFloat(e.substr(1));
2782                return { value: n * t, point: e };
2783              }
2784              return { value: e, point: e };
2785            });
2786          l.sort((e, t) => parseInt(e.value, 10) - parseInt(t.value, 10));
2787          for (let e = 0; e < l.length; e += 1) {
2788            const { point: r, value: n } = l[e];
2789            "window" === t
2790              ? i.matchMedia(`(min-width: ${n}px)`).matches && (a = r)
2791              : n <= s.clientWidth && (a = r);
2792          }
2793          return a || "max";
2794        },
2795      },
2796      checkOverflow: {
2797        checkOverflow: function () {
2798          const e = this,
2799            { isLocked: t, params: s } = e,
2800            { slidesOffsetBefore: a } = s;
2801          if (a) {
2802            const t = e.slides.length - 1,
2803              s = e.slidesGrid[t] + e.slidesSizesGrid[t] + 2 * a;
2804            e.isLocked = e.size > s;
2805          } else e.isLocked = 1 === e.snapGrid.length;
2806          !0 === s.allowSlideNext && (e.allowSlideNext = !e.isLocked),
2807            !0 === s.allowSlidePrev && (e.allowSlidePrev = !e.isLocked),
2808            t && t !== e.isLocked && (e.isEnd = !1),
2809            t !== e.isLocked && e.emit(e.isLocked ? "lock" : "unlock");
2810        },
2811      },
2812      classes: {
2813        addClasses: function () {
2814          const e = this,
2815            { classNames: t, params: s, rtl: a, el: i, device: r } = e,
2816            n = (function (e, t) {
2817              const s = [];
2818              return (
2819                e.forEach((e) => {
2820                  "object" == typeof e
2821                    ? Object.keys(e).forEach((a) => {
2822                        e[a] && s.push(t + a);
2823                      })
2824                    : "string" == typeof e && s.push(t + e);
2825                }),
2826                s
2827              );
2828            })(
2829              [
2830                "initialized",
2831                s.direction,
2832                { "free-mode": e.params.freeMode && s.freeMode.enabled },
2833                { autoheight: s.autoHeight },
2834                { rtl: a },
2835                { grid: s.grid && s.grid.rows > 1 },
2836                {
2837                  "grid-column":
2838                    s.grid && s.grid.rows > 1 && "column" === s.grid.fill,
2839                },
2840                { android: r.android },
2841                { ios: r.ios },
2842                { "css-mode": s.cssMode },
2843                { centered: s.cssMode && s.centeredSlides },
2844                { "watch-progress": s.watchSlidesProgress },
2845              ],
2846              s.containerModifierClass
2847            );
2848          t.push(...n), i.classList.add(...t), e.emitContainerClasses();
2849        },
2850        removeClasses: function () {
2851          const { el: e, classNames: t } = this;
2852          e &&
2853            "string" != typeof e &&
2854            (e.classList.remove(...t), this.emitContainerClasses());
2855        },
2856      },
2857    },
2858    ae = {};
2859  class ie {
2860    constructor() {
2861      let e, t;
2862      for (var s = arguments.length, i = new Array(s), r = 0; r < s; r++)
2863        i[r] = arguments[r];
2864      1 === i.length &&
2865      i[0].constructor &&
2866      "Object" === Object.prototype.toString.call(i[0]).slice(8, -1)
2867        ? (t = i[0])
2868        : ([e, t] = i),
2869        t || (t = {}),
2870        (t = p({}, t)),
2871        e && !t.el && (t.el = e);
2872      const n = a();
2873      if (
2874        t.el &&
2875        "string" == typeof t.el &&
2876        n.querySelectorAll(t.el).length > 1
2877      ) {
2878        const e = [];
2879        return (
2880          n.querySelectorAll(t.el).forEach((s) => {
2881            const a = p({}, t, { el: s });
2882            e.push(new ie(a));
2883          }),
2884          e
2885        );
2886      }
2887      const l = this;
2888      (l.__swiper__ = !0),
2889        (l.support = I()),
2890        (l.device = z({ userAgent: t.userAgent })),
2891        (l.browser = A()),
2892        (l.eventsListeners = {}),
2893        (l.eventsAnyListeners = []),
2894        (l.modules = [...l.__modules__]),
2895        t.modules && Array.isArray(t.modules) && l.modules.push(...t.modules);
2896      const o = {};
2897      l.modules.forEach((e) => {
2898        e({
2899          params: t,
2900          swiper: l,
2901          extendParams: te(t, o),
2902          on: l.on.bind(l),
2903          once: l.once.bind(l),
2904          off: l.off.bind(l),
2905          emit: l.emit.bind(l),
2906        });
2907      });
2908      const d = p({}, ee, o);
2909      return (
2910        (l.params = p({}, d, ae, t)),
2911        (l.originalParams = p({}, l.params)),
2912        (l.passedParams = p({}, t)),
2913        l.params &&
2914          l.params.on &&
2915          Object.keys(l.params.on).forEach((e) => {
2916            l.on(e, l.params.on[e]);
2917          }),
2918        l.params && l.params.onAny && l.onAny(l.params.onAny),
2919        Object.assign(l, {
2920          enabled: l.params.enabled,
2921          el: e,
2922          classNames: [],
2923          slides: [],
2924          slidesGrid: [],
2925          snapGrid: [],
2926          slidesSizesGrid: [],
2927          isHorizontal: () => "horizontal" === l.params.direction,
2928          isVertical: () => "vertical" === l.params.direction,
2929          activeIndex: 0,
2930          realIndex: 0,
2931          isBeginning: !0,
2932          isEnd: !1,
2933          translate: 0,
2934          previousTranslate: 0,
2935          progress: 0,
2936          velocity: 0,
2937          animating: !1,
2938          cssOverflowAdjustment() {
2939            return Math.trunc(this.translate / 2 ** 23) * 2 ** 23;
2940          },
2941          allowSlideNext: l.params.allowSlideNext,
2942          allowSlidePrev: l.params.allowSlidePrev,
2943          touchEventsData: {
2944            isTouched: void 0,
2945            isMoved: void 0,
2946            allowTouchCallbacks: void 0,
2947            touchStartTime: void 0,
2948            isScrolling: void 0,
2949            currentTranslate: void 0,
2950            startTranslate: void 0,
2951            allowThresholdMove: void 0,
2952            focusableElements: l.params.focusableElements,
2953            lastClickTime: 0,
2954            clickTimeout: void 0,
2955            velocities: [],
2956            allowMomentumBounce: void 0,
2957            startMoving: void 0,
2958            pointerId: null,
2959            touchId: null,
2960          },
2961          allowClick: !0,
2962          allowTouchMove: l.params.allowTouchMove,
2963          touches: { startX: 0, startY: 0, currentX: 0, currentY: 0, diff: 0 },
2964          imagesToLoad: [],
2965          imagesLoaded: 0,
2966        }),
2967        l.emit("_swiper"),
2968        l.params.init && l.init(),
2969        l
2970      );
2971    }
2972    getDirectionLabel(e) {
2973      return this.isHorizontal()
2974        ? e
2975        : {
2976            width: "height",
2977            "margin-top": "margin-left",
2978            "margin-bottom ": "margin-right",
2979            "margin-left": "margin-top",
2980            "margin-right": "margin-bottom",
2981            "padding-left": "padding-top",
2982            "padding-right": "padding-bottom",
2983            marginRight: "marginBottom",
2984          }[e];
2985    }
2986    getSlideIndex(e) {
2987      const { slidesEl: t, params: s } = this,
2988        a = y(f(t, `.${s.slideClass}, swiper-slide`)[0]);
2989      return y(e) - a;
2990    }
2991    getSlideIndexByData(e) {
2992      return this.getSlideIndex(
2993        this.slides.find(
2994          (t) => 1 * t.getAttribute("data-swiper-slide-index") === e
2995        )
2996      );
2997    }
2998    recalcSlides() {
2999      const { slidesEl: e, params: t } = this;
3000      this.slides = f(e, `.${t.slideClass}, swiper-slide`);
3001    }
3002    enable() {
3003      const e = this;
3004      e.enabled ||
3005        ((e.enabled = !0),
3006        e.params.grabCursor && e.setGrabCursor(),
3007        e.emit("enable"));
3008    }
3009    disable() {
3010      const e = this;
3011      e.enabled &&
3012        ((e.enabled = !1),
3013        e.params.grabCursor && e.unsetGrabCursor(),
3014        e.emit("disable"));
3015    }
3016    setProgress(e, t) {
3017      const s = this;
3018      e = Math.min(Math.max(e, 0), 1);
3019      const a = s.minTranslate(),
3020        i = (s.maxTranslate() - a) * e + a;
3021      s.translateTo(i, void 0 === t ? 0 : t),
3022        s.updateActiveIndex(),
3023        s.updateSlidesClasses();
3024    }
3025    emitContainerClasses() {
3026      const e = this;
3027      if (!e.params._emitClasses || !e.el) return;
3028      const t = e.el.className
3029        .split(" ")
3030        .filter(
3031          (t) =>
3032            0 === t.indexOf("swiper") ||
3033            0 === t.indexOf(e.params.containerModifierClass)
3034        );
3035      e.emit("_containerClasses", t.join(" "));
3036    }
3037    getSlideClasses(e) {
3038      const t = this;
3039      return t.destroyed
3040        ? ""
3041        : e.className
3042            .split(" ")
3043            .filter(
3044              (e) =>
3045                0 === e.indexOf("swiper-slide") ||
3046                0 === e.indexOf(t.params.slideClass)
3047            )
3048            .join(" ");
3049    }
3050    emitSlidesClasses() {
3051      const e = this;
3052      if (!e.params._emitClasses || !e.el) return;
3053      const t = [];
3054      e.slides.forEach((s) => {
3055        const a = e.getSlideClasses(s);
3056        t.push({ slideEl: s, classNames: a }), e.emit("_slideClass", s, a);
3057      }),
3058        e.emit("_slideClasses", t);
3059    }
3060    slidesPerViewDynamic(e, t) {
3061      void 0 === e && (e = "current"), void 0 === t && (t = !1);
3062      const {
3063        params: s,
3064        slides: a,
3065        slidesGrid: i,
3066        slidesSizesGrid: r,
3067        size: n,
3068        activeIndex: l,
3069      } = this;
3070      let o = 1;
3071      if ("number" == typeof s.slidesPerView) return s.slidesPerView;
3072      if (s.centeredSlides) {
3073        let e,
3074          t = a[l] ? Math.ceil(a[l].swiperSlideSize) : 0;
3075        for (let s = l + 1; s < a.length; s += 1)
3076          a[s] &&
3077            !e &&
3078            ((t += Math.ceil(a[s].swiperSlideSize)),
3079            (o += 1),
3080            t > n && (e = !0));
3081        for (let s = l - 1; s >= 0; s -= 1)
3082          a[s] &&
3083            !e &&
3084            ((t += a[s].swiperSlideSize), (o += 1), t > n && (e = !0));
3085      } else if ("current" === e)
3086        for (let e = l + 1; e < a.length; e += 1) {
3087          (t ? i[e] + r[e] - i[l] < n : i[e] - i[l] < n) && (o += 1);
3088        }
3089      else
3090        for (let e = l - 1; e >= 0; e -= 1) {
3091          i[l] - i[e] < n && (o += 1);
3092        }
3093      return o;
3094    }
3095    update() {
3096      const e = this;
3097      if (!e || e.destroyed) return;
3098      const { snapGrid: t, params: s } = e;
3099      function a() {
3100        const t = e.rtlTranslate ? -1 * e.translate : e.translate,
3101          s = Math.min(Math.max(t, e.maxTranslate()), e.minTranslate());
3102        e.setTranslate(s), e.updateActiveIndex(), e.updateSlidesClasses();
3103      }
3104      let i;
3105      if (
3106        (s.breakpoints && e.setBreakpoint(),
3107        [...e.el.querySelectorAll('[loading="lazy"]')].forEach((t) => {
3108          t.complete && D(e, t);
3109        }),
3110        e.updateSize(),
3111        e.updateSlides(),
3112        e.updateProgress(),
3113        e.updateSlidesClasses(),
3114        s.freeMode && s.freeMode.enabled && !s.cssMode)
3115      )
3116        a(), s.autoHeight && e.updateAutoHeight();
3117      else {
3118        if (
3119          ("auto" === s.slidesPerView || s.slidesPerView > 1) &&
3120          e.isEnd &&
3121          !s.centeredSlides
3122        ) {
3123          const t =
3124            e.virtual && s.virtual.enabled ? e.virtual.slides : e.slides;
3125          i = e.slideTo(t.length - 1, 0, !1, !0);
3126        } else i = e.slideTo(e.activeIndex, 0, !1, !0);
3127        i || a();
3128      }
3129      s.watchOverflow && t !== e.snapGrid && e.checkOverflow(),
3130        e.emit("update");
3131    }
3132    changeDirection(e, t) {
3133      void 0 === t && (t = !0);
3134      const s = this,
3135        a = s.params.direction;
3136      return (
3137        e || (e = "horizontal" === a ? "vertical" : "horizontal"),
3138        e === a ||
3139          ("horizontal" !== e && "vertical" !== e) ||
3140          (s.el.classList.remove(`${s.params.containerModifierClass}${a}`),
3141          s.el.classList.add(`${s.params.containerModifierClass}${e}`),
3142          s.emitContainerClasses(),
3143          (s.params.direction = e),
3144          s.slides.forEach((t) => {
3145            "vertical" === e ? (t.style.width = "") : (t.style.height = "");
3146          }),
3147          s.emit("changeDirection"),
3148          t && s.update()),
3149        s
3150      );
3151    }
3152    changeLanguageDirection(e) {
3153      const t = this;
3154      (t.rtl && "rtl" === e) ||
3155        (!t.rtl && "ltr" === e) ||
3156        ((t.rtl = "rtl" === e),
3157        (t.rtlTranslate = "horizontal" === t.params.direction && t.rtl),
3158        t.rtl
3159          ? (t.el.classList.add(`${t.params.containerModifierClass}rtl`),
3160            (t.el.dir = "rtl"))
3161          : (t.el.classList.remove(`${t.params.containerModifierClass}rtl`),
3162            (t.el.dir = "ltr")),
3163        t.update());
3164    }
3165    mount(e) {
3166      const t = this;
3167      if (t.mounted) return !0;
3168      let s = e || t.params.el;
3169      if (("string" == typeof s && (s = document.querySelector(s)), !s))
3170        return !1;
3171      (s.swiper = t),
3172        s.parentNode &&
3173          s.parentNode.host &&
3174          s.parentNode.host.nodeName ===
3175            t.params.swiperElementNodeName.toUpperCase() &&
3176          (t.isElement = !0);
3177      const a = () =>
3178        `.${(t.params.wrapperClass || "").trim().split(" ").join(".")}`;
3179      let i = (() => {
3180        if (s && s.shadowRoot && s.shadowRoot.querySelector) {
3181          return s.shadowRoot.querySelector(a());
3182        }
3183        return f(s, a())[0];
3184      })();
3185      return (
3186        !i &&
3187          t.params.createElements &&
3188          ((i = v("div", t.params.wrapperClass)),
3189          s.append(i),
3190          f(s, `.${t.params.slideClass}`).forEach((e) => {
3191            i.append(e);
3192          })),
3193        Object.assign(t, {
3194          el: s,
3195          wrapperEl: i,
3196          slidesEl:
3197            t.isElement && !s.parentNode.host.slideSlots
3198              ? s.parentNode.host
3199              : i,
3200          hostEl: t.isElement ? s.parentNode.host : s,
3201          mounted: !0,
3202          rtl: "rtl" === s.dir.toLowerCase() || "rtl" === b(s, "direction"),
3203          rtlTranslate:
3204            "horizontal" === t.params.direction &&
3205            ("rtl" === s.dir.toLowerCase() || "rtl" === b(s, "direction")),
3206          wrongRTL: "-webkit-box" === b(i, "display"),
3207        }),
3208        !0
3209      );
3210    }
3211    init(e) {
3212      const t = this;
3213      if (t.initialized) return t;
3214      if (!1 === t.mount(e)) return t;
3215      t.emit("beforeInit"),
3216        t.params.breakpoints && t.setBreakpoint(),
3217        t.addClasses(),
3218        t.updateSize(),
3219        t.updateSlides(),
3220        t.params.watchOverflow && t.checkOverflow(),
3221        t.params.grabCursor && t.enabled && t.setGrabCursor(),
3222        t.params.loop && t.virtual && t.params.virtual.enabled
3223          ? t.slideTo(
3224              t.params.initialSlide + t.virtual.slidesBefore,
3225              0,
3226              t.params.runCallbacksOnInit,
3227              !1,
3228              !0
3229            )
3230          : t.slideTo(
3231              t.params.initialSlide,
3232              0,
3233              t.params.runCallbacksOnInit,
3234              !1,
3235              !0
3236            ),
3237        t.params.loop && t.loopCreate(void 0, !0),
3238        t.attachEvents();
3239      const s = [...t.el.querySelectorAll('[loading="lazy"]')];
3240      return (
3241        t.isElement && s.push(...t.hostEl.querySelectorAll('[loading="lazy"]')),
3242        s.forEach((e) => {
3243          e.complete
3244            ? D(t, e)
3245            : e.addEventListener("load", (e) => {
3246                D(t, e.target);
3247              });
3248        }),
3249        X(t),
3250        (t.initialized = !0),
3251        X(t),
3252        t.emit("init"),
3253        t.emit("afterInit"),
3254        t
3255      );
3256    }
3257    destroy(e, t) {
3258      void 0 === e && (e = !0), void 0 === t && (t = !0);
3259      const s = this,
3260        { params: a, el: i, wrapperEl: r, slides: n } = s;
3261      return (
3262        void 0 === s.params ||
3263          s.destroyed ||
3264          (s.emit("beforeDestroy"),
3265          (s.initialized = !1),
3266          s.detachEvents(),
3267          a.loop && s.loopDestroy(),
3268          t &&
3269            (s.removeClasses(),
3270            i && "string" != typeof i && i.removeAttribute("style"),
3271            r && r.removeAttribute("style"),
3272            n &&
3273              n.length &&
3274              n.forEach((e) => {
3275                e.classList.remove(
3276                  a.slideVisibleClass,
3277                  a.slideFullyVisibleClass,
3278                  a.slideActiveClass,
3279                  a.slideNextClass,
3280                  a.slidePrevClass
3281                ),
3282                  e.removeAttribute("style"),
3283                  e.removeAttribute("data-swiper-slide-index");
3284              })),
3285          s.emit("destroy"),
3286          Object.keys(s.eventsListeners).forEach((e) => {
3287            s.off(e);
3288          }),
3289          !1 !== e &&
3290            (s.el && "string" != typeof s.el && (s.el.swiper = null),
3291            (function (e) {
3292              const t = e;
3293              Object.keys(t).forEach((e) => {
3294                try {
3295                  t[e] = null;
3296                } catch (e) {}
3297                try {
3298                  delete t[e];
3299                } catch (e) {}
3300              });
3301            })(s)),
3302          (s.destroyed = !0)),
3303        null
3304      );
3305    }
3306    static extendDefaults(e) {
3307      p(ae, e);
3308    }
3309    static get extendedDefaults() {
3310      return ae;
3311    }
3312    static get defaults() {
3313      return ee;
3314    }
3315    static installModule(e) {
3316      ie.prototype.__modules__ || (ie.prototype.__modules__ = []);
3317      const t = ie.prototype.__modules__;
3318      "function" == typeof e && t.indexOf(e) < 0 && t.push(e);
3319    }
3320    static use(e) {
3321      return Array.isArray(e)
3322        ? (e.forEach((e) => ie.installModule(e)), ie)
3323        : (ie.installModule(e), ie);
3324    }
3325  }
3326  function re(e, t, s, a) {
3327    return (
3328      e.params.createElements &&
3329        Object.keys(a).forEach((i) => {
3330          if (!s[i] && !0 === s.auto) {
3331            let r = f(e.el, `.${a[i]}`)[0];
3332            r || ((r = v("div", a[i])), (r.className = a[i]), e.el.append(r)),
3333              (s[i] = r),
3334              (t[i] = r);
3335          }
3336        }),
3337      s
3338    );
3339  }
3340  function ne(e) {
3341    return (
3342      void 0 === e && (e = ""),
3343      `.${e
3344        .trim()
3345        .replace(/([\.:!+\/])/g, "\\$1")
3346        .replace(/ /g, ".")}`
3347    );
3348  }
3349  function le(e) {
3350    const t = this,
3351      { params: s, slidesEl: a } = t;
3352    s.loop && t.loopDestroy();
3353    const i = (e) => {
3354      if ("string" == typeof e) {
3355        const t = document.createElement("div");
3356        (t.innerHTML = e), a.append(t.children[0]), (t.innerHTML = "");
3357      } else a.append(e);
3358    };
3359    if ("object" == typeof e && "length" in e)
3360      for (let t = 0; t < e.length; t += 1) e[t] && i(e[t]);
3361    else i(e);
3362    t.recalcSlides(),
3363      s.loop && t.loopCreate(),
3364      (s.observer && !t.isElement) || t.update();
3365  }
3366  function oe(e) {
3367    const t = this,
3368      { params: s, activeIndex: a, slidesEl: i } = t;
3369    s.loop && t.loopDestroy();
3370    let r = a + 1;
3371    const n = (e) => {
3372      if ("string" == typeof e) {
3373        const t = document.createElement("div");
3374        (t.innerHTML = e), i.prepend(t.children[0]), (t.innerHTML = "");
3375      } else i.prepend(e);
3376    };
3377    if ("object" == typeof e && "length" in e) {
3378      for (let t = 0; t < e.length; t += 1) e[t] && n(e[t]);
3379      r = a + e.length;
3380    } else n(e);
3381    t.recalcSlides(),
3382      s.loop && t.loopCreate(),
3383      (s.observer && !t.isElement) || t.update(),
3384      t.slideTo(r, 0, !1);
3385  }
3386  function de(e, t) {
3387    const s = this,
3388      { params: a, activeIndex: i, slidesEl: r } = s;
3389    let n = i;
3390    a.loop && ((n -= s.loopedSlides), s.loopDestroy(), s.recalcSlides());
3391    const l = s.slides.length;
3392    if (e <= 0) return void s.prependSlide(t);
3393    if (e >= l) return void s.appendSlide(t);
3394    let o = n > e ? n + 1 : n;
3395    const d = [];
3396    for (let t = l - 1; t >= e; t -= 1) {
3397      const e = s.slides[t];
3398      e.remove(), d.unshift(e);
3399    }
3400    if ("object" == typeof t && "length" in t) {
3401      for (let e = 0; e < t.length; e += 1) t[e] && r.append(t[e]);
3402      o = n > e ? n + t.length : n;
3403    } else r.append(t);
3404    for (let e = 0; e < d.length; e += 1) r.append(d[e]);
3405    s.recalcSlides(),
3406      a.loop && s.loopCreate(),
3407      (a.observer && !s.isElement) || s.update(),
3408      a.loop ? s.slideTo(o + s.loopedSlides, 0, !1) : s.slideTo(o, 0, !1);
3409  }
3410  function ce(e) {
3411    const t = this,
3412      { params: s, activeIndex: a } = t;
3413    let i = a;
3414    s.loop && ((i -= t.loopedSlides), t.loopDestroy());
3415    let r,
3416      n = i;
3417    if ("object" == typeof e && "length" in e) {
3418      for (let s = 0; s < e.length; s += 1)
3419        (r = e[s]), t.slides[r] && t.slides[r].remove(), r < n && (n -= 1);
3420      n = Math.max(n, 0);
3421    } else
3422      (r = e),
3423        t.slides[r] && t.slides[r].remove(),
3424        r < n && (n -= 1),
3425        (n = Math.max(n, 0));
3426    t.recalcSlides(),
3427      s.loop && t.loopCreate(),
3428      (s.observer && !t.isElement) || t.update(),
3429      s.loop ? t.slideTo(n + t.loopedSlides, 0, !1) : t.slideTo(n, 0, !1);
3430  }
3431  function pe() {
3432    const e = this,
3433      t = [];
3434    for (let s = 0; s < e.slides.length; s += 1) t.push(s);
3435    e.removeSlide(t);
3436  }
3437  function ue(e) {
3438    const {
3439      effect: t,
3440      swiper: s,
3441      on: a,
3442      setTranslate: i,
3443      setTransition: r,
3444      overwriteParams: n,
3445      perspective: l,
3446      recreateShadows: o,
3447      getEffectParams: d,
3448    } = e;
3449    let c;
3450    a("beforeInit", () => {
3451      if (s.params.effect !== t) return;
3452      s.classNames.push(`${s.params.containerModifierClass}${t}`),
3453        l && l() && s.classNames.push(`${s.params.containerModifierClass}3d`);
3454      const e = n ? n() : {};
3455      Object.assign(s.params, e), Object.assign(s.originalParams, e);
3456    }),
3457      a("setTranslate", () => {
3458        s.params.effect === t && i();
3459      }),
3460      a("setTransition", (e, a) => {
3461        s.params.effect === t && r(a);
3462      }),
3463      a("transitionEnd", () => {
3464        if (s.params.effect === t && o) {
3465          if (!d || !d().slideShadows) return;
3466          s.slides.forEach((e) => {
3467            e.querySelectorAll(
3468              ".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left"
3469            ).forEach((e) => e.remove());
3470          }),
3471            o();
3472        }
3473      }),
3474      a("virtualUpdate", () => {
3475        s.params.effect === t &&
3476          (s.slides.length || (c = !0),
3477          requestAnimationFrame(() => {
3478            c && s.slides && s.slides.length && (i(), (c = !1));
3479          }));
3480      });
3481  }
3482  function me(e, t) {
3483    const s = h(t);
3484    return (
3485      s !== t &&
3486        ((s.style.backfaceVisibility = "hidden"),
3487        (s.style["-webkit-backface-visibility"] = "hidden")),
3488      s
3489    );
3490  }
3491  function he(e) {
3492    let { swiper: t, duration: s, transformElements: a, allSlides: i } = e;
3493    const { activeIndex: r } = t;
3494    if (t.params.virtualTranslate && 0 !== s) {
3495      let e,
3496        s = !1;
3497      (e = i
3498        ? a
3499        : a.filter((e) => {
3500            const s = e.classList.contains("swiper-slide-transform")
3501              ? ((e) => {
3502                  if (!e.parentElement)
3503                    return t.slides.find(
3504                      (t) => t.shadowRoot && t.shadowRoot === e.parentNode
3505                    );
3506                  return e.parentElement;
3507                })(e)
3508              : e;
3509            return t.getSlideIndex(s) === r;
3510          })),
3511        e.forEach((e) => {
3512          x(e, () => {
3513            if (s) return;
3514            if (!t || t.destroyed) return;
3515            (s = !0), (t.animating = !1);
3516            const e = new window.CustomEvent("transitionend", {
3517              bubbles: !0,
3518              cancelable: !0,
3519            });
3520            t.wrapperEl.dispatchEvent(e);
3521          });
3522        });
3523    }
3524  }
3525  function fe(e, t, s) {
3526    const a = `swiper-slide-shadow${s ? `-${s}` : ""}${
3527        e ? ` swiper-slide-shadow-${e}` : ""
3528      }`,
3529      i = h(t);
3530    let r = i.querySelector(`.${a.split(" ").join(".")}`);
3531    return r || ((r = v("div", a.split(" "))), i.append(r)), r;
3532  }
3533  Object.keys(se).forEach((e) => {
3534    Object.keys(se[e]).forEach((t) => {
3535      ie.prototype[t] = se[e][t];
3536    });
3537  }),
3538    ie.use([
3539      function (e) {
3540        let { swiper: t, on: s, emit: a } = e;
3541        const i = r();
3542        let n = null,
3543          l = null;
3544        const o = () => {
3545            t &&
3546              !t.destroyed &&
3547              t.initialized &&
3548              (a("beforeResize"), a("resize"));
3549          },
3550          d = () => {
3551            t && !t.destroyed && t.initialized && a("orientationchange");
3552          };
3553        s("init", () => {
3554          t.params.resizeObserver && void 0 !== i.ResizeObserver
3555            ? t &&
3556              !t.destroyed &&
3557              t.initialized &&
3558              ((n = new ResizeObserver((e) => {
3559                l = i.requestAnimationFrame(() => {
3560                  const { width: s, height: a } = t;
3561                  let i = s,
3562                    r = a;
3563                  e.forEach((e) => {
3564                    let { contentBoxSize: s, contentRect: a, target: n } = e;
3565                    (n && n !== t.el) ||
3566                      ((i = a ? a.width : (s[0] || s).inlineSize),
3567                      (r = a ? a.height : (s[0] || s).blockSize));
3568                  }),
3569                    (i === s && r === a) || o();
3570                });
3571              })),
3572              n.observe(t.el))
3573            : (i.addEventListener("resize", o),
3574              i.addEventListener("orientationchange", d));
3575        }),
3576          s("destroy", () => {
3577            l && i.cancelAnimationFrame(l),
3578              n && n.unobserve && t.el && (n.unobserve(t.el), (n = null)),
3579              i.removeEventListener("resize", o),
3580              i.removeEventListener("orientationchange", d);
3581          });
3582      },
3583      function (e) {
3584        let { swiper: t, extendParams: s, on: a, emit: i } = e;
3585        const n = [],
3586          l = r(),
3587          o = function (e, s) {
3588            void 0 === s && (s = {});
3589            const a = new (l.MutationObserver || l.WebkitMutationObserver)(
3590              (e) => {
3591                if (t.__preventObserver__) return;
3592                if (1 === e.length) return void i("observerUpdate", e[0]);
3593                const s = function () {
3594                  i("observerUpdate", e[0]);
3595                };
3596                l.requestAnimationFrame
3597                  ? l.requestAnimationFrame(s)
3598                  : l.setTimeout(s, 0);
3599              }
3600            );
3601            a.observe(e, {
3602              attributes: void 0 === s.attributes || s.attributes,
3603              childList: t.isElement || (void 0 === s.childList || s).childList,
3604              characterData: void 0 === s.characterData || s.characterData,
3605            }),
3606              n.push(a);
3607          };
3608        s({ observer: !1, observeParents: !1, observeSlideChildren: !1 }),
3609          a("init", () => {
3610            if (t.params.observer) {
3611              if (t.params.observeParents) {
3612                const e = E(t.hostEl);
3613                for (let t = 0; t < e.length; t += 1) o(e[t]);
3614              }
3615              o(t.hostEl, { childList: t.params.observeSlideChildren }),
3616                o(t.wrapperEl, { attributes: !1 });
3617            }
3618          }),
3619          a("destroy", () => {
3620            n.forEach((e) => {
3621              e.disconnect();
3622            }),
3623              n.splice(0, n.length);
3624          });
3625      },
3626    ]);
3627  const ge = [
3628    function (e) {
3629      let t,
3630        { swiper: s, extendParams: i, on: r, emit: n } = e;
3631      i({
3632        virtual: {
3633          enabled: !1,
3634          slides: [],
3635          cache: !0,
3636          renderSlide: null,
3637          renderExternal: null,
3638          renderExternalUpdate: !0,
3639          addSlidesBefore: 0,
3640          addSlidesAfter: 0,
3641        },
3642      });
3643      const l = a();
3644      s.virtual = {
3645        cache: {},
3646        from: void 0,
3647        to: void 0,
3648        slides: [],
3649        offset: 0,
3650        slidesGrid: [],
3651      };
3652      const o = l.createElement("div");
3653      function d(e, t) {
3654        const a = s.params.virtual;
3655        if (a.cache && s.virtual.cache[t]) return s.virtual.cache[t];
3656        let i;
3657        return (
3658          a.renderSlide
3659            ? ((i = a.renderSlide.call(s, e, t)),
3660              "string" == typeof i && ((o.innerHTML = i), (i = o.children[0])))
3661            : (i = s.isElement
3662                ? v("swiper-slide")
3663                : v("div", s.params.slideClass)),
3664          i.setAttribute("data-swiper-slide-index", t),
3665          a.renderSlide || (i.innerHTML = e),
3666          a.cache && (s.virtual.cache[t] = i),
3667          i
3668        );
3669      }
3670      function c(e, t, a) {
3671        const {
3672          slidesPerView: i,
3673          slidesPerGroup: r,
3674          centeredSlides: l,
3675          loop: o,
3676          initialSlide: c,
3677        } = s.params;
3678        if (t && !o && c > 0) return;
3679        const { addSlidesBefore: p, addSlidesAfter: u } = s.params.virtual,
3680          { from: m, to: h, slides: g, slidesGrid: v, offset: w } = s.virtual;
3681        s.params.cssMode || s.updateActiveIndex();
3682        const b = void 0 === a ? s.activeIndex || 0 : a;
3683        let y, E, x;
3684        (y = s.rtlTranslate ? "right" : s.isHorizontal() ? "left" : "top"),
3685          l
3686            ? ((E = Math.floor(i / 2) + r + u), (x = Math.floor(i / 2) + r + p))
3687            : ((E = i + (r - 1) + u), (x = (o ? i : r) + p));
3688        let S = b - x,
3689          T = b + E;
3690        o || ((S = Math.max(S, 0)), (T = Math.min(T, g.length - 1)));
3691        let M = (s.slidesGrid[S] || 0) - (s.slidesGrid[0] || 0);
3692        function C() {
3693          s.updateSlides(),
3694            s.updateProgress(),
3695            s.updateSlidesClasses(),
3696            n("virtualUpdate");
3697        }
3698        if (
3699          (o && b >= x
3700            ? ((S -= x), l || (M += s.slidesGrid[0]))
3701            : o && b < x && ((S = -x), l && (M += s.slidesGrid[0])),
3702          Object.assign(s.virtual, {
3703            from: S,
3704            to: T,
3705            offset: M,
3706            slidesGrid: s.slidesGrid,
3707            slidesBefore: x,
3708            slidesAfter: E,
3709          }),
3710          m === S && h === T && !e)
3711        )
3712          return (
3713            s.slidesGrid !== v &&
3714              M !== w &&
3715              s.slides.forEach((e) => {
3716                e.style[y] = M - Math.abs(s.cssOverflowAdjustment()) + "px";
3717              }),
3718            s.updateProgress(),
3719            void n("virtualUpdate")
3720          );
3721        if (s.params.virtual.renderExternal)
3722          return (
3723            s.params.virtual.renderExternal.call(s, {
3724              offset: M,
3725              from: S,
3726              to: T,
3727              slides: (function () {
3728                const e = [];
3729                for (let t = S; t <= T; t += 1) e.push(g[t]);
3730                return e;
3731              })(),
3732            }),
3733            void (s.params.virtual.renderExternalUpdate
3734              ? C()
3735              : n("virtualUpdate"))
3736          );
3737        const P = [],
3738          L = [],
3739          I = (e) => {
3740            let t = e;
3741            return (
3742              e < 0 ? (t = g.length + e) : t >= g.length && (t -= g.length), t
3743            );
3744          };
3745        if (e)
3746          s.slides
3747            .filter((e) => e.matches(`.${s.params.slideClass}, swiper-slide`))
3748            .forEach((e) => {
3749              e.remove();
3750            });
3751        else
3752          for (let e = m; e <= h; e += 1)
3753            if (e < S || e > T) {
3754              const t = I(e);
3755              s.slides
3756                .filter((e) =>
3757                  e.matches(
3758                    `.${s.params.slideClass}[data-swiper-slide-index="${t}"], swiper-slide[data-swiper-slide-index="${t}"]`
3759                  )
3760                )
3761                .forEach((e) => {
3762                  e.remove();
3763                });
3764            }
3765        const z = o ? -g.length : 0,
3766          A = o ? 2 * g.length : g.length;
3767        for (let t = z; t < A; t += 1)
3768          if (t >= S && t <= T) {
3769            const s = I(t);
3770            void 0 === h || e
3771              ? L.push(s)
3772              : (t > h && L.push(s), t < m && P.push(s));
3773          }
3774        if (
3775          (L.forEach((e) => {
3776            s.slidesEl.append(d(g[e], e));
3777          }),
3778          o)
3779        )
3780          for (let e = P.length - 1; e >= 0; e -= 1) {
3781            const t = P[e];
3782            s.slidesEl.prepend(d(g[t], t));
3783          }
3784        else
3785          P.sort((e, t) => t - e),
3786            P.forEach((e) => {
3787              s.slidesEl.prepend(d(g[e], e));
3788            });
3789        f(s.slidesEl, ".swiper-slide, swiper-slide").forEach((e) => {
3790          e.style[y] = M - Math.abs(s.cssOverflowAdjustment()) + "px";
3791        }),
3792          C();
3793      }
3794      r("beforeInit", () => {
3795        if (!s.params.virtual.enabled) return;
3796        let e;
3797        if (void 0 === s.passedParams.virtual.slides) {
3798          const t = [...s.slidesEl.children].filter((e) =>
3799            e.matches(`.${s.params.slideClass}, swiper-slide`)
3800          );
3801          t &&
3802            t.length &&
3803            ((s.virtual.slides = [...t]),
3804            (e = !0),
3805            t.forEach((e, t) => {
3806              e.setAttribute("data-swiper-slide-index", t),
3807                (s.virtual.cache[t] = e),
3808                e.remove();
3809            }));
3810        }
3811        e || (s.virtual.slides = s.params.virtual.slides),
3812          s.classNames.push(`${s.params.containerModifierClass}virtual`),
3813          (s.params.watchSlidesProgress = !0),
3814          (s.originalParams.watchSlidesProgress = !0),
3815          c(!1, !0);
3816      }),
3817        r("setTranslate", () => {
3818          s.params.virtual.enabled &&
3819            (s.params.cssMode && !s._immediateVirtual
3820              ? (clearTimeout(t),
3821                (t = setTimeout(() => {
3822                  c();
3823                }, 100)))
3824              : c());
3825        }),
3826        r("init update resize", () => {
3827          s.params.virtual.enabled &&
3828            s.params.cssMode &&
3829            u(s.wrapperEl, "--swiper-virtual-size", `${s.virtualSize}px`);
3830        }),
3831        Object.assign(s.virtual, {
3832          appendSlide: function (e) {
3833            if ("object" == typeof e && "length" in e)
3834              for (let t = 0; t < e.length; t += 1)
3835                e[t] && s.virtual.slides.push(e[t]);
3836            else s.virtual.slides.push(e);
3837            c(!0);
3838          },
3839          prependSlide: function (e) {
3840            const t = s.activeIndex;
3841            let a = t + 1,
3842              i = 1;
3843            if (Array.isArray(e)) {
3844              for (let t = 0; t < e.length; t += 1)
3845                e[t] && s.virtual.slides.unshift(e[t]);
3846              (a = t + e.length), (i = e.length);
3847            } else s.virtual.slides.unshift(e);
3848            if (s.params.virtual.cache) {
3849              const e = s.virtual.cache,
3850                t = {};
3851              Object.keys(e).forEach((s) => {
3852                const a = e[s],
3853                  r = a.getAttribute("data-swiper-slide-index");
3854                r &&
3855                  a.setAttribute(
3856                    "data-swiper-slide-index",
3857                    parseInt(r, 10) + i
3858                  ),
3859                  (t[parseInt(s, 10) + i] = a);
3860              }),
3861                (s.virtual.cache = t);
3862            }
3863            c(!0), s.slideTo(a, 0);
3864          },
3865          removeSlide: function (e) {
3866            if (null == e) return;
3867            let t = s.activeIndex;
3868            if (Array.isArray(e))
3869              for (let a = e.length - 1; a >= 0; a -= 1)
3870                s.params.virtual.cache &&
3871                  (delete s.virtual.cache[e[a]],
3872                  Object.keys(s.virtual.cache).forEach((t) => {
3873                    t > e &&
3874                      ((s.virtual.cache[t - 1] = s.virtual.cache[t]),
3875                      s.virtual.cache[t - 1].setAttribute(
3876                        "data-swiper-slide-index",
3877                        t - 1
3878                      ),
3879                      delete s.virtual.cache[t]);
3880                  })),
3881                  s.virtual.slides.splice(e[a], 1),
3882                  e[a] < t && (t -= 1),
3883                  (t = Math.max(t, 0));
3884            else
3885              s.params.virtual.cache &&
3886                (delete s.virtual.cache[e],
3887                Object.keys(s.virtual.cache).forEach((t) => {
3888                  t > e &&
3889                    ((s.virtual.cache[t - 1] = s.virtual.cache[t]),
3890                    s.virtual.cache[t - 1].setAttribute(
3891                      "data-swiper-slide-index",
3892                      t - 1
3893                    ),
3894                    delete s.virtual.cache[t]);
3895                })),
3896                s.virtual.slides.splice(e, 1),
3897                e < t && (t -= 1),
3898                (t = Math.max(t, 0));
3899            c(!0), s.slideTo(t, 0);
3900          },
3901          removeAllSlides: function () {
3902            (s.virtual.slides = []),
3903              s.params.virtual.cache && (s.virtual.cache = {}),
3904              c(!0),
3905              s.slideTo(0, 0);
3906          },
3907          update: c,
3908        });
3909    },
3910    function (e) {
3911      let { swiper: t, extendParams: s, on: i, emit: n } = e;
3912      const l = a(),
3913        o = r();
3914      function d(e) {
3915        if (!t.enabled) return;
3916        const { rtlTranslate: s } = t;
3917        let a = e;
3918        a.originalEvent && (a = a.originalEvent);
3919        const i = a.keyCode || a.charCode,
3920          r = t.params.keyboard.pageUpDown,
3921          d = r && 33 === i,
3922          c = r && 34 === i,
3923          p = 37 === i,
3924          u = 39 === i,
3925          m = 38 === i,
3926          h = 40 === i;
3927        if (
3928          !t.allowSlideNext &&
3929          ((t.isHorizontal() && u) || (t.isVertical() && h) || c)
3930        )
3931          return !1;
3932        if (
3933          !t.allowSlidePrev &&
3934          ((t.isHorizontal() && p) || (t.isVertical() && m) || d)
3935        )
3936          return !1;
3937        if (
3938          !(
3939            a.shiftKey ||
3940            a.altKey ||
3941            a.ctrlKey ||
3942            a.metaKey ||
3943            (l.activeElement &&
3944              l.activeElement.nodeName &&
3945              ("input" === l.activeElement.nodeName.toLowerCase() ||
3946                "textarea" === l.activeElement.nodeName.toLowerCase()))
3947          )
3948        ) {
3949          if (
3950            t.params.keyboard.onlyInViewport &&
3951            (d || c || p || u || m || h)
3952          ) {
3953            let e = !1;
3954            if (
3955              E(t.el, `.${t.params.slideClass}, swiper-slide`).length > 0 &&
3956              0 === E(t.el, `.${t.params.slideActiveClass}`).length
3957            )
3958              return;
3959            const a = t.el,
3960              i = a.clientWidth,
3961              r = a.clientHeight,
3962              n = o.innerWidth,
3963              l = o.innerHeight,
3964              d = w(a);
3965            s && (d.left -= a.scrollLeft);
3966            const c = [
3967              [d.left, d.top],
3968              [d.left + i, d.top],
3969              [d.left, d.top + r],
3970              [d.left + i, d.top + r],
3971            ];
3972            for (let t = 0; t < c.length; t += 1) {
3973              const s = c[t];
3974              if (s[0] >= 0 && s[0] <= n && s[1] >= 0 && s[1] <= l) {
3975                if (0 === s[0] && 0 === s[1]) continue;
3976                e = !0;
3977              }
3978            }
3979            if (!e) return;
3980          }
3981          t.isHorizontal()
3982            ? ((d || c || p || u) &&
3983                (a.preventDefault ? a.preventDefault() : (a.returnValue = !1)),
3984              (((c || u) && !s) || ((d || p) && s)) && t.slideNext(),
3985              (((d || p) && !s) || ((c || u) && s)) && t.slidePrev())
3986            : ((d || c || m || h) &&
3987                (a.preventDefault ? a.preventDefault() : (a.returnValue = !1)),
3988              (c || h) && t.slideNext(),
3989              (d || m) && t.slidePrev()),
3990            n("keyPress", i);
3991        }
3992      }
3993      function c() {
3994        t.keyboard.enabled ||
3995          (l.addEventListener("keydown", d), (t.keyboard.enabled = !0));
3996      }
3997      function p() {
3998        t.keyboard.enabled &&
3999          (l.removeEventListener("keydown", d), (t.keyboard.enabled = !1));
4000      }
4001      (t.keyboard = { enabled: !1 }),
4002        s({ keyboard: { enabled: !1, onlyInViewport: !0, pageUpDown: !0 } }),
4003        i("init", () => {
4004          t.params.keyboard.enabled && c();
4005        }),
4006        i("destroy", () => {
4007          t.keyboard.enabled && p();
4008        }),
4009        Object.assign(t.keyboard, { enable: c, disable: p });
4010    },
4011    function (e) {
4012      let { swiper: t, extendParams: s, on: a, emit: i } = e;
4013      const n = r();
4014      let d;
4015      s({
4016        mousewheel: {
4017          enabled: !1,
4018          releaseOnEdges: !1,
4019          invert: !1,
4020          forceToAxis: !1,
4021          sensitivity: 1,
4022          eventsTarget: "container",
4023          thresholdDelta: null,
4024          thresholdTime: null,
4025          noMousewheelClass: "swiper-no-mousewheel",
4026        },
4027      }),
4028        (t.mousewheel = { enabled: !1 });
4029      let c,
4030        p = o();
4031      const u = [];
4032      function m() {
4033        t.enabled && (t.mouseEntered = !0);
4034      }
4035      function h() {
4036        t.enabled && (t.mouseEntered = !1);
4037      }
4038      function f(e) {
4039        return (
4040          !(
4041            t.params.mousewheel.thresholdDelta &&
4042            e.delta < t.params.mousewheel.thresholdDelta
4043          ) &&
4044          !(
4045            t.params.mousewheel.thresholdTime &&
4046            o() - p < t.params.mousewheel.thresholdTime
4047          ) &&
4048          ((e.delta >= 6 && o() - p < 60) ||
4049            (e.direction < 0
4050              ? (t.isEnd && !t.params.loop) ||
4051                t.animating ||
4052                (t.slideNext(), i("scroll", e.raw))
4053              : (t.isBeginning && !t.params.loop) ||
4054                t.animating ||
4055                (t.slidePrev(), i("scroll", e.raw)),
4056            (p = new n.Date().getTime()),
4057            !1))
4058        );
4059      }
4060      function g(e) {
4061        let s = e,
4062          a = !0;
4063        if (!t.enabled) return;
4064        if (e.target.closest(`.${t.params.mousewheel.noMousewheelClass}`))
4065          return;
4066        const r = t.params.mousewheel;
4067        t.params.cssMode && s.preventDefault();
4068        let n = t.el;
4069        "container" !== t.params.mousewheel.eventsTarget &&
4070          (n = document.querySelector(t.params.mousewheel.eventsTarget));
4071        const p = n && n.contains(s.target);
4072        if (!t.mouseEntered && !p && !r.releaseOnEdges) return !0;
4073        s.originalEvent && (s = s.originalEvent);
4074        let m = 0;
4075        const h = t.rtlTranslate ? -1 : 1,
4076          g = (function (e) {
4077            let t = 0,
4078              s = 0,
4079              a = 0,
4080              i = 0;
4081            return (
4082              "detail" in e && (s = e.detail),
4083              "wheelDelta" in e && (s = -e.wheelDelta / 120),
4084              "wheelDeltaY" in e && (s = -e.wheelDeltaY / 120),
4085              "wheelDeltaX" in e && (t = -e.wheelDeltaX / 120),
4086              "axis" in e && e.axis === e.HORIZONTAL_AXIS && ((t = s), (s = 0)),
4087              (a = 10 * t),
4088              (i = 10 * s),
4089              "deltaY" in e && (i = e.deltaY),
4090              "deltaX" in e && (a = e.deltaX),
4091              e.shiftKey && !a && ((a = i), (i = 0)),
4092              (a || i) &&
4093                e.deltaMode &&
4094                (1 === e.deltaMode
4095                  ? ((a *= 40), (i *= 40))
4096                  : ((a *= 800), (i *= 800))),
4097              a && !t && (t = a < 1 ? -1 : 1),
4098              i && !s && (s = i < 1 ? -1 : 1),
4099              { spinX: t, spinY: s, pixelX: a, pixelY: i }
4100            );
4101          })(s);
4102        if (r.forceToAxis)
4103          if (t.isHorizontal()) {
4104            if (!(Math.abs(g.pixelX) > Math.abs(g.pixelY))) return !0;
4105            m = -g.pixelX * h;
4106          } else {
4107            if (!(Math.abs(g.pixelY) > Math.abs(g.pixelX))) return !0;
4108            m = -g.pixelY;
4109          }
4110        else
4111          m =
4112            Math.abs(g.pixelX) > Math.abs(g.pixelY) ? -g.pixelX * h : -g.pixelY;
4113        if (0 === m) return !0;
4114        r.invert && (m = -m);
4115        let v = t.getTranslate() + m * r.sensitivity;
4116        if (
4117          (v >= t.minTranslate() && (v = t.minTranslate()),
4118          v <= t.maxTranslate() && (v = t.maxTranslate()),
4119          (a =
4120            !!t.params.loop ||
4121            !(v === t.minTranslate() || v === t.maxTranslate())),
4122          a && t.params.nested && s.stopPropagation(),
4123          t.params.freeMode && t.params.freeMode.enabled)
4124        ) {
4125          const e = { time: o(), delta: Math.abs(m), direction: Math.sign(m) },
4126            a =
4127              c &&
4128              e.time < c.time + 500 &&
4129              e.delta <= c.delta &&
4130              e.direction === c.direction;
4131          if (!a) {
4132            c = void 0;
4133            let n = t.getTranslate() + m * r.sensitivity;
4134            const o = t.isBeginning,
4135              p = t.isEnd;
4136            if (
4137              (n >= t.minTranslate() && (n = t.minTranslate()),
4138              n <= t.maxTranslate() && (n = t.maxTranslate()),
4139              t.setTransition(0),
4140              t.setTranslate(n),
4141              t.updateProgress(),
4142              t.updateActiveIndex(),
4143              t.updateSlidesClasses(),
4144              ((!o && t.isBeginning) || (!p && t.isEnd)) &&
4145                t.updateSlidesClasses(),
4146              t.params.loop &&
4147                t.loopFix({
4148                  direction: e.direction < 0 ? "next" : "prev",
4149                  byMousewheel: !0,
4150                }),
4151              t.params.freeMode.sticky)
4152            ) {
4153              clearTimeout(d), (d = void 0), u.length >= 15 && u.shift();
4154              const s = u.length ? u[u.length - 1] : void 0,
4155                a = u[0];
4156              if (
4157                (u.push(e),
4158                s && (e.delta > s.delta || e.direction !== s.direction))
4159              )
4160                u.splice(0);
4161              else if (
4162                u.length >= 15 &&
4163                e.time - a.time < 500 &&
4164                a.delta - e.delta >= 1 &&
4165                e.delta <= 6
4166              ) {
4167                const s = m > 0 ? 0.8 : 0.2;
4168                (c = e),
4169                  u.splice(0),
4170                  (d = l(() => {
4171                    !t.destroyed &&
4172                      t.params &&
4173                      t.slideToClosest(t.params.speed, !0, void 0, s);
4174                  }, 0));
4175              }
4176              d ||
4177                (d = l(() => {
4178                  if (t.destroyed || !t.params) return;
4179                  (c = e),
4180                    u.splice(0),
4181                    t.slideToClosest(t.params.speed, !0, void 0, 0.5);
4182                }, 500));
4183            }
4184            if (
4185              (a || i("scroll", s),
4186              t.params.autoplay &&
4187                t.params.autoplay.disableOnInteraction &&
4188                t.autoplay.stop(),
4189              r.releaseOnEdges &&
4190                (n === t.minTranslate() || n === t.maxTranslate()))
4191            )
4192              return !0;
4193          }
4194        } else {
4195          const s = {
4196            time: o(),
4197            delta: Math.abs(m),
4198            direction: Math.sign(m),
4199            raw: e,
4200          };
4201          u.length >= 2 && u.shift();
4202          const a = u.length ? u[u.length - 1] : void 0;
4203          if (
4204            (u.push(s),
4205            a
4206              ? (s.direction !== a.direction ||
4207                  s.delta > a.delta ||
4208                  s.time > a.time + 150) &&
4209                f(s)
4210              : f(s),
4211            (function (e) {
4212              const s = t.params.mousewheel;
4213              if (e.direction < 0) {
4214                if (t.isEnd && !t.params.loop && s.releaseOnEdges) return !0;
4215              } else if (t.isBeginning && !t.params.loop && s.releaseOnEdges)
4216                return !0;
4217              return !1;
4218            })(s))
4219          )
4220            return !0;
4221        }
4222        return s.preventDefault ? s.preventDefault() : (s.returnValue = !1), !1;
4223      }
4224      function v(e) {
4225        let s = t.el;
4226        "container" !== t.params.mousewheel.eventsTarget &&
4227          (s = document.querySelector(t.params.mousewheel.eventsTarget)),
4228          s[e]("mouseenter", m),
4229          s[e]("mouseleave", h),
4230          s[e]("wheel", g);
4231      }
4232      function w() {
4233        return t.params.cssMode
4234          ? (t.wrapperEl.removeEventListener("wheel", g), !0)
4235          : !t.mousewheel.enabled &&
4236              (v("addEventListener"), (t.mousewheel.enabled = !0), !0);
4237      }
4238      function b() {
4239        return t.params.cssMode
4240          ? (t.wrapperEl.addEventListener(event, g), !0)
4241          : !!t.mousewheel.enabled &&
4242              (v("removeEventListener"), (t.mousewheel.enabled = !1), !0);
4243      }
4244      a("init", () => {
4245        !t.params.mousewheel.enabled && t.params.cssMode && b(),
4246          t.params.mousewheel.enabled && w();
4247      }),
4248        a("destroy", () => {
4249          t.params.cssMode && w(), t.mousewheel.enabled && b();
4250        }),
4251        Object.assign(t.mousewheel, { enable: w, disable: b });
4252    },
4253    function (e) {
4254      let { swiper: t, extendParams: s, on: a, emit: i } = e;
4255      function r(e) {
4256        let s;
4257        return e &&
4258          "string" == typeof e &&
4259          t.isElement &&
4260          ((s = t.el.querySelector(e) || t.hostEl.querySelector(e)), s)
4261          ? s
4262          : (e &&
4263              ("string" == typeof e && (s = [...document.querySelectorAll(e)]),
4264              t.params.uniqueNavElements &&
4265              "string" == typeof e &&
4266              s &&
4267              s.length > 1 &&
4268              1 === t.el.querySelectorAll(e).length
4269                ? (s = t.el.querySelector(e))
4270                : s && 1 === s.length && (s = s[0])),
4271            e && !s ? e : s);
4272      }
4273      function n(e, s) {
4274        const a = t.params.navigation;
4275        (e = T(e)).forEach((e) => {
4276          e &&
4277            (e.classList[s ? "add" : "remove"](...a.disabledClass.split(" ")),
4278            "BUTTON" === e.tagName && (e.disabled = s),
4279            t.params.watchOverflow &&
4280              t.enabled &&
4281              e.classList[t.isLocked ? "add" : "remove"](a.lockClass));
4282        });
4283      }
4284      function l() {
4285        const { nextEl: e, prevEl: s } = t.navigation;
4286        if (t.params.loop) return n(s, !1), void n(e, !1);
4287        n(s, t.isBeginning && !t.params.rewind),
4288          n(e, t.isEnd && !t.params.rewind);
4289      }
4290      function o(e) {
4291        e.preventDefault(),
4292          (!t.isBeginning || t.params.loop || t.params.rewind) &&
4293            (t.slidePrev(), i("navigationPrev"));
4294      }
4295      function d(e) {
4296        e.preventDefault(),
4297          (!t.isEnd || t.params.loop || t.params.rewind) &&
4298            (t.slideNext(), i("navigationNext"));
4299      }
4300      function c() {
4301        const e = t.params.navigation;
4302        if (
4303          ((t.params.navigation = re(
4304            t,
4305            t.originalParams.navigation,
4306            t.params.navigation,
4307            { nextEl: "swiper-button-next", prevEl: "swiper-button-prev" }
4308          )),
4309          !e.nextEl && !e.prevEl)
4310        )
4311          return;
4312        let s = r(e.nextEl),
4313          a = r(e.prevEl);
4314        Object.assign(t.navigation, { nextEl: s, prevEl: a }),
4315          (s = T(s)),
4316          (a = T(a));
4317        const i = (s, a) => {
4318          s && s.addEventListener("click", "next" === a ? d : o),
4319            !t.enabled && s && s.classList.add(...e.lockClass.split(" "));
4320        };
4321        s.forEach((e) => i(e, "next")), a.forEach((e) => i(e, "prev"));
4322      }
4323      function p() {
4324        let { nextEl: e, prevEl: s } = t.navigation;
4325        (e = T(e)), (s = T(s));
4326        const a = (e, s) => {
4327          e.removeEventListener("click", "next" === s ? d : o),
4328            e.classList.remove(...t.params.navigation.disabledClass.split(" "));
4329        };
4330        e.forEach((e) => a(e, "next")), s.forEach((e) => a(e, "prev"));
4331      }
4332      s({
4333        navigation: {
4334          nextEl: null,
4335          prevEl: null,
4336          hideOnClick: !1,
4337          disabledClass: "swiper-button-disabled",
4338          hiddenClass: "swiper-button-hidden",
4339          lockClass: "swiper-button-lock",
4340          navigationDisabledClass: "swiper-navigation-disabled",
4341        },
4342      }),
4343        (t.navigation = { nextEl: null, prevEl: null }),
4344        a("init", () => {
4345          !1 === t.params.navigation.enabled ? u() : (c(), l());
4346        }),
4347        a("toEdge fromEdge lock unlock", () => {
4348          l();
4349        }),
4350        a("destroy", () => {
4351          p();
4352        }),
4353        a("enable disable", () => {
4354          let { nextEl: e, prevEl: s } = t.navigation;
4355          (e = T(e)),
4356            (s = T(s)),
4357            t.enabled
4358              ? l()
4359              : [...e, ...s]
4360                  .filter((e) => !!e)
4361                  .forEach((e) =>
4362                    e.classList.add(t.params.navigation.lockClass)
4363                  );
4364        }),
4365        a("click", (e, s) => {
4366          let { nextEl: a, prevEl: r } = t.navigation;
4367          (a = T(a)), (r = T(r));
4368          const n = s.target;
4369          let l = r.includes(n) || a.includes(n);
4370          if (t.isElement && !l) {
4371            const e = s.path || (s.composedPath && s.composedPath());
4372            e && (l = e.find((e) => a.includes(e) || r.includes(e)));
4373          }
4374          if (t.params.navigation.hideOnClick && !l) {
4375            if (
4376              t.pagination &&
4377              t.params.pagination &&
4378              t.params.pagination.clickable &&
4379              (t.pagination.el === n || t.pagination.el.contains(n))
4380            )
4381              return;
4382            let e;
4383            a.length
4384              ? (e = a[0].classList.contains(t.params.navigation.hiddenClass))
4385              : r.length &&
4386                (e = r[0].classList.contains(t.params.navigation.hiddenClass)),
4387              i(!0 === e ? "navigationShow" : "navigationHide"),
4388              [...a, ...r]
4389                .filter((e) => !!e)
4390                .forEach((e) =>
4391                  e.classList.toggle(t.params.navigation.hiddenClass)
4392                );
4393          }
4394        });
4395      const u = () => {
4396        t.el.classList.add(
4397          ...t.params.navigation.navigationDisabledClass.split(" ")
4398        ),
4399          p();
4400      };
4401      Object.assign(t.navigation, {
4402        enable: () => {
4403          t.el.classList.remove(
4404            ...t.params.navigation.navigationDisabledClass.split(" ")
4405          ),
4406            c(),
4407            l();
4408        },
4409        disable: u,
4410        update: l,
4411        init: c,
4412        destroy: p,
4413      });
4414    },
4415    function (e) {
4416      let { swiper: t, extendParams: s, on: a, emit: i } = e;
4417      const r = "swiper-pagination";
4418      let n;
4419      s({
4420        pagination: {
4421          el: null,
4422          bulletElement: "span",
4423          clickable: !1,
4424          hideOnClick: !1,
4425          renderBullet: null,
4426          renderProgressbar: null,
4427          renderFraction: null,
4428          renderCustom: null,
4429          progressbarOpposite: !1,
4430          type: "bullets",
4431          dynamicBullets: !1,
4432          dynamicMainBullets: 1,
4433          formatFractionCurrent: (e) => e,
4434          formatFractionTotal: (e) => e,
4435          bulletClass: `${r}-bullet`,
4436          bulletActiveClass: `${r}-bullet-active`,
4437          modifierClass: `${r}-`,
4438          currentClass: `${r}-current`,
4439          totalClass: `${r}-total`,
4440          hiddenClass: `${r}-hidden`,
4441          progressbarFillClass: `${r}-progressbar-fill`,
4442          progressbarOppositeClass: `${r}-progressbar-opposite`,
4443          clickableClass: `${r}-clickable`,
4444          lockClass: `${r}-lock`,
4445          horizontalClass: `${r}-horizontal`,
4446          verticalClass: `${r}-vertical`,
4447          paginationDisabledClass: `${r}-disabled`,
4448        },
4449      }),
4450        (t.pagination = { el: null, bullets: [] });
4451      let l = 0;
4452      function o() {
4453        return (
4454          !t.params.pagination.el ||
4455          !t.pagination.el ||
4456          (Array.isArray(t.pagination.el) && 0 === t.pagination.el.length)
4457        );
4458      }
4459      function d(e, s) {
4460        const { bulletActiveClass: a } = t.params.pagination;
4461        e &&
4462          (e = e[("prev" === s ? "previous" : "next") + "ElementSibling"]) &&
4463          (e.classList.add(`${a}-${s}`),
4464          (e = e[("prev" === s ? "previous" : "next") + "ElementSibling"]) &&
4465            e.classList.add(`${a}-${s}-${s}`));
4466      }
4467      function c(e) {
4468        const s = e.target.closest(ne(t.params.pagination.bulletClass));
4469        if (!s) return;
4470        e.preventDefault();
4471        const a = y(s) * t.params.slidesPerGroup;
4472        if (t.params.loop) {
4473          if (t.realIndex === a) return;
4474          const e =
4475            ((i = t.realIndex),
4476            (r = a),
4477            (n = t.slides.length),
4478            (r %= n) == 1 + (i %= n)
4479              ? "next"
4480              : r === i - 1
4481              ? "previous"
4482              : void 0);
4483          "next" === e
4484            ? t.slideNext()
4485            : "previous" === e
4486            ? t.slidePrev()
4487            : t.slideToLoop(a);
4488        } else t.slideTo(a);
4489        var i, r, n;
4490      }
4491      function p() {
4492        const e = t.rtl,
4493          s = t.params.pagination;
4494        if (o()) return;
4495        let a,
4496          r,
4497          c = t.pagination.el;
4498        c = T(c);
4499        const p =
4500            t.virtual && t.params.virtual.enabled
4501              ? t.virtual.slides.length
4502              : t.slides.length,
4503          u = t.params.loop
4504            ? Math.ceil(p / t.params.slidesPerGroup)
4505            : t.snapGrid.length;
4506        if (
4507          (t.params.loop
4508            ? ((r = t.previousRealIndex || 0),
4509              (a =
4510                t.params.slidesPerGroup > 1
4511                  ? Math.floor(t.realIndex / t.params.slidesPerGroup)
4512                  : t.realIndex))
4513            : void 0 !== t.snapIndex
4514            ? ((a = t.snapIndex), (r = t.previousSnapIndex))
4515            : ((r = t.previousIndex || 0), (a = t.activeIndex || 0)),
4516          "bullets" === s.type &&
4517            t.pagination.bullets &&
4518            t.pagination.bullets.length > 0)
4519        ) {
4520          const i = t.pagination.bullets;
4521          let o, p, u;
4522          if (
4523            (s.dynamicBullets &&
4524              ((n = S(i[0], t.isHorizontal() ? "width" : "height", !0)),
4525              c.forEach((e) => {
4526                e.style[t.isHorizontal() ? "width" : "height"] =
4527                  n * (s.dynamicMainBullets + 4) + "px";
4528              }),
4529              s.dynamicMainBullets > 1 &&
4530                void 0 !== r &&
4531                ((l += a - (r || 0)),
4532                l > s.dynamicMainBullets - 1
4533                  ? (l = s.dynamicMainBullets - 1)
4534                  : l < 0 && (l = 0)),
4535              (o = Math.max(a - l, 0)),
4536              (p = o + (Math.min(i.length, s.dynamicMainBullets) - 1)),
4537              (u = (p + o) / 2)),
4538            i.forEach((e) => {
4539              const t = [
4540                ...[
4541                  "",
4542                  "-next",
4543                  "-next-next",
4544                  "-prev",
4545                  "-prev-prev",
4546                  "-main",
4547                ].map((e) => `${s.bulletActiveClass}${e}`),
4548              ]
4549                .map((e) =>
4550                  "string" == typeof e && e.includes(" ") ? e.split(" ") : e
4551                )
4552                .flat();
4553              e.classList.remove(...t);
4554            }),
4555            c.length > 1)
4556          )
4557            i.forEach((e) => {
4558              const i = y(e);
4559              i === a
4560                ? e.classList.add(...s.bulletActiveClass.split(" "))
4561                : t.isElement && e.setAttribute("part", "bullet"),
4562                s.dynamicBullets &&
4563                  (i >= o &&
4564                    i <= p &&
4565                    e.classList.add(
4566                      ...`${s.bulletActiveClass}-main`.split(" ")
4567                    ),
4568                  i === o && d(e, "prev"),
4569                  i === p && d(e, "next"));
4570            });
4571          else {
4572            const e = i[a];
4573            if (
4574              (e && e.classList.add(...s.bulletActiveClass.split(" ")),
4575              t.isElement &&
4576                i.forEach((e, t) => {
4577                  e.setAttribute("part", t === a ? "bullet-active" : "bullet");
4578                }),
4579              s.dynamicBullets)
4580            ) {
4581              const e = i[o],
4582                t = i[p];
4583              for (let e = o; e <= p; e += 1)
4584                i[e] &&
4585                  i[e].classList.add(
4586                    ...`${s.bulletActiveClass}-main`.split(" ")
4587                  );
4588              d(e, "prev"), d(t, "next");
4589            }
4590          }
4591          if (s.dynamicBullets) {
4592            const a = Math.min(i.length, s.dynamicMainBullets + 4),
4593              r = (n * a - n) / 2 - u * n,
4594              l = e ? "right" : "left";
4595            i.forEach((e) => {
4596              e.style[t.isHorizontal() ? l : "top"] = `${r}px`;
4597            });
4598          }
4599        }
4600        c.forEach((e, r) => {
4601          if (
4602            ("fraction" === s.type &&
4603              (e.querySelectorAll(ne(s.currentClass)).forEach((e) => {
4604                e.textContent = s.formatFractionCurrent(a + 1);
4605              }),
4606              e.querySelectorAll(ne(s.totalClass)).forEach((e) => {
4607                e.textContent = s.formatFractionTotal(u);
4608              })),
4609            "progressbar" === s.type)
4610          ) {
4611            let i;
4612            i = s.progressbarOpposite
4613              ? t.isHorizontal()
4614                ? "vertical"
4615                : "horizontal"
4616              : t.isHorizontal()
4617              ? "horizontal"
4618              : "vertical";
4619            const r = (a + 1) / u;
4620            let n = 1,
4621              l = 1;
4622            "horizontal" === i ? (n = r) : (l = r),
4623              e.querySelectorAll(ne(s.progressbarFillClass)).forEach((e) => {
4624                (e.style.transform = `translate3d(0,0,0) scaleX(${n}) scaleY(${l})`),
4625                  (e.style.transitionDuration = `${t.params.speed}ms`);
4626              });
4627          }
4628          "custom" === s.type && s.renderCustom
4629            ? ((e.innerHTML = s.renderCustom(t, a + 1, u)),
4630              0 === r && i("paginationRender", e))
4631            : (0 === r && i("paginationRender", e), i("paginationUpdate", e)),
4632            t.params.watchOverflow &&
4633              t.enabled &&
4634              e.classList[t.isLocked ? "add" : "remove"](s.lockClass);
4635        });
4636      }
4637      function u() {
4638        const e = t.params.pagination;
4639        if (o()) return;
4640        const s =
4641          t.virtual && t.params.virtual.enabled
4642            ? t.virtual.slides.length
4643            : t.grid && t.params.grid.rows > 1
4644            ? t.slides.length / Math.ceil(t.params.grid.rows)
4645            : t.slides.length;
4646        let a = t.pagination.el;
4647        a = T(a);
4648        let r = "";
4649        if ("bullets" === e.type) {
4650          let a = t.params.loop
4651            ? Math.ceil(s / t.params.slidesPerGroup)
4652            : t.snapGrid.length;
4653          t.params.freeMode && t.params.freeMode.enabled && a > s && (a = s);
4654          for (let s = 0; s < a; s += 1)
4655            e.renderBullet
4656              ? (r += e.renderBullet.call(t, s, e.bulletClass))
4657              : (r += `<${e.bulletElement} ${
4658                  t.isElement ? 'part="bullet"' : ""
4659                } class="${e.bulletClass}"></${e.bulletElement}>`);
4660        }
4661        "fraction" === e.type &&
4662          (r = e.renderFraction
4663            ? e.renderFraction.call(t, e.currentClass, e.totalClass)
4664            : `<span class="${e.currentClass}"></span> / <span class="${e.totalClass}"></span>`),
4665          "progressbar" === e.type &&
4666            (r = e.renderProgressbar
4667              ? e.renderProgressbar.call(t, e.progressbarFillClass)
4668              : `<span class="${e.progressbarFillClass}"></span>`),
4669          (t.pagination.bullets = []),
4670          a.forEach((s) => {
4671            "custom" !== e.type && (s.innerHTML = r || ""),
4672              "bullets" === e.type &&
4673                t.pagination.bullets.push(
4674                  ...s.querySelectorAll(ne(e.bulletClass))
4675                );
4676          }),
4677          "custom" !== e.type && i("paginationRender", a[0]);
4678      }
4679      function m() {
4680        t.params.pagination = re(
4681          t,
4682          t.originalParams.pagination,
4683          t.params.pagination,
4684          { el: "swiper-pagination" }
4685        );
4686        const e = t.params.pagination;
4687        if (!e.el) return;
4688        let s;
4689        "string" == typeof e.el &&
4690          t.isElement &&
4691          (s = t.el.querySelector(e.el)),
4692          s ||
4693            "string" != typeof e.el ||
4694            (s = [...document.querySelectorAll(e.el)]),
4695          s || (s = e.el),
4696          s &&
4697            0 !== s.length &&
4698            (t.params.uniqueNavElements &&
4699              "string" == typeof e.el &&
4700              Array.isArray(s) &&
4701              s.length > 1 &&
4702              ((s = [...t.el.querySelectorAll(e.el)]),
4703              s.length > 1 && (s = s.find((e) => E(e, ".swiper")[0] === t.el))),
4704            Array.isArray(s) && 1 === s.length && (s = s[0]),
4705            Object.assign(t.pagination, { el: s }),
4706            (s = T(s)),
4707            s.forEach((s) => {
4708              "bullets" === e.type &&
4709                e.clickable &&
4710                s.classList.add(...(e.clickableClass || "").split(" ")),
4711                s.classList.add(e.modifierClass + e.type),
4712                s.classList.add(
4713                  t.isHorizontal() ? e.horizontalClass : e.verticalClass
4714                ),
4715                "bullets" === e.type &&
4716                  e.dynamicBullets &&
4717                  (s.classList.add(`${e.modifierClass}${e.type}-dynamic`),
4718                  (l = 0),
4719                  e.dynamicMainBullets < 1 && (e.dynamicMainBullets = 1)),
4720                "progressbar" === e.type &&
4721                  e.progressbarOpposite &&
4722                  s.classList.add(e.progressbarOppositeClass),
4723                e.clickable && s.addEventListener("click", c),
4724                t.enabled || s.classList.add(e.lockClass);
4725            }));
4726      }
4727      function h() {
4728        const e = t.params.pagination;
4729        if (o()) return;
4730        let s = t.pagination.el;
4731        s &&
4732          ((s = T(s)),
4733          s.forEach((s) => {
4734            s.classList.remove(e.hiddenClass),
4735              s.classList.remove(e.modifierClass + e.type),
4736              s.classList.remove(
4737                t.isHorizontal() ? e.horizontalClass : e.verticalClass
4738              ),
4739              e.clickable &&
4740                (s.classList.remove(...(e.clickableClass || "").split(" ")),
4741                s.removeEventListener("click", c));
4742          })),
4743          t.pagination.bullets &&
4744            t.pagination.bullets.forEach((t) =>
4745              t.classList.remove(...e.bulletActiveClass.split(" "))
4746            );
4747      }
4748      a("changeDirection", () => {
4749        if (!t.pagination || !t.pagination.el) return;
4750        const e = t.params.pagination;
4751        let { el: s } = t.pagination;
4752        (s = T(s)),
4753          s.forEach((s) => {
4754            s.classList.remove(e.horizontalClass, e.verticalClass),
4755              s.classList.add(
4756                t.isHorizontal() ? e.horizontalClass : e.verticalClass
4757              );
4758          });
4759      }),
4760        a("init", () => {
4761          !1 === t.params.pagination.enabled ? f() : (m(), u(), p());
4762        }),
4763        a("activeIndexChange", () => {
4764          void 0 === t.snapIndex && p();
4765        }),
4766        a("snapIndexChange", () => {
4767          p();
4768        }),
4769        a("snapGridLengthChange", () => {
4770          u(), p();
4771        }),
4772        a("destroy", () => {
4773          h();
4774        }),
4775        a("enable disable", () => {
4776          let { el: e } = t.pagination;
4777          e &&
4778            ((e = T(e)),
4779            e.forEach((e) =>
4780              e.classList[t.enabled ? "remove" : "add"](
4781                t.params.pagination.lockClass
4782              )
4783            ));
4784        }),
4785        a("lock unlock", () => {
4786          p();
4787        }),
4788        a("click", (e, s) => {
4789          const a = s.target,
4790            r = T(t.pagination.el);
4791          if (
4792            t.params.pagination.el &&
4793            t.params.pagination.hideOnClick &&
4794            r &&
4795            r.length > 0 &&
4796            !a.classList.contains(t.params.pagination.bulletClass)
4797          ) {
4798            if (
4799              t.navigation &&
4800              ((t.navigation.nextEl && a === t.navigation.nextEl) ||
4801                (t.navigation.prevEl && a === t.navigation.prevEl))
4802            )
4803              return;
4804            const e = r[0].classList.contains(t.params.pagination.hiddenClass);
4805            i(!0 === e ? "paginationShow" : "paginationHide"),
4806              r.forEach((e) =>
4807                e.classList.toggle(t.params.pagination.hiddenClass)
4808              );
4809          }
4810        });
4811      const f = () => {
4812        t.el.classList.add(t.params.pagination.paginationDisabledClass);
4813        let { el: e } = t.pagination;
4814        e &&
4815          ((e = T(e)),
4816          e.forEach((e) =>
4817            e.classList.add(t.params.pagination.paginationDisabledClass)
4818          )),
4819          h();
4820      };
4821      Object.assign(t.pagination, {
4822        enable: () => {
4823          t.el.classList.remove(t.params.pagination.paginationDisabledClass);
4824          let { el: e } = t.pagination;
4825          e &&
4826            ((e = T(e)),
4827            e.forEach((e) =>
4828              e.classList.remove(t.params.pagination.paginationDisabledClass)
4829            )),
4830            m(),
4831            u(),
4832            p();
4833        },
4834        disable: f,
4835        render: u,
4836        update: p,
4837        init: m,
4838        destroy: h,
4839      });
4840    },
4841    function (e) {
4842      let { swiper: t, extendParams: s, on: i, emit: r }
4842 = e;
4843      const o = a();
4844      let d,
4845        c,
4846        p,
4847        u,
4848        m = !1,
4849        h = null,
4850        f = null;
4851      function g() {
4852        if (!t.params.scrollbar.el || !t.scrollbar.el) return;
4853        const { scrollbar: e, rtlTranslate: s } = t,
4854          { dragEl: a, el: i } = e,
4855          r = t.params.scrollbar,
4856          n = t.params.loop ? t.progressLoop : t.progress;
4857        let l = c,
4858          o = (p - c) * n;
4859        s
4860          ? ((o = -o),
4861            o > 0 ? ((l = c - o), (o = 0)) : -o + c > p && (l = p + o))
4862          : o < 0
4863          ? ((l = c + o), (o = 0))
4864          : o + c > p && (l = p - o),
4865          t.isHorizontal()
4866            ? ((a.style.transform = `translate3d(${o}px, 0, 0)`),
4867              (a.style.width = `${l}px`))
4868            : ((a.style.transform = `translate3d(0px, ${o}px, 0)`),
4869              (a.style.height = `${l}px`)),
4870          r.hide &&
4871            (clearTimeout(h),
4872            (i.style.opacity = 1),
4873            (h = setTimeout(() => {
4874              (i.style.opacity = 0), (i.style.transitionDuration = "400ms");
4875            }, 1e3)));
4876      }
4877      function b() {
4878        if (!t.params.scrollbar.el || !t.scrollbar.el) return;
4879        const { scrollbar: e } = t,
4880          { dragEl: s, el: a } = e;
4881        (s.style.width = ""),
4882          (s.style.height = ""),
4883          (p = t.isHorizontal() ? a.offsetWidth : a.offsetHeight),
4884          (u =
4885            t.size /
4886            (t.virtualSize +
4887              t.params.slidesOffsetBefore -
4888              (t.params.centeredSlides ? t.snapGrid[0] : 0))),
4889          (c =
4890            "auto" === t.params.scrollbar.dragSize
4891              ? p * u
4892              : parseInt(t.params.scrollbar.dragSize, 10)),
4893          t.isHorizontal()
4894            ? (s.style.width = `${c}px`)
4895            : (s.style.height = `${c}px`),
4896          (a.style.display = u >= 1 ? "none" : ""),
4897          t.params.scrollbar.hide && (a.style.opacity = 0),
4898          t.params.watchOverflow &&
4899            t.enabled &&
4900            e.el.classList[t.isLocked ? "add" : "remove"](
4901              t.params.scrollbar.lockClass
4902            );
4903      }
4904      function y(e) {
4905        return t.isHorizontal() ? e.clientX : e.clientY;
4906      }
4907      function E(e) {
4908        const { scrollbar: s, rtlTranslate: a } = t,
4909          { el: i } = s;
4910        let r;
4911        (r =
4912          (y(e) -
4913            w(i)[t.isHorizontal() ? "left" : "top"] -
4914            (null !== d ? d : c / 2)) /
4915          (p - c)),
4916          (r = Math.max(Math.min(r, 1), 0)),
4917          a && (r = 1 - r);
4918        const n = t.minTranslate() + (t.maxTranslate() - t.minTranslate()) * r;
4919        t.updateProgress(n),
4920          t.setTranslate(n),
4921          t.updateActiveIndex(),
4922          t.updateSlidesClasses();
4923      }
4924      function x(e) {
4925        const s = t.params.scrollbar,
4926          { scrollbar: a, wrapperEl: i } = t,
4927          { el: n, dragEl: l } = a;
4928        (m = !0),
4929          (d =
4930            e.target === l
4931              ? y(e) -
4932                e.target.getBoundingClientRect()[
4933                  t.isHorizontal() ? "left" : "top"
4934                ]
4935              : null),
4936          e.preventDefault(),
4937          e.stopPropagation(),
4938          (i.style.transitionDuration = "100ms"),
4939          (l.style.transitionDuration = "100ms"),
4940          E(e),
4941          clearTimeout(f),
4942          (n.style.transitionDuration = "0ms"),
4943          s.hide && (n.style.opacity = 1),
4944          t.params.cssMode && (t.wrapperEl.style["scroll-snap-type"] = "none"),
4945          r("scrollbarDragStart", e);
4946      }
4947      function S(e) {
4948        const { scrollbar: s, wrapperEl: a } = t,
4949          { el: i, dragEl: n } = s;
4950        m &&
4951          (e.preventDefault && e.cancelable
4952            ? e.preventDefault()
4953            : (e.returnValue = !1),
4954          E(e),
4955          (a.style.transitionDuration = "0ms"),
4956          (i.style.transitionDuration = "0ms"),
4957          (n.style.transitionDuration = "0ms"),
4958          r("scrollbarDragMove", e));
4959      }
4960      function M(e) {
4961        const s = t.params.scrollbar,
4962          { scrollbar: a, wrapperEl: i } = t,
4963          { el: n } = a;
4964        m &&
4965          ((m = !1),
4966          t.params.cssMode &&
4967            ((t.wrapperEl.style["scroll-snap-type"] = ""),
4968            (i.style.transitionDuration = "")),
4969          s.hide &&
4970            (clearTimeout(f),
4971            (f = l(() => {
4972              (n.style.opacity = 0), (n.style.transitionDuration = "400ms");
4973            }, 1e3))),
4974          r("scrollbarDragEnd", e),
4975          s.snapOnRelease && t.slideToClosest());
4976      }
4977      function C(e) {
4978        const { scrollbar: s, params: a } = t,
4979          i = s.el;
4980        if (!i) return;
4981        const r = i,
4982          n = !!a.passiveListeners && { passive: !1, capture: !1 },
4983          l = !!a.passiveListeners && { passive: !0, capture: !1 };
4984        if (!r) return;
4985        const d = "on" === e ? "addEventListener" : "removeEventListener";
4986        r[d]("pointerdown", x, n),
4987          o[d]("pointermove", S, n),
4988          o[d]("pointerup", M, l);
4989      }
4990      function P() {
4991        const { scrollbar: e, el: s } = t;
4992        t.params.scrollbar = re(
4993          t,
4994          t.originalParams.scrollbar,
4995          t.params.scrollbar,
4996          { el: "swiper-scrollbar" }
4997        );
4998        const a = t.params.scrollbar;
4999        if (!a.el) return;
5000        let i, r;
5001        if (
5002          ("string" == typeof a.el &&
5003            t.isElement &&
5004            (i = t.el.querySelector(a.el)),
5005          i || "string" != typeof a.el)
5006        )
5007          i || (i = a.el);
5008        else if (((i = o.querySelectorAll(a.el)), !i.length)) return;
5009        t.params.uniqueNavElements &&
5010          "string" == typeof a.el &&
5011          i.length > 1 &&
5012          1 === s.querySelectorAll(a.el).length &&
5013          (i = s.querySelector(a.el)),
5014          i.length > 0 && (i = i[0]),
5015          i.classList.add(
5016            t.isHorizontal() ? a.horizontalClass : a.verticalClass
5017          ),
5018          i &&
5019            ((r = i.querySelector(ne(t.params.scrollbar.dragClass))),
5020            r || ((r = v("div", t.params.scrollbar.dragClass)), i.append(r))),
5021          Object.assign(e, { el: i, dragEl: r }),
5022          a.draggable && t.params.scrollbar.el && t.scrollbar.el && C("on"),
5023          i &&
5024            i.classList[t.enabled ? "remove" : "add"](
5025              ...n(t.params.scrollbar.lockClass)
5026            );
5027      }
5028      function L() {
5029        const e = t.params.scrollbar,
5030          s = t.scrollbar.el;
5031        s &&
5032          s.classList.remove(
5033            ...n(t.isHorizontal() ? e.horizontalClass : e.verticalClass)
5034          ),
5035          t.params.scrollbar.el && t.scrollbar.el && C("off");
5036      }
5037      s({
5038        scrollbar: {
5039          el: null,
5040          dragSize: "auto",
5041          hide: !1,
5042          draggable: !1,
5043          snapOnRelease: !0,
5044          lockClass: "swiper-scrollbar-lock",
5045          dragClass: "swiper-scrollbar-drag",
5046          scrollbarDisabledClass: "swiper-scrollbar-disabled",
5047          horizontalClass: "swiper-scrollbar-horizontal",
5048          verticalClass: "swiper-scrollbar-vertical",
5049        },
5050      }),
5051        (t.scrollbar = { el: null, dragEl: null }),
5052        i("changeDirection", () => {
5053          if (!t.scrollbar || !t.scrollbar.el) return;
5054          const e = t.params.scrollbar;
5055          let { el: s } = t.scrollbar;
5056          (s = T(s)),
5057            s.forEach((s) => {
5058              s.classList.remove(e.horizontalClass, e.verticalClass),
5059                s.classList.add(
5060                  t.isHorizontal() ? e.horizontalClass : e.verticalClass
5061                );
5062            });
5063        }),
5064        i("init", () => {
5065          !1 === t.params.scrollbar.enabled ? I() : (P(), b(), g());
5066        }),
5067        i("update resize observerUpdate lock unlock changeDirection", () => {
5068          b();
5069        }),
5070        i("setTranslate", () => {
5071          g();
5072        }),
5073        i("setTransition", (e, s) => {
5074          !(function (e) {
5075            t.params.scrollbar.el &&
5076              t.scrollbar.el &&
5077              (t.scrollbar.dragEl.style.transitionDuration = `${e}ms`);
5078          })(s);
5079        }),
5080        i("enable disable", () => {
5081          const { el: e } = t.scrollbar;
5082          e &&
5083            e.classList[t.enabled ? "remove" : "add"](
5084              ...n(t.params.scrollbar.lockClass)
5085            );
5086        }),
5087        i("destroy", () => {
5088          L();
5089        });
5090      const I = () => {
5091        t.el.classList.add(...n(t.params.scrollbar.scrollbarDisabledClass)),
5092          t.scrollbar.el &&
5093            t.scrollbar.el.classList.add(
5094              ...n(t.params.scrollbar.scrollbarDisabledClass)
5095            ),
5096          L();
5097      };
5098      Object.assign(t.scrollbar, {
5099        enable: () => {
5100          t.el.classList.remove(
5101            ...n(t.params.scrollbar.scrollbarDisabledClass)
5102          ),
5103            t.scrollbar.el &&
5104              t.scrollbar.el.classList.remove(
5105                ...n(t.params.scrollbar.scrollbarDisabledClass)
5106              ),
5107            P(),
5108            b(),
5109            g();
5110        },
5111        disable: I,
5112        updateSize: b,
5113        setTranslate: g,
5114        init: P,
5115        destroy: L,
5116      });
5117    },
5118    function (e) {
5119      let { swiper: t, extendParams: s, on: a } = e;
5120      s({ parallax: { enabled: !1 } });
5121      const i =
5122          "[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]",
5123        r = (e, s) => {
5124          const { rtl: a } = t,
5125            i = a ? -1 : 1,
5126            r = e.getAttribute("data-swiper-parallax") || "0";
5127          let n = e.getAttribute("data-swiper-parallax-x"),
5128            l = e.getAttribute("data-swiper-parallax-y");
5129          const o = e.getAttribute("data-swiper-parallax-scale"),
5130            d = e.getAttribute("data-swiper-parallax-opacity"),
5131            c = e.getAttribute("data-swiper-parallax-rotate");
5132          if (
5133            (n || l
5134              ? ((n = n || "0"), (l = l || "0"))
5135              : t.isHorizontal()
5136              ? ((n = r), (l = "0"))
5137              : ((l = r), (n = "0")),
5138            (n =
5139              n.indexOf("%") >= 0
5140                ? parseInt(n, 10) * s * i + "%"
5141                : n * s * i + "px"),
5142            (l =
5143              l.indexOf("%") >= 0 ? parseInt(l, 10) * s + "%" : l * s + "px"),
5144            null != d)
5145          ) {
5146            const t = d - (d - 1) * (1 - Math.abs(s));
5147            e.style.opacity = t;
5148          }
5149          let p = `translate3d(${n}, ${l}, 0px)`;
5150          if (null != o) {
5151            p += ` scale(${o - (o - 1) * (1 - Math.abs(s))})`;
5152          }
5153          if (c && null != c) {
5154            p += ` rotate(${c * s * -1}deg)`;
5155          }
5156          e.style.transform = p;
5157        },
5158        n = () => {
5159          const {
5160              el: e,
5161              slides: s,
5162              progress: a,
5163              snapGrid: n,
5164              isElement: l,
5165            } = t,
5166            o = f(e, i);
5167          t.isElement && o.push(...f(t.hostEl, i)),
5168            o.forEach((e) => {
5169              r(e, a);
5170            }),
5171            s.forEach((e, s) => {
5172              let l = e.progress;
5173              t.params.slidesPerGroup > 1 &&
5174                "auto" !== t.params.slidesPerView &&
5175                (l += Math.ceil(s / 2) - a * (n.length - 1)),
5176                (l = Math.min(Math.max(l, -1), 1)),
5177                e
5178                  .querySelectorAll(`${i}, [data-swiper-parallax-rotate]`)
5179                  .forEach((e) => {
5180                    r(e, l);
5181                  });
5182            });
5183        };
5184      a("beforeInit", () => {
5185        t.params.parallax.enabled &&
5186          ((t.params.watchSlidesProgress = !0),
5187          (t.originalParams.watchSlidesProgress = !0));
5188      }),
5189        a("init", () => {
5190          t.params.parallax.enabled && n();
5191        }),
5192        a("setTranslate", () => {
5193          t.params.parallax.enabled && n();
5194        }),
5195        a("setTransition", (e, s) => {
5196          t.params.parallax.enabled &&
5197            (function (e) {
5198              void 0 === e && (e = t.params.speed);
5199              const { el: s, hostEl: a } = t,
5200                r = [...s.querySelectorAll(i)];
5201              t.isElement && r.push(...a.querySelectorAll(i)),
5202                r.forEach((t) => {
5203                  let s =
5204                    parseInt(
5205                      t.getAttribute("data-swiper-parallax-duration"),
5206                      10
5207                    ) || e;
5208                  0 === e && (s = 0), (t.style.transitionDuration = `${s}ms`);
5209                });
5210            })(s);
5211        });
5212    },
5213    function (e) {
5214      let { swiper: t, extendParams: s, on: a, emit: i } = e;
5215      const n = r();
5216      s({
5217        zoom: {
5218          enabled: !1,
5219          limitToOriginalSize: !1,
5220          maxRatio: 3,
5221          minRatio: 1,
5222          panOnMouseMove: !1,
5223          toggle: !0,
5224          containerClass: "swiper-zoom-container",
5225          zoomedSlideClass: "swiper-slide-zoomed",
5226        },
5227      }),
5228        (t.zoom = { enabled: !1 });
5229      let l = 1,
5230        o = !1,
5231        c = !1,
5232        p = { x: 0, y: 0 };
5233      const u = -3;
5234      let m, h;
5235      const g = [],
5236        v = {
5237          originX: 0,
5238          originY: 0,
5239          slideEl: void 0,
5240          slideWidth: void 0,
5241          slideHeight: void 0,
5242          imageEl: void 0,
5243          imageWrapEl: void 0,
5244          maxRatio: 3,
5245        },
5246        b = {
5247          isTouched: void 0,
5248          isMoved: void 0,
5249          currentX: void 0,
5250          currentY: void 0,
5251          minX: void 0,
5252          minY: void 0,
5253          maxX: void 0,
5254          maxY: void 0,
5255          width: void 0,
5256          height: void 0,
5257          startX: void 0,
5258          startY: void 0,
5259          touchesStart: {},
5260          touchesCurrent: {},
5261        },
5262        y = {
5263          x: void 0,
5264          y: void 0,
5265          prevPositionX: void 0,
5266          prevPositionY: void 0,
5267          prevTime: void 0,
5268        };
5269      let x,
5270        S = 1;
5271      function T() {
5272        if (g.length < 2) return 1;
5273        const e = g[0].pageX,
5274          t = g[0].pageY,
5275          s = g[1].pageX,
5276          a = g[1].pageY;
5277        return Math.sqrt((s - e) ** 2 + (a - t) ** 2);
5278      }
5279      function M() {
5280        const e = t.params.zoom,
5281          s = v.imageWrapEl.getAttribute("data-swiper-zoom") || e.maxRatio;
5282        if (e.limitToOriginalSize && v.imageEl && v.imageEl.naturalWidth) {
5283          const e = v.imageEl.naturalWidth / v.imageEl.offsetWidth;
5284          return Math.min(e, s);
5285        }
5286        return s;
5287      }
5288      function C(e) {
5289        const s = t.isElement ? "swiper-slide" : `.${t.params.slideClass}`;
5290        return (
5291          !!e.target.matches(s) ||
5292          t.slides.filter((t) => t.contains(e.target)).length > 0
5293        );
5294      }
5295      function P(e) {
5296        const s = `.${t.params.zoom.containerClass}`;
5297        return (
5298          !!e.target.matches(s) ||
5299          [...t.hostEl.querySelectorAll(s)].filter((t) => t.contains(e.target))
5300            .length > 0
5301        );
5302      }
5303      function L(e) {
5304        if (("mouse" === e.pointerType && g.splice(0, g.length), !C(e))) return;
5305        const s = t.params.zoom;
5306        if (((m = !1), (h = !1), g.push(e), !(g.length < 2))) {
5307          if (((m = !0), (v.scaleStart = T()), !v.slideEl)) {
5308            (v.slideEl = e.target.closest(
5309              `.${t.params.slideClass}, swiper-slide`
5310            )),
5311              v.slideEl || (v.slideEl = t.slides[t.activeIndex]);
5312            let a = v.slideEl.querySelector(`.${s.containerClass}`);
5313            if (
5314              (a &&
5315                (a = a.querySelectorAll(
5316                  "picture, img, svg, canvas, .swiper-zoom-target"
5317                )[0]),
5318              (v.imageEl = a),
5319              (v.imageWrapEl = a
5320                ? E(v.imageEl, `.${s.containerClass}`)[0]
5321                : void 0),
5322              !v.imageWrapEl)
5323            )
5324              return void (v.imageEl = void 0);
5325            v.maxRatio = M();
5326          }
5327          if (v.imageEl) {
5328            const [e, t] = (function () {
5329              if (g.length < 2) return { x: null, y: null };
5330              const e = v.imageEl.getBoundingClientRect();
5331              return [
5332                (g[0].pageX + (g[1].pageX - g[0].pageX) / 2 - e.x - n.scrollX) /
5333                  l,
5334                (g[0].pageY + (g[1].pageY - g[0].pageY) / 2 - e.y - n.scrollY) /
5335                  l,
5336              ];
5337            })();
5338            (v.originX = e),
5339              (v.originY = t),
5340              (v.imageEl.style.transitionDuration = "0ms");
5341          }
5342          o = !0;
5343        }
5344      }
5345      function I(e) {
5346        if (!C(e)) return;
5347        const s = t.params.zoom,
5348          a = t.zoom,
5349          i = g.findIndex((t) => t.pointerId === e.pointerId);
5350        i >= 0 && (g[i] = e),
5351          g.length < 2 ||
5352            ((h = !0),
5353            (v.scaleMove = T()),
5354            v.imageEl &&
5355              ((a.scale = (v.scaleMove / v.scaleStart) * l),
5356              a.scale > v.maxRatio &&
5357                (a.scale = v.maxRatio - 1 + (a.scale - v.maxRatio + 1) ** 0.5),
5358              a.scale < s.minRatio &&
5359                (a.scale = s.minRatio + 1 - (s.minRatio - a.scale + 1) ** 0.5),
5360              (v.imageEl.style.transform = `translate3d(0,0,0) scale(${a.scale})`)));
5361      }
5362      function z(e) {
5363        if (!C(e)) return;
5364        if ("mouse" === e.pointerType && "pointerout" === e.type) return;
5365        const s = t.params.zoom,
5366          a = t.zoom,
5367          i = g.findIndex((t) => t.pointerId === e.pointerId);
5368        i >= 0 && g.splice(i, 1),
5369          m &&
5370            h &&
5371            ((m = !1),
5372            (h = !1),
5373            v.imageEl &&
5374              ((a.scale = Math.max(Math.min(a.scale, v.maxRatio), s.minRatio)),
5375              (v.imageEl.style.transitionDuration = `${t.params.speed}ms`),
5376              (v.imageEl.style.transform = `translate3d(0,0,0) scale(${a.scale})`),
5377              (l = a.scale),
5378              (o = !1),
5379              a.scale > 1 && v.slideEl
5380                ? v.slideEl.classList.add(`${s.zoomedSlideClass}`)
5381                : a.scale <= 1 &&
5382                  v.slideEl &&
5383                  v.slideEl.classList.remove(`${s.zoomedSlideClass}`),
5384              1 === a.scale &&
5385                ((v.originX = 0), (v.originY = 0), (v.slideEl = void 0))));
5386      }
5387      function A() {
5388        t.touchEventsData.preventTouchMoveFromPointerMove = !1;
5389      }
5390      function $(e) {
5391        const s = "mouse" === e.pointerType && t.params.zoom.panOnMouseMove;
5392        if (!C(e) || !P(e)) return;
5393        const a = t.zoom;
5394        if (!v.imageEl) return;
5395        if (!b.isTouched || !v.slideEl) return void (s && O(e));
5396        if (s) return void O(e);
5397        b.isMoved ||
5398          ((b.width = v.imageEl.offsetWidth || v.imageEl.clientWidth),
5399          (b.height = v.imageEl.offsetHeight || v.imageEl.clientHeight),
5400          (b.startX = d(v.imageWrapEl, "x") || 0),
5401          (b.startY = d(v.imageWrapEl, "y") || 0),
5402          (v.slideWidth = v.slideEl.offsetWidth),
5403          (v.slideHeight = v.slideEl.offsetHeight),
5404          (v.imageWrapEl.style.transitionDuration = "0ms"));
5405        const i = b.width * a.scale,
5406          r = b.height * a.scale;
5407        (b.minX = Math.min(v.slideWidth / 2 - i / 2, 0)),
5408          (b.maxX = -b.minX),
5409          (b.minY = Math.min(v.slideHeight / 2 - r / 2, 0)),
5410          (b.maxY = -b.minY),
5411          (b.touchesCurrent.x = g.length > 0 ? g[0].pageX : e.pageX),
5412          (b.touchesCurrent.y = g.length > 0 ? g[0].pageY : e.pageY);
5413        if (
5414          (Math.max(
5415            Math.abs(b.touchesCurrent.x - b.touchesStart.x),
5416            Math.abs(b.touchesCurrent.y - b.touchesStart.y)
5417          ) > 5 && (t.allowClick = !1),
5418          !b.isMoved && !o)
5419        ) {
5420          if (
5421            t.isHorizontal() &&
5422            ((Math.floor(b.minX) === Math.floor(b.startX) &&
5423              b.touchesCurrent.x < b.touchesStart.x) ||
5424              (Math.floor(b.maxX) === Math.floor(b.startX) &&
5425                b.touchesCurrent.x > b.touchesStart.x))
5426          )
5427            return (b.isTouched = !1), void A();
5428          if (
5429            !t.isHorizontal() &&
5430            ((Math.floor(b.minY) === Math.floor(b.startY) &&
5431              b.touchesCurrent.y < b.touchesStart.y) ||
5432              (Math.floor(b.maxY) === Math.floor(b.startY) &&
5433                b.touchesCurrent.y > b.touchesStart.y))
5434          )
5435            return (b.isTouched = !1), void A();
5436        }
5437        e.cancelable && e.preventDefault(),
5438          e.stopPropagation(),
5439          clearTimeout(x),
5440          (t.touchEventsData.preventTouchMoveFromPointerMove = !0),
5441          (x = setTimeout(() => {
5442            t.destroyed || A();
5443          })),
5444          (b.isMoved = !0);
5445        const n = (a.scale - l) / (v.maxRatio - t.params.zoom.minRatio),
5446          { originX: c, originY: p } = v;
5447        (b.currentX =
5448          b.touchesCurrent.x -
5449          b.touchesStart.x +
5450          b.startX +
5451          n * (b.width - 2 * c)),
5452          (b.currentY =
5453            b.touchesCurrent.y -
5454            b.touchesStart.y +
5455            b.startY +
5456            n * (b.height - 2 * p)),
5457          b.currentX < b.minX &&
5458            (b.currentX = b.minX + 1 - (b.minX - b.currentX + 1) ** 0.8),
5459          b.currentX > b.maxX &&
5460            (b.currentX = b.maxX - 1 + (b.currentX - b.maxX + 1) ** 0.8),
5461          b.currentY < b.minY &&
5462            (b.currentY = b.minY + 1 - (b.minY - b.currentY + 1) ** 0.8),
5463          b.currentY > b.maxY &&
5464            (b.currentY = b.maxY - 1 + (b.currentY - b.maxY + 1) ** 0.8),
5465          y.prevPositionX || (y.prevPositionX = b.touchesCurrent.x),
5466          y.prevPositionY || (y.prevPositionY = b.touchesCurrent.y),
5467          y.prevTime || (y.prevTime = Date.now()),
5468          (y.x =
5469            (b.touchesCurrent.x - y.prevPositionX) /
5470            (Date.now() - y.prevTime) /
5471            2),
5472          (y.y =
5473            (b.touchesCurrent.y - y.prevPositionY) /
5474            (Date.now() - y.prevTime) /
5475            2),
5476          Math.abs(b.touchesCurrent.x - y.prevPositionX) < 2 && (y.x = 0),
5477          Math.abs(b.touchesCurrent.y - y.prevPositionY) < 2 && (y.y = 0),
5478          (y.prevPositionX = b.touchesCurrent.x),
5479          (y.prevPositionY = b.touchesCurrent.y),
5480          (y.prevTime = Date.now()),
5481          (v.imageWrapEl.style.transform = `translate3d(${b.currentX}px, ${b.currentY}px,0)`);
5482      }
5483      function k() {
5484        const e = t.zoom;
5485        v.slideEl &&
5486          t.activeIndex !== t.slides.indexOf(v.slideEl) &&
5487          (v.imageEl &&
5488            (v.imageEl.style.transform = "translate3d(0,0,0) scale(1)"),
5489          v.imageWrapEl &&
5490            (v.imageWrapEl.style.transform = "translate3d(0,0,0)"),
5491          v.slideEl.classList.remove(`${t.params.zoom.zoomedSlideClass}`),
5492          (e.scale = 1),
5493          (l = 1),
5494          (v.slideEl = void 0),
5495          (v.imageEl = void 0),
5496          (v.imageWrapEl = void 0),
5497          (v.originX = 0),
5498          (v.originY = 0));
5499      }
5500      function O(e) {
5501        if (l <= 1 || !v.imageWrapEl) return;
5502        if (!C(e) || !P(e)) return;
5503        const t = n.getComputedStyle(v.imageWrapEl).transform,
5504          s = new n.DOMMatrix(t);
5505        if (!c)
5506          return (
5507            (c = !0),
5508            (p.x = e.clientX),
5509            (p.y = e.clientY),
5510            (b.startX = s.e),
5511            (b.startY = s.f),
5512            (b.width = v.imageEl.offsetWidth || v.imageEl.clientWidth),
5513            (b.height = v.imageEl.offsetHeight || v.imageEl.clientHeight),
5514            (v.slideWidth = v.slideEl.offsetWidth),
5515            void (v.slideHeight = v.slideEl.offsetHeight)
5516          );
5517        const a = (e.clientX - p.x) * u,
5518          i = (e.clientY - p.y) * u,
5519          r = b.width * l,
5520          o = b.height * l,
5521          d = v.slideWidth,
5522          m = v.slideHeight,
5523          h = Math.min(d / 2 - r / 2, 0),
5524          f = -h,
5525          g = Math.min(m / 2 - o / 2, 0),
5526          w = -g,
5527          y = Math.max(Math.min(b.startX + a, f), h),
5528          E = Math.max(Math.min(b.startY + i, w), g);
5529        (v.imageWrapEl.style.transitionDuration = "0ms"),
5530          (v.imageWrapEl.style.transform = `translate3d(${y}px, ${E}px, 0)`),
5531          (p.x = e.clientX),
5532          (p.y = e.clientY),
5533          (b.startX = y),
5534          (b.startY = E),
5535          (b.currentX = y),
5536          (b.currentY = E);
5537      }
5538      function D(e) {
5539        const s = t.zoom,
5540          a = t.params.zoom;
5541        if (!v.slideEl) {
5542          e &&
5543            e.target &&
5544            (v.slideEl = e.target.closest(
5545              `.${t.params.slideClass}, swiper-slide`
5546            )),
5547            v.slideEl ||
5548              (t.params.virtual && t.params.virtual.enabled && t.virtual
5549                ? (v.slideEl = f(
5550                    t.slidesEl,
5551                    `.${t.params.slideActiveClass}`
5552                  )[0])
5553                : (v.slideEl = t.slides[t.activeIndex]));
5554          let s = v.slideEl.querySelector(`.${a.containerClass}`);
5555          s &&
5556            (s = s.querySelectorAll(
5557              "picture, img, svg, canvas, .swiper-zoom-target"
5558            )[0]),
5559            (v.imageEl = s),
5560            (v.imageWrapEl = s
5561              ? E(v.imageEl, `.${a.containerClass}`)[0]
5562              : void 0);
5563        }
5564        if (!v.imageEl || !v.imageWrapEl) return;
5565        let i, r, o, d, c, p, u, m, h, g, y, x, S, T, C, P, L, I;
5566        t.params.cssMode &&
5567          ((t.wrapperEl.style.overflow = "hidden"),
5568          (t.wrapperEl.style.touchAction = "none")),
5569          v.slideEl.classList.add(`${a.zoomedSlideClass}`),
5570          void 0 === b.touchesStart.x && e
5571            ? ((i = e.pageX), (r = e.pageY))
5572            : ((i = b.touchesStart.x), (r = b.touchesStart.y));
5573        const z = l,
5574          A = "number" == typeof e ? e : null;
5575        1 === l &&
5576          A &&
5577          ((i = void 0),
5578          (r = void 0),
5579          (b.touchesStart.x = void 0),
5580          (b.touchesStart.y = void 0));
5581        const $ = M();
5582        (s.scale = A || $),
5583          (l = A || $),
5584          !e || (1 === l && A)
5585            ? ((u = 0), (m = 0))
5586            : ((L = v.slideEl.offsetWidth),
5587              (I = v.slideEl.offsetHeight),
5588              (o = w(v.slideEl).left + n.scrollX),
5589              (d = w(v.slideEl).top + n.scrollY),
5590              (c = o + L / 2 - i),
5591              (p = d + I / 2 - r),
5592              (h = v.imageEl.offsetWidth || v.imageEl.clientWidth),
5593              (g = v.imageEl.offsetHeight || v.imageEl.clientHeight),
5594              (y = h * s.scale),
5595              (x = g * s.scale),
5596              (S = Math.min(L / 2 - y / 2, 0)),
5597              (T = Math.min(I / 2 - x / 2, 0)),
5598              (C = -S),
5599              (P = -T),
5600              z > 0 &&
5601              A &&
5602              "number" == typeof b.currentX &&
5603              "number" == typeof b.currentY
5604                ? ((u = (b.currentX * s.scale) / z),
5605                  (m = (b.currentY * s.scale) / z))
5606                : ((u = c * s.scale), (m = p * s.scale)),
5607              u < S && (u = S),
5608              u > C && (u = C),
5609              m < T && (m = T),
5610              m > P && (m = P)),
5611          A && 1 === s.scale && ((v.originX = 0), (v.originY = 0)),
5612          (b.currentX = u),
5613          (b.currentY = m),
5614          (v.imageWrapEl.style.transitionDuration = "300ms"),
5615          (v.imageWrapEl.style.transform = `translate3d(${u}px, ${m}px,0)`),
5616          (v.imageEl.style.transitionDuration = "300ms"),
5617          (v.imageEl.style.transform = `translate3d(0,0,0) scale(${s.scale})`);
5618      }
5619      function G() {
5620        const e = t.zoom,
5621          s = t.params.zoom;
5622        if (!v.slideEl) {
5623          t.params.virtual && t.params.virtual.enabled && t.virtual
5624            ? (v.slideEl = f(t.slidesEl, `.${t.params.slideActiveClass}`)[0])
5625            : (v.slideEl = t.slides[t.activeIndex]);
5626          let e = v.slideEl.querySelector(`.${s.containerClass}`);
5627          e &&
5628            (e = e.querySelectorAll(
5629              "picture, img, svg, canvas, .swiper-zoom-target"
5630            )[0]),
5631            (v.imageEl = e),
5632            (v.imageWrapEl = e
5633              ? E(v.imageEl, `.${s.containerClass}`)[0]
5634              : void 0);
5635        }
5636        v.imageEl &&
5637          v.imageWrapEl &&
5638          (t.params.cssMode &&
5639            ((t.wrapperEl.style.overflow = ""),
5640            (t.wrapperEl.style.touchAction = "")),
5641          (e.scale = 1),
5642          (l = 1),
5643          (b.currentX = void 0),
5644          (b.currentY = void 0),
5645          (b.touchesStart.x = void 0),
5646          (b.touchesStart.y = void 0),
5647          (v.imageWrapEl.style.transitionDuration = "300ms"),
5648          (v.imageWrapEl.style.transform = "translate3d(0,0,0)"),
5649          (v.imageEl.style.transitionDuration = "300ms"),
5650          (v.imageEl.style.transform = "translate3d(0,0,0) scale(1)"),
5651          v.slideEl.classList.remove(`${s.zoomedSlideClass}`),
5652          (v.slideEl = void 0),
5653          (v.originX = 0),
5654          (v.originY = 0),
5655          t.params.zoom.panOnMouseMove &&
5656            ((p = { x: 0, y: 0 }),
5657            c && ((c = !1), (b.startX = 0), (b.startY = 0))));
5658      }
5659      function X(e) {
5660        const s = t.zoom;
5661        s.scale && 1 !== s.scale ? G() : D(e);
5662      }
5663      function H() {
5664        return {
5665          passiveListener: !!t.params.passiveListeners && {
5666            passive: !0,
5667            capture: !1,
5668          },
5669          activeListenerWithCapture: !t.params.passiveListeners || {
5670            passive: !1,
5671            capture: !0,
5672          },
5673        };
5674      }
5675      function Y() {
5676        const e = t.zoom;
5677        if (e.enabled) return;
5678        e.enabled = !0;
5679        const { passiveListener: s, activeListenerWithCapture: a } = H();
5680        t.wrapperEl.addEventListener("pointerdown", L, s),
5681          t.wrapperEl.addEventListener("pointermove", I, a),
5682          ["pointerup", "pointercancel", "pointerout"].forEach((e) => {
5683            t.wrapperEl.addEventListener(e, z, s);
5684          }),
5685          t.wrapperEl.addEventListener("pointermove", $, a);
5686      }
5687      function B() {
5688        const e = t.zoom;
5689        if (!e.enabled) return;
5690        e.enabled = !1;
5691        const { passiveListener: s, activeListenerWithCapture: a } = H();
5692        t.wrapperEl.removeEventListener("pointerdown", L, s),
5693          t.wrapperEl.removeEventListener("pointermove", I, a),
5694          ["pointerup", "pointercancel", "pointerout"].forEach((e) => {
5695            t.wrapperEl.removeEventListener(e, z, s);
5696          }),
5697          t.wrapperEl.removeEventListener("pointermove", $, a);
5698      }
5699      Object.defineProperty(t.zoom, "scale", {
5700        get: () => S,
5701        set(e) {
5702          if (S !== e) {
5703            const t = v.imageEl,
5704              s = v.slideEl;
5705            i("zoomChange", e, t, s);
5706          }
5707          S = e;
5708        },
5709      }),
5710        a("init", () => {
5711          t.params.zoom.enabled && Y();
5712        }),
5713        a("destroy", () => {
5714          B();
5715        }),
5716        a("touchStart", (e, s) => {
5717          t.zoom.enabled &&
5718            (function (e) {
5719              const s = t.device;
5720              if (!v.imageEl) return;
5721              if (b.isTouched) return;
5722              s.android && e.cancelable && e.preventDefault(),
5723                (b.isTouched = !0);
5724              const a = g.length > 0 ? g[0] : e;
5725              (b.touchesStart.x = a.pageX), (b.touchesStart.y = a.pageY);
5726            })(s);
5727        }),
5728        a("touchEnd", (e, s) => {
5729          t.zoom.enabled &&
5730            (function () {
5731              const e = t.zoom;
5732              if (((g.length = 0), !v.imageEl)) return;
5733              if (!b.isTouched || !b.isMoved)
5734                return (b.isTouched = !1), void (b.isMoved = !1);
5735              (b.isTouched = !1), (b.isMoved = !1);
5736              let s = 300,
5737                a = 300;
5738              const i = y.x * s,
5739                r = b.currentX + i,
5740                n = y.y * a,
5741                l = b.currentY + n;
5742              0 !== y.x && (s = Math.abs((r - b.currentX) / y.x)),
5743                0 !== y.y && (a = Math.abs((l - b.currentY) / y.y));
5744              const o = Math.max(s, a);
5745              (b.currentX = r), (b.currentY = l);
5746              const d = b.width * e.scale,
5747                c = b.height * e.scale;
5748              (b.minX = Math.min(v.slideWidth / 2 - d / 2, 0)),
5749                (b.maxX = -b.minX),
5750                (b.minY = Math.min(v.slideHeight / 2 - c / 2, 0)),
5751                (b.maxY = -b.minY),
5752                (b.currentX = Math.max(Math.min(b.currentX, b.maxX), b.minX)),
5753                (b.currentY = Math.max(Math.min(b.currentY, b.maxY), b.minY)),
5754                (v.imageWrapEl.style.transitionDuration = `${o}ms`),
5755                (v.imageWrapEl.style.transform = `translate3d(${b.currentX}px, ${b.currentY}px,0)`);
5756            })();
5757        }),
5758        a("doubleTap", (e, s) => {
5759          !t.animating &&
5760            t.params.zoom.enabled &&
5761            t.zoom.enabled &&
5762            t.params.zoom.toggle &&
5763            X(s);
5764        }),
5765        a("transitionEnd", () => {
5766          t.zoom.enabled && t.params.zoom.enabled && k();
5767        }),
5768        a("slideChange", () => {
5769          t.zoom.enabled && t.params.zoom.enabled && t.params.cssMode && k();
5770        }),
5771        Object.assign(t.zoom, {
5772          enable: Y,
5773          disable: B,
5774          in: D,
5775          out: G,
5776          toggle: X,
5777        });
5778    },
5779    function (e) {
5780      let { swiper: t, extendParams: s, on: a } = e;
5781      function i(e, t) {
5782        const s = (function () {
5783          let e, t, s;
5784          return (a, i) => {
5785            for (t = -1, e = a.length; e - t > 1; )
5786              (s = (e + t) >> 1), a[s] <= i ? (t = s) : (e = s);
5787            return e;
5788          };
5789        })();
5790        let a, i;
5791        return (
5792          (this.x = e),
5793          (this.y = t),
5794          (this.lastIndex = e.length - 1),
5795          (this.interpolate = function (e) {
5796            return e
5797              ? ((i = s(this.x, e)),
5798                (a = i - 1),
5799                ((e - this.x[a]) * (this.y[i] - this.y[a])) /
5800                  (this.x[i] - this.x[a]) +
5801                  this.y[a])
5802              : 0;
5803          }),
5804          this
5805        );
5806      }
5807      function r() {
5808        t.controller.control &&
5809          t.controller.spline &&
5810          ((t.controller.spline = void 0), delete t.controller.spline);
5811      }
5812      s({ controller: { control: void 0, inverse: !1, by: "slide" } }),
5813        (t.controller = { control: void 0 }),
5814        a("beforeInit", () => {
5815          if (
5816            "undefined" != typeof window &&
5817            ("string" == typeof t.params.controller.control ||
5818              t.params.controller.control instanceof HTMLElement)
5819          ) {
5820            ("string" == typeof t.params.controller.control
5821              ? [...document.querySelectorAll(t.params.controller.control)]
5822              : [t.params.controller.control]
5823            ).forEach((e) => {
5824              if (
5825                (t.controller.control || (t.controller.control = []),
5826                e && e.swiper)
5827              )
5828                t.controller.control.push(e.swiper);
5829              else if (e) {
5830                const s = `${t.params.eventsPrefix}init`,
5831                  a = (i) => {
5832                    t.controller.control.push(i.detail[0]),
5833                      t.update(),
5834                      e.removeEventListener(s, a);
5835                  };
5836                e.addEventListener(s, a);
5837              }
5838            });
5839          } else t.controller.control = t.params.controller.control;
5840        }),
5841        a("update", () => {
5842          r();
5843        }),
5844        a("resize", () => {
5845          r();
5846        }),
5847        a("observerUpdate", () => {
5848          r();
5849        }),
5850        a("setTranslate", (e, s, a) => {
5851          t.controller.control &&
5852            !t.controller.control.destroyed &&
5853            t.controller.setTranslate(s, a);
5854        }),
5855        a("setTransition", (e, s, a) => {
5856          t.controller.control &&
5857            !t.controller.control.destroyed &&
5858            t.controller.setTransition(s, a);
5859        }),
5860        Object.assign(t.controller, {
5861          setTranslate: function (e, s) {
5862            const a = t.controller.control;
5863            let r, n;
5864            const l = t.constructor;
5865            function o(e) {
5866              if (e.destroyed) return;
5867              const s = t.rtlTranslate ? -t.translate : t.translate;
5868              "slide" === t.params.controller.by &&
5869                (!(function (e) {
5870                  t.controller.spline = t.params.loop
5871                    ? new i(t.slidesGrid, e.slidesGrid)
5872                    : new i(t.snapGrid, e.snapGrid);
5873                })(e),
5874                (n = -t.controller.spline.interpolate(-s))),
5875                (n && "container" !== t.params.controller.by) ||
5876                  ((r =
5877                    (e.maxTranslate() - e.minTranslate()) /
5878                    (t.maxTranslate() - t.minTranslate())),
5879                  (!Number.isNaN(r) && Number.isFinite(r)) || (r = 1),
5880                  (n = (s - t.minTranslate()) * r + e.minTranslate())),
5881                t.params.controller.inverse && (n = e.maxTranslate() - n),
5882                e.updateProgress(n),
5883                e.setTranslate(n, t),
5884                e.updateActiveIndex(),
5885                e.updateSlidesClasses();
5886            }
5887            if (Array.isArray(a))
5888              for (let e = 0; e < a.length; e += 1)
5889                a[e] !== s && a[e] instanceof l && o(a[e]);
5890            else a instanceof l && s !== a && o(a);
5891          },
5892          setTransition: function (e, s) {
5893            const a = t.constructor,
5894              i = t.controller.control;
5895            let r;
5896            function n(s) {
5897              s.destroyed ||
5898                (s.setTransition(e, t),
5899                0 !== e &&
5900                  (s.transitionStart(),
5901                  s.params.autoHeight &&
5902                    l(() => {
5903                      s.updateAutoHeight();
5904                    }),
5905                  x(s.wrapperEl, () => {
5906                    i && s.transitionEnd();
5907                  })));
5908            }
5909            if (Array.isArray(i))
5910              for (r = 0; r < i.length; r += 1)
5911                i[r] !== s && i[r] instanceof a && n(i[r]);
5912            else i instanceof a && s !== i && n(i);
5913          },
5914        });
5915    },
5916    function (e) {
5917      let { swiper: t, extendParams: s, on: i } = e;
5918      s({
5919        a11y: {
5920          enabled: !0,
5921          notificationClass: "swiper-notification",
5922          prevSlideMessage: "Previous slide",
5923          nextSlideMessage: "Next slide",
5924          firstSlideMessage: "This is the first slide",
5925          lastSlideMessage: "This is the last slide",
5926          paginationBulletMessage: "Go to slide {{index}}",
5927          slideLabelMessage: "{{index}} / {{slidesLength}}",
5928          containerMessage: null,
5929          containerRoleDescriptionMessage: null,
5930          containerRole: null,
5931          itemRoleDescriptionMessage: null,
5932          slideRole: "group",
5933          id: null,
5934          scrollOnFocus: !0,
5935        },
5936      }),
5937        (t.a11y = { clicked: !1 });
5938      let r,
5939        n,
5940        l = null,
5941        o = new Date().getTime();
5942      function d(e) {
5943        const t = l;
5944        0 !== t.length && ((t.innerHTML = ""), (t.innerHTML = e));
5945      }
5946      function c(e) {
5947        (e = T(e)).forEach((e) => {
5948          e.setAttribute("tabIndex", "0");
5949        });
5950      }
5951      function p(e) {
5952        (e = T(e)).forEach((e) => {
5953          e.setAttribute("tabIndex", "-1");
5954        });
5955      }
5956      function u(e, t) {
5957        (e = T(e)).forEach((e) => {
5958          e.setAttribute("role", t);
5959        });
5960      }
5961      function m(e, t) {
5962        (e = T(e)).forEach((e) => {
5963          e.setAttribute("aria-roledescription", t);
5964        });
5965      }
5966      function h(e, t) {
5967        (e = T(e)).forEach((e) => {
5968          e.setAttribute("aria-label", t);
5969        });
5970      }
5971      function f(e) {
5972        (e = T(e)).forEach((e) => {
5973          e.setAttribute("aria-disabled", !0);
5974        });
5975      }
5976      function g(e) {
5977        (e = T(e)).forEach((e) => {
5978          e.setAttribute("aria-disabled", !1);
5979        });
5980      }
5981      function w(e) {
5982        if (13 !== e.keyCode && 32 !== e.keyCode) return;
5983        const s = t.params.a11y,
5984          a = e.target;
5985        if (
5986          !t.pagination ||
5987          !t.pagination.el ||
5988          (a !== t.pagination.el && !t.pagination.el.contains(e.target)) ||
5989          e.target.matches(ne(t.params.pagination.bulletClass))
5990        ) {
5991          if (t.navigation && t.navigation.prevEl && t.navigation.nextEl) {
5992            const e = T(t.navigation.prevEl);
5993            T(t.navigation.nextEl).includes(a) &&
5994              ((t.isEnd && !t.params.loop) || t.slideNext(),
5995              t.isEnd ? d(s.lastSlideMessage) : d(s.nextSlideMessage)),
5996              e.includes(a) &&
5997                ((t.isBeginning && !t.params.loop) || t.slidePrev(),
5998                t.isBeginning ? d(s.firstSlideMessage) : d(s.prevSlideMessage));
5999          }
6000          t.pagination &&
6001            a.matches(ne(t.params.pagination.bulletClass)) &&
6002            a.click();
6003        }
6004      }
6005      function b() {
6006        return (
6007          t.pagination && t.pagination.bullets && t.pagination.bullets.length
6008        );
6009      }
6010      function E() {
6011        return b() && t.params.pagination.clickable;
6012      }
6013      const x = (e, t, s) => {
6014          c(e),
6015            "BUTTON" !== e.tagName &&
6016              (u(e, "button"), e.addEventListener("keydown", w)),
6017            h(e, s),
6018            (function (e, t) {
6019              (e = T(e)).forEach((e) => {
6020                e.setAttribute("aria-controls", t);
6021              });
6022            })(e, t);
6023        },
6024        S = (e) => {
6025          n && n !== e.target && !n.contains(e.target) && (r = !0),
6026            (t.a11y.clicked = !0);
6027        },
6028        M = () => {
6029          (r = !1),
6030            requestAnimationFrame(() => {
6031              requestAnimationFrame(() => {
6032                t.destroyed || (t.a11y.clicked = !1);
6033              });
6034            });
6035        },
6036        C = (e) => {
6037          o = new Date().getTime();
6038        },
6039        P = (e) => {
6040          if (t.a11y.clicked || !t.params.a11y.scrollOnFocus) return;
6041          if (new Date().getTime() - o < 100) return;
6042          const s = e.target.closest(`.${t.params.slideClass}, swiper-slide`);
6043          if (!s || !t.slides.includes(s)) return;
6044          n = s;
6045          const a = t.slides.indexOf(s) === t.activeIndex,
6046            i =
6047              t.params.watchSlidesProgress &&
6048              t.visibleSlides &&
6049              t.visibleSlides.includes(s);
6050          a ||
6051            i ||
6052            (e.sourceCapabilities && e.sourceCapabilities.firesTouchEvents) ||
6053            (t.isHorizontal() ? (t.el.scrollLeft = 0) : (t.el.scrollTop = 0),
6054            requestAnimationFrame(() => {
6055              r ||
6056                (t.params.loop
6057                  ? t.slideToLoop(
6058                      parseInt(s.getAttribute("data-swiper-slide-index")),
6059                      0
6060                    )
6061                  : t.slideTo(t.slides.indexOf(s), 0),
6062                (r = !1));
6063            }));
6064        },
6065        L = () => {
6066          const e = t.params.a11y;
6067          e.itemRoleDescriptionMessage &&
6068            m(t.slides, e.itemRoleDescriptionMessage),
6069            e.slideRole && u(t.slides, e.slideRole);
6070          const s = t.slides.length;
6071          e.slideLabelMessage &&
6072            t.slides.forEach((a, i) => {
6073              const r = t.params.loop
6074                ? parseInt(a.getAttribute("data-swiper-slide-index"), 10)
6075                : i;
6076              h(
6077                a,
6078                e.slideLabelMessage
6079                  .replace(/\{\{index\}\}/, r + 1)
6080                  .replace(/\{\{slidesLength\}\}/, s)
6081              );
6082            });
6083        },
6084        I = () => {
6085          const e = t.params.a11y;
6086          t.el.append(l);
6087          const s = t.el;
6088          e.containerRoleDescriptionMessage &&
6089            m(s, e.containerRoleDescriptionMessage),
6090            e.containerMessage && h(s, e.containerMessage),
6091            e.containerRole && u(s, e.containerRole);
6092          const i = t.wrapperEl,
6093            r =
6094              e.id ||
6095              i.getAttribute("id") ||
6096              `swiper-wrapper-${
6097                ((n = 16),
6098                void 0 === n && (n = 16),
6099                "x"
6100                  .repeat(n)
6101                  .replace(/x/g, () =>
6102                    Math.round(16 * Math.random()).toString(16)
6103                  ))
6104              }`;
6105          var n;
6106          const o =
6107            t.params.autoplay && t.params.autoplay.enabled ? "off" : "polite";
6108          var d;
6109          (d = r),
6110            T(i).forEach((e) => {
6111              e.setAttribute("id", d);
6112            }),
6113            (function (e, t) {
6114              (e = T(e)).forEach((e) => {
6115                e.setAttribute("aria-live", t);
6116              });
6117            })(i, o),
6118            L();
6119          let { nextEl: c, prevEl: p } = t.navigation ? t.navigation : {};
6120          if (
6121            ((c = T(c)),
6122            (p = T(p)),
6123            c && c.forEach((t) => x(t, r, e.nextSlideMessage)),
6124            p && p.forEach((t) => x(t, r, e.prevSlideMessage)),
6125            E())
6126          ) {
6127            T(t.pagination.el).forEach((e) => {
6128              e.addEventListener("keydown", w);
6129            });
6130          }
6131          a().addEventListener("visibilitychange", C),
6132            t.el.addEventListener("focus", P, !0),
6133            t.el.addEventListener("focus", P, !0),
6134            t.el.addEventListener("pointerdown", S, !0),
6135            t.el.addEventListener("pointerup", M, !0);
6136        };
6137      i("beforeInit", () => {
6138        (l = v("span", t.params.a11y.notificationClass)),
6139          l.setAttribute("aria-live", "assertive"),
6140          l.setAttribute("aria-atomic", "true");
6141      }),
6142        i("afterInit", () => {
6143          t.params.a11y.enabled && I();
6144        }),
6145        i(
6146          "slidesLengthChange snapGridLengthChange slidesGridLengthChange",
6147          () => {
6148            t.params.a11y.enabled && L();
6149          }
6150        ),
6151        i("fromEdge toEdge afterInit lock unlock", () => {
6152          t.params.a11y.enabled &&
6153            (function () {
6154              if (t.params.loop || t.params.rewind || !t.navigation) return;
6155              const { nextEl: e, prevEl: s } = t.navigation;
6156              s && (t.isBeginning ? (f(s), p(s)) : (g(s), c(s))),
6157                e && (t.isEnd ? (f(e), p(e)) : (g(e), c(e)));
6158            })();
6159        }),
6160        i("paginationUpdate", () => {
6161          t.params.a11y.enabled &&
6162            (function () {
6163              const e = t.params.a11y;
6164              b() &&
6165                t.pagination.bullets.forEach((s) => {
6166                  t.params.pagination.clickable &&
6167                    (c(s),
6168                    t.params.pagination.renderBullet ||
6169                      (u(s, "button"),
6170                      h(
6171                        s,
6172                        e.paginationBulletMessage.replace(
6173                          /\{\{index\}\}/,
6174                          y(s) + 1
6175                        )
6176                      ))),
6177                    s.matches(ne(t.params.pagination.bulletActiveClass))
6178                      ? s.setAttribute("aria-current", "true")
6179                      : s.removeAttribute("aria-current");
6180                });
6181            })();
6182        }),
6183        i("destroy", () => {
6184          t.params.a11y.enabled &&
6185            (function () {
6186              l && l.remove();
6187              let { nextEl: e, prevEl: s } = t.navigation ? t.navigation : {};
6188              (e = T(e)),
6189                (s = T(s)),
6190                e && e.forEach((e) => e.removeEventListener("keydown", w)),
6191                s && s.forEach((e) => e.removeEventListener("keydown", w)),
6192                E() &&
6193                  T(t.pagination.el).forEach((e) => {
6194                    e.removeEventListener("keydown", w);
6195                  });
6196              a().removeEventListener("visibilitychange", C),
6197                t.el &&
6198                  "string" != typeof t.el &&
6199                  (t.el.removeEventListener("focus", P, !0),
6200                  t.el.removeEventListener("pointerdown", S, !0),
6201                  t.el.removeEventListener("pointerup", M, !0));
6202            })();
6203        });
6204    },
6205    function (e) {
6206      let { swiper: t, extendParams: s, on: a } = e;
6207      s({
6208        history: {
6209          enabled: !1,
6210          root: "",
6211          replaceState: !1,
6212          key: "slides",
6213          keepQuery: !1,
6214        },
6215      });
6216      let i = !1,
6217        n = {};
6218      const l = (e) =>
6219          e
6220            .toString()
6221            .replace(/\s+/g, "-")
6222            .replace(/[^\w-]+/g, "")
6223            .replace(/--+/g, "-")
6224            .replace(/^-+/, "")
6225            .replace(/-+$/, ""),
6226        o = (e) => {
6227          const t = r();
6228          let s;
6229          s = e ? new URL(e) : t.location;
6230          const a = s.pathname
6231              .slice(1)
6232              .split("/")
6233              .filter((e) => "" !== e),
6234            i = a.length;
6235          return { key: a[i - 2], value: a[i - 1] };
6236        },
6237        d = (e, s) => {
6238          const a = r();
6239          if (!i || !t.params.history.enabled) return;
6240          let n;
6241          n = t.params.url ? new URL(t.params.url) : a.location;
6242          const o =
6243            t.virtual && t.params.virtual.enabled
6244              ? t.slidesEl.querySelector(`[data-swiper-slide-index="${s}"]`)
6245              : t.slides[s];
6246          let d = l(o.getAttribute("data-history"));
6247          if (t.params.history.root.length > 0) {
6248            let s = t.params.history.root;
6249            "/" === s[s.length - 1] && (s = s.slice(0, s.length - 1)),
6250              (d = `${s}/${e ? `${e}/` : ""}${d}`);
6251          } else n.pathname.includes(e) || (d = `${e ? `${e}/` : ""}${d}`);
6252          t.params.history.keepQuery && (d += n.search);
6253          const c = a.history.state;
6254          (c && c.value === d) ||
6255            (t.params.history.replaceState
6256              ? a.history.replaceState({ value: d }, null, d)
6257              : a.history.pushState({ value: d }, null, d));
6258        },
6259        c = (e, s, a) => {
6260          if (s)
6261            for (let i = 0, r = t.slides.length; i < r; i += 1) {
6262              const r = t.slides[i];
6263              if (l(r.getAttribute("data-history")) === s) {
6264                const s = t.getSlideIndex(r);
6265                t.slideTo(s, e, a);
6266              }
6267            }
6268          else t.slideTo(0, e, a);
6269        },
6270        p = () => {
6271          (n = o(t.params.url)), c(t.params.speed, n.value, !1);
6272        };
6273      a("init", () => {
6274        t.params.history.enabled &&
6275          (() => {
6276            const e = r();
6277            if (t.params.history) {
6278              if (!e.history || !e.history.pushState)
6279                return (
6280                  (t.params.history.enabled = !1),
6281                  void (t.params.hashNavigation.enabled = !0)
6282                );
6283              (i = !0),
6284                (n = o(t.params.url)),
6285                n.key || n.value
6286                  ? (c(0, n.value, t.params.runCallbacksOnInit),
6287                    t.params.history.replaceState ||
6288                      e.addEventListener("popstate", p))
6289                  : t.params.history.replaceState ||
6290                    e.addEventListener("popstate", p);
6291            }
6292          })();
6293      }),
6294        a("destroy", () => {
6295          t.params.history.enabled &&
6296            (() => {
6297              const e = r();
6298              t.params.history.replaceState ||
6299                e.removeEventListener("popstate", p);
6300            })();
6301        }),
6302        a("transitionEnd _freeModeNoMomentumRelease", () => {
6303          i && d(t.params.history.key, t.activeIndex);
6304        }),
6305        a("slideChange", () => {
6306          i && t.params.cssMode && d(t.params.history.key, t.activeIndex);
6307        });
6308    },
6309    function (e) {
6310      let { swiper: t, extendParams: s, emit: i, on: n } = e,
6311        l = !1;
6312      const o = a(),
6313        d = r();
6314      s({
6315        hashNavigation: {
6316          enabled: !1,
6317          replaceState: !1,
6318          watchState: !1,
6319          getSlideIndex(e, s) {
6320            if (t.virtual && t.params.virtual.enabled) {
6321              const e = t.slides.find((e) => e.getAttribute("data-hash") === s);
6322              if (!e) return 0;
6323              return parseInt(e.getAttribute("data-swiper-slide-index"), 10);
6324            }
6325            return t.getSlideIndex(
6326              f(
6327                t.slidesEl,
6328                `.${t.params.slideClass}[data-hash="${s}"], swiper-slide[data-hash="${s}"]`
6329              )[0]
6330            );
6331          },
6332        },
6333      });
6334      const c = () => {
6335          i("hashChange");
6336          const e = o.location.hash.replace("#", ""),
6337            s =
6338              t.virtual && t.params.virtual.enabled
6339                ? t.slidesEl.querySelector(
6340                    `[data-swiper-slide-index="${t.activeIndex}"]`
6341                  )
6342                : t.slides[t.activeIndex];
6343          if (e !== (s ? s.getAttribute("data-hash") : "")) {
6344            const s = t.params.hashNavigation.getSlideIndex(t, e);
6345            if (void 0 === s || Number.isNaN(s)) return;
6346            t.slideTo(s);
6347          }
6348        },
6349        p = () => {
6350          if (!l || !t.params.hashNavigation.enabled) return;
6351          const e =
6352              t.virtual && t.params.virtual.enabled
6353                ? t.slidesEl.querySelector(
6354                    `[data-swiper-slide-index="${t.activeIndex}"]`
6355                  )
6356                : t.slides[t.activeIndex],
6357            s = e
6358              ? e.getAttribute("data-hash") || e.getAttribute("data-history")
6359              : "";
6360          t.params.hashNavigation.replaceState &&
6361          d.history &&
6362          d.history.replaceState
6363            ? (d.history.replaceState(null, null, `#${s}` || ""), i("hashSet"))
6364            : ((o.location.hash = s || ""), i("hashSet"));
6365        };
6366      n("init", () => {
6367        t.params.hashNavigation.enabled &&
6368          (() => {
6369            if (
6370              !t.params.hashNavigation.enabled ||
6371              (t.params.history && t.params.history.enabled)
6372            )
6373              return;
6374            l = !0;
6375            const e = o.location.hash.replace("#", "");
6376            if (e) {
6377              const s = 0,
6378                a = t.params.hashNavigation.getSlideIndex(t, e);
6379              t.slideTo(a || 0, s, t.params.runCallbacksOnInit, !0);
6380            }
6381            t.params.hashNavigation.watchState &&
6382              d.addEventListener("hashchange", c);
6383          })();
6384      }),
6385        n("destroy", () => {
6386          t.params.hashNavigation.enabled &&
6387            t.params.hashNavigation.watchState &&
6388            d.removeEventListener("hashchange", c);
6389        }),
6390        n("transitionEnd _freeModeNoMomentumRelease", () => {
6391          l && p();
6392        }),
6393        n("slideChange", () => {
6394          l && t.params.cssMode && p();
6395        });
6396    },
6397    function (e) {
6398      let t,
6399        s,
6400        { swiper: i, extendParams: r, on: n, emit: l, params: o } = e;
6401      (i.autoplay = { running: !1, paused: !1, timeLeft: 0 }),
6402        r({
6403          autoplay: {
6404            enabled: !1,
6405            delay: 3e3,
6406            waitForTransition: !0,
6407            disableOnInteraction: !1,
6408            stopOnLastSlide: !1,
6409            reverseDirection: !1,
6410            pauseOnMouseEnter: !1,
6411          },
6412        });
6413      let d,
6414        c,
6415        p,
6416        u,
6417        m,
6418        h,
6419        f,
6420        g,
6421        v = o && o.autoplay ? o.autoplay.delay : 3e3,
6422        w = o && o.autoplay ? o.autoplay.delay : 3e3,
6423        b = new Date().getTime();
6424      function y(e) {
6425        i &&
6426          !i.destroyed &&
6427          i.wrapperEl &&
6428          e.target === i.wrapperEl &&
6429          (i.wrapperEl.removeEventListener("transitionend", y),
6430          g || (e.detail && e.detail.bySwiperTouchMove) || C());
6431      }
6432      const E = () => {
6433          if (i.destroyed || !i.autoplay.running) return;
6434          i.autoplay.paused ? (c = !0) : c && ((w = d), (c = !1));
6435          const e = i.autoplay.paused ? d : b + w - new Date().getTime();
6436          (i.autoplay.timeLeft = e),
6437            l("autoplayTimeLeft", e, e / v),
6438            (s = requestAnimationFrame(() => {
6439              E();
6440            }));
6441        },
6442        x = (e) => {
6443          if (i.destroyed || !i.autoplay.running) return;
6444          cancelAnimationFrame(s), E();
6445          let a = void 0 === e ? i.params.autoplay.delay : e;
6446          (v = i.params.autoplay.delay), (w = i.params.autoplay.delay);
6447          const r = (() => {
6448            let e;
6449            if (
6450              ((e =
6451                i.virtual && i.params.virtual.enabled
6452                  ? i.slides.find((e) =>
6453                      e.classList.contains("swiper-slide-active")
6454                    )
6455                  : i.slides[i.activeIndex]),
6456              !e)
6457            )
6458              return;
6459            return parseInt(e.getAttribute("data-swiper-autoplay"), 10);
6460          })();
6461          !Number.isNaN(r) &&
6462            r > 0 &&
6463            void 0 === e &&
6464            ((a = r), (v = r), (w = r)),
6465            (d = a);
6466          const n = i.params.speed,
6467            o = () => {
6468              i &&
6469                !i.destroyed &&
6470                (i.params.autoplay.reverseDirection
6471                  ? !i.isBeginning || i.params.loop || i.params.rewind
6472                    ? (i.slidePrev(n, !0, !0), l("autoplay"))
6473                    : i.params.autoplay.stopOnLastSlide ||
6474                      (i.slideTo(i.slides.length - 1, n, !0, !0), l("autoplay"))
6475                  : !i.isEnd || i.params.loop || i.params.rewind
6476                  ? (i.slideNext(n, !0, !0), l("autoplay"))
6477                  : i.params.autoplay.stopOnLastSlide ||
6478                    (i.slideTo(0, n, !0, !0), l("autoplay")),
6479                i.params.cssMode &&
6480                  ((b = new Date().getTime()),
6481                  requestAnimationFrame(() => {
6482                    x();
6483                  })));
6484            };
6485          return (
6486            a > 0
6487              ? (clearTimeout(t),
6488                (t = setTimeout(() => {
6489                  o();
6490                }, a)))
6491              : requestAnimationFrame(() => {
6492                  o();
6493                }),
6494            a
6495          );
6496        },
6497        S = () => {
6498          (b = new Date().getTime()),
6499            (i.autoplay.running = !0),
6500            x(),
6501            l("autoplayStart");
6502        },
6503        T = () => {
6504          (i.autoplay.running = !1),
6505            clearTimeout(t),
6506            cancelAnimationFrame(s),
6507            l("autoplayStop");
6508        },
6509        M = (e, s) => {
6510          if (i.destroyed || !i.autoplay.running) return;
6511          clearTimeout(t), e || (f = !0);
6512          const a = () => {
6513            l("autoplayPause"),
6514              i.params.autoplay.waitForTransition
6515                ? i.wrapperEl.addEventListener("transitionend", y)
6516                : C();
6517          };
6518          if (((i.autoplay.paused = !0), s))
6519            return h && (d = i.params.autoplay.delay), (h = !1), void a();
6520          const r = d || i.params.autoplay.delay;
6521          (d = r - (new Date().getTime() - b)),
6522            (i.isEnd && d < 0 && !i.params.loop) || (d < 0 && (d = 0), a());
6523        },
6524        C = () => {
6525          (i.isEnd && d < 0 && !i.params.loop) ||
6526            i.destroyed ||
6527            !i.autoplay.running ||
6528            ((b = new Date().getTime()),
6529            f ? ((f = !1), x(d)) : x(),
6530            (i.autoplay.paused = !1),
6531            l("autoplayResume"));
6532        },
6533        P = () => {
6534          if (i.destroyed || !i.autoplay.running) return;
6535          const e = a();
6536          "hidden" === e.visibilityState && ((f = !0), M(!0)),
6537            "visible" === e.visibilityState && C();
6538        },
6539        L = (e) => {
6540          "mouse" === e.pointerType &&
6541            ((f = !0), (g = !0), i.animating || i.autoplay.paused || M(!0));
6542        },
6543        I = (e) => {
6544          "mouse" === e.pointerType && ((g = !1), i.autoplay.paused && C());
6545        };
6546      n("init", () => {
6547        i.params.autoplay.enabled &&
6548          (i.params.autoplay.pauseOnMouseEnter &&
6549            (i.el.addEventListener("pointerenter", L),
6550            i.el.addEventListener("pointerleave", I)),
6551          a().addEventListener("visibilitychange", P),
6552          S());
6553      }),
6554        n("destroy", () => {
6555          i.el &&
6556            "string" != typeof i.el &&
6557            (i.el.removeEventListener("pointerenter", L),
6558            i.el.removeEventListener("pointerleave", I)),
6559            a().removeEventListener("visibilitychange", P),
6560            i.autoplay.running && T();
6561        }),
6562        n("_freeModeStaticRelease", () => {
6563          (u || f) && C();
6564        }),
6565        n("_freeModeNoMomentumRelease", () => {
6566          i.params.autoplay.disableOnInteraction ? T() : M(!0, !0);
6567        }),
6568        n("beforeTransitionStart", (e, t, s) => {
6569          !i.destroyed &&
6570            i.autoplay.running &&
6571            (s || !i.params.autoplay.disableOnInteraction ? M(!0, !0) : T());
6572        }),
6573        n("sliderFirstMove", () => {
6574          !i.destroyed &&
6575            i.autoplay.running &&
6576            (i.params.autoplay.disableOnInteraction
6577              ? T()
6578              : ((p = !0),
6579                (u = !1),
6580                (f = !1),
6581                (m = setTimeout(() => {
6582                  (f = !0), (u = !0), M(!0);
6583                }, 200))));
6584        }),
6585        n("touchEnd", () => {
6586          if (!i.destroyed && i.autoplay.running && p) {
6587            if (
6588              (clearTimeout(m),
6589              clearTimeout(t),
6590              i.params.autoplay.disableOnInteraction)
6591            )
6592              return (u = !1), void (p = !1);
6593            u && i.params.cssMode && C(), (u = !1), (p = !1);
6594          }
6595        }),
6596        n("slideChange", () => {
6597          !i.destroyed && i.autoplay.running && (h = !0);
6598        }),
6599        Object.assign(i.autoplay, { start: S, stop: T, pause: M, resume: C });
6600    },
6601    function (e) {
6602      let { swiper: t, extendParams: s, on: i } = e;
6603      s({
6604        thumbs: {
6605          swiper: null,
6606          multipleActiveThumbs: !0,
6607          autoScrollOffset: 0,
6608          slideThumbActiveClass: "swiper-slide-thumb-active",
6609          thumbsContainerClass: "swiper-thumbs",
6610        },
6611      });
6612      let r = !1,
6613        n = !1;
6614      function l() {
6615        const e = t.thumbs.swiper;
6616        if (!e || e.destroyed) return;
6617        const s = e.clickedIndex,
6618          a = e.clickedSlide;
6619        if (a && a.classList.contains(t.params.thumbs.slideThumbActiveClass))
6620          return;
6621        if (null == s) return;
6622        let i;
6623        (i = e.params.loop
6624          ? parseInt(e.clickedSlide.getAttribute("data-swiper-slide-index"), 10)
6625          : s),
6626          t.params.loop ? t.slideToLoop(i) : t.slideTo(i);
6627      }
6628      function o() {
6629        const { thumbs: e } = t.params;
6630        if (r) return !1;
6631        r = !0;
6632        const s = t.constructor;
6633        if (e.swiper instanceof s) {
6634          if (e.swiper.destroyed) return (r = !1), !1;
6635          (t.thumbs.swiper = e.swiper),
6636            Object.assign(t.thumbs.swiper.originalParams, {
6637              watchSlidesProgress: !0,
6638              slideToClickedSlide: !1,
6639            }),
6640            Object.assign(t.thumbs.swiper.params, {
6641              watchSlidesProgress: !0,
6642              slideToClickedSlide: !1,
6643            }),
6644            t.thumbs.swiper.update();
6645        } else if (c(e.swiper)) {
6646          const a = Object.assign({}, e.swiper);
6647          Object.assign(a, {
6648            watchSlidesProgress: !0,
6649            slideToClickedSlide: !1,
6650          }),
6651            (t.thumbs.swiper = new s(a)),
6652            (n = !0);
6653        }
6654        return (
6655          t.thumbs.swiper.el.classList.add(
6656            t.params.thumbs.thumbsContainerClass
6657          ),
6658          t.thumbs.swiper.on("tap", l),
6659          !0
6660        );
6661      }
6662      function d(e) {
6663        const s = t.thumbs.swiper;
6664        if (!s || s.destroyed) return;
6665        const a =
6666          "auto" === s.params.slidesPerView
6667            ? s.slidesPerViewDynamic()
6668            : s.params.slidesPerView;
6669        let i = 1;
6670        const r = t.params.thumbs.slideThumbActiveClass;
6671        if (
6672          (t.params.slidesPerView > 1 &&
6673            !t.params.centeredSlides &&
6674            (i = t.params.slidesPerView),
6675          t.params.thumbs.multipleActiveThumbs || (i = 1),
6676          (i = Math.floor(i)),
6677          s.slides.forEach((e) => e.classList.remove(r)),
6678          s.params.loop || (s.params.virtual && s.params.virtual.enabled))
6679        )
6680          for (let e = 0; e < i; e += 1)
6681            f(
6682              s.slidesEl,
6683              `[data-swiper-slide-index="${t.realIndex + e}"]`
6684            ).forEach((e) => {
6685              e.classList.add(r);
6686            });
6687        else
6688          for (let e = 0; e < i; e += 1)
6689            s.slides[t.realIndex + e] &&
6690              s.slides[t.realIndex + e].classList.add(r);
6691        const n = t.params.thumbs.autoScrollOffset,
6692          l = n && !s.params.loop;
6693        if (t.realIndex !== s.realIndex || l) {
6694          const i = s.activeIndex;
6695          let r, o;
6696          if (s.params.loop) {
6697            const e = s.slides.find(
6698              (e) =>
6699                e.getAttribute("data-swiper-slide-index") === `${t.realIndex}`
6700            );
6701            (r = s.slides.indexOf(e)),
6702              (o = t.activeIndex > t.previousIndex ? "next" : "prev");
6703          } else (r = t.realIndex), (o = r > t.previousIndex ? "next" : "prev");
6704          l && (r += "next" === o ? n : -1 * n),
6705            s.visibleSlidesIndexes &&
6706              s.visibleSlidesIndexes.indexOf(r) < 0 &&
6707              (s.params.centeredSlides
6708                ? (r =
6709                    r > i
6710                      ? r - Math.floor(a / 2) + 1
6711                      : r + Math.floor(a / 2) - 1)
6712                : r > i && s.params.slidesPerGroup,
6713              s.slideTo(r, e ? 0 : void 0));
6714        }
6715      }
6716      (t.thumbs = { swiper: null }),
6717        i("beforeInit", () => {
6718          const { thumbs: e } = t.params;
6719          if (e && e.swiper)
6720            if (
6721              "string" == typeof e.swiper ||
6722              e.swiper instanceof HTMLElement
6723            ) {
6724              const s = a(),
6725                i = () => {
6726                  const a =
6727                    "string" == typeof e.swiper
6728                      ? s.querySelector(e.swiper)
6729                      : e.swiper;
6730                  if (a && a.swiper) (e.swiper = a.swiper), o(), d(!0);
6731                  else if (a) {
6732                    const s = `${t.params.eventsPrefix}init`,
6733                      i = (r) => {
6734                        (e.swiper = r.detail[0]),
6735                          a.removeEventListener(s, i),
6736                          o(),
6737                          d(!0),
6738                          e.swiper.update(),
6739                          t.update();
6740                      };
6741                    a.addEventListener(s, i);
6742                  }
6743                  return a;
6744                },
6745                r = () => {
6746                  if (t.destroyed) return;
6747                  i() || requestAnimationFrame(r);
6748                };
6749              requestAnimationFrame(r);
6750            } else o(), d(!0);
6751        }),
6752        i("slideChange update resize observerUpdate", () => {
6753          d();
6754        }),
6755        i("setTransition", (e, s) => {
6756          const a = t.thumbs.swiper;
6757          a && !a.destroyed && a.setTransition(s);
6758        }),
6759        i("beforeDestroy", () => {
6760          const e = t.thumbs.swiper;
6761          e && !e.destroyed && n && e.destroy();
6762        }),
6763        Object.assign(t.thumbs, { init: o, update: d });
6764    },
6765    function (e) {
6766      let { swiper: t, extendParams: s, emit: a, once: i } = e;
6767      s({
6768        freeMode: {
6769          enabled: !1,
6770          momentum: !0,
6771          momentumRatio: 1,
6772          momentumBounce: !0,
6773          momentumBounceRatio: 1,
6774          momentumVelocityRatio: 1,
6775          sticky: !1,
6776          minimumVelocity: 0.02,
6777        },
6778      }),
6779        Object.assign(t, {
6780          freeMode: {
6781            onTouchStart: function () {
6782              if (t.params.cssMode) return;
6783              const e = t.getTranslate();
6784              t.setTranslate(e),
6785                t.setTransition(0),
6786                (t.touchEventsData.velocities.length = 0),
6787                t.freeMode.onTouchEnd({
6788                  currentPos: t.rtl ? t.translate : -t.translate,
6789                });
6790            },
6791            onTouchMove: function () {
6792              if (t.params.cssMode) return;
6793              const { touchEventsData: e, touches: s } = t;
6794              0 === e.velocities.length &&
6795                e.velocities.push({
6796                  position: s[t.isHorizontal() ? "startX" : "startY"],
6797                  time: e.touchStartTime,
6798                }),
6799                e.velocities.push({
6800                  position: s[t.isHorizontal() ? "currentX" : "currentY"],
6801                  time: o(),
6802                });
6803            },
6804            onTouchEnd: function (e) {
6805              let { currentPos: s } = e;
6806              if (t.params.cssMode) return;
6807              const {
6808                  params: r,
6809                  wrapperEl: n,
6810                  rtlTranslate: l,
6811                  snapGrid: d,
6812                  touchEventsData: c,
6813                } = t,
6814                p = o() - c.touchStartTime;
6815              if (s < -t.minTranslate()) t.slideTo(t.activeIndex);
6816              else if (s > -t.maxTranslate())
6817                t.slides.length < d.length
6818                  ? t.slideTo(d.length - 1)
6819                  : t.slideTo(t.slides.length - 1);
6820              else {
6821                if (r.freeMode.momentum) {
6822                  if (c.velocities.length > 1) {
6823                    const e = c.velocities.pop(),
6824                      s = c.velocities.pop(),
6825                      a = e.position - s.position,
6826                      i = e.time - s.time;
6827                    (t.velocity = a / i),
6828                      (t.velocity /= 2),
6829                      Math.abs(t.velocity) < r.freeMode.minimumVelocity &&
6830                        (t.velocity = 0),
6831                      (i > 150 || o() - e.time > 300) && (t.velocity = 0);
6832                  } else t.velocity = 0;
6833                  (t.velocity *= r.freeMode.momentumVelocityRatio),
6834                    (c.velocities.length = 0);
6835                  let e = 1e3 * r.freeMode.momentumRatio;
6836                  const s = t.velocity * e;
6837                  let p = t.translate + s;
6838                  l && (p = -p);
6839                  let u,
6840                    m = !1;
6841                  const h =
6842                    20 * Math.abs(t.velocity) * r.freeMode.momentumBounceRatio;
6843                  let f;
6844                  if (p < t.maxTranslate())
6845                    r.freeMode.momentumBounce
6846                      ? (p + t.maxTranslate() < -h &&
6847                          (p = t.maxTranslate() - h),
6848                        (u = t.maxTranslate()),
6849                        (m = !0),
6850                        (c.allowMomentumBounce = !0))
6851                      : (p = t.maxTranslate()),
6852                      r.loop && r.centeredSlides && (f = !0);
6853                  else if (p > t.minTranslate())
6854                    r.freeMode.momentumBounce
6855                      ? (p - t.minTranslate() > h && (p = t.minTranslate() + h),
6856                        (u = t.minTranslate()),
6857                        (m = !0),
6858                        (c.allowMomentumBounce = !0))
6859                      : (p = t.minTranslate()),
6860                      r.loop && r.centeredSlides && (f = !0);
6861                  else if (r.freeMode.sticky) {
6862                    let e;
6863                    for (let t = 0; t < d.length; t += 1)
6864                      if (d[t] > -p) {
6865                        e = t;
6866                        break;
6867                      }
6868                    (p =
6869                      Math.abs(d[e] - p) < Math.abs(d[e - 1] - p) ||
6870                      "next" === t.swipeDirection
6871                        ? d[e]
6872                        : d[e - 1]),
6873                      (p = -p);
6874                  }
6875                  if (
6876                    (f &&
6877                      i("transitionEnd", () => {
6878                        t.loopFix();
6879                      }),
6880                    0 !== t.velocity)
6881                  ) {
6882                    if (
6883                      ((e = l
6884                        ? Math.abs((-p - t.translate) / t.velocity)
6885                        : Math.abs((p - t.translate) / t.velocity)),
6886                      r.freeMode.sticky)
6887                    ) {
6888                      const s = Math.abs((l ? -p : p) - t.translate),
6889                        a = t.slidesSizesGrid[t.activeIndex];
6890                      e =
6891                        s < a
6892                          ? r.speed
6893                          : s < 2 * a
6894                          ? 1.5 * r.speed
6895                          : 2.5 * r.speed;
6896                    }
6897                  } else if (r.freeMode.sticky) return void t.slideToClosest();
6898                  r.freeMode.momentumBounce && m
6899                    ? (t.updateProgress(u),
6900                      t.setTransition(e),
6901                      t.setTranslate(p),
6902                      t.transitionStart(!0, t.swipeDirection),
6903                      (t.animating = !0),
6904                      x(n, () => {
6905                        t &&
6906                          !t.destroyed &&
6907                          c.allowMomentumBounce &&
6908                          (a("momentumBounce"),
6909                          t.setTransition(r.speed),
6910                          setTimeout(() => {
6911                            t.setTranslate(u),
6912                              x(n, () => {
6913                                t && !t.destroyed && t.transitionEnd();
6914                              });
6915                          }, 0));
6916                      }))
6917                    : t.velocity
6918                    ? (a("_freeModeNoMomentumRelease"),
6919                      t.updateProgress(p),
6920                      t.setTransition(e),
6921                      t.setTranslate(p),
6922                      t.transitionStart(!0, t.swipeDirection),
6923                      t.animating ||
6924                        ((t.animating = !0),
6925                        x(n, () => {
6926                          t && !t.destroyed && t.transitionEnd();
6927                        })))
6928                    : t.updateProgress(p),
6929                    t.updateActiveIndex(),
6930                    t.updateSlidesClasses();
6931                } else {
6932                  if (r.freeMode.sticky) return void t.slideToClosest();
6933                  r.freeMode && a("_freeModeNoMomentumRelease");
6934                }
6935                (!r.freeMode.momentum || p >= r.longSwipesMs) &&
6936                  (a("_freeModeStaticRelease"),
6937                  t.updateProgress(),
6938                  t.updateActiveIndex(),
6939                  t.updateSlidesClasses());
6940              }
6941            },
6942          },
6943        });
6944    },
6945    function (e) {
6946      let t,
6947        s,
6948        a,
6949        i,
6950        { swiper: r, extendParams: n, on: l } = e;
6951      n({ grid: { rows: 1, fill: "column" } });
6952      const o = () => {
6953        let e = r.params.spaceBetween;
6954        return (
6955          "string" == typeof e && e.indexOf("%") >= 0
6956            ? (e = (parseFloat(e.replace("%", "")) / 100) * r.size)
6957            : "string" == typeof e && (e = parseFloat(e)),
6958          e
6959        );
6960      };
6961      l("init", () => {
6962        i = r.params.grid && r.params.grid.rows > 1;
6963      }),
6964        l("update", () => {
6965          const { params: e, el: t } = r,
6966            s = e.grid && e.grid.rows > 1;
6967          i && !s
6968            ? (t.classList.remove(
6969                `${e.containerModifierClass}grid`,
6970                `${e.containerModifierClass}grid-column`
6971              ),
6972              (a = 1),
6973              r.emitContainerClasses())
6974            : !i &&
6975              s &&
6976              (t.classList.add(`${e.containerModifierClass}grid`),
6977              "column" === e.grid.fill &&
6978                t.classList.add(`${e.containerModifierClass}grid-column`),
6979              r.emitContainerClasses()),
6980            (i = s);
6981        }),
6982        (r.grid = {
6983          initSlides: (e) => {
6984            const { slidesPerView: i } = r.params,
6985              { rows: n, fill: l } = r.params.grid,
6986              o =
6987                r.virtual && r.params.virtual.enabled
6988                  ? r.virtual.slides.length
6989                  : e.length;
6990            (a = Math.floor(o / n)),
6991              (t = Math.floor(o / n) === o / n ? o : Math.ceil(o / n) * 
6991n),
6992              "auto" !== i && "row" === l && (t = Math.max(t, i * n)),
6993              (s = t / n);
6994          },
6995          unsetSlides: () => {
6996            r.slides &&
6997              r.slides.forEach((e) => {
6998                e.swiperSlideGridSet &&
6999                  ((e.style.height = ""),
7000                  (e.style[r.getDirectionLabel("margin-top")] = ""));
7001              });
7002          },
7003          updateSlide: (e, i, n) => {
7004            const { slidesPerGroup: l } = r.params,
7005              d = o(),
7006              { rows: c, fill: p } = r.params.grid,
7007              u =
7008                r.virtual && r.params.virtual.enabled
7009                  ? r.virtual.slides.length
7010                  : n.length;
7011            let m, h, f;
7012            if ("row" === p && l > 1) {
7013              const s = Math.floor(e / (l * c)),
7014                a = e - c * l * s,
7015                r = 0 === s ? l : Math.min(Math.ceil((u - s * c * l) / c), l);
7016              (f = Math.floor(a / r)),
7017                (h = a - f * r + s * l),
7018                (m = h + (f * t) / c),
7019                (i.style.order = m);
7020            } else
7021              "column" === p
7022                ? ((h = Math.floor(e / c)),
7023                  (f = e - h * c),
7024                  (h > a || (h === a && f === c - 1)) &&
7025                    ((f += 1), f >= c && ((f = 0), (h += 1))))
7026                : ((f = Math.floor(e / s)), (h = e - f * s));
7027            (i.row = f),
7028              (i.column = h),
7029              (i.style.height = `calc((100% - ${(c - 1) * d}px) / ${c})`),
7030              (i.style[r.getDirectionLabel("margin-top")] =
7031                0 !== f ? d && `${d}px` : ""),
7032              (i.swiperSlideGridSet = !0);
7033          },
7034          updateWrapperSize: (e, s) => {
7035            const { centeredSlides: a, roundLengths: i } = r.params,
7036              n = o(),
7037              { rows: l } = r.params.grid;
7038            if (
7039              ((r.virtualSize = (e + n) * t),
7040              (r.virtualSize = Math.ceil(r.virtualSize / l) - n),
7041              r.params.cssMode ||
7042                (r.wrapperEl.style[r.getDirectionLabel("width")] = `${
7043                  r.virtualSize + n
7044                }px`),
7045              a)
7046            ) {
7047              const e = [];
7048              for (let t = 0; t < s.length; t += 1) {
7049                let a = s[t];
7050                i && (a = Math.floor(a)),
7051                  s[t] < r.virtualSize + s[0] && e.push(a);
7052              }
7053              s.splice(0, s.length), s.push(...e);
7054            }
7055          },
7056        });
7057    },
7058    function (e) {
7059      let { swiper: t } = e;
7060      Object.assign(t, {
7061        appendSlide: le.bind(t),
7062        prependSlide: oe.bind(t),
7063        addSlide: de.bind(t),
7064        removeSlide: ce.bind(t),
7065        removeAllSlides: pe.bind(t),
7066      });
7067    },
7068    function (e) {
7069      let { swiper: t, extendParams: s, on: a } = e;
7070      s({ fadeEffect: { crossFade: !1 } }),
7071        ue({
7072          effect: "fade",
7073          swiper: t,
7074          on: a,
7075          setTranslate: () => {
7076            const { slides: e } = t;
7077            t.params.fadeEffect;
7078            for (let s = 0; s < e.length; s += 1) {
7079              const e = t.slides[s];
7080              let a = -e.swiperSlideOffset;
7081              t.params.virtualTranslate || (a -= t.translate);
7082              let i = 0;
7083              t.isHorizontal() || ((i = a), (a = 0));
7084              const r = t.params.fadeEffect.crossFade
7085                  ? Math.max(1 - Math.abs(e.progress), 0)
7086                  : 1 + Math.min(Math.max(e.progress, -1), 0),
7087                n = me(0, e);
7088              (n.style.opacity = r),
7089                (n.style.transform = `translate3d(${a}px, ${i}px, 0px)`);
7090            }
7091          },
7092          setTransition: (e) => {
7093            const s = t.slides.map((e) => h(e));
7094            s.forEach((t) => {
7095              t.style.transitionDuration = `${e}ms`;
7096            }),
7097              he({
7098                swiper: t,
7099                duration: e,
7100                transformElements: s,
7101                allSlides: !0,
7102              });
7103          },
7104          overwriteParams: () => ({
7105            slidesPerView: 1,
7106            slidesPerGroup: 1,
7107            watchSlidesProgress: !0,
7108            spaceBetween: 0,
7109            virtualTranslate: !t.params.cssMode,
7110          }),
7111        });
7112    },
7113    function (e) {
7114      let { swiper: t, extendParams: s, on: a } = e;
7115      s({
7116        cubeEffect: {
7117          slideShadows: !0,
7118          shadow: !0,
7119          shadowOffset: 20,
7120          shadowScale: 0.94,
7121        },
7122      });
7123      const i = (e, t, s) => {
7124        let a = s
7125            ? e.querySelector(".swiper-slide-shadow-left")
7126            : e.querySelector(".swiper-slide-shadow-top"),
7127          i = s
7128            ? e.querySelector(".swiper-slide-shadow-right")
7129            : e.querySelector(".swiper-slide-shadow-bottom");
7130        a ||
7131          ((a = v(
7132            "div",
7133            (
7134              "swiper-slide-shadow-cube swiper-slide-shadow-" +
7135              (s ? "left" : "top")
7136            ).split(" ")
7137          )),
7138          e.append(a)),
7139          i ||
7140            ((i = v(
7141              "div",
7142              (
7143                "swiper-slide-shadow-cube swiper-slide-shadow-" +
7144                (s ? "right" : "bottom")
7145              ).split(" ")
7146            )),
7147            e.append(i)),
7148          a && (a.style.opacity = Math.max(-t, 0)),
7149          i && (i.style.opacity = Math.max(t, 0));
7150      };
7151      ue({
7152        effect: "cube",
7153        swiper: t,
7154        on: a,
7155        setTranslate: () => {
7156          const {
7157              el: e,
7158              wrapperEl: s,
7159              slides: a,
7160              width: r,
7161              height: n,
7162              rtlTranslate: l,
7163              size: o,
7164              browser: d,
7165            } = t,
7166            c = M(t),
7167            p = t.params.cubeEffect,
7168            u = t.isHorizontal(),
7169            m = t.virtual && t.params.virtual.enabled;
7170          let h,
7171            f = 0;
7172          p.shadow &&
7173            (u
7174              ? ((h = t.wrapperEl.querySelector(".swiper-cube-shadow")),
7175                h ||
7176                  ((h = v("div", "swiper-cube-shadow")), t.wrapperEl.append(h)),
7177                (h.style.height = `${r}px`))
7178              : ((h = e.querySelector(".swiper-cube-shadow")),
7179                h || ((h = v("div", "swiper-cube-shadow")), e.append(h))));
7180          for (let e = 0; e < a.length; e += 1) {
7181            const t = a[e];
7182            let s = e;
7183            m && (s = parseInt(t.getAttribute("data-swiper-slide-index"), 10));
7184            let r = 90 * s,
7185              n = Math.floor(r / 360);
7186            l && ((r = -r), (n = Math.floor(-r / 360)));
7187            const d = Math.max(Math.min(t.progress, 1), -1);
7188            let h = 0,
7189              g = 0,
7190              v = 0;
7191            s % 4 == 0
7192              ? ((h = 4 * -n * o), (v = 0))
7193              : (s - 1) % 4 == 0
7194              ? ((h = 0), (v = 4 * -n * o))
7195              : (s - 2) % 4 == 0
7196              ? ((h = o + 4 * n * o), (v = o))
7197              : (s - 3) % 4 == 0 && ((h = -o), (v = 3 * o + 4 * o * n)),
7198              l && (h = -h),
7199              u || ((g = h), (h = 0));
7200            const w = `rotateX(${c(u ? 0 : -r)}deg) rotateY(${c(
7201              u ? r : 0
7202            )}deg) translate3d(${h}px, ${g}px, ${v}px)`;
7203            d <= 1 &&
7204              d > -1 &&
7205              ((f = 90 * s + 90 * d), l && (f = 90 * -s - 90 * d)),
7206              (t.style.transform = w),
7207              p.slideShadows && i(t, d, u);
7208          }
7209          if (
7210            ((s.style.transformOrigin = `50% 50% -${o / 2}px`),
7211            (s.style["-webkit-transform-origin"] = `50% 50% -${o / 2}px`),
7212            p.shadow)
7213          )
7214            if (u)
7215              h.style.transform = `translate3d(0px, ${
7216                r / 2 + p.shadowOffset
7217              }px, ${-r / 2}px) rotateX(89.99deg) rotateZ(0deg) scale(${
7218                p.shadowScale
7219              })`;
7220            else {
7221              const e = Math.abs(f) - 90 * Math.floor(Math.abs(f) / 90),
7222                t =
7223                  1.5 -
7224                  (Math.sin((2 * e * Math.PI) / 360) / 2 +
7225                    Math.cos((2 * e * Math.PI) / 360) / 2),
7226                s = p.shadowScale,
7227                a = p.shadowScale / t,
7228                i = p.shadowOffset;
7229              h.style.transform = `scale3d(${s}, 1, ${a}) translate3d(0px, ${
7230                n / 2 + i
7231              }px, ${-n / 2 / a}px) rotateX(-89.99deg)`;
7232            }
7233          const g =
7234            (d.isSafari || d.isWebView) && d.needPerspectiveFix ? -o / 2 : 0;
7235          (s.style.transform = `translate3d(0px,0,${g}px) rotateX(${c(
7236            t.isHorizontal() ? 0 : f
7237          )}deg) rotateY(${c(t.isHorizontal() ? -f : 0)}deg)`),
7238            s.style.setProperty("--swiper-cube-translate-z", `${g}px`);
7239        },
7240        setTransition: (e) => {
7241          const { el: s, slides: a } = t;
7242          if (
7243            (a.forEach((t) => {
7244              (t.style.transitionDuration = `${e}ms`),
7245                t
7246                  .querySelectorAll(
7247                    ".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left"
7248                  )
7249                  .forEach((t) => {
7250                    t.style.transitionDuration = `${e}ms`;
7251                  });
7252            }),
7253            t.params.cubeEffect.shadow && !t.isHorizontal())
7254          ) {
7255            const t = s.querySelector(".swiper-cube-shadow");
7256            t && (t.style.transitionDuration = `${e}ms`);
7257          }
7258        },
7259        recreateShadows: () => {
7260          const e = t.isHorizontal();
7261          t.slides.forEach((t) => {
7262            const s = Math.max(Math.min(t.progress, 1), -1);
7263            i(t, s, e);
7264          });
7265        },
7266        getEffectParams: () => t.params.cubeEffect,
7267        perspective: () => !0,
7268        overwriteParams: () => ({
7269          slidesPerView: 1,
7270          slidesPerGroup: 1,
7271          watchSlidesProgress: !0,
7272          resistanceRatio: 0,
7273          spaceBetween: 0,
7274          centeredSlides: !1,
7275          virtualTranslate: !0,
7276        }),
7277      });
7278    },
7279    function (e) {
7280      let { swiper: t, extendParams: s, on: a } = e;
7281      s({ flipEffect: { slideShadows: !0, limitRotation: !0 } });
7282      const i = (e, s) => {
7283        let a = t.isHorizontal()
7284            ? e.querySelector(".swiper-slide-shadow-left")
7285            : e.querySelector(".swiper-slide-shadow-top"),
7286          i = t.isHorizontal()
7287            ? e.querySelector(".swiper-slide-shadow-right")
7288            : e.querySelector(".swiper-slide-shadow-bottom");
7289        a || (a = fe("flip", e, t.isHorizontal() ? "left" : "top")),
7290          i || (i = fe("flip", e, t.isHorizontal() ? "right" : "bottom")),
7291          a && (a.style.opacity = Math.max(-s, 0)),
7292          i && (i.style.opacity = Math.max(s, 0));
7293      };
7294      ue({
7295        effect: "flip",
7296        swiper: t,
7297        on: a,
7298        setTranslate: () => {
7299          const { slides: e, rtlTranslate: s } = t,
7300            a = t.params.flipEffect,
7301            r = M(t);
7302          for (let n = 0; n < e.length; n += 1) {
7303            const l = e[n];
7304            let o = l.progress;
7305            t.params.flipEffect.limitRotation &&
7306              (o = Math.max(Math.min(l.progress, 1), -1));
7307            const d = l.swiperSlideOffset;
7308            let c = -180 * o,
7309              p = 0,
7310              u = t.params.cssMode ? -d - t.translate : -d,
7311              m = 0;
7312            t.isHorizontal()
7313              ? s && (c = -c)
7314              : ((m = u), (u = 0), (p = -c), (c = 0)),
7315              (l.style.zIndex = -Math.abs(Math.round(o)) + e.length),
7316              a.slideShadows && i(l, o);
7317            const h = `translate3d(${u}px, ${m}px, 0px) rotateX(${r(
7318              p
7319            )}deg) rotateY(${r(c)}deg)`;
7320            me(0, l).style.transform = h;
7321          }
7322        },
7323        setTransition: (e) => {
7324          const s = t.slides.map((e) => h(e));
7325          s.forEach((t) => {
7326            (t.style.transitionDuration = `${e}ms`),
7327              t
7328                .querySelectorAll(
7329                  ".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left"
7330                )
7331                .forEach((t) => {
7332                  t.style.transitionDuration = `${e}ms`;
7333                });
7334          }),
7335            he({ swiper: t, duration: e, transformElements: s });
7336        },
7337        recreateShadows: () => {
7338          t.params.flipEffect,
7339            t.slides.forEach((e) => {
7340              let s = e.progress;
7341              t.params.flipEffect.limitRotation &&
7342                (s = Math.max(Math.min(e.progress, 1), -1)),
7343                i(e, s);
7344            });
7345        },
7346        getEffectParams: () => t.params.flipEffect,
7347        perspective: () => !0,
7348        overwriteParams: () => ({
7349          slidesPerView: 1,
7350          slidesPerGroup: 1,
7351          watchSlidesProgress: !0,
7352          spaceBetween: 0,
7353          virtualTranslate: !t.params.cssMode,
7354        }),
7355      });
7356    },
7357    function (e) {
7358      let { swiper: t, extendParams: s, on: a } = e;
7359      s({
7360        coverflowEffect: {
7361          rotate: 50,
7362          stretch: 0,
7363          depth: 100,
7364          scale: 1,
7365          modifier: 1,
7366          slideShadows: !0,
7367        },
7368      }),
7369        ue({
7370          effect: "coverflow",
7371          swiper: t,
7372          on: a,
7373          setTranslate: () => {
7374            const { width: e, height: s, slides: a, slidesSizesGrid: i } = t,
7375              r = t.params.coverflowEffect,
7376              n = t.isHorizontal(),
7377              l = t.translate,
7378              o = n ? e / 2 - l : s / 2 - l,
7379              d = n ? r.rotate : -r.rotate,
7380              c = r.depth,
7381              p = M(t);
7382            for (let e = 0, t = a.length; e < t; e += 1) {
7383              const t = a[e],
7384                s = i[e],
7385                l = (o - t.swiperSlideOffset - s / 2) / s,
7386                u =
7387                  "function" == typeof r.modifier
7388                    ? r.modifier(l)
7389                    : l * r.modifier;
7390              let m = n ? d * u : 0,
7391                h = n ? 0 : d * u,
7392                f = -c * Math.abs(u),
7393                g = r.stretch;
7394              "string" == typeof g &&
7395                -1 !== g.indexOf("%") &&
7396                (g = (parseFloat(r.stretch) / 100) * s);
7397              let v = n ? 0 : g * u,
7398                w = n ? g * u : 0,
7399                b = 1 - (1 - r.scale) * Math.abs(u);
7400              Math.abs(w) < 0.001 && (w = 0),
7401                Math.abs(v) < 0.001 && (v = 0),
7402                Math.abs(f) < 0.001 && (f = 0),
7403                Math.abs(m) < 0.001 && (m = 0),
7404                Math.abs(h) < 0.001 && (h = 0),
7405                Math.abs(b) < 0.001 && (b = 0);
7406              const y = `translate3d(${w}px,${v}px,${f}px)  rotateX(${p(
7407                h
7408              )}deg) rotateY(${p(m)}deg) scale(${b})`;
7409              if (
7410                ((me(0, t).style.transform = y),
7411                (t.style.zIndex = 1 - Math.abs(Math.round(u))),
7412                r.slideShadows)
7413              ) {
7414                let e = n
7415                    ? t.querySelector(".swiper-slide-shadow-left")
7416                    : t.querySelector(".swiper-slide-shadow-top"),
7417                  s = n
7418                    ? t.querySelector(".swiper-slide-shadow-right")
7419                    : t.querySelector(".swiper-slide-shadow-bottom");
7420                e || (e = fe("coverflow", t, n ? "left" : "top")),
7421                  s || (s = fe("coverflow", t, n ? "right" : "bottom")),
7422                  e && (e.style.opacity = u > 0 ? u : 0),
7423                  s && (s.style.opacity = -u > 0 ? -u : 0);
7424              }
7425            }
7426          },
7427          setTransition: (e) => {
7428            t.slides
7429              .map((e) => h(e))
7430              .forEach((t) => {
7431                (t.style.transitionDuration = `${e}ms`),
7432                  t
7433                    .querySelectorAll(
7434                      ".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left"
7435                    )
7436                    .forEach((t) => {
7437                      t.style.transitionDuration = `${e}ms`;
7438                    });
7439              });
7440          },
7441          perspective: () => !0,
7442          overwriteParams: () => ({ watchSlidesProgress: !0 }),
7443        });
7444    },
7445    function (e) {
7446      let { swiper: t, extendParams: s, on: a } = e;
7447      s({
7448        creativeEffect: {
7449          limitProgress: 1,
7450          shadowPerProgress: !1,
7451          progressMultiplier: 1,
7452          perspective: !0,
7453          prev: {
7454            translate: [0, 0, 0],
7455            rotate: [0, 0, 0],
7456            opacity: 1,
7457            scale: 1,
7458          },
7459          next: {
7460            translate: [0, 0, 0],
7461            rotate: [0, 0, 0],
7462            opacity: 1,
7463            scale: 1,
7464          },
7465        },
7466      });
7467      const i = (e) => ("string" == typeof e ? e : `${e}px`);
7468      ue({
7469        effect: "creative",
7470        swiper: t,
7471        on: a,
7472        setTranslate: () => {
7473          const { slides: e, wrapperEl: s, slidesSizesGrid: a } = t,
7474            r = t.params.creativeEffect,
7475            { progressMultiplier: n } = r,
7476            l = t.params.centeredSlides,
7477            o = M(t);
7478          if (l) {
7479            const e = a[0] / 2 - t.params.slidesOffsetBefore || 0;
7480            s.style.transform = `translateX(calc(50% - ${e}px))`;
7481          }
7482          for (let s = 0; s < e.length; s += 1) {
7483            const a = e[s],
7484              d = a.progress,
7485              c = Math.min(
7486                Math.max(a.progress, -r.limitProgress),
7487                r.limitProgress
7488              );
7489            let p = c;
7490            l ||
7491              (p = Math.min(
7492                Math.max(a.originalProgress, -r.limitProgress),
7493                r.limitProgress
7494              ));
7495            const u = a.swiperSlideOffset,
7496              m = [t.params.cssMode ? -u - t.translate : -u, 0, 0],
7497              h = [0, 0, 0];
7498            let f = !1;
7499            t.isHorizontal() || ((m[1] = m[0]), (m[0] = 0));
7500            let g = {
7501              translate: [0, 0, 0],
7502              rotate: [0, 0, 0],
7503              scale: 1,
7504              opacity: 1,
7505            };
7506            c < 0
7507              ? ((g = r.next), (f = !0))
7508              : c > 0 && ((g = r.prev), (f = !0)),
7509              m.forEach((e, t) => {
7510                m[t] = `calc(${e}px + (${i(g.translate[t])} * ${Math.abs(
7511                  c * n
7512                )}))`;
7513              }),
7514              h.forEach((e, t) => {
7515                let s = g.rotate[t] * Math.abs(c * n);
7516                h[t] = s;
7517              }),
7518              (a.style.zIndex = -Math.abs(Math.round(d)) + e.length);
7519            const v = m.join(", "),
7520              w = `rotateX(${o(h[0])}deg) rotateY(${o(h[1])}deg) rotateZ(${o(
7521                h[2]
7522              )}deg)`,
7523              b =
7524                p < 0
7525                  ? `scale(${1 + (1 - g.scale) * p * n})`
7526                  : `scale(${1 - (1 - g.scale) * p * n})`,
7527              y =
7528                p < 0
7529                  ? 1 + (1 - g.opacity) * p * n
7530                  : 1 - (1 - g.opacity) * p * n,
7531              E = `translate3d(${v}) ${w} ${b}`;
7532            if ((f && g.shadow) || !f) {
7533              let e = a.querySelector(".swiper-slide-shadow");
7534              if ((!e && g.shadow && (e = fe("creative", a)), e)) {
7535                const t = r.shadowPerProgress ? c * (1 / r.limitProgress) : c;
7536                e.style.opacity = Math.min(Math.max(Math.abs(t), 0), 1);
7537              }
7538            }
7539            const x = me(0, a);
7540            (x.style.transform = E),
7541              (x.style.opacity = y),
7542              g.origin && (x.style.transformOrigin = g.origin);
7543          }
7544        },
7545        setTransition: (e) => {
7546          const s = t.slides.map((e) => h(e));
7547          s.forEach((t) => {
7548            (t.style.transitionDuration = `${e}ms`),
7549              t.querySelectorAll(".swiper-slide-shadow").forEach((t) => {
7550                t.style.transitionDuration = `${e}ms`;
7551              });
7552          }),
7553            he({ swiper: t, duration: e, transformElements: s, allSlides: !0 });
7554        },
7555        perspective: () => t.params.creativeEffect.perspective,
7556        overwriteParams: () => ({
7557          watchSlidesProgress: !0,
7558          virtualTranslate: !t.params.cssMode,
7559        }),
7560      });
7561    },
7562    function (e) {
7563      let { swiper: t, extendParams: s, on: a } = e;
7564      s({
7565        cardsEffect: {
7566          slideShadows: !0,
7567          rotate: !0,
7568          perSlideRotate: 2,
7569          perSlideOffset: 8,
7570        },
7571      }),
7572        ue({
7573          effect: "cards",
7574          swiper: t,
7575          on: a,
7576          setTranslate: () => {
7577            const { slides: e, activeIndex: s, rtlTranslate: a } = t,
7578              i = t.params.cardsEffect,
7579              { startTranslate: r, isTouched: n } = t.touchEventsData,
7580              l = a ? -t.translate : t.translate;
7581            for (let o = 0; o < e.length; o += 1) {
7582              const d = e[o],
7583                c = d.progress,
7584                p = Math.min(Math.max(c, -4), 4);
7585              let u = d.swiperSlideOffset;
7586              t.params.centeredSlides &&
7587                !t.params.cssMode &&
7588                (t.wrapperEl.style.transform = `translateX(${t.minTranslate()}px)`),
7589                t.params.centeredSlides &&
7590                  t.params.cssMode &&
7591                  (u -= e[0].swiperSlideOffset);
7592              let m = t.params.cssMode ? -u - t.translate : -u,
7593                h = 0;
7594              const f = -100 * Math.abs(p);
7595              let g = 1,
7596                v = -i.perSlideRotate * p,
7597                w = i.perSlideOffset - 0.75 * Math.abs(p);
7598              const b =
7599                  t.virtual && t.params.virtual.enabled
7600                    ? t.virtual.from + o
7601                    : o,
7602                y =
7603                  (b === s || b === s - 1) &&
7604                  p > 0 &&
7605                  p < 1 &&
7606                  (n || t.params.cssMode) &&
7607                  l < r,
7608                E =
7609                  (b === s || b === s + 1) &&
7610                  p < 0 &&
7611                  p > -1 &&
7612                  (n || t.params.cssMode) &&
7613                  l > r;
7614              if (y || E) {
7615                const e = (1 - Math.abs((Math.abs(p) - 0.5) / 0.5)) ** 0.5;
7616                (v += -28 * p * e),
7617                  (g += -0.5 * e),
7618                  (w += 96 * e),
7619                  (h = -25 * e * Math.abs(p) + "%");
7620              }
7621              if (
7622                ((m =
7623                  p < 0
7624                    ? `calc(${m}px ${a ? "-" : "+"} (${w * Math.abs(p)}%))`
7625                    : p > 0
7626                    ? `calc(${m}px ${a ? "-" : "+"} (-${w * Math.abs(p)}%))`
7627                    : `${m}px`),
7628                !t.isHorizontal())
7629              ) {
7630                const e = h;
7631                (h = m), (m = e);
7632              }
7633              const x = p < 0 ? "" + (1 + (1 - g) * p) : "" + (1 - (1 - g) * p),
7634                S = `\n        translate3d(${m}, ${h}, ${f}px)\n        rotateZ(${
7635                  i.rotate ? (a ? -v : v) : 0
7636                }deg)\n        scale(${x})\n      `;
7637              if (i.slideShadows) {
7638                let e = d.querySelector(".swiper-slide-shadow");
7639                e || (e = fe("cards", d)),
7640                  e &&
7641                    (e.style.opacity = Math.min(
7642                      Math.max((Math.abs(p) - 0.5) / 0.5, 0),
7643                      1
7644                    ));
7645              }
7646              d.style.zIndex = -Math.abs(Math.round(c)) + e.length;
7647              me(0, d).style.transform = S;
7648            }
7649          },
7650          setTransition: (e) => {
7651            const s = t.slides.map((e) => h(e));
7652            s.forEach((t) => {
7653              (t.style.transitionDuration = `${e}ms`),
7654                t.querySelectorAll(".swiper-slide-shadow").forEach((t) => {
7655                  t.style.transitionDuration = `${e}ms`;
7656                });
7657            }),
7658              he({ swiper: t, duration: e, transformElements: s });
7659          },
7660          perspective: () => !0,
7661          overwriteParams: () => ({
7662            _loopSwapReset: !1,
7663            watchSlidesProgress: !0,
7664            loopAdditionalSlides: t.params.cardsEffect.rotate ? 3 : 2,
7665            centeredSlides: !0,
7666            virtualTranslate: !t.params.cssMode,
7667          }),
7668        });
7669    },
7670  ];
7671  return ie.use(ge), ie;
7672})();
7673//# sourceMappingURL=swiper-bundle.min.js.map

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