PageSourceSearch

https://verduonlinestore.com/modules/iqitelementor/views/js/swiper.min.js

js verduonlinestore.com collected 2026-10-08 11:52:37 UTC 255,673 bytes, 4,527 lines download raw bytes

1/**
2 * Swiper 5.3.7
3 * Most modern mobile touch slider and framework with hardware accelerated transitions
4 * http://swiperjs.com
5 *
6 * Copyright 2014-2020 Vladimir Kharlampidi
7 *
8 * Released under the MIT License
9 *
10 * Released on: April 10, 2020
11 */
12
13 !(function (e, t) {
14    "object" == typeof exports && "undefined" != typeof module ? (module.exports = t()) : "function" == typeof define && define.amd ? define(t) : ((e = e || self).Swiper = t());
15})(this, function () {
16    "use strict";
17    var e =
18            "undefined" == typeof document
19                ? {
20                      body: {},
21                      addEventListener: function () {},
22                      removeEventListener: function () {},
23                      activeElement: { blur: function () {}, nodeName: "" },
24                      querySelector: function () {
25                          return null;
26                      },
27                      querySelectorAll: function () {
28                          return [];
29                      },
30                      getElementById: function () {
31                          return null;
32                      },
33                      createEvent: function () {
34                          return { initEvent: function () {} };
35                      },
36                      createElement: function () {
37                          return {
38                              children: [],
39                              childNodes: [],
40                              style: {},
41                              setAttribute: function () {},
42                              getElementsByTagName: function () {
43                                  return [];
44                              },
45                          };
46                      },
47                      location: { hash: "" },
48                  }
49                : document,
50        t =
51            "undefined" == typeof window
52                ? {
53                      document: e,
54                      navigator: { userAgent: "" },
55                      location: {},
56                      history: {},
57                      CustomEvent: function () {
58                          return this;
59                      },
60                      addEventListener: function () {},
61                      removeEventListener: function () {},
62                      getComputedStyle: function () {
63                          return {
64                              getPropertyValue: function () {
65                                  return "";
66                              },
67                          };
68                      },
69                      Image: function () {},
70                      Date: function () {},
71                      screen: {},
72                      setTimeout: function () {},
73                      clearTimeout: function () {},
74                  }
75                : window,
76        i = function (e) {
77            for (var t = 0; t < e.length; t += 1) this[t] = e[t];
78            return (this.length = e.length), this;
79        };
80    function s(s, a) {
81        var r = [],
82            n = 0;
83        if (s && !a && s instanceof i) return s;
84        if (s)
85            if ("string" == typeof s) {
86                var o,
87                    l,
88                    d = s.trim();
89                if (d.indexOf("<") >= 0 && d.indexOf(">") >= 0) {
90                    var h = "div";
91                    for (
92                        0 === d.indexOf("<li") && (h = "ul"),
93                            0 === d.indexOf("<tr") && (h = "tbody"),
94                            (0 !== d.indexOf("<td") && 0 !== d.indexOf("<th")) || (h = "tr"),
95                            0 === d.indexOf("<tbody") && (h = "table"),
96                            0 === d.indexOf("<option") && (h = "select"),
97                            (l = e.createElement(h)).innerHTML = d,
98                            n = 0;
99                        n < l.childNodes.length;
100                        n += 1
101                    )
102                        r.push(l.childNodes[n]);
103                } else for (o = a || "#" !== s[0] || s.match(/[ .<>:~]/) ? (a || e).querySelectorAll(s.trim()) : [e.getElementById(s.trim().split("#")[1])], n = 0; n < o.length; n += 1) o[n] && r.push(o[n]);
104            } else if (s.nodeType || s === t || s === e) r.push(s);
105            else if (s.length > 0 && s[0].nodeType) for (n = 0; n < s.length; n += 1) r.push(s[n]);
106        return new i(r);
107    }
108    function a(e) {
109        for (var t = [], i = 0; i < e.length; i += 1) -1 === t.indexOf(e[i]) && t.push(e[i]);
110        return t;
111    }
112    (s.fn = i.prototype), (s.Class = i), (s.Dom7 = i);
113    var r = {
114        addClass: function (e) {
115            if (void 0 === e) return this;
116            for (var t = e.split(" "), i = 0; i < t.length; i += 1) for (var s = 0; s < this.length; s += 1) void 0 !== this[s] && void 0 !== this[s].classList && this[s].classList.add(t[i]);
117            return this;
118        },
119        removeClass: function (e) {
120            for (var t = e.split(" "), i = 0; i < t.length; i += 1) for (var s = 0; s < this.length; s += 1) void 0 !== this[s] && void 0 !== this[s].classList && this[s].classList.remove(t[i]);
121            return this;
122        },
123        hasClass: function (e) {
124            return !!this[0] && this[0].classList.contains(e);
125        },
126        toggleClass: function (e) {
127            for (var t = e.split(" "), i = 0; i < t.length; i += 1) for (var s = 0; s < this.length; s += 1) void 0 !== this[s] && void 0 !== this[s].classList && this[s].classList.toggle(t[i]);
128            return this;
129        },
130        attr: function (e, t) {
131            var i = arguments;
132            if (1 === arguments.length && "string" == typeof e) return this[0] ? this[0].getAttribute(e) : void 0;
133            for (var s = 0; s < this.length; s += 1)
134                if (2 === i.length) this[s].setAttribute(e, t);
135                else for (var a in e) (this[s][a] = e[a]), this[s].setAttribute(a, e[a]);
136            return this;
137        },
138        removeAttr: function (e) {
139            for (var t = 0; t < this.length; t += 1) this[t].removeAttribute(e);
140            return this;
141        },
142        data: function (e, t) {
143            var i;
144            if (void 0 !== t) {
145                for (var s = 0; s < this.length; s += 1) (i = this[s]).dom7ElementDataStorage || (i.dom7ElementDataStorage = {}), (i.dom7ElementDataStorage[e] = t);
146                return this;
147            }
148            if ((i = this[0])) {
149                if (i.dom7ElementDataStorage && e in i.dom7ElementDataStorage) return i.dom7ElementDataStorage[e];
150                var a = i.getAttribute("data-" + e);
151                return a || void 0;
152            }
153        },
154        transform: function (e) {
155            for (var t = 0; t < this.length; t += 1) {
156                var i = this[t].style;
157                (i.webkitTransform = e), (i.transform = e);
158            }
159            return this;
160        },
161        transition: function (e) {
162            "string" != typeof e && (e += "ms");
163            for (var t = 0; t < this.length; t += 1) {
164                var i = this[t].style;
165                (i.webkitTransitionDuration = e), (i.transitionDuration = e);
166            }
167            return this;
168        },
169        on: function () {
170            for (var e, t = [], i = arguments.length; i--; ) t[i] = arguments[i];
171            var a = t[0],
172                r = t[1],
173                n = t[2],
174                o = t[3];
175            function l(e) {
176                var t = e.target;
177                if (t) {
178                    var i = e.target.dom7EventData || [];
179                    if ((i.indexOf(e) < 0 && i.unshift(e), s(t).is(r))) n.apply(t, i);
180                    else for (var a = s(t).parents(), o = 0; o < a.length; o += 1) s(a[o]).is(r) && n.apply(a[o], i);
181                }
182            }
183            function d(e) {
184                var t = (e && e.target && e.target.dom7EventData) || [];
185                t.indexOf(e) < 0 && t.unshift(e), n.apply(this, t);
186            }
187            "function" == typeof t[1] && ((a = (e = t)[0]), (n = e[1]), (o = e[2]), (r = void 0)), o || (o = !1);
188            for (var h, p = a.split(" "), c = 0; c < this.length; c += 1) {
189                var u = this[c];
190                if (r)
191                    for (h = 0; h < p.length; h += 1) {
192                        var v = p[h];
193                        u.dom7LiveListeners || (u.dom7LiveListeners = {}), u.dom7LiveListeners[v] || (u.dom7LiveListeners[v] = []), u.dom7LiveListeners[v].push({ listener: n, proxyListener: l }), u.addEventListener(v, l, o);
194                    }
195                else
196                    for (h = 0; h < p.length; h += 1) {
197                        var f = p[h];
198                        u.dom7Listeners || (u.dom7Listeners = {}), u.dom7Listeners[f] || (u.dom7Listeners[f] = []), u.dom7Listeners[f].push({ listener: n, proxyListener: d }), u.addEventListener(f, d, o);
199                    }
200            }
201            return this;
202        },
203        off: function () {
204            for (var e, t = [], i = arguments.length; i--; ) t[i] = arguments[i];
205            var s = t[0],
206                a = t[1],
207                r = t[2],
208                n = t[3];
209            "function" == typeof t[1] && ((s = (e = t)[0]), (r = e[1]), (n = e[2]), (a = void 0)), n || (n = !1);
210            for (var o = s.split(" "), l = 0; l < o.length; l += 1)
211                for (var d = o[l], h = 0; h < this.length; h += 1) {
212                    var p = this[h],
213                        c = void 0;
214                    if ((!a && p.dom7Listeners ? (c = p.dom7Listeners[d]) : a && p.dom7LiveListeners && (c = p.dom7LiveListeners[d]), c && c.length))
215                        for (var u = c.length - 1; u >= 0; u -= 1) {
216                            var v = c[u];
217                            (r && v.listener === r) || (r && v.listener && v.listener.dom7proxy && v.listener.dom7proxy === r)
218                                ? (p.removeEventListener(d, v.proxyListener, n), c.splice(u, 1))
219                                : r || (p.removeEventListener(d, v.proxyListener, n), c.splice(u, 1));
220                        }
221                }
222            return this;
223        },
224        trigger: function () {
225            for (var i = [], s = arguments.length; s--; ) i[s] = arguments[s];
226            for (var a = i[0].split(" "), r = i[1], n = 0; n < a.length; n += 1)
227                for (var o = a[n], l = 0; l < this.length; l += 1) {
228                    var d = this[l],
229                        h = void 0;
230                    try {
231                        h = new t.CustomEvent(o, { detail: r, bubbles: !0, cancelable: !0 });
232                    } catch (t) {
233                        (h = e.createEvent("Event")).initEvent(o, !0, !0), (h.detail = r);
234                    }
235                    (d.dom7EventData = i.filter(function (e, t) {
236                        return t > 0;
237                    })),
238                        d.dispatchEvent(h),
239                        (d.dom7EventData = []),
240                        delete d.dom7EventData;
241                }
242            return this;
243        },
244        transitionEnd: function (e) {
245            var t,
246                i = ["webkitTransitionEnd", "transitionend"],
247                s = this;
248            function a(r) {
249                if (r.target === this) for (e.call(this, r), t = 0; t < i.length; t += 1) s.off(i[t], a);
250            }
251            if (e) for (t = 0; t < i.length; t += 1) s.on(i[t], a);
252            return this;
253        },
254        outerWidth: function (e) {
255            if (this.length > 0) {
256                if (e) {
257                    var t = this.styles();
258                    return this[0].offsetWidth + parseFloat(t.getPropertyValue("margin-right")) + parseFloat(t.getPropertyValue("margin-left"));
259                }
260                return this[0].offsetWidth;
261            }
262            return null;
263        },
264        outerHeight: function (e) {
265            if (this.length > 0) {
266                if (e) {
267                    var t = this.styles();
268                    return this[0].offsetHeight + parseFloat(t.getPropertyValue("margin-top")) + parseFloat(t.getPropertyValue("margin-bottom"));
269                }
270                return this[0].offsetHeight;
271            }
272            return null;
273        },
274        offset: function () {
275            if (this.length > 0) {
276                var i = this[0],
277                    s = i.getBoundingClientRect(),
278                    a = e.body,
279                    r = i.clientTop || a.clientTop || 0,
280                    n = i.clientLeft || a.clientLeft || 0,
281                    o = i === t ? t.scrollY : i.scrollTop,
282                    l = i === t ? t.scrollX : i.scrollLeft;
283                return { top: s.top + o - r, left: s.left + l - n };
284            }
285            return null;
286        },
287        css: function (e, i) {
288            var s;
289            if (1 === arguments.length) {
290                if ("string" != typeof e) {
291                    for (s = 0; s < this.length; s += 1) for (var a in e) this[s].style[a] = e[a];
292                    return this;
293                }
294                if (this[0]) return t.getComputedStyle(this[0], null).getPropertyValue(e);
295            }
296            if (2 === arguments.length && "string" == typeof e) {
297                for (s = 0; s < this.length; s += 1) this[s].style[e] = i;
298                return this;
299            }
300            return this;
301        },
302        each: function (e) {
303            if (!e) return this;
304            for (var t = 0; t < this.length; t += 1) if (!1 === e.call(this[t], t, this[t])) return this;
305            return this;
306        },
307        html: function (e) {
308            if (void 0 === e) return this[0] ? this[0].innerHTML : void 0;
309            for (var t = 0; t < this.length; t += 1) this[t].innerHTML = e;
310            return this;
311        },
312        text: function (e) {
313            if (void 0 === e) return this[0] ? this[0].textContent.trim() : null;
314            for (var t = 0; t < this.length; t += 1) this[t].textContent = e;
315            return this;
316        },
317        is: function (a) {
318            var r,
319                n,
320                o = this[0];
321            if (!o || void 0 === a) return !1;
322            if ("string" == typeof a) {
323                if (o.matches) return o.matches(a);
324                if (o.webkitMatchesSelector) return o.webkitMatchesSelector(a);
325                if (o.msMatchesSelector) return o.msMatchesSelector(a);
326                for (r = s(a), n = 0; n < r.length; n += 1) if (r[n] === o) return !0;
327                return !1;
328            }
329            if (a === e) return o === e;
330            if (a === t) return o === t;
331            if (a.nodeType || a instanceof i) {
332                for (r = a.nodeType ? [a] : a, n = 0; n < r.length; n += 1) if (r[n] === o) return !0;
333                return !1;
334            }
335            return !1;
336        },
337        index: function () {
338            var e,
339                t = this[0];
340            if (t) {
341                for (e = 0; null !== (t = t.previousSibling); ) 1 === t.nodeType && (e += 1);
342                return e;
343            }
344        },
345        eq: function (e) {
346            if (void 0 === e) return this;
347            var t,
348                s = this.length;
349            return new i(e > s - 1 ? [] : e < 0 ? ((t = s + e) < 0 ? [] : [this[t]]) : [this[e]]);
350        },
351        append: function () {
352            for (var t, s = [], a = arguments.length; a--; ) s[a] = arguments[a];
353            for (var r = 0; r < s.length; r += 1) {
354                t = s[r];
355                for (var n = 0; n < this.length; n += 1)
356                    if ("string" == typeof t) {
357                        var o = e.createElement("div");
358                        for (o.innerHTML = t; o.firstChild; ) this[n].appendChild(o.firstChild);
359                    } else if (t instanceof i) for (var l = 0; l < t.length; l += 1) this[n].appendChild(t[l]);
360                    else this[n].appendChild(t);
361            }
362            return this;
363        },
364        prepend: function (t) {
365            var s, a;
366            for (s = 0; s < this.length; s += 1)
367                if ("string" == typeof t) {
368                    var r = e.createElement("div");
369                    for (r.innerHTML = t, a = r.childNodes.length - 1; a >= 0; a -= 1) this[s].insertBefore(r.childNodes[a], this[s].childNodes[0]);
370                } else if (t instanceof i) for (a = 0; a < t.length; a += 1) this[s].insertBefore(t[a], this[s].childNodes[0]);
371                else this[s].insertBefore(t, this[s].childNodes[0]);
372            return this;
373        },
374        next: function (e) {
375            return this.length > 0
376                ? e
377                    ? this[0].nextElementSibling && s(this[0].nextElementSibling).is(e)
378                        ? new i([this[0].nextElementSibling])
379                        : new i([])
380                    : this[0].nextElementSibling
381                    ? new i([this[0].nextElementSibling])
382                    : new i([])
383                : new i([]);
384        },
385        nextAll: function (e) {
386            var t = [],
387                a = this[0];
388            if (!a) return new i([]);
389            for (; a.nextElementSibling; ) {
390                var r = a.nextElementSibling;
391                e ? s(r).is(e) && t.push(r) : t.push(r), (a = r);
392            }
393            return new i(t);
394        },
395        prev: function (e) {
396            if (this.length > 0) {
397                var t = this[0];
398                return e ? (t.previousElementSibling && s(t.previousElementSibling).is(e) ? new i([t.previousElementSibling]) : new i([])) : t.previousElementSibling ? new i([t.previousElementSibling]) : new i([]);
399            }
400            return new i([]);
401        },
402        prevAll: function (e) {
403            var t = [],
404                a = this[0];
405            if (!a) return new i([]);
406            for (; a.previousElementSibling; ) {
407                var r = a.previousElementSibling;
408                e ? s(r).is(e) && t.push(r) : t.push(r), (a = r);
409            }
410            return new i(t);
411        },
412        parent: function (e) {
413            for (var t = [], i = 0; i < this.length; i += 1) null !== this[i].parentNode && (e ? s(this[i].parentNode).is(e) && t.push(this[i].parentNode) : t.push(this[i].parentNode));
414            return s(a(t));
415        },
416        parents: function (e) {
417            for (var t = [], i = 0; i < this.length; i += 1) for (var r = this[i].parentNode; r; ) e ? s(r).is(e) && t.push(r) : t.push(r), (r = r.parentNode);
418            return s(a(t));
419        },
420        closest: function (e) {
421            var t = this;
422            return void 0 === e ? new i([]) : (t.is(e) || (t = t.parents(e).eq(0)), t);
423        },
424        find: function (e) {
425            for (var t = [], s = 0; s < this.length; s += 1) for (var a = this[s].querySelectorAll(e), r = 0; r < a.length; r += 1) t.push(a[r]);
426            return new i(t);
427        },
428        children: function (e) {
429            for (var t = [], r = 0; r < this.length; r += 1) for (var n = this[r].childNodes, o = 0; o < n.length; o += 1) e ? 1 === n[o].nodeType && s(n[o]).is(e) && t.push(n[o]) : 1 === n[o].nodeType && t.push(n[o]);
430            return new i(a(t));
431        },
432        filter: function (e) {
433            for (var t = [], s = 0; s < this.length; s += 1) e.call(this[s], s, this[s]) && t.push(this[s]);
434            return new i(t);
435        },
436        remove: function () {
437            for (var e = 0; e < this.length; e += 1) this[e].parentNode && this[e].parentNode.removeChild(this[e]);
438            return this;
439        },
440        add: function () {
441            for (var e = [], t = arguments.length; t--; ) e[t] = arguments[t];
442            var i,
443                a,
444                r = this;
445            for (i = 0; i < e.length; i += 1) {
446                var n = s(e[i]);
447                for (a = 0; a < n.length; a += 1) (r[r.length] = n[a]), (r.length += 1);
448            }
449            return r;
450        },
451        styles: function () {
452            return this[0] ? t.getComputedStyle(this[0], null) : {};
453        },
454    };
455    Object.keys(r).forEach(function (e) {
456        s.fn[e] = s.fn[e] || r[e];
457    });
458    var n = {
459            deleteProps: function (e) {
460                var t = e;
461                Object.keys(t).forEach(function (e) {
462                    try {
463                        t[e] = null;
464                    } catch (e) {}
465                    try {
466                        delete t[e];
467                    } catch (e) {}
468                });
469            },
470            nextTick: function (e, t) {
471                return void 0 === t && (t = 0), setTimeout(e, t);
472            },
473            now: function () {
474                return Date.now();
475            },
476            getTranslate: function (e, i) {
477                var s, a, r;
478                void 0 === i && (i = "x");
479                var n = t.getComputedStyle(e, null);
480                return (
481                    t.WebKitCSSMatrix
482                        ? ((a = n.transform || n.webkitTransform).split(",").length > 6 &&
483                              (a = a
484                                  .split(", ")
485                                  .map(function (e) {
486                                      return e.replace(",", ".");
487                                  })
488                                  .join(", ")),
489                          (r = new t.WebKitCSSMatrix("none" === a ? "" : a)))
490                        : (s = (r = n.MozTransform || n.OTransform || n.MsTransform || n.msTransform || n.transform || n.getPropertyValue("transform").replace("translate(", "matrix(1, 0, 0, 1,")).toString().split(",")),
491                    "x" === i && (a = t.WebKitCSSMatrix ? r.m41 : 16 === s.length ? parseFloat(s[12]) : parseFloat(s[4])),
492                    "y" === i && (a = t.WebKitCSSMatrix ? r.m42 : 16 === s.length ? parseFloat(s[13]) : parseFloat(s[5])),
493                    a || 0
494                );
495            },
496            parseUrlQuery: function (e) {
497                var i,
498                    s,
499                    a,
500                    r,
501                    n = {},
502                    o = e || t.location.href;
503                if ("string" == typeof o && o.length)
504                    for (
505                        r = (s = (o = o.indexOf("?") > -1 ? o.replace(/\S*\?/, "") : "").split("&").filter(function (e) {
506                            return "" !== e;
507                        })).length,
508                            i = 0;
509                        i < r;
510                        i += 1
511                    )
512                        (a = s[i].replace(/#\S+/g, "").split("=")), (n[decodeURIComponent(a[0])] = void 0 === a[1] ? void 0 : decodeURIComponent(a[1]) || "");
513                return n;
514            },
515            isObject: function (e) {
516                return "object" == typeof e && null !== e && e.constructor && e.constructor === Object;
517            },
518            extend: function () {
519                for (var e = [], t = arguments.length; t--; ) e[t] = arguments[t];
520                for (var i = Object(e[0]), s = 1; s < e.length; s += 1) {
521                    var a = e[s];
522                    if (null != a)
523                        for (var r = Object.keys(Object(a)), o = 0, l = r.length; o < l; o += 1) {
524                            var d = r[o],
525                                h = Object.getOwnPropertyDescriptor(a, d);
526                            void 0 !== h && h.enumerable && (n.isObject(i[d]) && n.isObject(a[d]) ? n.extend(i[d], a[d]) : !n.isObject(i[d]) && n.isObject(a[d]) ? ((i[d] = {}), n.extend(i[d], a[d])) : (i[d] = a[d]));
527                        }
528                }
529                return i;
530            },
531        },
532        o = {
533            touch: (t.Modernizr && !0 === t.Modernizr.touch) || !!(t.navigator.maxTouchPoints > 0 || "ontouchstart" in t || (t.DocumentTouch && e instanceof t.DocumentTouch)),
534            pointerEvents: !!t.PointerEvent && "maxTouchPoints" in t.navigator && t.navigator.maxTouchPoints > 0,
535            observer: "MutationObserver" in t || "WebkitMutationObserver" in t,
536            passiveListener: (function () {
537                var e = !1;
538                try {
539                    var i = Object.defineProperty({}, "passive", {
540                        get: function () {
541                            e = !0;
542                        },
543                    });
544                    t.addEventListener("testPassiveListener", null, i);
545                } catch (e) {}
546                return e;
547            })(),
548            gestures: "ongesturestart" in t,
549        },
550        l = function (e) {
551            void 0 === e && (e = {});
552            var t = this;
553            (t.params = e),
554                (t.eventsListeners = {}),
555                t.params &&
556                    t.params.on &&
557                    Object.keys(t.params.on).forEach(function (e) {
558                        t.on(e, t.params.on[e]);
559                    });
560        },
561        d = { components: { configurable: !0 } };
562    (l.prototype.on = function (e, t, i) {
563        var s = this;
564        if ("function" != typeof t) return s;
565        var a = i ? "unshift" : "push";
566        return (
567            e.split(" ").forEach(function (e) {
568                s.eventsListeners[e] || (s.eventsListeners[e] = []), s.eventsListeners[e][a](t);
569            }),
570            s
571        );
572    }),
573        (l.prototype.once = function (e, t, i) {
574            var s = this;
575            if ("function" != typeof t) return s;
576            function a() {
577                for (var i = [], r = arguments.length; r--; ) i[r] = arguments[r];
578                s.off(e, a), a.f7proxy && delete a.f7proxy, t.apply(s, i);
579            }
580            return (a.f7proxy = t), s.on(e, a, i);
581        }),
582        (l.prototype.off = function (e, t) {
583            var i = this;
584            return i.eventsListeners
585                ? (e.split(" ").forEach(function (e) {
586                      void 0 === t
587                          ? (i.eventsListeners[e] = [])
588                          : i.eventsListeners[e] &&
589                            i.eventsListeners[e].length &&
590                            i.eventsListeners[e].forEach(function (s, a) {
591                                (s === t || (s.f7proxy && s.f7proxy === t)) && i.eventsListeners[e].splice(a, 1);
592                            });
593                  }),
594                  i)
595                : i;
596        }),
597        (l.prototype.emit = function () {
598            for (var e = [], t = arguments.length; t--; ) e[t] = arguments[t];
599            var i,
600                s,
601                a,
602                r = this;
603            if (!r.eventsListeners) return r;
604            "string" == typeof e[0] || Array.isArray(e[0]) ? ((i = e[0]), (s = e.slice(1, e.length)), (a = r)) : ((i = e[0].events), (s = e[0].data), (a = e[0].context || r));
605            var n = Array.isArray(i) ? i : i.split(" ");
606            return (
607                n.forEach(function (e) {
608                    if (r.eventsListeners && r.eventsListeners[e]) {
609                        var t = [];
610                        r.eventsListeners[e].forEach(function (e) {
611                            t.push(e);
612                        }),
613                            t.forEach(function (e) {
614                                e.apply(a, s);
615                            });
616                    }
617                }),
618                r
619            );
620        }),
621        (l.prototype.useModulesParams = function (e) {
622            var t = this;
623            t.modules &&
624                Object.keys(t.modules).forEach(function (i) {
625                    var s = t.modules[i];
626                    s.params && n.extend(e, s.params);
627                });
628        }),
629        (l.prototype.useModules = function (e) {
630            void 0 === e && (e = {});
631            var t = this;
632            t.modules &&
633                Object.keys(t.modules).forEach(function (i) {
634                    var s = t.modules[i],
635                        a = e[i] || {};
636                    s.instance &&
637                        Object.keys(s.instance).forEach(function (e) {
638                            var i = s.instance[e];
639                            t[e] = "function" == typeof i ? i.bind(t) : i;
640                        }),
641                        s.on &&
642                            t.on &&
643                            Object.keys(s.on).forEach(function (e) {
644                                t.on(e, s.on[e]);
645                            }),
646                        s.create && s.create.bind(t)(a);
647                });
648        }),
649        (d.components.set = function (e) {
650            this.use && this.use(e);
651        }),
652        (l.installModule = function (e) {
653            for (var t = [], i = arguments.length - 1; i-- > 0; ) t[i] = arguments[i + 1];
654            var s = this;
655            s.prototype.modules || (s.prototype.modules = {});
656            var a = e.name || Object.keys(s.prototype.modules).length + "_" + n.now();
657            return (
658                (s.prototype.modules[a] = e),
659                e.proto &&
660                    Object.keys(e.proto).forEach(function (t) {
661                        s.prototype[t] = e.proto[t];
662                    }),
663                e.static &&
664                    Object.keys(e.static).forEach(function (t) {
665                        s[t] = e.static[t];
666                    }),
667                e.install && e.install.apply(s, t),
668                s
669            );
670        }),
671        (l.use = function (e) {
672            for (var t = [], i = arguments.length - 1; i-- > 0; ) t[i] = arguments[i + 1];
673            var s = this;
674            return Array.isArray(e)
675                ? (e.forEach(function (e) {
676                      return s.installModule(e);
677                  }),
678                  s)
679                : s.installModule.apply(s, [e].concat(t));
680        }),
681        Object.defineProperties(l, d);
682    var h = {
683        updateSize: function () {
684            var e,
685                t,
686                i = this.$el;
687            (e = void 0 !== this.params.width ? this.params.width : i[0].clientWidth),
688                (t = void 0 !== this.params.height ? this.params.height : i[0].clientHeight),
689                (0 === e && this.isHorizontal()) ||
690                    (0 === t && this.isVertical()) ||
691                    ((e = e - parseInt(i.css("padding-left"), 10) - parseInt(i.css("padding-right"), 10)),
692                    (t = t - parseInt(i.css("padding-top"), 10) - parseInt(i.css("padding-bottom"), 10)),
693                    n.extend(this, { width: e, height: t, size: this.isHorizontal() ? e : t }));
694        },
695        updateSlides: function () {
696            var e = this.params,
697                i = this.$wrapperEl,
698                s = this.size,
699                a = this.rtlTranslate,
700                r = this.wrongRTL,
701                o = this.virtual && e.virtual.enabled,
702                l = o ? this.virtual.slides.length : this.slides.length,
703                d = i.children("." + this.params.slideClass),
704                h = o ? this.virtual.slides.length : d.length,
705                p = [],
706                c = [],
707                u = [];
708            function v(t) {
709                return !e.cssMode || t !== d.length - 1;
710            }
711            var f = e.slidesOffsetBefore;
712            "function" == typeof f && (f = e.slidesOffsetBefore.call(this));
713            var m = e.slidesOffsetAfter;
714            "function" == typeof m && (m = e.slidesOffsetAfter.call(this));
715            var g = this.snapGrid.length,
716                b = this.snapGrid.length,
717                w = e.spaceBetween,
718                y = -f,
719                x = 0,
720                T = 0;
721            if (void 0 !== s) {
722                var E, S;
723                "string" == typeof w && w.indexOf("%") >= 0 && (w = (parseFloat(w.replace("%", "")) / 100) * s),
724                    (this.virtualSize = -w),
725                    a ? d.css({ marginLeft: "", marginTop: "" }) : d.css({ marginRight: "", marginBottom: "" }),
726                    e.slidesPerColumn > 1 &&
727                        ((E = Math.floor(h / e.slidesPerColumn) === h / this.params.slidesPerColumn ? h : Math.ceil(h / e.slidesPerColumn) * e.slidesPerColumn),
728                        "auto" !== e.slidesPerView && "row" === e.slidesPerColumnFill && (E = Math.max(E, e.slidesPerView * e.slidesPerColumn)));
729                for (var C, M = e.slidesPerColumn, P = E / M, z = Math.floor(h / e.slidesPerColumn), k = 0; k < h; k += 1) {
730                    S = 0;
731                    var $ = d.eq(k);
732                    if (e.slidesPerColumn > 1) {
733                        var L = void 0,
734                            I = void 0,
735                            D = void 0;
736                        if ("row" === e.slidesPerColumnFill && e.slidesPerGroup > 1) {
737                            var O = Math.floor(k / (e.slidesPerGroup * e.slidesPerColumn)),
738                                A = k - e.slidesPerColumn * e.slidesPerGroup * O,
739                                G = 0 === O ? e.slidesPerGroup : Math.min(Math.ceil((h - O * M * e.slidesPerGroup) / M), e.slidesPerGroup);
740                            (L = (I = A - (D = Math.floor(A / G)) * G + O * e.slidesPerGroup) + (D * E) / M), $.css({ "
740-webkit-box-ordinal-group": L, "-moz-box-ordinal-group": L, "-ms-flex-order": L, "-webkit-order": L, order: L });
741                        } else "column" === e.slidesPerColumnFill ? ((D = k - (I = Math.floor(k / M)) * M), (I > z || (I === z && D === M - 1)) && (D += 1) >= M && ((D = 0), (I += 1))) : (I = k - (D = Math.floor(k / P)) * P);
742                        $.css("margin-" + (this.isHorizontal() ? "top" : "left"), 0 !== D && e.spaceBetween && e.spaceBetween + "px");
743                    }
744                    if ("none" !== $.css("display")) {
745                        if ("auto" === e.slidesPerView) {
746                            var H = t.getComputedStyle($[0], null),
747                                B = $[0].style.transform,
748                                N = $[0].style.webkitTransform;
749                            if ((B && ($[0].style.transform = "none"), N && ($[0].style.webkitTransform = "none"), e.roundLengths)) S = this.isHorizontal() ? $.outerWidth(!0) : $.outerHeight(!0);
750                            else if (this.isHorizontal()) {
751                                var X = parseFloat(H.getPropertyValue("width")),
752                                    V = parseFloat(H.getPropertyValue("padding-left")),
753                                    Y = parseFloat(H.getPropertyValue("padding-right")),
754                                    F = parseFloat(H.getPropertyValue("margin-left")),
755                                    W = parseFloat(H.getPropertyValue("margin-right")),
756                                    R = H.getPropertyValue("box-sizing");
757                                S = R && "border-box" === R ? X + F + W : X + V + Y + F + W;
758                            } else {
759                                var q = parseFloat(H.getPropertyValue("height")),
760                                    j = parseFloat(H.getPropertyValue("padding-top")),
761                                    K = parseFloat(H.getPropertyValue("padding-bottom")),
762                                    U = parseFloat(H.getPropertyValue("margin-top")),
763                                    _ = parseFloat(H.getPropertyValue("margin-bottom")),
764                                    Z = H.getPropertyValue("box-sizing");
765                                S = Z && "border-box" === Z ? q + U + _ : q + j + K + U + _;
766                            }
767                            B && ($[0].style.transform = B), N && ($[0].style.webkitTransform = N), e.roundLengths && (S = Math.floor(S));
768                        } else (S = (s - (e.slidesPerView - 1) * w) / e.slidesPerView), e.roundLengths && (S = Math.floor(S)), d[k] && (this.isHorizontal() ? (d[k].style.width = S + "px") : (d[k].style.height = S + "px"));
769                        d[k] && (d[k].swiperSlideSize = S),
770                            u.push(S),
771                            e.centeredSlides
772                                ? ((y = y + S / 2 + x / 2 + w),
773                                  0 === x && 0 !== k && (y = y - s / 2 - w),
774                                  0 === k && (y = y - s / 2 - w),
775                                  Math.abs(y) < 0.001 && (y = 0),
776                                  e.roundLengths && (y = Math.floor(y)),
777                                  T % e.slidesPerGroup == 0 && p.push(y),
778                                  c.push(y))
779                                : (e.roundLengths && (y = Math.floor(y)), (T - Math.min(this.params.slidesPerGroupSkip, T)) % this.params.slidesPerGroup == 0 && p.push(y), c.push(y), (y = y + S + w)),
780                            (this.virtualSize += S + w),
781                            (x = S),
782                            (T += 1);
783                    }
784                }
785                if (
786                    ((this.virtualSize = Math.max(this.virtualSize, s) + m),
787                    a && r && ("slide" === e.effect || "coverflow" === e.effect) && i.css({ width: this.virtualSize + e.spaceBetween + "px" }),
788                    e.setWrapperSize && (this.isHorizontal() ? i.css({ width: this.virtualSize + e.spaceBetween + "px" }) : i.css({ height: this.virtualSize + e.spaceBetween + "px" })),
789                    e.slidesPerColumn > 1 &&
790                        ((this.virtualSize = (S + e.spaceBetween) * E),
791                        (this.virtualSize = Math.ceil(this.virtualSize / e.slidesPerColumn) - e.spaceBetween),
792                        this.isHorizontal() ? i.css({ width: this.virtualSize + e.spaceBetween + "px" }) : i.css({ height: this.virtualSize + e.spaceBetween + "px" }),
793                        e.centeredSlides))
794                ) {
795                    C = [];
796                    for (var Q = 0; Q < p.length; Q += 1) {
797                        var J = p[Q];
798                        e.roundLengths && (J = Math.floor(J)), p[Q] < this.virtualSize + p[0] && C.push(J);
799                    }
800                    p = C;
801                }
802                if (!e.centeredSlides) {
803                    C = [];
804                    for (var ee = 0; ee < p.length; ee += 1) {
805                        var te = p[ee];
806                        e.roundLengths && (te = Math.floor(te)), p[ee] <= this.virtualSize - s && C.push(te);
807                    }
808                    (p = C), Math.floor(this.virtualSize - s) - Math.floor(p[p.length - 1]) > 1 && p.push(this.virtualSize - s);
809                }
810                if (
811                    (0 === p.length && (p = [0]),
812                    0 !== e.spaceBetween && (this.isHorizontal() ? (a ? d.filter(v).css({ marginLeft: w + "px" }) : d.filter(v).css({ marginRight: w + "px" })) : d.filter(v).css({ marginBottom: w + "px" })),
813                    e.centeredSlides && e.centeredSlidesBounds)
814                ) {
815                    var ie = 0;
816                    u.forEach(function (t) {
817                        ie += t + (e.spaceBetween ? e.spaceBetween : 0);
818                    });
819                    var se = (ie -= e.spaceBetween) - s;
820                    p = p.map(function (e) {
821                        return e < 0 ? -f : e > se ? se + m : e;
822                    });
823                }
824                if (e.centerInsufficientSlides) {
825                    var ae = 0;
826                    if (
827                        (u.forEach(function (t) {
828                            ae += t + (e.spaceBetween ? e.spaceBetween : 0);
829                        }),
830                        (ae -= e.spaceBetween) < s)
831                    ) {
832                        var re = (s - ae) / 2;
833                        p.forEach(function (e, t) {
834                            p[t] = e - re;
835                        }),
836                            c.forEach(function (e, t) {
837                                c[t] = e + re;
838                            });
839                    }
840                }
841                n.extend(this, { slides: d, snapGrid: p, slidesGrid: c, slidesSizesGrid: u }),
842                    h !== l && this.emit("slidesLengthChange"),
843                    p.length !== g && (this.params.watchOverflow && this.checkOverflow(), this.emit("snapGridLengthChange")),
844                    c.length !== b && this.emit("slidesGridLengthChange"),
845                    (e.watchSlidesProgress || e.watchSlidesVisibility) && this.updateSlidesOffset();
846            }
847        },
848        updateAutoHeight: function (e) {
849            var t,
850                i = [],
851                s = 0;
852            if (("number" == typeof e ? this.setTransition(e) : !0 === e && this.setTransition(this.params.speed), "auto" !== this.params.slidesPerView && this.params.slidesPerView > 1))
853                if (this.params.centeredSlides)
854                    this.visibleSlides.each(function (e, t) {
855                        i.push(t);
856                    });
857                else
858                    for (t = 0; t < Math.ceil(this.params.slidesPerView); t += 1) {
859                        var a = this.activeIndex + t;
860                        if (a > this.slides.length) break;
861                        i.push(this.slides.eq(a)[0]);
862                    }
863            else i.push(this.slides.eq(this.activeIndex)[0]);
864            for (t = 0; t < i.length; t += 1)
865                if (void 0 !== i[t]) {
866                    var r = i[t].offsetHeight;
867                    s = r > s ? r : s;
868                }
869            s && this.$wrapperEl.css("height", s + "px");
870        },
871        updateSlidesOffset: function () {
872            for (var e = this.slides, t = 0; t < e.length; t += 1) e[t].swiperSlideOffset = this.isHorizontal() ? e[t].offsetLeft : e[t].offsetTop;
873        },
874        updateSlidesProgress: function (e) {
875            void 0 === e && (e = (this && this.translate) || 0);
876            var t = this.params,
877                i = this.slides,
878                a = this.rtlTranslate;
879            if (0 !== i.length) {
880                void 0 === i[0].swiperSlideOffset && this.updateSlidesOffset();
881                var r = -e;
882                a && (r = e), i.removeClass(t.slideVisibleClass), (this.visibleSlidesIndexes = []), (this.visibleSlides = []);
883                for (var n = 0; n < i.length; n += 1) {
884                    var o = i[n],
885                        l = (r + (t.centeredSlides ? this.minTranslate() : 0) - o.swiperSlideOffset) / (o.swiperSlideSize + t.spaceBetween);
886                    if (t.watchSlidesVisibility || (t.centeredSlides && t.autoHeight)) {
887                        var d = -(r - o.swiperSlideOffset),
888                            h = d + this.slidesSizesGrid[n];
889                        ((d >= 0 && d < this.size - 1) || (h > 1 && h <= this.size) || (d <= 0 && h >= this.size)) && (this.visibleSlides.push(o), this.visibleSlidesIndexes.push(n), i.eq(n).addClass(t.slideVisibleClass));
890                    }
891                    o.progress = a ? -l : l;
892                }
893                this.visibleSlides = s(this.visibleSlides);
894            }
895        },
896        updateProgress: function (e) {
897            if (void 0 === e) {
898                var t = this.rtlTranslate ? -1 : 1;
899                e = (this && this.translate && this.translate * t) || 0;
900            }
901            var i = this.params,
902                s = this.maxTranslate() - this.minTranslate(),
903                a = this.progress,
904                r = this.isBeginning,
905                o = this.isEnd,
906                l = r,
907                d = o;
908            0 === s ? ((a = 0), (r = !0), (o = !0)) : ((r = (a = (e - this.minTranslate()) / s) <= 0), (o = a >= 1)),
909                n.extend(this, { progress: a, isBeginning: r, isEnd: o }),
910                (i.watchSlidesProgress || i.watchSlidesVisibility || (i.centeredSlides && i.autoHeight)) && this.updateSlidesProgress(e),
911                r && !l && this.emit("reachBeginning toEdge"),
912                o && !d && this.emit("reachEnd toEdge"),
913                ((l && !r) || (d && !o)) && this.emit("fromEdge"),
914                this.emit("progress", a);
915        },
916        updateSlidesClasses: function () {
917            var e,
918                t = this.slides,
919                i = this.params,
920                s = this.$wrapperEl,
921                a = this.activeIndex,
922                r = this.realIndex,
923                n = this.virtual && i.virtual.enabled;
924            t.removeClass(i.slideActiveClass + " " + i.slideNextClass + " " + i.slidePrevClass + " " + i.slideDuplicateActiveClass + " " + i.slideDuplicateNextClass + " " + i.slideDuplicatePrevClass),
925                (e = n ? this.$wrapperEl.find("." + i.slideClass + '[data-swiper-slide-index="' + a + '"]') : t.eq(a)).addClass(i.slideActiveClass),
926                i.loop &&
927                    (e.hasClass(i.slideDuplicateClass)
928                        ? s.children("." + i.slideClass + ":not(." + i.slideDuplicateClass + ')[data-swiper-slide-index="' + r + '"]').addClass(i.slideDuplicateActiveClass)
929                        : s.children("." + i.slideClass + "." + i.slideDuplicateClass + '[data-swiper-slide-index="' + r + '"]').addClass(i.slideDuplicateActiveClass));
930            var o = e
931                .nextAll("." + i.slideClass)
932                .eq(0)
933                .addClass(i.slideNextClass);
934            i.loop && 0 === o.length && (o = t.eq(0)).addClass(i.slideNextClass);
935            var l = e
936                .prevAll("." + i.slideClass)
937                .eq(0)
938                .addClass(i.slidePrevClass);
939            i.loop && 0 === l.length && (l = t.eq(-1)).addClass(i.slidePrevClass),
940                i.loop &&
941                    (o.hasClass(i.slideDuplicateClass)
942                        ? s.children("." + i.slideClass + ":not(." + i.slideDuplicateClass + ')[data-swiper-slide-index="' + o.attr("data-swiper-slide-index") + '"]').addClass(i.slideDuplicateNextClass)
943                        : s.children("." + i.slideClass + "." + i.slideDuplicateClass + '[data-swiper-slide-index="' + o.attr("data-swiper-slide-index") + '"]').addClass(i.slideDuplicateNextClass),
944                    l.hasClass(i.slideDuplicateClass)
945                        ? s.children("." + i.slideClass + ":not(." + i.slideDuplicateClass + ')[data-swiper-slide-index="' + l.attr("data-swiper-slide-index") + '"]').addClass(i.slideDuplicatePrevClass)
946                        : s.children("." + i.slideClass + "." + i.slideDuplicateClass + '[data-swiper-slide-index="' + l.attr("data-swiper-slide-index") + '"]').addClass(i.slideDuplicatePrevClass));
947        },
948        updateActiveIndex: function (e) {
949            var t,
950                i = this.rtlTranslate ? this.translate : -this.translate,
951                s = this.slidesGrid,
952                a = this.snapGrid,
953                r = this.params,
954                o = this.activeIndex,
955                l = this.realIndex,
956                d = this.snapIndex,
957                h = e;
958            if (void 0 === h) {
959                for (var p = 0; p < s.length; p += 1) void 0 !== s[p + 1] ? (i >= s[p] && i < s[p + 1] - (s[p + 1] - s[p]) / 2 ? (h = p) : i >= s[p] && i < s[p + 1] && (h = p + 1)) : i >= s[p] && (h = p);
960                r.normalizeSlideIndex && (h < 0 || void 0 === h) && (h = 0);
961            }
962            if (a.indexOf(i) >= 0) t = a.indexOf(i);
963            else {
964                var c = Math.min(r.slidesPerGroupSkip, h);
965                t = c + Math.floor((h - c) / r.slidesPerGroup);
966            }
967            if ((t >= a.length && (t = a.length - 1), h !== o)) {
968                var u = parseInt(this.slides.eq(h).attr("data-swiper-slide-index") || h, 10);
969                n.extend(this, { snapIndex: t, realIndex: u, previousIndex: o, activeIndex: h }),
970                    this.emit("activeIndexChange"),
971                    this.emit("snapIndexChange"),
972                    l !== u && this.emit("realIndexChange"),
973                    (this.initialized || this.params.runCallbacksOnInit) && this.emit("slideChange");
974            } else t !== d && ((this.snapIndex = t), this.emit("snapIndexChange"));
975        },
976        updateClickedSlide: function (e) {
977            var t = this.params,
978                i = s(e.target).closest("." + t.slideClass)[0],
979                a = !1;
980            if (i) for (var r = 0; r < this.slides.length; r += 1) this.slides[r] === i && (a = !0);
981            if (!i || !a) return (this.clickedSlide = void 0), void (this.clickedIndex = void 0);
982            (this.clickedSlide = i),
983                this.virtual && this.params.virtual.enabled ? (this.clickedIndex = parseInt(s(i).attr("data-swiper-slide-index"), 10)) : (this.clickedIndex = s(i).index()),
984                t.slideToClickedSlide && void 0 !== this.clickedIndex && this.clickedIndex !== this.activeIndex && this.slideToClickedSlide();
985        },
986    };
987    var p = {
988        getTranslate: function (e) {
989            void 0 === e && (e = this.isHorizontal() ? "x" : "y");
990            var t = this.params,
991                i = this.rtlTranslate,
992                s = this.translate,
993                a = this.$wrapperEl;
994            if (t.virtualTranslate) return i ? -s : s;
995            if (t.cssMode) return s;
996            var r = n.getTranslate(a[0], e);
997            return i && (r = -r), r || 0;
998        },
999        setTranslate: function (e, t) {
1000            var i = this.rtlTranslate,
1001                s = this.params,
1002                a = this.$wrapperEl,
1003                r = this.wrapperEl,
1004                n = this.progress,
1005                o = 0,
1006                l = 0;
1007            this.isHorizontal() ? (o = i ? -e : e) : (l = e),
1008                s.roundLengths && ((o = Math.floor(o)), (l = Math.floor(l))),
1009                s.cssMode ? (r[this.isHorizontal() ? "scrollLeft" : "scrollTop"] = this.isHorizontal() ? -o : -l) : s.virtualTranslate || a.transform("translate3d(" + o + "px, " + l + "px, 0px)"),
1010                (this.previousTranslate = this.translate),
1011                (this.translate = this.isHorizontal() ? o : l);
1012            var d = this.maxTranslate() - this.minTranslate();
1013            (0 === d ? 0 : (e - this.minTranslate()) / d) !== n && this.updateProgress(e), this.emit("setTranslate", this.translate, t);
1014        },
1015        minTranslate: function () {
1016            return -this.snapGrid[0];
1017        },
1018        maxTranslate: function () {
1019            return -this.snapGrid[this.snapGrid.length - 1];
1020        },
1021        translateTo: function (e, t, i, s, a) {
1022            var r;
1023            void 0 === e && (e = 0), void 0 === t && (t = this.params.speed), void 0 === i && (i = !0), void 0 === s && (s = !0);
1024            var n = this,
1025                o = n.params,
1026                l = n.wrapperEl;
1027            if (n.animating && o.preventInteractionOnTransition) return !1;
1028            var d,
1029                h = n.minTranslate(),
1030                p = n.maxTranslate();
1031            if (((d = s && e > h ? h : s && e < p ? p : e), n.updateProgress(d), o.cssMode)) {
1032                var c = n.isHorizontal();
1033                return 0 === t ? (l[c ? "scrollLeft" : "scrollTop"] = -d) : l.scrollTo ? l.scrollTo((((r = {})[c ? "left" : "top"] = -d), (r.behavior = "smooth"), r)) : (l[c ? "scrollLeft" : "scrollTop"] = -d), !0;
1034            }
1035            return (
1036                0 === t
1037                    ? (n.setTransition(0), n.setTranslate(d), i && (n.emit("beforeTransitionStart", t, a), n.emit("transitionEnd")))
1038                    : (n.setTransition(t),
1039                      n.setTranslate(d),
1040                      i && (n.emit("beforeTransitionStart", t, a), n.emit("transitionStart")),
1041                      n.animating ||
1042                          ((n.animating = !0),
1043                          n.onTranslateToWrapperTransitionEnd ||
1044                              (n.onTranslateToWrapperTransitionEnd = function (e) {
1045                                  n &&
1046                                      !n.destroyed &&
1047                                      e.target === this &&
1048                                      (n.$wrapperEl[0].removeEventListener("transitionend", n.onTranslateToWrapperTransitionEnd),
1049                                      n.$wrapperEl[0].removeEventListener("webkitTransitionEnd", n.onTranslateToWrapperTransitionEnd),
1050                                      (n.onTranslateToWrapperTransitionEnd = null),
1051                                      delete n.onTranslateToWrapperTransitionEnd,
1052                                      i && n.emit("transitionEnd"));
1053                              }),
1054                          n.$wrapperEl[0].addEventListener("transitionend", n.onTranslateToWrapperTransitionEnd),
1055                          n.$wrapperEl[0].addEventListener("webkitTransitionEnd", n.onTranslateToWrapperTransitionEnd))),
1056                !0
1057            );
1058        },
1059    };
1060    var c = {
1061        setTransition: function (e, t) {
1062            this.params.cssMode || this.$wrapperEl.transition(e), this.emit
1062("setTransition", e, t);
1063        },
1064        transitionStart: function (e, t) {
1065            void 0 === e && (e = !0);
1066            var i = this.activeIndex,
1067                s = this.params,
1068                a = this.previousIndex;
1069            if (!s.cssMode) {
1070                s.autoHeight && this.updateAutoHeight();
1071                var r = t;
1072                if ((r || (r = i > a ? "next" : i < a ? "prev" : "reset"), this.emit("transitionStart"), e && i !== a)) {
1073                    if ("reset" === r) return void this.emit("slideResetTransitionStart");
1074                    this.emit("slideChangeTransitionStart"), "next" === r ? this.emit("slideNextTransitionStart") : this.emit("slidePrevTransitionStart");
1075                }
1076            }
1077        },
1078        transitionEnd: function (e, t) {
1079            void 0 === e && (e = !0);
1080            var i = this.activeIndex,
1081                s = this.previousIndex,
1082                a = this.params;
1083            if (((this.animating = !1), !a.cssMode)) {
1084                this.setTransition(0);
1085                var r = t;
1086                if ((r || (r = i > s ? "next" : i < s ? "prev" : "reset"), this.emit("transitionEnd"), e && i !== s)) {
1087                    if ("reset" === r) return void this.emit("slideResetTransitionEnd");
1088                    this.emit("slideChangeTransitionEnd"), "next" === r ? this.emit("slideNextTransitionEnd") : this.emit("slidePrevTransitionEnd");
1089                }
1090            }
1091        },
1092    };
1093    var u = {
1094        slideTo: function (e, t, i, s) {
1095            var a;
1096            void 0 === e && (e = 0), void 0 === t && (t = this.params.speed), void 0 === i && (i = !0);
1097            var r = this,
1098                n = e;
1099            n < 0 && (n = 0);
1100            var o = r.params,
1101                l = r.snapGrid,
1102                d = r.slidesGrid,
1103                h = r.previousIndex,
1104                p = r.activeIndex,
1105                c = r.rtlTranslate,
1106                u = r.wrapperEl;
1107            if (r.animating && o.preventInteractionOnTransition) return !1;
1108            var v = Math.min(r.params.slidesPerGroupSkip, n),
1109                f = v + Math.floor((n - v) / r.params.slidesPerGroup);
1110            f >= l.length && (f = l.length - 1), (p || o.initialSlide || 0) === (h || 0) && i && r.emit("beforeSlideChangeStart");
1111            var m,
1112                g = -l[f];
1113            if ((r.updateProgress(g), o.normalizeSlideIndex)) for (var b = 0; b < d.length; b += 1) -Math.floor(100 * g) >= Math.floor(100 * d[b]) && (n = b);
1114            if (r.initialized && n !== p) {
1115                if (!r.allowSlideNext && g < r.translate && g < r.minTranslate()) return !1;
1116                if (!r.allowSlidePrev && g > r.translate && g > r.maxTranslate() && (p || 0) !== n) return !1;
1117            }
1118            if (((m = n > p ? "next" : n < p ? "prev" : "reset"), (c && -g === r.translate) || (!c && g === r.translate)))
1119                return r.updateActiveIndex(n), o.autoHeight && r.updateAutoHeight(), r.updateSlidesClasses(), "slide" !== o.effect && r.setTranslate(g), "reset" !== m && (r.transitionStart(i, m), r.transitionEnd(i, m)), !1;
1120            if (o.cssMode) {
1121                var w = r.isHorizontal(),
1122                    y = -g;
1123                return (
1124                    c && (y = u.scrollWidth - u.offsetWidth - y),
1125                    0 === t ? (u[w ? "scrollLeft" : "scrollTop"] = y) : u.scrollTo ? u.scrollTo((((a = {})[w ? "left" : "top"] = y), (a.behavior = "smooth"), a)) : (u[w ? "scrollLeft" : "scrollTop"] = y),
1126                    !0
1127                );
1128            }
1129            return (
1130                0 === t
1131                    ? (r.setTransition(0), r.setTranslate(g), r.updateActiveIndex(n), r.updateSlidesClasses(), r.emit("beforeTransitionStart", t, s), r.transitionStart(i, m), r.transitionEnd(i, m))
1132                    : (r.setTransition(t),
1133                      r.setTranslate(g),
1134                      r.updateActiveIndex(n),
1135                      r.updateSlidesClasses(),
1136                      r.emit("beforeTransitionStart", t, s),
1137                      r.transitionStart(i, m),
1138                      r.animating ||
1139                          ((r.animating = !0),
1140                          r.onSlideToWrapperTransitionEnd ||
1141                              (r.onSlideToWrapperTransitionEnd = function (e) {
1142                                  r &&
1143                                      !r.destroyed &&
1144                                      e.target === this &&
1145                                      (r.$wrapperEl[0].removeEventListener("transitionend", r.onSlideToWrapperTransitionEnd),
1146                                      r.$wrapperEl[0].removeEventListener("webkitTransitionEnd", r.onSlideToWrapperTransitionEnd),
1147                                      (r.onSlideToWrapperTransitionEnd = null),
1148                                      delete r.onSlideToWrapperTransitionEnd,
1149                                      r.transitionEnd(i, m));
1150                              }),
1151                          r.$wrapperEl[0].addEventListener("transitionend", r.onSlideToWrapperTransitionEnd),
1152                          r.$wrapperEl[0].addEventListener("webkitTransitionEnd", r.onSlideToWrapperTransitionEnd))),
1153                !0
1154            );
1155        },
1156        slideToLoop: function (e, t, i, s) {
1157            void 0 === e && (e = 0), void 0 === t && (t = this.params.speed), void 0 === i && (i = !0);
1158            var a = e;
1159            return this.params.loop && (a += this.loopedSlides), this.slideTo(a, t, i, s);
1160        },
1161        slideNext: function (e, t, i) {
1162            void 0 === e && (e = this.params.speed), void 0 === t && (t = !0);
1163            var s = this.params,
1164                a = this.animating,
1165                r = this.activeIndex < s.slidesPerGroupSkip ? 1 : s.slidesPerGroup;
1166            if (s.loop) {
1167                if (a) return !1;
1168                this.loopFix(), (this._clientLeft = this.$wrapperEl[0].clientLeft);
1169            }
1170            return this.slideTo(this.activeIndex + r, e, t, i);
1171        },
1172        slidePrev: function (e, t, i) {
1173            void 0 === e && (e = this.params.speed), void 0 === t && (t = !0);
1174            var s = this.params,
1175                a = this.animating,
1176                r = this.snapGrid,
1177                n = this.slidesGrid,
1178                o = this.rtlTranslate;
1179            if (s.loop) {
1180                if (a) return !1;
1181                this.loopFix(), (this._clientLeft = this.$wrapperEl[0].clientLeft);
1182            }
1183            function l(e) {
1184                return e < 0 ? -Math.floor(Math.abs(e)) : Math.floor(e);
1185            }
1186            var d,
1187                h = l(o ? this.translate : -this.translate),
1188                p = r.map(function (e) {
1189                    return l(e);
1190                }),
1191                c =
1192                    (n.map(function (e) {
1193                        return l(e);
1194                    }),
1195                    r[p.indexOf(h)],
1196                    r[p.indexOf(h) - 1]);
1197            return (
1198                void 0 === c &&
1199                    s.cssMode &&
1200                    r.forEach(function (e) {
1201                        !c && h >= e && (c = e);
1202                    }),
1203                void 0 !== c && (d = n.indexOf(c)) < 0 && (d = this.activeIndex - 1),
1204                this.slideTo(d, e, t, i)
1205            );
1206        },
1207        slideReset: function (e, t, i) {
1208            return void 0 === e && (e = this.params.speed), void 0 === t && (t = !0), this.slideTo(this.activeIndex, e, t, i);
1209        },
1210        slideToClosest: function (e, t, i, s) {
1211            void 0 === e && (e = this.params.speed), void 0 === t && (t = !0), void 0 === s && (s = 0.5);
1212            var a = this.activeIndex,
1213                r = Math.min(this.params.slidesPerGroupSkip, a),
1214                n = r + Math.floor((a - r) / this.params.slidesPerGroup),
1215                o = this.rtlTranslate ? this.translate : -this.translate;
1216            if (o >= this.snapGrid[n]) {
1217                var l = this.snapGrid[n];
1218                o - l > (this.snapGrid[n + 1] - l) * s && (a += this.params.slidesPerGroup);
1219            } else {
1220                var d = this.snapGrid[n - 1];
1221                o - d <= (this.snapGrid[n] - d) * s && (a -= this.params.slidesPerGroup);
1222            }
1223            return (a = Math.max(a, 0)), (a = Math.min(a, this.slidesGrid.length - 1)), this.slideTo(a, e, t, i);
1224        },
1225        slideToClickedSlide: function () {
1226            var e,
1227                t = this,
1228                i = t.params,
1229                a = t.$wrapperEl,
1230                r = "auto" === i.slidesPerView ? t.slidesPerViewDynamic() : i.slidesPerView,
1231                o = t.clickedIndex;
1232            if (i.loop) {
1233                if (t.animating) return;
1234                (e = parseInt(s(t.clickedSlide).attr("data-swiper-slide-index"), 10)),
1235                    i.centeredSlides
1236                        ? o < t.loopedSlides - r / 2 || o > t.slides.length - t.loopedSlides + r / 2
1237                            ? (t.loopFix(),
1238                              (o = a
1239                                  .children("." + i.slideClass + '[data-swiper-slide-index="' + e + '"]:not(.' + i.slideDuplicateClass + ")")
1240                                  .eq(0)
1241                                  .index()),
1242                              n.nextTick(function () {
1243                                  t.slideTo(o);
1244                              }))
1245                            : t.slideTo(o)
1246                        : o > t.slides.length - r
1247                        ? (t.loopFix(),
1248                          (o = a
1249                              .children("." + i.slideClass + '[data-swiper-slide-index="' + e + '"]:not(.' + i.slideDuplicateClass + ")")
1250                              .eq(0)
1251                              .index()),
1252                          n.nextTick(function () {
1253                              t.slideTo(o);
1254                          }))
1255                        : t.slideTo(o);
1256            } else t.slideTo(o);
1257        },
1258    };
1259    var v = {
1260        loopCreate: function () {
1261            var t = this,
1262                i = t.params,
1263                a = t.$wrapperEl;
1264            a.children("." + i.slideClass + "." + i.slideDuplicateClass).remove();
1265            var r = a.children("." + i.slideClass);
1266            if (i.loopFillGroupWithBlank) {
1267                var n = i.slidesPerGroup - (r.length % i.slidesPerGroup);
1268                if (n !== i.slidesPerGroup) {
1269                    for (var o = 0; o < n; o += 1) {
1270                        var l = s(e.createElement("div")).addClass(i.slideClass + " " + i.slideBlankClass);
1271                        a.append(l);
1272                    }
1273                    r = a.children("." + i.slideClass);
1274                }
1275            }
1276            "auto" !== i.slidesPerView || i.loopedSlides || (i.loopedSlides = r.length),
1277                (t.loopedSlides = Math.ceil(parseFloat(i.loopedSlides || i.slidesPerView, 10))),
1278                (t.loopedSlides += i.loopAdditionalSlides),
1279                t.loopedSlides > r.length && (t.loopedSlides = r.length);
1280            var d = [],
1281                h = [];
1282            r.each(function (e, i) {
1283                var a = s(i);
1284                e < t.loopedSlides && h.push(i), e < r.length && e >= r.length - t.loopedSlides && d.push(i), a.attr("data-swiper-slide-index", e);
1285            });
1286            for (var p = 0; p < h.length; p += 1) a.append(s(h[p].cloneNode(!0)).addClass(i.slideDuplicateClass));
1287            for (var c = d.length - 1; c >= 0; c -= 1) a.prepend(s(d[c].cloneNode(!0)).addClass(i.slideDuplicateClass));
1288        },
1289        loopFix: function () {
1290            this.emit("beforeLoopFix");
1291            var e,
1292                t = this.activeIndex,
1293                i = this.slides,
1294                s = this.loopedSlides,
1295                a = this.allowSlidePrev,
1296                r = this.allowSlideNext,
1297                n = this.snapGrid,
1298                o = this.rtlTranslate;
1299            (this.allowSlidePrev = !0), (this.allowSlideNext = !0);
1300            var l = -n[t] - this.getTranslate();
1301            if (t < s) (e = i.length - 3 * s + t), (e += s), this.slideTo(e, 0, !1, !0) && 0 !== l && this.setTranslate((o ? -this.translate : this.translate) - l);
1302            else if (t >= i.length - s) {
1303                (e = -i.length + t + s), (e += s), this.slideTo(e, 0, !1, !0) && 0 !== l && this.setTranslate((o ? -this.translate : this.translate) - l);
1304            }
1305            (this.allowSlidePrev = a), (this.allowSlideNext = r), this.emit("loopFix");
1306        },
1307        loopDestroy: function () {
1308            var e = this.$wrapperEl,
1309                t = this.params,
1310                i = this.slides;
1311            e.children("." + t.slideClass + "." + t.slideDuplicateClass + ",." + t.slideClass + "." + t.slideBlankClass).remove(), i.removeAttr("data-swiper-slide-index");
1312        },
1313    };
1314    var f = {
1315        setGrabCursor: function (e) {
1316            if (!(o.touch || !this.params.simulateTouch || (this.params.watchOverflow && this.isLocked) || this.params.cssMode)) {
1317                var t = this.el;
1318                (t.style.cursor = "move"), (t.style.cursor = e ? "-webkit-grabbing" : "-webkit-grab"), (t.style.cursor = e ? "-moz-grabbin" : "-moz-grab"), (t.style.cursor = e ? "grabbing" : "grab");
1319            }
1320        },
1321        unsetGrabCursor: function () {
1322            o.touch || (this.params.watchOverflow && this.isLocked) || this.params.cssMode || (this.el.style.cursor = "");
1323        },
1324    };
1325    var m,
1326        g,
1327        b,
1328        w,
1329        y,
1330        x,
1331        T,
1332        E,
1333        S,
1334        C,
1335        M,
1336        P,
1337        z,
1338        k,
1339        $,
1340        L = {
1341            appendSlide: function (e) {
1342                var t = this.$wrapperEl,
1343                    i = this.params;
1344                if ((i.loop && this.loopDestroy(), "object" == typeof e && "length" in e)) for (var s = 0; s < e.length; s += 1) e[s] && t.append(e[s]);
1345                else t.append(e);
1346                i.loop && this.loopCreate(), (i.observer && o.observer) || this.update();
1347            },
1348            prependSlide: function (e) {
1349                var t = this.params,
1350                    i = this.$wrapperEl,
1351                    s = this.activeIndex;
1352                t.loop && this.loopDestroy();
1353                var a = s + 1;
1354                if ("object" == typeof e && "length" in e) {
1355                    for (var r = 0; r < e.length; r += 1) e[r] && i.prepend(e[r]);
1356                    a = s + e.length;
1357                } else i.prepend(e);
1358                t.loop && this.loopCreate(), (t.observer && o.observer) || this.update(), this.slideTo(a, 0, !1);
1359            },
1360            addSlide: function (e, t) {
1361                var i = this.$wrapperEl,
1362                    s = this.params,
1363                    a = this.activeIndex;
1364                s.loop && ((a -= this.loopedSlides), this.loopDestroy(), (this.slides = i.children("." + s.slideClass)));
1365                var r = this.slides.length;
1366                if (e <= 0) this.prependSlide(t);
1367                else if (e >= r) this.appendSlide(t);
1368                else {
1369                    for (var n = a > e ? a + 1 : a, l = [], d = r - 1; d >= e; d -= 1) {
1370                        var h = this.slides.eq(d);
1371                        h.remove(), l.unshift(h);
1372                    }
1373                    if ("object" == typeof t && "length" in t) {
1374                        for (var p = 0; p < t.length; p += 1) t[p] && i.append(t[p]);
1375                        n = a > e ? a + t.length : a;
1376                    } else i.append(t);
1377                    for (var c = 0; c < l.length; c += 1) i.append(l[c]);
1378                    s.loop && this.loopCreate(), (s.observer && o.observer) || this.update(), s.loop ? this.slideTo(n + this.loopedSlides, 0, !1) : this.slideTo(n, 0, !1);
1379                }
1380            },
1381            removeSlide: function (e) {
1382                var t = this.params,
1383                    i = this.$wrapperEl,
1384                    s = this.activeIndex;
1385                t.loop && ((s -= this.loopedSlides), this.loopDestroy(), (this.slides = i.children("." + t.slideClass)));
1386                var a,
1387                    r = s;
1388                if ("object" == typeof e && "length" in e) {
1389                    for (var n = 0; n < e.length; n += 1) (a = e[n]), this.slides[a] && this.slides.eq(a).remove(), a < r && (r -= 1);
1390                    r = Math.max(r, 0);
1391                } else (a = e), this.slides[a] && this.slides.eq(a).remove(), a < r && (r -= 1), (r = Math.max(r, 0));
1392                t.loop && this.loopCreate(), (t.observer && o.observer) || this.update(), t.loop ? this.slideTo(r + this.loopedSlides, 0, !1) : this.slideTo(r, 0, !1);
1393            },
1394            removeAllSlides: function () {
1395                for (var e = [], t = 0; t < this.slides.length; t += 1) e.push(t);
1396                this.removeSlide(e);
1397            },
1398        },
1399        I =
1400            ((m = t.navigator.platform),
1401            (g = t.navigator.userAgent),
1402            (b = {
1403                ios: !1,
1404                android: !1,
1405                androidChrome: !1,
1406                desktop: !1,
1407                iphone: !1,
1408                ipod: !1,
1409                ipad: !1,
1410                edge: !1,
1411                ie: !1,
1412                firefox: !1,
1413                macos: !1,
1414                windows: !1,
1415                cordova: !(!t.cordova && !t.phonegap),
1416                phonegap: !(!t.cordova && !t.phonegap),
1417                electron: !1,
1418            }),
1419            (w = t.screen.width),
1420            (y = t.screen.height),
1421            (x = g.match(/(Android);?[\s\/]+([\d.]+)?/)),
1422            (T = g.match(/(iPad).*OS\s([\d_]+)/)),
1423            (E = g.match(/(iPod)(.*OS\s([\d_]+))?/)),
1424            (S = !T && g.match(/(iPhone\sOS|iOS)\s([\d_]+)/)),
1425            (C = g.indexOf("MSIE ") >= 0 || g.indexOf("Trident/") >= 0),
1426            (M = g.indexOf("Edge/") >= 0),
1427            (P = g.indexOf("Gecko/") >= 0 && g.indexOf("Firefox/") >= 0),
1428            (z = "Win32" === m),
1429            (k = g.toLowerCase().indexOf("electron") >= 0),
1430            ($ = "MacIntel" === m),
1431            !T && $ && o.touch && ((1024 === w && 1366 === y) || (834 === w && 1194 === y) || (834 === w && 1112 === y) || (768 === w && 1024 === y)) && ((T = g.match(/(Version)\/([\d.]+)/)), ($ = !1)),
1432            (b.ie = C),
1433            (b.edge = M),
1434            (b.firefox = P),
1435            x && !z && ((b.os = "android"), (b.osVersion = x[2]), (b.android = !0), (b.androidChrome = g.toLowerCase().indexOf("chrome") >= 0)),
1436            (T || S || E) && ((b.os = "ios"), (b.ios = !0)),
1437            S && !E && ((b.osVersion = S[2].replace(/_/g, ".")), (b.iphone = !0)),
1438            T && ((b.osVersion = T[2].replace(/_/g, ".")), (b.ipad = !0)),
1439            E && ((b.osVersion = E[3] ? E[3].replace(/_/g, ".") : null), (b.ipod = !0)),
1440            b.ios && b.osVersion && g.indexOf("Version/") >= 0 && "10" === b.osVersion.split(".")[0] && (b.osVersion = g.toLowerCase().split("version/")[1].split(" ")[0]),
1441            (b.webView = !(!(S || T || E) || (!g.match(/.*AppleWebKit(?!.*Safari)/i) && !t.navigator.standalone)) || (t.matchMedia && t.matchMedia("(display-mode: standalone)").matches)),
1442            (b.webview = b.webView),
1443            (b.standalone = b.webView),
1444            (b.desktop = !(b.ios || b.android) || k),
1445            b.desktop && ((b.electron = k), (b.macos = $), (b.windows = z), b.macos && (b.os = "macos"), b.windows && (b.os = "windows")),
1446            (b.pixelRatio = t.devicePixelRatio || 1),
1447            b);
1448    function D(i) {
1449        var a = this.touchEventsData,
1450            r = this.params,
1451            o = this.touches;
1452        if (!this.animating || !r.preventInteractionOnTransition) {
1453            var l = i;
1454            l.originalEvent && (l = l.originalEvent);
1455            var d = s(l.target);
1456            if (
1457                ("wrapper" !== r.touchEventsTarget || d.closest(this.wrapperEl).length) &&
1458                ((a.isTouchEvent = "touchstart" === l.type), (a.isTouchEvent || !("which" in l) || 3 !== l.which) && !((!a.isTouchEvent && "button" in l && l.button > 0) || (a.isTouched && a.isMoved)))
1459            )
1460                if (r.noSwiping && d.closest(r.noSwipingSelector ? r.noSwipingSelector : "." + r.noSwipingClass)[0]) this.allowClick = !0;
1461                else if (!r.swipeHandler || d.closest(r.swipeHandler)[0]) {
1462                    (o.currentX = "touchstart" === l.type ? l.targetTouches[0].pageX : l.pageX), (o.currentY = "touchstart" === l.type ? l.targetTouches[0].pageY : l.pageY);
1463                    var h = o.currentX,
1464                        p = o.currentY,
1465                        c = r.edgeSwipeDetection || r.iOSEdgeSwipeDetection,
1466                        u = r.edgeSwipeThreshold || r.iOSEdgeSwipeThreshold;
1467                    if (!c || !(h <= u || h >= t.screen.width - u)) {
1468                        if (
1469                            (n.extend(a, { isTouched: !0, isMoved: !1, allowTouchCallbacks: !0, isScrolling: void 0, startMoving: void 0 }),
1470                            (o.startX = h),
1471                            (o.startY = p),
1472                            (a.touchStartTime = n.now()),
1473                            (this.allowClick = !0),
1474                            this.updateSize(),
1475                            (this.swipeDirection = void 0),
1476                            r.threshold > 0 && (a.allowThresholdMove = !1),
1477                            "touchstart" !== l.type)
1478                        ) {
1479                            var v = !0;
1480                            d.is(a.formElements) && (v = !1), e.activeElement && s(e.activeElement).is(a.formElements) && e.activeElement !== d[0] && e.activeElement.blur();
1481                            var f = v && this.allowTouchMove && r.touchStartPreventDefault;
1482                            (r.touchStartForcePreventDefault || f) && l.preventDefault();
1483                        }
1484                        this.emit("touchStart", l);
1485                    }
1486                }
1487        }
1488    }
1489    function O(t) {
1490        var i = this.touchEventsData,
1491            a = this.params,
1492            r = this.touches,
1493            o = this.rtlTranslate,
1494            l = t;
1495        if ((l.originalEvent && (l = l.originalEvent), i.isTouched)) {
1496            if (!i.isTouchEvent || "mousemove" !== l.type) {
1497                var d = "touchmove" === l.type && l.targetTouches && (l.targetTouches[0] || l.changedTouches[0]),
1498                    h = "touchmove" === l.type ? d.pageX : l.pageX,
1499                    p = "touchmove" === l.type ? d.pageY : l.pageY;
1500                if (l.preventedByNestedSwiper) return (r.startX = h), void (r.startY = p);
1501                if (!this.allowTouchMove) return (this.allowClick = !1), void (i.isTouched && (n.extend(r, { startX: h, startY: p, currentX: h, currentY: p }), (i.touchStartTime = n.now())));
1502                if (i.isTouchEvent && a.touchReleaseOnEdges && !a.loop)
1503                    if (this.isVertical()) {
1504                        if ((p < r.startY && this.translate <= this.maxTranslate()) || (p > r.startY && this.translate >= this.minTranslate())) return (i.isTouched = !1), void (i.isMoved = !1);
1505                    } else if ((h < r.startX && this.translate <= this.maxTranslate()) || (h > r.startX && this.translate >= this.minTranslate())) return;
1506                if (i.isTouchEvent && e.activeElement && l.target === e.activeElement && s(l.target).is(i.formElements)) return (i.isMoved = !0), void (this.allowClick = !1);
1507                if ((i.allowTouchCallbacks && this.emit("touchMove", l), !(l.targetTouches && l.targetTouches.length > 1))) {
1508                    (r.currentX = h), (r.currentY = p);
1509                    var c = r.currentX - r.startX,
1510                        u = r.currentY - r.startY;
1511                    if (!(this.params.threshold && Math.sqrt(Math.pow(c, 2) + Math.pow(u, 2)) < this.params.threshold)) {
1512                        var v;
1513                        if (void 0 === i.isScrolling)
1514                            (this.isHorizontal() && r.currentY === r.startY) || (this.isVertical() && r.currentX === r.startX)
1515                                ? (i.isScrolling = !1)
1516                                : c * c + u * u >= 25 && ((v = (180 * Math.atan2(Math.abs(u), Math.abs(c))) / Math.PI), (i.isScrolling = this.isHorizontal() ? v > a.touchAngle : 90 - v > a.touchAngle));
1517                        if ((i.isScrolling && this.emit("touchMoveOpposite", l), void 0 === i.startMoving && ((r.currentX === r.startX && r.currentY === r.startY) || (i.startMoving = !0)), i.isScrolling)) i.isTouched = !1;
1518                        else if (i.startMoving) {
1519                            (this.allowClick = !1),
1520                                a.cssMode || l.preventDefault(),
1521                                a.touchMoveStopPropagation && !a.nested && l.stopPropagation(),
1522                                i.isMoved ||
1523                                    (a.loop && this.loopFix(),
1524                                    (i.startTranslate = this.getTranslate()),
1525                                    this.setTransition(0),
1526                                    this.animating && this.$wrapperEl.trigger("webkitTransitionEnd transitionend"),
1527                                    (i.allowMomentumBounce = !1),
1528                                    !a.grabCursor || (!0 !== this.allowSlideNext && !0 !== this.allowSlidePrev) || this.setGrabCursor(!0),
1529                                    this.emit("sliderFirstMove", l)),
1530                                this.emit("sliderMove", l),
1531                                (i.isMoved = !0);
1532                            var f = this.isHorizontal() ? c : u;
1533                            (r.diff = f), (f *= a.touchRatio), o && (f = -f), (this.swipeDirection = f > 0 ? "prev" : "next"), (i.currentTranslate = f + i.startTranslate);
1534                            var m = !0,
1535                                g = a.resistanceRatio;
1536                            if (
1537                                (a.touchReleaseOnEdges && (g = 0),
1538                                f > 0 && i.currentTranslate > this.minTranslate()
1539                                    ? ((m = !1), a.resistance && (i.currentTranslate = this.minTranslate() - 1 + Math.pow(-this.minTranslate() + i.startTranslate + f, g)))
1540                                    : f < 0 && i.currentTranslate < this.maxTranslate() && ((m = !1), a.resistance && (i.currentTranslate = this.maxTranslate() + 1 - Math.pow(this.maxTranslate() - i.startTranslate - f, g))),
1541                                m && (l.preventedByNestedSwiper = !0),
1542                                !this.allowSlideNext && "next" === this.swipeDirection && i.currentTranslate < i.startTranslate && (i.currentTranslate = i.startTranslate),
1543                                !this.allowSlidePrev && "prev" === this.swipeDirection && i.currentTranslate > i.startTranslate && (i.currentTranslate = i.startTranslate),
1544                                a.threshold > 0)
1545                            ) {
1546                                if (!(Math.abs(f) > a.threshold || i.allowThresholdMove)) return void (i.currentTranslate = i.startTranslate);
1547                                if (!i.allowThresholdMove)
1548                                    return (
1549                                        (i.allowThresholdMove = !0),
1550                                        (r.startX = r.currentX),
1551                                        (r.startY = r.currentY),
1552                                        (i.currentTranslate = i.startTranslate),
1553                                        void (r.diff = this.isHorizontal() ? r.currentX - r.startX : r.currentY - r.startY)
1554                                    );
1555                            }
1556                            a.followFinger &&
1557                                !a.cssMode &&
1558                                ((a.freeMode || a.watchSlidesProgress || a.watchSlidesVisibility) && (this.updateActiveIndex(), this.updateSlidesClasses()),
1559                                a.freeMode &&
1560                                    (0 === i.velocities.length && i.velocities.push({ position: r[this.isHorizontal() ? "startX" : "startY"], time: i.touchStartTime }),
1561                                    i.velocities.push({ position: r[this.isHorizontal() ? "currentX" : "currentY"], time: n.now() })),
1562                                this.updateProgress(i.currentTranslate),
1563                                this.setTranslate(i.currentTranslate));
1564                        }
1565                    }
1566                }
1567            }
1568        }
1568 else i.startMoving && i.isScrolling && this.emit("touchMoveOpposite", l);
1569    }
1570    function A(e) {
1571        var t = this,
1572            i = t.touchEventsData,
1573            s = t.params,
1574            a = t.touches,
1575            r = t.rtlTranslate,
1576            o = t.$wrapperEl,
1577            l = t.slidesGrid,
1578            d = t.snapGrid,
1579            h = e;
1580        if ((h.originalEvent && (h = h.originalEvent), i.allowTouchCallbacks && t.emit("touchEnd", h), (i.allowTouchCallbacks = !1), !i.isTouched))
1581            return i.isMoved && s.grabCursor && t.setGrabCursor(!1), (i.isMoved = !1), void (i.startMoving = !1);
1582        s.grabCursor && i.isMoved && i.isTouched && (!0 === t.allowSlideNext || !0 === t.allowSlidePrev) && t.setGrabCursor(!1);
1583        var p,
1584            c = n.now(),
1585            u = c - i.touchStartTime;
1586        if (
1587            (t.allowClick && (t.updateClickedSlide(h), t.emit("tap click", h), u < 300 && c - i.lastClickTime < 300 && t.emit("doubleTap doubleClick", h)),
1588            (i.lastClickTime = n.now()),
1589            n.nextTick(function () {
1590                t.destroyed || (t.allowClick = !0);
1591            }),
1592            !i.isTouched || !i.isMoved || !t.swipeDirection || 0 === a.diff || i.currentTranslate === i.startTranslate)
1593        )
1594            return (i.isTouched = !1), (i.isMoved = !1), void (i.startMoving = !1);
1595        if (((i.isTouched = !1), (i.isMoved = !1), (i.startMoving = !1), (p = s.followFinger ? (r ? t.translate : -t.translate) : -i.currentTranslate), !s.cssMode))
1596            if (s.freeMode) {
1597                if (p < -t.minTranslate()) return void t.slideTo(t.activeIndex);
1598                if (p > -t.maxTranslate()) return void (t.slides.length < d.length ? t.slideTo(d.length - 1) : t.slideTo(t.slides.length - 1));
1599                if (s.freeModeMomentum) {
1600                    if (i.velocities.length > 1) {
1601                        var v = i.velocities.pop(),
1602                            f = i.velocities.pop(),
1603                            m = v.position - f.position,
1604                            g = v.time - f.time;
1605                        (t.velocity = m / g), (t.velocity /= 2), Math.abs(t.velocity) < s.freeModeMinimumVelocity && (t.velocity = 0), (g > 150 || n.now() - v.time > 300) && (t.velocity = 0);
1606                    } else t.velocity = 0;
1607                    (t.velocity *= s.freeModeMomentumVelocityRatio), (i.velocities.length = 0);
1608                    var b = 1e3 * s.freeModeMomentumRatio,
1609                        w = t.velocity * b,
1610                        y = t.translate + w;
1611                    r && (y = -y);
1612                    var x,
1613                        T,
1614                        E = !1,
1615                        S = 20 * Math.abs(t.velocity) * s.freeModeMomentumBounceRatio;
1616                    if (y < t.maxTranslate())
1617                        s.freeModeMomentumBounce ? (y + t.maxTranslate() < -S && (y = t.maxTranslate() - S), (x = t.maxTranslate()), (E = !0), (i.allowMomentumBounce = !0)) : (y = t.maxTranslate()), s.loop && s.centeredSlides && (T = !0);
1618                    else if (y > t.minTranslate())
1619                        s.freeModeMomentumBounce ? (y - t.minTranslate() > S && (y = t.minTranslate() + S), (x = t.minTranslate()), (E = !0), (i.allowMomentumBounce = !0)) : (y = t.minTranslate()), s.loop && s.centeredSlides && (T = !0);
1620                    else if (s.freeModeSticky) {
1621                        for (var C, M = 0; M < d.length; M += 1)
1622                            if (d[M] > -y) {
1623                                C = M;
1624                                break;
1625                            }
1626                        y = -(y = Math.abs(d[C] - y) < Math.abs(d[C - 1] - y) || "next" === t.swipeDirection ? d[C] : d[C - 1]);
1627                    }
1628                    if (
1629                        (T &&
1630                            t.once("transitionEnd", function () {
1631                                t.loopFix();
1632                            }),
1633                        0 !== t.velocity)
1634                    ) {
1635                        if (((b = r ? Math.abs((-y - t.translate) / t.velocity) : Math.abs((y - t.translate) / t.velocity)), s.freeModeSticky)) {
1636                            var P = Math.abs((r ? -y : y) - t.translate),
1637                                z = t.slidesSizesGrid[t.activeIndex];
1638                            b = P < z ? s.speed : P < 2 * z ? 1.5 * s.speed : 2.5 * s.speed;
1639                        }
1640                    } else if (s.freeModeSticky) return void t.slideToClosest();
1641                    s.freeModeMomentumBounce && E
1642                        ? (t.updateProgress(x),
1643                          t.setTransition(b),
1644                          t.setTranslate(y),
1645                          t.transitionStart(!0, t.swipeDirection),
1646                          (t.animating = !0),
1647                          o.transitionEnd(function () {
1648                              t &&
1649                                  !t.destroyed &&
1650                                  i.allowMomentumBounce &&
1651                                  (t.emit("momentumBounce"),
1652                                  t.setTransition(s.speed),
1653                                  t.setTranslate(x),
1654                                  o.transitionEnd(function () {
1655                                      t && !t.destroyed && t.transitionEnd();
1656                                  }));
1657                          }))
1658                        : t.velocity
1659                        ? (t.updateProgress(y),
1660                          t.setTransition(b),
1661                          t.setTranslate(y),
1662                          t.transitionStart(!0, t.swipeDirection),
1663                          t.animating ||
1664                              ((t.animating = !0),
1665                              o.transitionEnd(function () {
1666                                  t && !t.destroyed && t.transitionEnd();
1667                              })))
1668                        : t.updateProgress(y),
1669                        t.updateActiveIndex(),
1670                        t.updateSlidesClasses();
1671                } else if (s.freeModeSticky) return void t.slideToClosest();
1672                (!s.freeModeMomentum || u >= s.longSwipesMs) && (t.updateProgress(), t.updateActiveIndex(), t.updateSlidesClasses());
1673            } else {
1674                for (var k = 0, $ = t.slidesSizesGrid[0], L = 0; L < l.length; L += L < s.slidesPerGroupSkip ? 1 : s.slidesPerGroup) {
1675                    var I = L < s.slidesPerGroupSkip - 1 ? 1 : s.slidesPerGroup;
1676                    void 0 !== l[L + I] ? p >= l[L] && p < l[L + I] && ((k = L), ($ = l[L + I] - l[L])) : p >= l[L] && ((k = L), ($ = l[l.length - 1] - l[l.length - 2]));
1677                }
1678                var D = (p - l[k]) / $,
1679                    O = k < s.slidesPerGroupSkip - 1 ? 1 : s.slidesPerGroup;
1680                if (u > s.longSwipesMs) {
1681                    if (!s.longSwipes) return void t.slideTo(t.activeIndex);
1682                    "next" === t.swipeDirection && (D >= s.longSwipesRatio ? t.slideTo(k + O) : t.slideTo(k)), "prev" === t.swipeDirection && (D > 1 - s.longSwipesRatio ? t.slideTo(k + O) : t.slideTo(k));
1683                } else {
1684                    if (!s.shortSwipes) return void t.slideTo(t.activeIndex);
1685                    t.navigation && (h.target === t.navigation.nextEl || h.target === t.navigation.prevEl)
1686                        ? h.target === t.navigation.nextEl
1687                            ? t.slideTo(k + O)
1688                            : t.slideTo(k)
1689                        : ("next" === t.swipeDirection && t.slideTo(k + O), "prev" === t.swipeDirection && t.slideTo(k));
1690                }
1691            }
1692    }
1693    function G() {
1694        var e = this.params,
1695            t = this.el;
1696        if (!t || 0 !== t.offsetWidth) {
1697            e.breakpoints && this.setBreakpoint();
1698            var i = this.allowSlideNext,
1699                s = this.allowSlidePrev,
1700                a = this.snapGrid;
1701            (this.allowSlideNext = !0),
1702                (this.allowSlidePrev = !0),
1703                this.updateSize(),
1704                this.updateSlides(),
1705                this.updateSlidesClasses(),
1706                ("auto" === e.slidesPerView || e.slidesPerView > 1) && this.isEnd && !this.params.centeredSlides ? this.slideTo(this.slides.length - 1, 0, !1, !0) : this.slideTo(this.activeIndex, 0, !1, !0),
1707                this.autoplay && this.autoplay.running && this.autoplay.paused && this.autoplay.run(),
1708                (this.allowSlidePrev = s),
1709                (this.allowSlideNext = i),
1710                this.params.watchOverflow && a !== this.snapGrid && this.checkOverflow();
1711        }
1712    }
1713    function H(e) {
1714        this.allowClick || (this.params.preventClicks && e.preventDefault(), this.params.preventClicksPropagation && this.animating && (e.stopPropagation(), e.stopImmediatePropagation()));
1715    }
1716    function B() {
1717        var e = this.wrapperEl,
1718            t = this.rtlTranslate;
1719        (this.previousTranslate = this.translate),
1720            this.isHorizontal() ? (this.translate = t ? e.scrollWidth - e.offsetWidth - e.scrollLeft : -e.scrollLeft) : (this.translate = -e.scrollTop),
1721            -0 === this.translate && (this.translate = 0),
1722            this.updateActiveIndex(),
1723            this.updateSlidesClasses();
1724        var i = this.maxTranslate() - this.minTranslate();
1725        (0 === i ? 0 : (this.translate - this.minTranslate()) / i) !== this.progress && this.updateProgress(t ? -this.translate : this.translate), this.emit("setTranslate", this.translate, !1);
1726    }
1727    var N = !1;
1728    function X() {}
1729    var V = {
1730            init: !0,
1731            direction: "horizontal",
1732            touchEventsTarget: "container",
1733            initialSlide: 0,
1734            speed: 300,
1735            cssMode: !1,
1736            updateOnWindowResize: !0,
1737            preventInteractionOnTransition: !1,
1738            edgeSwipeDetection: !1,
1739            edgeSwipeThreshold: 20,
1740            freeMode: !1,
1741            freeModeMomentum: !0,
1742            freeModeMomentumRatio: 1,
1743            freeModeMomentumBounce: !0,
1744            freeModeMomentumBounceRatio: 1,
1745            freeModeMomentumVelocityRatio: 1,
1746            freeModeSticky: !1,
1747            freeModeMinimumVelocity: 0.02,
1748            autoHeight: !1,
1749            setWrapperSize: !1,
1750            virtualTranslate: !1,
1751            effect: "slide",
1752            breakpoints: void 0,
1753            spaceBetween: 0,
1754            slidesPerView: 1,
1755            slidesPerColumn: 1,
1756            slidesPerColumnFill: "column",
1757            slidesPerGroup: 1,
1758            slidesPerGroupSkip: 0,
1759            centeredSlides: !1,
1760            centeredSlidesBounds: !1,
1761            slidesOffsetBefore: 0,
1762            slidesOffsetAfter: 0,
1763            normalizeSlideIndex: !0,
1764            centerInsufficientSlides: !1,
1765            watchOverflow: !1,
1766            roundLengths: !1,
1767            touchRatio: 1,
1768            touchAngle: 45,
1769            simulateTouch: !0,
1770            shortSwipes: !0,
1771            longSwipes: !0,
1772            longSwipesRatio: 0.5,
1773            longSwipesMs: 300,
1774            followFinger: !0,
1775            allowTouchMove: !0,
1776            threshold: 0,
1777            touchMoveStopPropagation: !1,
1778            touchStartPreventDefault: !0,
1779            touchStartForcePreventDefault: !1,
1780            touchReleaseOnEdges: !1,
1781            uniqueNavElements: !0,
1782            resistance: !0,
1783            resistanceRatio: 0.85,
1784            watchSlidesProgress: !1,
1785            watchSlidesVisibility: !1,
1786            grabCursor: !1,
1787            preventClicks: !0,
1788            preventClicksPropagation: !0,
1789            slideToClickedSlide: !1,
1790            preloadImages: !0,
1791            updateOnImagesReady: !0,
1792            loop: !1,
1793            loopAdditionalSlides: 0,
1794            loopedSlides: null,
1795            loopFillGroupWithBlank: !1,
1796            allowSlidePrev: !0,
1797            allowSlideNext: !0,
1798            swipeHandler: null,
1799            noSwiping: !0,
1800            noSwipingClass: "swiper-no-swiping",
1801            noSwipingSelector: null,
1802            passiveListeners: !0,
1803            containerModifierClass: "swiper-container-",
1804            slideClass: "swiper-slide",
1805            slideBlankClass: "swiper-slide-invisible-blank",
1806            slideActiveClass: "swiper-slide-active",
1807            slideDuplicateActiveClass: "swiper-slide-duplicate-active",
1808            slideVisibleClass: "swiper-slide-visible",
1809            slideDuplicateClass: "swiper-slide-duplicate",
1810            slideNextClass: "swiper-slide-next",
1811            slideDuplicateNextClass: "swiper-slide-duplicate-next",
1812            slidePrevClass: "swiper-slide-prev",
1813            slideDuplicatePrevClass: "swiper-slide-duplicate-prev",
1814            wrapperClass: "swiper-wrapper",
1815            runCallbacksOnInit: !0,
1816        },
1817        Y = {
1818            update: h,
1819            translate: p,
1820            transition: c,
1821            slide: u,
1822            loop: v,
1823            grabCursor: f,
1824            manipulation: L,
1825            events: {
1826                attachEvents: function () {
1827                    var t = this.params,
1828                        i = this.touchEvents,
1829                        s = this.el,
1830                        a = this.wrapperEl;
1831                    (this.onTouchStart = D.bind(this)), (this.onTouchMove = O.bind(this)), (this.onTouchEnd = A.bind(this)), t.cssMode && (this.onScroll = B.bind(this)), (this.onClick = H.bind(this));
1832                    var r = !!t.nested;
1833                    if (!o.touch && o.pointerEvents) s.addEventListener(i.start, this.onTouchStart, !1), e.addEventListener(i.move, this.onTouchMove, r), e.addEventListener(i.end, this.onTouchEnd, !1);
1834                    else {
1835                        if (o.touch) {
1836                            var n = !("touchstart" !== i.start || !o.passiveListener || !t.passiveListeners) && { passive: !0, capture: !1 };
1837                            s.addEventListener(i.start, this.onTouchStart, n),
1838                                s.addEventListener(i.move, this.onTouchMove, o.passiveListener ? { passive: !1, capture: r } : r),
1839                                s.addEventListener(i.end, this.onTouchEnd, n),
1840                                i.cancel && s.addEventListener(i.cancel, this.onTouchEnd, n),
1841                                N || (e.addEventListener("touchstart", X), (N = !0));
1842                        }
1843                        ((t.simulateTouch && !I.ios && !I.android) || (t.simulateTouch && !o.touch && I.ios)) &&
1844                            (s.addEventListener("mousedown", this.onTouchStart, !1), e.addEventListener("mousemove", this.onTouchMove, r), e.addEventListener("mouseup", this.onTouchEnd, !1));
1845                    }
1846                    (t.preventClicks || t.preventClicksPropagation) && s.addEventListener("click", this.onClick, !0),
1847                        t.cssMode && a.addEventListener("scroll", this.onScroll),
1848                        t.updateOnWindowResize ? this.on(I.ios || I.android ? "resize orientationchange observerUpdate" : "resize observerUpdate", G, !0) : this.on("observerUpdate", G, !0);
1849                },
1850                detachEvents: function () {
1851                    var t = this.params,
1852                        i = this.touchEvents,
1853                        s = this.el,
1854                        a = this.wrapperEl,
1855                        r = !!t.nested;
1856                    if (!o.touch && o.pointerEvents) s.removeEventListener(i.start, this.onTouchStart, !1), e.removeEventListener(i.move, this.onTouchMove, r), e.removeEventListener(i.end, this.onTouchEnd, !1);
1857                    else {
1858                        if (o.touch) {
1859                            var n = !("onTouchStart" !== i.start || !o.passiveListener || !t.passiveListeners) && { passive: !0, capture: !1 };
1860                            s.removeEventListener(i.start, this.onTouchStart, n),
1861                                s.removeEventListener(i.move, this.onTouchMove, r),
1862                                s.removeEventListener(i.end, this.onTouchEnd, n),
1863                                i.cancel && s.removeEventListener(i.cancel, this.onTouchEnd, n);
1864                        }
1865                        ((t.simulateTouch && !I.ios && !I.android) || (t.simulateTouch && !o.touch && I.ios)) &&
1866                            (s.removeEventListener("mousedown", this.onTouchStart, !1), e.removeEventListener("mousemove", this.onTouchMove, r), e.removeEventListener("mouseup", this.onTouchEnd, !1));
1867                    }
1868                    (t.preventClicks || t.preventClicksPropagation) && s.removeEventListener("click", this.onClick, !0),
1869                        t.cssMode && a.removeEventListener("scroll", this.onScroll),
1870                        this.off(I.ios || I.android ? "resize orientationchange observerUpdate" : "resize observerUpdate", G);
1871                },
1872            },
1873            breakpoints: {
1874                setBreakpoint: function () {
1875                    var e = this.activeIndex,
1876                        t = this.initialized,
1877                        i = this.loopedSlides;
1878                    void 0 === i && (i = 0);
1879                    var s = this.params,
1880                        a = this.$el,
1881                        r = s.breakpoints;
1882                    if (r && (!r || 0 !== Object.keys(r).length)) {
1883                        var o = this.getBreakpoint(r);
1884                        if (o && this.currentBreakpoint !== o) {
1885                            var l = o in r ? r[o] : void 0;
1886                            l &&
1887                                ["slidesPerView", "spaceBetween", "slidesPerGroup", "slidesPerGroupSkip", "slidesPerColumn"].forEach(function (e) {
1888                                    var t = l[e];
1889                                    void 0 !== t && (l[e] = "slidesPerView" !== e || ("AUTO" !== t && "auto" !== t) ? ("slidesPerView" === e ? parseFloat(t) : parseInt(t, 10)) : "auto");
1890                                });
1891                            var d = l || this.originalParams,
1892                                h = s.slidesPerColumn > 1,
1893                                p = d.slidesPerColumn > 1;
1894                            h && !p
1895                                ? a.removeClass(s.containerModifierClass + "multirow " + s.containerModifierClass + "multirow-column")
1896                                : !h && p && (a.addClass(s.containerModifierClass + "multirow"), "column" === d.slidesPerColumnFill && a.addClass(s.containerModifierClass + "multirow-column"));
1897                            var c = d.direction && d.direction !== s.direction,
1898                                u = s.loop && (d.slidesPerView !== s.slidesPerView || c);
1899                            c && t && this.changeDirection(),
1900                                n.extend(this.params, d),
1901                                n.extend(this, { allowTouchMove: this.params.allowTouchMove, allowSlideNext: this.params.allowSlideNext, allowSlidePrev: this.params.allowSlidePrev }),
1902                                (this.currentBreakpoint = o),
1903                                u && t && (this.loopDestroy(), this.loopCreate(), this.updateSlides(), this.slideTo(e - i + this.loopedSlides, 0, !1)),
1904                                this.emit("breakpoint", d);
1905                        }
1906                    }
1907                },
1908                getBreakpoint: function (e) {
1909                    if (e) {
1910                        var i = !1,
1911                            s = Object.keys(e).map(function (e) {
1912                                if ("string" == typeof e && 0 === e.indexOf("@")) {
1913                                    var i = parseFloat(e.substr(1));
1914                                    return { value: t.innerHeight * i, point: e };
1915                                }
1916                                return { value: e, point: e };
1917                            });
1918                        s.sort(function (e, t) {
1919                            return parseInt(e.value, 10) - parseInt(t.value, 10);
1920                        });
1921                        for (var a = 0; a < s.length; a += 1) {
1922                            var r = s[a],
1923                                n = r.point;
1924                            r.value <= t.innerWidth && (i = n);
1925                        }
1926                        return i || "max";
1927                    }
1928                },
1929            },
1930            checkOverflow: {
1931                checkOverflow: function () {
1932                    var e = this.params,
1933                        t = this.isLocked,
1934                        i = this.slides.length > 0 && e.slidesOffsetBefore + e.spaceBetween * (this.slides.length - 1) + this.slides[0].offsetWidth * this.slides.length;
1935                    e.slidesOffsetBefore && e.slidesOffsetAfter && i ? (this.isLocked = i <= this.size) : (this.isLocked = 1 === this.snapGrid.length),
1936                        (this.allowSlideNext = !this.isLocked),
1937                        (this.allowSlidePrev = !this.isLocked),
1938                        t !== this.isLocked && this.emit(this.isLocked ? "lock" : "unlock"),
1939                        t && t !== this.isLocked && ((this.isEnd = !1), this.navigation.update());
1940                },
1941            },
1942            classes: {
1943                addClasses: function () {
1944                    var e = this.classNames,
1945                        t = this.params,
1946                        i = this.rtl,
1947                        s = this.$el,
1948                        a = [];
1949                    a.push("initialized"),
1950                        a.push(t.direction),
1951                        t.freeMode && a.push("free-mode"),
1952                        t.autoHeight && a.push("autoheight"),
1953                        i && a.push("rtl"),
1954                        t.slidesPerColumn > 1 && (a.push("multirow"), "column" === t.slidesPerColumnFill && a.push("multirow-column")),
1955                        I.android && a.push("android"),
1956                        I.ios && a.push("ios"),
1957                        t.cssMode && a.push("css-mode"),
1958                        a.forEach(function (i) {
1959                            e.push(t.containerModifierClass + i);
1960                        }),
1961                        s.addClass(e.join(" "));
1962                },
1963                removeClasses: function () {
1964                    var e = this.$el,
1965                        t = this.classNames;
1966                    e.removeClass(t.join(" "));
1967                },
1968            },
1969            images: {
1970                loadImage: function (e, i, s, a, r, n) {
1971                    var o;
1972                    function l() {
1973                        n && n();
1974                    }
1975                    e.complete && r ? l() : i ? (((o = new t.Image()).onload = l), (o.onerror = l), a && (o.sizes = a), s && (o.srcset = s), i && (o.src = i)) : l();
1976                },
1977                preloadImages: function () {
1978                    var e = this;
1979                    function t() {
1980                        null != e && e && !e.destroyed && (void 0 !== e.imagesLoaded && (e.imagesLoaded += 1), e.imagesLoaded === e.imagesToLoad.length && (e.params.updateOnImagesReady && e.update(), e.emit("imagesReady")));
1981                    }
1982                    e.imagesToLoad = e.$el.find("img");
1983                    for (var i = 0; i < e.imagesToLoad.length; i += 1) {
1984                        var s = e.imagesToLoad[i];
1985                        e.loadImage(s, s.currentSrc || s.getAttribute("src"), s.srcset || s.getAttribute("srcset"), s.sizes || s.getAttribute("sizes"), !0, t);
1986                    }
1987                },
1988            },
1989        },
1990        F = {},
1991        W = (function (e) {
1992            function t() {
1993                for (var i, a, r, l = [], d = arguments.length; d--; ) l[d] = arguments[d];
1994                1 === l.length && l[0].constructor && l[0].constructor === Object ? (r = l[0]) : ((a = (i = l)[0]), (r = i[1])),
1995                    r || (r = {}),
1996                    (r = n.extend({}, r)),
1997                    a && !r.el && (r.el = a),
1998                    e.call(this, r),
1999                    Object.keys(Y).forEach(function (e) {
2000                        Object.keys(Y[e]).forEach(function (i) {
2001                            t.prototype[i] || (t.prototype[i] = Y[e][i]);
2002                        });
2003                    });
2004                var h = this;
2005                void 0 === h.modules && (h.modules = {}),
2006                    Object.keys(h.modules).forEach(function (e) {
2007                        var t = h.modules[e];
2008                        if (t.params) {
2009                            var i = Object.keys(t.params)[0],
2010                                s = t.params[i];
2011                            if ("object" != typeof s || null === s) return;
2012                            if (!(i in r) || !("enabled" in s)) return;
2013                            !0 === r[i] && (r[i] = { enabled: !0 }), "object" != typeof r[i] || "enabled" in r[i] || (r[i].enabled = !0), r[i] || (r[i] = { enabled: !1 });
2014                        }
2015                    });
2016                var p = n.extend({}, V);
2017                h.useModulesParams(p), (h.params = n.extend({}, p, F, r)), (h.originalParams = n.extend({}, h.params)), (h.passedParams = n.extend({}, r)), (h.$ = s);
2018                var c = s(h.params.el);
2019                if ((a = c[0])) {
2020                    if (c.length > 1) {
2021                        var u = [];
2022                        return (
2023                            c.each(function (e, i) {
2024                                var s = n.extend({}, r, { el: i });
2025                                u.push(new t(s));
2026                            }),
2027                            u
2028                        );
2029                    }
2030                    var v, f, m;
2031                    return (
2032                        (a.swiper = h),
2033                        c.data("swiper", h),
2034                        a && a.shadowRoot && a.shadowRoot.querySelector
2035                            ? ((v = s(a.shadowRoot.querySelector("." + h.params.wrapperClass))).children = function (e) {
2036                                  return c.children(e);
2037                              })
2038                            : (v = c.children("." + h.params.wrapperClass)),
2039                        n.extend(h, {
2040                            $el: c,
2041                            el: a,
2042                            $wrapperEl: v,
2043                            wrapperEl: v[0],
2044                            classNames: [],
2045                            slides: s(),
2046                            slidesGrid: [],
2047                            snapGrid: [],
2048                            slidesSizesGrid: [],
2049                            isHorizontal: function () {
2050                                return "horizontal" === h.params.direction;
2051                            },
2052                            isVertical: function () {
2053                                return "vertical" === h.params.direction;
2054                            },
2055                            rtl: "rtl" === a.dir.toLowerCase() || "rtl" === c.css("direction"),
2056                            rtlTranslate: "horizontal" === h.params.direction && ("rtl" === a.dir.toLowerCase() || "rtl" === c.css("direction")),
2057                            wrongRTL: "-webkit-box" === v.css("display"),
2058                            activeIndex: 0,
2059                            realIndex: 0,
2060                            isBeginning: !0,
2061                            isEnd: !1,
2062                            translate: 0,
2063                            previousTranslate: 0,
2064                            progress: 0,
2065                            velocity: 0,
2066                            animating: !1,
2067                            allowSlideNext: h.params.allowSlideNext,
2068                            allowSlidePrev: h.params.allowSlidePrev,
2069                            touchEvents:
2070                                ((f = ["touchstart", "touchmove", "touchend", "touchcancel"]),
2071                                (m = ["mousedown", "mousemove", "mouseup"]),
2072                                o.pointerEvents && (m = ["pointerdown", "pointermove", "pointerup"]),
2073                                (h.touchEventsTouch = { start: f[0], move: f[1], end: f[2], cancel: f[3] }),
2074                                (h.touchEventsDesktop = { start: m[0], move: m[1], end: m[2] }),
2075                                o.touch || !h.params.simulateTouch ? h.touchEventsTouch : h.touchEventsDesktop),
2076                            touchEventsData: {
2077                                isTouched: void 0,
2078                                isMoved: void 0,
2079                                allowTouchCallbacks: void 0,
2080                                touchStartTime: void 0,
2081                                isScrolling: void 0,
2082                                currentTranslate: void 0,
2083                                startTranslate: void 0,
2084                                allowThresholdMove: void 0,
2085                                formElements: "input, select, option, textarea, button, video, label",
2086                                lastClickTime: n.now(),
2087                                clickTimeout: void 0,
2088                                velocities: [],
2089                                allowMomentumBounce: void 0,
2090                                isTouchEvent: void 0,
2091                                startMoving: void 0,
2092                            },
2093                            allowClick: !0,
2094                            allowTouchMove: h.params.allowTouchMove,
2095                            touches: { startX: 0, startY: 0, currentX: 0, currentY: 0, diff: 0 },
2096                            imagesToLoad: [],
2097                            imagesLoaded: 0,
2098                        }),
2099                        h.useModules(),
2100                        h.params.init && h.init(),
2101                        h
2102                    );
2103                }
2104            }
2105            e && (t.__proto__ = e), (t.prototype = Object.create(e && e.prototype)), (t.prototype.constructor = t);
2106            var i = { extendedDefaults: { configurable: !0 }, defaults: { configurable: !0 }, Class: { configurable: !0 }, $: { configurable: !0 } };
2107            return (
2108                (t.prototype.slidesPerViewDynamic = function () {
2109                    var e = this.params,
2110                        t = this.slides,
2111                        i = this.slidesGrid,
2112                        s = this.size,
2113                        a = this.activeIndex,
2114                        r = 1;
2115                    if (e.centeredSlides) {
2116                        for (var n, o = t[a].swiperSlideSize, l = a + 1; l < t.length; l += 1) t[l] && !n && ((r += 1), (o += t[l].swiperSlideSize) > s && (n = !0));
2117                        for (var d = a - 1; d >= 0; d -= 1) t[d] && !n && ((r += 1), (o += t[d].swiperSlideSize) > s && (n = !0));
2118                    } else for (var h = a + 1; h < t.length; h += 1) i[h] - i[a] < s && (r += 1);
2119                    return r;
2120                }),
2121                (t.prototype.update = function () {
2122                    var e = this;
2123                    if (e && !e.destroyed) {
2124                        var t = e.snapGrid,
2125                            i = e.params;
2126                        i.breakpoints && e.setBreakpoint(),
2127                            e.updateSize(),
2128                            e.updateSlides(),
2129                            e.updateProgress(),
2130                            e.updateSlidesClasses(),
2131                            e.params.freeMode
2132                                ? (s(), e.params.autoHeight && e.updateAutoHeight())
2133                                : (("auto" === e.params.slidesPerView || e.params.slidesPerView > 1) && e.isEnd && !e.params.centeredSlides ? e.slideTo(e.slides.length - 1, 0, !1, !0) : e.slideTo(e.activeIndex, 0, !1, !0)) || s(),
2134                            i.watchOverflow && t !== e.snapGrid && e.checkOverflow(),
2135                            e.emit("update");
2136                    }
2137                    function s() {
2138                        var t = e.rtlTranslate ? -1 * e.translate : e.translate,
2139                            i = Math.min(Math.max(t, e.maxTranslate()), e.minTranslate());
2140                        e.setTranslate(i), e.updateActiveIndex(), e.updateSlidesClasses();
2141                    }
2142                }),
2143                (t.prototype.changeDirection = function (e, t) {
2144                    void 0 === t && (t = !0);
2145                    var i = this.params.direction;
2146                    return (
2147                        e || (e = "horizontal" === i ? "vertical" : "horizontal"),
2148                        e === i ||
2149                            ("horizontal" !== e && "vertical" !== e) ||
2150                            (this.$el.removeClass("" + this.params.containerModifierClass + i
2150).addClass("" + this.params.containerModifierClass + e),
2151                            (this.params.direction = e),
2152                            this.slides.each(function (t, i) {
2153                                "vertical" === e ? (i.style.width = "") : (i.style.height = "");
2154                            }),
2155                            this.emit("changeDirection"),
2156                            t && this.update()),
2157                        this
2158                    );
2159                }),
2160                (t.prototype.init = function () {
2161                    this.initialized ||
2162                        (this.emit("beforeInit"),
2163                        this.params.breakpoints && this.setBreakpoint(),
2164                        this.addClasses(),
2165                        this.params.loop && this.loopCreate(),
2166                        this.updateSize(),
2167                        this.updateSlides(),
2168                        this.params.watchOverflow && this.checkOverflow(),
2169                        this.params.grabCursor && this.setGrabCursor(),
2170                        this.params.preloadImages && this.preloadImages(),
2171                        this.params.loop ? this.slideTo(this.params.initialSlide + this.loopedSlides, 0, this.params.runCallbacksOnInit) : this.slideTo(this.params.initialSlide, 0, this.params.runCallbacksOnInit),
2172                        this.attachEvents(),
2173                        (this.initialized = !0),
2174                        this.emit("init"));
2175                }),
2176                (t.prototype.destroy = function (e, t) {
2177                    void 0 === e && (e = !0), void 0 === t && (t = !0);
2178                    var i = this,
2179                        s = i.params,
2180                        a = i.$el,
2181                        r = i.$wrapperEl,
2182                        o = i.slides;
2183                    return (
2184                        void 0 === i.params ||
2185                            i.destroyed ||
2186                            (i.emit("beforeDestroy"),
2187                            (i.initialized = !1),
2188                            i.detachEvents(),
2189                            s.loop && i.loopDestroy(),
2190                            t &&
2191                                (i.removeClasses(),
2192                                a.removeAttr("style"),
2193                                r.removeAttr("style"),
2194                                o && o.length && o.removeClass([s.slideVisibleClass, s.slideActiveClass, s.slideNextClass, s.slidePrevClass].join(" ")).removeAttr("style").removeAttr("data-swiper-slide-index")),
2195                            i.emit("destroy"),
2196                            Object.keys(i.eventsListeners).forEach(function (e) {
2197                                i.off(e);
2198                            }),
2199                            !1 !== e && ((i.$el[0].swiper = null), i.$el.data("swiper", null), n.deleteProps(i)),
2200                            (i.destroyed = !0)),
2201                        null
2202                    );
2203                }),
2204                (t.extendDefaults = function (e) {
2205                    n.extend(F, e);
2206                }),
2207                (i.extendedDefaults.get = function () {
2208                    return F;
2209                }),
2210                (i.defaults.get = function () {
2211                    return V;
2212                }),
2213                (i.Class.get = function () {
2214                    return e;
2215                }),
2216                (i.$.get = function () {
2217                    return s;
2218                }),
2219                Object.defineProperties(t, i),
2220                t
2221            );
2222        })(l),
2223        R = { name: "device", proto: { device: I }, static: { device: I } },
2224        q = { name: "support", proto: { support: o }, static: { support: o } },
2225        j = {
2226            isEdge: !!t.navigator.userAgent.match(/Edge/g),
2227            isSafari: (function () {
2228                var e = t.navigator.userAgent.toLowerCase();
2229                return e.indexOf("safari") >= 0 && e.indexOf("chrome") < 0 && e.indexOf("android") < 0;
2230            })(),
2231            isUiWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(t.navigator.userAgent),
2232        },
2233        K = { name: "browser", proto: { browser: j }, static: { browser: j } },
2234        U = {
2235            name: "resize",
2236            create: function () {
2237                var e = this;
2238                n.extend(e, {
2239                    resize: {
2240                        resizeHandler: function () {
2241                            e && !e.destroyed && e.initialized && (e.emit("beforeResize"), e.emit("resize"));
2242                        },
2243                        orientationChangeHandler: function () {
2244                            e && !e.destroyed && e.initialized && e.emit("orientationchange");
2245                        },
2246                    },
2247                });
2248            },
2249            on: {
2250                init: function () {
2251                    t.addEventListener("resize", this.resize.resizeHandler), t.addEventListener("orientationchange", this.resize.orientationChangeHandler);
2252                },
2253                destroy: function () {
2254                    t.removeEventListener("resize", this.resize.resizeHandler), t.removeEventListener("orientationchange", this.resize.orientationChangeHandler);
2255                },
2256            },
2257        },
2258        _ = {
2259            func: t.MutationObserver || t.WebkitMutationObserver,
2260            attach: function (e, i) {
2261                void 0 === i && (i = {});
2262                var s = this,
2263                    a = new (0, _.func)(function (e) {
2264                        if (1 !== e.length) {
2265                            var i = function () {
2266                                s.emit("observerUpdate", e[0]);
2267                            };
2268                            t.requestAnimationFrame ? t.requestAnimationFrame(i) : t.setTimeout(i, 0);
2269                        } else s.emit("observerUpdate", e[0]);
2270                    });
2271                a.observe(e, { attributes: void 0 === i.attributes || i.attributes, childList: void 0 === i.childList || i.childList, characterData: void 0 === i.characterData || i.characterData }), s.observer.observers.push(a);
2272            },
2273            init: function () {
2274                if (o.observer && this.params.observer) {
2275                    if (this.params.observeParents) for (var e = this.$el.parents(), t = 0; t < e.length; t += 1) this.observer.attach(e[t]);
2276                    this.observer.attach(this.$el[0], { childList: this.params.observeSlideChildren }), this.observer.attach(this.$wrapperEl[0], { attributes: !1 });
2277                }
2278            },
2279            destroy: function () {
2280                this.observer.observers.forEach(function (e) {
2281                    e.disconnect();
2282                }),
2283                    (this.observer.observers = []);
2284            },
2285        },
2286        Z = {
2287            name: "observer",
2288            params: { observer: !1, observeParents: !1, observeSlideChildren: !1 },
2289            create: function () {
2290                n.extend(this, { observer: { init: _.init.bind(this), attach: _.attach.bind(this), destroy: _.destroy.bind(this), observers: [] } });
2291            },
2292            on: {
2293                init: function () {
2294                    this.observer.init();
2295                },
2296                destroy: function () {
2297                    this.observer.destroy();
2298                },
2299            },
2300        },
2301        Q = {
2302            update: function (e) {
2303                var t = this,
2304                    i = t.params,
2305                    s = i.slidesPerView,
2306                    a = i.slidesPerGroup,
2307                    r = i.centeredSlides,
2308                    o = t.params.virtual,
2309                    l = o.addSlidesBefore,
2310                    d = o.addSlidesAfter,
2311                    h = t.virtual,
2312                    p = h.from,
2313                    c = h.to,
2314                    u = h.slides,
2315                    v = h.slidesGrid,
2316                    f = h.renderSlide,
2317                    m = h.offset;
2318                t.updateActiveIndex();
2319                var g,
2320                    b,
2321                    w,
2322                    y = t.activeIndex || 0;
2323                (g = t.rtlTranslate ? "right" : t.isHorizontal() ? "left" : "top"), r ? ((b = Math.floor(s / 2) + a + l), (w = Math.floor(s / 2) + a + d)) : ((b = s + (a - 1) + l), (w = a + d));
2324                var x = Math.max((y || 0) - w, 0),
2325                    T = Math.min((y || 0) + b, u.length - 1),
2326                    E = (t.slidesGrid[x] || 0) - (t.slidesGrid[0] || 0);
2327                function S() {
2328                    t.updateSlides(), t.updateProgress(), t.updateSlidesClasses(), t.lazy && t.params.lazy.enabled && t.lazy.load();
2329                }
2330                if ((n.extend(t.virtual, { from: x, to: T, offset: E, slidesGrid: t.slidesGrid }), p === x && c === T && !e)) return t.slidesGrid !== v && E !== m && t.slides.css(g, E + "px"), void t.updateProgress();
2331                if (t.params.virtual.renderExternal)
2332                    return (
2333                        t.params.virtual.renderExternal.call(t, {
2334                            offset: E,
2335                            from: x,
2336                            to: T,
2337                            slides: (function () {
2338                                for (var e = [], t = x; t <= T; t += 1) e.push(u[t]);
2339                                return e;
2340                            })(),
2341                        }),
2342                        void S()
2343                    );
2344                var C = [],
2345                    M = [];
2346                if (e) t.$wrapperEl.find("." + t.params.slideClass).remove();
2347                else for (var P = p; P <= c; P += 1) (P < x || P > T) && t.$wrapperEl.find("." + t.params.slideClass + '[data-swiper-slide-index="' + P + '"]').remove();
2348                for (var z = 0; z < u.length; z += 1) z >= x && z <= T && (void 0 === c || e ? M.push(z) : (z > c && M.push(z), z < p && C.push(z)));
2349                M.forEach(function (e) {
2350                    t.$wrapperEl.append(f(u[e], e));
2351                }),
2352                    C.sort(function (e, t) {
2353                        return t - e;
2354                    }
2354).forEach(function (e) {
2355                        t.$wrapperEl.prepend(f(u[e], e));
2356                    }),
2357                    t.$wrapperEl.children(".swiper-slide").css(g, E + "px"),
2358                    S();
2359            },
2360            renderSlide: function (e, t) {
2361                var i = this.params.virtual;
2362                if (i.cache && this.virtual.cache[t]) return this.virtual.cache[t];
2363                var a = i.renderSlide ? s(i.renderSlide.call(this, e, t)) : s('<div class="' + this.params.slideClass + '" data-swiper-slide-index="' + t + '">' + e + "</div>");
2364                return a.attr("data-swiper-slide-index") || a.attr("data-swiper-slide-index", t), i.cache && (this.virtual.cache[t] = a), a;
2365            },
2366            appendSlide: function (e) {
2367                if ("object" == typeof e && "length" in e) for (var t = 0; t < e.length; t += 1) e[t] && this.virtual.slides.push(e[t]);
2368                else this.virtual.slides.push(e);
2369                this.virtual.update(!0);
2370            },
2371            prependSlide: function (e) {
2372                var t = this.activeIndex,
2373                    i = t + 1,
2374                    s = 1;
2375                if (Array.isArray(e)) {
2376                    for (var a = 0; a < e.length; a += 1) e[a] && this.virtual.slides.unshift(e[a]);
2377                    (i = t + e.length), (s = e.length);
2378                } else this.virtual.slides.unshift(e);
2379                if (this.params.virtual.cache) {
2380                    var r = this.virtual.cache,
2381                        n = {};
2382                    Object.keys(r).forEach(function (e) {
2383                        var t = r[e],
2384                            i = t.attr("data-swiper-slide-index");
2385                        i && t.attr("data-swiper-slide-index", parseInt(i, 10) + 1), (n[parseInt(e, 10) + s] = t);
2386                    }),
2387                        (this.virtual.cache = n);
2388                }
2389                this.virtual.update(!0), this.slideTo(i, 0);
2390            },
2391            removeSlide: function (e) {
2392                if (null != e) {
2393                    var t = this.activeIndex;
2394                    if (Array.isArray(e)) for (var i = e.length - 1; i >= 0; i -= 1) this.virtual.slides.splice(e[i], 1), this.params.virtual.cache && delete this.virtual.cache[e[i]], e[i] < t && (t -= 1), (t = Math.max(t, 0));
2395                    else this.virtual.slides.splice(e, 1), this.params.virtual.cache && delete this.virtual.cache[e], e < t && (t -= 1), (t = Math.max(t, 0));
2396                    this.virtual.update(!0), this.slideTo(t, 0);
2397                }
2398            },
2399            removeAllSlides: function () {
2400                (this.virtual.slides = []), this.params.virtual.cache && (this.virtual.cache = {}), this.virtual.update(!0), this.slideTo(0, 0);
2401            },
2402        },
2403        J = {
2404            name: "virtual",
2405            params: { virtual: { enabled: !1, slides: [], cache: !0, renderSlide: null, renderExternal: null, addSlidesBefore: 0, addSlidesAfter: 0 } },
2406            create: function () {
2407                n.extend(this, {
2408                    virtual: {
2409                        update: Q.update.bind(this),
2410                        appendSlide: Q.appendSlide.bind(this),
2411                        prependSlide: Q.prependSlide.bind(this),
2412                        removeSlide: Q.removeSlide.bind(this),
2413                        removeAllSlides: Q.removeAllSlides.bind(this),
2414                        renderSlide: Q.renderSlide.bind(this),
2415                        slides: this.params.virtual.slides,
2416                        cache: {},
2417                    },
2418                });
2419            },
2420            on: {
2421                beforeInit: function () {
2422                    if (this.params.virtual.enabled) {
2423                        this.classNames.push(this.params.containerModifierClass + "virtual");
2424                        var e = { watchSlidesProgress: !0 };
2425                        n.extend(this.params, e), n.extend(this.originalParams, e), this.params.initialSlide || this.virtual.update(
2425);
2426                    }
2427                },
2428                setTranslate: function () {
2429                    this.params.virtual.enabled && this.virtual.update();
2430                },
2431            },
2432        },
2433        ee = {
2434            handle: function (i) {
2435                var s = this.rtlTranslate,
2436                    a = i;
2437                a.originalEvent && (a = a.originalEvent);
2438                var r = a.keyCode || a.charCode;
2439                if (!this.allowSlideNext && ((this.isHorizontal() && 39 === r) || (this.isVertical() && 40 === r) || 34 === r)) return !1;
2440                if (!this.allowSlidePrev && ((this.isHorizontal() && 37 === r) || (this.isVertical() && 38 === r) || 33 === r)) return !1;
2441                if (!(a.shiftKey || a.altKey || a.ctrlKey || a.metaKey || (e.activeElement && e.activeElement.nodeName && ("input" === e.activeElement.nodeName.toLowerCase() || "textarea" === e.activeElement.nodeName.toLowerCase())))) {
2442                    if (this.params.keyboard.onlyInViewport && (33 === r || 34 === r || 37 === r || 39 === r || 38 === r || 40 === r)) {
2443                        var n = !1;
2444                        if (this.$el.parents("." + this.params.slideClass).length > 0 && 0 === this.$el.parents("." + this.params.slideActiveClass).length) return;
2445                        var o = t.innerWidth,
2446                            l = t.innerHeight,
2447                            d = this.$el.offset();
2448                        s && (d.left -= this.$el[0].scrollLeft);
2449                        for (
2450                            var h = [
2451                                    [d.left, d.top],
2452                                    [d.left + this.width, d.top],
2453                                    [d.left, d.top + this.height],
2454                                    [d.left + this.width, d.top + this.height],
2455                                ],
2456                                p = 0;
2457                            p < h.length;
2458                            p += 1
2459                        ) {
2460                            var c = h[p];
2461                            c[0] >= 0 && c[0] <= o && c[1] >= 0 && c[1] <= l && (n = !0);
2462                        }
2463                        if (!n) return;
2464                    }
2465                    this.isHorizontal()
2466                        ? ((33 !== r && 34 !== r && 37 !== r && 39 !== r) || (a.preventDefault ? a.preventDefault() : (a.returnValue = !1)),
2467                          (((34 !== r && 39 !== r) || s) && ((33 !== r && 37 !== r) || !s)) || this.slideNext(),
2468                          (((33 !== r && 37 !== r) || s) && ((34 !== r && 39 !== r) || !s)) || this.slidePrev())
2469                        : ((33 !== r && 34 !== r && 38 !== r && 40 !== r) || (a.preventDefault ? a.preventDefault() : (a.returnValue = !1)), (34 !== r && 40 !== r) || this.slideNext(), (33 !== r && 38 !== r) || this.slidePrev()),
2470                        this.emit("keyPress", r);
2471                }
2472            },
2473            enable: function () {
2474                this.keyboard.enabled || (s(e).on("keydown", this.keyboard.handle), (this.keyboard.enabled = !0));
2475            },
2476            disable: function () {
2477                this.keyboard.enabled && (s(e).off("keydown", this.keyboard.handle), (this.keyboard.enabled = !1));
2478            },
2479        },
2480        te = {
2481            name: "keyboard",
2482            params: { keyboard: { enabled: !1, onlyInViewport: !0 } },
2483            create: function () {
2484                n.extend(this, { keyboard: { enabled: !1, enable: ee.enable.bind(this), disable: ee.disable.bind(this), handle: ee.handle.bind(this) } });
2485            },
2486            on: {
2487                init: function () {
2488                    this.params.keyboard.enabled && this.keyboard.enable();
2489                },
2490                destroy: function () {
2491                    this.keyboard.enabled && this.keyboard.disable();
2492                },
2493            },
2494        };
2495    var ie = {
2496            lastScrollTime: n.now(),
2497            lastEventBeforeSnap: void 0,
2498            recentWheelEvents: [],
2499            event: function () {
2500                return t.navigator.userAgent.indexOf("firefox") > -1
2501                    ? "DOMMouseScroll"
2502                    : (function () {
2503                          var t = "onwheel" in e;
2504                          if (!t) {
2505                              var i = e.createElement("div");
2506                              i.setAttribute("onwheel", "return;"), (t = "function" == typeof i.onwheel);
2507                          }
2508                          return !t && e.implementation && e.implementation.hasFeature && !0 !== e.implementation.hasFeature("", "") && (t = e.implementation.hasFeature("Events.wheel", "3.0")), t;
2509                      })()
2510                    ? "wheel"
2511                    : "mousewheel";
2512            },
2513            normalize: function (e) {
2514                var t = 0,
2515                    i = 0,
2516                    s = 0,
2517                    a = 0;
2518                return (
2519                    "detail" in e && (i = e.detail),
2520                    "wheelDelta" in e && (i = -e.wheelDelta / 120),
2521                    "wheelDeltaY" in e && (i = -e.wheelDeltaY / 120),
2522                    "wheelDeltaX" in e && (t = -e.wheelDeltaX / 120),
2523                    "axis" in e && e.axis === e.HORIZONTAL_AXIS && ((t = i), (i = 0)),
2524                    (s = 10 * t),
2525                    (a = 10 * i),
2526                    "deltaY" in e && (a = e.deltaY),
2527                    "deltaX" in e && (s = e.deltaX),
2528                    e.shiftKey && !s && ((s = a), (a = 0)),
2529                    (s || a) && e.deltaMode && (1 === e.deltaMode ? ((s *= 40), (a *= 40)) : ((s *= 800), (a *= 800))),
2530                    s && !t && (t = s < 1 ? -1 : 1),
2531                    a && !i && (i = a < 1 ? -1 : 1),
2532                    { spinX: t, spinY: i, pixelX: s, pixelY: a }
2533                );
2534            },
2535            handleMouseEnter: function () {
2536                this.mouseEntered = !0;
2537            },
2538            handleMouseLeave: function () {
2539                this.mouseEntered = !1;
2540            },
2541            handle: function (e) {
2542                var t = e,
2543                    i = this,
2544                    a = i.params.mousewheel;
2545                i.params.cssMode && t.preventDefault();
2546                var r = i.$el;
2547                if (("container" !== i.params.mousewheel.eventsTarged && (r = s(i.params.mousewheel.eventsTarged)), !i.mouseEntered && !r[0].contains(t.target) && !a.releaseOnEdges)) return !0;
2548                t.originalEvent && (t = t.originalEvent);
2549                var o = 0,
2550                    l = i.rtlTranslate ? -1 : 1,
2551                    d = ie.normalize(t);
2552                if (a.forceToAxis)
2553                    if (i.isHorizontal()) {
2554                        if (!(Math.abs(d.pixelX) > Math.abs(d.pixelY))) return !0;
2555                        o = d.pixelX * l;
2556                    } else {
2557                        if (!(Math.abs(d.pixelY) > Math.abs(d.pixelX))) return !0;
2558                        o = d.pixelY;
2559                    }
2560                else o = Math.abs(d.pixelX) > Math.abs(d.pixelY) ? -d.pixelX * l : -d.pixelY;
2561                if (0 === o) return !0;
2562                if ((a.invert && (o = -o), i.params.freeMode)) {
2563                    var h = { time: n.now(), delta: Math.abs(o), direction: Math.sign(o) },
2564                        p = i.mousewheel.lastEventBeforeSnap,
2565                        c = p && h.time < p.time + 500 && h.delta <= p.delta && h.direction === p.direction;
2566                    if (!c) {
2567                        (i.mousewheel.lastEventBeforeSnap = void 0), i.params.loop && i.loopFix();
2568                        var u = i.getTranslate() + o * a.sensitivity,
2569                            v = i.isBeginning,
2570                            f = i.isEnd;
2571                        if (
2572                            (u >= i.minTranslate() && (u = i.minTranslate()),
2573                            u <= i.maxTranslate() && (u = i.maxTranslate()),
2574                            i.setTransition(0),
2575                            i.setTranslate(u),
2576                            i.updateProgress(),
2577                            i.updateActiveIndex(),
2578                            i.updateSlidesClasses(),
2579                            ((!v && i.isBeginning) || (!f && i.isEnd)) && i.updateSlidesClasses(),
2580                            i.params.freeModeSticky)
2581                        ) {
2582                            clearTimeout(i.mousewheel.timeout), (i.mousewheel.timeout = void 0);
2583                            var m = i.mousewheel.recentWheelEvents;
2584                            m.length >= 15 && m.shift();
2585                            var g = m.length ? m[m.length - 1] : void 0,
2586                                b = m[0];
2587                            if ((m.push(h), g && (h.delta > g.delta || h.direction !== g.direction))) m.splice(0);
2588                            else if (m.length >= 15 && h.time - b.time < 500 && b.delta - h.delta >= 1 && h.delta <= 6) {
2589                                var w = o > 0 ? 0.8 : 0.2;
2590                                (i.mousewheel.lastEventBeforeSnap = h),
2591                                    m.splice(0),
2592                                    (i.mousewheel.timeout = n.nextTick(function () {
2593                                        i.slideToClosest(i.params.speed, !0, void 0, w);
2594                                    }, 0));
2595                            }
2596                            i.mousewheel.timeout ||
2597                                (i.mousewheel.timeout = n.nextTick(function () {
2598                                    (i.mousewheel.lastEventBeforeSnap = h), m.splice(0), i.slideToClosest(i.params.speed, !0, void 0, 0.5);
2599                                }, 500));
2600                        }
2601                        if ((c || i.emit("scroll", t), i.params.autoplay && i.params.autoplayDisableOnInteraction && i.autoplay.stop(), u === i.minTranslate() || u === i.maxTranslate())) return !0;
2602                    }
2603                } else {
2604                    var y = { time: n.now(), delta: Math.abs(o), direction: Math.sign(o), raw: e },
2605                        x = i.mousewheel.recentWheelEvents;
2606                    x.length >= 2 && x.shift();
2607                    var T = x.length ? x[x.length - 1] : void 0;
2608                    if ((x.push(y), T ? (y.direction !== T.direction || y.delta > T.delta) && i.mousewheel.animateSlider(y) : i.mousewheel.animateSlider(y), i.mousewheel.releaseScroll(y))) return !0;
2609                }
2610                return t.preventDefault ? t.preventDefault() : (t.returnValue = !1), !1;
2611            },
2612            animateSlider: function (e) {
2613                return (
2614                    (e.delta >= 6 && n.now() - this.mousewheel.lastScrollTime < 60) ||
2615                    (e.direction < 0
2616                        ? (this.isEnd && !this.params.loop) || this.animating || (this.slideNext(), this.emit
2616("scroll", e.raw))
2617                        : (this.isBeginning && !this.params.loop) || this.animating || (this.slidePrev(), this.emit("scroll", e.raw)),
2618                    (this.mousewheel.lastScrollTime = new t.Date().getTime()),
2619                    !1)
2620                );
2621            },
2622            releaseScroll: function (e) {
2623                var t = this.params.mousewheel;
2624                if (e.direction < 0) {
2625                    if (this.isEnd && !this.params.loop && t.releaseOnEdges) return !0;
2626                } else if (this.isBeginning && !this.params.loop && t.releaseOnEdges) return !0;
2627                return !1;
2628            },
2629            enable: function () {
2630                var e = ie.event();
2631                if (this.params.cssMode) return this.wrapperEl.removeEventListener(e, this.mousewheel.handle), !0;
2632                if (!e) return !1;
2633                if (this.mousewheel.enabled) return !1;
2634                var t = this.$el;
2635                return (
2636                    "container" !== this.params.mousewheel.eventsTarged && (t = s(this.params.mousewheel.eventsTarged)),
2637                    t.on("mouseenter", this.mousewheel.handleMouseEnter),
2638                    t.on("mouseleave", this.mousewheel.handleMouseLeave),
2639                    t.on(e, this.mousewheel.handle),
2640                    (this.mousewheel.enabled = !0),
2641                    !0
2642                );
2643            },
2644            disable: function () {
2645                var e = ie.event();
2646                if (this.params.cssMode) return this.wrapperEl.addEventListener(e, this.mousewheel.handle), !0;
2647                if (!e) return !1;
2648                if (!this.mousewheel.enabled) return !1;
2649                var t = this.$el;
2650                return "container" !== this.params.mousewheel.eventsTarged && (t = s(this.params.mousewheel.eventsTarged)), t.off(e, this.mousewheel.handle), (this.mousewheel.enabled = !1), !0;
2651            },
2652        },
2653        se = {
2654            update: function () {
2655                var e = this.params.navigation;
2656                if (!this.params.loop) {
2657                    var t = this.navigation,
2658                        i = t.$nextEl,
2659                        s = t.$prevEl;
2660                    s && s.length > 0 && (this.isBeginning ? s.addClass(e.disabledClass) : s.removeClass(e.disabledClass), s[this.params.watchOverflow && this.isLocked ? "addClass" : "removeClass"](e.lockClass)),
2661                        i && i.length > 0 && (this.isEnd ? i.addClass(e.disabledClass) : i.removeClass(e.disabledClass), i[this.params.watchOverflow && this.isLocked ? "addClass" : "removeClass"](e.lockClass));
2662                }
2663            },
2664            onPrevClick: function (e) {
2665                e.preventDefault(), (this.isBeginning && !this.params.loop) || this.slidePrev();
2666            },
2667            onNextClick: function (e) {
2668                e.preventDefault(), (this.isEnd && !this.params.loop) || this.slideNext();
2669            },
2670            init: function () {
2671                var e,
2672                    t,
2673                    i = this.params.navigation;
2674                (i.nextEl || i.prevEl) &&
2675                    (i.nextEl && ((e = s(i.nextEl)), this.params.uniqueNavElements && "string" == typeof i.nextEl && e.length > 1 && 1 === this.$el.find(i.nextEl).length && (e = this.$el.find(i.nextEl))),
2676                    i.prevEl && ((t = s(i.prevEl)), this.params.uniqueNavElements && "string" == typeof i.prevEl && t.length > 1 && 1 === this.$el.find(i.prevEl).length && (t = this.$el.find(i.prevEl))),
2677                    e && e.length > 0 && e.on("click", this.navigation.onNextClick),
2678                    t && t.length > 0 && t.on("click", this.navigation.onPrevClick),
2679                    n.extend(this.navigation, { $nextEl: e, nextEl: e && e[0], $prevEl: t, prevEl: t && t[0] }));
2680            },
2681            destroy: function () {
2682                var e = this.navigation,
2683                    t = e.$nextEl,
2684                    i = e.$prevEl;
2685                t && t.length && (t.off("click", this.navigation.onNextClick), t.removeClass(this.params.navigation.disabledClass)),
2686                    i && i.length && (i.off("click", this.navigation.onPrevClick), i.removeClass(this.params.navigation.disabledClass));
2687            },
2688        },
2689        ae = {
2690            update: function () {
2691                var e = this.rtl,
2692                    t = this.params.pagination;
2693                if (t.el && this.pagination.el && this.pagination.$el && 0 !== this.pagination.$el.length) {
2694                    var i,
2695                        a = this.virtual && this.params.virtual.enabled ? this.virtual.slides.length : this.slides.length,
2696                        r = this.pagination.$el,
2697                        n = this.params.loop ? Math.ceil((a - 2 * this.loopedSlides) / this.params.slidesPerGroup) : this.snapGrid.length;
2698                    if (
2699                        (this.params.loop
2700                            ? ((i = Math.ceil((this.activeIndex - this.loopedSlides) / this.params.slidesPerGroup)) > a - 1 - 2 * this.loopedSlides && (i -= a - 2 * this.loopedSlides),
2701                              i > n - 1 && (i -= n),
2702                              i < 0 && "bullets" !== this.params.paginationType && (i = n + i))
2703                            : (i = void 0 !== this.snapIndex ? this.snapIndex : this.activeIndex || 0),
2704                        "bullets" === t.type && this.pagination.bullets && this.pagination.bullets.length > 0)
2705                    ) {
2706                        var o,
2707                            l,
2708                            d,
2709                            h = this.pagination.bullets;
2710                        if (
2711                            (t.dynamicBullets &&
2712                                ((this.pagination.bulletSize = h.eq(0)[this.isHorizontal() ? "outerWidth" : "outerHeight"](!0)),
2713                                r.css(this.isHorizontal() ? "width" : "height", this.pagination.bulletSize * (t.dynamicMainBullets + 4) + "px"),
2714                                t.dynamicMainBullets > 1 &&
2715                                    void 0 !== this.previousIndex &&
2716                                    ((this.pagination.dynamicBulletIndex += i - this.previousIndex),
2717                                    this.pagination.dynamicBulletIndex > t.dynamicMainBullets - 1
2718                                        ? (this.pagination.dynamicBulletIndex = t.dynamicMainBullets - 1)
2719                                        : this.pagination.dynamicBulletIndex < 0 && (this.pagination.dynamicBulletIndex = 0)),
2720                                (o = i - this.pagination.dynamicBulletIndex),
2721                                (d = ((l = o + (Math.min(h.length, t.dynamicMainBullets) - 1)) + o) / 2)),
2722                            h.removeClass(
2723                                t.bulletActiveClass + " " + t.bulletActiveClass + "-next " + t.bulletActiveClass + "-next-next " + t.bulletActiveClass + "-prev " + t.bulletActiveClass + "-prev-prev " + t.bulletActiveClass + "-main"
2724                            ),
2725                            r.length > 1)
2726                        )
2727                            h.each(function (e, a) {
2728                                var r = s(a),
2729                                    n = r.index();
2730                                n === i && r.addClass(t.bulletActiveClass),
2731                                    t.dynamicBullets &&
2732                                        (n >= o && n <= l && r.addClass(t.bulletActiveClass + "-main"),
2733                                        n === o &&
2734                                            r
2735                                                .prev()
2736                                                .addClass(t.bulletActiveClass + "-prev")
2737                                                .prev()
2738                                                .addClass(t.bulletActiveClass + "-prev-prev"),
2739                                        n === l &&
2740                                            r
2741                                                .next()
2742                                                .addClass(t.bulletActiveClass + "-next")
2743                                                .next()
2744                                                .addClass(t.bulletActiveClass + "-next-next"));
2745                            });
2746                        else {
2747                            var p = h.eq(i),
2748                                c = p.index();
2749                            if ((p.addClass(t.bulletActiveClass), t.dynamicBullets)) {
2750                                for (var u = h.eq(o), v = h.eq(l), f = o;
2750 f <= l; f += 1) h.eq(f).addClass(t.bulletActiveClass + "-main");
2751                                if (this.params.loop)
2752                                    if (c >= h.length - t.dynamicMainBullets) {
2753                                        for (var m = t.dynamicMainBullets; m >= 0; m -= 1) h.eq(h.length - m).addClass(t.bulletActiveClass + "-main");
2754                                        h.eq(h.length - t.dynamicMainBullets - 1).addClass(t.bulletActiveClass + "-prev");
2755                                    } else
2756                                        u
2757                                            .prev()
2758                                            .addClass(t.bulletActiveClass + "-prev")
2759                                            .prev()
2760                                            .addClass(t.bulletActiveClass + "-prev-prev"),
2761                                            v
2762                                                .next()
2763                                                .addClass(t.bulletActiveClass + "-next")
2764                                                .next()
2765                                                .addClass(t.bulletActiveClass + "-next-next");
2766                                else
2767                                    u
2768                                        .prev()
2769                                        .addClass(t.bulletActiveClass + "-prev")
2770                                        .prev()
2771                                        .addClass(t.bulletActiveClass + "-prev-prev"),
2772                                        v
2773                                            .next()
2774                                            .addClass(t.bulletActiveClass + "-next")
2775                                            .next()
2776                                            .addClass(t.bulletActiveClass + "-next-next");
2777                            }
2778                        }
2779                        if (t.dynamicBullets) {
2780                            var g = Math.min(h.length, t.dynamicMainBullets + 4),
2781                                b = (this.pagination.bulletSize * g - this.pagination.bulletSize) / 2 - d * this.pagination.bulletSize,
2782                                w = e ? "right" : "left";
2783                            h.css(this.isHorizontal() ? w : "top", b + "px");
2784                        }
2785                    }
2786                    if (("fraction" === t.type && (r.find("." + t.currentClass).text(t.formatFractionCurrent(i + 1)), r.find("." + t.totalClass).text(t.formatFractionTotal(n))), "progressbar" === t.type)) {
2787                        var y;
2788                        y = t.progressbarOpposite ? (this.isHorizontal() ? "vertical" : "horizontal") : this.isHorizontal() ? "horizontal" : "vertical";
2789                        var x = (i + 1) / n,
2790                            T = 1,
2791                            E = 1;
2792                        "horizontal" === y ? (T = x) : (E = x),
2793                            r
2794                                .find("." + t.progressbarFillClass)
2795                                .transform("translate3d(0,0,0) scaleX(" + T + ") scaleY(" + E + ")")
2796                                .transition(this.params.speed);
2797                    }
2798                    "custom" === t.type && t.renderCustom ? (r.html(t.renderCustom(this, i + 1, n)), this.emit("paginationRender", this, r[0])) : this.emit("paginationUpdate", this, r[0]),
2799                        r[this.params.watchOverflow && this.isLocked ? "addClass" : "removeClass"](t.lockClass);
2800                }
2801            },
2802            render: function () {
2803                var e = this.params.pagination;
2804                if (e.el && this.pagination.el && this.pagination.$el && 0 !== this.pagination.$el.length) {
2805                    var t = this.virtual && this.params.virtual.enabled ? this.virtual.slides.length : this.slides.length,
2806                        i = this.pagination.$el,
2807                        s = "";
2808                    if ("bullets" === e.type) {
2809                        for (var a = this.params.loop ? Math.ceil((t - 2 * this.loopedSlides) / this.params.slidesPerGroup) : this.snapGrid.length, r = 0; r < a; r += 1)
2810                            e.renderBullet ? (s += e.renderBullet.call(this, r, e.bulletClass)) : (s += "<" + e.bulletElement + ' class="' + e.bulletClass + '"></' + e.bulletElement + ">");
2811                        i.html(s), (this.pagination.bullets = i.find("." + e.bulletClass));
2812                    }
2813                    "fraction" === e.type && ((s = e.renderFraction ? e.renderFraction.call(this, e.currentClass, e.totalClass) : '<span class="' + e.currentClass + '"></span> / <span class="' + e.totalClass + '"></span>'), i.html(s)),
2814                        "progressbar" === e.type && ((s = e.renderProgressbar ? e.renderProgressbar.call(this, e.progressbarFillClass) : '<span class="' + e.progressbarFillClass + '"></span>'), i.html(s)),
2815                        "custom" !== e.type && this.emit("paginationRender", this.pagination.$el[0]);
2816                }
2817            },
2818            init: function () {
2819                var e = this,
2820                    t = e.params.pagination;
2821                if (t.el) {
2822                    var i = s(t.el);
2823                    0 !== i.length &&
2824                        (e.params.uniqueNavElements && "string" == typeof t.el && i.length > 1 && 1 === e.$el.find(t.el).length && (i = e.$el.find(t.el)),
2825                        "bullets" === t.type && t.clickable && i.addClass(t.clickableClass),
2826                        i.addClass(t.modifierClass + t.type),
2827                        "bullets" === t.type && t.dynamicBullets && (i.addClass("" + t.modifierClass + t.type + "-dynamic"), (e.pagination.dynamicBulletIndex = 0), t.dynamicMainBullets < 1 && (t.dynamicMainBullets = 1)),
2828                        "progressbar" === t.type && t.progressbarOpposite && i.addClass(t.progressbarOppositeClass),
2829                        t.clickable &&
2830                            i.on("click", "." + t.bulletClass, function (t) {
2831                                t.preventDefault();
2832                                var i = s(this).index() * e.params.slidesPerGroup;
2833                                e.params.loop && (i += e.loopedSlides), e.slideTo(i);
2834                            }),
2835                        n.extend(e.pagination, { $el: i, el: i[0] }));
2836                }
2837            },
2838            destroy: function () {
2839                var e = this.params.pagination;
2840                if (e.el && this.pagination.el && this.pagination.$el && 0 !== this.pagination.$el.length) {
2841                    var t = this.pagination.$el;
2842                    t.removeClass(e.hiddenClass), t.removeClass(e.modifierClass + e.type), this.pagination.bullets && this.pagination.bullets.removeClass(e.bulletActiveClass), e.clickable && t.off("click", "." + e.bulletClass);
2843                }
2844            },
2845        },
2846        re = {
2847            setTranslate: function () {
2848                if (this.params.scrollbar.el && this.scrollbar.el) {
2849                    var e = this.scrollbar,
2850                        t = this.rtlTranslate,
2851                        i = this.progress,
2852                        s = e.dragSize,
2853                        a = e.trackSize,
2854                        r = e.$dragEl,
2855                        n = e.$el,
2856                        o = this.params.scrollbar,
2857                        l = s,
2858                        d = (a - s) * i;
2859                    t ? ((d = -d) > 0 ? ((l = s - d), (d = 0)) : -d + s > a && (l = a + d)) : d < 0 ? ((l = s + d), (d = 0)) : d + s > a && (l = a - d),
2860                        this.isHorizontal() ? (r.transform("translate3d(" + d + "px, 0, 0)"), (r[0].style.width = l + "px")) : (r.transform("translate3d(0px, " + d + "px, 0)"), (r[0].style.height = l + "px")),
2861                        o.hide &&
2862                            (clearTimeout(this.scrollbar.timeout),
2863                            (n[0].style.opacity = 1),
2864                            (this.scrollbar.timeout = setTimeout(function () {
2865                                (n[0].style.opacity = 0), n.transition(400);
2866                            }, 1e3)));
2867                }
2868            },
2869            setTransition: function (e) {
2870                this.params.scrollbar.el && this.scrollbar.el && this.scrollbar.$dragEl.transition(e);
2871            },
2872            updateSize: function () {
2873                if (this.params.scrollbar.el && this.scrollbar.el) {
2874                    var e = this.scrollbar,
2875                        t = e.$dragEl,
2876                        i = e.$el;
2877                    (t[0].style.width = ""), (t[0].style.height = "");
2878                    var s,
2879                        a = this.isHorizontal() ? i[0].offsetWidth : i[0].offsetHeight,
2880                        r = this.size / this.virtualSize,
2881                        o = r * (a / this.size);
2882                    (s = "auto" === this.params.scrollbar.dragSize ? a * r : parseInt(this.params.scrollbar.dragSize, 10)),
2883                        this.isHorizontal() ? (t[0].style.width = s + "px") : (t[0].style.height = s + "px"),
2884                        (i[0].style.display = r >= 1 ? "none" : ""),
2885                        this.params.scrollbar.hide && (i[0].style.opacity = 0),
2886                        n.extend(e, { trackSize: a, divider: r, moveDivider: o, dragSize: s }),
2887                        e.$el[this.params.watchOverflow && this.isLocked ? "addClass" : "removeClass"](this.params.scrollbar.lockClass);
2888                }
2889            },
2890            getPointerPosition: function (e) {
2891                return this.isHorizontal() ? ("touchstart" === e.type || "touchmove" === e.type ? e.targetTouches[0].clientX : e.clientX) : "touchstart" === e.type || "touchmove" === e.type ? e.targetTouches[0].clientY : e.clientY;
2892            },
2893            setDragPosition: function (e) {
2894                var t,
2895                    i = this.scrollbar,
2896                    s = this.rtlTranslate,
2897                    a = i.$el,
2898                    r = i.dragSize,
2899                    n = i.trackSize,
2900                    o = i.dragStartPos;
2901                (t = (i.getPointerPosition(e) - a.offset()[this.isHorizontal() ? "left" : "top"] - (null !== o ? o : r / 2)) / (n - r)), (t = Math.max(Math.min(t, 1), 0
2901)), s && (t = 1 - t);
2902                var l = this.minTranslate() + (this.maxTranslate() - this.minTranslate()) * t;
2903                this.updateProgress(l), this.setTranslate(l), this.updateActiveIndex(), this.updateSlidesClasses();
2904            },
2905            onDragStart: function (e) {
2906                var t = this.params.scrollbar,
2907                    i = this.scrollbar,
2908                    s = this.$wrapperEl,
2909                    a = i.$el,
2910                    r = i.$dragEl;
2911                (this.scrollbar.isTouched = !0),
2912                    (this.scrollbar.dragStartPos = e.target === r[0] || e.target === r ? i.getPointerPosition(e) - e.target.getBoundingClientRect()[this.isHorizontal() ? "left" : "top"] : null),
2913                    e.preventDefault(),
2914                    e.stopPropagation(),
2915                    s.transition(100),
2916                    r.transition(100),
2917                    i.setDragPosition(e),
2918                    clearTimeout(this.scrollbar.dragTimeout),
2919                    a.transition(0),
2920                    t.hide && a.css("opacity", 1),
2921                    this.params.cssMode && this.$wrapperEl.css("scroll-snap-type", "none"),
2922                    this.emit("scrollbarDragStart", e);
2923            },
2924            onDragMove: function (e) {
2925                var t = this.scrollbar,
2926                    i = this.$wrapperEl,
2927                    s = t.$el,
2928                    a = t.$dragEl;
2929                this.scrollbar.isTouched && (e.preventDefault ? e.preventDefault() : (e.returnValue = !1), t.setDragPosition(e), i.transition(0), s.transition(0), a.transition(0), this.emit("scrollbarDragMove", e));
2930            },
2931            onDragEnd: function (e) {
2932                var t = this.params.scrollbar,
2933                    i = this.scrollbar,
2934                    s = this.$wrapperEl,
2935                    a = i.$el;
2936                this.scrollbar.isTouched &&
2937                    ((this.scrollbar.isTouched = !1),
2938                    this.params.cssMode && (this.$wrapperEl.css("scroll-snap-type", ""), s.transition("")),
2939                    t.hide &&
2940                        (clearTimeout(this.scrollbar.dragTimeout),
2941                        (this.scrollbar.dragTimeout = n.nextTick(function () {
2942                            a.css("opacity", 0), a.transition(400);
2943                        }, 1e3))),
2944                    this.emit("scrollbarDragEnd", e),
2945                    t.snapOnRelease && this.slideToClosest());
2946            },
2947            enableDraggable: function () {
2948                if (this.params.scrollbar.el) {
2949                    var t = this.scrollbar,
2950                        i = this.touchEventsTouch,
2951                        s = this.touchEventsDesktop,
2952                        a = this.params,
2953                        r = t.$el[0],
2954                        n = !(!o.passiveListener || !a.passiveListeners) && { passive: !1, capture: !1 },
2955                        l = !(!o.passiveListener || !a.passiveListeners) && { passive: !0, capture: !1 };
2956                    o.touch
2957                        ? (r.addEventListener(i.start, this.scrollbar.onDragStart, n), r.addEventListener(i.move, this.scrollbar.onDragMove, n), r.addEventListener(i.end, this.scrollbar.onDragEnd, l))
2958                        : (r.addEventListener(s.start, this.scrollbar.onDragStart, n), e.addEventListener(s.move, this.scrollbar.onDragMove, n), e.addEventListener(s.end, this.scrollbar.onDragEnd, l));
2959                }
2960            },
2961            disableDraggable: function () {
2962                if (this.params.scrollbar.el) {
2963                    var t = this.scrollbar,
2964                        i = this.touchEventsTouch,
2965                        s = this.touchEventsDesktop,
2966                        a = this.params,
2967                        r = t.$el[0],
2968                        n = !(!o.passiveListener || !a.passiveListeners) && { passive: !1, capture: !1 },
2969                        l = !(!o.passiveListener || !a.passiveListeners) && { passive: !0, capture: !1 };
2970                    o.touch
2971                        ? (r.removeEventListener(i.start, this.scrollbar.onDragStart, n), r.removeEventListener(i.move, this.scrollbar.onDragMove, n), r.removeEventListener(i.end, this.scrollbar.onDragEnd, l))
2972                        : (r.removeEventListener(s.start, this.scrollbar.onDragStart, n), e.removeEventListener(s.move, this.scrollbar.onDragMove, n), e.removeEventListener(s.end, this.scrollbar.onDragEnd, l));
2973                }
2974            },
2975            init: function () {
2976                if (this.params.scrollbar.el) {
2977                    var e = this.scrollbar,
2978                        t = this.$el,
2979                        i = this.params.scrollbar,
2980                        a = s(i.el);
2981                    this.params.uniqueNavElements && "string" == typeof i.el && a.length > 1 && 1 === t.find(i.el).length && (a = t.find(i.el));
2982                    var r = a.find("." + this.params.scrollbar.dragClass);
2983                    0 === r.length && ((r = s('<div class="' + this.params.scrollbar.dragClass + '"></div>')), a.append(r)), n.extend(e, { $el: a, el: a[0], $dragEl: r, dragEl: r[0] }), i.draggable && e.enableDraggable();
2984                }
2985            },
2986            destroy: function () {
2987                this.scrollbar.disableDraggable();
2988            },
2989        },
2990        ne = {
2991            setTransform: function (e, t) {
2992                var i = this.rtl,
2993                    a = s(e),
2994                    r = i ? -1 : 1,
2995                    n = a.attr("data-swiper-parallax") || "0",
2996                    o = a.attr("data-swiper-parallax-x"),
2997                    l = a.attr("data-swiper-parallax-y"),
2998                    d = a.attr("data-swiper-parallax-scale"),
2999                    h = a.attr("data-swiper-parallax-opacity");
3000                if (
3001                    (o || l ? ((o = o || "0"), (l = l || "0")) : this.isHorizontal() ? ((o = n), (l = "0")) : ((l = n), (o = "0")),
3002                    (o = o.indexOf("%") >= 0 ? parseInt(o, 10) * t * r + "%" : o * t * r + "px"),
3003                    (l = l.indexOf("%") >= 0 ? parseInt(l, 10) * t + "%" : l * t + "px"),
3004                    null != h)
3005                ) {
3006                    var p = h - (h - 1) * (1 - Math.abs(t));
3007                    a[0].style.opacity = p;
3008                }
3009                if (null == d) a.transform("translate3d(" + o + ", " + l + ", 0px)");
3010                else {
3011                    var c = d - (d - 1) * (1 - Math.abs(t));
3012                    a.transform("translate3d(" + o + ", " + l + ", 0px) scale(" + c + ")");
3013                }
3014            },
3015            setTranslate: function () {
3016                var e = this,
3017                    t = e.$el,
3018                    i = e.slides,
3019                    a = e.progress,
3020                    r = e.snapGrid;
3021                t.children("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each(function (t, i) {
3022                    e.parallax.setTransform(i, a);
3023                }),
3024                    i.each(function (t, i) {
3025                        var n = i.progress;
3026                        e.params.slidesPerGroup > 1 && "auto" !== e.params.slidesPerView && (n += Math.ceil(t / 2) - a * (r.length - 1)),
3027                            (n = Math.min(Math.max(n, -1), 1)),
3028                            s(i)
3029                                .find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]")
3030                                .each(function (t, i) {
3031                                    e.parallax.setTransform(i, n);
3032                                });
3033                    });
3034            },
3035            setTransition: function (e) {
3036                void 0 === e && (e = this.params.speed);
3037                this.$el.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each(function (t, i) {
3038                    var a = s(i),
3039                        r = parseInt(a.attr("data-swiper-parallax-duration"), 10) || e;
3040                    0 === e && (r = 0), a.transition(r);
3041                });
3042            },
3043        },
3044        oe = {
3045            getDistanceBetweenTouches: function (e) {
3046                if (e.targetTouches.length < 2) return 1;
3047                var t = e.targetTouches[0].pageX,
3048                    i = e.targetTouches[0].pageY,
3049                    s = e.targetTouches[1].pageX,
3050                    a = e.targetTouches[1].pageY;
3051                return Math.sqrt(Math.pow(s - t, 2) + Math.pow(a - i, 2));
3052            },
3053            onGestureStart: function (e) {
3054                var t = this.params.zoom,
3055                    i = this.zoom,
3056                    a = i.gesture;
3057                if (((i.fakeGestureTouched = !1), (i.fakeGestureMoved = !1), !o.gestures)) {
3058                    if ("touchstart" !== e.type || ("touchstart" === e.type && e.targetTouches.length < 2)) return;
3059                    (i.fakeGestureTouched = !0), (a.scaleStart = oe.getDistanceBetweenTouches(e));
3060                }
3061                (a.$slideEl && a.$slideEl.length) ||
3062                ((a.$slideEl = s(e.target).closest("." + this.params.slideClass)),
3063                0 === a.$slideEl.length && (a.$slideEl = this.slides.eq(this.activeIndex)),
3064                (a.$imageEl = a.$slideEl.find("img, svg, canvas, picture, .swiper-zoom-target")),
3065                (a.$imageWrapEl = a.$imageEl.parent("." + t.containerClass)),
3066                (a.maxRatio = a.$imageWrapEl.attr("data-swiper-zoom") || t.maxRatio),
3067                0 !== a.$imageWrapEl.length)
3068                    ? (a.$imageEl && a.$imageEl.transition(0), (this.zoom.isScaling = !0))
3069                    : (a.$imageEl = void 0);
3070            },
3071            onGestureChange: function (e) {
3072                var t = this.params.zoom,
3073                    i = this.zoom,
3074                    s = i.gesture;
3075                if (!o.gestures) {
3076                    if ("touchmove" !== e.type || ("touchmove" === e.type && e.targetTouches.length < 2)) return;
3077                    (i.fakeGestureMoved = !0), (s.scaleMove = oe.getDistanceBetweenTouches(e));
3078                }
3079                s.$imageEl &&
3080                    0 !== s.$imageEl.length &&
3081                    ((i.scale = o.gestures ? e.scale * i.currentScale : (s.scaleMove / s.scaleStart) * i.currentScale),
3082                    i.scale > s.maxRatio && (i.scale = s.maxRatio - 1 + Math.pow(i.scale - s.maxRatio + 1, 0.5)),
3083                    i.scale < t.minRatio && (i.scale = t.minRatio + 1 - Math.pow(t.minRatio - i.scale + 1, 0.5)),
3084                    s.$imageEl.transform("translate3d(0,0,0) scale(" + i.scale + ")"));
3085            },
3086            onGestureEnd: function (e) {
3087                var t = this.params.zoom,
3088                    i = this.zoom,
3089                    s = i.gesture;
3090                if (!o.gestures) {
3091                    if (!i.fakeGestureTouched || !i.fakeGestureMoved) return;
3092                    if ("touchend" !== e.type || ("touchend" === e.type && e.changedTouches.length < 2 && !I.android)) return;
3093                    (i.fakeGestureTouched = !1), (i.fakeGestureMoved = !1);
3094                }
3095                s.$imageEl &&
3096                    0 !== s.$imageEl.length &&
3097                    ((i.scale = Math.max(Math.min(i.scale, s.maxRatio), t.minRatio)),
3098                    s.$imageEl.transition(this.params.speed).transform("translate3d(0,0,0) scale(" + i.scale + ")"),
3099                    (i.currentScale = i.scale),
3100                    (i.isScaling = !1),
3101                    1 === i.scale && (s.$slideEl = void 0));
3102            },
3103            onTouchStart: function (e) {
3104                var t = this.zoom,
3105                    i = t.gesture,
3106                    s = t.image;
3107                i.$imageEl &&
3108                    0 !== i.$imageEl.length &&
3109                    (s.isTouched ||
3110                        (I.android && e.preventDefault(),
3111                        (s.isTouched = !0),
3112                        (s.touchesStart.x = "touchstart" === e.type ? e.targetTouches[0].pageX : e.pageX),
3113                        (s.touchesStart.y = "touchstart" === e.type ? e.targetTouches[0].pageY : e.pageY)));
3114            },
3115            onTouchMove: function (e) {
3116                var t = this.zoom,
3117                    i = t.gesture,
3118                    s = t.image,
3119                    a = t.velocity;
3120                if (i.$imageEl && 0 !== i.$imageEl.length && ((this.allowClick = !1), s.isTouched && i.$slideEl)) {
3121                    s.isMoved ||
3122                        ((s.width = i.$imageEl[0].offsetWidth),
3123                        (s.height = i.$imageEl[0].offsetHeight),
3124                        (s.startX = n.getTranslate(i.$imageWrapEl[0], "x") || 0),
3125                        (s.startY = n.getTranslate(i.$imageWrapEl[0], "y") || 0),
3126                        (i.slideWidth = i.$slideEl[0].offsetWidth),
3127                        (i.slideHeight = i.$slideEl[0].offsetHeight),
3128                        i.$imageWrapEl.transition(0),
3129                        this.rtl && ((s.startX = -s.startX), (s.startY = -s.startY)));
3130                    var r = s.width * t.scale,
3131                        o = s.height * t.scale;
3132                    if (!(r < i.slideWidth && o < i.slideHeight)) {
3133                        if (
3134                            ((s.minX = Math.min(i.slideWidth / 2 - r / 2, 0)),
3135                            (s.maxX = -s.minX),
3136                            (s.minY = Math.min(i.slideHeight / 2 - o / 2, 0)),
3137                            (s.maxY = -s.minY),
3138                            (s.touchesCurrent.x = "touchmove" === e.type ? e.targetTouches[0].pageX : e.pageX),
3139                            (s.touchesCurrent.y = "touchmove" === e.type ? e.targetTouches[0].pageY : e.pageY),
3140                            !s.isMoved && !t.isScaling)
3141                        ) {
3142                            if (this.isHorizontal() && ((Math.floor(s.minX) === Math.floor(s.startX) && s.touchesCurrent.x < s.touchesStart.x) || (Math.floor(s.maxX) === Math.floor(s.startX) && s.touchesCurrent.x > s.touchesStart.x)))
3143                                return void (s.isTouched = !1);
3144                            if (!this.isHorizontal() && ((Math.floor(s.minY) === Math.floor(s.startY) && s.touchesCurrent.y < s.touchesStart.y) || (Math.floor(s.maxY) === Math.floor(s.startY) && s.touchesCurrent.y > s.touchesStart.y)))
3145                                return void (s.isTouched = !1);
3146                        }
3147                        e.preventDefault(),
3148                            e.stopPropagation(),
3149                            (s.isMoved = !0),
3150                            (s.currentX = s.touchesCurrent.x - s.touchesStart.x + s.startX),
3151                            (s.currentY = s.touchesCurrent.y - s.touchesStart.y + s.startY),
3152                            s.currentX < s.minX && (s.currentX = s.minX + 1 - Math.pow(s.minX - s.currentX + 1, 0.8)),
3153                            s.currentX > s.maxX && (s.currentX = s.maxX - 1 + Math.pow(s.currentX - s.maxX + 1, 0.8)),
3154                            s.currentY < s.minY && (s.currentY = s.minY + 1 - Math.pow(s.minY - s.currentY + 1, 0.8)),
3155                            s.currentY > s.maxY && (s.currentY = s.maxY - 1 + Math.pow(s.currentY - s.maxY + 1, 0.8)),
3156                            a.prevPositionX || (a.prevPositionX = s.touchesCurrent.x),
3157                            a.prevPositionY || (a.prevPositionY = s.touchesCurrent.y),
3158                            a.prevTime || (a.prevTime = Date.now()),
3159                            (a.x = (s.touchesCurrent.x - a.prevPositionX) / (Date.now() - a.prevTime) / 2),
3160                            (a.y = (s.touchesCurrent.y - a.prevPositionY) / (Date.now() - a.prevTime) / 2),
3161                            Math.abs(s.touchesCurrent.x - a.prevPositionX) < 2 && (a.x = 0),
3162                            Math.abs(s.touchesCurrent.y - a.prevPositionY) < 2 && (a.y = 0),
3163                            (a.prevPositionX = s.touchesCurrent.x),
3164                            (a.prevPositionY = s.touchesCurrent.y),
3165                            (a.prevTime = Date.now()),
3166                            i.$imageWrapEl.transform("translate3d(" + s.currentX + "px, " + s.currentY + "px,0
3166)");
3167                    }
3168                }
3169            },
3170            onTouchEnd: function () {
3171                var e = this.zoom,
3172                    t = e.gesture,
3173                    i = e.image,
3174                    s = e.velocity;
3175                if (t.$imageEl && 0 !== t.$imageEl.length) {
3176                    if (!i.isTouched || !i.isMoved) return (i.isTouched = !1), void (i.isMoved = !1);
3177                    (i.isTouched = !1), (i.isMoved = !1);
3178                    var a = 300,
3179                        r = 300,
3180                        n = s.x * a,
3181                        o = i.currentX + n,
3182                        l = s.y * r,
3183                        d = i.currentY + l;
3184                    0 !== s.x && (a = Math.abs((o - i.currentX) / s.x)), 0 !== s.y && (r = Math.abs((d - i.currentY) / s.y));
3185                    var h = Math.max(a, r);
3186                    (i.currentX = o), (i.currentY = d);
3187                    var p = i.width * e.scale,
3188                        c = i.height * e.scale;
3189                    (i.minX = Math.min(t.slideWidth / 2 - p / 2, 0)),
3190                        (i.maxX = -i.minX),
3191                        (i.minY = Math.min(t.slideHeight / 2 - c / 2, 0)),
3192                        (i.maxY = -i.minY),
3193                        (i.currentX = Math.max(Math.min(i.currentX, i.maxX), i.minX)),
3194                        (i.currentY = Math.max(Math.min(i.currentY, i.maxY), i.minY)),
3195                        t.$imageWrapEl.transition(h).transform("translate3d(" + i.currentX + "px, " + i.currentY + "px,0)");
3196                }
3197            },
3198            onTransitionEnd: function () {
3199                var e = this.zoom,
3200                    t = e.gesture;
3201                t.$slideEl &&
3202                    this.previousIndex !== this.activeIndex &&
3203                    (t.$imageEl && t.$imageEl.transform("translate3d(0,0,0) scale(1)"),
3204                    t.$imageWrapEl && t.$imageWrapEl.transform("translate3d(0,0,0)"),
3205                    (e.scale = 1),
3206                    (e.currentScale = 1),
3207                    (t.$slideEl = void 0),
3208                    (t.$imageEl = void 0),
3209                    (t.$imageWrapEl = void 0));
3210            },
3211            toggle: function (e) {
3212                var t = this.zoom;
3213                t.scale && 1 !== t.scale ? t.out() : t.in(e);
3214            },
3215            in: function (e) {
3216                var t,
3217                    i,
3218                    s,
3219                    a,
3220                    r,
3221                    n,
3222                    o,
3223                    l,
3224                    d,
3225                    h,
3226                    p,
3227                    c,
3228                    u,
3229                    v,
3230                    f,
3231                    m,
3232                    g = this.zoom,
3233                    b = this.params.zoom,
3234                    w = g.gesture,
3235                    y = g.image;
3236                (w.$slideEl ||
3237                    (this.params.virtual && this.params.virtual.enabled && this.virtual ? (w.$slideEl = this.$wrapperEl.children("." + this.params.slideActiveClass)) : (w.$slideEl = this.slides.eq(this.activeIndex)),
3238                    (w.$imageEl = w.$slideEl.find("img, svg, canvas, picture, .swiper-zoom-target")),
3239                    (w.$imageWrapEl = w.$imageEl.parent("." + b.containerClass))),
3240                w.$imageEl && 0 !== w.$imageEl.length) &&
3241                    (w.$slideEl.addClass("" + b.zoomedSlideClass),
3242                    void 0 === y.touchesStart.x && e
3243                        ? ((t = "touchend" === e.type ? e.changedTouches[0].pageX : e.pageX), (i = "touchend" === e.type ? e.changedTouches[0].pageY : e.pageY))
3244                        : ((t = y.touchesStart.x), (i = y.touchesStart.y)),
3245                    (g.scale = w.$imageWrapEl.attr("data-swiper-zoom") || b.maxRatio),
3246                    (g.currentScale = w.$imageWrapEl.attr("data-swiper-zoom") || b.maxRatio),
3247                    e
3248                        ? ((f = w.$slideEl[0].offsetWidth),
3249                          (m = w.$slideEl[0].offsetHeight),
3250                          (s = w.$slideEl.offset().left + f / 2 - t),
3251                          (a = w.$slideEl.offset().top + m / 2 - i),
3252                          (o = w.$imageEl[0].offsetWidth),
3253                          (l = w.$imageEl[0].offsetHeight),
3254                          (d = o * g.scale),
3255                          (h = l * g.scale),
3256                          (u = -(p = Math.min(f / 2 - d / 2, 0))),
3257                          (v = -(c = Math.min(m / 2 - h / 2, 0))),
3258                          (r = s * g.scale) < p && (r = p),
3259                          r > u && (r = u),
3260                          (n = a * g.scale) < c && (n = c),
3261                          n > v && (n = v))
3262                        : ((r = 0), (n = 0)),
3263                    w.$imageWrapEl.transition(300).transform("translate3d(" + r + "px, " + n + "px,0)"),
3264                    w.$imageEl.transition(300).transform("translate3d(0,
32640,0) scale(" + g.scale + ")"));
3265            },
3266            out: function () {
3267                var e = this.zoom,
3268                    t = this.params.zoom,
3269                    i = e.gesture;
3270                i.$slideEl ||
3271                    (this.params.virtual && this.params.virtual.enabled && this.virtual ? (i.$slideEl = this.$wrapperEl.children("." + this.params.slideActiveClass)) : (i.$slideEl = this.slides.eq(this.activeIndex)),
3272                    (i.$imageEl = i.$slideEl.find("img, svg, canvas, picture, .swiper-zoom-target")),
3273                    (i.$imageWrapEl = i.$imageEl.parent("." + t.containerClass))),
3274                    i.$imageEl &&
3275                        0 !== i.$imageEl.length &&
3276                        ((e.scale = 1),
3277                        (e.currentScale = 1),
3278                        i.$imageWrapEl.transition(300).transform("translate3d(0,0,0)"),
3279                        i.$imageEl.transition(300).transform("translate3d(0,0,0) scale(1)"),
3280                        i.$slideEl.removeClass("" + t.zoomedSlideClass),
3281                        (i.$slideEl = void 0));
3282            },
3283            enable: function () {
3284                var e = this.zoom;
3285                if (!e.enabled) {
3286                    e.enabled = !0;
3287                    var t = !("touchstart" !== this.touchEvents.start || !o.passiveListener || !this.params.passiveListeners) && { passive: !0, capture: !1 },
3288                        i = !o.passiveListener || { passive: !1, capture: !0 },
3289                        s = "." + this.params.slideClass;
3290                    o.gestures
3291                        ? (this.$wrapperEl.on("gesturestart", s, e.onGestureStart, t), this.$wrapperEl.on("gesturechange", s, e.onGestureChange, t), this.$wrapperEl.on("gestureend", s, e.onGestureEnd, t))
3292                        : "touchstart" === this.touchEvents.start &&
3293                          (this.$wrapperEl.on(this.touchEvents.start, s, e.onGestureStart, t),
3294                          this.$wrapperEl.on(this.touchEvents.move, s, e.onGestureChange, i),
3295                          this.$wrapperEl.on(this.touchEvents.end, s, e.onGestureEnd, t),
3296                          this.touchEvents.cancel && this.$wrapperEl.on(this.touchEvents.cancel, s, e.onGestureEnd, t)),
3297                        this.$wrapperEl.on(this.touchEvents.move, "." + this.params.zoom.containerClass, e.onTouchMove, i);
3298                }
3299            },
3300            disable: function () {
3301                var e = this.zoom;
3302                if (e.enabled) {
3303                    this.zoom.enabled = !1;
3304                    var t = !("touchstart" !== this.touchEvents.start || !o.passiveListener || !this.params.passiveListeners) && { passive: !0, capture: !1 },
3305                        i = !o.passiveListener || { passive: !1, capture: !0 },
3306                        s = "." + this.params.slideClass;
3307                    o.gestures
3308                        ? (this.$wrapperEl.off("gesturestart", s, e.onGestureStart, t), this.$wrapperEl.off("gesturechange", s, e.onGestureChange, t), this.$wrapperEl.off("gestureend", s, e.onGestureEnd, t))
3309                        : "touchstart" === this.touchEvents.start &&
3310                          (this.$wrapperEl.off(this.touchEvents.start, s, e.onGestureStart, t),
3311                          this.$wrapperEl.off(this.touchEvents.move, s, e.onGestureChange, i),
3312                          this.$wrapperEl.off(this.touchEvents.end, s, e.onGestureEnd, t),
3313                          this.touchEvents.cancel && this.$wrapperEl.off(this.touchEvents.cancel, s, e.onGestureEnd, t)),
3314                        this.$wrapperEl.off(this.touchEvents.move, "." + this.params.zoom.containerClass, e.onTouchMove, i);
3315                }
3316            },
3317        },
3318        le = {
3319            loadInSlide: function (e, t) {
3320                void 0 === t && (t = !0);
3321                var i = this,
3322                    a = i.params.lazy;
3323                if (void 0 !== e && 0 !== i.slides.length) {
3324                    var r = i.virtual && i.params.virtual.enabled ? i.$wrapperEl.children("." + i.params.slideClass + '[data-swiper-slide-index="' + e + '"]') : i.slides.eq(e),
3325                        n = r.find("." + a.elementClass + ":not(." + a.loadedClass + "):not(." + a.loadingClass + ")");
3326                    !r.hasClass(a.elementClass) || r.hasClass(a.loadedClass) || r.hasClass(a.loadingClass) || (n = n.add(r[0])),
3327                        0 !== n.length &&
3328                            n.each(function (e, n) {
3329                                var o = s(n);
3330                                o.addClass(a.loadingClass);
3331                                var l = o.attr("data-background"),
3332                                    d = o.attr("data-src"),
3333                                    h = o.attr("data-srcset"),
3334                                    p = o.attr("data-sizes");
3335                                i.loadImage(o[0], d || l, h, p, !1, function () {
3336                                    if (null != i && i && (!i || i.params) && !i.destroyed) {
3337                                        if (
3338                                            (l
3339                                                ? (o.css("background-image", 'url("' + l + '")'), o.removeAttr("data-background"))
3340                                                : (h && (o.attr("srcset", h), o.removeAttr("data-srcset")), p && (o.attr("sizes", p), o.removeAttr("data-sizes")), d && (o.attr("src", d), o.removeAttr("data-src"))),
3341                                            o.addClass(a.loadedClass).removeClass(a.loadingClass),
3342                                            r.find("." + a.preloaderClass).remove(),
3343                                            i.params.loop && t)
3344                                        ) {
3345                                            var e = r.attr("data-swiper-slide-index");
3346                                            if (r.hasClass(i.params.slideDuplicateClass)) {
3347                                                var s = i.$wrapperEl.children('[data-swiper-slide-index="' + e + '"]:not(.' + i.params.slideDuplicateClass + ")");
3348                                                i.lazy.loadInSlide(s.index(), !1);
3349                                            } else {
3350                                                var n = i.$wrapperEl.children("." + i.params.slideDuplicateClass + '[data-swiper-slide-index="' + e + '"]');
3351                                                i.lazy.loadInSlide(n.index(), !1);
3352                                            }
3353                                        }
3354                                        i.emit("lazyImageReady", r[0], o[0]), i.params.autoHeight && i.updateAutoHeight();
3355                                    }
3356                                }),
3357                                    i.emit("lazyImageLoad", r[0], o[0]);
3358                            });
3359                }
3360            },
3361            load: function () {
3362                var e = this,
3363                    t = e.$wrapperEl,
3364                    i = e.params,
3365                    a = e.slides,
3366                    r = e.activeIndex,
3367                    n = e.virtual && i.virtual.enabled,
3368                    o = i.lazy,
3369                    l = i.slidesPerView;
3370                function d(e) {
3371                    if (n) {
3372                        if (t.children("." + i.slideClass + '[data-swiper-slide-index="' + e + '"]').length) return !0;
3373                    } else if (a[e]) return !0;
3374                    return !1;
3375                }
3376                function h(e) {
3377                    return n ? s(e).attr("data-swiper-slide-index") : s(e).index();
3378                }
3379                if (("auto" === l && (l = 0), e.lazy.initialImageLoaded || (e.lazy.initialImageLoaded = !0), e.params.watchSlidesVisibility))
3380                    t.children("." + i.slideVisibleClass).each(function (t, i) {
3381                        var a = n ? s(i).attr("data-swiper-slide-index") : s(i).index();
3382                        e.lazy.loadInSlide(a);
3383                    });
3384                else if (l > 1) for (var p = r; p < r + l; p += 1) d(p) && e.lazy.loadInSlide(p);
3385                else e.lazy.loadInSlide(r);
3386                if (o.loadPrevNext)
3387                    if (l > 1 || (o.loadPrevNextAmount && o.loadPrevNextAmount > 1)) {
3388                        for (var c = o.loadPrevNextAmount, u = l, v = Math.min(r + u + Math.max(c, u), a.length), f = Math.max(r - Math.max(u, c), 0), m = r + l; m < v; m += 1) d(m) && e.lazy.loadInSlide(m);
3389                        for (var g = f; g < r; g += 1) d(g) && e.lazy.loadInSlide(g);
3390                    } else {
3391                        var b = t.children("." + i.slideNextClass);
3392                        b.length > 0 && e.lazy.loadInSlide(h(b));
3393                        var w = t.children("." + i.slidePrevClass);
3394                        w.length > 0 && e.lazy.loadInSlide(h(w));
3395                    }
3396            },
3397        },
3398        de = {
3399            LinearSpline: function (e, t) {
3400                var i,
3401                    s,
3402                    a,
3403                    r,
3404                    n,
3405                    o = function (e, t) {
3406                        for (s = -1, i = e.length; i - s > 1; ) e[(a = (i + s) >> 1)] <= t ? (s = a) : (i = a);
3407                        return i;
3408                    };
3409                return (
3410                    (this.x = e),
3411                    (this.y = t),
3412                    (this.lastIndex = e.length - 1),
3413                    (this.interpolate = function (e) {
3414                        return e ? ((n = o(this.x, e)), (r = n - 1), ((e - this.x[r]) * (this.y[n] - this.y[r])) / (this.x[n] - this.x[r]) + this.y[r]) : 0;
3415                    }),
3416                    this
3417                );
3418            },
3419            getInterpolateFunction: function (e) {
3420                this.controller.spline || (this.controller.spline = this.params.loop ? new de.LinearSpline(this.slidesGrid, e.slidesGrid) : new de.LinearSpline(this.snapGrid, e.snapGrid));
3421            },
3422            setTranslate: function (e, t) {
3423                var i,
3424                    s,
3425                    a = this,
3426                    r = a.controller.control;
3427                function n(e) {
3428                    var t = a.rtlTranslate ? -a.translate : a.translate;
3429                    "slide" === a.params.controller.by && (a.controller.getInterpolateFunction(e), (s = -a.controller.spline.interpolate(-t))),
3430                        (s && "container" !== a.params.controller.by) || ((i = (e.maxTranslate() - e.minTranslate()) / (a.maxTranslate() - a.minTranslate())), (s = (t - a.minTranslate()) * i + e.minTranslate())),
3431                        a.params.controller.inverse && (s = e.maxTranslate() - s),
3432                        e.updateProgress(s),
3433                        e.setTranslate(s, a),
3434                        e.updateActiveIndex(),
3435                        e.updateSlidesClasses();
3436                }
3437                if (Array.isArray(r)) for (var o = 0; o < r.length; o += 1) r[o] !== t && r[o] instanceof W && n(r[o]);
3438                else r instanceof W && t !== r && n(r);
3439            },
3440            setTransition: function (e, t) {
3441                var i,
3442                    s = this,
3443                    a = s.controller.control;
3444                function r(t) {
3445                    t.setTransition(e, s),
3446                        0 !== e &&
3447                            (t.transitionStart(),
3448                            t.params.autoHeight &&
3449                                n.nextTick(function () {
3450                                    t.updateAutoHeight();
3451                                }),
3452                            t.$wrapperEl.transitionEnd(function () {
3453                                a && (t.params.loop && "slide" === s.params.controller.by && t.loopFix(), t.transitionEnd());
3454                            }));
3455                }
3456                if (Array.isArray(a)) for (i = 0; i < a.length; i += 1) a[i] !== t && a[i] instanceof W && r(a[i]);
3457                else a instanceof W && t !== a && r(a);
3458            },
3459        },
3460        he = {
3461            makeElFocusable: function (e) {
3462                return e.attr("tabIndex", "0"), e;
3463            },
3464            addElRole: function (e, t) {
3465                return e.attr("role", t), e;
3466            },
3467            addElLabel: function (e, t) {
3468                return e.attr("aria-label", t), e;
3469            },
3470            disableEl: function (e) {
3471                return e.attr("aria-disabled", !0), e;
3472            },
3473            enableEl: function (e) {
3474                return e.attr("aria-disabled", !1), e;
3475            },
3476            onEnterKey: function (e) {
3477                var t = this.params.a11y;
3478                if (13 === e.keyCode) {
3479                    var i = s(e.target);
3480                    this.navigation &&
3481                        this.navigation.$nextEl &&
3482                        i.is(this.navigation.$nextEl) &&
3483                        ((this.isEnd && !this.params.loop) || this.slideNext(), this.isEnd ? this.a11y.notify(t.lastSlideMessage) : this.a11y.notify(t.nextSlideMessage)),
3484                        this.navigation &&
3485                            this.navigation.$prevEl &&
3486                            i.is(this.navigation.$prevEl) &&
3487                            ((this.isBeginning && !this.params.loop) || this.slidePrev(), this.isBeginning ? this.a11y.notify(t.firstSlideMessage) : this.a11y.notify(t.prevSlideMessage)),
3488                        this.pagination && i.is("." + this.params.pagination.bulletClass) && i[0].click();
3489                }
3490            },
3491            notify: function (e) {
3492                var t = this.a11y.liveRegion;
3493                0 !== t.length && (t.html(""), t.html(e));
3494            },
3495            updateNavigation: function () {
3496                if (!this.params.loop && this.navigation) {
3497                    var e = this.navigation,
3498                        t = e.$nextEl,
3499                        i = e.$prevEl;
3500                    i && i.length > 0 && (this.isBeginning ? this.a11y.disableEl(i) : this.a11y.enableEl(i)), t && t.length > 0 && (this.isEnd ? this.a11y.disableEl(t) : this.a11y.enableEl(t));
3501                }
3502            },
3503            updatePagination: function () {
3504                var e = this,
3505                    t = e.params.a11y;
3506                e.pagination &&
3507                    e.params.pagination.clickable &&
3508                    e.pagination.bullets &&
3509                    e.pagination.bullets.length &&
3510                    e.pagination.bullets.each(function (i, a) {
3511                        var r = s(a);
3512                        e.a11y.makeElFocusable(r), e.a11y.addElRole(r, "button"), e.a11y.addElLabel(r, t.paginationBulletMessage.replace(/{{index}}/, r.index() + 1));
3513                    });
3514            },
3515            init: function () {
3516                this.$el.append(this.a11y.liveRegion);
3517                var e,
3518                    t,
3519                    i = this.params.a11y;
3520                this.navigation && this.navigation.$nextEl && (e = this.navigation.$nextEl),
3521                    this.navigation && this.navigation.$prevEl && (t = this.navigation.$prevEl),
3522                    e && (this.a11y.makeElFocusable(e), this.a11y.addElRole(e, "button"), this.a11y.addElLabel(e, i.nextSlideMessage), e.on("keydown", this.a11y.onEnterKey)),
3523                    t && (this.a11y.makeElFocusable(t), this.a11y.addElRole(t, "button"), this.a11y.addElLabel(t, i.prevSlideMessage), t.on("keydown", this.a11y.onEnterKey)),
3524                    this.pagination && this.params.pagination.clickable && this.pagination.bullets && this.pagination.bullets.length && this.pagination.$el.on("keydown", "." + this.params.pagination.bulletClass, this.a11y.onEnterKey);
3525            },
3526            destroy: function () {
3527                var e, t;
3528                this.a11y.liveRegion && this.a11y.liveRegion.length > 0 && this.a11y.liveRegion.remove(),
3529                    this.navigation && this.navigation.$nextEl && (e = this.navigation.$nextEl),
3530                    this.navigation && this.navigation.$prevEl && (t = this.navigation.$prevEl),
3531                    e && e.off("keydown", this.a11y.onEnterKey),
3532                    t && t.off("keydown", this.a11y.onEnterKey),
3533                    this.pagination && this.params.pagination.clickable && this.pagination.bullets && this.pagination.bullets.length && this.pagination.$el.off("keydown", "." + this.params.pagination.bulletClass, this.a11y.onEnterKey);
3534            },
3535        },
3536        pe = {
3537            init: function () {
3538                if (this.params.history) {
3539                    if (!t.history || !t.history.pushState) return (this.params.history.enabled = !1), void (this.params.hashNavigation.enabled = !0);
3540                    var e = this.history;
3541                    (e.initialized = !0),
3542                        (e.paths = pe.getPathValues()),
3543                        (e.paths.key || e.paths.value) && (e.scrollToSlide(0, e.paths.value, this.params.runCallbacksOnInit), this.params.history.replaceState || t.addEventListener("popstate", this.history.setHistoryPopState));
3544                }
3545            },
3546            destroy: function () {
3547                this.params.history.replaceState || t.removeEventListener("popstate", this.history.setHistoryPopState);
3548            },
3549            setHistoryPopState: function () {
3550                (this.history.paths = pe.getPathValues()), this.history.scrollToSlide(this.params.speed, this.history.paths.value, !1);
3551            },
3552            getPathValues: function () {
3553                var e = t.location.pathname
3554                        .slice(1)
3555                        .split("/")
3556                        .filter(function (e) {
3557                            return "" !== e;
3558                        }),
3559                    i = e.length;
3560                return { key: e[i - 2], value: e[i - 1] };
3561            },
3562            setHistory: function (e, i) {
3563                if (this.history.initialized && this.params.history.enabled) {
3564                    var s = this.slides.eq(i),
3565                        a = pe.slugify(s.attr("data-history"));
3566                    t.location.pathname.includes(e) || (a = e + "/" + a);
3567                    var r = t.history.state;
3568                    (r && r.value === a) || (this.params.history.replaceState ? t.history.replaceState({ value: a }, null, a) : t.history.pushState({ value: a }, null, a));
3569                }
3570            },
3571            slugify: function (e) {
3572                return e
3573                    .toString()
3574                    .replace(/\s+/g, "-")
3575                    .replace(/[^\w-]+/g, "")
3576                    .replace(/--+/g, "-")
3577                    .replace(/^-+/, "")
3578                    .replace(/-+$/, "");
3579            },
3580            scrollToSlide: function (e, t, i) {
3581                if (t)
3582                    for (var s = 0, a = this.slides.length; s < a; s += 1) {
3583                        var r = this.slides.eq(s);
3584                        if (pe.slugify(r.attr("data-history")) === t && !r.hasClass(this.params.slideDuplicateClass)) {
3585                            var n = r.index();
3586                            this.slideTo(n, e, i);
3587                        }
3588                    }
3589                else this.slideTo(0, e, i);
3590            },
3591        },
3592        ce = {
3593            onHashCange: function () {
3594                var t = e.location.hash.replace("#", "");
3595                if (t !== this.slides.eq(this.activeIndex).attr("data-hash")) {
3596                    var i = this.$wrapperEl.children("." + this.params.slideClass + '[data-hash="' + t + '"]').index();
3597                    if (void 0 === i) return;
3598                    this.slideTo(i);
3599                }
3600            },
3601            setHash: function () {
3602                if (this.hashNavigation.initialized && this.params.hashNavigation.enabled)
3603                    if (this.params.hashNavigation.replaceState && t.history && t.history.replaceState) t.history.replaceState(null, null, "#" + this.slides.eq(this.activeIndex).attr("data-hash") || "");
3604                    else {
3605                        var i = this.slides.eq(this.activeIndex),
3606                            s = i.attr("data-hash") || i.attr("data-history");
3607                        e.location.hash = s || "";
3608                    }
3609            },
3610            init: function () {
3611                if (!(!this.params.hashNavigation.enabled || (this.params.history && this.params.history.enabled))) {
3612                    this.hashNavigation.initialized = !0;
3613                    var i = e.location.hash.replace("#", "");
3614                    if (i)
3615                        for (var a = 0, r = this.slides.length; a < r; a += 1) {
3616                            var n = this.slides.eq(a);
3617                            if ((n.attr("data-hash") || n.attr("data-history")) === i && !n.hasClass(this.params.slideDuplicateClass)) {
3618                                var o = n.index();
3619                                this.slideTo(o, 0, this.params.runCallbacksOnInit, !0);
3620                            }
3621                        }
3622                    this.params.hashNavigation.watchState && s(t).on("hashchange", this.hashNavigation.onHashCange);
3623                }
3624            },
3625            destroy: function () {
3626                this.params.hashNavigation.watchState && s(t).off("hashchange", this.hashNavigation.onHashCange);
3627            },
3628        },
3629        ue = {
3630            run: function () {
3631                var e = this,
3632                    t = e.slides.eq(e.activeIndex),
3633                    i = e.params.autoplay.delay;
3634                t.attr("data-swiper-autoplay") && (i = t.attr("data-swiper-autoplay") || e.params.autoplay.delay),
3635                    clearTimeout(e.autoplay.timeout),
3636                    (e.autoplay.timeout = n.nextTick(function () {
3637                        e.params.autoplay.reverseDirection
3638                            ? e.params.loop
3639                                ? (e.loopFix(), e.slidePrev(e.params.speed, !0, !0), e.emit("autoplay"))
3640                                : e.isBeginning
3641                                ? e.params.autoplay.stopOnLastSlide
3642                                    ? e.autoplay.stop()
3643                                    : (e.slideTo(e.slides.length - 1, e.params.speed, !0, !0), e.emit("autoplay"))
3644                                : (e.slidePrev(e.params.speed, !0, !0), e.emit("autoplay"))
3645                            : e.params.loop
3646                            ? (e.loopFix(), e.slideNext(e.params.speed, !0, !0), e.emit("autoplay"))
3647                            : e.isEnd
3648                            ? e.params.autoplay.stopOnLastSlide
3649                                ? e.autoplay.stop()
3650                                : (e.slideTo(0, e.params.speed, !0, !0), e.emit("autoplay"))
3651                            : (e.slideNext(e.params.speed, !0, !0), e.emit("autoplay")),
3652                            e.params.cssMode && e.autoplay.running && e.autoplay.run();
3653                    }, i));
3654            },
3655            start: function () {
3656                return void 0 === this.autoplay.timeout && !this.autoplay.running && ((this.autoplay.running = !0), this.emit("autoplayStart"), this.autoplay.run(), !0);
3657            },
3658            stop: function () {
3659                return (
3660                    !!this.autoplay.running &&
3661                    void 0 !== this.autoplay.timeout &&
3662                    (this.autoplay.timeout && (clearTimeout(this.autoplay.timeout), (this.autoplay.timeout = void 0)), (this.autoplay.running = !1), this.emit("autoplayStop"), !0)
3663                );
3664            },
3665            pause: function (e) {
3666                this.autoplay.running &&
3667                    (this.autoplay.paused ||
3668                        (this.autoplay.timeout && clearTimeout(this.autoplay.timeout),
3669                        (this.autoplay.paused = !0),
3670                        0 !== e && this.params.autoplay.waitForTransition
3671                            ? (this.$wrapperEl[0].addEventListener("transitionend", this.autoplay.onTransitionEnd), this.$wrapperEl[0].addEventListener("webkitTransitionEnd", this.autoplay.onTransitionEnd))
3672                            : ((this.autoplay.paused = !1), this.autoplay.run())));
3673            },
3674        },
3675        ve = {
3676            setTranslate: function () {
3677                for (var e = this.slides, t = 0; t < e.length; t += 1) {
3678                    var i = this.slides.eq(t),
3679                        s = -i[0].swiperSlideOffset;
3680                    this.params.virtualTranslate || (s -= this.translate);
3681                    var a = 0;
3682                    this.isHorizontal() || ((a = s), (s = 0));
3683                    var r = this.params.fadeEffect.crossFade ? Math.max(1 - Math.abs(i[0].progress), 0) : 1 + Math.min(Math.max(i[0].progress, -1), 0);
3684                    i.css({ opacity: r }).transform("translate3d(" + s + "px, " + a + "px, 0px)");
3685                }
3686            },
3687            setTransition: function (e) {
3688                var t = this,
3689                    i = t.slides,
3690                    s = t.$wrapperEl;
3691                if ((i.transition(e), t.params.virtualTranslate && 0 !== e)) {
3692                    var a = !1;
3693                    i.transitionEnd(function () {
3694                        if (!a && t && !t.destroyed) {
3695                            (a = !0), (t.animating = !1);
3696                            for (var e = ["webkitTransitionEnd", "transitionend"], i = 0; i < e.length; i += 1) s.trigger(e[i]);
3697                        }
3698                    });
3699                }
3700            },
3701        },
3702        fe = {
3703            setTranslate: function () {
3704                var e,
3705                    t = this.$el,
3706                    i = this.$wrapperEl,
3707                    a = this.slides,
3708                    r = this.width,
3709                    n = this.height,
3710                    o = this.rtlTranslate,
3711                    l = this.size,
3712                    d = this.params.cubeEffect,
3713                    h = this.isHorizontal(),
3714                    p = this.virtual && this.params.virtual.enabled,
3715                    c = 0;
3716                d.shadow &&
3717                    (h
3718                        ? (0 === (e = i.find(".swiper-cube-shadow")).length && ((e = s('<div class="swiper-cube-shadow"></div>')), i.append(e)), e.css({ height: r + "px" }))
3719                        : 0 === (e = t.find(".swiper-cube-shadow")).length && ((e = s('<div class="swiper-cube-shadow"></div>')), t.append(e)));
3720                for (var u = 0; u < a.length; u += 1) {
3721                    var v = a.eq(u),
3722                        f = u;
3723                    p && (f = parseInt(v.attr("data-swiper-slide-index"), 10));
3724                    var m = 90 * f,
3725                        g = Math.floor(m / 360);
3726                    o && ((m = -m), (g = Math.floor(-m / 360)));
3727                    var b = Math.max(Math.min(v[0].progress, 1), -1),
3728                        w = 0,
3729                        y = 0,
3730                        x = 0;
3731                    f % 4 == 0 ? ((w = 4 * -g * l), (x = 0)) : (f - 1) % 4 == 0 ? ((w = 0), (x = 4 * -g * l)) : (f - 2) % 4 == 0 ? ((w = l + 4 * g * l), (x = l)) : (f - 3) % 4 == 0 && ((w = -l), (x = 3 * l + 4 * l * g)),
3732                        o && (w = -w),
3733                        h || ((y = w), (w = 0));
3734                    var T = "rotateX(" + (h ? 0 : -m) + "deg) rotateY(" + (h ? m : 0) + "deg) translate3d(" + w + "px, " + y + "px, " + x + "px)";
3735                    if ((b <= 1 && b > -1 && ((c = 90 * f + 90 * b), o && (c = 90 * -f - 90 * b)), v.transform(T), d.slideShadows)) {
3736                        var E = h ? v.find(".swiper-slide-shadow-left") : v.find(".swiper-slide-shadow-top"),
3737                            S = h ? v.find(".swiper-slide-shadow-right") : v.find(".swiper-slide-shadow-bottom");
3738                        0 === E.length && ((E = s('<div class="swiper-slide-shadow-' + (h ? "left" : "top") + '"></div>')), v.append(E)),
3739                            0 === S.length && ((S = s('<div class="swiper-slide-shadow-' + (h ? "right" : "bottom") + '"></div>')), v.append(S)),
3740                            E.length && (E[0].style.opacity = Math.max(-b, 0)),
3741                            S.length && (S[0].style.opacity = Math.max(b, 0));
3742                    }
3743                }
3744                if (
3745                    (i.css({ "-webkit-transform-origin": "50% 50% -" + l / 2 + "px", "-moz-transform-origin": "50% 50% -" + l / 2 + "px", "-ms-transform-origin": "50% 50% -" + l / 2 + "px", "transform-origin": "50% 50% -" + l / 2 + "px" }),
3746                    d.shadow)
3747                )
3748                    if (h) e.transform("translate3d(0px, " + (r / 2 + d.shadowOffset) + "px, " + -r / 2 + "px) rotateX(90deg) rotateZ(0deg) scale(" + d.shadowScale + ")");
3749                    else {
3750                        var C = Math.abs(c) - 90 * Math.floor(Math.abs(c) / 90),
3751                            M = 1.5 - (Math.sin((2 * C * Math.PI) / 360) / 2 + Math.cos((2 * C * Math.PI) / 360) / 2),
3752                            P = d.shadowScale,
3753                            z = d.shadowScale / M,
3754                            k = d.shadowOffset;
3755                        e.transform("scale3d(" + P + ", 1, " + z + ") translate3d(0px, " + (n / 2 + k) + "px, " + -n / 2 / z + "px) rotateX(-90deg)");
3756                    }
3757                var $ = j.isSafari || j.isUiWebView ? -l / 2 : 0;
3758                i.transform("translate3d(0px,0," + $ + "px) rotateX(" + (this.isHorizontal() ? 0 : c) + "deg) rotateY(" + (this.isHorizontal() ? -c : 0) + "deg)");
3759            },
3760            setTransition: function (e) {
3761                var t = this.$el;
3762                this.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e),
3763                    this.params.cubeEffect.shadow && !this.isHorizontal() && t.find(".swiper-cube-shadow").transition(e);
3764            },
3765        },
3766        me = {
3767            setTranslate: function () {
3768                for (var e = this.slides, t = this.rtlTranslate, i = 0; i < e.length; i += 1) {
3769                    var a = e.eq(i),
3770                        r = a[0].progress;
3771                    this.params.flipEffect.limitRotation && (r = Math.max(Math.min(a[0].progress, 1), -1));
3772                    var n = -180 * r,
3773                        o = 0,
3774                        l = -a[0].swiperSlideOffset,
3775                        d = 0;
3776                    if ((this.isHorizontal() ? t && (n = -n) : ((d = l), (l = 0), (o = -n), (n = 0)), (a[0].style.zIndex = -Math.abs(Math.round(r)) + e.length), this.params.flipEffect.slideShadows)) {
3777                        var h = this.isHorizontal() ? a.find(".swiper-slide-shadow-left") : a.find(".swiper-slide-shadow-top"),
3778                            p = this.isHorizontal() ? a.find(".swiper-slide-shadow-right") : a.find(".swiper-slide-shadow-bottom");
3779                        0 === h.length && ((h = s('<div class="swiper-slide-shadow-' + (this.isHorizontal() ? "left" : "top") + '"></div>')), a.append(h)),
3780                            0 === p.length && ((p = s('<div class="swiper-slide-shadow-' + (this.isHorizontal() ? "right" : "bottom") + '"></div>')), a.append(p)),
3781                            h.length && (h[0].style.opacity = Math.max(-r, 0)),
3782                            p.length && (p[0].style.opacity = Math.max(r, 0));
3783                    }
3784                    a.transform("translate3d(" + l + "px, " + d + "px, 0px) rotateX(" + o + "deg) rotateY(" + n + "deg)");
3785                }
3786            },
3787            setTransition: function (e) {
3788                var t = this,
3789                    i = t.slides,
3790                    s = t.activeIndex,
3791                    a = t.$wrapperEl;
3792                if ((i.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e), t.params.virtualTranslate && 0 !== e)) {
3793                    var r = !1;
3794                    i.eq(s).transitionEnd(function () {
3795                        if (!r && t && !t.destroyed) {
3796                            (r = !0), (t.animating = !1);
3797                            for (var e = ["webkitTransitionEnd", "transitionend"], i = 0; i < e.length; i += 1) a.trigger(e[i]);
3798                        }
3799                    });
3800                }
3801            },
3802        },
3803        ge = {
3804            setTranslate: function () {
3805                for (
3806                    var e = this.width,
3807                        t = this.height,
3808                        i = this.slides,
3809                        a = this.$wrapperEl,
3810                        r = this.slidesSizesGrid,
3811                        n = this.params.coverflowEffect,
3812                        l = this.isHorizontal(),
3813                        d = this.translate,
3814                        h = l ? e / 2 - d : t / 2 - d,
3815                        p = l ? n.rotate : -n.rotate,
3816                        c = n.depth,
3817                        u = 0,
3818                        v = i.length;
3819                    u < v;
3820                    u += 1
3821                ) {
3822                    var f = i.eq(u),
3823                        m = r[u],
3824                        g = ((h - f[0].swiperSlideOffset - m / 2) / m) * n.modifier,
3825                        b = l ? p * g : 0,
3826                        w = l ? 0 : p * g,
3827                        y = -c * Math.abs(g),
3828                        x = n.stretch;
3829                    "string" == typeof x && -1 !== x.indexOf("%") && (x = (parseFloat(n.stretch) / 100) * m);
3830                    var T = l ? 0 : x * g,
3831                        E = l ? x * g : 0;
3832                    Math.abs(E) < 0.001 && (E = 0), Math.abs(T) < 0.001 && (T = 0), Math.abs(y) < 0.001 && (y = 0), Math.abs(b) < 0.001 && (b = 0), Math.abs(w) < 0.001 && (w = 0);
3833                    var S = "translate3d(" + E + "px," + T + "px," + y + "px)  rotateX(" + w + "deg) rotateY(" + b + "deg)";
3834                    if ((f.transform(S), (f[0].style.zIndex = 1 - Math.abs(Math.round(g))), n.slideShadows)) {
3835                        var C = l ? f.find(".swiper-slide-shadow-left") : f.find(".swiper-slide-shadow-top"),
3836                            M = l ? f.find(".swiper-slide-shadow-right") : f.find(".swiper-slide-shadow-bottom");
3837                        0 === C.length && ((C = s('<div class="swiper-slide-shadow-' + (l ? "left" : "top") + '"></div>')), f.append(C)),
3838                            0 === M.length && ((M = s('<div class="swiper-slide-shadow-' + (l ? "right" : "bottom") + '"></div>')), f.append(M)),
3839                            C.length && (C[0].style.opacity = g > 0 ? g : 0),
3840                            M.length && (M[0].style.opacity = -g > 0 ? -g : 0);
3841                    }
3842                }
3843                (o.pointerEvents || o.prefixedPointerEvents) && (a[0].style.perspectiveOrigin = h + "px 50%");
3844            },
3845            setTransition: function (e) {
3846                this.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e);
3847            },
3848        },
3849        be = {
3850            init: function () {
3851                var e = this.params.thumbs,
3852                    t = this.constructor;
3853                e.swiper instanceof t
3854                    ? ((this.thumbs.swiper = e.swiper),
3855                      n.extend(this.thumbs.swiper.originalParams, { watchSlidesProgress: !0, slideToClickedSlide: !1 }),
3856                      n.extend(this.thumbs.swiper.params, { watchSlidesProgress: !0, slideToClickedSlide: !1 }))
3857                    : n.isObject(e.swiper) && ((this.thumbs.swiper = new t(n.extend({}, e.swiper, { watchSlidesVisibility: !0, watchSlidesProgress: !0, slideToClickedSlide: !1 }))), (this.thumbs.swiperCreated = !0)),
3858                    this.thumbs.swiper.$el.addClass(this.params.thumbs.thumbsContainerClass),
3859                    this.thumbs.swiper.on("tap", this.thumbs.onThumbClick);
3860            },
3861            onThumbClick: function () {
3862                var e = this.thumbs.swiper;
3863                if (e) {
3864                    var t = e.clickedIndex,
3865                        i = e.clickedSlide;
3866                    if (!((i && s(i).hasClass(this.params.thumbs.slideThumbActiveClass)) || null == t)) {
3867                        var a;
3868                        if (((a = e.params.loop ? parseInt(s(e.clickedSlide).attr("data-swiper-slide-index"), 10) : t), this.params.loop)) {
3869                            var r = this.activeIndex;
3870                            this.slides.eq(r).hasClass(this.params.slideDuplicateClass) && (this.loopFix(), (this._clientLeft = this.$wrapperEl[0].clientLeft), (r = this.activeIndex));
3871                            var n = this.slides
3872                                    .eq(r)
3873                                    .prevAll('[data-swiper-slide-index="' + a + '"]')
3874                                    .eq(0)
3875                                    .index(),
3876                                o = this.slides
3877                                    .eq(r)
3878                                    .nextAll('[data-swiper-slide-index="' + a + '"]')
3879                                    .eq(0)
3880                                    .index();
3881                            a = void 0 === n ? o : void 0 === o ? n : o - r < r - n ? o : n;
3882                        }
3883                        this.slideTo(a);
3884                    }
3885                }
3886            },
3887            update: function (e) {
3888                var t = this.thumbs.swiper;
3889                if (t) {
3890                    var i = "auto" === t.params.slidesPerView ? t.slidesPerViewDynamic() : t.params.slidesPerView;
3891                    if (this.realIndex !== t.realIndex) {
3892                        var s,
3893                            a = t.activeIndex;
3894                        if (t.params.loop) {
3895                            t.slides.eq(a).hasClass(t.params.slideDuplicateClass) && (t.loopFix(), (t._clientLeft = t.$wrapperEl[0].clientLeft), (a = t.activeIndex));
3896                            var r = t.slides
3897                                    .eq(a)
3898                                    .prevAll('[data-swiper-slide-index="' + this.realIndex + '"]')
3899                                    .eq(0)
3900                                    .index(),
3901                                n = t.slides
3902                                    .eq(a)
3903                                    .nextAll('[data-swiper-slide-index="' + this.realIndex + '"]')
3904                                    .eq(0)
3905                                    .index();
3906                            s = void 0 === r ? n : void 0 === n ? r : n - a == a - r ? a : n - a < a - r ? n : r;
3907                        } else s = this.realIndex;
3908                        t.visibleSlidesIndexes &&
3909                            t.visibleSlidesIndexes.indexOf(s) < 0 &&
3910                            (t.params.centeredSlides ? (s = s > a ? s - Math.floor(i / 2) + 1 : s + Math.floor(i / 2) - 1) : s > a && (s = s - i + 1), t.slideTo(s, e ? 0 : void 0));
3911                    }
3912                    var o = 1,
3913                        l = this.params.thumbs.slideThumbActiveClass;
3914                    if (
3915                        (this.params.slidesPerView > 1 && !this.params.centeredSlides && (o = this.params.slidesPerView),
3916                        this.params.thumbs.multipleActiveThumbs || (o = 1),
3917                        (o = Math.floor(o)),
3918                        t.slides.removeClass(l),
3919                        t.params.loop || (t.params.virtual && t.params.virtual.enabled))
3920                    )
3921                        for (var d = 0; d < o; d += 1) t.$wrapperEl.children('[data-swiper-slide-index="' + (this.realIndex + d) + '"]').addClass(l);
3922                    else for (var h = 0; h < o; h += 1) t.slides.eq(this.realIndex + h).addClass(l);
3923                }
3924            },
3925        },
3926        we = [
3927            R,
3928            q,
3929            K,
3930            U,
3931            Z,
3932            J,
3933            te,
3934            {
3935                name: "mousewheel",
3936                params: { mousewheel: { enabled: !1, releaseOnEdges: !1, invert: !1, forceToAxis: !1, sensitivity: 1, eventsTarged: "container" } },
3937                create: function () {
3938                    n.extend(this, {
3939                        mousewheel: {
3940                            enabled: !1,
3941                            enable: ie.enable.bind(this),
3942                            disable: ie.disable.bind(this),
3943                            handle: ie.handle.bind(this),
3944                            handleMouseEnter: ie.handleMouseEnter.bind(this),
3945                            handleMouseLeave: ie.handleMouseLeave.bind(this),
3946                            animateSlider: ie.animateSlider.bind(this),
3947                            releaseScroll: ie.releaseScroll.bind(this),
3948                            lastScrollTime: n.now(),
3949                            lastEventBeforeSnap: void 0,
3950                            recentWheelEvents: [],
3951                        },
3952                    });
3953                },
3954                on: {
3955                    init: function () {
3956                        !this.params.mousewheel.enabled && this.params.cssMode && this.mousewheel.disable(), this.params.mousewheel.enabled && this.mousewheel.enable();
3957                    },
3958                    destroy: function () {
3959                        this.params.cssMode && this.mousewheel.enable(), this.mousewheel.enabled && this.mousewheel.disable();
3960                    },
3961                },
3962            },
3963            {
3964                name: "navigation",
3965                params: { navigation: { nextEl: null, prevEl: null, hideOnClick: !1, disabledClass: "swiper-button-disabled", hiddenClass: "swiper-button-hidden", lockClass: "swiper-button-lock" } },
3966                create: function () {
3967                    n.extend(this, { navigation: { init: se.init.bind(this), update: se.update.bind(this), destroy: se.destroy.bind(this), onNextClick: se.onNextClick.bind(this), onPrevClick: se.onPrevClick.bind(this) } });
3968                },
3969                on: {
3970                    init: function () {
3971                        this.navigation.init(), this.navigation.update();
3972                    },
3973                    toEdge: function () {
3974                        this.navigation.update();
3975                    },
3976                    fromEdge: function () {
3977                        this.navigation.update();
3978                    },
3979                    destroy: function () {
3980                        this.navigation.destroy();
3981                    },
3982                    click: function (e) {
3983                        var t,
3984                            i = this.navigation,
3985                            a = i.$nextEl,
3986                            r = i.$prevEl;
3987                        !this.params.navigation.hideOnClick ||
3988                            s(e.target).is(r) ||
3989                            s(e.target).is(a) ||
3990                            (a ? (t = a.hasClass(this.params.navigation.hiddenClass)) : r && (t = r.hasClass(this.params.navigation.hiddenClass)),
3991                            !0 === t ? this.emit("navigationShow", this) : this.emit("navigationHide", this),
3992                            a && a.toggleClass(this.params.navigation.hiddenClass),
3993                            r && r.toggleClass(this.params.navigation.hiddenClass));
3994                    },
3995                },
3996            },
3997            {
3998                name: "pagination",
3999                params: {
4000                    pagination: {
4001                        el: null,
4002                        bulletElement: "span",
4003                        clickable: !1,
4004                        hideOnClick: !1,
4005                        renderBullet: null,
4006                        renderProgressbar: null,
4007                        renderFraction: null,
4008                        renderCustom: null,
4009                        progressbarOpposite: !1,
4010                        type: "bullets",
4011                        dynamicBullets: !1,
4012                        dynamicMainBullets: 1,
4013                        formatFractionCurrent: function (e) {
4014                            return e;
4015                        },
4016                        formatFractionTotal: function (e) {
4017                            return e;
4018                        },
4019                        bulletClass: "swiper-pagination-bullet",
4020                        bulletActiveClass: "swiper-pagination-bullet-active",
4021                        modifierClass: "swiper-pagination-",
4022                        currentClass: "swiper-pagination-current",
4023                        totalClass: "swiper-pagination-total",
4024                        hiddenClass: "swiper-pagination-hidden",
4025                        progressbarFillClass: "swiper-pagination-progressbar-fill",
4026                        progressbarOppositeClass: "swiper-pagination-progressbar-opposite",
4027                        clickableClass: "swiper-pagination-clickable",
4028                        lockClass: "swiper-pagination-lock",
4029                    },
4030                },
4031                create: function () {
4032                    n.extend(this, { pagination: { init: ae.init.bind(this), render: ae.render.bind(this), update: ae.update.bind(this), destroy: ae.destroy.bind(this), dynamicBulletIndex: 0 } });
4033                },
4034                on: {
4035                    init: function () {
4036                        this.pagination.init(), this.pagination.render(), this.pagination.update();
4037                    },
4038                    activeIndexChange: function () {
4039                        (this.params.loop || void 0 === this.snapIndex) && this.pagination.update();
4040                    },
4041                    snapIndexChange: function () {
4042                        this.params.loop || this.pagination.update();
4043                    },
4044                    slidesLengthChange: function () {
4045                        this.params.loop && (this.pagination.render(), this.pagination.update());
4046                    },
4047                    snapGridLengthChange: function () {
4048                        this.params.loop || (this.pagination.render(), this.pagination.update());
4049                    },
4050                    destroy: function () {
4051                        this.pagination.destroy();
4052                    },
4053                    click: function (e) {
4054                        this.params.pagination.el &&
4055                            this.params.pagination.hideOnClick &&
4056                            this.pagination.$el.length > 0 &&
4057                            !s(e.target).hasClass(this.params.pagination.bulletClass) &&
4058                            (!0 === this.pagination.$el.hasClass(this.params.pagination.hiddenClass) ? this.emit("paginationShow", this) : this.emit("paginationHide", this),
4059                            this.pagination.$el.toggleClass(this.params.pagination.hiddenClass));
4060                    },
4061                },
4062            },
4063            {
4064                name: "scrollbar",
4065                params: { scrollbar: { el: null, dragSize: "auto", hide: !1, draggable: !1, snapOnRelease: !0, lockClass: "swiper-scrollbar-lock", dragClass: "swiper-scrollbar-drag" } },
4066                create: function () {
4067                    n.extend(this, {
4068                        scrollbar: {
4069                            init: re.init.bind(this),
4070                            destroy: re.destroy.bind(this),
4071                            updateSize: re.updateSize.bind(this),
4072                            setTranslate: re.setTranslate.bind(this),
4073                            setTransition: re.setTransition.bind(this),
4074                            enableDraggable: re.enableDraggable.bind(this),
4075                            disableDraggable: re.disableDraggable.bind(this),
4076                            setDragPosition: re.setDragPosition.bind(this),
4077                            getPointerPosition: re.getPointerPosition.bind(this),
4078                            onDragStart: re.onDragStart.bind(this),
4079                            onDragMove: re.onDragMove.bind(this),
4080                            onDragEnd: re.onDragEnd.bind(this),
4081                            isTouched: !1,
4082                            timeout: null,
4083                            dragTimeout: null,
4084                        },
4085                    });
4086                },
4087                on: {
4088                    init: function () {
4089                        this.scrollbar.init(), this.scrollbar.updateSize(), this.scrollbar.setTranslate();
4090                    },
4091                    update: function () {
4092                        this.scrollbar.updateSize();
4093                    },
4094                    resize: function () {
4095                        this.scrollbar.updateSize();
4096                    },
4097                    observerUpdate: function () {
4098                        this.scrollbar.updateSize();
4099                    },
4100                    setTranslate: function () {
4101                        this.scrollbar.setTranslate();
4102                    },
4103                    setTransition: function (e) {
4104                        this.scrollbar.setTransition(e);
4105                    },
4106                    destroy: function () {
4107                        this.scrollbar.destroy();
4108                    },
4109                },
4110            },
4111            {
4112                name: "parallax",
4113                params: { parallax: { enabled: !1 } },
4114                create: function () {
4115                    n.extend(this, { parallax: { setTransform: ne.setTransform.bind(this), setTranslate: ne.setTranslate.bind(this), setTransition: ne.setTransition.bind(this) } });
4116                },
4117                on: {
4118                    beforeInit: function () {
4119                        this.params.parallax.enabled && ((this.params.watchSlidesProgress = !0), (this.originalParams.watchSlidesProgress = !0));
4120                    },
4121                    init: function () {
4122                        this.params.parallax.enabled && this.parallax.setTranslate();
4123                    },
4124                    setTranslate: function () {
4125                        this.params.parallax.enabled && this.parallax.setTranslate();
4126                    },
4127                    setTransition: function (e) {
4128                        this.params.parallax.enabled && this.parallax.setTransition(e);
4129                    },
4130                },
4131            },
4132            {
4133                name: "zoom",
4134                params: { zoom: { enabled: !1, maxRatio: 3, minRatio: 1, toggle: !0, containerClass: "swiper-zoom-container", zoomedSlideClass: "swiper-slide-zoomed" } },
4135                create: function () {
4136                    var e = this,
4137                        t = {
4138                            enabled: !1,
4139                            scale: 1,
4140                            currentScale: 1,
4141                            isScaling: !1,
4142                            gesture: { $slideEl: void 0, slideWidth: void 0, slideHeight: void 0, $imageEl: void 0, $imageWrapEl: void 0, maxRatio: 3 },
4143                            image: {
4144                                isTouched: void 0,
4145                                isMoved: void 0,
4146                                currentX: void 0,
4147                                currentY: void 0,
4148                                minX: void 0,
4149                                minY: void 0,
4150                                maxX: void 0,
4151                                maxY: void 0,
4152                                width: void 0,
4153                                height: void 0,
4154                                startX: void 0,
4155                                startY: void 0,
4156                                touchesStart: {},
4157                                touchesCurrent: {},
4158                            },
4159                            velocity: { x: void 0, y: void 0, prevPositionX: void 0, prevPositionY: void 0, prevTime: void 0 },
4160                        };
4161                    "onGestureStart onGestureChange onGestureEnd onTouchStart onTouchMove onTouchEnd onTransitionEnd toggle enable disable in out".split(" ").forEach(function (i) {
4162                        t[i] = oe[i].bind(e);
4163                    }),
4164                        n.extend(e, { zoom: t });
4165                    var i = 1;
4166                    Object.defineProperty(e.zoom, "scale", {
4167                        get: function () {
4168                            return i;
4169                        },
4170                        set: function (t) {
4171                            if (i !== t) {
4172                                var s = e.zoom.gesture.$imageEl ? e.zoom.gesture.$imageEl[0] : void 0,
4173                                    a = e.zoom.gesture.$slideEl ? e.zoom.gesture.$slideEl[0] : void 0;
4174                                e.emit("zoomChange", t, s, a);
4175                            }
4176                            i = t;
4177                        },
4178                    });
4179                },
4180                on: {
4181                    init: function () {
4182                        this.params.zoom.enabled && this.zoom.enable();
4183                    },
4184                    destroy: function () {
4185                        this.zoom.disable();
4186                    },
4187                    touchStart: function (e) {
4188                        this.zoom.enabled && this.zoom.onTouchStart(e);
4189                    },
4190                    touchEnd: function (e) {
4191                        this.zoom.enabled && this.zoom.onTouchEnd(e);
4192                    },
4193                    doubleTap: function (e) {
4194                        this.params.zoom.enabled && this.zoom.enabled && this.params.zoom.toggle && this.zoom.toggle(e);
4195                    },
4196                    transitionEnd: function () {
4197                        this.zoom.enabled && this.params.zoom.enabled && this.zoom.onTransitionEnd();
4198                    },
4199                    slideChange: function () {
4200                        this.zoom.enabled && this.params.zoom.enabled && this.params.cssMode && this.zoom.onTransitionEnd();
4201                    },
4202                },
4203            },
4204            {
4205                name: "lazy",
4206                params: {
4207                    lazy: {
4208                        enabled: !1,
4209                        loadPrevNext: !1,
4210                        loadPrevNextAmount: 1,
4211                        loadOnTransitionStart: !1,
4212                        elementClass: "swiper-lazy",
4213                        loadingClass: "swiper-lazy-loading",
4214                        loadedClass: "swiper-lazy-loaded",
4215                        preloaderClass: "swiper-lazy-preloader",
4216                    },
4217                },
4218                create: function () {
4219                    n.extend(this, { lazy: { initialImageLoaded: !1, load: le.load.bind(this), loadInSlide: le.loadInSlide.bind(this) } });
4220                },
4221                on: {
4222                    beforeInit: function () {
4223                        this.params.lazy.enabled && this.params.preloadImages && (this.params.preloadImages = !1);
4224                    },
4225                    init: function () {
4226                        this.params.lazy.enabled && !this.params.loop && 0 === this.params.initialSlide && this.lazy.load();
4227                    },
4228                    scroll: function () {
4229                        this.params.freeMode && !this.params.freeModeSticky && this.lazy.load();
4230                    },
4231                    resize: function () {
4232                        this.params.lazy.enabled && this.lazy.load();
4233                    },
4234                    scrollbarDragMove: function () {
4235                        this.params.lazy.enabled && this.lazy.load();
4236                    },
4237                    transitionStart: function () {
4238                        this.params.lazy.enabled && (this.params.lazy.loadOnTransitionStart || (!this.params.lazy.loadOnTransitionStart && !this.lazy.initialImageLoaded)) && this.lazy.load();
4239                    },
4240                    transitionEnd: function () {
4241                        this.params.lazy.enabled && !this.params.lazy.loadOnTransitionStart && this.lazy.load();
4242                    },
4243                    slideChange: function () {
4244                        this.params.lazy.enabled && this.params.cssMode && this.lazy.load();
4245                    },
4246                },
4247            },
4248            {
4249                name: "controller",
4250                params: { controller: { control: void 0, inverse: !1, by: "slide" } },
4251                create: function () {
4252                    n.extend(this, {
4253                        controller: { control: this.params.controller.control, getInterpolateFunction: de.getInterpolateFunction.bind(this), setTranslate: de.setTranslate.bind(this), setTransition: de.setTransition.bind(this) },
4254                    });
4255                },
4256                on: {
4257                    update: function () {
4258                        this.controller.control && this.controller.spline && ((this.controller.spline = void 0), delete this.controller.spline);
4259                    },
4260                    resize: function () {
4261                        this.controller.control && this.controller.spline && ((this.controller.spline = void 0), delete this.controller.spline);
4262                    },
4263                    observerUpdate: function () {
4264                        this.controller.control && this.controller.spline && ((this.controller.spline = void 0), delete this.controller.spline);
4265                    },
4266                    setTranslate: function (e, t) {
4267                        this.controller.control && this.controller.setTranslate(e, t);
4268                    },
4269                    setTransition: function (e, t) {
4270                        this.controller.control && this.controller.setTransition(e, t);
4271                    },
4272                },
4273            },
4274            {
4275                name: "a11y",
4276                params: {
4277                    a11y: {
4278                        enabled: !0,
4279                        notificationClass: "swiper-notification",
4280                        prevSlideMessage: "Previous slide",
4281                        nextSlideMessage: "Next slide",
4282                        firstSlideMessage: "This is the first slide",
4283                        lastSlideMessage: "This is the last slide",
4284                        paginationBulletMessage: "Go to slide {{index}}",
4285                    },
4286                },
4287                create: function () {
4288                    var e = this;
4289                    n.extend(e, { a11y: { liveRegion: s('<span class="' + e.params.a11y.notificationClass + '" aria-live="assertive" aria-atomic="true"></span>') } }),
4290                        Object.keys(he).forEach(function (t) {
4291                            e.a11y[t] = he[t].bind(e);
4292                        });
4293                },
4294                on: {
4295                    init: function () {
4296                        this.params.a11y.enabled && (this.a11y.init(), this.a11y.updateNavigation());
4297                    },
4298                    toEdge: function () {
4299                        this.params.a11y.enabled && this.a11y.updateNavigation();
4300                    },
4301                    fromEdge: function () {
4302                        this.params.a11y.en
4302abled && this.a11y.updateNavigation();
4303                    },
4304                    paginationUpdate: function () {
4305                        this.params.a11y.enabled && this.a11y.updatePagination();
4306                    },
4307                    destroy: function () {
4308                        this.params.a11y.enabled && this.a11y.destroy();
4309                    },
4310                },
4311            },
4312            {
4313                name: "history",
4314                params: { history: { enabled: !1, replaceState: !1, key: "slides" } },
4315                create: function () {
4316                    n.extend(this, {
4317                        history: { init: pe.init.bind(this), setHistory: pe.setHistory.bind(this), setHistoryPopState: pe.setHistoryPopState.bind(this), scrollToSlide: pe.scrollToSlide.bind(this), destroy: pe.destroy.bind(this) },
4318                    });
4319                },
4320                on: {
4321                    init: function () {
4322                        this.params.history.enabled && this.history.init();
4323                    },
4324                    destroy: function () {
4325                        this.params.history.enabled && this.history.destroy();
4326                    },
4327                    transitionEnd: function () {
4328                        this.history.initialized && this.history.setHistory(this.params.history.key, this.activeIndex);
4329                    },
4330                    slideChange: function () {
4331                        this.history.initialized && this.params.cssMode && this.history.setHistory(this.params.history.key, this.activeIndex);
4332                    },
4333                },
4334            },
4335            {
4336                name: "hash-navigation",
4337                params: { hashNavigation: { enabled: !1, replaceState: !1, watchState: !1 } },
4338                create: function () {
4339                    n.extend(this, { hashNavigation: { initialized: !1, init: ce.init.bind(this), destroy: ce.destroy.bind(this), setHash: ce.setHash.bind(this), onHashCange: ce.onHashCange.bind(this) } });
4340                },
4341                on: {
4342                    init: function () {
4343                        this.params.hashNavigation.enabled && this.hashNavigation.init();
4344                    },
4345                    destroy: function () {
4346                        this.params.hashNavigation.enabled && this.hashNavigation.destroy();
4347                    },
4348                    transitionEnd: function () {
4349                        this.hashNavigation.initialized && this.hashNavigation.setHash();
4350                    },
4351                    slideChange: function () {
4352                        this.hashNavigation.initialized && this.params.cssMode && this.hashNavigation.setHash();
4353                    },
4354                },
4355            },
4356            {
4357                name: "autoplay",
4358                params: { autoplay: { enabled: !1, delay: 3e3, waitForTransition: !0, disableOnInteraction: !0, stopOnLastSlide: !1, reverseDirection: !1 } },
4359                create: function () {
4360                    var e = this;
4361                    n.extend(e, {
4362                        autoplay: {
4363                            running: !1,
4364                            paused: !1,
4365                            run: ue.run.bind(e),
4366                            start: ue.start.bind(e),
4367                            stop: ue.stop.bind(e),
4368                            pause: ue.pause.bind(e),
4369                            onVisibilityChange: function () {
4370                                "hidden" === document.visibilityState && e.autoplay.running && e.autoplay.pause(), "visible" === document.visibilityState && e.autoplay.paused && (e.autoplay.run(), (e.autoplay.paused = !1));
4371                            },
4372                            onTransitionEnd: function (t) {
4373                                e &&
4374                                    !e.destroyed &&
4375                                    e.$wrapperEl &&
4376                                    t.target === this &&
4377                                    (e.$wrapperEl[0].removeEventListener("transitionend", e.autoplay.onTransitionEnd),
4378                                    e.$wrapperEl[0].removeEventListener("webkitTransitionEnd", e.autoplay.onTransitionEnd),
4379                                    (e.autoplay.paused = !1),
4380                                    e.autoplay.running ? e.autoplay.run() : e.auto
4380play.stop());
4381                            },
4382                        },
4383                    });
4384                },
4385                on: {
4386                    init: function () {
4387                        this.params.autoplay.enabled && (this.autoplay.start(), document.addEventListener("visibilitychange", this.autoplay.onVisibilityChange));
4388                    },
4389                    beforeTransitionStart: function (e, t) {
4390                        this.autoplay.running && (t || !this.params.autoplay.disableOnInteraction ? this.autoplay.pause(e) : this.autoplay.stop());
4391                    },
4392                    sliderFirstMove: function () {
4393                        this.autoplay.running && (this.params.autoplay.disableOnInteraction ? this.autoplay.stop() : this.autoplay.pause());
4394                    },
4395                    touchEnd: function () {
4396                        this.params.cssMode && this.autoplay.paused && !this.params.autoplay.disableOnInteraction && this.autoplay.run();
4397                    },
4398                    destroy: function () {
4399                        this.autoplay.running && this.autoplay.stop(), document.removeEventListener("visibilitychange", this.autoplay.onVisibilityChange);
4400                    },
4401                },
4402            },
4403            {
4404                name: "effect-fade",
4405                params: { fadeEffect: { crossFade: !1 } },
4406                create: function () {
4407                    n.extend(this, { fadeEffect: { setTranslate: ve.setTranslate.bind(this), setTransition: ve.setTransition.bind(this) } });
4408                },
4409                on: {
4410                    beforeInit: function () {
4411                        if ("fade" === this.params.effect) {
4412                            this.classNames.push(this.params.containerModifierClass + "fade");
4413                            var e = { slidesPerView: 1, slidesPerColumn: 1, slidesPerGroup: 1, watchSlidesProgress: !0, spaceBetween: 0, virtualTranslate: !0 };
4414                            n.extend(this.params, e), n.extend(this.originalParams, e);
4415                        }
4416                    },
4417                    setTranslate: function () {
4418                        "fade" === this.params.effect && this.fadeEffect.setTranslate();
4419                    },
4420                    setTransition: function (e) {
4421                        "fade" === this.params.effect && this.fadeEffect.setTransition(e);
4422                    },
4423                },
4424            },
4425            {
4426                name: "effect-cube",
4427                params: { cubeEffect: { slideShadows: !0, shadow: !0, shadowOffset: 20, shadowScale: 0.94 } },
4428                create: function () {
4429                    n.extend(this, { cubeEffect: { setTranslate: fe.setTranslate.bind(this), setTransition: fe.setTransition.bind(this) } });
4430                },
4431                on: {
4432                    beforeInit: function () {
4433                        if ("cube" === this.params.effect) {
4434                            this.classNames.push(this.params.containerModifierClass + "cube"), this.classNames.push(this.params.containerModifierClass + "3d");
4435                            var e = { slidesPerView: 1, slidesPerColumn: 1, slidesPerGroup: 1, watchSlidesProgress: !0, resistanceRatio: 0, spaceBetween: 0, centeredSlides: !1, virtualTranslate: !0 };
4436                            n.extend(this.params, e), n.extend(this.originalParams, e);
4437                        }
4438                    },
4439                    setTranslate: function () {
4440                        "cube" === this.params.effect && this.cubeEffect.setTranslate();
4441                    },
4442                    setTransition: function (e) {
4443                        "cube" === this.params.effect && this.cubeEffect.setTransition(e);
4444                    },
4445                },
4446            },
4447            {
4448                name: "effect-flip",
4449                params: { flipEffect: { slideShadows: !0, limitRotation: !0 } },
4450                create: function () {
4451                    n.extend(this, { flipEffect: { setTranslate: me.setTranslate.bind(this), setTransition: me.setTransition.bind(this) } });
4452                },
4453                on: {
4454                    beforeInit: function () {
4455                        if ("flip" === this.params.effect) {
4456                            this.classNames.push(this.params.containerModifierClass + "flip"), this.classNames.push(this.params.containerModifierClass + "3d");
4457                            var e = { slidesPerView: 1, slidesPerColumn: 1, slidesPerGroup: 1, watchSlidesProgress: !0, spaceBetween: 0, virtualTranslate: !0 };
4458                            n.extend(this.params, e), n.extend(this.originalParams, e);
4459                        }
4460                    },
4461                    setTranslate: function () {
4462                        "flip" === this.params.effect && this.flipEffect.setTranslate();
4463                    },
4464                    setTransition: function (e) {
4465                        "flip" === this.params.effect && this.flipEffect.setTransition(e);
4466                    },
4467                },
4468            },
4469            {
4470                name: "effect-coverflow",
4471                params: { coverflowEffect: { rotate: 50, stretch: 0, depth: 100, modifier: 1, slideShadows: !0 } },
4472                create: function () {
4473                    n.extend(this, { coverflowEffect: { setTranslate: ge.setTranslate.bind(this), setTransition: ge.setTransition.bind(this) } });
4474                },
4475                on: {
4476                    beforeInit: function () {
4477                        "coverflow" === this.params.effect &&
4478                            (this.classNames.push(this.params.containerModifierClass + "coverflow"),
4479                            this.classNames.push(this.params.containerModifierClass + "3d"),
4480                            (this.params.watchSlidesProgress = !0),
4481                            (this.originalParams.watchSlidesProgress = !0));
4482                    },
4483                    setTranslate: function () {
4484                        "coverflow" === this.params.effect && this.coverflowEffect.setTranslate();
4485                    },
4486                    setTransition: function (e) {
4487                        "coverflow" === this.params.effect && this.coverflowEffect.setTransition(e);
4488                    },
4489                },
4490            },
4491            {
4492                name: "thumbs",
4493                params: { thumbs: { multipleActiveThumbs: !0, swiper: null, slideThumbActiveClass: "swiper-slide-thumb-active", thumbsContainerClass: "swiper-container-thumbs" } },
4494                create: function () {
4495                    n.extend(this, { thumbs: { swiper: null, init: be.init.bind(this), update: be.update.bind(this), onThumbClick: be.onThumbClick.bind(this) } });
4496                },
4497                on: {
4498                    beforeInit: function () {
4499                        var e = this.params.thumbs;
4500                        e && e.swiper && (this.thumbs.init(), this.thumbs.update(!0));
4501                    },
4502                    slideChange: function () {
4503                        this.thumbs.swiper && this.thumbs.update();
4504                    },
4505                    update: function () {
4506                        this.thumbs.swiper && this.thumbs.update();
4507                    },
4508                    resize: function () {
4509                        this.thumbs.swiper && this.thumbs.update();
4510                    },
4511                    observerUpdate: function () {
4512                        this.thumbs.swiper && this.thumbs.update();
4513                    },
4514                    setTransition: function (e) {
4515                        var t = this.thumbs.swiper;
4516                        t && t.setTransition(e);
4517                    },
4518                    beforeDestroy: function () {
4519                        var e = this.thumbs.swiper;
4520                        e && this.thumbs.swiperCreated && e && e.destroy();
4521                    },
4522                },
4523            },
4524        ];
4525    return void 0 === W.use && ((W.use = W.Class.use), (W.installModule = W.Class.installModule)), W.use(we), W;
4526});
4527//# sourceMappingURL=swiper.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.