PageSourceSearch

https://www.shortpar4.com/cdn/shop/t/466/assets/swiper-bundle.min.js?v=3451582574531682021762980362

js shortpar4.com collected 2026-09-26 16:15:54 UTC 234,954 bytes, 6,001 lines download raw bytes

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