PageSourceSearch

https://atalkbizplus.co.kr/js/swiper-bundle.min.js

js atalkbizplus.co.kr collected 2026-10-06 03:32:40 UTC 296,466 bytes, 5,896 lines download raw bytes

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