PageSourceSearch

https://greenmountainsurgery.com/assets/js/plugins.js

js greenmountainsurgery.com collected 2026-10-06 07:00:11 UTC 739,279 bytes, 11,464 lines download raw bytes

vendor: 10,041 bytes, lines 1-347
1/*!
2  * Bootstrap v5.2.2 (https://getbootstrap.com/)
3  * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5  */
6(function (global, factory) {
7  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
8  typeof define === 'function' && define.amd ? define(factory) :
9  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.bootstrap = factory());
10})(this, (function () { 'use strict';
11
12  /**
13   * --------------------------------------------------------------------------
14   * Bootstrap (v5.2.2): util/index.js
15   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
16   * --------------------------------------------------------------------------
17   */
18  const MAX_UID = 1000000;
19  const MILLISECONDS_MULTIPLIER = 1000;
20  const TRANSITION_END = 'transitionend'; // Shout-out Angus Croll (https://goo.gl/pxwQGp)
21
22  const toType = object => {
23    if (object === null || object === undefined) {
24      return `${object}`;
25    }
26
27    return Object.prototype.toString.call(object).match(/\s([a-z]+)/i)[1].toLowerCase();
28  };
29  /**
30   * Public Util API
31   */
32
33
34  const getUID = prefix => {
35    do {
36      prefix += Math.floor(Math.random() * MAX_UID);
37    } while (document.getElementById(prefix));
38
39    return prefix;
40  };
41
42  const getSelector = element => {
43    let selector = element.getAttribute('data-bs-target');
44
45    if (!selector || selector === '#') {
46      let hrefAttribute = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes,
47      // so everything starting with `#` or `.`. If a "real" URL is used as the selector,
48      // `document.querySelector` will rightfully complain it is invalid.
49      // See https://github.com/twbs/bootstrap/issues/32273
50
51      if (!hrefAttribute || !hrefAttribute.includes('#') && !hrefAttribute.startsWith('.')) {
52        return null;
53      } // Just in case some CMS puts out a full URL with the anchor appended
54
55
56      if (hrefAttribute.includes('#') && !hrefAttribute.startsWith('#')) {
57        hrefAttribute = `#${hrefAttribute.split('#')[1]}`;
58      }
59
60      selector = hrefAttribute && hrefAttribute !== '#' ? hrefAttribute.trim() : null;
61    }
62
63    return selector;
64  };
65
66  const getSelectorFromElement = element => {
67    const selector = getSelector(element);
68
69    if (selector) {
70      return document.querySelector(selector) ? selector : null;
71    }
72
73    return null;
74  };
75
76  const getElementFromSelector = element => {
77    const selector = getSelector(element);
78    return selector ? document.querySelector(selector) : null;
79  };
80
81  const getTransitionDurationFromElement = element => {
82    if (!element) {
83      return 0;
84    } // Get transition-duration of the element
85
86
87    let {
88      transitionDuration,
89      transitionDelay
90    } = window.getComputedStyle(element);
91    const floatTransitionDuration = Number.parseFloat(transitionDuration);
92    const floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
93
94    if (!floatTransitionDuration && !floatTransitionDelay) {
95      return 0;
96    } // If multiple durations are defined, take the first
97
98
99    transitionDuration = transitionDuration.split(',')[0];
100    transitionDelay = transitionDelay.split(',')[0];
101    return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
102  };
103
104  const triggerTransitionEnd = element => {
105    element.dispatchEvent(new Event(TRANSITION_END));
106  };
107
108  const isElement$1 = object => {
109    if (!object || typeof object !== 'object') {
110      return false;
111    }
112
113    if (typeof object.jquery !== 'undefined') {
114      object = object[0];
115    }
116
117    return typeof object.nodeType !== 'undefined';
118  };
119
120  const getElement = object => {
121    // it's a jQuery object or a node element
122    if (isElement$1(object)) {
123      return object.jquery ? object[0] : object;
124    }
125
126    if (typeof object === 'string' && object.length > 0) {
127      return document.querySelector(object);
128    }
129
130    return null;
131  };
132
133  const isVisible = element => {
134    if (!isElement$1(element) || element.getClientRects().length === 0) {
135      return false;
136    }
137
138    const elementIsVisible = getComputedStyle(element).getPropertyValue('visibility') === 'visible'; // Handle `details` element as its content may falsie appear visible when it is closed
139
140    const closedDetails = element.closest('details:not([open])');
141
142    if (!closedDetails) {
143      return elementIsVisible;
144    }
145
146    if (closedDetails !== element) {
147      const summary = element.closest('summary');
148
149      if (summary && summary.parentNode !== closedDetails) {
150        return false;
151      }
152
153      if (summary === null) {
154        return false;
155      }
156    }
157
158    return elementIsVisible;
159  };
160
161  const isDisabled = element => {
162    if (!element || element.nodeType !== Node.ELEMENT_NODE) {
163      return true;
164    }
165
166    if (element.classList.contains('disabled')) {
167      return true;
168    }
169
170    if (typeof element.disabled !== 'undefined') {
171      return element.disabled;
172    }
173
174    return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false';
175  };
176
177  const findShadowRoot = element => {
178    if (!document.documentElement.attachShadow) {
179      return null;
180    } // Can find the shadow root otherwise it'll return the document
181
182
183    if (typeof element.getRootNode === 'function') {
184      const root = element.getRootNode();
185      return root instanceof ShadowRoot ? root : null;
186    }
187
188    if (element instanceof ShadowRoot) {
189      return element;
190    } // when we don't find a shadow root
191
192
193    if (!element.parentNode) {
194      return null;
195    }
196
197    return findShadowRoot(element.parentNode);
198  };
199
200  const noop = () => {};
201  /**
202   * Trick to restart an element's animation
203   *
204   * @param {HTMLElement} element
205   * @return void
206   *
207   * @see https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation
208   */
209
210
211  const reflow = element => {
212    element.offsetHeight; // eslint-disable-line no-unused-expressions
213  };
214
215  const getjQuery = () => {
216    if (window.jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
217      return window.jQuery;
218    }
219
220    return null;
221  };
222
223  const DOMContentLoadedCallbacks = [];
224
225  const onDOMContentLoaded = callback => {
226    if (document.readyState === 'loading') {
227      // add listener on the first call when the document is in loading state
228      if (!DOMContentLoadedCallbacks.length) {
229        document.addEventListener('DOMContentLoaded', () => {
230          for (const callback of DOMContentLoadedCallbacks) {
231            callback();
232          }
233        });
234      }
235
236      DOMContentLoadedCallbacks.push(callback);
237    } else {
238      callback();
239    }
240  };
241
242  const isRTL = () => document.documentElement.dir === 'rtl';
243
244  const defineJQueryPlugin = plugin => {
245    onDOMContentLoaded(() => {
246      const $ = getjQuery();
247      /* istanbul ignore if */
248
249      if ($) {
250        const name = plugin.NAME;
251        const JQUERY_NO_CONFLICT = $.fn[name];
252        $.fn[name] = plugin.jQueryInterface;
253        $.fn[name].Constructor = plugin;
254
255        $.fn[name].noConflict = () => {
256          $.fn[name] = JQUERY_NO_CONFLICT;
257          return plugin.jQueryInterface;
258        };
259      }
260    });
261  };
262
263  const execute = callback => {
264    if (typeof callback === 'function') {
265      callback();
266    }
267  };
268
269  const executeAfterTransition = (callback, transitionElement, waitForTransition = true) => {
270    if (!waitForTransition) {
271      execute(callback);
272      return;
273    }
274
275    const durationPadding = 5;
276    const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding;
277    let called = false;
278
279    const handler = ({
280      target
281    }) => {
282      if (target !== transitionElement) {
283        return;
284      }
285
286      called = true;
287      transitionElement.removeEventListener(TRANSITION_END, handler);
288      execute(callback);
289    };
290
291    transitionElement.addEventListener(TRANSITION_END, handler);
292    setTimeout(() => {
293      if (!called) {
294        triggerTransitionEnd(transitionElement);
295      }
296    }, emulatedDuration);
297  };
298  /**
299   * Return the previous/next element of a list.
300   *
301   * @param {array} list    The list of elements
302   * @param activeElement   The active element
303   * @param shouldGetNext   Choose to get next or previous element
304   * @param isCycleAllowed
305   * @return {Element|elem} The proper element
306   */
307
308
309  const getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => {
310    const listLength = list.length;
311    let index = list.indexOf(activeElement); // if the element does not exist in the list return an element
312    // depending on the direction and if cycle is allowed
313
314    if (index === -1) {
315      return !shouldGetNext && isCycleAllowed ? list[listLength - 1] : list[0];
316    }
317
318    index += shouldGetNext ? 1 : -1;
319
320    if (isCycleAllowed) {
321      index = (index + listLength) % listLength;
322    }
323
324    return list[Math.max(0, Math.min(index, listLength - 1))];
325  };
326
327  /**
328   * --------------------------------------------------------------------------
329   * Bootstrap (v5.2.2): dom/event-handler.js
330   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
331   * --------------------------------------------------------------------------
332   */
333  /**
334   * Constants
335   */
336
337  const namespaceRegex = /[^.]*(?=\..*)\.|.*/;
338  const stripNameRegex = /\..*/;
339  const stripUidRegex = /::\d+$/;
340  const eventRegistry = {}; // Events storage
341
342  let uidEvent = 1;
343  const customEvents = {
344    mouseenter: 'mouseover',
345    mouseleave: 'mouseout'
346  };
347  const nativeEvents = new Set(['click', 'dblclick', 'mouseup', 'mousedown', 'contextmenu', 'mousewheel', 'DOMMouseScroll', 'mouseover', 'mouseout', 'mousemove', 'selectstart', 'selectend', 'keydown', 'ke
vendor: 6,095 bytes, lines 347-517
347ypress', 'keyup', 'orientationchange', 'touchstart', 'touchmove', 'touchend', 'touchcancel', 'pointerdown', 'pointermove', 'pointerup', 'pointerleave', 'pointercancel', 'gesturestart', 'gesturechange', 'gestureend', 'focus', 'blur', 'change', 'reset', 'select', 'submit', 'focusin', 'focusout', 'load', 'unload', 'beforeunload', 'resize', 'move', 'DOMContentLoaded', 'readystatechange', 'error', 'abort', 'scroll']);
348  /**
349   * Private methods
350   */
351
352  function makeEventUid(element, uid) {
353    return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++;
354  }
355
356  function getElementEvents(element) {
357    const uid = makeEventUid(element);
358    element.uidEvent = uid;
359    eventRegistry[uid] = eventRegistry[uid] || {};
360    return eventRegistry[uid];
361  }
362
363  function bootstrapHandler(element, fn) {
364    return function handler(event) {
365      hydrateObj(event, {
366        delegateTarget: element
367      });
368
369      if (handler.oneOff) {
370        EventHandler.off(element, event.type, fn);
371      }
372
373      return fn.apply(element, [event]);
374    };
375  }
376
377  function bootstrapDelegationHandler(element, selector, fn) {
378    return function handler(event) {
379      const domElements = element.querySelectorAll(selector);
380
381      for (let {
382        target
383      } = event; target && target !== this; target = target.parentNode) {
384        for (const domElement of domElements) {
385          if (domElement !== target) {
386            continue;
387          }
388
389          hydrateObj(event, {
390            delegateTarget: target
391          });
392
393          if (handler.oneOff) {
394            EventHandler.off(element, event.type, selector, fn);
395          }
396
397          return fn.apply(target, [event]);
398        }
399      }
400    };
401  }
402
403  function findHandler(events, callable, delegationSelector = null) {
404    return Object.values(events).find(event => event.callable === callable && event.delegationSelector === delegationSelector);
405  }
406
407  function normalizeParameters(originalTypeEvent, handler, delegationFunction) {
408    const isDelegated = typeof handler === 'string'; // todo: tooltip passes `false` instead of selector, so we need to check
409
410    const callable = isDelegated ? delegationFunction : handler || delegationFunction;
411    let typeEvent = getTypeEvent(originalTypeEvent);
412
413    if (!nativeEvents.has(typeEvent)) {
414      typeEvent = originalTypeEvent;
415    }
416
417    return [isDelegated, callable, typeEvent];
418  }
419
420  function addHandler(element, originalTypeEvent, handler, delegationFunction, oneOff) {
421    if (typeof originalTypeEvent !== 'string' || !element) {
422      return;
423    }
424
425    let [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction); // in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position
426    // this prevents the handler from being dispatched the same way as mouseover or mouseout does
427
428    if (originalTypeEvent in customEvents) {
429      const wrapFunction = fn => {
430        return function (event) {
431          if (!event.relatedTarget || event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget)) {
432            return fn.call(this, event);
433          }
434        };
435      };
436
437      callable = wrapFunction(callable);
438    }
439
440    const events = getElementEvents(element);
441    const handlers = events[typeEvent] || (events[typeEvent] = {});
442    const previousFunction = findHandler(handlers, callable, isDelegated ? handler : null);
443
444    if (previousFunction) {
445      previousFunction.oneOff = previousFunction.oneOff && oneOff;
446      return;
447    }
448
449    const uid = makeEventUid(callable, originalTypeEvent.replace(namespaceRegex, ''));
450    const fn = isDelegated ? bootstrapDelegationHandler(element, handler, callable) : bootstrapHandler(element, callable);
451    fn.delegationSelector = isDelegated ? handler : null;
452    fn.callable = callable;
453    fn.oneOff = oneOff;
454    fn.uidEvent = uid;
455    handlers[uid] = fn;
456    element.addEventListener(typeEvent, fn, isDelegated);
457  }
458
459  function removeHandler(element, events, typeEvent, handler, delegationSelector) {
460    const fn = findHandler(events[typeEvent], handler, delegationSelector);
461
462    if (!fn) {
463      return;
464    }
465
466    element.removeEventListener(typeEvent, fn, Boolean(delegationSelector));
467    delete events[typeEvent][fn.uidEvent];
468  }
469
470  function removeNamespacedHandlers(element, events, typeEvent, namespace) {
471    const storeElementEvent = events[typeEvent] || {};
472
473    for (const handlerKey of Object.keys(storeElementEvent)) {
474      if (handlerKey.includes(namespace)) {
475        const event = storeElementEvent[handlerKey];
476        removeHandler(element, events, typeEvent, event.callable, event.delegationSelector);
477      }
478    }
479  }
480
481  function getTypeEvent(event) {
482    // allow to get the native events from namespaced events ('click.bs.button' --> 'click')
483    event = event.replace(stripNameRegex, '');
484    return customEvents[event] || event;
485  }
486
487  const EventHandler = {
488    on(element, event, handler, delegationFunction) {
489      addHandler(element, event, handler, delegationFunction, false);
490    },
491
492    one(element, event, handler, delegationFunction) {
493      addHandler(element, event, handler, delegationFunction, true);
494    },
495
496    off(element, originalTypeEvent, handler, delegationFunction) {
497      if (typeof originalTypeEvent !== 'string' || !element) {
498        return;
499      }
500
501      const [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction);
502      const inNamespace = typeEvent !== originalTypeEvent;
503      const events = getElementEvents(element);
504      const storeElementEvent = events[typeEvent] || {};
505      const isNamespace = originalTypeEvent.startsWith('.');
506
507      if (typeof callable !== 'undefined') {
508        // Simplest case: handler is passed, remove that listener ONLY.
509        if (!Object.keys(storeElementEvent).length) {
510          return;
511        }
512
513        removeHandler(element, events, typeEvent, callable, isDelegated ? handler : null);
514        return;
515      }
516
517      if (isNamespace) {
vendor: 7,886 bytes, lines 518-812
518        for (const elementEvent of Object.keys(events)) {
519          removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1));
520        }
521      }
522
523      for (const keyHandlers of Object.keys(storeElementEvent)) {
524        const handlerKey = keyHandlers.replace(stripUidRegex, '');
525
526        if (!inNamespace || originalTypeEvent.includes(handlerKey)) {
527          const event = storeElementEvent[keyHandlers];
528          removeHandler(element, events, typeEvent, event.callable, event.delegationSelector);
529        }
530      }
531    },
532
533    trigger(element, event, args) {
534      if (typeof event !== 'string' || !element) {
535        return null;
536      }
537
538      const $ = getjQuery();
539      const typeEvent = getTypeEvent(event);
540      const inNamespace = event !== typeEvent;
541      let jQueryEvent = null;
542      let bubbles = true;
543      let nativeDispatch = true;
544      let defaultPrevented = false;
545
546      if (inNamespace && $) {
547        jQueryEvent = $.Event(event, args);
548        $(element).trigger(jQueryEvent);
549        bubbles = !jQueryEvent.isPropagationStopped();
550        nativeDispatch = !jQueryEvent.isImmediatePropagationStopped();
551        defaultPrevented = jQueryEvent.isDefaultPrevented();
552      }
553
554      let evt = new Event(event, {
555        bubbles,
556        cancelable: true
557      });
558      evt = hydrateObj(evt, args);
559
560      if (defaultPrevented) {
561        evt.preventDefault();
562      }
563
564      if (nativeDispatch) {
565        element.dispatchEvent(evt);
566      }
567
568      if (evt.defaultPrevented && jQueryEvent) {
569        jQueryEvent.preventDefault();
570      }
571
572      return evt;
573    }
574
575  };
576
577  function hydrateObj(obj, meta) {
578    for (const [key, value] of Object.entries(meta || {})) {
579      try {
580        obj[key] = value;
581      } catch (_unused) {
582        Object.defineProperty(obj, key, {
583          configurable: true,
584
585          get() {
586            return value;
587          }
588
589        });
590      }
591    }
592
593    return obj;
594  }
595
596  /**
597   * --------------------------------------------------------------------------
598   * Bootstrap (v5.2.2): dom/data.js
599   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
600   * --------------------------------------------------------------------------
601   */
602
603  /**
604   * Constants
605   */
606  const elementMap = new Map();
607  const Data = {
608    set(element, key, instance) {
609      if (!elementMap.has(element)) {
610        elementMap.set(element, new Map());
611      }
612
613      const instanceMap = elementMap.get(element); // make it clear we only want one instance per element
614      // can be removed later when multiple key/instances are fine to be used
615
616      if (!instanceMap.has(key) && instanceMap.size !== 0) {
617        // eslint-disable-next-line no-console
618        console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`);
619        return;
620      }
621
622      instanceMap.set(key, instance);
623    },
624
625    get(element, key) {
626      if (elementMap.has(element)) {
627        return elementMap.get(element).get(key) || null;
628      }
629
630      return null;
631    },
632
633    remove(element, key) {
634      if (!elementMap.has(element)) {
635        return;
636      }
637
638      const instanceMap = elementMap.get(element);
639      instanceMap.delete(key); // free up element references if there are no instances left for an element
640
641      if (instanceMap.size === 0) {
642        elementMap.delete(element);
643      }
644    }
645
646  };
647
648  /**
649   * --------------------------------------------------------------------------
650   * Bootstrap (v5.2.2): dom/manipulator.js
651   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
652   * --------------------------------------------------------------------------
653   */
654  function normalizeData(value) {
655    if (value === 'true') {
656      return true;
657    }
658
659    if (value === 'false') {
660      return false;
661    }
662
663    if (value === Number(value).toString()) {
664      return Number(value);
665    }
666
667    if (value === '' || value === 'null') {
668      return null;
669    }
670
671    if (typeof value !== 'string') {
672      return value;
673    }
674
675    try {
676      return JSON.parse(decodeURIComponent(value));
677    } catch (_unused) {
678      return value;
679    }
680  }
681
682  function normalizeDataKey(key) {
683    return key.replace(/[A-Z]/g, chr => `-${chr.toLowerCase()}`);
684  }
685
686  const Manipulator = {
687    setDataAttribute(element, key, value) {
688      element.setAttribute(`data-bs-${normalizeDataKey(key)}`, value);
689    },
690
691    removeDataAttribute(element, key) {
692      element.removeAttribute(`data-bs-${normalizeDataKey(key)}`);
693    },
694
695    getDataAttributes(element) {
696      if (!element) {
697        return {};
698      }
699
700      const attributes = {};
701      const bsKeys = Object.keys(element.dataset).filter(key => key.startsWith('bs') && !key.startsWith('bsConfig'));
702
703      for (const key of bsKeys) {
704        let pureKey = key.replace(/^bs/, '');
705        pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length);
706        attributes[pureKey] = normalizeData(element.dataset[key]);
707      }
708
709      return attributes;
710    },
711
712    getDataAttribute(element, key) {
713      return normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`));
714    }
715
716  };
717
718  /**
719   * --------------------------------------------------------------------------
720   * Bootstrap (v5.2.2): util/config.js
721   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
722   * --------------------------------------------------------------------------
723   */
724  /**
725   * Class definition
726   */
727
728  class Config {
729    // Getters
730    static get Default() {
731      return {};
732    }
733
734    static get DefaultType() {
735      return {};
736    }
737
738    static get NAME() {
739      throw new Error('You have to implement the static method "NAME", for each component!');
740    }
741
742    _getConfig(config) {
743      config = this._mergeConfigObj(config);
744      config = this._configAfterMerge(config);
745
746      this._typeCheckConfig(config);
747
748      return config;
749    }
750
751    _configAfterMerge(config) {
752      return config;
753    }
754
755    _mergeConfigObj(config, element) {
756      const jsonConfig = isElement$1(element) ? Manipulator.getDataAttribute(element, 'config') : {}; // try to parse
757
758      return { ...this.constructor.Default,
759        ...(typeof jsonConfig === 'object' ? jsonConfig : {}),
760        ...(isElement$1(element) ? Manipulator.getDataAttributes(element) : {}),
761        ...(typeof config === 'object' ? config : {})
762      };
763    }
764
765    _typeCheckConfig(config, configTypes = this.constructor.DefaultType) {
766      for (const property of Object.keys(configTypes)) {
767        const expectedTypes = configTypes[property];
768        const value = config[property];
769        const valueType = isElement$1(value) ? 'element' : toType(value);
770
771        if (!new RegExp(expectedTypes).test(valueType)) {
772          throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${property}" provided type "${valueType}" but expected type "${expectedTypes}".`);
773        }
774      }
775    }
776
777  }
778
779  /**
780   * --------------------------------------------------------------------------
781   * Bootstrap (v5.2.2): base-component.js
782   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
783   * --------------------------------------------------------------------------
784   */
785  /**
786   * Constants
787   */
788
789  const VERSION = '5.2.2';
790  /**
791   * Class definition
792   */
793
794  class BaseComponent extends Config {
795    constructor(element, config) {
796      super();
797      element = getElement(element);
798
799      if (!element) {
800        return;
801      }
802
803      this._element = element;
804      this._config = this._getConfig(config);
805      Data.set(this._element, this.constructor.DATA_KEY, this);
806    } // Public
807
808
809    dispose() {
810      Data.remove(this._element, this.constructor.DATA_KEY);
811      EventHandler.off(this._element, this.constructor.EVENT_KEY);
812
vendor: 2,511 bytes, lines 813-899
813      for (const propertyName of Object.getOwnPropertyNames(this)) {
814        this[propertyName] = null;
815      }
816    }
817
818    _queueCallback(callback, element, isAnimated = true) {
819      executeAfterTransition(callback, element, isAnimated);
820    }
821
822    _getConfig(config) {
823      config = this._mergeConfigObj(config, this._element);
824      config = this._configAfterMerge(config);
825
826      this._typeCheckConfig(config);
827
828      return config;
829    } // Static
830
831
832    static getInstance(element) {
833      return Data.get(getElement(element), this.DATA_KEY);
834    }
835
836    static getOrCreateInstance(element, config = {}) {
837      return this.getInstance(element) || new this(element, typeof config === 'object' ? config : null);
838    }
839
840    static get VERSION() {
841      return VERSION;
842    }
843
844    static get DATA_KEY() {
845      return `bs.${this.NAME}`;
846    }
847
848    static get EVENT_KEY() {
849      return `.${this.DATA_KEY}`;
850    }
851
852    static eventName(name) {
853      return `${name}${this.EVENT_KEY}`;
854    }
855
856  }
857
858  /**
859   * --------------------------------------------------------------------------
860   * Bootstrap (v5.2.2): util/component-functions.js
861   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
862   * --------------------------------------------------------------------------
863   */
864
865  const enableDismissTrigger = (component, method = 'hide') => {
866    const clickEvent = `click.dismiss${component.EVENT_KEY}`;
867    const name = component.NAME;
868    EventHandler.on(document, clickEvent, `[data-bs-dismiss="${name}"]`, function (event) {
869      if (['A', 'AREA'].includes(this.tagName)) {
870        event.preventDefault();
871      }
872
873      if (isDisabled(this)) {
874        return;
875      }
876
877      const target = getElementFromSelector(this) || this.closest(`.${name}`);
878      const instance = component.getOrCreateInstance(target); // Method argument is left, for Alert and only, as it doesn't implement the 'hide' method
879
880      instance[method]();
881    });
882  };
883
884  /**
885   * --------------------------------------------------------------------------
886   * Bootstrap (v5.2.2): alert.js
887   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
888   * --------------------------------------------------------------------------
889   */
890  /**
891   * Constants
892   */
893
894  const NAME$f = 'alert';
895  const DATA_KEY$a = 'bs.alert';
896  const EVENT_KEY$b = `.${DATA_KEY$a}`;
897  const EVENT_CLOSE = `close${EVENT_KEY$b}`;
898  const EVENT_CLOSED = `closed${EVENT_KEY$b}`;
899  const CLASS_NAME_FADE$5 = 'fade';
vendor: 8,809 bytes, lines 900-1245
900  const CLASS_NAME_SHOW$8 = 'show';
901  /**
902   * Class definition
903   */
904
905  class Alert extends BaseComponent {
906    // Getters
907    static get NAME() {
908      return NAME$f;
909    } // Public
910
911
912    close() {
913      const closeEvent = EventHandler.trigger(this._element, EVENT_CLOSE);
914
915      if (closeEvent.defaultPrevented) {
916        return;
917      }
918
919      this._element.classList.remove(CLASS_NAME_SHOW$8);
920
921      const isAnimated = this._element.classList.contains(CLASS_NAME_FADE$5);
922
923      this._queueCallback(() => this._destroyElement(), this._element, isAnimated);
924    } // Private
925
926
927    _destroyElement() {
928      this._element.remove();
929
930      EventHandler.trigger(this._element, EVENT_CLOSED);
931      this.dispose();
932    } // Static
933
934
935    static jQueryInterface(config) {
936      return this.each(function () {
937        const data = Alert.getOrCreateInstance(this);
938
939        if (typeof config !== 'string') {
940          return;
941        }
942
943        if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {
944          throw new TypeError(`No method named "${config}"`);
945        }
946
947        data[config](this);
948      });
949    }
950
951  }
952  /**
953   * Data API implementation
954   */
955
956
957  enableDismissTrigger(Alert, 'close');
958  /**
959   * jQuery
960   */
961
962  defineJQueryPlugin(Alert);
963
964  /**
965   * --------------------------------------------------------------------------
966   * Bootstrap (v5.2.2): button.js
967   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
968   * --------------------------------------------------------------------------
969   */
970  /**
971   * Constants
972   */
973
974  const NAME$e = 'button';
975  const DATA_KEY$9 = 'bs.button';
976  const EVENT_KEY$a = `.${DATA_KEY$9}`;
977  const DATA_API_KEY$6 = '.data-api';
978  const CLASS_NAME_ACTIVE$3 = 'active';
979  const SELECTOR_DATA_TOGGLE$5 = '[data-bs-toggle="button"]';
980  const EVENT_CLICK_DATA_API$6 = `click${EVENT_KEY$a}${DATA_API_KEY$6}`;
981  /**
982   * Class definition
983   */
984
985  class Button extends BaseComponent {
986    // Getters
987    static get NAME() {
988      return NAME$e;
989    } // Public
990
991
992    toggle() {
993      // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method
994      this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE$3));
995    } // Static
996
997
998    static jQueryInterface(config) {
999      return this.each(function () {
1000        const data = Button.getOrCreateInstance(this);
1001
1002        if (config === 'toggle') {
1003          data[config]();
1004        }
1005      });
1006    }
1007
1008  }
1009  /**
1010   * Data API implementation
1011   */
1012
1013
1014  EventHandler.on(document, EVENT_CLICK_DATA_API$6, SELECTOR_DATA_TOGGLE$5, event => {
1015    event.preventDefault();
1016    const button = event.target.closest(SELECTOR_DATA_TOGGLE$5);
1017    const data = Button.getOrCreateInstance(button);
1018    data.toggle();
1019  });
1020  /**
1021   * jQuery
1022   */
1023
1024  defineJQueryPlugin(Button);
1025
1026  /**
1027   * --------------------------------------------------------------------------
1028   * Bootstrap (v5.2.2): dom/selector-engine.js
1029   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
1030   * --------------------------------------------------------------------------
1031   */
1032  /**
1033   * Constants
1034   */
1035
1036  const SelectorEngine = {
1037    find(selector, element = document.documentElement) {
1038      return [].concat(...Element.prototype.querySelectorAll.call(element, selector));
1039    },
1040
1041    findOne(selector, element = document.documentElement) {
1042      return Element.prototype.querySelector.call(element, selector);
1043    },
1044
1045    children(element, selector) {
1046      return [].concat(...element.children).filter(child => child.matches(selector));
1047    },
1048
1049    parents(element, selector) {
1050      const parents = [];
1051      let ancestor = element.parentNode.closest(selector);
1052
1053      while (ancestor) {
1054        parents.push(ancestor);
1055        ancestor = ancestor.parentNode.closest(selector);
1056      }
1057
1058      return parents;
1059    },
1060
1061    prev(element, selector) {
1062      let previous = element.previousElementSibling;
1063
1064      while (previous) {
1065        if (previous.matches(selector)) {
1066          return [previous];
1067        }
1068
1069        previous = previous.previousElementSibling;
1070      }
1071
1072      return [];
1073    },
1074
1075    // TODO: this is now unused; remove later along with prev()
1076    next(element, selector) {
1077      let next = element.nextElementSibling;
1078
1079      while (next) {
1080        if (next.matches(selector)) {
1081          return [next];
1082        }
1083
1084        next = next.nextElementSibling;
1085      }
1086
1087      return [];
1088    },
1089
1090    focusableChildren(element) {
1091      const focusables = ['a', 'button', 'input', 'textarea', 'select', 'details', '[tabindex]', '[contenteditable="true"]'].map(selector => `${selector}:not([tabindex^="-"])`).join(',');
1092      return this.find(focusables, element).filter(el => !isDisabled(el) && isVisible(el));
1093    }
1094
1095  };
1096
1097  /**
1098   * --------------------------------------------------------------------------
1099   * Bootstrap (v5.2.2): util/swipe.js
1100   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
1101   * --------------------------------------------------------------------------
1102   */
1103  /**
1104   * Constants
1105   */
1106
1107  const NAME$d = 'swipe';
1108  const EVENT_KEY$9 = '.bs.swipe';
1109  const EVENT_TOUCHSTART = `touchstart${EVENT_KEY$9}`;
1110  const EVENT_TOUCHMOVE = `touchmove${EVENT_KEY$9}`;
1111  const EVENT_TOUCHEND = `touchend${EVENT_KEY$9}`;
1112  const EVENT_POINTERDOWN = `pointerdown${EVENT_KEY$9}`;
1113  const EVENT_POINTERUP = `pointerup${EVENT_KEY$9}`;
1114  const POINTER_TYPE_TOUCH = 'touch';
1115  const POINTER_TYPE_PEN = 'pen';
1116  const CLASS_NAME_POINTER_EVENT = 'pointer-event';
1117  const SWIPE_THRESHOLD = 40;
1118  const Default$c = {
1119    endCallback: null,
1120    leftCallback: null,
1121    rightCallback: null
1122  };
1123  const DefaultType$c = {
1124    endCallback: '(function|null)',
1125    leftCallback: '(function|null)',
1126    rightCallback: '(function|null)'
1127  };
1128  /**
1129   * Class definition
1130   */
1131
1132  class Swipe extends Config {
1133    constructor(element, config) {
1134      super();
1135      this._element = element;
1136
1137      if (!element || !Swipe.isSupported()) {
1138        return;
1139      }
1140
1141      this._config = this._getConfig(config);
1142      this._deltaX = 0;
1143      this._supportPointerEvents = Boolean(window.PointerEvent);
1144
1145      this._initEvents();
1146    } // Getters
1147
1148
1149    static get Default() {
1150      return Default$c;
1151    }
1152
1153    static get DefaultType() {
1154      return DefaultType$c;
1155    }
1156
1157    static get NAME() {
1158      return NAME$d;
1159    } // Public
1160
1161
1162    dispose() {
1163      EventHandler.off(this._element, EVENT_KEY$9);
1164    } // Private
1165
1166
1167    _start(event) {
1168      if (!this._supportPointerEvents) {
1169        this._deltaX = event.touches[0].clientX;
1170        return;
1171      }
1172
1173      if (this._eventIsPointerPenTouch(event)) {
1174        this._deltaX = event.clientX;
1175      }
1176    }
1177
1178    _end(event) {
1179      if (this._eventIsPointerPenTouch(event)) {
1180        this._deltaX = event.clientX - this._deltaX;
1181      }
1182
1183      this._handleSwipe();
1184
1185      execute(this._config.endCallback);
1186    }
1187
1188    _move(event) {
1189      this._deltaX = event.touches && event.touches.length > 1 ? 0 : event.touches[0].clientX - this._deltaX;
1190    }
1191
1192    _handleSwipe() {
1193      const absDeltaX = Math.abs(this._deltaX);
1194
1195      if (absDeltaX <= SWIPE_THRESHOLD) {
1196        return;
1197      }
1198
1199      const direction = absDeltaX / this._deltaX;
1200      this._deltaX = 0;
1201
1202      if (!direction) {
1203        return;
1204      }
1205
1206      execute(direction > 0 ? this._config.rightCallback : this._config.leftCallback);
1207    }
1208
1209    _initEvents() {
1210      if (this._supportPointerEvents) {
1211        EventHandler.on(this._element, EVENT_POINTERDOWN, event => this._start(event));
1212        EventHandler.on(this._element, EVENT_POINTERUP, event => this._end(event));
1213
1214        this._element.classList.add(CLASS_NAME_POINTER_EVENT);
1215      } else {
1216        EventHandler.on(this._element, EVENT_TOUCHSTART, event => this._start(event));
1217        EventHandler.on(this._element, EVENT_TOUCHMOVE, event => this._move(event));
1218        EventHandler.on(this._element, EVENT_TOUCHEND, event => this._end(event));
1219      }
1220    }
1221
1222    _eventIsPointerPenTouch(event) {
1223      return this._supportPointerEvents && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH);
1224    } // Static
1225
1226
1227    static isSupported() {
1228      return 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;
1229    }
1230
1231  }
1232
1233  /**
1234   * --------------------------------------------------------------------------
1235   * Bootstrap (v5.2.2): carousel.js
1236   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
1237   * --------------------------------------------------------------------------
1238   */
1239  /**
1240   * Constants
1241   */
1242
1243  const NAME$c = 'carousel';
1244  const DATA_KEY$8 = 'bs.carousel';
1245  const EVENT_KEY$8 = `.${DATA_KEY$8}`;
vendor: 24,803 bytes, lines 1246-2134
1246  const DATA_API_KEY$5 = '.data-api';
1247  const ARROW_LEFT_KEY$1 = 'ArrowLeft';
1248  const ARROW_RIGHT_KEY$1 = 'ArrowRight';
1249  const TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch
1250
1251  const ORDER_NEXT = 'next';
1252  const ORDER_PREV = 'prev';
1253  const DIRECTION_LEFT = 'left';
1254  const DIRECTION_RIGHT = 'right';
1255  const EVENT_SLIDE = `slide${EVENT_KEY$8}`;
1256  const EVENT_SLID = `slid${EVENT_KEY$8}`;
1257  const EVENT_KEYDOWN$1 = `keydown${EVENT_KEY$8}`;
1258  const EVENT_MOUSEENTER$1 = `mouseenter${EVENT_KEY$8}`;
1259  const EVENT_MOUSELEAVE$1 = `mouseleave${EVENT_KEY$8}`;
1260  const EVENT_DRAG_START = `dragstart${EVENT_KEY$8}`;
1261  const EVENT_LOAD_DATA_API$3 = `load${EVENT_KEY$8}${DATA_API_KEY$5}`;
1262  const EVENT_CLICK_DATA_API$5 = `click${EVENT_KEY$8}${DATA_API_KEY$5}`;
1263  const CLASS_NAME_CAROUSEL = 'carousel';
1264  const CLASS_NAME_ACTIVE$2 = 'active';
1265  const CLASS_NAME_SLIDE = 'slide';
1266  const CLASS_NAME_END = 'carousel-item-end';
1267  const CLASS_NAME_START = 'carousel-item-start';
1268  const CLASS_NAME_NEXT = 'carousel-item-next';
1269  const CLASS_NAME_PREV = 'carousel-item-prev';
1270  const SELECTOR_ACTIVE = '.active';
1271  const SELECTOR_ITEM = '.carousel-item';
1272  const SELECTOR_ACTIVE_ITEM = SELECTOR_ACTIVE + SELECTOR_ITEM;
1273  const SELECTOR_ITEM_IMG = '.carousel-item img';
1274  const SELECTOR_INDICATORS = '.carousel-indicators';
1275  const SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]';
1276  const SELECTOR_DATA_RIDE = '[data-bs-ride="carousel"]';
1277  const KEY_TO_DIRECTION = {
1278    [ARROW_LEFT_KEY$1]: DIRECTION_RIGHT,
1279    [ARROW_RIGHT_KEY$1]: DIRECTION_LEFT
1280  };
1281  const Default$b = {
1282    interval: 5000,
1283    keyboard: true,
1284    pause: 'hover',
1285    ride: false,
1286    touch: true,
1287    wrap: true
1288  };
1289  const DefaultType$b = {
1290    interval: '(number|boolean)',
1291    // TODO:v6 remove boolean support
1292    keyboard: 'boolean',
1293    pause: '(string|boolean)',
1294    ride: '(boolean|string)',
1295    touch: 'boolean',
1296    wrap: 'boolean'
1297  };
1298  /**
1299   * Class definition
1300   */
1301
1302  class Carousel extends BaseComponent {
1303    constructor(element, config) {
1304      super(element, config);
1305      this._interval = null;
1306      this._activeElement = null;
1307      this._isSliding = false;
1308      this.touchTimeout = null;
1309      this._swipeHelper = null;
1310      this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element);
1311
1312      this._addEventListeners();
1313
1314      if (this._config.ride === CLASS_NAME_CAROUSEL) {
1315        this.cycle();
1316      }
1317    } // Getters
1318
1319
1320    static get Default() {
1321      return Default$b;
1322    }
1323
1324    static get DefaultType() {
1325      return DefaultType$b;
1326    }
1327
1328    static get NAME() {
1329      return NAME$c;
1330    } // Public
1331
1332
1333    next() {
1334      this._slide(ORDER_NEXT);
1335    }
1336
1337    nextWhenVisible() {
1338      // FIXME TODO use `document.visibilityState`
1339      // Don't call next when the page isn't visible
1340      // or the carousel or its parent isn't visible
1341      if (!document.hidden && isVisible(this._element)) {
1342        this.next();
1343      }
1344    }
1345
1346    prev() {
1347      this._slide(ORDER_PREV);
1348    }
1349
1350    pause() {
1351      if (this._isSliding) {
1352        triggerTransitionEnd(this._element);
1353      }
1354
1355      this._clearInterval();
1356    }
1357
1358    cycle() {
1359      this._clearInterval();
1360
1361      this._updateInterval();
1362
1363      this._interval = setInterval(() => this.nextWhenVisible(), this._config.interval);
1364    }
1365
1366    _maybeEnableCycle() {
1367      if (!this._config.ride) {
1368        return;
1369      }
1370
1371      if (this._isSliding) {
1372        EventHandler.one(this._element, EVENT_SLID, () => this.cycle());
1373        return;
1374      }
1375
1376      this.cycle();
1377    }
1378
1379    to(index) {
1380      const items = this._getItems();
1381
1382      if (index > items.length - 1 || index < 0) {
1383        return;
1384      }
1385
1386      if (this._isSliding) {
1387        EventHandler.one(this._element, EVENT_SLID, () => this.to(index));
1388        return;
1389      }
1390
1391      const activeIndex = this._getItemIndex(this._getActive());
1392
1393      if (activeIndex === index) {
1394        return;
1395      }
1396
1397      const order = index > activeIndex ? ORDER_NEXT : ORDER_PREV;
1398
1399      this._slide(order, items[index]);
1400    }
1401
1402    dispose() {
1403      if (this._swipeHelper) {
1404        this._swipeHelper.dispose();
1405      }
1406
1407      super.dispose();
1408    } // Private
1409
1410
1411    _configAfterMerge(config) {
1412      config.defaultInterval = config.interval;
1413      return config;
1414    }
1415
1416    _addEventListeners() {
1417      if (this._config.keyboard) {
1418        EventHandler.on(this._element, EVENT_KEYDOWN$1, event => this._keydown(event));
1419      }
1420
1421      if (this._config.pause === 'hover') {
1422        EventHandler.on(this._element, EVENT_MOUSEENTER$1, () => this.pause());
1423        EventHandler.on(this._element, EVENT_MOUSELEAVE$1, () => this._maybeEnableCycle());
1424      }
1425
1426      if (this._config.touch && Swipe.isSupported()) {
1427        this._addTouchEventListeners();
1428      }
1429    }
1430
1431    _addTouchEventListeners() {
1432      for (const img of SelectorEngine.find(SELECTOR_ITEM_IMG, this._element)) {
1433        EventHandler.on(img, EVENT_DRAG_START, event => event.preventDefault());
1434      }
1435
1436      const endCallBack = () => {
1437        if (this._config.pause !== 'hover') {
1438          return;
1439        } // If it's a touch-enabled device, mouseenter/leave are fired as
1440        // part of the mouse compatibility events on first tap - the carousel
1441        // would stop cycling until user tapped out of it;
1442        // here, we listen for touchend, explicitly pause the carousel
1443        // (as if it's the second time we tap on it, mouseenter compat event
1444        // is NOT fired) and after a timeout (to allow for mouse compatibility
1445        // events to fire) we explicitly restart cycling
1446
1447
1448        this.pause();
1449
1450        if (this.touchTimeout) {
1451          clearTimeout(this.touchTimeout);
1452        }
1453
1454        this.touchTimeout = setTimeout(() => this._maybeEnableCycle(), TOUCHEVENT_COMPAT_WAIT + this._config.interval);
1455      };
1456
1457      const swipeConfig = {
1458        leftCallback: () => this._slide(this._directionToOrder(DIRECTION_LEFT)),
1459        rightCallback: () => this._slide(this._directionToOrder(DIRECTION_RIGHT)),
1460        endCallback: endCallBack
1461      };
1462      this._swipeHelper = new Swipe(this._element, swipeConfig);
1463    }
1464
1465    _keydown(event) {
1466      if (/input|textarea/i.test(event.target.tagName)) {
1467        return;
1468      }
1469
1470      const direction = KEY_TO_DIRECTION[event.key];
1471
1472      if (direction) {
1473        event.preventDefault();
1474
1475        this._slide(this._directionToOrder(direction));
1476      }
1477    }
1478
1479    _getItemIndex(element) {
1480      return this._getItems().indexOf(element);
1481    }
1482
1483    _setActiveIndicatorElement(index) {
1484      if (!this._indicatorsElement) {
1485        return;
1486      }
1487
1488      const activeIndicator = SelectorEngine.findOne(SELECTOR_ACTIVE, this._indicatorsElement);
1489      activeIndicator.classList.remove(CLASS_NAME_ACTIVE$2);
1490      activeIndicator.removeAttribute('aria-current');
1491      const newActiveIndicator = SelectorEngine.findOne(`[data-bs-slide-to="${index}"]`, this._indicatorsElement);
1492
1493      if (newActiveIndicator) {
1494        newActiveIndicator.classList.add(CLASS_NAME_ACTIVE$2);
1495        newActiveIndicator.setAttribute('aria-current', 'true');
1496      }
1497    }
1498
1499    _updateInterval() {
1500      const element = this._activeElement || this._getActive();
1501
1502      if (!element) {
1503        return;
1504      }
1505
1506      const elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10);
1507      this._config.interval = elementInterval || this._config.defaultInterval;
1508    }
1509
1510    _slide(order, element = null) {
1511      if (this._isSliding) {
1512        return;
1513      }
1514
1515      const activeElement = this._getActive();
1516
1517      const isNext = order === ORDER_NEXT;
1518      const nextElement = element || getNextActiveElement(this._getItems(), activeElement, isNext, this._config.wrap);
1519
1520      if (nextElement === activeElement) {
1521        return;
1522      }
1523
1524      const nextElementIndex = this._getItemIndex(nextElement);
1525
1526      const triggerEvent = eventName => {
1527        return EventHandler.trigger(this._element, eventName, {
1528          relatedTarget: nextElement,
1529          direction: this._orderToDirection(order),
1530          from: this._getItemIndex(activeElement),
1531          to: nextElementIndex
1532        });
1533      };
1534
1535      const slideEvent = triggerEvent(EVENT_SLIDE);
1536
1537      if (slideEvent.defaultPrevented) {
1538        return;
1539      }
1540
1541      if (!activeElement || !nextElement) {
1542        // Some weirdness is happening, so we bail
1543        // todo: change tests that use empty divs to avoid this check
1544        return;
1545      }
1546
1547      const isCycling = Boolean(this._interval);
1548      this.pause();
1549      this._isSliding = true;
1550
1551      this._setActiveIndicatorElement(nextElementIndex);
1552
1553      this._activeElement = nextElement;
1554      const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END;
1555      const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV;
1556      nextElement.classList.add(orderClassName);
1557      reflow(nextElement);
1558      activeElement.classList.add(directionalClassName);
1559      nextElement.classList.add(directionalClassName);
1560
1561      const completeCallBack = () => {
1562        nextElement.classList.remove(directionalClassName, orderClassName);
1563        nextElement.classList.add(CLASS_NAME_ACTIVE$2);
1564        activeElement.classList.remove(CLASS_NAME_ACTIVE$2, orderClassName, directionalClassName);
1565        this._isSliding = false;
1566        triggerEvent(EVENT_SLID);
1567      };
1568
1569      this._queueCallback(completeCallBack, activeElement, this._isAnimated());
1570
1571      if (isCycling) {
1572        this.cycle();
1573      }
1574    }
1575
1576    _isAnimated() {
1577      return this._element.classList.contains(CLASS_NAME_SLIDE);
1578    }
1579
1580    _getActive() {
1581      return SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element);
1582    }
1583
1584    _getItems() {
1585      return SelectorEngine.find(SELECTOR_ITEM, this._element);
1586    }
1587
1588    _clearInterval() {
1589      if (this._interval) {
1590        clearInterval(this._interval);
1591        this._interval = null;
1592      }
1593    }
1594
1595    _directionToOrder(direction) {
1596      if (isRTL()) {
1597        return direction === DIRECTION_LEFT ? ORDER_PREV : ORDER_NEXT;
1598      }
1599
1600      return direction === DIRECTION_LEFT ? ORDER_NEXT : ORDER_PREV;
1601    }
1602
1603    _orderToDirection(order) {
1604      if (isRTL()) {
1605        return order === ORDER_PREV ? DIRECTION_LEFT : DIRECTION_RIGHT;
1606      }
1607
1608      return order === ORDER_PREV ? DIRECTION_RIGHT : DIRECTION_LEFT;
1609    } // Static
1610
1611
1612    static jQueryInterface(config) {
1613      return this.each(function () {
1614        const data = Carousel.getOrCreateInstance(this, config);
1615
1616        if (typeof config === 'number') {
1617          data.to(config);
1618          return;
1619        }
1620
1621        if (typeof config === 'string') {
1622          if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {
1623            throw new TypeError(`No method named "${config}"`);
1624          }
1625
1626          data[config]();
1627        }
1628      });
1629    }
1630
1631  }
1632  /**
1633   * Data API implementation
1634   */
1635
1636
1637  EventHandler.on(document, EVENT_CLICK_DATA_API$5, SELECTOR_DATA_SLIDE, function (event) {
1638    const target = getElementFromSelector(this);
1639
1640    if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {
1641      return;
1642    }
1643
1644    event.preventDefault();
1645    const carousel = Carousel.getOrCreateInstance(target);
1646    const slideIndex = this.getAttribute('data-bs-slide-to');
1647
1648    if (slideIndex) {
1649      carousel.to(slideIndex);
1650
1651      carousel._maybeEnableCycle();
1652
1653      return;
1654    }
1655
1656    if (Manipulator.getDataAttribute(this, 'slide') === 'next') {
1657      carousel.next();
1658
1659      carousel._maybeEnableCycle();
1660
1661      return;
1662    }
1663
1664    carousel.prev();
1665
1666    carousel._maybeEnableCycle();
1667  });
1668  EventHandler.on(window, EVENT_LOAD_DATA_API$3, () => {
1669    const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE);
1670
1671    for (const carousel of carousels) {
1672      Carousel.getOrCreateInstance(carousel);
1673    }
1674  });
1675  /**
1676   * jQuery
1677   */
1678
1679  defineJQueryPlugin(Carousel);
1680
1681  /**
1682   * --------------------------------------------------------------------------
1683   * Bootstrap (v5.2.2): collapse.js
1684   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
1685   * --------------------------------------------------------------------------
1686   */
1687  /**
1688   * Constants
1689   */
1690
1691  const NAME$b = 'collapse';
1692  const DATA_KEY$7 = 'bs.collapse';
1693  const EVENT_KEY$7 = `.${DATA_KEY$7}`;
1694  const DATA_API_KEY$4 = '.data-api';
1695  const EVENT_SHOW$6 = `show${EVENT_KEY$7}`;
1696  const EVENT_SHOWN$6 = `shown${EVENT_KEY$7}`;
1697  const EVENT_HIDE$6 = `hide${EVENT_KEY$7}`;
1698  const EVENT_HIDDEN$6 = `hidden${EVENT_KEY$7}`;
1699  const EVENT_CLICK_DATA_API$4 = `click${EVENT_KEY$7}${DATA_API_KEY$4}`;
1700  const CLASS_NAME_SHOW$7 = 'show';
1701  const CLASS_NAME_COLLAPSE = 'collapse';
1702  const CLASS_NAME_COLLAPSING = 'collapsing';
1703  const CLASS_NAME_COLLAPSED = 'collapsed';
1704  const CLASS_NAME_DEEPER_CHILDREN = `:scope .${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`;
1705  const CLASS_NAME_HORIZONTAL = 'collapse-horizontal';
1706  const WIDTH = 'width';
1707  const HEIGHT = 'height';
1708  const SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing';
1709  const SELECTOR_DATA_TOGGLE$4 = '[data-bs-toggle="collapse"]';
1710  const Default$a = {
1711    parent: null,
1712    toggle: true
1713  };
1714  const DefaultType$a = {
1715    parent: '(null|element)',
1716    toggle: 'boolean'
1717  };
1718  /**
1719   * Class definition
1720   */
1721
1722  class Collapse extends BaseComponent {
1723    constructor(element, config) {
1724      super(element, config);
1725      this._isTransitioning = false;
1726      this._triggerArray = [];
1727      const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE$4);
1728
1729      for (const elem of toggleList) {
1730        const selector = getSelectorFromElement(elem);
1731        const filterElement = SelectorEngine.find(selector).filter(foundElement => foundElement === this._element);
1732
1733        if (selector !== null && filterElement.length) {
1734          this._triggerArray.push(elem);
1735        }
1736      }
1737
1738      this._initializeChildren();
1739
1740      if (!this._config.parent) {
1741        this._addAriaAndCollapsedClass(this._triggerArray, this._isShown());
1742      }
1743
1744      if (this._config.toggle) {
1745        this.toggle();
1746      }
1747    } // Getters
1748
1749
1750    static get Default() {
1751      return Default$a;
1752    }
1753
1754    static get DefaultType() {
1755      return DefaultType$a;
1756    }
1757
1758    static get NAME() {
1759      return NAME$b;
1760    } // Public
1761
1762
1763    toggle() {
1764      if (this._isShown()) {
1765        this.hide();
1766      } else {
1767        this.show();
1768      }
1769    }
1770
1771    show() {
1772      if (this._isTransitioning || this._isShown()) {
1773        return;
1774      }
1775
1776      let activeChildren = []; // find active children
1777
1778      if (this._config.parent) {
1779        activeChildren = this._getFirstLevelChildren(SELECTOR_ACTIVES).filter(element => element !== this._element).map(element => Collapse.getOrCreateInstance(element, {
1780          toggle: false
1781        }));
1782      }
1783
1784      if (activeChildren.length && activeChildren[0]._isTransitioning) {
1785        return;
1786      }
1787
1788      const startEvent = EventHandler.trigger(this._element, EVENT_SHOW$6);
1789
1790      if (startEvent.defaultPrevented) {
1791        return;
1792      }
1793
1794      for (const activeInstance of activeChildren) {
1795        activeInstance.hide();
1796      }
1797
1798      const dimension = this._getDimension();
1799
1800      this._element.classList.remove(CLASS_NAME_COLLAPSE);
1801
1802      this._element.classList.add(CLASS_NAME_COLLAPSING);
1803
1804      this._element.style[dimension] = 0;
1805
1806      this._addAriaAndCollapsedClass(this._triggerArray, true);
1807
1808      this._isTransitioning = true;
1809
1810      const complete = () => {
1811        this._isTransitioning = false;
1812
1813        this._element.classList.remove(CLASS_NAME_COLLAPSING);
1814
1815        this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7);
1816
1817        this._element.style[dimension] = '';
1818        EventHandler.trigger(this._element, EVENT_SHOWN$6);
1819      };
1820
1821      const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
1822      const scrollSize = `scroll${capitalizedDimension}`;
1823
1824      this._queueCallback(complete, this._element, true);
1825
1826      this._element.style[dimension] = `${this._element[scrollSize]}px`;
1827    }
1828
1829    hide() {
1830      if (this._isTransitioning || !this._isShown()) {
1831        return;
1832      }
1833
1834      const startEvent = EventHandler.trigger(this._element, EVENT_HIDE$6);
1835
1836      if (startEvent.defaultPrevented) {
1837        return;
1838      }
1839
1840      const dimension = this._getDimension();
1841
1842      this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`;
1843      reflow(this._element);
1844
1845      this._element.classList.add(CLASS_NAME_COLLAPSING);
1846
1847      this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7);
1848
1849      for (const trigger of this._triggerArray) {
1850        const element = getElementFromSelector(trigger);
1851
1852        if (element && !this._isShown(element)) {
1853          this._addAriaAndCollapsedClass([trigger], false);
1854        }
1855      }
1856
1857      this._isTransitioning = true;
1858
1859      const complete = () => {
1860        this._isTransitioning = false;
1861
1862        this._element.classList.remove(CLASS_NAME_COLLAPSING);
1863
1864        this._element.classList.add(CLASS_NAME_COLLAPSE);
1865
1866        EventHandler.trigger(this._element, EVENT_HIDDEN$6);
1867      };
1868
1869      this._element.style[dimension] = '';
1870
1871      this._queueCallback(complete, this._element, true);
1872    }
1873
1874    _isShown(element = this._element) {
1875      return element.classList.contains(CLASS_NAME_SHOW$7);
1876    } // Private
1877
1878
1879    _configAfterMerge(config) {
1880      config.toggle = Boolean(config.toggle); // Coerce string values
1881
1882      config.parent = getElement(config.parent);
1883      return config;
1884    }
1885
1886    _getDimension() {
1887      return this._element.classList.contains(CLASS_NAME_HORIZONTAL) ? WIDTH : HEIGHT;
1888    }
1889
1890    _initializeChildren() {
1891      if (!this._config.parent) {
1892        return;
1893      }
1894
1895      const children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE$4);
1896
1897      for (const element of children) {
1898        const selected = getElementFromSelector(element);
1899
1900        if (selected) {
1901          this._addAriaAndCollapsedClass([element], this._isShown(selected));
1902        }
1903      }
1904    }
1905
1906    _getFirstLevelChildren(selector) {
1907      const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent); // remove children if greater depth
1908
1909      return SelectorEngine.find(selector, this._config.parent).filter(element => !children.includes(element));
1910    }
1911
1912    _addAriaAndCollapsedClass(triggerArray, isOpen) {
1913      if (!triggerArray.length) {
1914        return;
1915      }
1916
1917      for (const element of triggerArray) {
1918        element.classList.toggle(CLASS_NAME_COLLAPSED, !isOpen);
1919        element.setAttribute('aria-expanded', isOpen);
1920      }
1921    } // Static
1922
1923
1924    static jQueryInterface(config) {
1925      const _config = {};
1926
1927      if (typeof config === 'string' && /show|hide/.test(config)) {
1928        _config.toggle = false;
1929      }
1930
1931      return this.each(function () {
1932        const data = Collapse.getOrCreateInstance(this, _config);
1933
1934        if (typeof config === 'string') {
1935          if (typeof data[config] === 'undefined') {
1936            throw new TypeError(`No method named "${config}"`);
1937          }
1938
1939          data[config]();
1940        }
1941      });
1942    }
1943
1944  }
1945  /**
1946   * Data API implementation
1947   */
1948
1949
1950  EventHandler.on(document, EVENT_CLICK_DATA_API$4, SELECTOR_DATA_TOGGLE$4, function (event) {
1951    // preventDefault only for <a> elements (which change the URL) not inside the collapsible element
1952    if (event.target.tagName === 'A' || event.delegateTarget && event.delegateTarget.tagName === 'A') {
1953      event.preventDefault();
1954    }
1955
1956    const selector = getSelectorFromElement(this);
1957    const selectorElements = SelectorEngine.find(selector);
1958
1959    for (const element of selectorElements) {
1960      Collapse.getOrCreateInstance(element, {
1961        toggle: false
1962      }).toggle();
1963    }
1964  });
1965  /**
1966   * jQuery
1967   */
1968
1969  defineJQueryPlugin(Collapse);
1970
1971  var top = 'top';
1972  var bottom = 'bottom';
1973  var right = 'right';
1974  var left = 'left';
1975  var auto = 'auto';
1976  var basePlacements = [top, bottom, right, left];
1977  var start = 'start';
1978  var end = 'end';
1979  var clippingParents = 'clippingParents';
1980  var viewport = 'viewport';
1981  var popper = 'popper';
1982  var reference = 'reference';
1983  var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {
1984    return acc.concat([placement + "-" + start, placement + "-" + end]);
1985  }, []);
1986  var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {
1987    return acc.concat([placement, placement + "-" + start, placement + "-" + end]);
1988  }, []); // modifiers that need to read the DOM
1989
1990  var beforeRead = 'beforeRead';
1991  var read = 'read';
1992  var afterRead = 'afterRead'; // pure-logic modifiers
1993
1994  var beforeMain = 'beforeMain';
1995  var main = 'main';
1996  var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)
1997
1998  var beforeWrite = 'beforeWrite';
1999  var write = 'write';
2000  var afterWrite = 'afterWrite';
2001  var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];
2002
2003  function getNodeName(element) {
2004    return element ? (element.nodeName || '').toLowerCase() : null;
2005  }
2006
2007  function getWindow(node) {
2008    if (node == null) {
2009      return window;
2010    }
2011
2012    if (node.toString() !== '[object Window]') {
2013      var ownerDocument = node.ownerDocument;
2014      return ownerDocument ? ownerDocument.defaultView || window : window;
2015    }
2016
2017    return node;
2018  }
2019
2020  function isElement(node) {
2021    var OwnElement = getWindow(node).Element;
2022    return node instanceof OwnElement || node instanceof Element;
2023  }
2024
2025  function isHTMLElement(node) {
2026    var OwnElement = getWindow(node).HTMLElement;
2027    return node instanceof OwnElement || node instanceof HTMLElement;
2028  }
2029
2030  function isShadowRoot(node) {
2031    // IE 11 has no ShadowRoot
2032    if (typeof ShadowRoot === 'undefined') {
2033      return false;
2034    }
2035
2036    var OwnElement = getWindow(node).ShadowRoot;
2037    return node instanceof OwnElement || node instanceof ShadowRoot;
2038  }
2039
2040  // and applies them to the HTMLElements such as popper and arrow
2041
2042  function applyStyles(_ref) {
2043    var state = _ref.state;
2044    Object.keys(state.elements).forEach(function (name) {
2045      var style = state.styles[name] || {};
2046      var attributes = state.attributes[name] || {};
2047      var element = state.elements[name]; // arrow is optional + virtual elements
2048
2049      if (!isHTMLElement(element) || !getNodeName(element)) {
2050        return;
2051      } // Flow doesn't support to extend this property, but it's the most
2052      // effective way to apply styles to an HTMLElement
2053      // $FlowFixMe[cannot-write]
2054
2055
2056      Object.assign(element.style, style);
2057      Object.keys(attributes).forEach(function (name) {
2058        var value = attributes[name];
2059
2060        if (value === false) {
2061          element.removeAttribute(name);
2062        } else {
2063          element.setAttribute(name, value === true ? '' : value);
2064        }
2065      });
2066    });
2067  }
2068
2069  function effect$2(_ref2) {
2070    var state = _ref2.state;
2071    var initialStyles = {
2072      popper: {
2073        position: state.options.strategy,
2074        left: '0',
2075        top: '0',
2076        margin: '0'
2077      },
2078      arrow: {
2079        position: 'absolute'
2080      },
2081      reference: {}
2082    };
2083    Object.assign(state.elements.popper.style, initialStyles.popper);
2084    state.styles = initialStyles;
2085
2086    if (state.elements.arrow) {
2087      Object.assign(state.elements.arrow.style, initialStyles.arrow);
2088    }
2089
2090    return function () {
2091      Object.keys(state.elements).forEach(function (name) {
2092        var element = state.elements[name];
2093        var attributes = state.attributes[name] || {};
2094        var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them
2095
2096        var style = styleProperties.reduce(function (style, property) {
2097          style[property] = '';
2098          return style;
2099        }, {}); // arrow is optional + virtual elements
2100
2101        if (!isHTMLElement(element) || !getNodeName(element)) {
2102          return;
2103        }
2104
2105        Object.assign(element.style, style);
2106        Object.keys(attributes).forEach(function (attribute) {
2107          element.removeAttribute(attribute);
2108        });
2109      });
2110    };
2111  } // eslint-disable-next-line import/no-unused-modules
2112
2113
2114  const applyStyles$1 = {
2115    name: 'applyStyles',
2116    enabled: true,
2117    phase: 'write',
2118    fn: applyStyles,
2119    effect: effect$2,
2120    requires: ['computeStyles']
2121  };
2122
2123  function getBasePlacement(placement) {
2124    return placement.split('-')[0];
2125  }
2126
2127  var max = Math.max;
2128  var min = Math.min;
2129  var round = Math.round;
2130
2131  function getUAString() {
2132    var uaData = navigator.userAgentData;
2133
2134    if (uaData != null && uaData.brands
vendor: 9,607 bytes, lines 2134-2421
2134) {
2135      return uaData.brands.map(function (item) {
2136        return item.brand + "/" + item.version;
2137      }).join(' ');
2138    }
2139
2140    return navigator.userAgent;
2141  }
2142
2143  function isLayoutViewport() {
2144    return !/^((?!chrome|android).)*safari/i.test(getUAString());
2145  }
2146
2147  function getBoundingClientRect(element, includeScale, isFixedStrategy) {
2148    if (includeScale === void 0) {
2149      includeScale = false;
2150    }
2151
2152    if (isFixedStrategy === void 0) {
2153      isFixedStrategy = false;
2154    }
2155
2156    var clientRect = element.getBoundingClientRect();
2157    var scaleX = 1;
2158    var scaleY = 1;
2159
2160    if (includeScale && isHTMLElement(element)) {
2161      scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;
2162      scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;
2163    }
2164
2165    var _ref = isElement(element) ? getWindow(element) : window,
2166        visualViewport = _ref.visualViewport;
2167
2168    var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;
2169    var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;
2170    var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;
2171    var width = clientRect.width / scaleX;
2172    var height = clientRect.height / scaleY;
2173    return {
2174      width: width,
2175      height: height,
2176      top: y,
2177      right: x + width,
2178      bottom: y + height,
2179      left: x,
2180      x: x,
2181      y: y
2182    };
2183  }
2184
2185  // means it doesn't take into account transforms.
2186
2187  function getLayoutRect(element) {
2188    var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.
2189    // Fixes https://github.com/popperjs/popper-core/issues/1223
2190
2191    var width = element.offsetWidth;
2192    var height = element.offsetHeight;
2193
2194    if (Math.abs(clientRect.width - width) <= 1) {
2195      width = clientRect.width;
2196    }
2197
2198    if (Math.abs(clientRect.height - height) <= 1) {
2199      height = clientRect.height;
2200    }
2201
2202    return {
2203      x: element.offsetLeft,
2204      y: element.offsetTop,
2205      width: width,
2206      height: height
2207    };
2208  }
2209
2210  function contains(parent, child) {
2211    var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method
2212
2213    if (parent.contains(child)) {
2214      return true;
2215    } // then fallback to custom implementation with Shadow DOM support
2216    else if (rootNode && isShadowRoot(rootNode)) {
2217        var next = child;
2218
2219        do {
2220          if (next && parent.isSameNode(next)) {
2221            return true;
2222          } // $FlowFixMe[prop-missing]: need a better way to handle this...
2223
2224
2225          next = next.parentNode || next.host;
2226        } while (next);
2227      } // Give up, the result is false
2228
2229
2230    return false;
2231  }
2232
2233  function getComputedStyle$1(element) {
2234    return getWindow(element).getComputedStyle(element);
2235  }
2236
2237  function isTableElement(element) {
2238    return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;
2239  }
2240
2241  function getDocumentElement(element) {
2242    // $FlowFixMe[incompatible-return]: assume body is always available
2243    return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]
2244    element.document) || window.document).documentElement;
2245  }
2246
2247  function getParentNode(element) {
2248    if (getNodeName(element) === 'html') {
2249      return element;
2250    }
2251
2252    return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle
2253      // $FlowFixMe[incompatible-return]
2254      // $FlowFixMe[prop-missing]
2255      element.assignedSlot || // step into the shadow DOM of the parent of a slotted node
2256      element.parentNode || ( // DOM Element detected
2257      isShadowRoot(element) ? element.host : null) || // ShadowRoot detected
2258      // $FlowFixMe[incompatible-call]: HTMLElement is a Node
2259      getDocumentElement(element) // fallback
2260
2261    );
2262  }
2263
2264  function getTrueOffsetParent(element) {
2265    if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837
2266    getComputedStyle$1(element).position === 'fixed') {
2267      return null;
2268    }
2269
2270    return element.offsetParent;
2271  } // `.offsetParent` reports `null` for fixed elements, while absolute elements
2272  // return the containing block
2273
2274
2275  function getContainingBlock(element) {
2276    var isFirefox = /firefox/i.test(getUAString());
2277    var isIE = /Trident/i.test(getUAString());
2278
2279    if (isIE && isHTMLElement(element)) {
2280      // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport
2281      var elementCss = getComputedStyle$1(element);
2282
2283      if (elementCss.position === 'fixed') {
2284        return null;
2285      }
2286    }
2287
2288    var currentNode = getParentNode(element);
2289
2290    if (isShadowRoot(currentNode)) {
2291      currentNode = currentNode.host;
2292    }
2293
2294    while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {
2295      var css = getComputedStyle$1(currentNode); // This is non-exhaustive but covers the most common CSS properties that
2296      // create a containing block.
2297      // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block
2298
2299      if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {
2300        return currentNode;
2301      } else {
2302        currentNode = currentNode.parentNode;
2303      }
2304    }
2305
2306    return null;
2307  } // Gets the closest ancestor positioned element. Handles some edge cases,
2308  // such as table ancestors and cross browser bugs.
2309
2310
2311  function getOffsetParent(element) {
2312    var window = getWindow(element);
2313    var offsetParent = getTrueOffsetParent(element);
2314
2315    while (offsetParent && isTableElement(offsetParent) && getComputedStyle$1(offsetParent).position === 'static') {
2316      offsetParent = getTrueOffsetParent(offsetParent);
2317    }
2318
2319    if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle$1(offsetParent).position === 'static')) {
2320      return window;
2321    }
2322
2323    return offsetParent || getContainingBlock(element) || window;
2324  }
2325
2326  function getMainAxisFromPlacement(placement) {
2327    return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';
2328  }
2329
2330  function within(min$1, value, max$1) {
2331    return max(min$1, min(value, max$1));
2332  }
2333  function withinMaxClamp(min, value, max) {
2334    var v = within(min, value, max);
2335    return v > max ? max : v;
2336  }
2337
2338  function getFreshSideObject() {
2339    return {
2340      top: 0,
2341      right: 0,
2342      bottom: 0,
2343      left: 0
2344    };
2345  }
2346
2347  function mergePaddingObject(paddingObject) {
2348    return Object.assign({}, getFreshSideObject(), paddingObject);
2349  }
2350
2351  function expandToHashMap(value, keys) {
2352    return keys.reduce(function (hashMap, key) {
2353      hashMap[key] = value;
2354      return hashMap;
2355    }, {});
2356  }
2357
2358  var toPaddingObject = function toPaddingObject(padding, state) {
2359    padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {
2360      placement: state.placement
2361    })) : padding;
2362    return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));
2363  };
2364
2365  function arrow(_ref) {
2366    var _state$modifiersData$;
2367
2368    var state = _ref.state,
2369        name = _ref.name,
2370        options = _ref.options;
2371    var arrowElement = state.elements.arrow;
2372    var popperOffsets = state.modifiersData.popperOffsets;
2373    var basePlacement = getBasePlacement(state.placement);
2374    var axis = getMainAxisFromPlacement(basePlacement);
2375    var isVertical = [left, right].indexOf(basePlacement) >= 0;
2376    var len = isVertical ? 'height' : 'width';
2377
2378    if (!arrowElement || !popperOffsets) {
2379      return;
2380    }
2381
2382    var paddingObject = toPaddingObject(options.padding, state);
2383    var arrowRect = getLayoutRect(arrowElement);
2384    var minProp = axis === 'y' ? top : left;
2385    var maxProp = axis === 'y' ? bottom : right;
2386    var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];
2387    var startDiff = popperOffsets[axis] - state.rects.reference[axis];
2388    var arrowOffsetParent = getOffsetParent(arrowElement);
2389    var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;
2390    var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is
2391    // outside of the popper bounds
2392
2393    var min = paddingObject[minProp];
2394    var max = clientSize - arrowRect[len] - paddingObject[maxProp];
2395    var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;
2396    var offset = within(min, center, max); // Prevents breaking syntax highlighting...
2397
2398    var axisProp = axis;
2399    state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);
2400  }
2401
2402  function effect$1(_ref2) {
2403    var state = _ref2.state,
2404        options = _ref2.options;
2405    var _options$element = options.element,
2406        arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;
2407
2408    if (arrowElement == null) {
2409      return;
2410    } // CSS selector
2411
2412
2413    if (typeof arrowElement === 'string') {
2414      arrowElement = state.elements.popper.querySelector(arrowElement);
2415
2416      if (!arrowElement) {
2417        return;
2418      }
2419    }
2420
2421    if (!contains(state.elements.popper, arrowElement)) {
vendor: 1,969 bytes, lines 2422-2500
2422
2423      return;
2424    }
2425
2426    state.elements.arrow = arrowElement;
2427  } // eslint-disable-next-line import/no-unused-modules
2428
2429
2430  const arrow$1 = {
2431    name: 'arrow',
2432    enabled: true,
2433    phase: 'main',
2434    fn: arrow,
2435    effect: effect$1,
2436    requires: ['popperOffsets'],
2437    requiresIfExists: ['preventOverflow']
2438  };
2439
2440  function getVariation(placement) {
2441    return placement.split('-')[1];
2442  }
2443
2444  var unsetSides = {
2445    top: 'auto',
2446    right: 'auto',
2447    bottom: 'auto',
2448    left: 'auto'
2449  }; // Round the offsets to the nearest suitable subpixel based on the DPR.
2450  // Zooming can change the DPR, but it seems to report a value that will
2451  // cleanly divide the values into the appropriate subpixels.
2452
2453  function roundOffsetsByDPR(_ref) {
2454    var x = _ref.x,
2455        y = _ref.y;
2456    var win = window;
2457    var dpr = win.devicePixelRatio || 1;
2458    return {
2459      x: round(x * dpr) / dpr || 0,
2460      y: round(y * dpr) / dpr || 0
2461    };
2462  }
2463
2464  function mapToStyles(_ref2) {
2465    var _Object$assign2;
2466
2467    var popper = _ref2.popper,
2468        popperRect = _ref2.popperRect,
2469        placement = _ref2.placement,
2470        variation = _ref2.variation,
2471        offsets = _ref2.offsets,
2472        position = _ref2.position,
2473        gpuAcceleration = _ref2.gpuAcceleration,
2474        adaptive = _ref2.adaptive,
2475        roundOffsets = _ref2.roundOffsets,
2476        isFixed = _ref2.isFixed;
2477    var _offsets$x = offsets.x,
2478        x = _offsets$x === void 0 ? 0 : _offsets$x,
2479        _offsets$y = offsets.y,
2480        y = _offsets$y === void 0 ? 0 : _offsets$y;
2481
2482    var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({
2483      x: x,
2484      y: y
2485    }) : {
2486      x: x,
2487      y: y
2488    };
2489
2490    x = _ref3.x;
2491    y = _ref3.y;
2492    var hasX = offsets.hasOwnProperty('x');
2493    var hasY = offsets.hasOwnProperty('y');
2494    var sideX = left;
2495    var sideY = top;
2496    var win = window;
2497
2498    if (adaptive) {
2499      var offsetParent = getOffsetParent(popper);
2500      var heightProp = 'clientHeight';
vendor: 2,614 bytes, lines 2501-2564
2501      var widthProp = 'clientWidth';
2502
2503      if (offsetParent === getWindow(popper)) {
2504        offsetParent = getDocumentElement(popper);
2505
2506        if (getComputedStyle$1(offsetParent).position !== 'static' && position === 'absolute') {
2507          heightProp = 'scrollHeight';
2508          widthProp = 'scrollWidth';
2509        }
2510      } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it
2511
2512
2513      offsetParent = offsetParent;
2514
2515      if (placement === top || (placement === left || placement === right) && variation === end) {
2516        sideY = bottom;
2517        var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]
2518        offsetParent[heightProp];
2519        y -= offsetY - popperRect.height;
2520        y *= gpuAcceleration ? 1 : -1;
2521      }
2522
2523      if (placement === left || (placement === top || placement === bottom) && variation === end) {
2524        sideX = right;
2525        var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]
2526        offsetParent[widthProp];
2527        x -= offsetX - popperRect.width;
2528        x *= gpuAcceleration ? 1 : -1;
2529      }
2530    }
2531
2532    var commonStyles = Object.assign({
2533      position: position
2534    }, adaptive && unsetSides);
2535
2536    var _ref4 = roundOffsets === true ? roundOffsetsByDPR({
2537      x: x,
2538      y: y
2539    }) : {
2540      x: x,
2541      y: y
2542    };
2543
2544    x = _ref4.x;
2545    y = _ref4.y;
2546
2547    if (gpuAcceleration) {
2548      var _Object$assign;
2549
2550      return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? "translate(" + x + "px, " + y + "px)" : "translate3d(" + x + "px, " + y + "px, 0)", _Object$assign));
2551    }
2552
2553    return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + "px" : '', _Object$assign2[sideX] = hasX ? x + "px" : '', _Object$assign2.transform = '', _Object$assign2));
2554  }
2555
2556  function computeStyles(_ref5) {
2557    var state = _ref5.state,
2558        options = _ref5.options;
2559    var _options$gpuAccelerat = options.gpuAcceleration,
2560        gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,
2561        _options$adaptive = options.adaptive,
2562        adaptive = _options$adaptive === void 0 ? true : _options$adaptive,
2563        _options$roundOffsets = options.roundOffsets,
2564        roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;
vendor: 37,725 bytes, lines 2565-3633
2565
2566    var commonStyles = {
2567      placement: getBasePlacement(state.placement),
2568      variation: getVariation(state.placement),
2569      popper: state.elements.popper,
2570      popperRect: state.rects.popper,
2571      gpuAcceleration: gpuAcceleration,
2572      isFixed: state.options.strategy === 'fixed'
2573    };
2574
2575    if (state.modifiersData.popperOffsets != null) {
2576      state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {
2577        offsets: state.modifiersData.popperOffsets,
2578        position: state.options.strategy,
2579        adaptive: adaptive,
2580        roundOffsets: roundOffsets
2581      })));
2582    }
2583
2584    if (state.modifiersData.arrow != null) {
2585      state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {
2586        offsets: state.modifiersData.arrow,
2587        position: 'absolute',
2588        adaptive: false,
2589        roundOffsets: roundOffsets
2590      })));
2591    }
2592
2593    state.attributes.popper = Object.assign({}, state.attributes.popper, {
2594      'data-popper-placement': state.placement
2595    });
2596  } // eslint-disable-next-line import/no-unused-modules
2597
2598
2599  const computeStyles$1 = {
2600    name: 'computeStyles',
2601    enabled: true,
2602    phase: 'beforeWrite',
2603    fn: computeStyles,
2604    data: {}
2605  };
2606
2607  var passive = {
2608    passive: true
2609  };
2610
2611  function effect(_ref) {
2612    var state = _ref.state,
2613        instance = _ref.instance,
2614        options = _ref.options;
2615    var _options$scroll = options.scroll,
2616        scroll = _options$scroll === void 0 ? true : _options$scroll,
2617        _options$resize = options.resize,
2618        resize = _options$resize === void 0 ? true : _options$resize;
2619    var window = getWindow(state.elements.popper);
2620    var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);
2621
2622    if (scroll) {
2623      scrollParents.forEach(function (scrollParent) {
2624        scrollParent.addEventListener('scroll', instance.update, passive);
2625      });
2626    }
2627
2628    if (resize) {
2629      window.addEventListener('resize', instance.update, passive);
2630    }
2631
2632    return function () {
2633      if (scroll) {
2634        scrollParents.forEach(function (scrollParent) {
2635          scrollParent.removeEventListener('scroll', instance.update, passive);
2636        });
2637      }
2638
2639      if (resize) {
2640        window.removeEventListener('resize', instance.update, passive);
2641      }
2642    };
2643  } // eslint-disable-next-line import/no-unused-modules
2644
2645
2646  const eventListeners = {
2647    name: 'eventListeners',
2648    enabled: true,
2649    phase: 'write',
2650    fn: function fn() {},
2651    effect: effect,
2652    data: {}
2653  };
2654
2655  var hash$1 = {
2656    left: 'right',
2657    right: 'left',
2658    bottom: 'top',
2659    top: 'bottom'
2660  };
2661  function getOppositePlacement(placement) {
2662    return placement.replace(/left|right|bottom|top/g, function (matched) {
2663      return hash$1[matched];
2664    });
2665  }
2666
2667  var hash = {
2668    start: 'end',
2669    end: 'start'
2670  };
2671  function getOppositeVariationPlacement(placement) {
2672    return placement.replace(/start|end/g, function (matched) {
2673      return hash[matched];
2674    });
2675  }
2676
2677  function getWindowScroll(node) {
2678    var win = getWindow(node);
2679    var scrollLeft = win.pageXOffset;
2680    var scrollTop = win.pageYOffset;
2681    return {
2682      scrollLeft: scrollLeft,
2683      scrollTop: scrollTop
2684    };
2685  }
2686
2687  function getWindowScrollBarX(element) {
2688    // If <html> has a CSS width greater than the viewport, then this will be
2689    // incorrect for RTL.
2690    // Popper 1 is broken in this case and never had a bug report so let's assume
2691    // it's not an issue. I don't think anyone ever specifies width on <html>
2692    // anyway.
2693    // Browsers where the left scrollbar doesn't cause an issue report `0` for
2694    // this (e.g. Edge 2019, IE11, Safari)
2695    return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;
2696  }
2697
2698  function getViewportRect(element, strategy) {
2699    var win = getWindow(element);
2700    var html = getDocumentElement(element);
2701    var visualViewport = win.visualViewport;
2702    var width = html.clientWidth;
2703    var height = html.clientHeight;
2704    var x = 0;
2705    var y = 0;
2706
2707    if (visualViewport) {
2708      width = visualViewport.width;
2709      height = visualViewport.height;
2710      var layoutViewport = isLayoutViewport();
2711
2712      if (layoutViewport || !layoutViewport && strategy === 'fixed') {
2713        x = visualViewport.offsetLeft;
2714        y = visualViewport.offsetTop;
2715      }
2716    }
2717
2718    return {
2719      width: width,
2720      height: height,
2721      x: x + getWindowScrollBarX(element),
2722      y: y
2723    };
2724  }
2725
2726  // of the `<html>` and `<body>` rect bounds if horizontally scrollable
2727
2728  function getDocumentRect(element) {
2729    var _element$ownerDocumen;
2730
2731    var html = getDocumentElement(element);
2732    var winScroll = getWindowScroll(element);
2733    var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;
2734    var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);
2735    var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);
2736    var x = -winScroll.scrollLeft + getWindowScrollBarX(element);
2737    var y = -winScroll.scrollTop;
2738
2739    if (getComputedStyle$1(body || html).direction === 'rtl') {
2740      x += max(html.clientWidth, body ? body.clientWidth : 0) - width;
2741    }
2742
2743    return {
2744      width: width,
2745      height: height,
2746      x: x,
2747      y: y
2748    };
2749  }
2750
2751  function isScrollParent(element) {
2752    // Firefox wants us to check `-x` and `-y` variations as well
2753    var _getComputedStyle = getComputedStyle$1(element),
2754        overflow = _getComputedStyle.overflow,
2755        overflowX = _getComputedStyle.overflowX,
2756        overflowY = _getComputedStyle.overflowY;
2757
2758    return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);
2759  }
2760
2761  function getScrollParent(node) {
2762    if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {
2763      // $FlowFixMe[incompatible-return]: assume body is always available
2764      return node.ownerDocument.body;
2765    }
2766
2767    if (isHTMLElement(node) && isScrollParent(node)) {
2768      return node;
2769    }
2770
2771    return getScrollParent(getParentNode(node));
2772  }
2773
2774  /*
2775  given a DOM element, return the list of all scroll parents, up the list of ancesors
2776  until we get to the top window object. This list is what we attach scroll listeners
2777  to, because if any of these parent elements scroll, we'll need to re-calculate the
2778  reference element's position.
2779  */
2780
2781  function listScrollParents(element, list) {
2782    var _element$ownerDocumen;
2783
2784    if (list === void 0) {
2785      list = [];
2786    }
2787
2788    var scrollParent = getScrollParent(element);
2789    var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);
2790    var win = getWindow(scrollParent);
2791    var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;
2792    var updatedList = list.concat(target);
2793    return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here
2794    updatedList.concat(listScrollParents(getParentNode(target)));
2795  }
2796
2797  function rectToClientRect(rect) {
2798    return Object.assign({}, rect, {
2799      left: rect.x,
2800      top: rect.y,
2801      right: rect.x + rect.width,
2802      bottom: rect.y + rect.height
2803    });
2804  }
2805
2806  function getInnerBoundingClientRect(element, strategy) {
2807    var rect = getBoundingClientRect(element, false, strategy === 'fixed');
2808    rect.top = rect.top + element.clientTop;
2809    rect.left = rect.left + element.clientLeft;
2810    rect.bottom = rect.top + element.clientHeight;
2811    rect.right = rect.left + element.clientWidth;
2812    rect.width = element.clientWidth;
2813    rect.height = element.clientHeight;
2814    rect.x = rect.left;
2815    rect.y = rect.top;
2816    return rect;
2817  }
2818
2819  function getClientRectFromMixedType(element, clippingParent, strategy) {
2820    return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));
2821  } // A "clipping parent" is an overflowable container with the characteristic of
2822  // clipping (or hiding) overflowing elements with a position different from
2823  // `initial`
2824
2825
2826  function getClippingParents(element) {
2827    var clippingParents = listScrollParents(getParentNode(element));
2828    var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle$1(element).position) >= 0;
2829    var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;
2830
2831    if (!isElement(clipperElement)) {
2832      return [];
2833    } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414
2834
2835
2836    return clippingParents.filter(function (clippingParent) {
2837      return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';
2838    });
2839  } // Gets the maximum area that the element is visible in due to any number of
2840  // clipping parents
2841
2842
2843  function getClippingRect(element, boundary, rootBoundary, strategy) {
2844    var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);
2845    var clippingParents = [].concat(mainClippingParents, [rootBoundary]);
2846    var firstClippingParent = clippingParents[0];
2847    var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {
2848      var rect = getClientRectFromMixedType(element, clippingParent, strategy);
2849      accRect.top = max(rect.top, accRect.top);
2850      accRect.right = min(rect.right, accRect.right);
2851      accRect.bottom = min(rect.bottom, accRect.bottom);
2852      accRect.left = max(rect.left, accRect.left);
2853      return accRect;
2854    }, getClientRectFromMixedType(element, firstClippingParent, strategy));
2855    clippingRect.width = clippingRect.right - clippingRect.left;
2856    clippingRect.height = clippingRect.bottom - clippingRect.top;
2857    clippingRect.x = clippingRect.left;
2858    clippingRect.y = clippingRect.top;
2859    return clippingRect;
2860  }
2861
2862  function computeOffsets(_ref) {
2863    var reference = _ref.reference,
2864        element = _ref.element,
2865        placement = _ref.placement;
2866    var basePlacement = placement ? getBasePlacement(placement) : null;
2867    var variation = placement ? getVariation(placement) : null;
2868    var commonX = reference.x + reference.width / 2 - element.width / 2;
2869    var commonY = reference.y + reference.height / 2 - element.height / 2;
2870    var offsets;
2871
2872    switch (basePlacement) {
2873      case top:
2874        offsets = {
2875          x: commonX,
2876          y: reference.y - element.height
2877        };
2878        break;
2879
2880      case bottom:
2881        offsets = {
2882          x: commonX,
2883          y: reference.y + reference.height
2884        };
2885        break;
2886
2887      case right:
2888        offsets = {
2889          x: reference.x + reference.width,
2890          y: commonY
2891        };
2892        break;
2893
2894      case left:
2895        offsets = {
2896          x: reference.x - element.width,
2897          y: commonY
2898        };
2899        break;
2900
2901      default:
2902        offsets = {
2903          x: reference.x,
2904          y: reference.y
2905        };
2906    }
2907
2908    var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;
2909
2910    if (mainAxis != null) {
2911      var len = mainAxis === 'y' ? 'height' : 'width';
2912
2913      switch (variation) {
2914        case start:
2915          offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);
2916          break;
2917
2918        case end:
2919          offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);
2920          break;
2921      }
2922    }
2923
2924    return offsets;
2925  }
2926
2927  function detectOverflow(state, options) {
2928    if (options === void 0) {
2929      options = {};
2930    }
2931
2932    var _options = options,
2933        _options$placement = _options.placement,
2934        placement = _options$placement === void 0 ? state.placement : _options$placement,
2935        _options$strategy = _options.strategy,
2936        strategy = _options$strategy === void 0 ? state.strategy : _options$strategy,
2937        _options$boundary = _options.boundary,
2938        boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,
2939        _options$rootBoundary = _options.rootBoundary,
2940        rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,
2941        _options$elementConte = _options.elementContext,
2942        elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,
2943        _options$altBoundary = _options.altBoundary,
2944        altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,
2945        _options$padding = _options.padding,
2946        padding = _options$padding === void 0 ? 0 : _options$padding;
2947    var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));
2948    var altContext = elementContext === popper ? reference : popper;
2949    var popperRect = state.rects.popper;
2950    var element = state.elements[altBoundary ? altContext : elementContext];
2951    var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);
2952    var referenceClientRect = getBoundingClientRect(state.elements.reference);
2953    var popperOffsets = computeOffsets({
2954      reference: referenceClientRect,
2955      element: popperRect,
2956      strategy: 'absolute',
2957      placement: placement
2958    });
2959    var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));
2960    var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect
2961    // 0 or negative = within the clipping rect
2962
2963    var overflowOffsets = {
2964      top: clippingClientRect.top - elementClientRect.top + paddingObject.top,
2965      bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,
2966      left: clippingClientRect.left - elementClientRect.left + paddingObject.left,
2967      right: elementClientRect.right - clippingClientRect.right + paddingObject.right
2968    };
2969    var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element
2970
2971    if (elementContext === popper && offsetData) {
2972      var offset = offsetData[placement];
2973      Object.keys(overflowOffsets).forEach(function (key) {
2974        var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;
2975        var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';
2976        overflowOffsets[key] += offset[axis] * multiply;
2977      });
2978    }
2979
2980    return overflowOffsets;
2981  }
2982
2983  function computeAutoPlacement(state, options) {
2984    if (options === void 0) {
2985      options = {};
2986    }
2987
2988    var _options = options,
2989        placement = _options.placement,
2990        boundary = _options.boundary,
2991        rootBoundary = _options.rootBoundary,
2992        padding = _options.padding,
2993        flipVariations = _options.flipVariations,
2994        _options$allowedAutoP = _options.allowedAutoPlacements,
2995        allowedAutoPlacements = _options$allowedAutoP === void 0 ? placements : _options$allowedAutoP;
2996    var variation = getVariation(placement);
2997    var placements$1 = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {
2998      return getVariation(placement) === variation;
2999    }) : basePlacements;
3000    var allowedPlacements = placements$1.filter(function (placement) {
3001      return allowedAutoPlacements.indexOf(placement) >= 0;
3002    });
3003
3004    if (allowedPlacements.length === 0) {
3005      allowedPlacements = placements$1;
3006    } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...
3007
3008
3009    var overflows = allowedPlacements.reduce(function (acc, placement) {
3010      acc[placement] = detectOverflow(state, {
3011        placement: placement,
3012        boundary: boundary,
3013        rootBoundary: rootBoundary,
3014        padding: padding
3015      })[getBasePlacement(placement)];
3016      return acc;
3017    }, {});
3018    return Object.keys(overflows).sort(function (a, b) {
3019      return overflows[a] - overflows[b];
3020    });
3021  }
3022
3023  function getExpandedFallbackPlacements(placement) {
3024    if (getBasePlacement(placement) === auto) {
3025      return [];
3026    }
3027
3028    var oppositePlacement = getOppositePlacement(placement);
3029    return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];
3030  }
3031
3032  function flip(_ref) {
3033    var state = _ref.state,
3034        options = _ref.options,
3035        name = _ref.name;
3036
3037    if (state.modifiersData[name]._skip) {
3038      return;
3039    }
3040
3041    var _options$mainAxis = options.mainAxis,
3042        checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,
3043        _options$altAxis = options.altAxis,
3044        checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,
3045        specifiedFallbackPlacements = options.fallbackPlacements,
3046        padding = options.padding,
3047        boundary = options.boundary,
3048        rootBoundary = options.rootBoundary,
3049        altBoundary = options.altBoundary,
3050        _options$flipVariatio = options.flipVariations,
3051        flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,
3052        allowedAutoPlacements = options.allowedAutoPlacements;
3053    var preferredPlacement = state.options.placement;
3054    var basePlacement = getBasePlacement(preferredPlacement);
3055    var isBasePlacement = basePlacement === preferredPlacement;
3056    var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));
3057    var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {
3058      return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {
3059        placement: placement,
3060        boundary: boundary,
3061        rootBoundary: rootBoundary,
3062        padding: padding,
3063        flipVariations: flipVariations,
3064        allowedAutoPlacements: allowedAutoPlacements
3065      }) : placement);
3066    }, []);
3067    var referenceRect = state.rects.reference;
3068    var popperRect = state.rects.popper;
3069    var checksMap = new Map();
3070    var makeFallbackChecks = true;
3071    var firstFittingPlacement = placements[0];
3072
3073    for (var i = 0; i < placements.length; i++) {
3074      var placement = placements[i];
3075
3076      var _basePlacement = getBasePlacement(placement);
3077
3078      var isStartVariation = getVariation(placement) === start;
3079      var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;
3080      var len = isVertical ? 'width' : 'height';
3081      var overflow = detectOverflow(state, {
3082        placement: placement,
3083        boundary: boundary,
3084        rootBoundary: rootBoundary,
3085        altBoundary: altBoundary,
3086        padding: padding
3087      });
3088      var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;
3089
3090      if (referenceRect[len] > popperRect[len]) {
3091        mainVariationSide = getOppositePlacement(mainVariationSide);
3092      }
3093
3094      var altVariationSide = getOppositePlacement(mainVariationSide);
3095      var checks = [];
3096
3097      if (checkMainAxis) {
3098        checks.push(overflow[_basePlacement] <= 0);
3099      }
3100
3101      if (checkAltAxis) {
3102        checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);
3103      }
3104
3105      if (checks.every(function (check) {
3106        return check;
3107      })) {
3108        firstFittingPlacement = placement;
3109        makeFallbackChecks = false;
3110        break;
3111      }
3112
3113      checksMap.set(placement, checks);
3114    }
3115
3116    if (makeFallbackChecks) {
3117      // `2` may be desired in some cases – research later
3118      var numberOfChecks = flipVariations ? 3 : 1;
3119
3120      var _loop = function _loop(_i) {
3121        var fittingPlacement = placements.find(function (placement) {
3122          var checks = checksMap.get(placement);
3123
3124          if (checks) {
3125            return checks.slice(0, _i).every(function (check) {
3126              return check;
3127            });
3128          }
3129        });
3130
3131        if (fittingPlacement) {
3132          firstFittingPlacement = fittingPlacement;
3133          return "break";
3134        }
3135      };
3136
3137      for (var _i = numberOfChecks; _i > 0; _i--) {
3138        var _ret = _loop(_i);
3139
3140        if (_ret === "break") break;
3141      }
3142    }
3143
3144    if (state.placement !== firstFittingPlacement) {
3145      state.modifiersData[name]._skip = true;
3146      state.placement = firstFittingPlacement;
3147      state.reset = true;
3148    }
3149  } // eslint-disable-next-line import/no-unused-modules
3150
3151
3152  const flip$1 = {
3153    name: 'flip',
3154    enabled: true,
3155    phase: 'main',
3156    fn: flip,
3157    requiresIfExists: ['offset'],
3158    data: {
3159      _skip: false
3160    }
3161  };
3162
3163  function getSideOffsets(overflow, rect, preventedOffsets) {
3164    if (preventedOffsets === void 0) {
3165      preventedOffsets = {
3166        x: 0,
3167        y: 0
3168      };
3169    }
3170
3171    return {
3172      top: overflow.top - rect.height - preventedOffsets.y,
3173      right: overflow.right - rect.width + preventedOffsets.x,
3174      bottom: overflow.bottom - rect.height + preventedOffsets.y,
3175      left: overflow.left - rect.width - preventedOffsets.x
3176    };
3177  }
3178
3179  function isAnySideFullyClipped(overflow) {
3180    return [top, right, bottom, left].some(function (side) {
3181      return overflow[side] >= 0;
3182    });
3183  }
3184
3185  function hide(_ref) {
3186    var state = _ref.state,
3187        name = _ref.name;
3188    var referenceRect = state.rects.reference;
3189    var popperRect = state.rects.popper;
3190    var preventedOffsets = state.modifiersData.preventOverflow;
3191    var referenceOverflow = detectOverflow(state, {
3192      elementContext: 'reference'
3193    });
3194    var popperAltOverflow = detectOverflow(state, {
3195      altBoundary: true
3196    });
3197    var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);
3198    var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);
3199    var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);
3200    var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);
3201    state.modifiersData[name] = {
3202      referenceClippingOffsets: referenceClippingOffsets,
3203      popperEscapeOffsets: popperEscapeOffsets,
3204      isReferenceHidden: isReferenceHidden,
3205      hasPopperEscaped: hasPopperEscaped
3206    };
3207    state.attributes.popper = Object.assign({}, state.attributes.popper, {
3208      'data-popper-reference-hidden': isReferenceHidden,
3209      'data-popper-escaped': hasPopperEscaped
3210    });
3211  } // eslint-disable-next-line import/no-unused-modules
3212
3213
3214  const hide$1 = {
3215    name: 'hide',
3216    enabled: true,
3217    phase: 'main',
3218    requiresIfExists: ['preventOverflow'],
3219    fn: hide
3220  };
3221
3222  function distanceAndSkiddingToXY(placement, rects, offset) {
3223    var basePlacement = getBasePlacement(placement);
3224    var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;
3225
3226    var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {
3227      placement: placement
3228    })) : offset,
3229        skidding = _ref[0],
3230        distance = _ref[1];
3231
3232    skidding = skidding || 0;
3233    distance = (distance || 0) * invertDistance;
3234    return [left, right].indexOf(basePlacement) >= 0 ? {
3235      x: distance,
3236      y: skidding
3237    } : {
3238      x: skidding,
3239      y: distance
3240    };
3241  }
3242
3243  function offset(_ref2) {
3244    var state = _ref2.state,
3245        options = _ref2.options,
3246        name = _ref2.name;
3247    var _options$offset = options.offset,
3248        offset = _options$offset === void 0 ? [0, 0] : _options$offset;
3249    var data = placements.reduce(function (acc, placement) {
3250      acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);
3251      return acc;
3252    }, {});
3253    var _data$state$placement = data[state.placement],
3254        x = _data$state$placement.x,
3255        y = _data$state$placement.y;
3256
3257    if (state.modifiersData.popperOffsets != null) {
3258      state.modifiersData.popperOffsets.x += x;
3259      state.modifiersData.popperOffsets.y += y;
3260    }
3261
3262    state.modifiersData[name] = data;
3263  } // eslint-disable-next-line import/no-unused-modules
3264
3265
3266  const offset$1 = {
3267    name: 'offset',
3268    enabled: true,
3269    phase: 'main',
3270    requires: ['popperOffsets'],
3271    fn: offset
3272  };
3273
3274  function popperOffsets(_ref) {
3275    var state = _ref.state,
3276        name = _ref.name;
3277    // Offsets are the actual position the popper needs to have to be
3278    // properly positioned near its reference element
3279    // This is the most basic placement, and will be adjusted by
3280    // the modifiers in the next step
3281    state.modifiersData[name] = computeOffsets({
3282      reference: state.rects.reference,
3283      element: state.rects.popper,
3284      strategy: 'absolute',
3285      placement: state.placement
3286    });
3287  } // eslint-disable-next-line import/no-unused-modules
3288
3289
3290  const popperOffsets$1 = {
3291    name: 'popperOffsets',
3292    enabled: true,
3293    phase: 'read',
3294    fn: popperOffsets,
3295    data: {}
3296  };
3297
3298  function getAltAxis(axis) {
3299    return axis === 'x' ? 'y' : 'x';
3300  }
3301
3302  function preventOverflow(_ref) {
3303    var state = _ref.state,
3304        options = _ref.options,
3305        name = _ref.name;
3306    var _options$mainAxis = options.mainAxis,
3307        checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,
3308        _options$altAxis = options.altAxis,
3309        checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,
3310        boundary = options.boundary,
3311        rootBoundary = options.rootBoundary,
3312        altBoundary = options.altBoundary,
3313        padding = options.padding,
3314        _options$tether = options.tether,
3315        tether = _options$tether === void 0 ? true : _options$tether,
3316        _options$tetherOffset = options.tetherOffset,
3317        tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;
3318    var overflow = detectOverflow(state, {
3319      boundary: boundary,
3320      rootBoundary: rootBoundary,
3321      padding: padding,
3322      altBoundary: altBoundary
3323    });
3324    var basePlacement = getBasePlacement(state.placement);
3325    var variation = getVariation(state.placement);
3326    var isBasePlacement = !variation;
3327    var mainAxis = getMainAxisFromPlacement(basePlacement);
3328    var altAxis = getAltAxis(mainAxis);
3329    var popperOffsets = state.modifiersData.popperOffsets;
3330    var referenceRect = state.rects.reference;
3331    var popperRect = state.rects.popper;
3332    var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {
3333      placement: state.placement
3334    })) : tetherOffset;
3335    var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {
3336      mainAxis: tetherOffsetValue,
3337      altAxis: tetherOffsetValue
3338    } : Object.assign({
3339      mainAxis: 0,
3340      altAxis: 0
3341    }, tetherOffsetValue);
3342    var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;
3343    var data = {
3344      x: 0,
3345      y: 0
3346    };
3347
3348    if (!popperOffsets) {
3349      return;
3350    }
3351
3352    if (checkMainAxis) {
3353      var _offsetModifierState$;
3354
3355      var mainSide = mainAxis === 'y' ? top : left;
3356      var altSide = mainAxis === 'y' ? bottom : right;
3357      var len = mainAxis === 'y' ? 'height' : 'width';
3358      var offset = popperOffsets[mainAxis];
3359      var min$1 = offset + overflow[mainSide];
3360      var max$1 = offset - overflow[altSide];
3361      var additive = tether ? -popperRect[len] / 2 : 0;
3362      var minLen = variation === start ? referenceRect[len] : popperRect[len];
3363      var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go
3364      // outside the reference bounds
3365
3366      var arrowElement = state.elements.arrow;
3367      var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {
3368        width: 0,
3369        height: 0
3370      };
3371      var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();
3372      var arrowPaddingMin = arrowPaddingObject[mainSide];
3373      var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want
3374      // to include its full size in the calculation. If the reference is small
3375      // and near the edge of a boundary, the popper can overflow even if the
3376      // reference is not overflowing as well (e.g. virtual elements with no
3377      // width or height)
3378
3379      var arrowLen = within(0, referenceRect[len], arrowRect[len]);
3380      var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;
3381      var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;
3382      var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);
3383      var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;
3384      var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;
3385      var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;
3386      var tetherMax = offset + maxOffset - offsetModifierValue;
3387      var preventedOffset = within(tether ? min(min$1, tetherMin) : min$1, offset, tether ? max(max$1, tetherMax) : max$1);
3388      popperOffsets[mainAxis] = preventedOffset;
3389      data[mainAxis] = preventedOffset - offset;
3390    }
3391
3392    if (checkAltAxis) {
3393      var _offsetModifierState$2;
3394
3395      var _mainSide = mainAxis === 'x' ? top : left;
3396
3397      var _altSide = mainAxis === 'x' ? bottom : right;
3398
3399      var _offset = popperOffsets[altAxis];
3400
3401      var _len = altAxis === 'y' ? 'height' : 'width';
3402
3403      var _min = _offset + overflow[_mainSide];
3404
3405      var _max = _offset - overflow[_altSide];
3406
3407      var isOriginSide = [top, left].indexOf(basePlacement) !== -1;
3408
3409      var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;
3410
3411      var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;
3412
3413      var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;
3414
3415      var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);
3416
3417      popperOffsets[altAxis] = _preventedOffset;
3418      data[altAxis] = _preventedOffset - _offset;
3419    }
3420
3421    state.modifiersData[name] = data;
3422  } // eslint-disable-next-line import/no-unused-modules
3423
3424
3425  const preventOverflow$1 = {
3426    name: 'preventOverflow',
3427    enabled: true,
3428    phase: 'main',
3429    fn: preventOverflow,
3430    requiresIfExists: ['offset']
3431  };
3432
3433  function getHTMLElementScroll(element) {
3434    return {
3435      scrollLeft: element.scrollLeft,
3436      scrollTop: element.scrollTop
3437    };
3438  }
3439
3440  function getNodeScroll(node) {
3441    if (node === getWindow(node) || !isHTMLElement(node)) {
3442      return getWindowScroll(node);
3443    } else {
3444      return getHTMLElementScroll(node);
3445    }
3446  }
3447
3448  function isElementScaled(element) {
3449    var rect = element.getBoundingClientRect();
3450    var scaleX = round(rect.width) / element.offsetWidth || 1;
3451    var scaleY = round(rect.height) / element.offsetHeight || 1;
3452    return scaleX !== 1 || scaleY !== 1;
3453  } // Returns the composite rect of an element relative to its offsetParent.
3454  // Composite means it takes into account transforms as well as layout.
3455
3456
3457  function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {
3458    if (isFixed === void 0) {
3459      isFixed = false;
3460    }
3461
3462    var isOffsetParentAnElement = isHTMLElement(offsetParent);
3463    var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);
3464    var documentElement = getDocumentElement(offsetParent);
3465    var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);
3466    var scroll = {
3467      scrollLeft: 0,
3468      scrollTop: 0
3469    };
3470    var offsets = {
3471      x: 0,
3472      y: 0
3473    };
3474
3475    if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {
3476      if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078
3477      isScrollParent(documentElement)) {
3478        scroll = getNodeScroll(offsetParent);
3479      }
3480
3481      if (isHTMLElement(offsetParent)) {
3482        offsets = getBoundingClientRect(offsetParent, true);
3483        offsets.x += offsetParent.clientLeft;
3484        offsets.y += offsetParent.clientTop;
3485      } else if (documentElement) {
3486        offsets.x = getWindowScrollBarX(documentElement);
3487      }
3488    }
3489
3490    return {
3491      x: rect.left + scroll.scrollLeft - offsets.x,
3492      y: rect.top + scroll.scrollTop - offsets.y,
3493      width: rect.width,
3494      height: rect.height
3495    };
3496  }
3497
3498  function order(modifiers) {
3499    var map = new Map();
3500    var visited = new Set();
3501    var result = [];
3502    modifiers.forEach(function (modifier) {
3503      map.set(modifier.name, modifier);
3504    }); // On visiting object, check for its dependencies and visit them recursively
3505
3506    function sort(modifier) {
3507      visited.add(modifier.name);
3508      var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);
3509      requires.forEach(function (dep) {
3510        if (!visited.has(dep)) {
3511          var depModifier = map.get(dep);
3512
3513          if (depModifier) {
3514            sort(depModifier);
3515          }
3516        }
3517      });
3518      result.push(modifier);
3519    }
3520
3521    modifiers.forEach(function (modifier) {
3522      if (!visited.has(modifier.name)) {
3523        // check for visited object
3524        sort(modifier);
3525      }
3526    });
3527    return result;
3528  }
3529
3530  function orderModifiers(modifiers) {
3531    // order based on dependencies
3532    var orderedModifiers = order(modifiers); // order based on phase
3533
3534    return modifierPhases.reduce(function (acc, phase) {
3535      return acc.concat(orderedModifiers.filter(function (modifier) {
3536        return modifier.phase === phase;
3537      }));
3538    }, []);
3539  }
3540
3541  function debounce(fn) {
3542    var pending;
3543    return function () {
3544      if (!pending) {
3545        pending = new Promise(function (resolve) {
3546          Promise.resolve().then(function () {
3547            pending = undefined;
3548            resolve(fn());
3549          });
3550        });
3551      }
3552
3553      return pending;
3554    };
3555  }
3556
3557  function mergeByName(modifiers) {
3558    var merged = modifiers.reduce(function (merged, current) {
3559      var existing = merged[current.name];
3560      merged[current.name] = existing ? Object.assign({}, existing, current, {
3561        options: Object.assign({}, existing.options, current.options),
3562        data: Object.assign({}, existing.data, current.data)
3563      }) : current;
3564      return merged;
3565    }, {}); // IE11 does not support Object.values
3566
3567    return Object.keys(merged).map(function (key) {
3568      return merged[key];
3569    });
3570  }
3571
3572  var DEFAULT_OPTIONS = {
3573    placement: 'bottom',
3574    modifiers: [],
3575    strategy: 'absolute'
3576  };
3577
3578  function areValidElements() {
3579    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
3580      args[_key] = arguments[_key];
3581    }
3582
3583    return !args.some(function (element) {
3584      return !(element && typeof element.getBoundingClientRect === 'function');
3585    });
3586  }
3587
3588  function popperGenerator(generatorOptions) {
3589    if (generatorOptions === void 0) {
3590      generatorOptions = {};
3591    }
3592
3593    var _generatorOptions = generatorOptions,
3594        _generatorOptions$def = _generatorOptions.defaultModifiers,
3595        defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,
3596        _generatorOptions$def2 = _generatorOptions.defaultOptions,
3597        defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;
3598    return function createPopper(reference, popper, options) {
3599      if (options === void 0) {
3600        options = defaultOptions;
3601      }
3602
3603      var state = {
3604        placement: 'bottom',
3605        orderedModifiers: [],
3606        options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),
3607        modifiersData: {},
3608        elements: {
3609          reference: reference,
3610          popper: popper
3611        },
3612        attributes: {},
3613        styles: {}
3614      };
3615      var effectCleanupFns = [];
3616      var isDestroyed = false;
3617      var instance = {
3618        state: state,
3619        setOptions: function setOptions(setOptionsAction) {
3620          var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;
3621          cleanupModifierEffects();
3622          state.options = Object.assign({}, defaultOptions, state.options, options);
3623          state.scrollParents = {
3624            reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],
3625            popper: listScrollParents(popper)
3626          }; // Orders the modifiers based on their dependencies and `phase`
3627          // properties
3628
3629          var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers
3630
3631          state.orderedModifiers = orderedModifiers.filter(function (m) {
3632            return m.enabled;
3633          });
vendor: 14,004 bytes, lines 3633-4058
3633 // Validate the provided modifiers so that the consumer will get warned
3634
3635          runModifierEffects();
3636          return instance.update();
3637        },
3638        // Sync update – it will always be executed, even if not necessary. This
3639        // is useful for low frequency updates where sync behavior simplifies the
3640        // logic.
3641        // For high frequency updates (e.g. `resize` and `scroll` events), always
3642        // prefer the async Popper#update method
3643        forceUpdate: function forceUpdate() {
3644          if (isDestroyed) {
3645            return;
3646          }
3647
3648          var _state$elements = state.elements,
3649              reference = _state$elements.reference,
3650              popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements
3651          // anymore
3652
3653          if (!areValidElements(reference, popper)) {
3654
3655            return;
3656          } // Store the reference and popper rects to be read by modifiers
3657
3658
3659          state.rects = {
3660            reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),
3661            popper: getLayoutRect(popper)
3662          }; // Modifiers have the ability to reset the current update cycle. The
3663          // most common use case for this is the `flip` modifier changing the
3664          // placement, which then needs to re-run all the modifiers, because the
3665          // logic was previously ran for the previous placement and is therefore
3666          // stale/incorrect
3667
3668          state.reset = false;
3669          state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier
3670          // is filled with the initial data specified by the modifier. This means
3671          // it doesn't persist and is fresh on each update.
3672          // To ensure persistent data, use `${name}#persistent`
3673
3674          state.orderedModifiers.forEach(function (modifier) {
3675            return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);
3676          });
3677
3678          for (var index = 0; index < state.orderedModifiers.length; index++) {
3679
3680            if (state.reset === true) {
3681              state.reset = false;
3682              index = -1;
3683              continue;
3684            }
3685
3686            var _state$orderedModifie = state.orderedModifiers[index],
3687                fn = _state$orderedModifie.fn,
3688                _state$orderedModifie2 = _state$orderedModifie.options,
3689                _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,
3690                name = _state$orderedModifie.name;
3691
3692            if (typeof fn === 'function') {
3693              state = fn({
3694                state: state,
3695                options: _options,
3696                name: name,
3697                instance: instance
3698              }) || state;
3699            }
3700          }
3701        },
3702        // Async and optimistically optimized update – it will not be executed if
3703        // not necessary (debounced to run at most once-per-tick)
3704        update: debounce(function () {
3705          return new Promise(function (resolve) {
3706            instance.forceUpdate();
3707            resolve(state);
3708          });
3709        }),
3710        destroy: function destroy() {
3711          cleanupModifierEffects();
3712          isDestroyed = true;
3713        }
3714      };
3715
3716      if (!areValidElements(reference, popper)) {
3717
3718        return instance;
3719      }
3720
3721      instance.setOptions(options).then(function (state) {
3722        if (!isDestroyed && options.onFirstUpdate) {
3723          options.onFirstUpdate(state);
3724        }
3725      }); // Modifiers have the ability to execute arbitrary code before the first
3726      // update cycle runs. They will be executed in the same order as the update
3727      // cycle. This is useful when a modifier adds some persistent data that
3728      // other modifiers need to use, but the modifier is run after the dependent
3729      // one.
3730
3731      function runModifierEffects() {
3732        state.orderedModifiers.forEach(function (_ref3) {
3733          var name = _ref3.name,
3734              _ref3$options = _ref3.options,
3735              options = _ref3$options === void 0 ? {} : _ref3$options,
3736              effect = _ref3.effect;
3737
3738          if (typeof effect === 'function') {
3739            var cleanupFn = effect({
3740              state: state,
3741              name: name,
3742              instance: instance,
3743              options: options
3744            });
3745
3746            var noopFn = function noopFn() {};
3747
3748            effectCleanupFns.push(cleanupFn || noopFn);
3749          }
3750        });
3751      }
3752
3753      function cleanupModifierEffects() {
3754        effectCleanupFns.forEach(function (fn) {
3755          return fn();
3756        });
3757        effectCleanupFns = [];
3758      }
3759
3760      return instance;
3761    };
3762  }
3763  var createPopper$2 = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules
3764
3765  var defaultModifiers$1 = [eventListeners, popperOffsets$1, computeStyles$1, applyStyles$1];
3766  var createPopper$1 = /*#__PURE__*/popperGenerator({
3767    defaultModifiers: defaultModifiers$1
3768  }); // eslint-disable-next-line import/no-unused-modules
3769
3770  var defaultModifiers = [eventListeners, popperOffsets$1, computeStyles$1, applyStyles$1, offset$1, flip$1, preventOverflow$1, arrow$1, hide$1];
3771  var createPopper = /*#__PURE__*/popperGenerator({
3772    defaultModifiers: defaultModifiers
3773  }); // eslint-disable-next-line import/no-unused-modules
3774
3775  const Popper = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
3776    __proto__: null,
3777    popperGenerator,
3778    detectOverflow,
3779    createPopperBase: createPopper$2,
3780    createPopper,
3781    createPopperLite: createPopper$1,
3782    top,
3783    bottom,
3784    right,
3785    left,
3786    auto,
3787    basePlacements,
3788    start,
3789    end,
3790    clippingParents,
3791    viewport,
3792    popper,
3793    reference,
3794    variationPlacements,
3795    placements,
3796    beforeRead,
3797    read,
3798    afterRead,
3799    beforeMain,
3800    main,
3801    afterMain,
3802    beforeWrite,
3803    write,
3804    afterWrite,
3805    modifierPhases,
3806    applyStyles: applyStyles$1,
3807    arrow: arrow$1,
3808    computeStyles: computeStyles$1,
3809    eventListeners,
3810    flip: flip$1,
3811    hide: hide$1,
3812    offset: offset$1,
3813    popperOffsets: popperOffsets$1,
3814    preventOverflow: preventOverflow$1
3815  }, Symbol.toStringTag, { value: 'Module' }));
3816
3817  /**
3818   * --------------------------------------------------------------------------
3819   * Bootstrap (v5.2.2): dropdown.js
3820   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
3821   * --------------------------------------------------------------------------
3822   */
3823  /**
3824   * Constants
3825   */
3826
3827  const NAME$a = 'dropdown';
3828  const DATA_KEY$6 = 'bs.dropdown';
3829  const EVENT_KEY$6 = `.${DATA_KEY$6}`;
3830  const DATA_API_KEY$3 = '.data-api';
3831  const ESCAPE_KEY$2 = 'Escape';
3832  const TAB_KEY$1 = 'Tab';
3833  const ARROW_UP_KEY$1 = 'ArrowUp';
3834  const ARROW_DOWN_KEY$1 = 'ArrowDown';
3835  const RIGHT_MOUSE_BUTTON = 2; // MouseEvent.button value for the secondary button, usually the right button
3836
3837  const EVENT_HIDE$5 = `hide${EVENT_KEY$6}`;
3838  const EVENT_HIDDEN$5 = `hidden${EVENT_KEY$6}`;
3839  const EVENT_SHOW$5 = `show${EVENT_KEY$6}`;
3840  const EVENT_SHOWN$5 = `shown${EVENT_KEY$6}`;
3841  const EVENT_CLICK_DATA_API$3 = `click${EVENT_KEY$6}${DATA_API_KEY$3}`;
3842  const EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY$6}${DATA_API_KEY$3}`;
3843  const EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY$6}${DATA_API_KEY$3}`;
3844  const CLASS_NAME_SHOW$6 = 'show';
3845  const CLASS_NAME_DROPUP = 'dropup';
3846  const CLASS_NAME_DROPEND = 'dropend';
3847  const CLASS_NAME_DROPSTART = 'dropstart';
3848  const CLASS_NAME_DROPUP_CENTER = 'dropup-center';
3849  const CLASS_NAME_DROPDOWN_CENTER = 'dropdown-center';
3850  const SELECTOR_DATA_TOGGLE$3 = '[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)';
3851  const SELECTOR_DATA_TOGGLE_SHOWN = `${SELECTOR_DATA_TOGGLE$3}.${CLASS_NAME_SHOW$6}`;
3852  const SELECTOR_MENU = '.dropdown-menu';
3853  const SELECTOR_NAVBAR = '.navbar';
3854  const SELECTOR_NAVBAR_NAV = '.navbar-nav';
3855  const SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)';
3856  const PLACEMENT_TOP = isRTL() ? 'top-end' : 'top-start';
3857  const PLACEMENT_TOPEND = isRTL() ? 'top-start' : 'top-end';
3858  const PLACEMENT_BOTTOM = isRTL() ? 'bottom-end' : 'bottom-start';
3859  const PLACEMENT_BOTTOMEND = isRTL() ? 'bottom-start' : 'bottom-end';
3860  const PLACEMENT_RIGHT = isRTL() ? 'left-start' : 'right-start';
3861  const PLACEMENT_LEFT = isRTL() ? 'right-start' : 'left-start';
3862  const PLACEMENT_TOPCENTER = 'top';
3863  const PLACEMENT_BOTTOMCENTER = 'bottom';
3864  const Default$9 = {
3865    autoClose: true,
3866    boundary: 'clippingParents',
3867    display: 'dynamic',
3868    offset: [0, 2],
3869    popperConfig: null,
3870    reference: 'toggle'
3871  };
3872  const DefaultType$9 = {
3873    autoClose: '(boolean|string)',
3874    boundary: '(string|element)',
3875    display: 'string',
3876    offset: '(array|string|function)',
3877    popperConfig: '(null|object|function)',
3878    reference: '(string|element|object)'
3879  };
3880  /**
3881   * Class definition
3882   */
3883
3884  class Dropdown extends BaseComponent {
3885    constructor(element, config) {
3886      super(element, config);
3887      this._popper = null;
3888      this._parent = this._element.parentNode; // dropdown wrapper
3889      // todo: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.2/forms/input-group/
3890
3891      this._menu = SelectorEngine.next(this._element, SELECTOR_MENU)[0] || SelectorEngine.prev(this._element, SELECTOR_MENU)[0] || SelectorEngine.findOne(SELECTOR_MENU, this._parent);
3892      this._inNavbar = this._detectNavbar();
3893    } // Getters
3894
3895
3896    static get Default() {
3897      return Default$9;
3898    }
3899
3900    static get DefaultType() {
3901      return DefaultType$9;
3902    }
3903
3904    static get NAME() {
3905      return NAME$a;
3906    } // Public
3907
3908
3909    toggle() {
3910      return this._isShown() ? this.hide() : this.show();
3911    }
3912
3913    show() {
3914      if (isDisabled(this._element) || this._isShown()) {
3915        return;
3916      }
3917
3918      const relatedTarget = {
3919        relatedTarget: this._element
3920      };
3921      const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$5, relatedTarget);
3922
3923      if (showEvent.defaultPrevented) {
3924        return;
3925      }
3926
3927      this._createPopper(); // If this is a touch-enabled device we add extra
3928      // empty mouseover listeners to the body's immediate children;
3929      // only needed because of broken event delegation on iOS
3930      // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
3931
3932
3933      if ('ontouchstart' in document.documentElement && !this._parent.closest(SELECTOR_NAVBAR_NAV)) {
3934        for (const element of [].concat(...document.body.children)) {
3935          EventHandler.on(element, 'mouseover', noop);
3936        }
3937      }
3938
3939      this._element.focus();
3940
3941      this._element.setAttribute('aria-expanded', true);
3942
3943      this._menu.classList.add(CLASS_NAME_SHOW$6);
3944
3945      this._element.classList.add(CLASS_NAME_SHOW$6);
3946
3947      EventHandler.trigger(this._element, EVENT_SHOWN$5, relatedTarget);
3948    }
3949
3950    hide() {
3951      if (isDisabled(this._element) || !this._isShown()) {
3952        return;
3953      }
3954
3955      const relatedTarget = {
3956        relatedTarget: this._element
3957      };
3958
3959      this._completeHide(relatedTarget);
3960    }
3961
3962    dispose() {
3963      if (this._popper) {
3964        this._popper.destroy();
3965      }
3966
3967      super.dispose();
3968    }
3969
3970    update() {
3971      this._inNavbar = this._detectNavbar();
3972
3973      if (this._popper) {
3974        this._popper.update();
3975      }
3976    } // Private
3977
3978
3979    _completeHide(relatedTarget) {
3980      const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$5, relatedTarget);
3981
3982      if (hideEvent.defaultPrevented) {
3983        return;
3984      } // If this is a touch-enabled device we remove the extra
3985      // empty mouseover listeners we added for iOS support
3986
3987
3988      if ('ontouchstart' in document.documentElement) {
3989        for (const element of [].concat(...document.body.children)) {
3990          EventHandler.off(element, 'mouseover', noop);
3991        }
3992      }
3993
3994      if (this._popper) {
3995        this._popper.destroy();
3996      }
3997
3998      this._menu.classList.remove(CLASS_NAME_SHOW$6);
3999
4000      this._element.classList.remove(CLASS_NAME_SHOW$6);
4001
4002      this._element.setAttribute('aria-expanded', 'false');
4003
4004      Manipulator.removeDataAttribute(this._menu, 'popper');
4005      EventHandler.trigger(this._element, EVENT_HIDDEN$5, relatedTarget);
4006    }
4007
4008    _getConfig(config) {
4009      config = super._getConfig(config);
4010
4011      if (typeof config.reference === 'object' && !isElement$1(config.reference) && typeof config.reference.getBoundingClientRect !== 'function') {
4012        // Popper virtual elements require a getBoundingClientRect method
4013        throw new TypeError(`${NAME$a.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);
4014      }
4015
4016      return config;
4017    }
4018
4019    _createPopper() {
4020      if (typeof Popper === 'undefined') {
4021        throw new TypeError('Bootstrap\'s dropdowns require Popper (https://popper.js.org)');
4022      }
4023
4024      let referenceElement = this._element;
4025
4026      if (this._config.reference === 'parent') {
4027        referenceElement = this._parent;
4028      } else if (isElement$1(this._config.reference)) {
4029        referenceElement = getElement(this._config.reference);
4030      } else if (typeof this._config.reference === 'object') {
4031        referenceElement = this._config.reference;
4032      }
4033
4034      const popperConfig = this._getPopperConfig();
4035
4036      this._popper = createPopper(referenceElement, this._menu, popperConfig);
4037    }
4038
4039    _isShown() {
4040      return this._menu.classList.contains(CLASS_NAME_SHOW$6);
4041    }
4042
4043    _getPlacement() {
4044      const parentDropdown = this._parent;
4045
4046      if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) {
4047        return PLACEMENT_RIGHT;
4048      }
4049
4050      if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) {
4051        return PLACEMENT_LEFT;
4052      }
4053
4054      if (parentDropdown.classList.contains(CLASS_NAME_DROPUP_CENTER)) {
4055        return PLACEMENT_TOPCENTER;
4056      }
4057
4058      if (parentDropdown.classList.contains(CLASS_NAME_DROPDOWN_CENT
vendor: 4,138 bytes, lines 4058-4194
4058ER)) {
4059        return PLACEMENT_BOTTOMCENTER;
4060      } // We need to trim the value because custom properties can also include spaces
4061
4062
4063      const isEnd = getComputedStyle(this._menu).getPropertyValue('--bs-position').trim() === 'end';
4064
4065      if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {
4066        return isEnd ? PLACEMENT_TOPEND : PLACEMENT_TOP;
4067      }
4068
4069      return isEnd ? PLACEMENT_BOTTOMEND : PLACEMENT_BOTTOM;
4070    }
4071
4072    _detectNavbar() {
4073      return this._element.closest(SELECTOR_NAVBAR) !== null;
4074    }
4075
4076    _getOffset() {
4077      const {
4078        offset
4079      } = this._config;
4080
4081      if (typeof offset === 'string') {
4082        return offset.split(',').map(value => Number.parseInt(value, 10));
4083      }
4084
4085      if (typeof offset === 'function') {
4086        return popperData => offset(popperData, this._element);
4087      }
4088
4089      return offset;
4090    }
4091
4092    _getPopperConfig() {
4093      const defaultBsPopperConfig = {
4094        placement: this._getPlacement(),
4095        modifiers: [{
4096          name: 'preventOverflow',
4097          options: {
4098            boundary: this._config.boundary
4099          }
4100        }, {
4101          name: 'offset',
4102          options: {
4103            offset: this._getOffset()
4104          }
4105        }]
4106      }; // Disable Popper if we have a static display or Dropdown is in Navbar
4107
4108      if (this._inNavbar || this._config.display === 'static') {
4109        Manipulator.setDataAttribute(this._menu, 'popper', 'static'); // todo:v6 remove
4110
4111        defaultBsPopperConfig.modifiers = [{
4112          name: 'applyStyles',
4113          enabled: false
4114        }];
4115      }
4116
4117      return { ...defaultBsPopperConfig,
4118        ...(typeof this._config.popperConfig === 'function' ? this._config.popperConfig(defaultBsPopperConfig) : this._config.popperConfig)
4119      };
4120    }
4121
4122    _selectMenuItem({
4123      key,
4124      target
4125    }) {
4126      const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, this._menu).filter(element => isVisible(element));
4127
4128      if (!items.length) {
4129        return;
4130      } // if target isn't included in items (e.g. when expanding the dropdown)
4131      // allow cycling to get the last item in case key equals ARROW_UP_KEY
4132
4133
4134      getNextActiveElement(items, target, key === ARROW_DOWN_KEY$1, !items.includes(target)).focus();
4135    } // Static
4136
4137
4138    static jQueryInterface(config) {
4139      return this.each(function () {
4140        const data = Dropdown.getOrCreateInstance(this, config);
4141
4142        if (typeof config !== 'string') {
4143          return;
4144        }
4145
4146        if (typeof data[config] === 'undefined') {
4147          throw new TypeError(`No method named "${config}"`);
4148        }
4149
4150        data[config]();
4151      });
4152    }
4153
4154    static clearMenus(event) {
4155      if (event.button === RIGHT_MOUSE_BUTTON || event.type === 'keyup' && event.key !== TAB_KEY$1) {
4156        return;
4157      }
4158
4159      const openToggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE_SHOWN);
4160
4161      for (const toggle of openToggles) {
4162        const context = Dropdown.getInstance(toggle);
4163
4164        if (!context || context._config.autoClose === false) {
4165          continue;
4166        }
4167
4168        const composedPath = event.composedPath();
4169        const isMenuTarget = composedPath.includes(context._menu);
4170
4171        if (composedPath.includes(context._element) || context._config.autoClose === 'inside' && !isMenuTarget || context._config.autoClose === 'outside' && isMenuTarget) {
4172          continue;
4173        } // Tab navigation through the dropdown menu or events from contained inputs shouldn't close the menu
4174
4175
4176        if (context._menu.contains(event.target) && (event.type === 'keyup' && event.key === TAB_KEY$1 || /input|select|option|textarea|form/i.test(event.target.tagName))) {
4177          continue;
4178        }
4179
4180        const relatedTarget = {
4181          relatedTarget: context._element
4182        };
4183
4184        if (event.type === 'click') {
4185          relatedTarget.clickEvent = event;
4186        }
4187
4188        context._completeHide(relatedTarget);
4189      }
4190    }
4191
4192    static dataApiKeydownHandler(event) {
4193      // If not an UP | DOWN | ESCAPE key => not a dropdown command
4194      // If input/textarea && if key is other than ESCAPE => not a dropdown command
vendor: 10,656 bytes, lines 4195-4588
4195      const isInput = /input|textarea/i.test(event.target.tagName);
4196      const isEscapeEvent = event.key === ESCAPE_KEY$2;
4197      const isUpOrDownEvent = [ARROW_UP_KEY$1, ARROW_DOWN_KEY$1].includes(event.key);
4198
4199      if (!isUpOrDownEvent && !isEscapeEvent) {
4200        return;
4201      }
4202
4203      if (isInput && !isEscapeEvent) {
4204        return;
4205      }
4206
4207      event.preventDefault(); // todo: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.2/forms/input-group/
4208
4209      const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE$3) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.next(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.findOne(SELECTOR_DATA_TOGGLE$3, event.delegateTarget.parentNode);
4210      const instance = Dropdown.getOrCreateInstance(getToggleButton);
4211
4212      if (isUpOrDownEvent) {
4213        event.stopPropagation();
4214        instance.show();
4215
4216        instance._selectMenuItem(event);
4217
4218        return;
4219      }
4220
4221      if (instance._isShown()) {
4222        // else is escape and we check if it is shown
4223        event.stopPropagation();
4224        instance.hide();
4225        getToggleButton.focus();
4226      }
4227    }
4228
4229  }
4230  /**
4231   * Data API implementation
4232   */
4233
4234
4235  EventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE$3, Dropdown.dataApiKeydownHandler);
4236  EventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown.dataApiKeydownHandler);
4237  EventHandler.on(document, EVENT_CLICK_DATA_API$3, Dropdown.clearMenus);
4238  EventHandler.on(document, EVENT_KEYUP_DATA_API, Dropdown.clearMenus);
4239  EventHandler.on(document, EVENT_CLICK_DATA_API$3, SELECTOR_DATA_TOGGLE$3, function (event) {
4240    event.preventDefault();
4241    Dropdown.getOrCreateInstance(this).toggle();
4242  });
4243  /**
4244   * jQuery
4245   */
4246
4247  defineJQueryPlugin(Dropdown);
4248
4249  /**
4250   * --------------------------------------------------------------------------
4251   * Bootstrap (v5.2.2): util/scrollBar.js
4252   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
4253   * --------------------------------------------------------------------------
4254   */
4255  /**
4256   * Constants
4257   */
4258
4259  const SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';
4260  const SELECTOR_STICKY_CONTENT = '.sticky-top';
4261  const PROPERTY_PADDING = 'padding-right';
4262  const PROPERTY_MARGIN = 'margin-right';
4263  /**
4264   * Class definition
4265   */
4266
4267  class ScrollBarHelper {
4268    constructor() {
4269      this._element = document.body;
4270    } // Public
4271
4272
4273    getWidth() {
4274      // https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes
4275      const documentWidth = document.documentElement.clientWidth;
4276      return Math.abs(window.innerWidth - documentWidth);
4277    }
4278
4279    hide() {
4280      const width = this.getWidth();
4281
4282      this._disableOverFlow(); // give padding to element to balance the hidden scrollbar width
4283
4284
4285      this._setElementAttributes(this._element, PROPERTY_PADDING, calculatedValue => calculatedValue + width); // trick: We adjust positive paddingRight and negative marginRight to sticky-top elements to keep showing fullwidth
4286
4287
4288      this._setElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING, calculatedValue => calculatedValue + width);
4289
4290      this._setElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN, calculatedValue => calculatedValue - width);
4291    }
4292
4293    reset() {
4294      this._resetElementAttributes(this._element, 'overflow');
4295
4296      this._resetElementAttributes(this._element, PROPERTY_PADDING);
4297
4298      this._resetElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING);
4299
4300      this._resetElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN);
4301    }
4302
4303    isOverflowing() {
4304      return this.getWidth() > 0;
4305    } // Private
4306
4307
4308    _disableOverFlow() {
4309      this._saveInitialAttribute(this._element, 'overflow');
4310
4311      this._element.style.overflow = 'hidden';
4312    }
4313
4314    _setElementAttributes(selector, styleProperty, callback) {
4315      const scrollbarWidth = this.getWidth();
4316
4317      const manipulationCallBack = element => {
4318        if (element !== this._element && window.innerWidth > element.clientWidth + scrollbarWidth) {
4319          return;
4320        }
4321
4322        this._saveInitialAttribute(element, styleProperty);
4323
4324        const calculatedValue = window.getComputedStyle(element).getPropertyValue(styleProperty);
4325        element.style.setProperty(styleProperty, `${callback(Number.parseFloat(calculatedValue))}px`);
4326      };
4327
4328      this._applyManipulationCallback(selector, manipulationCallBack);
4329    }
4330
4331    _saveInitialAttribute(element, styleProperty) {
4332      const actualValue = element.style.getPropertyValue(styleProperty);
4333
4334      if (actualValue) {
4335        Manipulator.setDataAttribute(element, styleProperty, actualValue);
4336      }
4337    }
4338
4339    _resetElementAttributes(selector, styleProperty) {
4340      const manipulationCallBack = element => {
4341        const value = Manipulator.getDataAttribute(element, styleProperty); // We only want to remove the property if the value is `null`; the value can also be zero
4342
4343        if (value === null) {
4344          element.style.removeProperty(styleProperty);
4345          return;
4346        }
4347
4348        Manipulator.removeDataAttribute(element, styleProperty);
4349        element.style.setProperty(styleProperty, value);
4350      };
4351
4352      this._applyManipulationCallback(selector, manipulationCallBack);
4353    }
4354
4355    _applyManipulationCallback(selector, callBack) {
4356      if (isElement$1(selector)) {
4357        callBack(selector);
4358        return;
4359      }
4360
4361      for (const sel of SelectorEngine.find(selector, this._element)) {
4362        callBack(sel);
4363      }
4364    }
4365
4366  }
4367
4368  /**
4369   * --------------------------------------------------------------------------
4370   * Bootstrap (v5.2.2): util/backdrop.js
4371   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
4372   * --------------------------------------------------------------------------
4373   */
4374  /**
4375   * Constants
4376   */
4377
4378  const NAME$9 = 'backdrop';
4379  const CLASS_NAME_FADE$4 = 'fade';
4380  const CLASS_NAME_SHOW$5 = 'show';
4381  const EVENT_MOUSEDOWN = `mousedown.bs.${NAME$9}`;
4382  const Default$8 = {
4383    className: 'modal-backdrop',
4384    clickCallback: null,
4385    isAnimated: false,
4386    isVisible: true,
4387    // if false, we use the backdrop helper without adding any element to the dom
4388    rootElement: 'body' // give the choice to place backdrop under different elements
4389
4390  };
4391  const DefaultType$8 = {
4392    className: 'string',
4393    clickCallback: '(function|null)',
4394    isAnimated: 'boolean',
4395    isVisible: 'boolean',
4396    rootElement: '(element|string)'
4397  };
4398  /**
4399   * Class definition
4400   */
4401
4402  class Backdrop extends Config {
4403    constructor(config) {
4404      super();
4405      this._config = this._getConfig(config);
4406      this._isAppended = false;
4407      this._element = null;
4408    } // Getters
4409
4410
4411    static get Default() {
4412      return Default$8;
4413    }
4414
4415    static get DefaultType() {
4416      return DefaultType$8;
4417    }
4418
4419    static get NAME() {
4420      return NAME$9;
4421    } // Public
4422
4423
4424    show(callback) {
4425      if (!this._config.isVisible) {
4426        execute(callback);
4427        return;
4428      }
4429
4430      this._append();
4431
4432      const element = this._getElement();
4433
4434      if (this._config.isAnimated) {
4435        reflow(element);
4436      }
4437
4438      element.classList.add(CLASS_NAME_SHOW$5);
4439
4440      this._emulateAnimation(() => {
4441        execute(callback);
4442      });
4443    }
4444
4445    hide(callback) {
4446      if (!this._config.isVisible) {
4447        execute(callback);
4448        return;
4449      }
4450
4451      this._getElement().classList.remove(CLASS_NAME_SHOW$5);
4452
4453      this._emulateAnimation(() => {
4454        this.dispose();
4455        execute(callback);
4456      });
4457    }
4458
4459    dispose() {
4460      if (!this._isAppended) {
4461        return;
4462      }
4463
4464      EventHandler.off(this._element, EVENT_MOUSEDOWN);
4465
4466      this._element.remove();
4467
4468      this._isAppended = false;
4469    } // Private
4470
4471
4472    _getElement() {
4473      if (!this._element) {
4474        const backdrop = document.createElement('div');
4475        backdrop.className = this._config.className;
4476
4477        if (this._config.isAnimated) {
4478          backdrop.classList.add(CLASS_NAME_FADE$4);
4479        }
4480
4481        this._element = backdrop;
4482      }
4483
4484      return this._element;
4485    }
4486
4487    _configAfterMerge(config) {
4488      // use getElement() with the default "body" to get a fresh Element on each instantiation
4489      config.rootElement = getElement(config.rootElement);
4490      return config;
4491    }
4492
4493    _append() {
4494      if (this._isAppended) {
4495        return;
4496      }
4497
4498      const element = this._getElement();
4499
4500      this._config.rootElement.append(element);
4501
4502      EventHandler.on(element, EVENT_MOUSEDOWN, () => {
4503        execute(this._config.clickCallback);
4504      });
4505      this._isAppended = true;
4506    }
4507
4508    _emulateAnimation(callback) {
4509      executeAfterTransition(callback, this._getElement(), this._config.isAnimated);
4510    }
4511
4512  }
4513
4514  /**
4515   * --------------------------------------------------------------------------
4516   * Bootstrap (v5.2.2): util/focustrap.js
4517   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
4518   * --------------------------------------------------------------------------
4519   */
4520  /**
4521   * Constants
4522   */
4523
4524  const NAME$8 = 'focustrap';
4525  const DATA_KEY$5 = 'bs.focustrap';
4526  const EVENT_KEY$5 = `.${DATA_KEY$5}`;
4527  const EVENT_FOCUSIN$2 = `focusin${EVENT_KEY$5}`;
4528  const EVENT_KEYDOWN_TAB = `keydown.tab${EVENT_KEY$5}`;
4529  const TAB_KEY = 'Tab';
4530  const TAB_NAV_FORWARD = 'forward';
4531  const TAB_NAV_BACKWARD = 'backward';
4532  const Default$7 = {
4533    autofocus: true,
4534    trapElement: null // The element to trap focus inside of
4535
4536  };
4537  const DefaultType$7 = {
4538    autofocus: 'boolean',
4539    trapElement: 'element'
4540  };
4541  /**
4542   * Class definition
4543   */
4544
4545  class FocusTrap extends Config {
4546    constructor(config) {
4547      super();
4548      this._config = this._getConfig(config);
4549      this._isActive = false;
4550      this._lastTabNavDirection = null;
4551    } // Getters
4552
4553
4554    static get Default() {
4555      return Default$7;
4556    }
4557
4558    static get DefaultType() {
4559      return DefaultType$7;
4560    }
4561
4562    static get NAME() {
4563      return NAME$8;
4564    } // Public
4565
4566
4567    activate() {
4568      if (this._isActive) {
4569        return;
4570      }
4571
4572      if (this._config.autofocus) {
4573        this._config.trapElement.focus();
4574      }
4575
4576      EventHandler.off(document, EVENT_KEY$5); // guard against infinite focus loop
4577
4578      EventHandler.on(document, EVENT_FOCUSIN$2, event => this._handleFocusin(event));
4579      EventHandler.on(document, EVENT_KEYDOWN_TAB, event => this._handleKeydown(event));
4580      this._isActive = true;
4581    }
4582
4583    deactivate() {
4584      if (!this._isActive) {
4585        return;
4586      }
4587
4588      this._isActive = false;
4589      EventHandler.off(document, EVENT_KEY$5);
4590    } // Private
4591
4592
4593    _handleFocusin(event) {
4594      const {
4595        trapElement
4596      } = this._config;
4597
4598      if (event.target === document || event.target === trapElement || trapElement.contains(event.target)) {
4599        return;
4600      }
4601
4602      const elements = SelectorEngine.focusableChildren(trapElement);
4603
4604      if (elements.length === 0) {
4605        trapElement.focus();
4606      } else if (this._lastTabNavDirection === TAB_NAV_BACKWARD) {
4607        elements[elements.length - 1].focus();
4608      } else {
4609        elements[0].focus();
4610      }
4611    }
4612
4613    _handleKeydown(event) {
4614      if (event.key !== TAB_KEY) {
4615        return;
4616      }
4617
4618      this._lastTabNavDirection = event.shiftKey ? TAB_NAV_BACKWARD : TAB_NAV_FORWARD;
4619    }
4620
4621  }
4622
4623  /**
4624   * --------------------------------------------------------------------------
4625   * Bootstrap (v5.2.2): modal.js
4626   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
4627   * --------------------------------------------------------------------------
4628   */
4629  /**
4630   * Constants
4631   */
4632
4633  const NAME$7 = 'modal';
4634  const DATA_KEY$4 = 'bs.modal';
4635  const EVENT_KEY$4 = `.${DATA_KEY$4}`;
4636  const DATA_API_KEY$2 = '.data-api';
4637  const ESCAPE_KEY$1 = 'Escape';
4638  const EVENT_HIDE$4 = `hide${EVENT_KEY$4}`;
4639  const EVENT_HIDE_PREVENTED$1 = `hidePrevented${EVENT_KEY$4}`;
4640  const EVENT_HIDDEN$4 = `hidden${EVENT_KEY$4}`;
4641  const EVENT_SHOW$4 = `show${EVENT_KEY$4}`;
4642  const EVENT_SHOWN$4 = `shown${EVENT_KEY$4}`;
4643  const EVENT_RESIZE$1 = `resize${EVENT_KEY$4}`;
4644  const EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY$4}`;
4645  const EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY$4}`;
4646  const EVENT_KEYDOWN_DISMISS$1 = `keydown.dismiss${EVENT_KEY$4}`;
4647  const EVENT_CLICK_DATA_API$2 = `click${EVENT_KEY$4}${DATA_API_KEY$2}`;
4648  const CLASS_NAME_OPEN = 'modal-open';
4649  const CLASS_NAME_FADE$3 = 'fade';
vendor: 9,423 bytes, lines 4650-5014
4650  const CLASS_NAME_SHOW$4 = 'show';
4651  const CLASS_NAME_STATIC = 'modal-static';
4652  const OPEN_SELECTOR$1 = '.modal.show';
4653  const SELECTOR_DIALOG = '.modal-dialog';
4654  const SELECTOR_MODAL_BODY = '.modal-body';
4655  const SELECTOR_DATA_TOGGLE$2 = '[data-bs-toggle="modal"]';
4656  const Default$6 = {
4657    backdrop: true,
4658    focus: true,
4659    keyboard: true
4660  };
4661  const DefaultType$6 = {
4662    backdrop: '(boolean|string)',
4663    focus: 'boolean',
4664    keyboard: 'boolean'
4665  };
4666  /**
4667   * Class definition
4668   */
4669
4670  class Modal extends BaseComponent {
4671    constructor(element, config) {
4672      super(element, config);
4673      this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, this._element);
4674      this._backdrop = this._initializeBackDrop();
4675      this._focustrap = this._initializeFocusTrap();
4676      this._isShown = false;
4677      this._isTransitioning = false;
4678      this._scrollBar = new ScrollBarHelper();
4679
4680      this._addEventListeners();
4681    } // Getters
4682
4683
4684    static get Default() {
4685      return Default$6;
4686    }
4687
4688    static get DefaultType() {
4689      return DefaultType$6;
4690    }
4691
4692    static get NAME() {
4693      return NAME$7;
4694    } // Public
4695
4696
4697    toggle(relatedTarget) {
4698      return this._isShown ? this.hide() : this.show(relatedTarget);
4699    }
4700
4701    show(relatedTarget) {
4702      if (this._isShown || this._isTransitioning) {
4703        return;
4704      }
4705
4706      const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$4, {
4707        relatedTarget
4708      });
4709
4710      if (showEvent.defaultPrevented) {
4711        return;
4712      }
4713
4714      this._isShown = true;
4715      this._isTransitioning = true;
4716
4717      this._scrollBar.hide();
4718
4719      document.body.classList.add(CLASS_NAME_OPEN);
4720
4721      this._adjustDialog();
4722
4723      this._backdrop.show(() => this._showElement(relatedTarget));
4724    }
4725
4726    hide() {
4727      if (!this._isShown || this._isTransitioning) {
4728        return;
4729      }
4730
4731      const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$4);
4732
4733      if (hideEvent.defaultPrevented) {
4734        return;
4735      }
4736
4737      this._isShown = false;
4738      this._isTransitioning = true;
4739
4740      this._focustrap.deactivate();
4741
4742      this._element.classList.remove(CLASS_NAME_SHOW$4);
4743
4744      this._queueCallback(() => this._hideModal(), this._element, this._isAnimated());
4745    }
4746
4747    dispose() {
4748      for (const htmlElement of [window, this._dialog]) {
4749        EventHandler.off(htmlElement, EVENT_KEY$4);
4750      }
4751
4752      this._backdrop.dispose();
4753
4754      this._focustrap.deactivate();
4755
4756      super.dispose();
4757    }
4758
4759    handleUpdate() {
4760      this._adjustDialog();
4761    } // Private
4762
4763
4764    _initializeBackDrop() {
4765      return new Backdrop({
4766        isVisible: Boolean(this._config.backdrop),
4767        // 'static' option will be translated to true, and booleans will keep their value,
4768        isAnimated: this._isAnimated()
4769      });
4770    }
4771
4772    _initializeFocusTrap() {
4773      return new FocusTrap({
4774        trapElement: this._element
4775      });
4776    }
4777
4778    _showElement(relatedTarget) {
4779      // try to append dynamic modal
4780      if (!document.body.contains(this._element)) {
4781        document.body.append(this._element);
4782      }
4783
4784      this._element.style.display = 'block';
4785
4786      this._element.removeAttribute('aria-hidden');
4787
4788      this._element.setAttribute('aria-modal', true);
4789
4790      this._element.setAttribute('role', 'dialog');
4791
4792      this._element.scrollTop = 0;
4793      const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog);
4794
4795      if (modalBody) {
4796        modalBody.scrollTop = 0;
4797      }
4798
4799      reflow(this._element);
4800
4801      this._element.classList.add(CLASS_NAME_SHOW$4);
4802
4803      const transitionComplete = () => {
4804        if (this._config.focus) {
4805          this._focustrap.activate();
4806        }
4807
4808        this._isTransitioning = false;
4809        EventHandler.trigger(this._element, EVENT_SHOWN$4, {
4810          relatedTarget
4811        });
4812      };
4813
4814      this._queueCallback(transitionComplete, this._dialog, this._isAnimated());
4815    }
4816
4817    _addEventListeners() {
4818      EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS$1, event => {
4819        if (event.key !== ESCAPE_KEY$1) {
4820          return;
4821        }
4822
4823        if (this._config.keyboard) {
4824          event.preventDefault();
4825          this.hide();
4826          return;
4827        }
4828
4829        this._triggerBackdropTransition();
4830      });
4831      EventHandler.on(window, EVENT_RESIZE$1, () => {
4832        if (this._isShown && !this._isTransitioning) {
4833          this._adjustDialog();
4834        }
4835      });
4836      EventHandler.on(this._element, EVENT_MOUSEDOWN_DISMISS, event => {
4837        // a bad trick to segregate clicks that may start inside dialog but end outside, and avoid listen to scrollbar clicks
4838        EventHandler.one(this._element, EVENT_CLICK_DISMISS, event2 => {
4839          if (this._element !== event.target || this._element !== event2.target) {
4840            return;
4841          }
4842
4843          if (this._config.backdrop === 'static') {
4844            this._triggerBackdropTransition();
4845
4846            return;
4847          }
4848
4849          if (this._config.backdrop) {
4850            this.hide();
4851          }
4852        });
4853      });
4854    }
4855
4856    _hideModal() {
4857      this._element.style.display = 'none';
4858
4859      this._element.setAttribute('aria-hidden', true);
4860
4861      this._element.removeAttribute('aria-modal');
4862
4863      this._element.removeAttribute('role');
4864
4865      this._isTransitioning = false;
4866
4867      this._backdrop.hide(() => {
4868        document.body.classList.remove(CLASS_NAME_OPEN);
4869
4870        this._resetAdjustments();
4871
4872        this._scrollBar.reset();
4873
4874        EventHandler.trigger(this._element, EVENT_HIDDEN$4);
4875      });
4876    }
4877
4878    _isAnimated() {
4879      return this._element.classList.contains(CLASS_NAME_FADE$3);
4880    }
4881
4882    _triggerBackdropTransition() {
4883      const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED$1);
4884
4885      if (hideEvent.defaultPrevented) {
4886        return;
4887      }
4888
4889      const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
4890      const initialOverflowY = this._element.style.overflowY; // return if the following background transition hasn't yet completed
4891
4892      if (initialOverflowY === 'hidden' || this._element.classList.contains(CLASS_NAME_STATIC)) {
4893        return;
4894      }
4895
4896      if (!isModalOverflowing) {
4897        this._element.style.overflowY = 'hidden';
4898      }
4899
4900      this._element.classList.add(CLASS_NAME_STATIC);
4901
4902      this._queueCallback(() => {
4903        this._element.classList.remove(CLASS_NAME_STATIC);
4904
4905        this._queueCallback(() => {
4906          this._element.style.overflowY = initialOverflowY;
4907        }, this._dialog);
4908      }, this._dialog);
4909
4910      this._element.focus();
4911    }
4912    /**
4913     * The following methods are used to handle overflowing modals
4914     */
4915
4916
4917    _adjustDialog() {
4918      const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
4919
4920      const scrollbarWidth = this._scrollBar.getWidth();
4921
4922      const isBodyOverflowing = scrollbarWidth > 0;
4923
4924      if (isBodyOverflowing && !isModalOverflowing) {
4925        const property = isRTL() ? 'paddingLeft' : 'paddingRight';
4926        this._element.style[property] = `${scrollbarWidth}px`;
4927      }
4928
4929      if (!isBodyOverflowing && isModalOverflowing) {
4930        const property = isRTL() ? 'paddingRight' : 'paddingLeft';
4931        this._element.style[property] = `${scrollbarWidth}px`;
4932      }
4933    }
4934
4935    _resetAdjustments() {
4936      this._element.style.paddingLeft = '';
4937      this._element.style.paddingRight = '';
4938    } // Static
4939
4940
4941    static jQueryInterface(config, relatedTarget) {
4942      return this.each(function () {
4943        const data = Modal.getOrCreateInstance(this, config);
4944
4945        if (typeof config !== 'string') {
4946          return;
4947        }
4948
4949        if (typeof data[config] === 'undefined') {
4950          throw new TypeError(`No method named "${config}"`);
4951        }
4952
4953        data[config](relatedTarget);
4954      });
4955    }
4956
4957  }
4958  /**
4959   * Data API implementation
4960   */
4961
4962
4963  EventHandler.on(document, EVENT_CLICK_DATA_API$2, SELECTOR_DATA_TOGGLE$2, function (event) {
4964    const target = getElementFromSelector(this);
4965
4966    if (['A', 'AREA'].includes(this.tagName)) {
4967      event.preventDefault();
4968    }
4969
4970    EventHandler.one(target, EVENT_SHOW$4, showEvent => {
4971      if (showEvent.defaultPrevented) {
4972        // only register focus restorer if modal will actually get shown
4973        return;
4974      }
4975
4976      EventHandler.one(target, EVENT_HIDDEN$4, () => {
4977        if (isVisible(this)) {
4978          this.focus();
4979        }
4980      });
4981    }); // avoid conflict when clicking modal toggler while another one is open
4982
4983    const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR$1);
4984
4985    if (alreadyOpen) {
4986      Modal.getInstance(alreadyOpen).hide();
4987    }
4988
4989    const data = Modal.getOrCreateInstance(target);
4990    data.toggle(this);
4991  });
4992  enableDismissTrigger(Modal);
4993  /**
4994   * jQuery
4995   */
4996
4997  defineJQueryPlugin(Modal);
4998
4999  /**
5000   * --------------------------------------------------------------------------
5001   * Bootstrap (v5.2.2): offcanvas.js
5002   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5003   * --------------------------------------------------------------------------
5004   */
5005  /**
5006   * Constants
5007   */
5008
5009  const NAME$6 = 'offcanvas';
5010  const DATA_KEY$3 = 'bs.offcanvas';
5011  const EVENT_KEY$3 = `.${DATA_KEY$3}`;
5012  const DATA_API_KEY$1 = '.data-api';
5013  const EVENT_LOAD_DATA_API$2 = `load${EVENT_KEY$3}${DATA_API_KEY$1}`;
5014  const ESCAPE_KEY = 'Escape';
vendor: 4,885 bytes, lines 5015-5213
5015  const CLASS_NAME_SHOW$3 = 'show';
5016  const CLASS_NAME_SHOWING$1 = 'showing';
5017  const CLASS_NAME_HIDING = 'hiding';
5018  const CLASS_NAME_BACKDROP = 'offcanvas-backdrop';
5019  const OPEN_SELECTOR = '.offcanvas.show';
5020  const EVENT_SHOW$3 = `show${EVENT_KEY$3}`;
5021  const EVENT_SHOWN$3 = `shown${EVENT_KEY$3}`;
5022  const EVENT_HIDE$3 = `hide${EVENT_KEY$3}`;
5023  const EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY$3}`;
5024  const EVENT_HIDDEN$3 = `hidden${EVENT_KEY$3}`;
5025  const EVENT_RESIZE = `resize${EVENT_KEY$3}`;
5026  const EVENT_CLICK_DATA_API$1 = `click${EVENT_KEY$3}${DATA_API_KEY$1}`;
5027  const EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY$3}`;
5028  const SELECTOR_DATA_TOGGLE$1 = '[data-bs-toggle="offcanvas"]';
5029  const Default$5 = {
5030    backdrop: true,
5031    keyboard: true,
5032    scroll: false
5033  };
5034  const DefaultType$5 = {
5035    backdrop: '(boolean|string)',
5036    keyboard: 'boolean',
5037    scroll: 'boolean'
5038  };
5039  /**
5040   * Class definition
5041   */
5042
5043  class Offcanvas extends BaseComponent {
5044    constructor(element, config) {
5045      super(element, config);
5046      this._isShown = false;
5047      this._backdrop = this._initializeBackDrop();
5048      this._focustrap = this._initializeFocusTrap();
5049
5050      this._addEventListeners();
5051    } // Getters
5052
5053
5054    static get Default() {
5055      return Default$5;
5056    }
5057
5058    static get DefaultType() {
5059      return DefaultType$5;
5060    }
5061
5062    static get NAME() {
5063      return NAME$6;
5064    } // Public
5065
5066
5067    toggle(relatedTarget) {
5068      return this._isShown ? this.hide() : this.show(relatedTarget);
5069    }
5070
5071    show(relatedTarget) {
5072      if (this._isShown) {
5073        return;
5074      }
5075
5076      const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$3, {
5077        relatedTarget
5078      });
5079
5080      if (showEvent.defaultPrevented) {
5081        return;
5082      }
5083
5084      this._isShown = true;
5085
5086      this._backdrop.show();
5087
5088      if (!this._config.scroll) {
5089        new ScrollBarHelper().hide();
5090      }
5091
5092      this._element.setAttribute('aria-modal', true);
5093
5094      this._element.setAttribute('role', 'dialog');
5095
5096      this._element.classList.add(CLASS_NAME_SHOWING$1);
5097
5098      const completeCallBack = () => {
5099        if (!this._config.scroll || this._config.backdrop) {
5100          this._focustrap.activate();
5101        }
5102
5103        this._element.classList.add(CLASS_NAME_SHOW$3);
5104
5105        this._element.classList.remove(CLASS_NAME_SHOWING$1);
5106
5107        EventHandler.trigger(this._element, EVENT_SHOWN$3, {
5108          relatedTarget
5109        });
5110      };
5111
5112      this._queueCallback(completeCallBack, this._element, true);
5113    }
5114
5115    hide() {
5116      if (!this._isShown) {
5117        return;
5118      }
5119
5120      const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$3);
5121
5122      if (hideEvent.defaultPrevented) {
5123        return;
5124      }
5125
5126      this._focustrap.deactivate();
5127
5128      this._element.blur();
5129
5130      this._isShown = false;
5131
5132      this._element.classList.add(CLASS_NAME_HIDING);
5133
5134      this._backdrop.hide();
5135
5136      const completeCallback = () => {
5137        this._element.classList.remove(CLASS_NAME_SHOW$3, CLASS_NAME_HIDING);
5138
5139        this._element.removeAttribute('aria-modal');
5140
5141        this._element.removeAttribute('role');
5142
5143        if (!this._config.scroll) {
5144          new ScrollBarHelper().reset();
5145        }
5146
5147        EventHandler.trigger(this._element, EVENT_HIDDEN$3);
5148      };
5149
5150      this._queueCallback(completeCallback, this._element, true);
5151    }
5152
5153    dispose() {
5154      this._backdrop.dispose();
5155
5156      this._focustrap.deactivate();
5157
5158      super.dispose();
5159    } // Private
5160
5161
5162    _initializeBackDrop() {
5163      const clickCallback = () => {
5164        if (this._config.backdrop === 'static') {
5165          EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED);
5166          return;
5167        }
5168
5169        this.hide();
5170      }; // 'static' option will be translated to true, and booleans will keep their value
5171
5172
5173      const isVisible = Boolean(this._config.backdrop);
5174      return new Backdrop({
5175        className: CLASS_NAME_BACKDROP,
5176        isVisible,
5177        isAnimated: true,
5178        rootElement: this._element.parentNode,
5179        clickCallback: isVisible ? clickCallback : null
5180      });
5181    }
5182
5183    _initializeFocusTrap() {
5184      return new FocusTrap({
5185        trapElement: this._element
5186      });
5187    }
5188
5189    _addEventListeners() {
5190      EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {
5191        if (event.key !== ESCAPE_KEY) {
5192          return;
5193        }
5194
5195        if (!this._config.keyboard) {
5196          EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED);
5197          return;
5198        }
5199
5200        this.hide();
5201      });
5202    } // Static
5203
5204
5205    static jQueryInterface(config) {
5206      return this.each(function () {
5207        const data = Offcanvas.getOrCreateInstance(this, config);
5208
5209        if (typeof config !== 'string') {
5210          return;
5211        }
5212
5213        if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {
vendor: 9,096 bytes, lines 5214-5548
5214          throw new TypeError(`No method named "${config}"`);
5215        }
5216
5217        data[config](this);
5218      });
5219    }
5220
5221  }
5222  /**
5223   * Data API implementation
5224   */
5225
5226
5227  EventHandler.on(document, EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE$1, function (event) {
5228    const target = getElementFromSelector(this);
5229
5230    if (['A', 'AREA'].includes(this.tagName)) {
5231      event.preventDefault();
5232    }
5233
5234    if (isDisabled(this)) {
5235      return;
5236    }
5237
5238    EventHandler.one(target, EVENT_HIDDEN$3, () => {
5239      // focus on trigger when it is closed
5240      if (isVisible(this)) {
5241        this.focus();
5242      }
5243    }); // avoid conflict when clicking a toggler of an offcanvas, while another is open
5244
5245    const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR);
5246
5247    if (alreadyOpen && alreadyOpen !== target) {
5248      Offcanvas.getInstance(alreadyOpen).hide();
5249    }
5250
5251    const data = Offcanvas.getOrCreateInstance(target);
5252    data.toggle(this);
5253  });
5254  EventHandler.on(window, EVENT_LOAD_DATA_API$2, () => {
5255    for (const selector of SelectorEngine.find(OPEN_SELECTOR)) {
5256      Offcanvas.getOrCreateInstance(selector).show();
5257    }
5258  });
5259  EventHandler.on(window, EVENT_RESIZE, () => {
5260    for (const element of SelectorEngine.find('[aria-modal][class*=show][class*=offcanvas-]')) {
5261      if (getComputedStyle(element).position !== 'fixed') {
5262        Offcanvas.getOrCreateInstance(element).hide();
5263      }
5264    }
5265  });
5266  enableDismissTrigger(Offcanvas);
5267  /**
5268   * jQuery
5269   */
5270
5271  defineJQueryPlugin(Offcanvas);
5272
5273  /**
5274   * --------------------------------------------------------------------------
5275   * Bootstrap (v5.2.2): util/sanitizer.js
5276   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5277   * --------------------------------------------------------------------------
5278   */
5279  const uriAttributes = new Set(['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']);
5280  const ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i;
5281  /**
5282   * A pattern that recognizes a commonly useful subset of URLs that are safe.
5283   *
5284   * Shout-out to Angular https://github.com/angular/angular/blob/12.2.x/packages/core/src/sanitization/url_sanitizer.ts
5285   */
5286
5287  const SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i;
5288  /**
5289   * A pattern that matches safe data URLs. Only matches image, video and audio types.
5290   *
5291   * Shout-out to Angular https://github.com/angular/angular/blob/12.2.x/packages/core/src/sanitization/url_sanitizer.ts
5292   */
5293
5294  const DATA_URL_PATTERN = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i;
5295
5296  const allowedAttribute = (attribute, allowedAttributeList) => {
5297    const attributeName = attribute.nodeName.toLowerCase();
5298
5299    if (allowedAttributeList.includes(attributeName)) {
5300      if (uriAttributes.has(attributeName)) {
5301        return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue) || DATA_URL_PATTERN.test(attribute.nodeValue));
5302      }
5303
5304      return true;
5305    } // Check if a regular expression validates the attribute.
5306
5307
5308    return allowedAttributeList.filter(attributeRegex => attributeRegex instanceof RegExp).some(regex => regex.test(attributeName));
5309  };
5310
5311  const DefaultAllowlist = {
5312    // Global attributes allowed on any supplied element below.
5313    '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],
5314    a: ['target', 'href', 'title', 'rel'],
5315    area: [],
5316    b: [],
5317    br: [],
5318    col: [],
5319    code: [],
5320    div: [],
5321    em: [],
5322    hr: [],
5323    h1: [],
5324    h2: [],
5325    h3: [],
5326    h4: [],
5327    h5: [],
5328    h6: [],
5329    i: [],
5330    img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],
5331    li: [],
5332    ol: [],
5333    p: [],
5334    pre: [],
5335    s: [],
5336    small: [],
5337    span: [],
5338    sub: [],
5339    sup: [],
5340    strong: [],
5341    u: [],
5342    ul: []
5343  };
5344  function sanitizeHtml(unsafeHtml, allowList, sanitizeFunction) {
5345    if (!unsafeHtml.length) {
5346      return unsafeHtml;
5347    }
5348
5349    if (sanitizeFunction && typeof sanitizeFunction === 'function') {
5350      return sanitizeFunction(unsafeHtml);
5351    }
5352
5353    const domParser = new window.DOMParser();
5354    const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html');
5355    const elements = [].concat(...createdDocument.body.querySelectorAll('*'));
5356
5357    for (const element of elements) {
5358      const elementName = element.nodeName.toLowerCase();
5359
5360      if (!Object.keys(allowList).includes(elementName)) {
5361        element.remove();
5362        continue;
5363      }
5364
5365      const attributeList = [].concat(...element.attributes);
5366      const allowedAttributes = [].concat(allowList['*'] || [], allowList[elementName] || []);
5367
5368      for (const attribute of attributeList) {
5369        if (!allowedAttribute(attribute, allowedAttributes)) {
5370          element.removeAttribute(attribute.nodeName);
5371        }
5372      }
5373    }
5374
5375    return createdDocument.body.innerHTML;
5376  }
5377
5378  /**
5379   * --------------------------------------------------------------------------
5380   * Bootstrap (v5.2.2): util/template-factory.js
5381   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5382   * --------------------------------------------------------------------------
5383   */
5384  /**
5385   * Constants
5386   */
5387
5388  const NAME$5 = 'TemplateFactory';
5389  const Default$4 = {
5390    allowList: DefaultAllowlist,
5391    content: {},
5392    // { selector : text ,  selector2 : text2 , }
5393    extraClass: '',
5394    html: false,
5395    sanitize: true,
5396    sanitizeFn: null,
5397    template: '<div></div>'
5398  };
5399  const DefaultType$4 = {
5400    allowList: 'object',
5401    content: 'object',
5402    extraClass: '(string|function)',
5403    html: 'boolean',
5404    sanitize: 'boolean',
5405    sanitizeFn: '(null|function)',
5406    template: 'string'
5407  };
5408  const DefaultContentType = {
5409    entry: '(string|element|function|null)',
5410    selector: '(string|element)'
5411  };
5412  /**
5413   * Class definition
5414   */
5415
5416  class TemplateFactory extends Config {
5417    constructor(config) {
5418      super();
5419      this._config = this._getConfig(config);
5420    } // Getters
5421
5422
5423    static get Default() {
5424      return Default$4;
5425    }
5426
5427    static get DefaultType() {
5428      return DefaultType$4;
5429    }
5430
5431    static get NAME() {
5432      return NAME$5;
5433    } // Public
5434
5435
5436    getContent() {
5437      return Object.values(this._config.content).map(config => this._resolvePossibleFunction(config)).filter(Boolean);
5438    }
5439
5440    hasContent() {
5441      return this.getContent().length > 0;
5442    }
5443
5444    changeContent(content) {
5445      this._checkContent(content);
5446
5447      this._config.content = { ...this._config.content,
5448        ...content
5449      };
5450      return this;
5451    }
5452
5453    toHtml() {
5454      const templateWrapper = document.createElement('div');
5455      templateWrapper.innerHTML = this._maybeSanitize(this._config.template);
5456
5457      for (const [selector, text] of Object.entries(this._config.content)) {
5458        this._setContent(templateWrapper, text, selector);
5459      }
5460
5461      const template = templateWrapper.children[0];
5462
5463      const extraClass = this._resolvePossibleFunction(this._config.extraClass);
5464
5465      if (extraClass) {
5466        template.classList.add(...extraClass.split(' '));
5467      }
5468
5469      return template;
5470    } // Private
5471
5472
5473    _typeCheckConfig(config) {
5474      super._typeCheckConfig(config);
5475
5476      this._checkContent(config.content);
5477    }
5478
5479    _checkContent(arg) {
5480      for (const [selector, content] of Object.entries(arg)) {
5481        super._typeCheckConfig({
5482          selector,
5483          entry: content
5484        }, DefaultContentType);
5485      }
5486    }
5487
5488    _setContent(template, content, selector) {
5489      const templateElement = SelectorEngine.findOne(selector, template);
5490
5491      if (!templateElement) {
5492        return;
5493      }
5494
5495      content = this._resolvePossibleFunction(content);
5496
5497      if (!content) {
5498        templateElement.remove();
5499        return;
5500      }
5501
5502      if (isElement$1(content)) {
5503        this._putElementInTemplate(getElement(content), templateElement);
5504
5505        return;
5506      }
5507
5508      if (this._config.html) {
5509        templateElement.innerHTML = this._maybeSanitize(content);
5510        return;
5511      }
5512
5513      templateElement.textContent = content;
5514    }
5515
5516    _maybeSanitize(arg) {
5517      return this._config.sanitize ? sanitizeHtml(arg, this._config.allowList, this._config.sanitizeFn) : arg;
5518    }
5519
5520    _resolvePossibleFunction(arg) {
5521      return typeof arg === 'function' ? arg(this) : arg;
5522    }
5523
5524    _putElementInTemplate(element, templateElement) {
5525      if (this._config.html) {
5526        templateElement.innerHTML = '';
5527        templateElement.append(element);
5528        return;
5529      }
5530
5531      templateElement.textContent = element.textContent;
5532    }
5533
5534  }
5535
5536  /**
5537   * --------------------------------------------------------------------------
5538   * Bootstrap (v5.2.2): tooltip.js
5539   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5540   * --------------------------------------------------------------------------
5541   */
5542  /**
5543   * Constants
5544   */
5545
5546  const NAME$4 = 'tooltip';
5547  const DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn']);
5548  const CLASS_NAME_FADE$2 = 'fade';
vendor: 4,835 bytes, lines 5549-5738
5549  const CLASS_NAME_MODAL = 'modal';
5550  const CLASS_NAME_SHOW$2 = 'show';
5551  const SELECTOR_TOOLTIP_INNER = '.tooltip-inner';
5552  const SELECTOR_MODAL = `.${CLASS_NAME_MODAL}`;
5553  const EVENT_MODAL_HIDE = 'hide.bs.modal';
5554  const TRIGGER_HOVER = 'hover';
5555  const TRIGGER_FOCUS = 'focus';
5556  const TRIGGER_CLICK = 'click';
5557  const TRIGGER_MANUAL = 'manual';
5558  const EVENT_HIDE$2 = 'hide';
5559  const EVENT_HIDDEN$2 = 'hidden';
5560  const EVENT_SHOW$2 = 'show';
5561  const EVENT_SHOWN$2 = 'shown';
5562  const EVENT_INSERTED = 'inserted';
5563  const EVENT_CLICK$1 = 'click';
5564  const EVENT_FOCUSIN$1 = 'focusin';
5565  const EVENT_FOCUSOUT$1 = 'focusout';
5566  const EVENT_MOUSEENTER = 'mouseenter';
5567  const EVENT_MOUSELEAVE = 'mouseleave';
5568  const AttachmentMap = {
5569    AUTO: 'auto',
5570    TOP: 'top',
5571    RIGHT: isRTL() ? 'left' : 'right',
5572    BOTTOM: 'bottom',
5573    LEFT: isRTL() ? 'right' : 'left'
5574  };
5575  const Default$3 = {
5576    allowList: DefaultAllowlist,
5577    animation: true,
5578    boundary: 'clippingParents',
5579    container: false,
5580    customClass: '',
5581    delay: 0,
5582    fallbackPlacements: ['top', 'right', 'bottom', 'left'],
5583    html: false,
5584    offset: [0, 0],
5585    placement: 'top',
5586    popperConfig: null,
5587    sanitize: true,
5588    sanitizeFn: null,
5589    selector: false,
5590    template: '<div class="tooltip" role="tooltip">' + '<div class="tooltip-arrow"></div>' + '<div class="tooltip-inner"></div>' + '</div>',
5591    title: '',
5592    trigger: 'hover focus'
5593  };
5594  const DefaultType$3 = {
5595    allowList: 'object',
5596    animation: 'boolean',
5597    boundary: '(string|element)',
5598    container: '(string|element|boolean)',
5599    customClass: '(string|function)',
5600    delay: '(number|object)',
5601    fallbackPlacements: 'array',
5602    html: 'boolean',
5603    offset: '(array|string|function)',
5604    placement: '(string|function)',
5605    popperConfig: '(null|object|function)',
5606    sanitize: 'boolean',
5607    sanitizeFn: '(null|function)',
5608    selector: '(string|boolean)',
5609    template: 'string',
5610    title: '(string|element|function)',
5611    trigger: 'string'
5612  };
5613  /**
5614   * Class definition
5615   */
5616
5617  class Tooltip extends BaseComponent {
5618    constructor(element, config) {
5619      if (typeof Popper === 'undefined') {
5620        throw new TypeError('Bootstrap\'s tooltips require Popper (https://popper.js.org)');
5621      }
5622
5623      super(element, config); // Private
5624
5625      this._isEnabled = true;
5626      this._timeout = 0;
5627      this._isHovered = null;
5628      this._activeTrigger = {};
5629      this._popper = null;
5630      this._templateFactory = null;
5631      this._newContent = null; // Protected
5632
5633      this.tip = null;
5634
5635      this._setListeners();
5636
5637      if (!this._config.selector) {
5638        this._fixTitle();
5639      }
5640    } // Getters
5641
5642
5643    static get Default() {
5644      return Default$3;
5645    }
5646
5647    static get DefaultType() {
5648      return DefaultType$3;
5649    }
5650
5651    static get NAME() {
5652      return NAME$4;
5653    } // Public
5654
5655
5656    enable() {
5657      this._isEnabled = true;
5658    }
5659
5660    disable() {
5661      this._isEnabled = false;
5662    }
5663
5664    toggleEnabled() {
5665      this._isEnabled = !this._isEnabled;
5666    }
5667
5668    toggle() {
5669      if (!this._isEnabled) {
5670        return;
5671      }
5672
5673      this._activeTrigger.click = !this._activeTrigger.click;
5674
5675      if (this._isShown()) {
5676        this._leave();
5677
5678        return;
5679      }
5680
5681      this._enter();
5682    }
5683
5684    dispose() {
5685      clearTimeout(this._timeout);
5686      EventHandler.off(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler);
5687
5688      if (this.tip) {
5689        this.tip.remove();
5690      }
5691
5692      if (this._element.getAttribute('data-bs-original-title')) {
5693        this._element.setAttribute('title', this._element.getAttribute('data-bs-original-title'));
5694      }
5695
5696      this._disposePopper();
5697
5698      super.dispose();
5699    }
5700
5701    show() {
5702      if (this._element.style.display === 'none') {
5703        throw new Error('Please use show on visible elements');
5704      }
5705
5706      if (!(this._isWithContent() && this._isEnabled)) {
5707        return;
5708      }
5709
5710      const showEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOW$2));
5711      const shadowRoot = findShadowRoot(this._element);
5712
5713      const isInTheDom = (shadowRoot || this._element.ownerDocument.documentElement).contains(this._element);
5714
5715      if (showEvent.defaultPrevented || !isInTheDom) {
5716        return;
5717      } // todo v6 remove this OR make it optional
5718
5719
5720      if (this.tip) {
5721        this.tip.remove();
5722        this.tip = null;
5723      }
5724
5725      const tip = this._getTipElement();
5726
5727      this._element.setAttribute('aria-describedby', tip.getAttribute('id'));
5728
5729      const {
5730        container
5731      } = this._config;
5732
5733      if (!this._element.ownerDocument.documentElement.contains(this.tip)) {
5734        container.append(tip);
5735        EventHandler.trigger(this._element, this.constructor.eventName(EVENT_INSERTED));
5736      }
5737
5738      if (this._popper) {
vendor: 3,007 bytes, lines 5739-5844
5739        this._popper.update();
5740      } else {
5741        this._popper = this._createPopper(tip);
5742      }
5743
5744      tip.classList.add(CLASS_NAME_SHOW$2); // If this is a touch-enabled device we add extra
5745      // empty mouseover listeners to the body's immediate children;
5746      // only needed because of broken event delegation on iOS
5747      // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
5748
5749      if ('ontouchstart' in document.documentElement) {
5750        for (const element of [].concat(...document.body.children)) {
5751          EventHandler.on(element, 'mouseover', noop);
5752        }
5753      }
5754
5755      const complete = () => {
5756        EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOWN$2));
5757
5758        if (this._isHovered === false) {
5759          this._leave();
5760        }
5761
5762        this._isHovered = false;
5763      };
5764
5765      this._queueCallback(complete, this.tip, this._isAnimated());
5766    }
5767
5768    hide() {
5769      if (!this._isShown()) {
5770        return;
5771      }
5772
5773      const hideEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDE$2));
5774
5775      if (hideEvent.defaultPrevented) {
5776        return;
5777      }
5778
5779      const tip = this._getTipElement();
5780
5781      tip.classList.remove(CLASS_NAME_SHOW$2); // If this is a touch-enabled device we remove the extra
5782      // empty mouseover listeners we added for iOS support
5783
5784      if ('ontouchstart' in document.documentElement) {
5785        for (const element of [].concat(...document.body.children)) {
5786          EventHandler.off(element, 'mouseover', noop);
5787        }
5788      }
5789
5790      this._activeTrigger[TRIGGER_CLICK] = false;
5791      this._activeTrigger[TRIGGER_FOCUS] = false;
5792      this._activeTrigger[TRIGGER_HOVER] = false;
5793      this._isHovered = null; // it is a trick to support manual triggering
5794
5795      const complete = () => {
5796        if (this._isWithActiveTrigger()) {
5797          return;
5798        }
5799
5800        if (!this._isHovered) {
5801          tip.remove();
5802        }
5803
5804        this._element.removeAttribute('aria-describedby');
5805
5806        EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDDEN$2));
5807
5808        this._disposePopper();
5809      };
5810
5811      this._queueCallback(complete, this.tip, this._isAnimated());
5812    }
5813
5814    update() {
5815      if (this._popper) {
5816        this._popper.update();
5817      }
5818    } // Protected
5819
5820
5821    _isWithContent() {
5822      return Boolean(this._getTitle());
5823    }
5824
5825    _getTipElement() {
5826      if (!this.tip) {
5827        this.tip = this._createTipElement(this._newContent || this._getContentForTemplate());
5828      }
5829
5830      return this.tip;
5831    }
5832
5833    _createTipElement(content) {
5834      const tip = this._getTemplateFactory(content).toHtml(); // todo: remove this check on v6
5835
5836
5837      if (!tip) {
5838        return null;
5839      }
5840
5841      tip.classList.remove(CLASS_NAME_FADE$2, CLASS_NAME_SHOW$2); // todo: on v6 the following can be achieved with CSS only
5842
5843      tip.classList.add(`bs-${this.constructor.NAME}-auto`);
5844      const tipId = getUID(this.constructor.NAME).toString();
vendor: 5,979 bytes, lines 5845-6043
5845      tip.setAttribute('id', tipId);
5846
5847      if (this._isAnimated()) {
5848        tip.classList.add(CLASS_NAME_FADE$2);
5849      }
5850
5851      return tip;
5852    }
5853
5854    setContent(content) {
5855      this._newContent = content;
5856
5857      if (this._isShown()) {
5858        this._disposePopper();
5859
5860        this.show();
5861      }
5862    }
5863
5864    _getTemplateFactory(content) {
5865      if (this._templateFactory) {
5866        this._templateFactory.changeContent(content);
5867      } else {
5868        this._templateFactory = new TemplateFactory({ ...this._config,
5869          // the `content` var has to be after `this._config`
5870          // to override config.content in case of popover
5871          content,
5872          extraClass: this._resolvePossibleFunction(this._config.customClass)
5873        });
5874      }
5875
5876      return this._templateFactory;
5877    }
5878
5879    _getContentForTemplate() {
5880      return {
5881        [SELECTOR_TOOLTIP_INNER]: this._getTitle()
5882      };
5883    }
5884
5885    _getTitle() {
5886      return this._resolvePossibleFunction(this._config.title) || this._element.getAttribute('data-bs-original-title');
5887    } // Private
5888
5889
5890    _initializeOnDelegatedTarget(event) {
5891      return this.constructor.getOrCreateInstance(event.delegateTarget, this._getDelegateConfig());
5892    }
5893
5894    _isAnimated() {
5895      return this._config.animation || this.tip && this.tip.classList.contains(CLASS_NAME_FADE$2);
5896    }
5897
5898    _isShown() {
5899      return this.tip && this.tip.classList.contains(CLASS_NAME_SHOW$2);
5900    }
5901
5902    _createPopper(tip) {
5903      const placement = typeof this._config.placement === 'function' ? this._config.placement.call(this, tip, this._element) : this._config.placement;
5904      const attachment = AttachmentMap[placement.toUpperCase()];
5905      return createPopper(this._element, tip, this._getPopperConfig(attachment));
5906    }
5907
5908    _getOffset() {
5909      const {
5910        offset
5911      } = this._config;
5912
5913      if (typeof offset === 'string') {
5914        return offset.split(',').map(value => Number.parseInt(value, 10));
5915      }
5916
5917      if (typeof offset === 'function') {
5918        return popperData => offset(popperData, this._element);
5919      }
5920
5921      return offset;
5922    }
5923
5924    _resolvePossibleFunction(arg) {
5925      return typeof arg === 'function' ? arg.call(this._element) : arg;
5926    }
5927
5928    _getPopperConfig(attachment) {
5929      const defaultBsPopperConfig = {
5930        placement: attachment,
5931        modifiers: [{
5932          name: 'flip',
5933          options: {
5934            fallbackPlacements: this._config.fallbackPlacements
5935          }
5936        }, {
5937          name: 'offset',
5938          options: {
5939            offset: this._getOffset()
5940          }
5941        }, {
5942          name: 'preventOverflow',
5943          options: {
5944            boundary: this._config.boundary
5945          }
5946        }, {
5947          name: 'arrow',
5948          options: {
5949            element: `.${this.constructor.NAME}-arrow`
5950          }
5951        }, {
5952          name: 'preSetPlacement',
5953          enabled: true,
5954          phase: 'beforeMain',
5955          fn: data => {
5956            // Pre-set Popper's placement attribute in order to read the arrow sizes properly.
5957            // Otherwise, Popper mixes up the width and height dimensions since the initial arrow style is for top placement
5958            this._getTipElement().setAttribute('data-popper-placement', data.state.placement);
5959          }
5960        }]
5961      };
5962      return { ...defaultBsPopperConfig,
5963        ...(typeof this._config.popperConfig === 'function' ? this._config.popperConfig(defaultBsPopperConfig) : this._config.popperConfig)
5964      };
5965    }
5966
5967    _setListeners() {
5968      const triggers = this._config.trigger.split(' ');
5969
5970      for (const trigger of triggers) {
5971        if (trigger === 'click') {
5972          EventHandler.on(this._element, this.constructor.eventName(EVENT_CLICK$1), this._config.selector, event => {
5973            const context = this._initializeOnDelegatedTarget(event);
5974
5975            context.toggle();
5976          });
5977        } else if (trigger !== TRIGGER_MANUAL) {
5978          const eventIn = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSEENTER) : this.constructor.eventName(EVENT_FOCUSIN$1);
5979          const eventOut = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSELEAVE) : this.constructor.eventName(EVENT_FOCUSOUT$1);
5980          EventHandler.on(this._element, eventIn, this._config.selector, event => {
5981            const context = this._initializeOnDelegatedTarget(event);
5982
5983            context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true;
5984
5985            context._enter();
5986          });
5987          EventHandler.on(this._element, eventOut, this._config.selector, event => {
5988            const context = this._initializeOnDelegatedTarget(event);
5989
5990            context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] = context._element.contains(event.relatedTarget);
5991
5992            context._leave();
5993          });
5994        }
5995      }
5996
5997      this._hideModalHandler = () => {
5998        if (this._element) {
5999          this.hide();
6000        }
6001      };
6002
6003      EventHandler.on(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler);
6004    }
6005
6006    _fixTitle() {
6007      const title = this._element.getAttribute('title');
6008
6009      if (!title) {
6010        return;
6011      }
6012
6013      if (!this._element.getAttribute('aria-label') && !this._element.textContent.trim()) {
6014        this._element.setAttribute('aria-label', title);
6015      }
6016
6017      this._element.setAttribute('data-bs-original-title', title); // DO NOT USE IT. Is only for backwards compatibility
6018
6019
6020      this._element.removeAttribute('title');
6021    }
6022
6023    _enter() {
6024      if (this._isShown() || this._isHovered) {
6025        this._isHovered = true;
6026        return;
6027      }
6028
6029      this._isHovered = true;
6030
6031      this._setTimeout(() => {
6032        if (this._isHovered) {
6033          this.show();
6034        }
6035      }, this._config.delay.show);
6036    }
6037
6038    _leave() {
6039      if (this._isWithActiveTrigger()) {
6040        return;
6041      }
6042
6043      this._isHovered = false;
vendor: 14,232 bytes, lines 6044-6551
6044
6045      this._setTimeout(() => {
6046        if (!this._isHovered) {
6047          this.hide();
6048        }
6049      }, this._config.delay.hide);
6050    }
6051
6052    _setTimeout(handler, timeout) {
6053      clearTimeout(this._timeout);
6054      this._timeout = setTimeout(handler, timeout);
6055    }
6056
6057    _isWithActiveTrigger() {
6058      return Object.values(this._activeTrigger).includes(true);
6059    }
6060
6061    _getConfig(config) {
6062      const dataAttributes = Manipulator.getDataAttributes(this._element);
6063
6064      for (const dataAttribute of Object.keys(dataAttributes)) {
6065        if (DISALLOWED_ATTRIBUTES.has(dataAttribute)) {
6066          delete dataAttributes[dataAttribute];
6067        }
6068      }
6069
6070      config = { ...dataAttributes,
6071        ...(typeof config === 'object' && config ? config : {})
6072      };
6073      config = this._mergeConfigObj(config);
6074      config = this._configAfterMerge(config);
6075
6076      this._typeCheckConfig(config);
6077
6078      return config;
6079    }
6080
6081    _configAfterMerge(config) {
6082      config.container = config.container === false ? document.body : getElement(config.container);
6083
6084      if (typeof config.delay === 'number') {
6085        config.delay = {
6086          show: config.delay,
6087          hide: config.delay
6088        };
6089      }
6090
6091      if (typeof config.title === 'number') {
6092        config.title = config.title.toString();
6093      }
6094
6095      if (typeof config.content === 'number') {
6096        config.content = config.content.toString();
6097      }
6098
6099      return config;
6100    }
6101
6102    _getDelegateConfig() {
6103      const config = {};
6104
6105      for (const key in this._config) {
6106        if (this.constructor.Default[key] !== this._config[key]) {
6107          config[key] = this._config[key];
6108        }
6109      }
6110
6111      config.selector = false;
6112      config.trigger = 'manual'; // In the future can be replaced with:
6113      // const keysWithDifferentValues = Object.entries(this._config).filter(entry => this.constructor.Default[entry[0]] !== this._config[entry[0]])
6114      // `Object.fromEntries(keysWithDifferentValues)`
6115
6116      return config;
6117    }
6118
6119    _disposePopper() {
6120      if (this._popper) {
6121        this._popper.destroy();
6122
6123        this._popper = null;
6124      }
6125    } // Static
6126
6127
6128    static jQueryInterface(config) {
6129      return this.each(function () {
6130        const data = Tooltip.getOrCreateInstance(this, config);
6131
6132        if (typeof config !== 'string') {
6133          return;
6134        }
6135
6136        if (typeof data[config] === 'undefined') {
6137          throw new TypeError(`No method named "${config}"`);
6138        }
6139
6140        data[config]();
6141      });
6142    }
6143
6144  }
6145  /**
6146   * jQuery
6147   */
6148
6149
6150  defineJQueryPlugin(Tooltip);
6151
6152  /**
6153   * --------------------------------------------------------------------------
6154   * Bootstrap (v5.2.2): popover.js
6155   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6156   * --------------------------------------------------------------------------
6157   */
6158  /**
6159   * Constants
6160   */
6161
6162  const NAME$3 = 'popover';
6163  const SELECTOR_TITLE = '.popover-header';
6164  const SELECTOR_CONTENT = '.popover-body';
6165  const Default$2 = { ...Tooltip.Default,
6166    content: '',
6167    offset: [0, 8],
6168    placement: 'right',
6169    template: '<div class="popover" role="tooltip">' + '<div class="popover-arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div>' + '</div>',
6170    trigger: 'click'
6171  };
6172  const DefaultType$2 = { ...Tooltip.DefaultType,
6173    content: '(null|string|element|function)'
6174  };
6175  /**
6176   * Class definition
6177   */
6178
6179  class Popover extends Tooltip {
6180    // Getters
6181    static get Default() {
6182      return Default$2;
6183    }
6184
6185    static get DefaultType() {
6186      return DefaultType$2;
6187    }
6188
6189    static get NAME() {
6190      return NAME$3;
6191    } // Overrides
6192
6193
6194    _isWithContent() {
6195      return this._getTitle() || this._getContent();
6196    } // Private
6197
6198
6199    _getContentForTemplate() {
6200      return {
6201        [SELECTOR_TITLE]: this._getTitle(),
6202        [SELECTOR_CONTENT]: this._getContent()
6203      };
6204    }
6205
6206    _getContent() {
6207      return this._resolvePossibleFunction(this._config.content);
6208    } // Static
6209
6210
6211    static jQueryInterface(config) {
6212      return this.each(function () {
6213        const data = Popover.getOrCreateInstance(this, config);
6214
6215        if (typeof config !== 'string') {
6216          return;
6217        }
6218
6219        if (typeof data[config] === 'undefined') {
6220          throw new TypeError(`No method named "${config}"`);
6221        }
6222
6223        data[config]();
6224      });
6225    }
6226
6227  }
6228  /**
6229   * jQuery
6230   */
6231
6232
6233  defineJQueryPlugin(Popover);
6234
6235  /**
6236   * --------------------------------------------------------------------------
6237   * Bootstrap (v5.2.2): scrollspy.js
6238   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6239   * --------------------------------------------------------------------------
6240   */
6241  /**
6242   * Constants
6243   */
6244
6245  const NAME$2 = 'scrollspy';
6246  const DATA_KEY$2 = 'bs.scrollspy';
6247  const EVENT_KEY$2 = `.${DATA_KEY$2}`;
6248  const DATA_API_KEY = '.data-api';
6249  const EVENT_ACTIVATE = `activate${EVENT_KEY$2}`;
6250  const EVENT_CLICK = `click${EVENT_KEY$2}`;
6251  const EVENT_LOAD_DATA_API$1 = `load${EVENT_KEY$2}${DATA_API_KEY}`;
6252  const CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item';
6253  const CLASS_NAME_ACTIVE$1 = 'active';
6254  const SELECTOR_DATA_SPY = '[data-bs-spy="scroll"]';
6255  const SELECTOR_TARGET_LINKS = '[href]';
6256  const SELECTOR_NAV_LIST_GROUP = '.nav, .list-group';
6257  const SELECTOR_NAV_LINKS = '.nav-link';
6258  const SELECTOR_NAV_ITEMS = '.nav-item';
6259  const SELECTOR_LIST_ITEMS = '.list-group-item';
6260  const SELECTOR_LINK_ITEMS = `${SELECTOR_NAV_LINKS}, ${SELECTOR_NAV_ITEMS} > ${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`;
6261  const SELECTOR_DROPDOWN = '.dropdown';
6262  const SELECTOR_DROPDOWN_TOGGLE$1 = '.dropdown-toggle';
6263  const Default$1 = {
6264    offset: null,
6265    // TODO: v6 @deprecated, keep it for backwards compatibility reasons
6266    rootMargin: '0px 0px -25%',
6267    smoothScroll: false,
6268    target: null,
6269    threshold: [0.1, 0.5, 1]
6270  };
6271  const DefaultType$1 = {
6272    offset: '(number|null)',
6273    // TODO v6 @deprecated, keep it for backwards compatibility reasons
6274    rootMargin: 'string',
6275    smoothScroll: 'boolean',
6276    target: 'element',
6277    threshold: 'array'
6278  };
6279  /**
6280   * Class definition
6281   */
6282
6283  class ScrollSpy extends BaseComponent {
6284    constructor(element, config) {
6285      super(element, config); // this._element is the observablesContainer and config.target the menu links wrapper
6286
6287      this._targetLinks = new Map();
6288      this._observableSections = new Map();
6289      this._rootElement = getComputedStyle(this._element).overflowY === 'visible' ? null : this._element;
6290      this._activeTarget = null;
6291      this._observer = null;
6292      this._previousScrollData = {
6293        visibleEntryTop: 0,
6294        parentScrollTop: 0
6295      };
6296      this.refresh(); // initialize
6297    } // Getters
6298
6299
6300    static get Default() {
6301      return Default$1;
6302    }
6303
6304    static get DefaultType() {
6305      return DefaultType$1;
6306    }
6307
6308    static get NAME() {
6309      return NAME$2;
6310    } // Public
6311
6312
6313    refresh() {
6314      this._initializeTargetsAndObservables();
6315
6316      this._maybeEnableSmoothScroll();
6317
6318      if (this._observer) {
6319        this._observer.disconnect();
6320      } else {
6321        this._observer = this._getNewObserver();
6322      }
6323
6324      for (const section of this._observableSections.values()) {
6325        this._observer.observe(section);
6326      }
6327    }
6328
6329    dispose() {
6330      this._observer.disconnect();
6331
6332      super.dispose();
6333    } // Private
6334
6335
6336    _configAfterMerge(config) {
6337      // TODO: on v6 target should be given explicitly & remove the {target: 'ss-target'} case
6338      config.target = getElement(config.target) || document.body; // TODO: v6 Only for backwards compatibility reasons. Use rootMargin only
6339
6340      config.rootMargin = config.offset ? `${config.offset}px 0px -30%` : config.rootMargin;
6341
6342      if (typeof config.threshold === 'string') {
6343        config.threshold = config.threshold.split(',').map(value => Number.parseFloat(value));
6344      }
6345
6346      return config;
6347    }
6348
6349    _maybeEnableSmoothScroll() {
6350      if (!this._config.smoothScroll) {
6351        return;
6352      } // unregister any previous listeners
6353
6354
6355      EventHandler.off(this._config.target, EVENT_CLICK);
6356      EventHandler.on(this._config.target, EVENT_CLICK, SELECTOR_TARGET_LINKS, event => {
6357        const observableSection = this._observableSections.get(event.target.hash);
6358
6359        if (observableSection) {
6360          event.preventDefault();
6361          const root = this._rootElement || window;
6362          const height = observableSection.offsetTop - this._element.offsetTop;
6363
6364          if (root.scrollTo) {
6365            root.scrollTo({
6366              top: height,
6367              behavior: 'smooth'
6368            });
6369            return;
6370          } // Chrome 60 doesn't support `scrollTo`
6371
6372
6373          root.scrollTop = height;
6374        }
6375      });
6376    }
6377
6378    _getNewObserver() {
6379      const options = {
6380        root: this._rootElement,
6381        threshold: this._config.threshold,
6382        rootMargin: this._config.rootMargin
6383      };
6384      return new IntersectionObserver(entries => this._observerCallback(entries), options);
6385    } // The logic of selection
6386
6387
6388    _observerCallback(entries) {
6389      const targetElement = entry => this._targetLinks.get(`#${entry.target.id}`);
6390
6391      const activate = entry => {
6392        this._previousScrollData.visibleEntryTop = entry.target.offsetTop;
6393
6394        this._process(targetElement(entry));
6395      };
6396
6397      const parentScrollTop = (this._rootElement || document.documentElement).scrollTop;
6398      const userScrollsDown = parentScrollTop >= this._previousScrollData.parentScrollTop;
6399      this._previousScrollData.parentScrollTop = parentScrollTop;
6400
6401      for (const entry of entries) {
6402        if (!entry.isIntersecting) {
6403          this._activeTarget = null;
6404
6405          this._clearActiveClass(targetElement(entry));
6406
6407          continue;
6408        }
6409
6410        const entryIsLowerThanPrevious = entry.target.offsetTop >= this._previousScrollData.visibleEntryTop; // if we are scrolling down, pick the bigger offsetTop
6411
6412        if (userScrollsDown && entryIsLowerThanPrevious) {
6413          activate(entry); // if parent isn't scrolled, let's keep the first visible item, breaking the iteration
6414
6415          if (!parentScrollTop) {
6416            return;
6417          }
6418
6419          continue;
6420        } // if we are scrolling up, pick the smallest offsetTop
6421
6422
6423        if (!userScrollsDown && !entryIsLowerThanPrevious) {
6424          activate(entry);
6425        }
6426      }
6427    }
6428
6429    _initializeTargetsAndObservables() {
6430      this._targetLinks = new Map();
6431      this._observableSections = new Map();
6432      const targetLinks = SelectorEngine.find(SELECTOR_TARGET_LINKS, this._config.target);
6433
6434      for (const anchor of targetLinks) {
6435        // ensure that the anchor has an id and is not disabled
6436        if (!anchor.hash || isDisabled(anchor)) {
6437          continue;
6438        }
6439
6440        const observableSection = SelectorEngine.findOne(anchor.hash, this._element); // ensure that the observableSection exists & is visible
6441
6442        if (isVisible(observableSection)) {
6443          this._targetLinks.set(anchor.hash, anchor);
6444
6445          this._observableSections.set(anchor.hash, observableSection);
6446        }
6447      }
6448    }
6449
6450    _process(target) {
6451      if (this._activeTarget === target) {
6452        return;
6453      }
6454
6455      this._clearActiveClass(this._config.target);
6456
6457      this._activeTarget = target;
6458      target.classList.add(CLASS_NAME_ACTIVE$1);
6459
6460      this._activateParents(target);
6461
6462      EventHandler.trigger(this._element, EVENT_ACTIVATE, {
6463        relatedTarget: target
6464      });
6465    }
6466
6467    _activateParents(target) {
6468      // Activate dropdown parents
6469      if (target.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {
6470        SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE$1, target.closest(SELECTOR_DROPDOWN)).classList.add(CLASS_NAME_ACTIVE$1);
6471        return;
6472      }
6473
6474      for (const listGroup of SelectorEngine.parents(target, SELECTOR_NAV_LIST_GROUP)) {
6475        // Set triggered links parents as active
6476        // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor
6477        for (const item of SelectorEngine.prev(listGroup, SELECTOR_LINK_ITEMS)) {
6478          item.classList.add(CLASS_NAME_ACTIVE$1);
6479        }
6480      }
6481    }
6482
6483    _clearActiveClass(parent) {
6484      parent.classList.remove(CLASS_NAME_ACTIVE$1);
6485      const activeNodes = SelectorEngine.find(`${SELECTOR_TARGET_LINKS}.${CLASS_NAME_ACTIVE$1}`, parent);
6486
6487      for (const node of activeNodes) {
6488        node.classList.remove(CLASS_NAME_ACTIVE$1);
6489      }
6490    } // Static
6491
6492
6493    static jQueryInterface(config) {
6494      return this.each(function () {
6495        const data = ScrollSpy.getOrCreateInstance(this, config);
6496
6497        if (typeof config !== 'string') {
6498          return;
6499        }
6500
6501        if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {
6502          throw new TypeError(`No method named "${config}"`);
6503        }
6504
6505        data[config]();
6506      });
6507    }
6508
6509  }
6510  /**
6511   * Data API implementation
6512   */
6513
6514
6515  EventHandler.on(window, EVENT_LOAD_DATA_API$1, () => {
6516    for (const spy of SelectorEngine.find(SELECTOR_DATA_SPY)) {
6517      ScrollSpy.getOrCreateInstance(spy);
6518    }
6519  });
6520  /**
6521   * jQuery
6522   */
6523
6524  defineJQueryPlugin(ScrollSpy);
6525
6526  /**
6527   * --------------------------------------------------------------------------
6528   * Bootstrap (v5.2.2): tab.js
6529   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6530   * --------------------------------------------------------------------------
6531   */
6532  /**
6533   * Constants
6534   */
6535
6536  const NAME$1 = 'tab';
6537  const DATA_KEY$1 = 'bs.tab';
6538  const EVENT_KEY$1 = `.${DATA_KEY$1}`;
6539  const EVENT_HIDE$1 = `hide${EVENT_KEY$1}`;
6540  const EVENT_HIDDEN$1 = `hidden${EVENT_KEY$1}`;
6541  const EVENT_SHOW$1 = `show${EVENT_KEY$1}`;
6542  const EVENT_SHOWN$1 = `shown${EVENT_KEY$1}`;
6543  const EVENT_CLICK_DATA_API = `click${EVENT_KEY$1}`;
6544  const EVENT_KEYDOWN = `keydown${EVENT_KEY$1}`;
6545  const EVENT_LOAD_DATA_API = `load${EVENT_KEY$1}`;
6546  const ARROW_LEFT_KEY = 'ArrowLeft';
6547  const ARROW_RIGHT_KEY = 'ArrowRight';
6548  const ARROW_UP_KEY = 'ArrowUp';
6549  const ARROW_DOWN_KEY = 'ArrowDown';
6550  const CLASS_NAME_ACTIVE = 'active';
6551  const CLASS_NAME_FADE$1 = 'fade';
vendor: 5,985 bytes, lines 6552-6749
6552  const CLASS_NAME_SHOW$1 = 'show';
6553  const CLASS_DROPDOWN = 'dropdown';
6554  const SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle';
6555  const SELECTOR_DROPDOWN_MENU = '.dropdown-menu';
6556  const NOT_SELECTOR_DROPDOWN_TOGGLE = ':not(.dropdown-toggle)';
6557  const SELECTOR_TAB_PANEL = '.list-group, .nav, [role="tablist"]';
6558  const SELECTOR_OUTER = '.nav-item, .list-group-item';
6559  const SELECTOR_INNER = `.nav-link${NOT_SELECTOR_DROPDOWN_TOGGLE}, .list-group-item${NOT_SELECTOR_DROPDOWN_TOGGLE}, [role="tab"]${NOT_SELECTOR_DROPDOWN_TOGGLE}`;
6560  const SELECTOR_DATA_TOGGLE = '[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]'; // todo:v6: could be only `tab`
6561
6562  const SELECTOR_INNER_ELEM = `${SELECTOR_INNER}, ${SELECTOR_DATA_TOGGLE}`;
6563  const SELECTOR_DATA_TOGGLE_ACTIVE = `.${CLASS_NAME_ACTIVE}[data-bs-toggle="tab"], .${CLASS_NAME_ACTIVE}[data-bs-toggle="pill"], .${CLASS_NAME_ACTIVE}[data-bs-toggle="list"]`;
6564  /**
6565   * Class definition
6566   */
6567
6568  class Tab extends BaseComponent {
6569    constructor(element) {
6570      super(element);
6571      this._parent = this._element.closest(SELECTOR_TAB_PANEL);
6572
6573      if (!this._parent) {
6574        return; // todo: should Throw exception on v6
6575        // throw new TypeError(`${element.outerHTML} has not a valid parent ${SELECTOR_INNER_ELEM}`)
6576      } // Set up initial aria attributes
6577
6578
6579      this._setInitialAttributes(this._parent, this._getChildren());
6580
6581      EventHandler.on(this._element, EVENT_KEYDOWN, event => this._keydown(event));
6582    } // Getters
6583
6584
6585    static get NAME() {
6586      return NAME$1;
6587    } // Public
6588
6589
6590    show() {
6591      // Shows this elem and deactivate the active sibling if exists
6592      const innerElem = this._element;
6593
6594      if (this._elemIsActive(innerElem)) {
6595        return;
6596      } // Search for active tab on same parent to deactivate it
6597
6598
6599      const active = this._getActiveElem();
6600
6601      const hideEvent = active ? EventHandler.trigger(active, EVENT_HIDE$1, {
6602        relatedTarget: innerElem
6603      }) : null;
6604      const showEvent = EventHandler.trigger(innerElem, EVENT_SHOW$1, {
6605        relatedTarget: active
6606      });
6607
6608      if (showEvent.defaultPrevented || hideEvent && hideEvent.defaultPrevented) {
6609        return;
6610      }
6611
6612      this._deactivate(active, innerElem);
6613
6614      this._activate(innerElem, active);
6615    } // Private
6616
6617
6618    _activate(element, relatedElem) {
6619      if (!element) {
6620        return;
6621      }
6622
6623      element.classList.add(CLASS_NAME_ACTIVE);
6624
6625      this._activate(getElementFromSelector(element)); // Search and activate/show the proper section
6626
6627
6628      const complete = () => {
6629        if (element.getAttribute('role') !== 'tab') {
6630          element.classList.add(CLASS_NAME_SHOW$1);
6631          return;
6632        }
6633
6634        element.removeAttribute('tabindex');
6635        element.setAttribute('aria-selected', true);
6636
6637        this._toggleDropDown(element, true);
6638
6639        EventHandler.trigger(element, EVENT_SHOWN$1, {
6640          relatedTarget: relatedElem
6641        });
6642      };
6643
6644      this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE$1));
6645    }
6646
6647    _deactivate(element, relatedElem) {
6648      if (!element) {
6649        return;
6650      }
6651
6652      element.classList.remove(CLASS_NAME_ACTIVE);
6653      element.blur();
6654
6655      this._deactivate(getElementFromSelector(element)); // Search and deactivate the shown section too
6656
6657
6658      const complete = () => {
6659        if (element.getAttribute('role') !== 'tab') {
6660          element.classList.remove(CLASS_NAME_SHOW$1);
6661          return;
6662        }
6663
6664        element.setAttribute('aria-selected', false);
6665        element.setAttribute('tabindex', '-1');
6666
6667        this._toggleDropDown(element, false);
6668
6669        EventHandler.trigger(element, EVENT_HIDDEN$1, {
6670          relatedTarget: relatedElem
6671        });
6672      };
6673
6674      this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE$1));
6675    }
6676
6677    _keydown(event) {
6678      if (![ARROW_LEFT_KEY, ARROW_RIGHT_KEY, ARROW_UP_KEY, ARROW_DOWN_KEY].includes(event.key)) {
6679        return;
6680      }
6681
6682      event.stopPropagation(); // stopPropagation/preventDefault both added to support up/down keys without scrolling the page
6683
6684      event.preventDefault();
6685      const isNext = [ARROW_RIGHT_KEY, ARROW_DOWN_KEY].includes(event.key);
6686      const nextActiveElement = getNextActiveElement(this._getChildren().filter(element => !isDisabled(element)), event.target, isNext, true);
6687
6688      if (nextActiveElement) {
6689        nextActiveElement.focus({
6690          preventScroll: true
6691        });
6692        Tab.getOrCreateInstance(nextActiveElement).show();
6693      }
6694    }
6695
6696    _getChildren() {
6697      // collection of inner elements
6698      return SelectorEngine.find(SELECTOR_INNER_ELEM, this._parent);
6699    }
6700
6701    _getActiveElem() {
6702      return this._getChildren().find(child => this._elemIsActive(child)) || null;
6703    }
6704
6705    _setInitialAttributes(parent, children) {
6706      this._setAttributeIfNotExists(parent, 'role', 'tablist');
6707
6708      for (const child of children) {
6709        this._setInitialAttributesOnChild(child);
6710      }
6711    }
6712
6713    _setInitialAttributesOnChild(child) {
6714      child = this._getInnerElement(child);
6715
6716      const isActive = this._elemIsActive(child);
6717
6718      const outerElem = this._getOuterElement(child);
6719
6720      child.setAttribute('aria-selected', isActive);
6721
6722      if (outerElem !== child) {
6723        this._setAttributeIfNotExists(outerElem, 'role', 'presentation');
6724      }
6725
6726      if (!isActive) {
6727        child.setAttribute('tabindex', '-1');
6728      }
6729
6730      this._setAttributeIfNotExists(child, 'role', 'tab'); // set attributes to the related panel too
6731
6732
6733      this._setInitialAttributesOnTargetPanel(child);
6734    }
6735
6736    _setInitialAttributesOnTargetPanel(child) {
6737      const target = getElementFromSelector(child);
6738
6739      if (!target) {
6740        return;
6741      }
6742
6743      this._setAttributeIfNotExists(target, 'role', 'tabpanel');
6744
6745      if (child.id) {
6746        this._setAttributeIfNotExists(target, 'aria-labelledby', `#${child.id}`);
6747      }
6748    }
6749
vendor: 7,109 bytes, lines 6750-7038
6750    _toggleDropDown(element, open) {
6751      const outerElem = this._getOuterElement(element);
6752
6753      if (!outerElem.classList.contains(CLASS_DROPDOWN)) {
6754        return;
6755      }
6756
6757      const toggle = (selector, className) => {
6758        const element = SelectorEngine.findOne(selector, outerElem);
6759
6760        if (element) {
6761          element.classList.toggle(className, open);
6762        }
6763      };
6764
6765      toggle(SELECTOR_DROPDOWN_TOGGLE, CLASS_NAME_ACTIVE);
6766      toggle(SELECTOR_DROPDOWN_MENU, CLASS_NAME_SHOW$1);
6767      outerElem.setAttribute('aria-expanded', open);
6768    }
6769
6770    _setAttributeIfNotExists(element, attribute, value) {
6771      if (!element.hasAttribute(attribute)) {
6772        element.setAttribute(attribute, value);
6773      }
6774    }
6775
6776    _elemIsActive(elem) {
6777      return elem.classList.contains(CLASS_NAME_ACTIVE);
6778    } // Try to get the inner element (usually the .nav-link)
6779
6780
6781    _getInnerElement(elem) {
6782      return elem.matches(SELECTOR_INNER_ELEM) ? elem : SelectorEngine.findOne(SELECTOR_INNER_ELEM, elem);
6783    } // Try to get the outer element (usually the .nav-item)
6784
6785
6786    _getOuterElement(elem) {
6787      return elem.closest(SELECTOR_OUTER) || elem;
6788    } // Static
6789
6790
6791    static jQueryInterface(config) {
6792      return this.each(function () {
6793        const data = Tab.getOrCreateInstance(this);
6794
6795        if (typeof config !== 'string') {
6796          return;
6797        }
6798
6799        if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {
6800          throw new TypeError(`No method named "${config}"`);
6801        }
6802
6803        data[config]();
6804      });
6805    }
6806
6807  }
6808  /**
6809   * Data API implementation
6810   */
6811
6812
6813  EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
6814    if (['A', 'AREA'].includes(this.tagName)) {
6815      event.preventDefault();
6816    }
6817
6818    if (isDisabled(this)) {
6819      return;
6820    }
6821
6822    Tab.getOrCreateInstance(this).show();
6823  });
6824  /**
6825   * Initialize on focus
6826   */
6827
6828  EventHandler.on(window, EVENT_LOAD_DATA_API, () => {
6829    for (const element of SelectorEngine.find(SELECTOR_DATA_TOGGLE_ACTIVE)) {
6830      Tab.getOrCreateInstance(element);
6831    }
6832  });
6833  /**
6834   * jQuery
6835   */
6836
6837  defineJQueryPlugin(Tab);
6838
6839  /**
6840   * --------------------------------------------------------------------------
6841   * Bootstrap (v5.2.2): toast.js
6842   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6843   * --------------------------------------------------------------------------
6844   */
6845  /**
6846   * Constants
6847   */
6848
6849  const NAME = 'toast';
6850  const DATA_KEY = 'bs.toast';
6851  const EVENT_KEY = `.${DATA_KEY}`;
6852  const EVENT_MOUSEOVER = `mouseover${EVENT_KEY}`;
6853  const EVENT_MOUSEOUT = `mouseout${EVENT_KEY}`;
6854  const EVENT_FOCUSIN = `focusin${EVENT_KEY}`;
6855  const EVENT_FOCUSOUT = `focusout${EVENT_KEY}`;
6856  const EVENT_HIDE = `hide${EVENT_KEY}`;
6857  const EVENT_HIDDEN = `hidden${EVENT_KEY}`;
6858  const EVENT_SHOW = `show${EVENT_KEY}`;
6859  const EVENT_SHOWN = `shown${EVENT_KEY}`;
6860  const CLASS_NAME_FADE = 'fade';
6861  const CLASS_NAME_HIDE = 'hide'; // @deprecated - kept here only for backwards compatibility
6862
6863  const CLASS_NAME_SHOW = 'show';
6864  const CLASS_NAME_SHOWING = 'showing';
6865  const DefaultType = {
6866    animation: 'boolean',
6867    autohide: 'boolean',
6868    delay: 'number'
6869  };
6870  const Default = {
6871    animation: true,
6872    autohide: true,
6873    delay: 5000
6874  };
6875  /**
6876   * Class definition
6877   */
6878
6879  class Toast extends BaseComponent {
6880    constructor(element, config) {
6881      super(element, config);
6882      this._timeout = null;
6883      this._hasMouseInteraction = false;
6884      this._hasKeyboardInteraction = false;
6885
6886      this._setListeners();
6887    } // Getters
6888
6889
6890    static get Default() {
6891      return Default;
6892    }
6893
6894    static get DefaultType() {
6895      return DefaultType;
6896    }
6897
6898    static get NAME() {
6899      return NAME;
6900    } // Public
6901
6902
6903    show() {
6904      const showEvent = EventHandler.trigger(this._element, EVENT_SHOW);
6905
6906      if (showEvent.defaultPrevented) {
6907        return;
6908      }
6909
6910      this._clearTimeout();
6911
6912      if (this._config.animation) {
6913        this._element.classList.add(CLASS_NAME_FADE);
6914      }
6915
6916      const complete = () => {
6917        this._element.classList.remove(CLASS_NAME_SHOWING);
6918
6919        EventHandler.trigger(this._element, EVENT_SHOWN);
6920
6921        this._maybeScheduleHide();
6922      };
6923
6924      this._element.classList.remove(CLASS_NAME_HIDE); // @deprecated
6925
6926
6927      reflow(this._element);
6928
6929      this._element.classList.add(CLASS_NAME_SHOW, CLASS_NAME_SHOWING);
6930
6931      this._queueCallback(complete, this._element, this._config.animation);
6932    }
6933
6934    hide() {
6935      if (!this.isShown()) {
6936        return;
6937      }
6938
6939      const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE);
6940
6941      if (hideEvent.defaultPrevented) {
6942        return;
6943      }
6944
6945      const complete = () => {
6946        this._element.classList.add(CLASS_NAME_HIDE); // @deprecated
6947
6948
6949        this._element.classList.remove(CLASS_NAME_SHOWING, CLASS_NAME_SHOW);
6950
6951        EventHandler.trigger(this._element, EVENT_HIDDEN);
6952      };
6953
6954      this._element.classList.add(CLASS_NAME_SHOWING);
6955
6956      this._queueCallback(complete, this._element, this._config.animation);
6957    }
6958
6959    dispose() {
6960      this._clearTimeout();
6961
6962      if (this.isShown()) {
6963        this._element.classList.remove(CLASS_NAME_SHOW);
6964      }
6965
6966      super.dispose();
6967    }
6968
6969    isShown() {
6970      return this._element.classList.contains(CLASS_NAME_SHOW);
6971    } // Private
6972
6973
6974    _maybeScheduleHide() {
6975      if (!this._config.autohide) {
6976        return;
6977      }
6978
6979      if (this._hasMouseInteraction || this._hasKeyboardInteraction) {
6980        return;
6981      }
6982
6983      this._timeout = setTimeout(() => {
6984        this.hide();
6985      }, this._config.delay);
6986    }
6987
6988    _onInteraction(event, isInteracting) {
6989      switch (event.type) {
6990        case 'mouseover':
6991        case 'mouseout':
6992          {
6993            this._hasMouseInteraction = isInteracting;
6994            break;
6995          }
6996
6997        case 'focusin':
6998        case 'focusout':
6999          {
7000            this._hasKeyboardInteraction = isInteracting;
7001            break;
7002          }
7003      }
7004
7005      if (isInteracting) {
7006        this._clearTimeout();
7007
7008        return;
7009      }
7010
7011      const nextElement = event.relatedTarget;
7012
7013      if (this._element === nextElement || this._element.contains(nextElement)) {
7014        return;
7015      }
7016
7017      this._maybeScheduleHide();
7018    }
7019
7020    _setListeners() {
7021      EventHandler.on(this._element, EVENT_MOUSEOVER, event => this._onInteraction(event, true));
7022      EventHandler.on(this._element, EVENT_MOUSEOUT, event => this._onInteraction(event, false));
7023      EventHandler.on(this._element, EVENT_FOCUSIN, event => this._onInteraction(event, true));
7024      EventHandler.on(this._element, EVENT_FOCUSOUT, event => this._onInteraction(event, false));
7025    }
7026
7027    _clearTimeout() {
7028      clearTimeout(this._timeout);
7029      this._timeout = null;
7030    } // Static
7031
7032
7033    static jQueryInterface(config) {
7034      return this.each(function () {
7035        const data = Toast.getOrCreateInstance(this, config);
7036
7037        if (typeof config === 'string') {
7038          if (typeof data[config] === 'undefined') {
vendor: 8,666 bytes, lines 7039-7092
7039            throw new TypeError(`No method named "${config}"`);
7040          }
7041
7042          data[config](this);
7043        }
7044      });
7045    }
7046
7047  }
7048  /**
7049   * Data API implementation
7050   */
7051
7052
7053  enableDismissTrigger(Toast);
7054  /**
7055   * jQuery
7056   */
7057
7058  defineJQueryPlugin(Toast);
7059
7060  /**
7061   * --------------------------------------------------------------------------
7062   * Bootstrap (v5.2.2): index.umd.js
7063   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
7064   * --------------------------------------------------------------------------
7065   */
7066  const index_umd = {
7067    Alert,
7068    Button,
7069    Carousel,
7070    Collapse,
7071    Dropdown,
7072    Modal,
7073    Offcanvas,
7074    Popover,
7075    ScrollSpy,
7076    Tab,
7077    Toast,
7078    Tooltip
7079  };
7080
7081  return index_umd;
7082
7083}));
7084//# sourceMappingURL=bootstrap.bundle.js.map
7085
7086/*!
7087 * clipboard.js v2.0.8
7088 * https://clipboardjs.com/
7089 *
7090 * Licensed MIT © Zeno Rocha
7091 */
7092!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ClipboardJS=e():t.ClipboardJS=e()}(this,function(){return n={686:function(t,e,n){"use strict";n.d(e,{default:function(){return o}});var e=n(279),i=n.n(e),e=n(370),u=n.n(e),e=n(817),c=n.n(e);function a(t){try{return document.execCommand(t)}catch(t){return}}var f=function(t){t=c()(t);return a("cut"),t};var l=function(t){var e,n,o,r=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{container:document.body},i="";return"string"==typeof t?(e=t,n="rtl"===document.documentElement.getAttribute("dir"),(o=document.createElement("textarea")).style.fontSize="12pt",o.style.border="0",o.style.padding="0",o.style.margin="0",o.style.position="absolute",o.style[n?"right":"left"]="-9999px",n=window.pageYOffset||document.documentElement.scrollTop,o.style.top="".concat(n,"px"),o.setAttribute("readonly",""),o.value=e,o=o,r.container.appendChild(o),i=c()(o),a("copy"),o.remove()):(i=c()(t),a("copy")),i};function r(t){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var s=function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},e=t.action,n=void 0===e?"copy":e,o=t.container,e=t.target,t=t.text;if("copy"!==n&&"cut"!==n)throw new Error('Invalid "action" value, use either "copy" or "cut"');if(void 0!==e){if(!e||"object"!==r(e)||1!==e.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===n&&e.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===n&&(e.hasAttribute("readonly")||e.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes')}return t?l(t,{container:o}):e?"cut"===n?f(e):l(e,{container:o}):void 0};function d(t){return(d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function p(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}function y(t,e){return(y=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function h(n){var o=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(t){return!1}}();return function(){var t,e=m(n);return t=o?(t=m(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments),e=this,!(t=t)||"object"!==d(t)&&"function"!=typeof t?function(t){if(void 0!==t)return t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(e):t}}function m(t){return(m=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function v(t,e){t="data-clipboard-".concat(t);if(e.hasAttribute(t))return e.getAttribute(t)}var o=function(){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&y(t,e)}(r,i());var t,e,n,o=h(r);function r(t,e){var n;return function(t){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this),(n=o.call(this)).resolveOptions(e),n.listenClick(t),n}return t=r,n=[{key:"copy",value:function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{container:document.body};return l(t,e)}},{key:"cut",value:function(t){return f(t)}},{key:"isSupported",value:function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:["copy","cut"],t="string"==typeof t?[t]:t,e=!!document.queryCommandSupported;return t.forEach(function(t){e=e&&!!document.queryCommandSupported(t)}),e}}],(e=[{key:"resolveOptions",value:function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof t.action?t.action:this.defaultAction,this.target="function"==typeof t.target?t.target:this.defaultTarget,this.text="function"==typeof t.text?t.text:this.defaultText,this.container="object"===d(t.container)?t.container:document.body}},{key:"listenClick",value:function(t){var e=this;this.listener=u()(t,"click",function(t){return e.onClick(t)})}},{key:"onClick",value:function(t){var e=t.delegateTarget||t.currentTarget,t=s({action:this.action(e),container:this.container,target:this.target(e),text:this.text(e)});this.emit(t?"success":"error",{action:this.action,text:t,trigger:e,clearSelection:function(){e&&e.focus(),document.activeElement.blur(),window.getSelection().removeAllRanges()}})}},{key:"defaultAction",value:function(t){return v("action",t)}},{key:"defaultTarget",value:function(t){t=v("target",t);if(t)return document.querySelector(t)}},{key:"defaultText",value:function(t){return v("text",t)}},{key:"destroy",value:function(){this.listener.destroy()}}])&&p(t.prototype,e),n&&p(t,n),r}()},828:function(t){var e;"undefined"==typeof Element||Element.prototype.matches||((e=Element.prototype).matches=e.matchesSelector||e.mozMatchesSelector||e.msMatchesSelector||e.oMatchesSelector||e.webkitMatchesSelector),t.exports=function(t,e){for(;t&&9!==t.nodeType;){if("function"==typeof t.matches&&t.matches(e))return t;t=t.parentNode}}},438:function(t,e,n){var u=n(828);function i(t,e,n,o,r){var i=function(e,n,t,o){return function(t){t.delegateTarget=u(t.target,n),t.delegateTarget&&o.call(e,t)}}.apply(this,arguments);return t.addEventListener(n,i,r),{destroy:function(){t.removeEventListener(n,i,r)}}}t.exports=function(t,e,n,o,r){return"function"==typeof t.addEventListener?i.apply(null,arguments):"function"==typeof n?i.bind(null,document).apply(null,arguments):("string"==typeof t&&(t=document.querySelectorAll(t)),Array.prototype.map.call(t,function(t){return i(t,e,n,o,r)}))}},879:function(t,n){n.node=function(t){return void 0!==t&&t instanceof HTMLElement&&1===t.nodeType},n.nodeList=function(t){var e=Object.prototype.toString.call(t);return void 0!==t&&("[object NodeList]"===e||"[object HTMLCollection]"===e)&&"length"in t&&(0===t.length||n.node(t[0]))},n.string=function(t){return"string"==typeof t||t instanceof String},n.fn=function(t){return"[object Function]"===Object.prototype.toString.call(t)}},370:function(t,e,n){var f=n(879),l=n(438);t.exports=function(t,e,n){if(!t&&!e&&!n)throw new Error("Missing required arguments");if(!f.string(e))throw new TypeError("Second argument must be a String");if(!f.fn(n))throw new TypeError("Third argument must be a Function");if(f.node(t))return c=e,a=n,(u=t).addEventListener(c,a),{destroy:function(){u.removeEventListener(c,a)}};if(f.nodeList(t))return o=t,r=e,i=n,Array.prototype.forEach.call(o,function(t){t.addEventListener(r,i)}),{destroy:function(){Array.prototype.forEach.call(o,function(t){t.removeEventListener(r,i)})}};if(f.string(t))return t=t,e=e,n=n,l(document.body,t,e,n);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList");var o,r,i,u,c,a}},817:function(t){t.exports=function(t){var e,n="SELECT"===t.nodeName?(t.focus(),t.value):"INPUT"===t.nodeName||"TEXTAREA"===t.nodeName?((e=t.hasAttribute("readonly"))||t.setAttribute("readonly",""),t.select(),t.setSelectionRange(0,t.value.length),e||t.removeAttribute("readonly"),t.value):(t.hasAttribute("contenteditable")&&t.focu
7092s(),n=window.getSelection(),(e=document.createRange()).selectNodeContents(t),n.removeAllRanges(),n.addRange(e),n.toString());return n}},279:function(t){function e(){}e.prototype={on:function(t,e,n){var o=this.e||(this.e={});return(o[t]||(o[t]=[])).push({fn:e,ctx:n}),this},once:function(t,e,n){var o=this;function r(){o.off(t,r),e.apply(n,arguments)}return r._=e,this.on(t,r,n)},emit:function(t){for(var e=[].slice.call(arguments,1),n=((this.e||(this.e={}))[t]||[]).slice(),o=0,r=n.length;o<r;o++)n[o].fn.apply(n[o].ctx,e);return this},off:function(t,e){var n=this.e||(this.e={}),o=n[t],r=[];if(o&&e)for(var i=0,u=o.length;i<u;i++)o[i].fn!==e&&o[i].fn._!==e&&r.push(o[i]);return r.length?n[t]=r:delete n[t],this}},t.exports=e,t.exports.TinyEmitter=e}},r={},o.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return o.d(e,{a:e}),e},o.d=function(t,e){for(var n in e)o.o(e,n)&&!o.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},o.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},o(686).default;function o(t){if(r[t])return r[t].exports;var e=r[t]={exports:{}};return n[t](e,e.exports,o),e.exports}var n,r});
7093/*!
7094 * Counter-Up2 v2.0.2
7095 * https://github.com/bfintal/Counter-Up2
7096 */
7097!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.counterUp=t():e.counterUp=t()}(self,(function(){return(()=>{"use strict";var e={d:(t,n)=>{for(var o in n)e.o(n,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:n[o]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{default:()=>n,divideNumbers:()=>r});const n=(e,t={})=>{const{action:n="start",duration:i=1e3,delay:u=16}=t;if("stop"===n)return void o(e);if(o(e),!/[0-9]/.test(e.innerHTML))return;const l=r(e.innerHTML,{duration:i||e.getAttribute("data-duration"),delay:u||e.getAttribute("data-delay")});e._countUpOrigInnerHTML=e.innerHTML,e.innerHTML=l[0]||"&nbsp;",e.style.visibility="visible";const c=function(){e.innerHTML=l.shift()||"&nbsp;",l.length?(clearTimeout(e.countUpTimeout),e.countUpTimeout=setTimeout(c,u)):e._countUpOrigInnerHTML=void 0};e.countUpTimeout=setTimeout(c,u)},o=e=>{clearTimeout(e.countUpTimeout),e._countUpOrigInnerHTML&&(e.innerHTML=e._countUpOrigInnerHTML,e._countUpOrigInnerHTML=void 0),e.style.visibility=""},r=(e,t={})=>{const{duration:n=1e3,delay:o=16}=t,r=n/o,i=e.toString().split(/(<[^>]+>|[0-9.][,.0-9]*[0-9]*)/),u=[];for(let e=0;e<r;e++)u.push("");for(let e=0;e<i.length;e++)if(/([0-9.][,.0-9]*[0-9]*)/.test(i[e])&&!/<[^>]+>/.test(i[e])){let t=i[e];const n=[...t.matchAll(/[.,]/g)].map((e=>({char:e[0],i:t.length-e.index-1}))).sort(((e,t)=>e.i-t.i));t=t.replace(/[.,]/g,"");let o=u.length-1;for(let e=r;e>=1;e--){let i=parseInt(t/r*e,10);i=n.reduce(((e,{char:t,i:n})=>e.length<=n?e:e.slice(0,-n)+t+e.slice(-n)),i.toString()),u[o--]+=i}}else for(let t=0;t<r;t++)u[t]+=i[e];return u[u.length]=e.toString(),u};return t})()}));
7098/*!
7099 * GLightbox v3.2.0
7100 * https://github.com/biati-digital/glightbox
7101 */
7102(function (global, factory) {
7103  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
7104  typeof define === 'function' && define.amd ? define(factory) :
7105  (global = global || self, global.GLightbox = factory());
7106}(this, (function () { 'use strict';
7107
7108  function _typeof(obj) {
7109    "@babel/helpers - typeof";
7110
7111    if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
7112      _typeof = function (obj) {
7113        return typeof obj;
7114      };
7115    } else {
7116      _typeof = function (obj) {
7117        return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
7118      };
7119    }
7120
7121    return _typeof(obj);
7122  }
7123
7124  function _classCallCheck(instance, Constructor) {
7125    if (!(instance instanceof Constructor)) {
7126      throw new TypeError("Cannot call a class as a function");
7127    }
7128  }
7129
7130  function _defineProperties(target, props) {
7131    for (var i = 0; i < props.length; i++) {
7132      var descriptor = props[i];
7133      descriptor.enumerable = descriptor.enumerable || false;
7134      descriptor.configurable = true;
7135      if ("value" in descriptor) descriptor.writable = true;
7136      Object.defineProperty(target, descriptor.key, descriptor);
7137    }
7138  }
7139
7140  function _createClass(Constructor, protoProps, staticProps) {
7141    if (protoProps) _defineProperties(Constructor.prototype, protoProps);
7142    if (staticProps) _defineProperties(Constructor, staticProps);
7143    return Constructor;
7144  }
7145
7146  var uid = Date.now();
7147  function extend() {
7148    var extended = {};
7149    var deep = true;
7150    var i = 0;
7151    var length = arguments.length;
7152
7153    if (Object.prototype.toString.call(arguments[0]) === '[object Boolean]') {
7154      deep = arguments[0];
7155      i++;
7156    }
7157
7158    var merge = function merge(obj) {
7159      for (var prop in obj) {
7160        if (Object.prototype.hasOwnProperty.call(obj, prop)) {
7161          if (deep && Object.prototype.toString.call(obj[prop]) === '[object Object]') {
7162            extended[prop] = extend(true, extended[prop], obj[prop]);
7163          } else {
7164            extended[prop] = obj[prop];
7165          }
7166        }
7167      }
7168    };
7169
7170    for (; i < length; i++) {
7171      var obj = arguments[i];
7172      merge(obj);
7173    }
7174
7175    return extended;
7176  }
7177  function each(collection, callback) {
7178    if (isNode(collection) || collection === window || collection === document) {
7179      collection = [collection];
7180    }
7181
7182    if (!isArrayLike(collection) && !isObject(collection)) {
7183      collection = [collection];
7184    }
7185
7186    if (size(collection) == 0) {
7187      return;
7188    }
7189
7190    if (isArrayLike(collection) && !isObject(collection)) {
7191      var l = collection.length,
7192          i = 0;
7193
7194      for (; i < l; i++) {
7195        if (callback.call(collection[i], collection[i], i, collection) === false) {
7196          break;
7197        }
7198      }
7199    } else if (isObject(collection)) {
7200      for (var key in collection) {
7201        if (has(collection, key)) {
7202          if (callback.call(collection[key], collection[key], key, collection) === false) {
7203            break;
7204          }
7205        }
7206      }
7207    }
7208  }
7209  function getNodeEvents(node) {
7210    var name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
7211    var fn = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
7212    var cache = node[uid] = node[uid] || [];
7213    var data = {
7214      all: cache,
7215      evt: null,
7216      found: null
7217    };
7218
7219    if (name && fn && size(cache) > 0) {
7220      each(cache, function (cl, i) {
7221        if (cl.eventName == name && cl.fn.toString() == fn.toString()) {
7222          data.found = true;
7223          data.evt = i;
7224          return false;
vendor: 105,381 bytes, lines 7225-10735
7225        }
7226      });
7227    }
7228
7229    return data;
7230  }
7231  function addEvent(eventName) {
7232    var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
7233        onElement = _ref.onElement,
7234        withCallback = _ref.withCallback,
7235        _ref$avoidDuplicate = _ref.avoidDuplicate,
7236        avoidDuplicate = _ref$avoidDuplicate === void 0 ? true : _ref$avoidDuplicate,
7237        _ref$once = _ref.once,
7238        once = _ref$once === void 0 ? false : _ref$once,
7239        _ref$useCapture = _ref.useCapture,
7240        useCapture = _ref$useCapture === void 0 ? false : _ref$useCapture;
7241
7242    var thisArg = arguments.length > 2 ? arguments[2] : undefined;
7243    var element = onElement || [];
7244
7245    if (isString(element)) {
7246      element = document.querySelectorAll(element);
7247    }
7248
7249    function handler(event) {
7250      if (isFunction(withCallback)) {
7251        withCallback.call(thisArg, event, this);
7252      }
7253
7254      if (once) {
7255        handler.destroy();
7256      }
7257    }
7258
7259    handler.destroy = function () {
7260      each(element, function (el) {
7261        var events = getNodeEvents(el, eventName, handler);
7262
7263        if (events.found) {
7264          events.all.splice(events.evt, 1);
7265        }
7266
7267        if (el.removeEventListener) {
7268          el.removeEventListener(eventName, handler, useCapture);
7269        }
7270      });
7271    };
7272
7273    each(element, function (el) {
7274      var events = getNodeEvents(el, eventName, handler);
7275
7276      if (el.addEventListener && avoidDuplicate && !events.found || !avoidDuplicate) {
7277        el.addEventListener(eventName, handler, useCapture);
7278        events.all.push({
7279          eventName: eventName,
7280          fn: handler
7281        });
7282      }
7283    });
7284    return handler;
7285  }
7286  function addClass(node, name) {
7287    each(name.split(' '), function (cl) {
7288      return node.classList.add(cl);
7289    });
7290  }
7291  function removeClass(node, name) {
7292    each(name.split(' '), function (cl) {
7293      return node.classList.remove(cl);
7294    });
7295  }
7296  function hasClass(node, name) {
7297    return node.classList.contains(name);
7298  }
7299  function closest(elem, selector) {
7300    while (elem !== document.body) {
7301      elem = elem.parentElement;
7302
7303      if (!elem) {
7304        return false;
7305      }
7306
7307      var matches = typeof elem.matches == 'function' ? elem.matches(selector) : elem.msMatchesSelector(selector);
7308
7309      if (matches) {
7310        return elem;
7311      }
7312    }
7313  }
7314  function animateElement(element) {
7315    var animation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
7316    var callback = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
7317
7318    if (!element || animation === '') {
7319      return false;
7320    }
7321
7322    if (animation === 'none') {
7323      if (isFunction(callback)) {
7324        callback();
7325      }
7326
7327      return false;
7328    }
7329
7330    var animationEnd = whichAnimationEvent();
7331    var animationNames = animation.split(' ');
7332    each(animationNames, function (name) {
7333      addClass(element, 'g' + name);
7334    });
7335    addEvent(animationEnd, {
7336      onElement: element,
7337      avoidDuplicate: false,
7338      once: true,
7339      withCallback: function withCallback(event, target) {
7340        each(animationNames, function (name) {
7341          removeClass(target, 'g' + name);
7342        });
7343
7344        if (isFunction(callback)) {
7345          callback();
7346        }
7347      }
7348    });
7349  }
7350  function cssTransform(node) {
7351    var translate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
7352
7353    if (translate === '') {
7354      node.style.webkitTransform = '';
7355      node.style.MozTransform = '';
7356      node.style.msTransform = '';
7357      node.style.OTransform = '';
7358      node.style.transform = '';
7359      return false;
7360    }
7361
7362    node.style.webkitTransform = translate;
7363    node.style.MozTransform = translate;
7364    node.style.msTransform = translate;
7365    node.style.OTransform = translate;
7366    node.style.transform = translate;
7367  }
7368  function show(element) {
7369    element.style.display = 'block';
7370  }
7371  function hide(element) {
7372    element.style.display = 'none';
7373  }
7374  function createHTML(htmlStr) {
7375    var frag = document.createDocumentFragment(),
7376        temp = document.createElement('div');
7377    temp.innerHTML = htmlStr;
7378
7379    while (temp.firstChild) {
7380      frag.appendChild(temp.firstChild);
7381    }
7382
7383    return frag;
7384  }
7385  function windowSize() {
7386    return {
7387      width: window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth,
7388      height: window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight
7389    };
7390  }
7391  function whichAnimationEvent() {
7392    var t,
7393        el = document.createElement('fakeelement');
7394    var animations = {
7395      animation: 'animationend',
7396      OAnimation: 'oAnimationEnd',
7397      MozAnimation: 'animationend',
7398      WebkitAnimation: 'webkitAnimationEnd'
7399    };
7400
7401    for (t in animations) {
7402      if (el.style[t] !== undefined) {
7403        return animations[t];
7404      }
7405    }
7406  }
7407  function whichTransitionEvent() {
7408    var t,
7409        el = document.createElement('fakeelement');
7410    var transitions = {
7411      transition: 'transitionend',
7412      OTransition: 'oTransitionEnd',
7413      MozTransition: 'transitionend',
7414      WebkitTransition: 'webkitTransitionEnd'
7415    };
7416
7417    for (t in transitions) {
7418      if (el.style[t] !== undefined) {
7419        return transitions[t];
7420      }
7421    }
7422  }
7423  function createIframe(config) {
7424    var url = config.url,
7425        allow = config.allow,
7426        callback = config.callback,
7427        appendTo = config.appendTo;
7428    var iframe = document.createElement('iframe');
7429    iframe.className = 'vimeo-video gvideo';
7430    iframe.src = url;
7431    iframe.style.width = '100%';
7432    iframe.style.height = '100%';
7433
7434    if (allow) {
7435      iframe.setAttribute('allow', allow);
7436    }
7437
7438    iframe.onload = function () {
7439      iframe.onload = null;
7440      addClass(iframe, 'node-ready');
7441
7442      if (isFunction(callback)) {
7443        callback();
7444      }
7445    };
7446
7447    if (appendTo) {
7448      appendTo.appendChild(iframe);
7449    }
7450
7451    return iframe;
7452  }
7453  function waitUntil(check, onComplete, delay, timeout) {
7454    if (check()) {
7455      onComplete();
7456      return;
7457    }
7458
7459    if (!delay) {
7460      delay = 100;
7461    }
7462
7463    var timeoutPointer;
7464    var intervalPointer = setInterval(function () {
7465      if (!check()) {
7466        return;
7467      }
7468
7469      clearInterval(intervalPointer);
7470
7471      if (timeoutPointer) {
7472        clearTimeout(timeoutPointer);
7473      }
7474
7475      onComplete();
7476    }, delay);
7477
7478    if (timeout) {
7479      timeoutPointer = setTimeout(function () {
7480        clearInterval(intervalPointer);
7481      }, timeout);
7482    }
7483  }
7484  function injectAssets(url, waitFor, callback) {
7485    if (isNil(url)) {
7486      console.error('Inject assets error');
7487      return;
7488    }
7489
7490    if (isFunction(waitFor)) {
7491      callback = waitFor;
7492      waitFor = false;
7493    }
7494
7495    if (isString(waitFor) && waitFor in window) {
7496      if (isFunction(callback)) {
7497        callback();
7498      }
7499
7500      return;
7501    }
7502
7503    var found;
7504
7505    if (url.indexOf('.css') !== -1) {
7506      found = document.querySelectorAll('link[href="' + url + '"]');
7507
7508      if (found && found.length > 0) {
7509        if (isFunction(callback)) {
7510          callback();
7511        }
7512
7513        return;
7514      }
7515
7516      var head = document.getElementsByTagName('head')[0];
7517      var headStyles = head.querySelectorAll('link[rel="stylesheet"]');
7518      var link = document.createElement('link');
7519      link.rel = 'stylesheet';
7520      link.type = 'text/css';
7521      link.href = url;
7522      link.media = 'all';
7523
7524      if (headStyles) {
7525        head.insertBefore(link, headStyles[0]);
7526      } else {
7527        head.appendChild(link);
7528      }
7529
7530      if (isFunction(callback)) {
7531        callback();
7532      }
7533
7534      return;
7535    }
7536
7537    found = document.querySelectorAll('script[src="' + url + '"]');
7538
7539    if (found && found.length > 0) {
7540      if (isFunction(callback)) {
7541        if (isString(waitFor)) {
7542          waitUntil(function () {
7543            return typeof window[waitFor] !== 'undefined';
7544          }, function () {
7545            callback();
7546          });
7547          return false;
7548        }
7549
7550        callback();
7551      }
7552
7553      return;
7554    }
7555
7556    var script = document.createElement('script');
7557    script.type = 'text/javascript';
7558    script.src = url;
7559
7560    script.onload = function () {
7561      if (isFunction(callback)) {
7562        if (isString(waitFor)) {
7563          waitUntil(function () {
7564            return typeof window[waitFor] !== 'undefined';
7565          }, function () {
7566            callback();
7567          });
7568          return false;
7569        }
7570
7571        callback();
7572      }
7573    };
7574
7575    document.body.appendChild(script);
7576  }
7577  function isMobile() {
7578    return 'navigator' in window && window.navigator.userAgent.match(/(iPad)|(iPhone)|(iPod)|(Android)|(PlayBook)|(BB10)|(BlackBerry)|(Opera Mini)|(IEMobile)|(webOS)|(MeeGo)/i);
7579  }
7580  function isTouch() {
7581    return isMobile() !== null || document.createTouch !== undefined || 'ontouchstart' in window || 'onmsgesturechange' in window || navigator.msMaxTouchPoints;
7582  }
7583  function isFunction(f) {
7584    return typeof f === 'function';
7585  }
7586  function isString(s) {
7587    return typeof s === 'string';
7588  }
7589  function isNode(el) {
7590    return !!(el && el.nodeType && el.nodeType == 1);
7591  }
7592  function isArray(ar) {
7593    return Array.isArray(ar);
7594  }
7595  function isArrayLike(ar) {
7596    return ar && ar.length && isFinite(ar.length);
7597  }
7598  function isObject(o) {
7599    var type = _typeof(o);
7600
7601    return type === 'object' && o != null && !isFunction(o) && !isArray(o);
7602  }
7603  function isNil(o) {
7604    return o == null;
7605  }
7606  function has(obj, key) {
7607    return obj !== null && hasOwnProperty.call(obj, key);
7608  }
7609  function size(o) {
7610    if (isObject(o)) {
7611      if (o.keys) {
7612        return o.keys().length;
7613      }
7614
7615      var l = 0;
7616
7617      for (var k in o) {
7618        if (has(o, k)) {
7619          l++;
7620        }
7621      }
7622
7623      return l;
7624    } else {
7625      return o.length;
7626    }
7627  }
7628  function isNumber(n) {
7629    return !isNaN(parseFloat(n)) && isFinite(n);
7630  }
7631
7632  function getNextFocusElement() {
7633    var current = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : -1;
7634    var btns = document.querySelectorAll('.gbtn[data-taborder]:not(.disabled)');
7635
7636    if (!btns.length) {
7637      return false;
7638    }
7639
7640    if (btns.length == 1) {
7641      return btns[0];
7642    }
7643
7644    if (typeof current == 'string') {
7645      current = parseInt(current);
7646    }
7647
7648    var orders = [];
7649    each(btns, function (btn) {
7650      orders.push(btn.getAttribute('data-taborder'));
7651    });
7652    var highestOrder = Math.max.apply(Math, orders.map(function (order) {
7653      return parseInt(order);
7654    }));
7655    var newIndex = current < 0 ? 1 : current + 1;
7656
7657    if (newIndex > highestOrder) {
7658      newIndex = '1';
7659    }
7660
7661    var nextOrders = orders.filter(function (el) {
7662      return el >= parseInt(newIndex);
7663    });
7664    var nextFocus = nextOrders.sort()[0];
7665    return document.querySelector(".gbtn[data-taborder=\"".concat(nextFocus, "\"]"));
7666  }
7667
7668  function keyboardNavigation(instance) {
7669    if (instance.events.hasOwnProperty('keyboard')) {
7670      return false;
7671    }
7672
7673    instance.events['keyboard'] = addEvent('keydown', {
7674      onElement: window,
7675      withCallback: function withCallback(event, target) {
7676        event = event || window.event;
7677        var key = event.keyCode;
7678
7679        if (key == 9) {
7680          var focusedButton = document.querySelector('.gbtn.focused');
7681
7682          if (!focusedButton) {
7683            var activeElement = document.activeElement && document.activeElement.nodeName ? document.activeElement.nodeName.toLocaleLowerCase() : false;
7684
7685            if (activeElement == 'input' || activeElement == 'textarea' || activeElement == 'button') {
7686              return;
7687            }
7688          }
7689
7690          event.preventDefault();
7691          var btns = document.querySelectorAll('.gbtn[data-taborder]');
7692
7693          if (!btns || btns.length <= 0) {
7694            return;
7695          }
7696
7697          if (!focusedButton) {
7698            var first = getNextFocusElement();
7699
7700            if (first) {
7701              first.focus();
7702              addClass(first, 'focused');
7703            }
7704
7705            return;
7706          }
7707
7708          var currentFocusOrder = focusedButton.getAttribute('data-taborder');
7709          var nextFocus = getNextFocusElement(currentFocusOrder);
7710          removeClass(focusedButton, 'focused');
7711
7712          if (nextFocus) {
7713            nextFocus.focus();
7714            addClass(nextFocus, 'focused');
7715          }
7716        }
7717
7718        if (key == 39) {
7719          instance.nextSlide();
7720        }
7721
7722        if (key == 37) {
7723          instance.prevSlide();
7724        }
7725
7726        if (key == 27) {
7727          instance.close();
7728        }
7729      }
7730    });
7731  }
7732
7733  function getLen(v) {
7734    return Math.sqrt(v.x * v.x + v.y * v.y);
7735  }
7736
7737  function dot(v1, v2) {
7738    return v1.x * v2.x + v1.y * v2.y;
7739  }
7740
7741  function getAngle(v1, v2) {
7742    var mr = getLen(v1) * getLen(v2);
7743
7744    if (mr === 0) {
7745      return 0;
7746    }
7747
7748    var r = dot(v1, v2) / mr;
7749
7750    if (r > 1) {
7751      r = 1;
7752    }
7753
7754    return Math.acos(r);
7755  }
7756
7757  function cross(v1, v2) {
7758    return v1.x * v2.y - v2.x * v1.y;
7759  }
7760
7761  function getRotateAngle(v1, v2) {
7762    var angle = getAngle(v1, v2);
7763
7764    if (cross(v1, v2) > 0) {
7765      angle *= -1;
7766    }
7767
7768    return angle * 180 / Math.PI;
7769  }
7770
7771  var EventsHandlerAdmin = function () {
7772    function EventsHandlerAdmin(el) {
7773      _classCallCheck(this, EventsHandlerAdmin);
7774
7775      this.handlers = [];
7776      this.el = el;
7777    }
7778
7779    _createClass(EventsHandlerAdmin, [{
7780      key: "add",
7781      value: function add(handler) {
7782        this.handlers.push(handler);
7783      }
7784    }, {
7785      key: "del",
7786      value: function del(handler) {
7787        if (!handler) {
7788          this.handlers = [];
7789        }
7790
7791        for (var i = this.handlers.length; i >= 0; i--) {
7792          if (this.handlers[i] === handler) {
7793            this.handlers.splice(i, 1);
7794          }
7795        }
7796      }
7797    }, {
7798      key: "dispatch",
7799      value: function dispatch() {
7800        for (var i = 0, len = this.handlers.length; i < len; i++) {
7801          var handler = this.handlers[i];
7802
7803          if (typeof handler === 'function') {
7804            handler.apply(this.el, arguments);
7805          }
7806        }
7807      }
7808    }]);
7809
7810    return EventsHandlerAdmin;
7811  }();
7812
7813  function wrapFunc(el, handler) {
7814    var EventshandlerAdmin = new EventsHandlerAdmin(el);
7815    EventshandlerAdmin.add(handler);
7816    return EventshandlerAdmin;
7817  }
7818
7819  var TouchEvents = function () {
7820    function TouchEvents(el, option) {
7821      _classCallCheck(this, TouchEvents);
7822
7823      this.element = typeof el == 'string' ? document.querySelector(el) : el;
7824      this.start = this.start.bind(this);
7825      this.move = this.move.bind(this);
7826      this.end = this.end.bind(this);
7827      this.cancel = this.cancel.bind(this);
7828      this.element.addEventListener('touchstart', this.start, false);
7829      this.element.addEventListener('touchmove', this.move, false);
7830      this.element.addEventListener('touchend', this.end, false);
7831      this.element.addEventListener('touchcancel', this.cancel, false);
7832      this.preV = {
7833        x: null,
7834        y: null
7835      };
7836      this.pinchStartLen = null;
7837      this.zoom = 1;
7838      this.isDoubleTap = false;
7839
7840      var noop = function noop() {};
7841
7842      this.rotate = wrapFunc(this.element, option.rotate || noop);
7843      this.touchStart = wrapFunc(this.element, option.touchStart || noop);
7844      this.multipointStart = wrapFunc(this.element, option.multipointStart || noop);
7845      this.multipointEnd = wrapFunc(this.element, option.multipointEnd || noop);
7846      this.pinch = wrapFunc(this.element, option.pinch || noop);
7847      this.swipe = wrapFunc(this.element, option.swipe || noop);
7848      this.tap = wrapFunc(this.element, option.tap || noop);
7849      this.doubleTap = wrapFunc(this.element, option.doubleTap || noop);
7850      this.longTap = wrapFunc(this.element, option.longTap || noop);
7851      this.singleTap = wrapFunc(this.element, option.singleTap || noop);
7852      this.pressMove = wrapFunc(this.element, option.pressMove || noop);
7853      this.twoFingerPressMove = wrapFunc(this.element, option.twoFingerPressMove || noop);
7854      this.touchMove = wrapFunc(this.element, option.touchMove || noop);
7855      this.touchEnd = wrapFunc(this.element, option.touchEnd || noop);
7856      this.touchCancel = wrapFunc(this.element, option.touchCancel || noop);
7857      this.translateContainer = this.element;
7858      this._cancelAllHandler = this.cancelAll.bind(this);
7859      window.addEventListener('scroll', this._cancelAllHandler);
7860      this.delta = null;
7861      this.last = null;
7862      this.now = null;
7863      this.tapTimeout = null;
7864      this.singleTapTimeout = null;
7865      this.longTapTimeout = null;
7866      this.swipeTimeout = null;
7867      this.x1 = this.x2 = this.y1 = this.y2 = null;
7868      this.preTapPosition = {
7869        x: null,
7870        y: null
7871      };
7872    }
7873
7874    _createClass(TouchEvents, [{
7875      key: "start",
7876      value: function start(evt) {
7877        if (!evt.touches) {
7878          return;
7879        }
7880
7881        var ignoreDragFor = ['a', 'button', 'input'];
7882
7883        if (evt.target && evt.target.nodeName && ignoreDragFor.indexOf(evt.target.nodeName.toLowerCase()) >= 0) {
7884          console.log('ignore drag for this touched element', evt.target.nodeName.toLowerCase());
7885          return;
7886        }
7887
7888        this.now = Date.now();
7889        this.x1 = evt.touches[0].pageX;
7890        this.y1 = evt.touches[0].pageY;
7891        this.delta = this.now - (this.last || this.now);
7892        this.touchStart.dispatch(evt, this.element);
7893
7894        if (this.preTapPosition.x !== null) {
7895          this.isDoubleTap = this.delta > 0 && this.delta <= 250 && Math.abs(this.preTapPosition.x - this.x1) < 30 && Math.abs(this.preTapPosition.y - this.y1) < 30;
7896
7897          if (this.isDoubleTap) {
7898            clearTimeout(this.singleTapTimeout);
7899          }
7900        }
7901
7902        this.preTapPosition.x = this.x1;
7903        this.preTapPosition.y = this.y1;
7904        this.last = this.now;
7905        var preV = this.preV,
7906            len = evt.touches.length;
7907
7908        if (len > 1) {
7909          this._cancelLongTap();
7910
7911          this._cancelSingleTap();
7912
7913          var v = {
7914            x: evt.touches[1].pageX - this.x1,
7915            y: evt.touches[1].pageY - this.y1
7916          };
7917          preV.x = v.x;
7918          preV.y = v.y;
7919          this.pinchStartLen = getLen(preV);
7920          this.multipointStart.dispatch(evt, this.element);
7921        }
7922
7923        this._preventTap = false;
7924        this.longTapTimeout = setTimeout(function () {
7925          this.longTap.dispatch(evt, this.element);
7926          this._preventTap = true;
7927        }.bind(this), 750);
7928      }
7929    }, {
7930      key: "move",
7931      value: function move(evt) {
7932        if (!evt.touches) {
7933          return;
7934        }
7935
7936        var preV = this.preV,
7937            len = evt.touches.length,
7938            currentX = evt.touches[0].pageX,
7939            currentY = evt.touches[0].pageY;
7940        this.isDoubleTap = false;
7941
7942        if (len > 1) {
7943          var sCurrentX = evt.touches[1].pageX,
7944              sCurrentY = evt.touches[1].pageY;
7945          var v = {
7946            x: evt.touches[1].pageX - currentX,
7947            y: evt.touches[1].pageY - currentY
7948          };
7949
7950          if (preV.x !== null) {
7951            if (this.pinchStartLen > 0) {
7952              evt.zoom = getLen(v) / this.pinchStartLen;
7953              this.pinch.dispatch(evt, this.element);
7954            }
7955
7956            evt.angle = getRotateAngle(v, preV);
7957            this.rotate.dispatch(evt, this.element);
7958          }
7959
7960          preV.x = v.x;
7961          preV.y = v.y;
7962
7963          if (this.x2 !== null && this.sx2 !== null) {
7964            evt.deltaX = (currentX - this.x2 + sCurrentX - this.sx2) / 2;
7965            evt.deltaY = (currentY - this.y2 + sCurrentY - this.sy2) / 2;
7966          } else {
7967            evt.deltaX = 0;
7968            evt.deltaY = 0;
7969          }
7970
7971          this.twoFingerPressMove.dispatch(evt, this.element);
7972          this.sx2 = sCurrentX;
7973          this.sy2 = sCurrentY;
7974        } else {
7975          if (this.x2 !== null) {
7976            evt.deltaX = currentX - this.x2;
7977            evt.deltaY = currentY - this.y2;
7978            var movedX = Math.abs(this.x1 - this.x2),
7979                movedY = Math.abs(this.y1 - this.y2);
7980
7981            if (movedX > 10 || movedY > 10) {
7982              this._preventTap = true;
7983            }
7984          } else {
7985            evt.deltaX = 0;
7986            evt.deltaY = 0;
7987          }
7988
7989          this.pressMove.dispatch(evt, this.element);
7990        }
7991
7992        this.touchMove.dispatch(evt, this.element);
7993
7994        this._cancelLongTap();
7995
7996        this.x2 = currentX;
7997        this.y2 = currentY;
7998
7999        if (len > 1) {
8000          evt.preventDefault();
8001        }
8002      }
8003    }, {
8004      key: "end",
8005      value: function end(evt) {
8006        if (!evt.changedTouches) {
8007          return;
8008        }
8009
8010        this._cancelLongTap();
8011
8012        var self = this;
8013
8014        if (evt.touches.length < 2) {
8015          this.multipointEnd.dispatch(evt, this.element);
8016          this.sx2 = this.sy2 = null;
8017        }
8018
8019        if (this.x2 && Math.abs(this.x1 - this.x2) > 30 || this.y2 && Math.abs(this.y1 - this.y2) > 30) {
8020          evt.direction = this._swipeDirection(this.x1, this.x2, this.y1, this.y2);
8021          this.swipeTimeout = setTimeout(function () {
8022            self.swipe.dispatch(evt, self.element);
8023          }, 0);
8024        } else {
8025          this.tapTimeout = setTimeout(function () {
8026            if (!self._preventTap) {
8027              self.tap.dispatch(evt, self.element);
8028            }
8029
8030            if (self.isDoubleTap) {
8031              self.doubleTap.dispatch(evt, self.element);
8032              self.isDoubleTap = false;
8033            }
8034          }, 0);
8035
8036          if (!self.isDoubleTap) {
8037            self.singleTapTimeout = setTimeout(function () {
8038              self.singleTap.dispatch(evt, self.element);
8039            }, 250);
8040          }
8041        }
8042
8043        this.touchEnd.dispatch(evt, this.element);
8044        this.preV.x = 0;
8045        this.preV.y = 0;
8046        this.zoom = 1;
8047        this.pinchStartLen = null;
8048        this.x1 = this.x2 = this.y1 = this.y2 = null;
8049      }
8050    }, {
8051      key: "cancelAll",
8052      value: function cancelAll() {
8053        this._preventTap = true;
8054        clearTimeout(this.singleTapTimeout);
8055        clearTimeout(this.tapTimeout);
8056        clearTimeout(this.longTapTimeout);
8057        clearTimeout(this.swipeTimeout);
8058      }
8059    }, {
8060      key: "cancel",
8061      value: function cancel(evt) {
8062        this.cancelAll();
8063        this.touchCancel.dispatch(evt, this.element);
8064      }
8065    }, {
8066      key: "_cancelLongTap",
8067      value: function _cancelLongTap() {
8068        clearTimeout(this.longTapTimeout);
8069      }
8070    }, {
8071      key: "_cancelSingleTap",
8072      value: function _cancelSingleTap() {
8073        clearTimeout(this.singleTapTimeout);
8074      }
8075    }, {
8076      key: "_swipeDirection",
8077      value: function _swipeDirection(x1, x2, y1, y2) {
8078        return Math.abs(x1 - x2) >= Math.abs(y1 - y2) ? x1 - x2 > 0 ? 'Left' : 'Right' : y1 - y2 > 0 ? 'Up' : 'Down';
8079      }
8080    }, {
8081      key: "on",
8082      value: function on(evt, handler) {
8083        if (this[evt]) {
8084          this[evt].add(handler);
8085        }
8086      }
8087    }, {
8088      key: "off",
8089      value: function off(evt, handler) {
8090        if (this[evt]) {
8091          this[evt].del(handler);
8092        }
8093      }
8094    }, {
8095      key: "destroy",
8096      value: function destroy() {
8097        if (this.singleTapTimeout) {
8098          clearTimeout(this.singleTapTimeout);
8099        }
8100
8101        if (this.tapTimeout) {
8102          clearTimeout(this.tapTimeout);
8103        }
8104
8105        if (this.longTapTimeout) {
8106          clearTimeout(this.longTapTimeout);
8107        }
8108
8109        if (this.swipeTimeout) {
8110          clearTimeout(this.swipeTimeout);
8111        }
8112
8113        this.element.removeEventListener('touchstart', this.start);
8114        this.element.removeEventListener('touchmove', this.move);
8115        this.element.removeEventListener('touchend', this.end);
8116        this.element.removeEventListener('touchcancel', this.cancel);
8117        this.rotate.del();
8118        this.touchStart.del();
8119        this.multipointStart.del();
8120        this.multipointEnd.del();
8121        this.pinch.del();
8122        this.swipe.del();
8123        this.tap.del();
8124        this.doubleTap.del();
8125        this.longTap.del();
8126        this.singleTap.del();
8127        this.pressMove.del();
8128        this.twoFingerPressMove.del();
8129        this.touchMove.del();
8130        this.touchEnd.del();
8131        this.touchCancel.del();
8132        this.preV = this.pinchStartLen = this.zoom = this.isDoubleTap = this.delta = this.last = this.now = this.tapTimeout = this.singleTapTimeout = this.longTapTimeout = this.swipeTimeout = this.x1 = this.x2 = this.y1 = this.y2 = this.preTapPosition = this.rotate = this.touchStart = this.multipointStart = this.multipointEnd = this.pinch = this.swipe = this.tap = this.doubleTap = this.longTap = this.singleTap = this.pressMove = this.touchMove = this.touchEnd = this.touchCancel = this.twoFingerPressMove = null;
8133        window.removeEventListener('scroll', this._cancelAllHandler);
8134        return null;
8135      }
8136    }]);
8137
8138    return TouchEvents;
8139  }();
8140
8141  function resetSlideMove(slide) {
8142    var transitionEnd = whichTransitionEvent();
8143    var windowWidth = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
8144    var media = hasClass(slide, 'gslide-media') ? slide : slide.querySelector('.gslide-media');
8145    var container = closest(media, '.ginner-container');
8146    var desc = slide.querySelector('.gslide-description');
8147
8148    if (windowWidth > 769) {
8149      media = container;
8150    }
8151
8152    addClass(media, 'greset');
8153    cssTransform(media, 'translate3d(0, 0, 0)');
8154    addEvent(transitionEnd, {
8155      onElement: media,
8156      once: true,
8157      withCallback: function withCallback(event, target) {
8158        removeClass(media, 'greset');
8159      }
8160    });
8161    media.style.opacity = '';
8162
8163    if (desc) {
8164      desc.style.opacity = '';
8165    }
8166  }
8167
8168  function touchNavigation(instance) {
8169    if (instance.events.hasOwnProperty('touch')) {
8170      return false;
8171    }
8172
8173    var winSize = windowSize();
8174    var winWidth = winSize.width;
8175    var winHeight = winSize.height;
8176    var process = false;
8177    var currentSlide = null;
8178    var media = null;
8179    var mediaImage = null;
8180    var doingMove = false;
8181    var initScale = 1;
8182    var maxScale = 4.5;
8183    var currentScale = 1;
8184    var doingZoom = false;
8185    var imageZoomed = false;
8186    var zoomedPosX = null;
8187    var zoomedPosY = null;
8188    var lastZoomedPosX = null;
8189    var lastZoomedPosY = null;
8190    var hDistance;
8191    var vDistance;
8192    var hDistancePercent = 0;
8193    var vDistancePercent = 0;
8194    var vSwipe = false;
8195    var hSwipe = false;
8196    var startCoords = {};
8197    var endCoords = {};
8198    var xDown = 0;
8199    var yDown = 0;
8200    var isInlined;
8201    var sliderWrapper = document.getElementById('glightbox-slider');
8202    var overlay = document.querySelector('.goverlay');
8203    var touchInstance = new TouchEvents(sliderWrapper, {
8204      touchStart: function touchStart(e) {
8205        process = true;
8206
8207        if (hasClass(e.targetTouches[0].target, 'ginner-container') || closest(e.targetTouches[0].target, '.gslide-desc') || e.targetTouches[0].target.nodeName.toLowerCase() == 'a') {
8208          process = false;
8209        }
8210
8211        if (closest(e.targetTouches[0].target, '.gslide-inline') && !hasClass(e.targetTouches[0].target.parentNode, 'gslide-inline')) {
8212          process = false;
8213        }
8214
8215        if (process) {
8216          endCoords = e.targetTouches[0];
8217          startCoords.pageX = e.targetTouches[0].pageX;
8218          startCoords.pageY = e.targetTouches[0].pageY;
8219          xDown = e.targetTouches[0].clientX;
8220          yDown = e.targetTouches[0].clientY;
8221          currentSlide = instance.activeSlide;
8222          media = currentSlide.querySelector('.gslide-media');
8223          isInlined = currentSlide.querySelector('.gslide-inline');
8224          mediaImage = null;
8225
8226          if (hasClass(media, 'gslide-image')) {
8227            mediaImage = media.querySelector('img');
8228          }
8229
8230          var windowWidth = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
8231
8232          if (windowWidth > 769) {
8233            media = currentSlide.querySelector('.ginner-container');
8234          }
8235
8236          removeClass(overlay, 'greset');
8237
8238          if (e.pageX > 20 && e.pageX < window.innerWidth - 20) {
8239            return;
8240          }
8241
8242          e.preventDefault();
8243        }
8244      },
8245      touchMove: function touchMove(e) {
8246        if (!process) {
8247          return;
8248        }
8249
8250        endCoords = e.targetTouches[0];
8251
8252        if (doingZoom || imageZoomed) {
8253          return;
8254        }
8255
8256        if (isInlined && isInlined.offsetHeight > winHeight) {
8257          var moved = startCoords.pageX - endCoords.pageX;
8258
8259          if (Math.abs(moved) <= 13) {
8260            return false;
8261          }
8262        }
8263
8264        doingMove = true;
8265        var xUp = e.targetTouches[0].clientX;
8266        var yUp = e.targetTouches[0].clientY;
8267        var xDiff = xDown - xUp;
8268        var yDiff = yDown - yUp;
8269
8270        if (Math.abs(xDiff) > Math.abs(yDiff)) {
8271          vSwipe = false;
8272          hSwipe = true;
8273        } else {
8274          hSwipe = false;
8275          vSwipe = true;
8276        }
8277
8278        hDistance = endCoords.pageX - startCoords.pageX;
8279        hDistancePercent = hDistance * 100 / winWidth;
8280        vDistance = endCoords.pageY - startCoords.pageY;
8281        vDistancePercent = vDistance * 100 / winHeight;
8282        var opacity;
8283
8284        if (vSwipe && mediaImage) {
8285          opacity = 1 - Math.abs(vDistance) / winHeight;
8286          overlay.style.opacity = opacity;
8287
8288          if (instance.settings.touchFollowAxis) {
8289            hDistancePercent = 0;
8290          }
8291        }
8292
8293        if (hSwipe) {
8294          opacity = 1 - Math.abs(hDistance) / winWidth;
8295          media.style.opacity = opacity;
8296
8297          if (instance.settings.touchFollowAxis) {
8298            vDistancePercent = 0;
8299          }
8300        }
8301
8302        if (!mediaImage) {
8303          return cssTransform(media, "translate3d(".concat(hDistancePercent, "%, 0, 0)"));
8304        }
8305
8306        cssTransform(media, "translate3d(".concat(hDistancePercent, "%, ").concat(vDistancePercent, "%, 0)"));
8307      },
8308      touchEnd: function touchEnd() {
8309        if (!process) {
8310          return;
8311        }
8312
8313        doingMove = false;
8314
8315        if (imageZoomed || doingZoom) {
8316          lastZoomedPosX = zoomedPosX;
8317          lastZoomedPosY = zoomedPosY;
8318          return;
8319        }
8320
8321        var v = Math.abs(parseInt(vDistancePercent));
8322        var h = Math.abs(parseInt(hDistancePercent));
8323
8324        if (v > 29 && mediaImage) {
8325          instance.close();
8326          return;
8327        }
8328
8329        if (v < 29 && h < 25) {
8330          addClass(overlay, 'greset');
8331          overlay.style.opacity = 1;
8332          return resetSlideMove(media);
8333        }
8334      },
8335      multipointEnd: function multipointEnd() {
8336        setTimeout(function () {
8337          doingZoom = false;
8338        }, 50);
8339      },
8340      multipointStart: function multipointStart() {
8341        doingZoom = true;
8342        initScale = currentScale ? currentScale : 1;
8343      },
8344      pinch: function pinch(evt) {
8345        if (!mediaImage || doingMove) {
8346          return false;
8347        }
8348
8349        doingZoom = true;
8350        mediaImage.scaleX = mediaImage.scaleY = initScale * evt.zoom;
8351        var scale = initScale * evt.zoom;
8352        imageZoomed = true;
8353
8354        if (scale <= 1) {
8355          imageZoomed = false;
8356          scale = 1;
8357          lastZoomedPosY = null;
8358          lastZoomedPosX = null;
8359          zoomedPosX = null;
8360          zoomedPosY = null;
8361          mediaImage.setAttribute('style', '');
8362          return;
8363        }
8364
8365        if (scale > maxScale) {
8366          scale = maxScale;
8367        }
8368
8369        mediaImage.style.transform = "scale3d(".concat(scale, ", ").concat(scale, ", 1)");
8370        currentScale = scale;
8371      },
8372      pressMove: function pressMove(e) {
8373        if (imageZoomed && !doingZoom) {
8374          var mhDistance = endCoords.pageX - startCoords.pageX;
8375          var mvDistance = endCoords.pageY - startCoords.pageY;
8376
8377          if (lastZoomedPosX) {
8378            mhDistance = mhDistance + lastZoomedPosX;
8379          }
8380
8381          if (lastZoomedPosY) {
8382            mvDistance = mvDistance + lastZoomedPosY;
8383          }
8384
8385          zoomedPosX = mhDistance;
8386          zoomedPosY = mvDistance;
8387          var style = "translate3d(".concat(mhDistance, "px, ").concat(mvDistance, "px, 0)");
8388
8389          if (currentScale) {
8390            style += " scale3d(".concat(currentScale, ", ").concat(currentScale, ", 1)");
8391          }
8392
8393          cssTransform(mediaImage, style);
8394        }
8395      },
8396      swipe: function swipe(evt) {
8397        if (imageZoomed) {
8398          return;
8399        }
8400
8401        if (doingZoom) {
8402          doingZoom = false;
8403          return;
8404        }
8405
8406        if (evt.direction == 'Left') {
8407          if (instance.index == instance.elements.length - 1) {
8408            return resetSlideMove(media);
8409          }
8410
8411          instance.nextSlide();
8412        }
8413
8414        if (evt.direction == 'Right') {
8415          if (instance.index == 0) {
8416            return resetSlideMove(media);
8417          }
8418
8419          instance.prevSlide();
8420        }
8421      }
8422    });
8423    instance.events['touch'] = touchInstance;
8424  }
8425
8426  var ZoomImages = function () {
8427    function ZoomImages(el, slide) {
8428      var _this = this;
8429
8430      var onclose = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
8431
8432      _classCallCheck(this, ZoomImages);
8433
8434      this.img = el;
8435      this.slide = slide;
8436      this.onclose = onclose;
8437
8438      if (this.img.setZoomEvents) {
8439        return false;
8440      }
8441
8442      this.active = false;
8443      this.zoomedIn = false;
8444      this.dragging = false;
8445      this.currentX = null;
8446      this.currentY = null;
8447      this.initialX = null;
8448      this.initialY = null;
8449      this.xOffset = 0;
8450      this.yOffset = 0;
8451      this.img.addEventListener('mousedown', function (e) {
8452        return _this.dragStart(e);
8453      }, false);
8454      this.img.addEventListener('mouseup', function (e) {
8455        return _this.dragEnd(e);
8456      }, false);
8457      this.img.addEventListener('mousemove', function (e) {
8458        return _this.drag(e);
8459      }, false);
8460      this.img.addEventListener('click', function (e) {
8461        if (_this.slide.classList.contains('dragging-nav')) {
8462          _this.zoomOut();
8463
8464          return false;
8465        }
8466
8467        if (!_this.zoomedIn) {
8468          return _this.zoomIn();
8469        }
8470
8471        if (_this.zoomedIn && !_this.dragging) {
8472          _this.zoomOut();
8473        }
8474      }, false);
8475      this.img.setZoomEvents = true;
8476    }
8477
8478    _createClass(ZoomImages, [{
8479      key: "zoomIn",
8480      value: function zoomIn() {
8481        var winWidth = this.widowWidth();
8482
8483        if (this.zoomedIn || winWidth <= 768) {
8484          return;
8485        }
8486
8487        var img = this.img;
8488        img.setAttribute('data-style', img.getAttribute('style'));
8489        img.style.maxWidth = img.naturalWidth + 'px';
8490        img.style.maxHeight = img.naturalHeight + 'px';
8491
8492        if (img.naturalWidth > winWidth) {
8493          var centerX = winWidth / 2 - img.naturalWidth / 2;
8494          this.setTranslate(this.img.parentNode, centerX, 0);
8495        }
8496
8497        this.slide.classList.add('zoomed');
8498        this.zoomedIn = true;
8499      }
8500    }, {
8501      key: "zoomOut",
8502      value: function zoomOut() {
8503        this.img.parentNode.setAttribute('style', '');
8504        this.img.setAttribute('style', this.img.getAttribute('data-style'));
8505        this.slide.classList.remove('zoomed');
8506        this.zoomedIn = false;
8507        this.currentX = null;
8508        this.currentY = null;
8509        this.initialX = null;
8510        this.initialY = null;
8511        this.xOffset = 0;
8512        this.yOffset = 0;
8513
8514        if (this.onclose && typeof this.onclose == 'function') {
8515          this.onclose();
8516        }
8517      }
8518    }, {
8519      key: "dragStart",
8520      value: function dragStart(e) {
8521        e.preventDefault();
8522
8523        if (!this.zoomedIn) {
8524          this.active = false;
8525          return;
8526        }
8527
8528        if (e.type === 'touchstart') {
8529          this.initialX = e.touches[0].clientX - this.xOffset;
8530          this.initialY = e.touches[0].clientY - this.yOffset;
8531        } else {
8532          this.initialX = e.clientX - this.xOffset;
8533          this.initialY = e.clientY - this.yOffset;
8534        }
8535
8536        if (e.target === this.img) {
8537          this.active = true;
8538          this.img.classList.add('dragging');
8539        }
8540      }
8541    }, {
8542      key: "dragEnd",
8543      value: function dragEnd(e) {
8544        var _this2 = this;
8545
8546        e.preventDefault();
8547        this.initialX = this.currentX;
8548        this.initialY = this.currentY;
8549        this.active = false;
8550        setTimeout(function () {
8551          _this2.dragging = false;
8552          _this2.img.isDragging = false;
8553
8554          _this2.img.classList.remove('dragging');
8555        }, 100);
8556      }
8557    }, {
8558      key: "drag",
8559      value: function drag(e) {
8560        if (this.active) {
8561          e.preventDefault();
8562
8563          if (e.type === 'touchmove') {
8564            this.currentX = e.touches[0].clientX - this.initialX;
8565            this.currentY = e.touches[0].clientY - this.initialY;
8566          } else {
8567            this.currentX = e.clientX - this.initialX;
8568            this.currentY = e.clientY - this.initialY;
8569          }
8570
8571          this.xOffset = this.currentX;
8572          this.yOffset = this.currentY;
8573          this.img.isDragging = true;
8574          this.dragging = true;
8575          this.setTranslate(this.img, this.currentX, this.currentY);
8576        }
8577      }
8578    }, {
8579      key: "onMove",
8580      value: function onMove(e) {
8581        if (!this.zoomedIn) {
8582          return;
8583        }
8584
8585        var xOffset = e.clientX - this.img.naturalWidth / 2;
8586        var yOffset = e.clientY - this.img.naturalHeight / 2;
8587        this.setTranslate(this.img, xOffset, yOffset);
8588      }
8589    }, {
8590      key: "setTranslate",
8591      value: function setTranslate(node, xPos, yPos) {
8592        node.style.transform = 'translate3d(' + xPos + 'px, ' + yPos + 'px, 0)';
8593      }
8594    }, {
8595      key: "widowWidth",
8596      value: function widowWidth() {
8597        return window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
8598      }
8599    }]);
8600
8601    return ZoomImages;
8602  }();
8603
8604  var DragSlides = function () {
8605    function DragSlides() {
8606      var _this = this;
8607
8608      var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
8609
8610      _classCallCheck(this, DragSlides);
8611
8612      var dragEl = config.dragEl,
8613          _config$toleranceX = config.toleranceX,
8614          toleranceX = _config$toleranceX === void 0 ? 40 : _config$toleranceX,
8615          _config$toleranceY = config.toleranceY,
8616          toleranceY = _config$toleranceY === void 0 ? 65 : _config$toleranceY,
8617          _config$slide = config.slide,
8618          slide = _config$slide === void 0 ? null : _config$slide,
8619          _config$instance = config.instance,
8620          instance = _config$instance === void 0 ? null : _config$instance;
8621      this.el = dragEl;
8622      this.active = false;
8623      this.dragging = false;
8624      this.currentX = null;
8625      this.currentY = null;
8626      this.initialX = null;
8627      this.initialY = null;
8628      this.xOffset = 0;
8629      this.yOffset = 0;
8630      this.direction = null;
8631      this.lastDirection = null;
8632      this.toleranceX = toleranceX;
8633      this.toleranceY = toleranceY;
8634      this.toleranceReached = false;
8635      this.dragContainer = this.el;
8636      this.slide = slide;
8637      this.instance = instance;
8638      this.el.addEventListener('mousedown', function (e) {
8639        return _this.dragStart(e);
8640      }, false);
8641      this.el.addEventListener('mouseup', function (e) {
8642        return _this.dragEnd(e);
8643      }, false);
8644      this.el.addEventListener('mousemove', function (e) {
8645        return _this.drag(e);
8646      }, false);
8647    }
8648
8649    _createClass(DragSlides, [{
8650      key: "dragStart",
8651      value: function dragStart(e) {
8652        if (this.slide.classList.contains('zoomed')) {
8653          this.active = false;
8654          return;
8655        }
8656
8657        if (e.type === 'touchstart') {
8658          this.initialX = e.touches[0].clientX - this.xOffset;
8659          this.initialY = e.touches[0].clientY - this.yOffset;
8660        } else {
8661          this.initialX = e.clientX - this.xOffset;
8662          this.initialY = e.clientY - this.yOffset;
8663        }
8664
8665        var clicked = e.target.nodeName.toLowerCase();
8666        var exludeClicks = ['input', 'select', 'textarea', 'button', 'a'];
8667
8668        if (e.target.classList.contains('nodrag') || closest(e.target, '.nodrag') || exludeClicks.indexOf(clicked) !== -1) {
8669          this.active = false;
8670          return;
8671        }
8672
8673        e.preventDefault();
8674
8675        if (e.target === this.el || clicked !== 'img' && closest(e.target, '.gslide-inline')) {
8676          this.active = true;
8677          this.el.classList.add('dragging');
8678          this.dragContainer = closest(e.target, '.ginner-container');
8679        }
8680      }
8681    }, {
8682      key: "dragEnd",
8683      value: function dragEnd(e) {
8684        var _this2 = this;
8685
8686        e && e.preventDefault();
8687        this.initialX = 0;
8688        this.initialY = 0;
8689        this.currentX = null;
8690        this.currentY = null;
8691        this.initialX = null;
8692        this.initialY = null;
8693        this.xOffset = 0;
8694        this.yOffset = 0;
8695        this.active = false;
8696
8697        if (this.doSlideChange) {
8698          this.instance.preventOutsideClick = true;
8699          this.doSlideChange == 'right' && this.instance.prevSlide();
8700          this.doSlideChange == 'left' && this.instance.nextSlide();
8701        }
8702
8703        if (this.doSlideClose) {
8704          this.instance.close();
8705        }
8706
8707        if (!this.toleranceReached) {
8708          this.setTranslate(this.dragContainer, 0, 0, true);
8709        }
8710
8711        setTimeout(function () {
8712          _this2.instance.preventOutsideClick = false;
8713          _this2.toleranceReached = false;
8714          _this2.lastDirection = null;
8715          _this2.dragging = false;
8716          _this2.el.isDragging = false;
8717
8718          _this2.el.classList.remove('dragging');
8719
8720          _this2.slide.classList.remove('dragging-nav');
8721
8722          _this2.dragContainer.style.transform = '';
8723          _this2.dragContainer.style.transition = '';
8724        }, 100);
8725      }
8726    }, {
8727      key: "drag",
8728      value: function drag(e) {
8729        if (this.active) {
8730          e.preventDefault();
8731          this.slide.classList.add('dragging-nav');
8732
8733          if (e.type === 'touchmove') {
8734            this.currentX = e.touches[0].clientX - this.initialX;
8735            this.currentY = e.touches[0].clientY - this.initialY;
8736          } else {
8737            this.currentX = e.clientX - this.initialX;
8738            this.currentY = e.clientY - this.initialY;
8739          }
8740
8741          this.xOffset = this.currentX;
8742          this.yOffset = this.currentY;
8743          this.el.isDragging = true;
8744          this.dragging = true;
8745          this.doSlideChange = false;
8746          this.doSlideClose = false;
8747          var currentXInt = Math.abs(this.currentX);
8748          var currentYInt = Math.abs(this.currentY);
8749
8750          if (currentXInt > 0 && currentXInt >= Math.abs(this.currentY) && (!this.lastDirection || this.lastDirection == 'x')) {
8751            this.yOffset = 0;
8752            this.lastDirection = 'x';
8753            this.setTranslate(this.dragContainer, this.currentX, 0);
8754            var doChange = this.shouldChange();
8755
8756            if (!this.instance.settings.dragAutoSnap && doChange) {
8757              this.doSlideChange = doChange;
8758            }
8759
8760            if (this.instance.settings.dragAutoSnap && doChange) {
8761              this.instance.preventOutsideClick = true;
8762              this.toleranceReached = true;
8763              this.active = false;
8764              this.instance.preventOutsideClick = true;
8765              this.dragEnd(null);
8766              doChange == 'right' && this.instance.prevSlide();
8767              doChange == 'left' && this.instance.nextSlide();
8768              return;
8769            }
8770          }
8771
8772          if (this.toleranceY > 0 && currentYInt > 0 && currentYInt >= currentXInt && (!this.lastDirection || this.lastDirection == 'y')) {
8773            this.xOffset = 0;
8774            this.lastDirection = 'y';
8775            this.setTranslate(this.dragContainer, 0, this.currentY);
8776            var doClose = this.shouldClose();
8777
8778            if (!this.instance.settings.dragAutoSnap && doClose) {
8779              this.doSlideClose = true;
8780            }
8781
8782            if (this.instance.settings.dragAutoSnap && doClose) {
8783              this.instance.close();
8784            }
8785
8786            return;
8787          }
8788        }
8789      }
8790    }, {
8791      key: "shouldChange",
8792      value: function shouldChange() {
8793        var doChange = false;
8794        var currentXInt = Math.abs(this.currentX);
8795
8796        if (currentXInt >= this.toleranceX) {
8797          var dragDir = this.currentX > 0 ? 'right' : 'left';
8798
8799          if (dragDir == 'left' && this.slide !== this.slide.parentNode.lastChild || dragDir == 'right' && this.slide !== this.slide.parentNode.firstChild) {
8800            doChange = dragDir;
8801          }
8802        }
8803
8804        return doChange;
8805      }
8806    }, {
8807      key: "shouldClose",
8808      value: function shouldClose() {
8809        var doClose = false;
8810        var currentYInt = Math.abs(this.currentY);
8811
8812        if (currentYInt >= this.toleranceY) {
8813          doClose = true;
8814        }
8815
8816        return doClose;
8817      }
8818    }, {
8819      key: "setTranslate",
8820      value: function setTranslate(node, xPos, yPos) {
8821        var animated = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
8822
8823        if (animated) {
8824          node.style.transition = 'all .2s ease';
8825        } else {
8826          node.style.transition = '';
8827        }
8828
8829        node.style.transform = "translate3d(".concat(xPos, "px, ").concat(yPos, "px, 0)");
8830      }
8831    }]);
8832
8833    return DragSlides;
8834  }();
8835
8836  function slideImage(slide, data, index, callback) {
8837    var slideMedia = slide.querySelector('.gslide-media');
8838    var img = new Image();
8839    var titleID = 'gSlideTitle_' + index;
8840    var textID = 'gSlideDesc_' + index;
8841    img.addEventListener('load', function () {
8842      if (isFunction(callback)) {
8843        callback();
8844      }
8845    }, false);
8846    img.src = data.href;
8847
8848    if (data.sizes != '' && data.srcset != '') {
8849      img.sizes = data.sizes;
8850      img.srcset = data.srcset;
8851    }
8852
8853    img.alt = '';
8854
8855    if (!isNil(data.alt) && data.alt !== '') {
8856      img.alt = data.alt;
8857    }
8858
8859    if (data.title !== '') {
8860      img.setAttribute('aria-labelledby', titleID);
8861    }
8862
8863    if (data.description !== '') {
8864      img.setAttribute('aria-describedby', textID);
8865    }
8866
8867    if (data.hasOwnProperty('_hasCustomWidth') && data._hasCustomWidth) {
8868      img.style.width = data.width;
8869    }
8870
8871    if (data.hasOwnProperty('_hasCustomHeight') && data._hasCustomHeight) {
8872      img.style.height = data.height;
8873    }
8874
8875    slideMedia.insertBefore(img, slideMedia.firstChild);
8876    return;
8877  }
8878
8879  function slideVideo(slide, data, index, callback) {
8880    var _this = this;
8881
8882    var slideContainer = slide.querySelector('.ginner-container');
8883    var videoID = 'gvideo' + index;
8884    var slideMedia = slide.querySelector('.gslide-media');
8885    var videoPlayers = this.getAllPlayers();
8886    addClass(slideContainer, 'gvideo-container');
8887    slideMedia.insertBefore(createHTML('<div class="gvideo-wrapper"></div>'), slideMedia.firstChild);
8888    var videoWrapper = slide.querySelector('.gvideo-wrapper');
8889    injectAssets(this.settings.plyr.css, 'Plyr');
8890    var url = data.href;
8891    var provider = data === null || data === void 0 ? void 0 : data.videoProvider;
8892    var customPlaceholder = false;
8893    slideMedia.style.maxWidth = data.width;
8894    injectAssets(this.settings.plyr.js, 'Plyr', function () {
8895      if (!provider && url.match(/vimeo\.com\/([0-9]*)/)) {
8896        provider = 'vimeo';
8897      }
8898
8899      if (!provider && (url.match(/(youtube\.com|youtube-nocookie\.com)\/watch\?v=([a-zA-Z0-9\-_]+)/) || url.match(/youtu\.be\/([a-zA-Z0-9\-_]+)/) || url.match(/(youtube\.com|youtube-nocookie\.com)\/embed\/([a-zA-Z0-9\-_]+)/))) {
8900        provider = 'youtube';
8901      }
8902
8903      if (provider === 'local' || !provider) {
8904        provider = 'local';
8905        var html = '<video id="' + videoID + '" ';
8906        html += "style=\"background:#000; max-width: ".concat(data.width, ";\" ");
8907        html += 'preload="metadata" ';
8908        html += 'poster="' + data.poster + '" ';
8909        html += 'x-webkit-airplay="allow" ';
8910        html += 'playsinline ';
8911        html += 'controls ';
8912        html += 'class="gvideo-local">';
8913        html += "<source src=\"".concat(url, "\">");
8914        html += '</video>';
8915        customPlaceholder = createHTML(html);
8916      }
8917
8918      var placeholder = customPlaceholder ? customPlaceholder : createHTML("<div id=\"".concat(videoID, "\" data-plyr-provider=\"").concat(provider, "\" data-plyr-embed-id=\"").concat(url, "\"></div>"));
8919      addClass(videoWrapper, "".concat(provider, "-video gvideo"));
8920      videoWrapper.appendChild(placeholder);
8921      videoWrapper.setAttribute('data-id', videoID);
8922      videoWrapper.setAttribute('data-index', index);
8923      var playerConfig = has(_this.settings.plyr, 'config') ? _this.settings.plyr.config : {};
8924      var player = new Plyr('#' + videoID, playerConfig);
8925      player.on('ready', function (event) {
8926        videoPlayers[videoID] = event.detail.plyr;
8927
8928        if (isFunction(callback)) {
8929          callback();
8930        }
8931      });
8932      waitUntil(function () {
8933        return slide.querySelector('iframe') && slide.querySelector('iframe').dataset.ready == 'true';
8934      }, function () {
8935        _this.resize(slide);
8936      });
8937      player.on('enterfullscreen', handleMediaFullScreen);
8938      player.on('exitfullscreen', handleMediaFullScreen);
8939    });
8940  }
8941
8942  function handleMediaFullScreen(event) {
8943    var media = closest(event.target, '.gslide-media');
8944
8945    if (event.type === 'enterfullscreen') {
8946      addClass(media, 'fullscreen');
8947    }
8948
8949    if (event.type === 'exitfullscreen') {
8950      removeClass(media, 'fullscreen');
8951    }
8952  }
8953
8954  function slideInline(slide, data, index, callback) {
8955    var _this = this;
8956
8957    var slideMedia = slide.querySelector('.gslide-media');
8958    var hash = has(data, 'href') && data.href ? data.href.split('#').pop().trim() : false;
8959    var content = has(data, 'content') && data.content ? data.content : false;
8960    var innerContent;
8961
8962    if (content) {
8963      if (isString(content)) {
8964        innerContent = createHTML("<div class=\"ginlined-content\">".concat(content, "</div>"));
8965      }
8966
8967      if (isNode(content)) {
8968        if (content.style.display == 'none') {
8969          content.style.display = 'block';
8970        }
8971
8972        var container = document.createElement('div');
8973        container.className = 'ginlined-content';
8974        container.appendChild(content);
8975        innerContent = container;
8976      }
8977    }
8978
8979    if (hash) {
8980      var div = document.getElementById(hash);
8981
8982      if (!div) {
8983        return false;
8984      }
8985
8986      var cloned = div.cloneNode(true);
8987      cloned.style.height = data.height;
8988      cloned.style.maxWidth = data.width;
8989      addClass(cloned, 'ginlined-content');
8990      innerContent = cloned;
8991    }
8992
8993    if (!innerContent) {
8994      console.error('Unable to append inline slide content', data);
8995      return false;
8996    }
8997
8998    slideMedia.style.height = data.height;
8999    slideMedia.style.width = data.width;
9000    slideMedia.appendChild(innerContent);
9001    this.events['inlineclose' + hash] = addEvent('click', {
9002      onElement: slideMedia.querySelectorAll('.gtrigger-close'),
9003      withCallback: function withCallback(e) {
9004        e.preventDefault();
9005
9006        _this.close();
9007      }
9008    });
9009
9010    if (isFunction(callback)) {
9011      callback();
9012    }
9013
9014    return;
9015  }
9016
9017  function slideIframe(slide, data, index, callback) {
9018    var slideMedia = slide.querySelector('.gslide-media');
9019    var iframe = createIframe({
9020      url: data.href,
9021      callback: callback
9022    });
9023    slideMedia.parentNode.style.maxWidth = data.width;
9024    slideMedia.parentNode.style.height = data.height;
9025    slideMedia.appendChild(iframe);
9026    return;
9027  }
9028
9029  var SlideConfigParser = function () {
9030    function SlideConfigParser() {
9031      var slideParamas = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
9032
9033      _classCallCheck(this, SlideConfigParser);
9034
9035      this.defaults = {
9036        href: '',
9037        sizes: '',
9038        srcset: '',
9039        title: '',
9040        type: '',
9041        videoProvider: '',
9042        description: '',
9043        alt: '',
9044        descPosition: 'bottom',
9045        effect: '',
9046        width: '',
9047        height: '',
9048        content: false,
9049        zoomable: true,
9050        draggable: true
9051      };
9052
9053      if (isObject(slideParamas)) {
9054        this.defaults = extend(this.defaults, slideParamas);
9055      }
9056    }
9057
9058    _createClass(SlideConfigParser, [{
9059      key: "sourceType",
9060      value: function sourceType(url) {
9061        var origin = url;
9062        url = url.toLowerCase();
9063
9064        if (url.match(/\.(jpeg|jpg|jpe|gif|png|apn|webp|avif|svg)/) !== null) {
9065          return 'image';
9066        }
9067
9068        if (url.match(/(youtube\.com|youtube-nocookie\.com)\/watch\?v=([a-zA-Z0-9\-_]+)/) || url.match(/youtu\.be\/([a-zA-Z0-9\-_]+)/) || url.match(/(youtube\.com|youtube-nocookie\.com)\/embed\/([a-zA-Z0-9\-_]+)/)) {
9069          return 'video';
9070        }
9071
9072        if (url.match(/vimeo\.com\/([0-9]*)/)) {
9073          return 'video';
9074        }
9075
9076        if (url.match(/\.(mp4|ogg|webm|mov)/) !== null) {
9077          return 'video';
9078        }
9079
9080        if (url.match(/\.(mp3|wav|wma|aac|ogg)/) !== null) {
9081          return 'audio';
9082        }
9083
9084        if (url.indexOf('#') > -1) {
9085          var hash = origin.split('#').pop();
9086
9087          if (hash.trim() !== '') {
9088            return 'inline';
9089          }
9090        }
9091
9092        if (url.indexOf('goajax=true') > -1) {
9093          return 'ajax';
9094        }
9095
9096        return 'external';
9097      }
9098    }, {
9099      key: "parseConfig",
9100      value: function parseConfig(element, settings) {
9101        var _this = this;
9102
9103        var data = extend({
9104          descPosition: settings.descPosition
9105        }, this.defaults);
9106
9107        if (isObject(element) && !isNode(element)) {
9108          if (!has(element, 'type')) {
9109            if (has(element, 'content') && element.content) {
9110              element.type = 'inline';
9111            } else if (has(element, 'href')) {
9112              element.type = this.sourceType(element.href);
9113            }
9114          }
9115
9116          var objectData = extend(data, element);
9117          this.setSize(objectData, settings);
9118          return objectData;
9119        }
9120
9121        var url = '';
9122        var config = element.getAttribute('data-glightbox');
9123        var nodeType = element.nodeName.toLowerCase();
9124
9125        if (nodeType === 'a') {
9126          url = element.href;
9127        }
9128
9129        if (nodeType === 'img') {
9130          url = element.src;
9131          data.alt = element.alt;
9132        }
9133
9134        data.href = url;
9135        each(data, function (val, key) {
9136          if (has(settings, key) && key !== 'width') {
9137            data[key] = settings[key];
9138          }
9139
9140          var nodeData = element.dataset[key];
9141
9142          if (!isNil(nodeData)) {
9143            data[key] = _this.sanitizeValue(nodeData);
9144          }
9145        });
9146
9147        if (data.content) {
9148          data.type = 'inline';
9149        }
9150
9151        if (!data.type && url) {
9152          data.type = this.sourceType(url);
9153        }
9154
9155        if (!isNil(config)) {
9156          var cleanKeys = [];
9157          each(data, function (v, k) {
9158            cleanKeys.push(';\\s?' + k);
9159          });
9160          cleanKeys = cleanKeys.join('\\s?:|');
9161
9162          if (config.trim() !== '') {
9163            each(data, function (val, key) {
9164              var str = config;
9165              var match = 's?' + key + 's?:s?(.*?)(' + cleanKeys + 's?:|$)';
9166              var regex = new RegExp(match);
9167              var matches = str.match(regex);
9168
9169              if (matches && matches.length && matches[1]) {
9170                var value = matches[1].trim().replace(/;\s*$/, '');
9171                data[key] = _this.sanitizeValue(value);
9172              }
9173            });
9174          }
9175        } else {
9176          if (!data.title && nodeType == 'a') {
9177            var title = element.title;
9178
9179            if (!isNil(title) && title !== '') {
9180              data.title = title;
9181            }
9182          }
9183
9184          if (!data.title && nodeType == 'img') {
9185            var alt = element.alt;
9186
9187            if (!isNil(alt) && alt !== '') {
9188              data.title = alt;
9189            }
9190          }
9191        }
9192
9193        if (data.description && data.description.substring(0, 1) === '.') {
9194          var description;
9195
9196          try {
9197            description = document.querySelector(data.description).innerHTML;
9198          } catch (error) {
9199            if (!(error instanceof DOMException)) {
9200              throw error;
9201            }
9202          }
9203
9204          if (description) {
9205            data.description = description;
9206          }
9207        }
9208
9209        if (!data.description) {
9210          var nodeDesc = element.querySelector('.glightbox-desc');
9211
9212          if (nodeDesc) {
9213            data.description = nodeDesc.innerHTML;
9214          }
9215        }
9216
9217        this.setSize(data, settings, element);
9218        this.slideConfig = data;
9219        return data;
9220      }
9221    }, {
9222      key: "setSize",
9223      value: function setSize(data, settings) {
9224        var element = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
9225        var defaultWith = data.type == 'video' ? this.checkSize(settings.videosWidth) : this.checkSize(settings.width);
9226        var defaultHeight = this.checkSize(settings.height);
9227        data.width = has(data, 'width') && data.width !== '' ? this.checkSize(data.width) : defaultWith;
9228        data.height = has(data, 'height') && data.height !== '' ? this.checkSize(data.height) : defaultHeight;
9229
9230        if (element && data.type == 'image') {
9231          data._hasCustomWidth = element.dataset.width ? true : false;
9232          data._hasCustomHeight = element.dataset.height ? true : false;
9233        }
9234
9235        return data;
9236      }
9237    }, {
9238      key: "checkSize",
9239      value: function checkSize(size) {
9240        return isNumber(size) ? "".concat(size, "px") : size;
9241      }
9242    }, {
9243      key: "sanitizeValue",
9244      value: function sanitizeValue(val) {
9245        if (val !== 'true' && val !== 'false') {
9246          return val;
9247        }
9248
9249        return val === 'true';
9250      }
9251    }]);
9252
9253    return SlideConfigParser;
9254  }();
9255
9256  var Slide = function () {
9257    function Slide(el, instance, index) {
9258      _classCallCheck(this, Slide);
9259
9260      this.element = el;
9261      this.instance = instance;
9262      this.index = index;
9263    }
9264
9265    _createClass(Slide, [{
9266      key: "setContent",
9267      value: function setContent() {
9268        var _this = this;
9269
9270        var slide = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
9271        var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
9272
9273        if (hasClass(slide, 'loaded')) {
9274          return false;
9275        }
9276
9277        var settings = this.instance.settings;
9278        var slideConfig = this.slideConfig;
9279        var isMobileDevice = isMobile();
9280
9281        if (isFunction(settings.beforeSlideLoad)) {
9282          settings.beforeSlideLoad({
9283            index: this.index,
9284            slide: slide,
9285            player: false
9286          });
9287        }
9288
9289        var type = slideConfig.type;
9290        var position = slideConfig.descPosition;
9291        var slideMedia = slide.querySelector('.gslide-media');
9292        var slideTitle = slide.querySelector('.gslide-title');
9293        var slideText = slide.querySelector('.gslide-desc');
9294        var slideDesc = slide.querySelector('.gdesc-inner');
9295        var finalCallback = callback;
9296        var titleID = 'gSlideTitle_' + this.index;
9297        var textID = 'gSlideDesc_' + this.index;
9298
9299        if (isFunction(settings.afterSlideLoad)) {
9300          finalCallback = function finalCallback() {
9301            if (isFunction(callback)) {
9302              callback();
9303            }
9304
9305            settings.afterSlideLoad({
9306              index: _this.index,
9307              slide: slide,
9308              player: _this.instance.getSlidePlayerInstance(_this.index)
9309            });
9310          };
9311        }
9312
9313        if (slideConfig.title == '' && slideConfig.description == '') {
9314          if (slideDesc) {
9315            slideDesc.parentNode.parentNode.removeChild(slideDesc.parentNode);
9316          }
9317        } else {
9318          if (slideTitle && slideConfig.title !== '') {
9319            slideTitle.id = titleID;
9320            slideTitle.innerHTML = slideConfig.title;
9321          } else {
9322            slideTitle.parentNode.removeChild(slideTitle);
9323          }
9324
9325          if (slideText && slideConfig.description !== '') {
9326            slideText.id = textID;
9327
9328            if (isMobileDevice && settings.moreLength > 0) {
9329              slideConfig.smallDescription = this.slideShortDesc(slideConfig.description, settings.moreLength, settings.moreText);
9330              slideText.innerHTML = slideConfig.smallDescription;
9331              this.descriptionEvents(slideText, slideConfig);
9332            } else {
9333              slideText.innerHTML = slideConfig.description;
9334            }
9335          } else {
9336            slideText.parentNode.removeChild(slideText);
9337          }
9338
9339          addClass(slideMedia.parentNode, "desc-".concat(position));
9340          addClass(slideDesc.parentNode, "description-".concat(position));
9341        }
9342
9343        addClass(slideMedia, "gslide-".concat(type));
9344        addClass(slide, 'loaded');
9345
9346        if (type === 'video') {
9347          slideVideo.apply(this.instance, [slide, slideConfig, this.index, finalCallback]);
9348          return;
9349        }
9350
9351        if (type === 'external') {
9352          slideIframe.apply(this, [slide, slideConfig, this.index, finalCallback]);
9353          return;
9354        }
9355
9356        if (type === 'inline') {
9357          slideInline.apply(this.instance, [slide, slideConfig, this.index, finalCallback]);
9358
9359          if (slideConfig.draggable) {
9360            new DragSlides({
9361              dragEl: slide.querySelector('.gslide-inline'),
9362              toleranceX: settings.dragToleranceX,
9363              toleranceY: settings.dragToleranceY,
9364              slide: slide,
9365              instance: this.instance
9366            });
9367          }
9368
9369          return;
9370        }
9371
9372        if (type === 'image') {
9373          slideImage(slide, slideConfig, this.index, function () {
9374            var img = slide.querySelector('img');
9375
9376            if (slideConfig.draggable) {
9377              new DragSlides({
9378                dragEl: img,
9379                toleranceX: settings.dragToleranceX,
9380                toleranceY: settings.dragToleranceY,
9381                slide: slide,
9382                instance: _this.instance
9383              });
9384            }
9385
9386            if (slideConfig.zoomable && img.naturalWidth > img.offsetWidth) {
9387              addClass(img, 'zoomable');
9388              new ZoomImages(img, slide, function () {
9389                _this.instance.resize();
9390              });
9391            }
9392
9393            if (isFunction(finalCallback)) {
9394              finalCallback();
9395            }
9396          });
9397          return;
9398        }
9399
9400        if (isFunction(finalCallback)) {
9401          finalCallback();
9402        }
9403      }
9404    }, {
9405      key: "slideShortDesc",
9406      value: function slideShortDesc(string) {
9407        var n = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 50;
9408        var wordBoundary = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
9409        var div = document.createElement('div');
9410        div.innerHTML = string;
9411        var cleanedString = div.innerText;
9412        var useWordBoundary = wordBoundary;
9413        string = cleanedString.trim();
9414
9415        if (string.length <= n) {
9416          return string;
9417        }
9418
9419        var subString = string.substr(0, n - 1);
9420
9421        if (!useWordBoundary) {
9422          return subString;
9423        }
9424
9425        div = null;
9426        return subString + '... <a href="#" class="desc-more">' + wordBoundary + '</a>';
9427      }
9428    }, {
9429      key: "descriptionEvents",
9430      value: function descriptionEvents(desc, data) {
9431        var _this2 = this;
9432
9433        var moreLink = desc.querySelector('.desc-more');
9434
9435        if (!moreLink) {
9436          return false;
9437        }
9438
9439        addEvent('click', {
9440          onElement: moreLink,
9441          withCallback: function withCallback(event, target) {
9442            event.preventDefault();
9443            var body = document.body;
9444            var desc = closest(target, '.gslide-desc');
9445
9446            if (!desc) {
9447              return false;
9448            }
9449
9450            desc.innerHTML = data.description;
9451            addClass(body, 'gdesc-open');
9452            var shortEvent = addEvent('click', {
9453              onElement: [body, closest(desc, '.gslide-description')],
9454              withCallback: function withCallback(event, target) {
9455                if (event.target.nodeName.toLowerCase() !== 'a') {
9456                  removeClass(body, 'gdesc-open');
9457                  addClass(body, 'gdesc-closed');
9458                  desc.innerHTML = data.smallDescription;
9459
9460                  _this2.descriptionEvents(desc, data);
9461
9462                  setTimeout(function () {
9463                    removeClass(body, 'gdesc-closed');
9464                  }, 400);
9465                  shortEvent.destroy();
9466                }
9467              }
9468            });
9469          }
9470        });
9471      }
9472    }, {
9473      key: "create",
9474      value: function create() {
9475        return createHTML(this.instance.settings.slideHTML);
9476      }
9477    }, {
9478      key: "getConfig",
9479      value: function getConfig() {
9480        if (!isNode(this.element) && !this.element.hasOwnProperty('draggable')) {
9481          this.element.draggable = this.instance.settings.draggable;
9482        }
9483
9484        var parser = new SlideConfigParser(this.instance.settings.slideExtraAttributes);
9485        this.slideConfig = parser.parseConfig(this.element, this.instance.settings);
9486        return this.slideConfig;
9487      }
9488    }]);
9489
9490    return Slide;
9491  }();
9492
9493  var _version = '3.1.0';
9494
9495  var isMobile$1 = isMobile();
9496
9497  var isTouch$1 = isTouch();
9498
9499  var html = document.getElementsByTagName('html')[0];
9500  var defaults = {
9501    selector: '.glightbox',
9502    elements: null,
9503    skin: 'clean',
9504    theme: 'clean',
9505    closeButton: true,
9506    startAt: null,
9507    autoplayVideos: true,
9508    autofocusVideos: true,
9509    descPosition: 'bottom',
9510    width: '900px',
9511    height: '506px',
9512    videosWidth: '960px',
9513    beforeSlideChange: null,
9514    afterSlideChange: null,
9515    beforeSlideLoad: null,
9516    afterSlideLoad: null,
9517    slideInserted: null,
9518    slideRemoved: null,
9519    slideExtraAttributes: null,
9520    onOpen: null,
9521    onClose: null,
9522    loop: false,
9523    zoomable: true,
9524    draggable: true,
9525    dragAutoSnap: false,
9526    dragToleranceX: 40,
9527    dragToleranceY: 65,
9528    preload: true,
9529    oneSlidePerOpen: false,
9530    touchNavigation: true,
9531    touchFollowAxis: true,
9532    keyboardNavigation: true,
9533    closeOnOutsideClick: true,
9534    plugins: false,
9535    plyr: {
9536      css: 'https://cdn.plyr.io/3.6.12/plyr.css',
9537      js: 'https://cdn.plyr.io/3.6.12/plyr.js',
9538      config: {
9539        ratio: '16:9',
9540        fullscreen: {
9541          enabled: true,
9542          iosNative: true
9543        },
9544        youtube: {
9545          noCookie: true,
9546          rel: 0,
9547          showinfo: 0,
9548          iv_load_policy: 3
9549        },
9550        vimeo: {
9551          byline: false,
9552          portrait: false,
9553          title: false,
9554          transparent: false
9555        }
9556      }
9557    },
9558    openEffect: 'zoom',
9559    closeEffect: 'zoom',
9560    slideEffect: 'slide',
9561    moreText: 'See more',
9562    moreLength: 60,
9563    cssEfects: {
9564      fade: {
9565        "in": 'fadeIn',
9566        out: 'fadeOut'
9567      },
9568      zoom: {
9569        "in": 'zoomIn',
9570        out: 'zoomOut'
9571      },
9572      slide: {
9573        "in": 'slideInRight',
9574        out: 'slideOutLeft'
9575      },
9576      slideBack: {
9577        "in": 'slideInLeft',
9578        out: 'slideOutRight'
9579      },
9580      none: {
9581        "in": 'none',
9582        out: 'none'
9583      }
9584    },
9585    svg: {
9586      close: '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 512 512" xml:space="preserve"><g><g><path d="M505.943,6.058c-8.077-8.077-21.172-8.077-29.249,0L6.058,476.693c-8.077,8.077-8.077,21.172,0,29.249C10.096,509.982,15.39,512,20.683,512c5.293,0,10.586-2.019,14.625-6.059L505.943,35.306C514.019,27.23,514.019,14.135,505.943,6.058z"/></g></g><g><g><path d="M505.942,476.694L35.306,6.059c-8.076-8.077-21.172-8.077-29.248,0c-8.077,8.076-8.077,21.171,0,29.248l470.636,470.636c4.038,4.039,9.332,6.058,14.625,6.058c5.293,0,10.587-2.019,14.624-6.057C514.018,497.866,514.018,484.771,505.942,476.694z"/></g></g></svg>',
9587      next: '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 477.175 477.175" xml:space="preserve"> <g><path d="M360.731,229.075l-225.1-225.1c-5.3-5.3-13.8-5.3-19.1,0s-5.3,13.8,0,19.1l215.5,215.5l-215.5,215.5c-5.3,5.3-5.3,13.8,0,19.1c2.6,2.6,6.1,4,9.5,4c3.4,0,6.9-1.3,9.5-4l225.1-225.1C365.931,242.875,365.931,234.275,360.731,229.075z"/></g></svg>',
9588      prev: '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 477.175 477.175" xml:space="preserve"><g><path d="M145.188,238.575l215.5-215.5c5.3-5.3,5.3-13.8,0-19.1s-13.8-5.3-19.1,0l-225.1,225.1c-5.3,5.3-5.3,13.8,0,19.1l225.1,225c2.6,2.6,6.1,4,9.5,4s6.9-1.3,9.5-4c5.3-5.3,5.3-13.8,0-19.1L145.188,238.575z"/></g></svg>'
9589    }
9590  };
9591  defaults.slideHTML = "<div class=\"gslide\">\n    <div class=\"gslide-inner-content\">\n        <div class=\"ginner-container\">\n            <div class=\"gslide-media\">\n            </div>\n            <div class=\"gslide-description\">\n                <div class=\"gdesc-inner\">\n                    <h4 class=\"gslide-title\"></h4>\n                    <div class=\"gslide-desc\"></div>\n                </div>\n            </div>\n        </div>\n    </div>\n</div>";
9592  defaults.lightboxHTML = "<div id=\"glightbox-body\" class=\"glightbox-container\" tabindex=\"-1\" role=\"dialog\" aria-hidden=\"false\">\n    <div class=\"gloader visible\"></div>\n    <div class=\"goverlay\"></div>\n    <div class=\"gcontainer\">\n    <div id=\"glightbox-slider\" class=\"gslider\"></div>\n    <button class=\"gclose gbtn\" aria-label=\"Close\" data-taborder=\"3\">{closeSVG}</button>\n    <button class=\"gprev gbtn\" aria-label=\"Previous\" data-taborder=\"2\">{prevSVG}</button>\n    <button class=\"gnext gbtn\" aria-label=\"Next\" data-taborder=\"1\">{nextSVG}</button>\n</div>\n</div>";
9593
9594  var GlightboxInit = function () {
9595    function GlightboxInit() {
9596      var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
9597
9598      _classCallCheck(this, GlightboxInit);
9599
9600      this.customOptions = options;
9601      this.settings = extend(defaults, options);
9602      this.effectsClasses = this.getAnimationClasses();
9603      this.videoPlayers = {};
9604      this.apiEvents = [];
9605      this.fullElementsList = false;
9606    }
9607
9608    _createClass(GlightboxInit, [{
9609      key: "init",
9610      value: function init() {
9611        var _this = this;
9612
9613        var selector = this.getSelector();
9614
9615        if (selector) {
9616          this.baseEvents = addEvent('click', {
9617            onElement: selector,
9618            withCallback: function withCallback(e, target) {
9619              e.preventDefault();
9620
9621              _this.open(target);
9622            }
9623          });
9624        }
9625
9626        this.elements = this.getElements();
9627      }
9628    }, {
9629      key: "open",
9630      value: function open() {
9631        var element = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
9632        var startAt = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
9633
9634        if (this.elements.length === 0) {
9635          return false;
9636        }
9637
9638        this.activeSlide = null;
9639        this.prevActiveSlideIndex = null;
9640        this.prevActiveSlide = null;
9641        var index = isNumber(startAt) ? startAt : this.settings.startAt;
9642
9643        if (isNode(element)) {
9644          var gallery = element.getAttribute('data-gallery');
9645
9646          if (gallery) {
9647            this.fullElementsList = this.elements;
9648            this.elements = this.getGalleryElements(this.elements, gallery);
9649          }
9650
9651          if (isNil(index)) {
9652            index = this.getElementIndex(element);
9653
9654            if (index < 0) {
9655              index = 0;
9656            }
9657          }
9658        }
9659
9660        if (!isNumber(index)) {
9661          index = 0;
9662        }
9663
9664        this.build();
9665
9666        animateElement(this.overlay, this.settings.openEffect === 'none' ? 'none' : this.settings.cssEfects.fade["in"]);
9667
9668        var body = document.body;
9669        var scrollBar = window.innerWidth - document.documentElement.clientWidth;
9670
9671        if (scrollBar > 0) {
9672          var styleSheet = document.createElement('style');
9673          styleSheet.type = 'text/css';
9674          styleSheet.className = 'gcss-styles';
9675          //styleSheet.innerText = ".gscrollbar-fixer {margin-right: ".concat(scrollBar, "px}");
9676          document.head.appendChild(styleSheet);
9677
9678          addClass(body, 'gscrollbar-fixer');
9679        }
9680
9681        addClass(body, 'glightbox-open');
9682
9683        addClass(html, 'glightbox-open');
9684
9685        if (isMobile$1) {
9686          addClass(document.body, 'glightbox-mobile');
9687
9688          this.settings.slideEffect = 'slide';
9689          this.settings.autoplayVideos = false;
9690        }
9691
9692        this.showSlide(index, true);
9693
9694        if (this.elements.length === 1) {
9695          addClass(this.prevButton, 'glightbox-button-hidden');
9696
9697          addClass(this.nextButton, 'glightbox-button-hidden');
9698        } else {
9699          removeClass(this.prevButton, 'glightbox-button-hidden');
9700
9701          removeClass(this.nextButton, 'glightbox-button-hidden');
9702        }
9703
9704        this.lightboxOpen = true;
9705        this.trigger('open');
9706
9707        if (isFunction(this.settings.onOpen)) {
9708          this.settings.onOpen();
9709        }
9710
9711        if (isTouch$1 && this.settings.touchNavigation) {
9712          touchNavigation(this);
9713        }
9714
9715        if (this.settings.keyboardNavigation) {
9716          keyboardNavigation(this);
9717        }
9718      }
9719    }, {
9720      key: "openAt",
9721      value: function openAt() {
9722        var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
9723        this.open(null, index);
9724      }
9725    }, {
9726      key: "showSlide",
9727      value: function showSlide() {
9728        var _this2 = this;
9729
9730        var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
9731        var first = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
9732
9733        show(this.loader);
9734
9735        this.index = parseInt(index);
9736        var current = this.slidesContainer.querySelector('.current');
9737
9738        if (current) {
9739          removeClass(current, 'current');
9740        }
9741
9742        this.slideAnimateOut();
9743        var slideNode = this.slidesContainer.querySelectorAll('.gslide')[index];
9744
9745        if (hasClass(slideNode, 'loaded')) {
9746          this.slideAnimateIn(slideNode, first);
9747
9748          hide(this.loader);
9749        } else {
9750          show(this.loader);
9751
9752          var slide = this.elements[index];
9753          var slideData = {
9754            index: this.index,
9755            slide: slideNode,
9756            slideNode: slideNode,
9757            slideConfig: slide.slideConfig,
9758            slideIndex: this.index,
9759            trigger: slide.node,
9760            player: null
9761          };
9762          this.trigger('slide_before_load', slideData);
9763          slide.instance.setContent(slideNode, function () {
9764            hide(_this2.loader);
9765
9766            _this2.resize();
9767
9768            _this2.slideAnimateIn(slideNode, first);
9769
9770            _this2.trigger('slide_after_load', slideData);
9771          });
9772        }
9773
9774        this.slideDescription = slideNode.querySelector('.gslide-description');
9775        this.slideDescriptionContained = this.slideDescription && hasClass(this.slideDescription.parentNode, 'gslide-media');
9776
9777        if (this.settings.preload) {
9778          this.preloadSlide(index + 1);
9779          this.preloadSlide(index - 1);
9780        }
9781
9782        this.updateNavigationClasses();
9783        this.activeSlide = slideNode;
9784      }
9785    }, {
9786      key: "preloadSlide",
9787      value: function preloadSlide(index) {
9788        var _this3 = this;
9789
9790        if (index < 0 || index > this.elements.length - 1) {
9791          return false;
9792        }
9793
9794        if (isNil(this.elements[index])) {
9795          return false;
9796        }
9797
9798        var slideNode = this.slidesContainer.querySelectorAll('.gslide')[index];
9799
9800        if (hasClass(slideNode, 'loaded')) {
9801          return false;
9802        }
9803
9804        var slide = this.elements[index];
9805        var type = slide.type;
9806        var slideData = {
9807          index: index,
9808          slide: slideNode,
9809          slideNode: slideNode,
9810          slideConfig: slide.slideConfig,
9811          slideIndex: index,
9812          trigger: slide.node,
9813          player: null
9814        };
9815        this.trigger('slide_before_load', slideData);
9816
9817        if (type === 'video' || type === 'external') {
9818          setTimeout(function () {
9819            slide.instance.setContent(slideNode, function () {
9820              _this3.trigger('slide_after_load', slideData);
9821            });
9822          }, 200);
9823        } else {
9824          slide.instance.setContent(slideNode, function () {
9825            _this3.trigger('slide_after_load', slideData);
9826          });
9827        }
9828      }
9829    }, {
9830      key: "prevSlide",
9831      value: function prevSlide() {
9832        this.goToSlide(this.index - 1);
9833      }
9834    }, {
9835      key: "nextSlide",
9836      value: function nextSlide() {
9837        this.goToSlide(this.index + 1);
9838      }
9839    }, {
9840      key: "goToSlide",
9841      value: function goToSlide() {
9842        var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
9843        this.prevActiveSlide = this.activeSlide;
9844        this.prevActiveSlideIndex = this.index;
9845
9846        if (!this.loop() && (index < 0 || index > this.elements.length - 1)) {
9847          return false;
9848        }
9849
9850        if (index < 0) {
9851          index = this.elements.length - 1;
9852        } else if (index >= this.elements.length) {
9853          index = 0;
9854        }
9855
9856        this.showSlide(index);
9857      }
9858    }, {
9859      key: "insertSlide",
9860      value: function insertSlide() {
9861        var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
9862        var index = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : -1;
9863
9864        if (index < 0) {
9865          index = this.elements.length;
9866        }
9867
9868        var slide = new Slide(config, this, index);
9869        var data = slide.getConfig();
9870
9871        var slideInfo = extend({}, data);
9872
9873        var newSlide = slide.create();
9874        var totalSlides = this.elements.length - 1;
9875        slideInfo.index = index;
9876        slideInfo.node = false;
9877        slideInfo.instance = slide;
9878        slideInfo.slideConfig = data;
9879        this.elements.splice(index, 0, slideInfo);
9880        var addedSlideNode = null;
9881        var addedSlidePlayer = null;
9882
9883        if (this.slidesContainer) {
9884          if (index > totalSlides) {
9885            this.slidesContainer.appendChild(newSlide);
9886          } else {
9887            var existingSlide = this.slidesContainer.querySelectorAll('.gslide')[index];
9888            this.slidesContainer.insertBefore(newSlide, existingSlide);
9889          }
9890
9891          if (this.settings.preload && this.index == 0 && index == 0 || this.index - 1 == index || this.index + 1 == index) {
9892            this.preloadSlide(index);
9893          }
9894
9895          if (this.index === 0 && index === 0) {
9896            this.index = 1;
9897          }
9898
9899          this.updateNavigationClasses();
9900          addedSlideNode = this.slidesContainer.querySelectorAll('.gslide')[index];
9901          addedSlidePlayer = this.getSlidePlayerInstance(index);
9902          slideInfo.slideNode = addedSlideNode;
9903        }
9904
9905        this.trigger('slide_inserted', {
9906          index: index,
9907          slide: addedSlideNode,
9908          slideNode: addedSlideNode,
9909          slideConfig: data,
9910          slideIndex: index,
9911          trigger: null,
9912          player: addedSlidePlayer
9913        });
9914
9915        if (isFunction(this.settings.slideInserted)) {
9916          this.settings.slideInserted({
9917            index: index,
9918            slide: addedSlideNode,
9919            player: addedSlidePlayer
9920          });
9921        }
9922      }
9923    }, {
9924      key: "removeSlide",
9925      value: function removeSlide() {
9926        var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : -1;
9927
9928        if (index < 0 || index > this.elements.length - 1) {
9929          return false;
9930        }
9931
9932        var slide = this.slidesContainer && this.slidesContainer.querySelectorAll('.gslide')[index];
9933
9934        if (slide) {
9935          if (this.getActiveSlideIndex() == index) {
9936            if (index == this.elements.length - 1) {
9937              this.prevSlide();
9938            } else {
9939              this.nextSlide();
9940            }
9941          }
9942
9943          slide.parentNode.removeChild(slide);
9944        }
9945
9946        this.elements.splice(index, 1);
9947        this.trigger('slide_removed', index);
9948
9949        if (isFunction(this.settings.slideRemoved)) {
9950          this.settings.slideRemoved(index);
9951        }
9952      }
9953    }, {
9954      key: "slideAnimateIn",
9955      value: function slideAnimateIn(slide, first) {
9956        var _this4 = this;
9957
9958        var slideMedia = slide.querySelector('.gslide-media');
9959        var slideDesc = slide.querySelector('.gslide-description');
9960        var prevData = {
9961          index: this.prevActiveSlideIndex,
9962          slide: this.prevActiveSlide,
9963          slideNode: this.prevActiveSlide,
9964          slideIndex: this.prevActiveSlide,
9965          slideConfig: isNil(this.prevActiveSlideIndex) ? null : this.elements[this.prevActiveSlideIndex].slideConfig,
9966          trigger: isNil(this.prevActiveSlideIndex) ? null : this.elements[this.prevActiveSlideIndex].node,
9967          player: this.getSlidePlayerInstance(this.prevActiveSlideIndex)
9968        };
9969        var nextData = {
9970          index: this.index,
9971          slide: this.activeSlide,
9972          slideNode: this.activeSlide,
9973          slideConfig: this.elements[this.index].slideConfig,
9974          slideIndex: this.index,
9975          trigger: this.elements[this.index].node,
9976          player: this.getSlidePlayerInstance(this.index)
9977        };
9978
9979        if (slideMedia.offsetWidth > 0 && slideDesc) {
9980          hide(slideDesc);
9981
9982          slideDesc.style.display = '';
9983        }
9984
9985        removeClass(slide, this.effectsClasses);
9986
9987        if (first) {
9988          animateElement(slide, this.settings.cssEfects[this.settings.openEffect]["in"], function () {
9989            if (_this4.settings.autoplayVideos) {
9990              _this4.slidePlayerPlay(slide);
9991            }
9992
9993            _this4.trigger('slide_changed', {
9994              prev: prevData,
9995              current: nextData
9996            });
9997
9998            if (isFunction(_this4.settings.afterSlideChange)) {
9999              _this4.settings.afterSlideChange.apply(_this4, [prevData, nextData]);
10000            }
10001          });
10002        } else {
10003          var effectName = this.settings.slideEffect;
10004          var animIn = effectName !== 'none' ? this.settings.cssEfects[effectName]["in"] : effectName;
10005
10006          if (this.prevActiveSlideIndex > this.index) {
10007            if (this.settings.slideEffect == 'slide') {
10008              animIn = this.settings.cssEfects.slideBack["in"];
10009            }
10010          }
10011
10012          animateElement(slide, animIn, function () {
10013            if (_this4.settings.autoplayVideos) {
10014              _this4.slidePlayerPlay(slide);
10015            }
10016
10017            _this4.trigger('slide_changed', {
10018              prev: prevData,
10019              current: nextData
10020            });
10021
10022            if (isFunction(_this4.settings.afterSlideChange)) {
10023              _this4.settings.afterSlideChange.apply(_this4, [prevData, nextData]);
10024            }
10025          });
10026        }
10027
10028        setTimeout(function () {
10029          _this4.resize(slide);
10030        }, 100);
10031
10032        addClass(slide, 'current');
10033      }
10034    }, {
10035      key: "slideAnimateOut",
10036      value: function slideAnimateOut() {
10037        if (!this.prevActiveSlide) {
10038          return false;
10039        }
10040
10041        var prevSlide = this.prevActiveSlide;
10042
10043        removeClass(prevSlide, this.effectsClasses);
10044
10045        addClass(prevSlide, 'prev');
10046
10047        var animation = this.settings.slideEffect;
10048        var animOut = animation !== 'none' ? this.settings.cssEfects[animation].out : animation;
10049        this.slidePlayerPause(prevSlide);
10050        this.trigger('slide_before_change', {
10051          prev: {
10052            index: this.prevActiveSlideIndex,
10053            slide: this.prevActiveSlide,
10054            slideNode: this.prevActiveSlide,
10055            slideIndex: this.prevActiveSlideIndex,
10056            slideConfig: isNil(this.prevActiveSlideIndex) ? null : this.elements[this.prevActiveSlideIndex].slideConfig,
10057            trigger: isNil(this.prevActiveSlideIndex) ? null : this.elements[this.prevActiveSlideIndex].node,
10058            player: this.getSlidePlayerInstance(this.prevActiveSlideIndex)
10059          },
10060          current: {
10061            index: this.index,
10062            slide: this.activeSlide,
10063            slideNode: this.activeSlide,
10064            slideIndex: this.index,
10065            slideConfig: this.elements[this.index].slideConfig,
10066            trigger: this.elements[this.index].node,
10067            player: this.getSlidePlayerInstance(this.index)
10068          }
10069        });
10070
10071        if (isFunction(this.settings.beforeSlideChange)) {
10072          this.settings.beforeSlideChange.apply(this, [{
10073            index: this.prevActiveSlideIndex,
10074            slide: this.prevActiveSlide,
10075            player: this.getSlidePlayerInstance(this.prevActiveSlideIndex)
10076          }, {
10077            index: this.index,
10078            slide: this.activeSlide,
10079            player: this.getSlidePlayerInstance(this.index)
10080          }]);
10081        }
10082
10083        if (this.prevActiveSlideIndex > this.index && this.settings.slideEffect == 'slide') {
10084          animOut = this.settings.cssEfects.slideBack.out;
10085        }
10086
10087        animateElement(prevSlide, animOut, function () {
10088          var container = prevSlide.querySelector('.ginner-container');
10089          var media = prevSlide.querySelector('.gslide-media');
10090          var desc = prevSlide.querySelector('.gslide-description');
10091          container.style.transform = '';
10092          media.style.transform = '';
10093
10094          removeClass(media, 'greset');
10095
10096          media.style.opacity = '';
10097
10098          if (desc) {
10099            desc.style.opacity = '';
10100          }
10101
10102          removeClass(prevSlide, 'prev');
10103        });
10104      }
10105    }, {
10106      key: "getAllPlayers",
10107      value: function getAllPlayers() {
10108        return this.videoPlayers;
10109      }
10110    }, {
10111      key: "getSlidePlayerInstance",
10112      value: function getSlidePlayerInstance(index) {
10113        var id = 'gvideo' + index;
10114        var videoPlayers = this.getAllPlayers();
10115
10116        if (has(videoPlayers, id) && videoPlayers[id]) {
10117          return videoPlayers[id];
10118        }
10119
10120        return false;
10121      }
10122    }, {
10123      key: "stopSlideVideo",
10124      value: function stopSlideVideo(slide) {
10125        if (isNode(slide)) {
10126          var node = slide.querySelector('.gvideo-wrapper');
10127
10128          if (node) {
10129            slide = node.getAttribute('data-index');
10130          }
10131        }
10132
10133        console.log('stopSlideVideo is deprecated, use slidePlayerPause');
10134        var player = this.getSlidePlayerInstance(slide);
10135
10136        if (player && player.playing) {
10137          player.pause();
10138        }
10139      }
10140    }, {
10141      key: "slidePlayerPause",
10142      value: function slidePlayerPause(slide) {
10143        if (isNode(slide)) {
10144          var node = slide.querySelector('.gvideo-wrapper');
10145
10146          if (node) {
10147            slide = node.getAttribute('data-index');
10148          }
10149        }
10150
10151        var player = this.getSlidePlayerInstance(slide);
10152
10153        if (player && player.playing) {
10154          player.pause();
10155        }
10156      }
10157    }, {
10158      key: "playSlideVideo",
10159      value: function playSlideVideo(slide) {
10160        if (isNode(slide)) {
10161          var node = slide.querySelector('.gvideo-wrapper');
10162
10163          if (node) {
10164            slide = node.getAttribute('data-index');
10165          }
10166        }
10167
10168        console.log('playSlideVideo is deprecated, use slidePlayerPlay');
10169        var player = this.getSlidePlayerInstance(slide);
10170
10171        if (player && !player.playing) {
10172          player.play();
10173        }
10174      }
10175    }, {
10176      key: "slidePlayerPlay",
10177      value: function slidePlayerPlay(slide) {
10178        var _this$settings$plyr$c;
10179
10180        if (isMobile$1 && !((_this$settings$plyr$c = this.settings.plyr.config) !== null && _this$settings$plyr$c !== void 0 && _this$settings$plyr$c.muted)) {
10181          return;
10182        }
10183
10184        if (isNode(slide)) {
10185          var node = slide.querySelector('.gvideo-wrapper');
10186
10187          if (node) {
10188            slide = node.getAttribute('data-index');
10189          }
10190        }
10191
10192        var player = this.getSlidePlayerInstance(slide);
10193
10194        if (player && !player.playing) {
10195          player.play();
10196
10197          if (this.settings.autofocusVideos) {
10198            player.elements.container.focus();
10199          }
10200        }
10201      }
10202    }, {
10203      key: "setElements",
10204      value: function setElements(elements) {
10205        var _this5 = this;
10206
10207        this.settings.elements = false;
10208        var newElements = [];
10209
10210        if (elements && elements.length) {
10211          each(elements, function (el, i) {
10212            var slide = new Slide(el, _this5, i);
10213            var data = slide.getConfig();
10214
10215            var slideInfo = extend({}, data);
10216
10217            slideInfo.slideConfig = data;
10218            slideInfo.instance = slide;
10219            slideInfo.index = i;
10220            newElements.push(slideInfo);
10221          });
10222        }
10223
10224        this.elements = newElements;
10225
10226        if (this.lightboxOpen) {
10227          this.slidesContainer.innerHTML = '';
10228
10229          if (this.elements.length) {
10230            each(this.elements, function () {
10231              var slide = createHTML(_this5.settings.slideHTML);
10232
10233              _this5.slidesContainer.appendChild(slide);
10234            });
10235
10236            this.showSlide(0, true);
10237          }
10238        }
10239      }
10240    }, {
10241      key: "getElementIndex",
10242      value: function getElementIndex(node) {
10243        var index = false;
10244
10245        each(this.elements, function (el, i) {
10246          if (has(el, 'node') && el.node == node) {
10247            index = i;
10248            return true;
10249          }
10250        });
10251
10252        return index;
10253      }
10254    }, {
10255      key: "getElements",
10256      value: function getElements() {
10257        var _this6 = this;
10258
10259        var list = [];
10260        this.elements = this.elements ? this.elements : [];
10261
10262        if (!isNil(this.settings.elements) && isArray(this.settings.elements) && this.settings.elements.length) {
10263          each(this.settings.elements, function (el, i) {
10264            var slide = new Slide(el, _this6, i);
10265            var elData = slide.getConfig();
10266
10267            var slideInfo = extend({}, elData);
10268
10269            slideInfo.node = false;
10270            slideInfo.index = i;
10271            slideInfo.instance = slide;
10272            slideInfo.slideConfig = elData;
10273            list.push(slideInfo);
10274          });
10275        }
10276
10277        var nodes = false;
10278        var selector = this.getSelector();
10279
10280        if (selector) {
10281          nodes = document.querySelectorAll(this.getSelector());
10282        }
10283
10284        if (!nodes) {
10285          return list;
10286        }
10287
10288        each(nodes, function (el, i) {
10289          var slide = new Slide(el, _this6, i);
10290          var elData = slide.getConfig();
10291
10292          var slideInfo = extend({}, elData);
10293
10294          slideInfo.node = el;
10295          slideInfo.index = i;
10296          slideInfo.instance = slide;
10297          slideInfo.slideConfig = elData;
10298          slideInfo.gallery = el.getAttribute('data-gallery');
10299          list.push(slideInfo);
10300        });
10301
10302        return list;
10303      }
10304    }, {
10305      key: "getGalleryElements",
10306      value: function getGalleryElements(list, gallery) {
10307        return list.filter(function (el) {
10308          return el.gallery == gallery;
10309        });
10310      }
10311    }, {
10312      key: "getSelector",
10313      value: function getSelector() {
10314        if (this.settings.elements) {
10315          return false;
10316        }
10317
10318        if (this.settings.selector && this.settings.selector.substring(0, 5) == 'data-') {
10319          return "*[".concat(this.settings.selector, "]");
10320        }
10321
10322        return this.settings.selector;
10323      }
10324    }, {
10325      key: "getActiveSlide",
10326      value: function getActiveSlide() {
10327        return this.slidesContainer.querySelectorAll('.gslide')[this.index];
10328      }
10329    }, {
10330      key: "getActiveSlideIndex",
10331      value: function getActiveSlideIndex() {
10332        return this.index;
10333      }
10334    }, {
10335      key: "getAnimationClasses",
10336      value: function getAnimationClasses() {
10337        var effects = [];
10338
10339        for (var key in this.settings.cssEfects) {
10340          if (this.settings.cssEfects.hasOwnProperty(key)) {
10341            var effect = this.settings.cssEfects[key];
10342            effects.push("g".concat(effect["in"]));
10343            effects.push("g".concat(effect.out));
10344          }
10345        }
10346
10347        return effects.join(' ');
10348      }
10349    }, {
10350      key: "build",
10351      value: function build() {
10352        var _this7 = this;
10353
10354        if (this.built) {
10355          return false;
10356        }
10357
10358        var children = document.body.childNodes;
10359        var bodyChildElms = [];
10360
10361        each(children, function (el) {
10362          if (el.parentNode == document.body && el.nodeName.charAt(0) !== '#' && el.hasAttribute && !el.hasAttribute('aria-hidden')) {
10363            bodyChildElms.push(el);
10364            el.setAttribute('aria-hidden', 'true');
10365          }
10366        });
10367
10368        var nextSVG = has(this.settings.svg, 'next') ? this.settings.svg.next : '';
10369        var prevSVG = has(this.settings.svg, 'prev') ? this.settings.svg.prev : '';
10370        var closeSVG = has(this.settings.svg, 'close') ? this.settings.svg.close : '';
10371        var lightboxHTML = this.settings.lightboxHTML;
10372        lightboxHTML = lightboxHTML.replace(/{nextSVG}/g, nextSVG);
10373        lightboxHTML = lightboxHTML.replace(/{prevSVG}/g, prevSVG);
10374        lightboxHTML = lightboxHTML.replace(/{closeSVG}/g, closeSVG);
10375        lightboxHTML = createHTML(lightboxHTML);
10376        document.body.appendChild(lightboxHTML);
10377        var modal = document.getElementById('glightbox-body');
10378        this.modal = modal;
10379        var closeButton = modal.querySelector('.gclose');
10380        this.prevButton = modal.querySelector('.gprev');
10381        this.nextButton = modal.querySelector('.gnext');
10382        this.overlay = modal.querySelector('.goverlay');
10383        this.loader = modal.querySelector('.gloader');
10384        this.slidesContainer = document.getElementById('glightbox-slider');
10385        this.bodyHiddenChildElms = bodyChildElms;
10386        this.events = {};
10387
10388        addClass(this.modal, 'glightbox-' + this.settings.skin);
10389
10390        if (this.settings.closeButton && closeButton) {
10391          this.events['close'] = addEvent('click', {
10392            onElement: closeButton,
10393            withCallback: function withCallback(e, target) {
10394              e.preventDefault();
10395
10396              _this7.close();
10397            }
10398          });
10399        }
10400
10401        if (closeButton && !this.settings.closeButton) {
10402          closeButton.parentNode.removeChild(closeButton);
10403        }
10404
10405        if (this.nextButton) {
10406          this.events['next'] = addEvent('click', {
10407            onElement: this.nextButton,
10408            withCallback: function withCallback(e, target) {
10409              e.preventDefault();
10410
10411              _this7.nextSlide();
10412            }
10413          });
10414        }
10415
10416        if (this.prevButton) {
10417          this.events['prev'] = addEvent('click', {
10418            onElement: this.prevButton,
10419            withCallback: function withCallback(e, target) {
10420              e.preventDefault();
10421
10422              _this7.prevSlide();
10423            }
10424          });
10425        }
10426
10427        if (this.settings.closeOnOutsideClick) {
10428          this.events['outClose'] = addEvent('click', {
10429            onElement: modal,
10430            withCallback: function withCallback(e, target) {
10431              if (!_this7.preventOutsideClick && !hasClass(document.body, 'glightbox-mobile') && !closest(e.target, '.ginner-container')) {
10432                if (!closest(e.target, '.gbtn') && !hasClass(e.target, 'gnext') && !hasClass(e.target, 'gprev')) {
10433                  _this7.close();
10434                }
10435              }
10436            }
10437          });
10438        }
10439
10440        each(this.elements, function (slide, i) {
10441          _this7.slidesContainer.appendChild(slide.instance.create());
10442
10443          slide.slideNode = _this7.slidesContainer.querySelectorAll('.gslide')[i];
10444        });
10445
10446        if (isTouch$1) {
10447          addClass(document.body, 'glightbox-touch');
10448          this.settings.autoplayVideos = false;
10449        }
10450
10451        this.events['resize'] = addEvent('resize', {
10452          onElement: window,
10453          withCallback: function withCallback() {
10454            _this7.resize();
10455          }
10456        });
10457        this.built = true;
10458      }
10459    }, {
10460      key: "resize",
10461      value: function resize() {
10462        var slide = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
10463        slide = !slide ? this.activeSlide : slide;
10464
10465        if (!slide || hasClass(slide, 'zoomed')) {
10466          return;
10467        }
10468
10469        var winSize = windowSize();
10470
10471        var video = slide.querySelector('.gvideo-wrapper');
10472        var image = slide.querySelector('.gslide-image');
10473        var description = this.slideDescription;
10474        var winWidth = winSize.width;
10475        var winHeight = winSize.height;
10476
10477        if (winWidth <= 768) {
10478          addClass(document.body, 'glightbox-mobile');
10479        } else {
10480          removeClass(document.body, 'glightbox-mobile');
10481        }
10482
10483        if (!video && !image) {
10484          return;
10485        }
10486
10487        var descriptionResize = false;
10488
10489        if (description && (hasClass(description, 'description-bottom') || hasClass(description, 'description-top')) && !hasClass(description, 'gabsolute')) {
10490          descriptionResize = true;
10491        }
10492
10493        if (image) {
10494          if (winWidth <= 768) {
10495            var imgNode = image.querySelector('img');
10496          } else if (descriptionResize) {
10497            var descHeight = description.offsetHeight;
10498
10499            var _imgNode = image.querySelector('img');
10500
10501            _imgNode.setAttribute('style', "max-height: calc(100vh - ".concat(descHeight, "px)"));
10502
10503            description.setAttribute('style', "max-width: ".concat(_imgNode.offsetWidth, "px;"));
10504          }
10505        }
10506
10507        if (video) {
10508          var ratio = has(this.settings.plyr.config, 'ratio') ? this.settings.plyr.config.ratio : '';
10509
10510          if (!ratio) {
10511            var containerWidth = video.clientWidth;
10512            var containerHeight = video.clientHeight;
10513            var divisor = containerWidth / containerHeight;
10514            ratio = "".concat(containerWidth / divisor, ":").concat(containerHeight / divisor);
10515          }
10516
10517          var videoRatio = ratio.split(':');
10518          var videoWidth = this.settings.videosWidth;
10519          var maxWidth = this.settings.videosWidth;
10520
10521          if (isNumber(videoWidth) || videoWidth.indexOf('px') !== -1) {
10522            maxWidth = parseInt(videoWidth);
10523          } else {
10524            if (videoWidth.indexOf('vw') !== -1) {
10525              maxWidth = winWidth * parseInt(videoWidth) / 100;
10526            } else if (videoWidth.indexOf('vh') !== -1) {
10527              maxWidth = winHeight * parseInt(videoWidth) / 100;
10528            } else if (videoWidth.indexOf('%') !== -1) {
10529              maxWidth = winWidth * parseInt(videoWidth) / 100;
10530            } else {
10531              maxWidth = parseInt(video.clientWidth);
10532            }
10533          }
10534
10535          var maxHeight = maxWidth / (parseInt(videoRatio[0]) / parseInt(videoRatio[1]));
10536          maxHeight = Math.floor(maxHeight);
10537
10538          if (descriptionResize) {
10539            winHeight = winHeight - description.offsetHeight;
10540          }
10541
10542          if (maxWidth > winWidth || maxHeight > winHeight || winHeight < maxHeight && winWidth > maxWidth) {
10543            var vwidth = video.offsetWidth;
10544            var vheight = video.offsetHeight;
10545
10546            var _ratio = winHeight / vheight;
10547
10548            var vsize = {
10549              width: vwidth * _ratio,
10550              height: vheight * _ratio
10551            };
10552            video.parentNode.setAttribute('style', "max-width: ".concat(vsize.width, "px"));
10553
10554            if (descriptionResize) {
10555              description.setAttribute('style', "max-width: ".concat(vsize.width, "px;"));
10556            }
10557          } else {
10558            video.parentNode.style.maxWidth = "".concat(videoWidth);
10559
10560            if (descriptionResize) {
10561              description.setAttribute('style', "max-width: ".concat(videoWidth, ";"));
10562            }
10563          }
10564        }
10565      }
10566    }, {
10567      key: "reload",
10568      value: function reload() {
10569        this.init();
10570      }
10571    }, {
10572      key: "updateNavigationClasses",
10573      value: function updateNavigationClasses() {
10574        var loop = this.loop();
10575
10576        removeClass(this.nextButton, 'disabled');
10577
10578        removeClass(this.prevButton, 'disabled');
10579
10580        if (this.index == 0 && this.elements.length - 1 == 0) {
10581          addClass(this.prevButton, 'disabled');
10582
10583          addClass(this.nextButton, 'disabled');
10584        } else if (this.index === 0 && !loop) {
10585          addClass(this.prevButton, 'disabled');
10586        } else if (this.index === this.elements.length - 1 && !loop) {
10587          addClass(this.nextButton, 'disabled');
10588        }
10589      }
10590    }, {
10591      key: "loop",
10592      value: function loop() {
10593        var loop = has(this.settings, 'loopAtEnd') ? this.settings.loopAtEnd : null;
10594        loop = has(this.settings, 'loop') ? this.settings.loop : loop;
10595        return loop;
10596      }
10597    }, {
10598      key: "close",
10599      value: function close() {
10600        var _this8 = this;
10601
10602        if (!this.lightboxOpen) {
10603          if (this.events) {
10604            for (var key in this.events) {
10605              if (this.events.hasOwnProperty(key)) {
10606                this.events[key].destroy();
10607              }
10608            }
10609
10610            this.events = null;
10611          }
10612
10613          return false;
10614        }
10615
10616        if (this.closing) {
10617          return false;
10618        }
10619
10620        this.closing = true;
10621        this.slidePlayerPause(this.activeSlide);
10622
10623        if (this.fullElementsList) {
10624          this.elements = this.fullElementsList;
10625        }
10626
10627        if (this.bodyHiddenChildElms.length) {
10628          each(this.bodyHiddenChildElms, function (el) {
10629            el.removeAttribute('aria-hidden');
10630          });
10631        }
10632
10633        addClass(this.modal, 'glightbox-closing');
10634
10635        animateElement(this.overlay, this.settings.openEffect == 'none' ? 'none' : this.settings.cssEfects.fade.out);
10636
10637        animateElement(this.activeSlide, this.settings.cssEfects[this.settings.closeEffect].out, function () {
10638          _this8.activeSlide = null;
10639          _this8.prevActiveSlideIndex = null;
10640          _this8.prevActiveSlide = null;
10641          _this8.built = false;
10642
10643          if (_this8.events) {
10644            for (var _key in _this8.events) {
10645              if (_this8.events.hasOwnProperty(_key)) {
10646                _this8.events[_key].destroy();
10647              }
10648            }
10649
10650            _this8.events = null;
10651          }
10652
10653          var body = document.body;
10654
10655          removeClass(html, 'glightbox-open');
10656
10657          removeClass(body, 'glightbox-open touching gdesc-open glightbox-touch glightbox-mobile gscrollbar-fixer');
10658
10659          _this8.modal.parentNode.removeChild(_this8.modal);
10660
10661          _this8.trigger('close');
10662
10663          if (isFunction(_this8.settings.onClose)) {
10664            _this8.settings.onClose();
10665          }
10666
10667          var styles = document.querySelector('.gcss-styles');
10668
10669          if (styles) {
10670            styles.parentNode.removeChild(styles);
10671          }
10672
10673          _this8.lightboxOpen = false;
10674          _this8.closing = null;
10675        });
10676      }
10677    }, {
10678      key: "destroy",
10679      value: function destroy() {
10680        this.close();
10681        this.clearAllEvents();
10682
10683        if (this.baseEvents) {
10684          this.baseEvents.destroy();
10685        }
10686      }
10687    }, {
10688      key: "on",
10689      value: function on(evt, callback) {
10690        var once = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
10691
10692        if (!evt || !isFunction(callback)) {
10693          throw new TypeError('Event name and callback must be defined');
10694        }
10695
10696        this.apiEvents.push({
10697          evt: evt,
10698          once: once,
10699          callback: callback
10700        });
10701      }
10702    }, {
10703      key: "once",
10704      value: function once(evt, callback) {
10705        this.on(evt, callback, true);
10706      }
10707    }, {
10708      key: "trigger",
10709      value: function trigger(eventName) {
10710        var _this9 = this;
10711
10712        var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
10713        var onceTriggered = [];
10714
10715        each(this.apiEvents, function (event, i) {
10716          var evt = event.evt,
10717              once = event.once,
10718              callback = event.callback;
10719
10720          if (evt == eventName) {
10721            callback(data);
10722
10723            if (once) {
10724              onceTriggered.push(i);
10725            }
10726          }
10727        });
10728
10729        if (onceTriggered.length) {
10730          each(onceTriggered, function (i) {
10731            return _this9.apiEvents.splice(i, 1);
10732          });
10733        }
10734      }
10735    }, {
10736      key: "clearAllEvents",
10737      value: function clearAllEvents() {
10738        this.apiEvents.splice(0, this.apiEvents.length);
10739      }
10740    }, {
10741      key: "version",
10742      value: function version() {
10743        return _version;
10744      }
10745    }]);
10746
10747    return GlightboxInit;
10748  }();
10749
10750  function glightbox () {
10751    var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
10752    var instance = new GlightboxInit(options);
10753    instance.init();
10754    return instance;
10755  }
10756
10757  return glightbox;
10758
10759})));
10760/*!
10761 * Headhesive.js v1.2.3 - An on-demand sticky header
10762 * Author: Copyright (c) Mark Goodyear <@markgdyr> <http://markgoodyear.com>
10763 * Url: http://markgoodyear.com/labs/headhesive
10764 * License: MIT
10765 */
10766!function(t,e){"function"==typeof define&&define.amd?define([],function(){return e()}):"object"==typeof exports?module.exports=e():t.Headhesive=e()}(this,function(){"use strict";var t=function(e,s){for(var o in s)s.hasOwnProperty(o)&&(e[o]="object"==typeof s[o]?t(e[o],s[o]):s[o]);return e},e=function(t,e){var s,o,i,n=Date.now||function(){return(new Date).getTime()},l=null,c=0,r=function(){c=n(),l=null,i=t.apply(s,o),s=o=null};return function(){var f=n(),h=e-(f-c);return s=this,o=arguments,0>=h?(clearTimeout(l),l=null,c=f,i=t.apply(s,o),s=o=null):l||(l=setTimeout(r,h)),i}},s=function(){return void 0!==window.pageYOffset?window.pageYOffset:(document.documentElement||document.body.parentNode||document.body).scrollTop},o=function(t,e){for(var s=0,o=t.offsetHeight;t;)s+=t.offsetTop,t=t.offsetParent;return"bottom"===e&&(s+=o),s},i=function(e,s){"querySelector"in document&&"addEventListener"in window&&(this.visible=!1,this.options={offset:300,offsetSide:"top",classes:{clone:"headhesive",stick:"headhesive--stick",unstick:"headhesive--unstick"},throttle:250,onInit:function(){},onStick:function(){},onUnstick:function(){},onDestroy:function(){}},this.elem="string"==typeof e?document.querySelector(e):e,this.options=t(this.options,s),this.init())};return i.prototype={constructor:i,init:function(){if(this.clonedElem=this.elem.cloneNode(!0),this.clonedElem.className+=" "+this.options.classes.clone,document.body.insertBefore(this.clonedElem,document.body.firstChild),"number"==typeof this.options.offset)this.scrollOffset=this.options.offset;else{if("string"!=typeof this.options.offset)throw new Error("Invalid offset: "+this.options.offset);this._setScrollOffset()}this._throttleUpdate=e(this.update.bind(this),this.options.throttle),this._throttleScrollOffset=e(this._setScrollOffset.bind(this),this.options.throttle),window.addEventListener("scroll",this._throttleUpdate,!1),window.addEventListener("resize",this._throttleScrollOffset,!1),this.options.onInit.call(this)},_setScrollOffset:function(){"string"==typeof this.options.offset&&(this.scrollOffset=o(document.querySelector(this.options.offset),this.options.offsetSide))},destroy:function(){document.body.removeChild(this.clonedElem),window.removeEventListener("scroll",this._throttleUpdate),window.removeEventListener("resize",this._throttleScrollOffset),this.options.onDestroy.call(this)},stick:function(){this.visible||(this.clonedElem.className=this.clonedElem.className.replace(new RegExp("(^|\\s)*"+this.options.classes.unstick+"(\\s|$)*","g"),""),this.clonedElem.className+=" "+this.options.classes.stick,this.visible=!0,this.options.onStick.call(this))},unstick:function(){this.visible&&(this.clonedElem.className=this.clonedElem.className.replace(new RegExp("(^|\\s)*"+this.options.classes.stick+"(\\s|$)*","g"),""),this.clonedElem.className+=" "+this.options.classes.unstick,this.visible=!1,this.options.onUnstick.call(this))},update:function(){s()>this.scrollOffset?this.stick():this.unstick()}},i});
10767/*!
10768 * imagesLoaded PACKAGED v4.1.4
10769 * JavaScript is all like "You images are done yet or what?"
10770 * MIT License
10771 */
10772
10773!function(e,t){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",t):"object"==typeof module&&module.exports?module.exports=t():e.EvEmitter=t()}("undefined"!=typeof window?window:this,function(){function e(){}var t=e.prototype;return t.on=function(e,t){if(e&&t){var i=this._events=this._events||{},n=i[e]=i[e]||[];return n.indexOf(t)==-1&&n.push(t),this}},t.once=function(e,t){if(e&&t){this.on(e,t);var i=this._onceEvents=this._onceEvents||{},n=i[e]=i[e]||{};return n[t]=!0,this}},t.off=function(e,t){var i=this._events&&this._events[e];if(i&&i.length){var n=i.indexOf(t);return n!=-1&&i.splice(n,1),this}},t.emitEvent=function(e,t){var i=this._events&&this._events[e];if(i&&i.length){i=i.slice(0),t=t||[];for(var n=this._onceEvents&&this._onceEvents[e],o=0;o<i.length;o++){var r=i[o],s=n&&n[r];s&&(this.off(e,r),delete n[r]),r.apply(this,t)}return this}},t.allOff=function(){delete this._events,delete this._onceEvents},e}),function(e,t){"use strict";"function"==typeof define&&define.amd?define(["ev-emitter/ev-emitter"],function(i){return t(e,i)}):"object"==typeof module&&module.exports?module.exports=t(e,require("ev-emitter")):e.imagesLoaded=t(e,e.EvEmitter)}("undefined"!=typeof window?window:this,function(e,t){function i(e,t){for(var i in t)e[i]=t[i];return e}function n(e){if(Array.isArray(e))return e;var t="object"==typeof e&&"number"==typeof e.length;return t?d.call(e):[e]}function o(e,t,r){if(!(this instanceof o))return new o(e,t,r);var s=e;return"string"==typeof e&&(s=document.querySelectorAll(e)),s?(this.elements=n(s),this.options=i({},this.options),"function"==typeof t?r=t:i(this.options,t),r&&this.on("always",r),this.getImages(),h&&(this.jqDeferred=new h.Deferred),void setTimeout(this.check.bind(this))):void a.error("Bad element for imagesLoaded "+(s||e))}function r(e){this.img=e}function s(e,t){this.url=e,this.element=t,this.img=new Image}var h=e.jQuery,a=e.console,d=Array.prototype.slice;o.prototype=Object.create(t.prototype),o.prototype.options={},o.prototype.getImages=function(){this.images=[],this.elements.forEac
vendor: 3,411 bytes, line 10773
10773h(this.addElementImages,this)},o.prototype.addElementImages=function(e){"IMG"==e.nodeName&&this.addImage(e),this.options.background===!0&&this.addElementBackgroundImages(e);var t=e.nodeType;if(t&&u[t]){for(var i=e.querySelectorAll("img"),n=0;n<i.length;n++){var o=i[n];this.addImage(o)}if("string"==typeof this.options.background){var r=e.querySelectorAll(this.options.background);for(n=0;n<r.length;n++){var s=r[n];this.addElementBackgroundImages(s)}}}};var u={1:!0,9:!0,11:!0};return o.prototype.addElementBackgroundImages=function(e){var t=getComputedStyle(e);if(t)for(var i=/url\((['"])?(.*?)\1\)/gi,n=i.exec(t.backgroundImage);null!==n;){var o=n&&n[2];o&&this.addBackground(o,e),n=i.exec(t.backgroundImage)}},o.prototype.addImage=function(e){var t=new r(e);this.images.push(t)},o.prototype.addBackground=function(e,t){var i=new s(e,t);this.images.push(i)},o.prototype.check=function(){function e(e,i,n){setTimeout(function(){t.progress(e,i,n)})}var t=this;return this.progressedCount=0,this.hasAnyBroken=!1,this.images.length?void this.images.forEach(function(t){t.once("progress",e),t.check()}):void this.complete()},o.prototype.progress=function(e,t,i){this.progressedCount++,this.hasAnyBroken=this.hasAnyBroken||!e.isLoaded,this.emitEvent("progress",[this,e,t]),this.jqDeferred&&this.jqDeferred.notify&&this.jqDeferred.notify(this,e),this.progressedCount==this.images.length&&this.complete(),this.options.debug&&a&&a.log("progress: "+i,e,t)},o.prototype.complete=function(){var e=this.hasAnyBroken?"fail":"done";if(this.isComplete=!0,this.emitEvent(e,[this]),this.emitEvent("always",[this]),this.jqDeferred){var t=this.hasAnyBroken?"reject":"resolve";this.jqDeferred[t](this)}},r.prototype=Object.create(t.prototype),r.prototype.check=function(){var e=this.getIsImageComplete();return e?void this.confirm(0!==this.img.naturalWidth,"naturalWidth"):(this.proxyImage=new Image,this.proxyImage.addEventListener("load",this),this.proxyImage.addEventListener("error",this),this.img.addEventListener("load",this),this.img.addEventListener("error",this),void(this.proxyImage.src=this.img.src))},r.prototype.getIsImageComplete=function(){return this.img.complete&&this.img.naturalWidth},r.prototype.confirm=function(e,t){this.isLoaded=e,this.emitEvent("progress",[this,this.img,t])},r.prototype.handleEvent=function(e){var t="on"+e.type;this[t]&&this[t](e)},r.prototype.onload=function(){this.confirm(!0,"onload"),this.unbindEvents()},r.prototype.onerror=function(){this.confirm(!1,"onerror"),this.unbindEvents()},r.prototype.unbindEvents=function(){this.proxyImage.removeEventListener("load",this),this.proxyImage.removeEventListener("error",this),this.img.removeEventListener("load",this),this.img.removeEventListener("error",this)},s.prototype=Object.create(r.prototype),s.prototype.check=function(){this.img.addEventListener("load",this),this.img.addEventListener("error",this),this.img.src=this.url;var e=this.getIsImageComplete();e&&(this.confirm(0!==this.img.naturalWidth,"naturalWidth"),this.unbindEvents())},s.prototype.unbindEvents=function(){this.img.removeEventListener("load",this),this.img.removeEventListener("error",this)},s.prototype.confirm=function(e,t){this.isLoaded=e,this.emitEvent("progress",[this,this.element,t])},o.makeJQueryPlugin=function(t){t=t||e.jQuery,t&&(h=t,h.fn.imagesLoaded=function(e,t){var i=new o(this,e,t);return i.jqDeferred.promise(h(this))})},o.makeJQueryPlugin(),o});
vendor: 35,445 bytes, lines 10774-10785
10774/*!
10775 * Isotope PACKAGED v3.0.6
10776 *
10777 * Licensed GPLv3 for open source use
10778 * or Isotope Commercial License for commercial use
10779 *
10780 * https://isotope.metafizzy.co
10781 * Copyright 2010-2018 Metafizzy
10782 */
10783
10784!function(t,e){"function"==typeof define&&define.amd?define("jquery-bridget/jquery-bridget",["jquery"],function(i){return e(t,i)}):"object"==typeof module&&module.exports?module.exports=e(t,require("jquery")):t.jQueryBridget=e(t,t.jQuery)}(window,function(t,e){"use strict";function i(i,s,a){function u(t,e,o){var n,s="$()."+i+'("'+e+'")';return t.each(function(t,u){var h=a.data(u,i);if(!h)return void r(i+" not initialized. Cannot call methods, i.e. "+s);var d=h[e];if(!d||"_"==e.charAt(0))return void r(s+" is not a valid method");var l=d.apply(h,o);n=void 0===n?l:n}),void 0!==n?n:t}function h(t,e){t.each(function(t,o){var n=a.data(o,i);n?(n.option(e),n._init()):(n=new s(o,e),a.data(o,i,n))})}a=a||e||t.jQuery,a&&(s.prototype.option||(s.prototype.option=function(t){a.isPlainObject(t)&&(this.options=a.extend(!0,this.options,t))}),a.fn[i]=function(t){if("string"==typeof t){var e=n.call(arguments,1);return u(this,t,e)}return h(this,t),this},o(a))}function o(t){!t||t&&t.bridget||(t.bridget=i)}var n=Array.prototype.slice,s=t.console,r="undefined"==typeof s?function(){}:function(t){s.error(t)};return o(e||t.jQuery),i}),function(t,e){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",e):"object"==typeof module&&module.exports?module.exports=e():t.EvEmitter=e()}("undefined"!=typeof window?window:this,function(){function t(){}var e=t.prototype;return e.on=function(t,e){if(t&&e){var i=this._events=this._events||{},o=i[t]=i[t]||[];return o.indexOf(e)==-1&&o.push(e),this}},e.once=function(t,e){if(t&&e){this.on(t,e);var i=this._onceEvents=this._onceEvents||{},o=i[t]=i[t]||{};return o[e]=!0,this}},e.off=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){var o=i.indexOf(e);return o!=-1&&i.splice(o,1),this}},e.emitEvent=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){i=i.slice(0),e=e||[];for(var o=this._onceEvents&&this._onceEvents[t],n=0;n<i.length;n++){var s=i[n],r=o&&o[s];r&&(this.off(t,s),delete o[s]),s.apply(this,e)}return this}},e.allOff=function(){delete this._events,delete this._onceEvents},t}),function(t,e){"function"==typeof define&&define.amd?define("get-size/get-size",e):"object"==typeof module&&module.exports?module.exports=e():t.getSize=e()}(window,function(){"use strict";function t(t){var e=parseFloat(t),i=t.indexOf("%")==-1&&!isNaN(e);return i&&e}function e(){}function i(){for(var t={width:0,height:0,innerWidth:0,innerHeight:0,outerWidth:0,outerHeight:0},e=0;e<h;e++){var i=u[e];t[i]=0}return t}function o(t){var e=getComputedStyle(t);return e||a("Style returned "+e+". Are you running this code in a hidden iframe on Firefox? See https://bit.ly/getsizebug1"),e}function n(){if(!d){d=!0;var e=document.createElement("div");e.style.width="200px",e.style.padding="1px 2px 3px 4px",e.style.borderStyle="solid",e.style.borderWidth="1px 2px 3px 4px",e.style.boxSizing="border-box";var i=document.body||document.documentElement;i.appendChild(e);var n=o(e);r=200==Math.round(t(n.width)),s.isBoxSizeOuter=r,i.removeChild(e)}}function s(e){if(n(),"string"==typeof e&&(e=document.querySelector(e)),e&&"object"==typeof e&&e.nodeType){var s=o(e);if("none"==s.display)return i();var a={};a.width=e.offsetWidth,a.height=e.offsetHeight;for(var d=a.isBorderBox="border-box"==s.boxSizing,l=0;l<h;l++){var f=u[l],c=s[f],m=parseFloat(c);a[f]=isNaN(m)?0:m}var p=a.paddingLeft+a.paddingRight,y=a.paddingTop+a.paddingBottom,g=a.marginLeft+a.marginRight,v=a.marginTop+a.marginBottom,_=a.borderLeftWidth+a.borderRightWidth,z=a.borderTopWidth+a.borderBottomWidth,I=d&&r,x=t(s.width);x!==!1&&(a.width=x+(I?0:p+_));var S=t(s.height);return S!==!1&&(a.height=S+(I?0:y+z)),a.innerWidth=a.width-(p+_),a.innerHeight=a.height-(y+z),a.outerWidth=a.width+g,a.outerHeight=a.height+v,a}}var r,a="undefined"==typeof console?e:function(t){console.error(t)},u=["paddingLeft","paddingRight","paddingTop","paddingBottom","marginLeft","marginRight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth"],h=u.length,d=!1;return s}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("desandro-matches-selector/matches-selector",e):"object"==typeof module&&module.exports?module.exports=e():t.matchesSelector=e()}(window,function(){"use strict";var t=function(){var t=window.Element.prototype;if(t.matches)return"matches";if(t.matchesSelector)return"matchesSelector";for(var e=["webkit","moz","ms","o"],i=0;i<e.length;i++){var o=e[i],n=o+"MatchesSelector";if(t[n])return n}}();return function(e,i){return e[t](i)}}),function(t,e){"function"==typeof define&&define.amd?define("fizzy-ui-utils/utils",["desandro-matches-selector/matches-selector"],function(i){return e(t,i)}):"object"==typeof module&&module.exports?module.exports=e(t,require("desandro-matches-selector")):t.fizzyUIUtils=e(t,t.matchesSelector)}(window,function(t,e){var i={};i.extend=function(t,e){for(var i in e)t[i]=e[i];return t},i.modulo=function(t,e){return(t%e+e)%e};var o=Array.prototype.slice;i.makeArray=function(t){if(Array.isArray(t))return t;if(null===t||void 0===t)return[];var e="object"==typeof t&&"number"==typeof t.length;return e?o.call(t):[t]},i.removeFrom=function(t,e){var i=t.indexOf(e);i!=-1&&t.splice(i,1)},i.getParent=function(t,i){for(;t.parentNode&&t!=document.body;)if(t=t.parentNode,e(t,i))return t},i.getQueryElement=function(t){return"string"==typeof t?document.querySelector(t):t},i.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},i.filterFindElements=function(t,o){t=i.makeArray(t);var n=[];return t.forEach(function(t){if(t instanceof HTMLElement){if(!o)return void n.push(t);e(t,o)&&n.push(t);for(var i=t.querySelectorAll(o),s=0;s<i.length;s++)n.push(i[s])}}),n},i.debounceMethod=function(t,e,i){i=i||100;var o=t.prototype[e],n=e+"Timeout";t.prototype[e]=function(){var t=this[n];clearTimeout(t);var e=arguments,s=this;this[n]=setTimeout(function(){o.apply(s,e),delete s[n]},i)}},i.docReady=function(t){var e=document.readyState;"complete"==e||"interactive"==e?setTimeout(t):document.addEventListener("DOMContentLoaded",t)},i.toDashed=function(t){return t.replace(/(.)([A-Z])/g,function(t,e,i){return e+"-"+i}).toLowerCase()};var n=t.console;return i.htmlInit=function(e,o){i.docReady(function(){var s=i.toDashed(o),r="data-"+s,a=document.querySelectorAll("["+r+"]"),u=document.querySelectorAll(".js-"+s),h=i.makeArray(a).concat(i.makeArray(u)),d=r+"-options",l=t.jQuery;h.forEach(function(t){var i,s=t.getAttribute(r)||t.getAttribute(d);try{i=s&&JSON.parse(s)}catch(a){return void(n&&n.error("Error parsing "+r+" on "+t.className+": "+a))}var u=new e(t,i);l&&l.data(t,o,u)})})},i}),function(t,e){"function"==typeof define&&define.amd?define("outlayer/item",["ev-emitter/ev-emitter","get-size/get-size"],e):"object"==typeof module&&module.exports?module.exports=e(require("ev-emitter"),require("get-size")):(t.Outlayer={},t.Outlayer.Item=e(t.EvEmitter,t.getSize))}(window,function(t,e){"use strict";function i(t){for(var e in t)return!1;return e=null,!0}function o(t,e){t&&(this.element=t,this.layout=e,this.position={x:0,y:0},this._create())}function n(t){return t.replace(/([A-Z])/g,function(t){return"-"+t.toLowerCase()})}var s=document.documentElement.style,r="string"==typeof s.transition?"transition":"WebkitTransition",a="string"==typeof s.transform?"transform":"WebkitTransform",u={WebkitTransition:"webkitTransitionEnd",transition:"transitionend"}[r],h={transform:a,transition:r,transitionDuration:r+"Duration",transitionProperty:r+"Property",transitionDelay:r+"Delay"},d=o.prototype=Object.create(t.prototype);d.constructor=o,d._create=function(){this._transn={ingProperties:{},clean:{},onEnd:{}},this.css({position:"absolute"})},d.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},d.getSize=function(){this.size=e(this.element)},d.css=function(t){var e=this.element.style;for(var i in t){var o=h[i]||i;e[o]=t[i]}},d.getPosition=function(){var t=getComputedStyle(this.element),e=this.layout._getOption("originLeft"),i=this.layout._getOption("originTop"),o=t[e?"left":"right"],n=t[i?"top":"bottom"],s=parseFloat(o),r=parseFloat(n),a=this.layout.size;o.indexOf("%")!=-1&&(s=s/100*a.width),n.indexOf("%")!=-1&&(r=r/100*a.height),s=isNaN(s)?0:s,r=isNaN(r)?0:r,s-=e?a.paddingLeft:a.paddingRight,r-=i?a.paddingTop:a.paddingBottom,this.position.x=s,this.position.y=r},d.layoutPosition=function(){var t=this.layout.size,e={},i=this.layout._getOption("originLeft"),o=this.layout._getOption("originTop"),n=i?"paddingLeft":"paddingRight",s=i?"left":"right",r=i?"right":"left",a=this.position.x+t[n];e[s]=this.getXValue(a),e[r]="";var u=o?"paddingTop":"paddingBottom",h=o?"top":"bottom",d=o?"bottom":"top",l=this.position.y+t[u];e[h]=this.getYValue(l),e[d]="",this.css(e),this.emitEvent("layout",[this])},d.getXValue=function(t){var e=this.layout._getOption("horizontal");return this.layout.options.percentPosition&&!e?t/this.layout.size.width*100+"%":t+"px"},d.getYValue=function(t){var e=this.layout._getOption("horizontal");return this.layout.options.percentPosition&&e?t/this.layout.size.height*100+"%":t+"px"},d._transitionTo=function(t,e){this.getPosition();var i=this.position.x,o=this.position.y,n=t==this.position.x&&e==this.position.y;if(this.setPosition(t,e),n&&!this.isTransitioning)return void this.layoutPosition();var s=t-i,r=e-o,a={};a.transform=this.getTranslate(s,r),this.transition({to:a,onTransitionEnd:{transform:this.layoutPosition},isCleaning:!0})},d.getTranslate=function(t,e){var i=this.layout._getOption("originLeft"),o=this.layout._getOption("originTop");return t=i?t:-t,e=o?e:-e,"translate3d("+t+"px, "+e+"px, 0)"},d.goTo=function(t,e){this.setPosition(t,e),this.layoutPosition()},d.moveTo=d._transitionTo,d.setPosition=function(t,e){this.position.x=parseFloat(t),this.position.y=parseFloat(e)},d._nonTransition=function(t){this.css(t.to),t.isCleaning&&this._removeStyles(t.to);for(var e in t.onTransitionEnd)t.onTransitionEnd[e].call(this)},d.transition=function(t){if(!parseFloat(this.layout.options.transitionDuration))return void this._nonTransition(t);var e=this._transn;for(var i in t.onTransitionEnd)e.onEnd[i]=t.onTransitionEnd[i];for(i in t.to)e.ingProperties[i]=!0,t.isCleaning&&(e.clean[i]=!0);if(t.from){this.css(t.from);var o=this.element.offsetHeight;o=null}this.enableTransition(t.to),this.css(t.to),this.isTransitioning=!0};var l="opacity,"+n(a);d.enableTransition=function(){if(!this.isTransitioning){var t=this.layout.options.transitionDuration;t="number"==typeof t?t+"ms":t,this.css({transitionProperty:l,transitionDuration:t,transitionDelay:this.staggerDelay||0}),this.element.addEventListener(u,this,!1)}},d.onwebkitTransitionEnd=function(t){this.ontransitionend(t)},d.onotransitionend=function(t){this.ontransitionend(t)};var f={"-webkit-transform":"transform"};d.ontransitionend=function(t){if(t.target===this.element){var e=this._transn,o=f[t.propertyName]||t.propertyName;if(delete e.ingProperties[o],i(e.ingProperties)&&this.disableTransition(),o in e.clean&&(this.element.style[t.propertyName]="",delete e.clean[o]),o in e.onEnd){var n=e.onEnd[o];n.call(this),delete e.onEnd[o]}this.emitEvent("transitionEnd",[this])}},d.disableTransition=function(){this.removeTransitionStyles(),this.element.removeEventListener(u,this,!1),this.isTransitioning=!1},d._removeStyles=function(t){var e={};for(var i in t)e[i]="";this.css(e)};var c={transitionProperty:"",transitionDuration:"",transitionDelay:""};return d.removeTransitionStyles=function(){this.css(c)},d.stagger=function(t){t=isNaN(t)?0:t,this.staggerDelay=t+"ms"},d.removeElem=function(){this.element.parentNode.removeChild(this.element),this.css({display:""}),this.emitEvent("remove",[this])},d.remove=function(){return r&&parseFloat(this.layout.options.transitionDuration)?(this.once("transitionEnd",function(){this.removeElem()}),void this.hide()):void this.removeElem()},d.reveal=function(){delete this.isHidden,this.css({display:""});var t=this.layout.options,e={},i=this.getHideRevealTransitionEndProperty("visibleStyle");e[i]=this.onRevealTransitionEnd,this.transition({from:t.hiddenStyle,to:t.visibleStyle,isCleaning:!0,onTransitionEnd:e})},d.onRevealTransitionEnd=function(){this.isHidden||this.emitEvent("reveal")},d.getHideRevealTransitionEndProperty=function(t){var e=this.layout.options[t];if(e.opacity)return"opacity";for(var i in e)return i},d.hide=function(){this.isHidden=!0,this.css({display:""});var t=this.layout.options,e={},i=this.getHideRevealTransitionEndProperty("hiddenStyle");e[i]=this.onHideTransitionEnd,this.transition({from:t.visibleStyle,to:t.hiddenStyle,isCleaning:!0,onTransitionEnd:e})},d.onHideTransitionEnd=function(){this.isHidden&&(this.css({display:"none"}),this.emitEvent("hide"))},d.destroy=function(){this.css({position:"",left:"",right:"",top:"",bottom:"",transition:"",transform:""})},o}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("outlayer/outlayer",["ev-emitter/ev-emitter","get-size/get-size","fizzy-ui-utils/utils","./item"],function(i,o,n,s){return e(t,i,o,n,s)}):"object"==typeof module&&module.exports?module.exports=e(t,require("ev-emitter"),require("get-size"),require("fizzy-ui-utils"),require("./item")):t.Outlayer=e(t,t.EvEmitter,t.getSize,t.fizzyUIUtils,t.Outlayer.Item)}(window,function(t,e,i,o,n){"use strict";function s(t,e){var i=o.getQueryElement(t);if(!i)return void(u&&u.error("Bad element for "+this.constructor.namespace+": "+(i||t)));this.element=i,h&&(this.$element=h(this.element)),this.options=o.extend({},this.constructor.defaults),this.option(e);var n=++l;this.element.outlayerGUID=n,f[n]=this,this._create();var s=this._getOption("initLayout");s&&this.layout()}function r(t){function e(){t.apply(this,arguments)}return e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e}function a(t){if("number"==typeof t)return t;var e=t.match(/(^\d*\.?\d*)(\w*)/),i=e&&e[1],o=e&&e[2];if(!i.length)return 0;i=parseFloat(i);var n=m[o]||1;return i*n}var u=t.console,h=t.jQuery,d=function(){},l=0,f={};s.namespace="outlayer",s.Item=n,s.defaults={containerStyle:{position:"relative"},initLayout:!0,originLeft:!0,originTop:!0,resize:!0,resizeContainer:!0,transitionDuration:"0.4s",hiddenStyle:{opacity:0,transform:"scale(0.001)"},visibleStyle:{opacity:1,transform:"scale(1)"}};var c=s.prototype;o.extend(c,e.prototype),c.option=function(t){o.extend(this.options,t)},c._getOption=function(t){var e=this.constructor.compatOptions[t];return e&&void 0!==this.options[e]?this.options[e]:this.options[t]},s.compatOptions={initLayout:"isInitLayout",horizontal:"isHorizontal",layoutInstant:"isLayoutInstant",originLeft:"isOriginLeft",originTop:"isOriginTop",resize:"isResizeBound",resizeContainer:"isResizingContainer"},c._create=function(){this.reloadItems(),this.stamps=[],this.stamp(this.options.stamp),o.extend(this.element.style,this.options.containerStyle);var t=this._getOption("resize");t&&this.bindResize()},c.reloadItems=function(){this.items=this._itemize(this.element.children)},c._itemize=function(t){for(var e=this._filterFindItemElements(t),i=this.constructor.Item,o=[],n=0;n<e.length;n++){var s=e[n],r=new i(s,this);o.push(r)}return o},c._filterFindItemElements=function(t){return o.filterFindElements(t,this.options.itemSelector)},c.getItemElements=function(){return this.items.map(function(t){return t.element})},c.layout=function(){this._resetLayout(),this._manageStamps();var t=this._getOption("layoutInstant"),e=void 0!==t?t:!this._isLayoutInited;this.layoutItems(this.items,e),this._isLayoutInited=!0},c._init=c.layout,c._resetLayout=function(){this.getSize()},c.getSize=function(){this.size=i(this.element)},c._getMeasurement=function(t,e){var o,n=this.options[t];n?("string"==typeof n?o=this.element.querySelector(n):n instanceof HTMLElement&&(o=n),this[t]=o?i(o)[e]:n):this[t]=0},c.layoutItems=function(t,e){t=this._getItemsForLayout(t),this._layoutItems(t,e),this._postLayout()},c._getItemsForLayout=function(t){return t.filter(function(t){return!t.isIgnored})},c._layoutItems=function(t,e){if(this._emitCompleteOnItems("layout",t),t&&t.length){var i=[];t.forEach(function(t){var o=this._getItemLayoutPosition(t);o.item=t,o.isInstant=e||t.isLayoutInstant,i.push(o)},this),this._processLayoutQueue(i)}},c._getItemLayoutPosition=function(){return{x:0,y:0}},c._processLayoutQueue=function(t){this.updateStagger(),t.forEach(function(t,e){this._positionItem(t.item,t.x,t.y,t.isInstant,e)},this)},c.updateStagger=function(){var t=this.options.stagger;return null===t||void 0===t?void(this.stagger=0):(this.stagger=a(t),this.stagger)},c._positionItem=function(t,e,i,o,n){o?t.goTo(e,i):(t.stagger(n*this.stagger),t.moveTo(e,i))},c._postLayout=function(){this.resizeContainer()},c.resizeContainer=function(){var t=this._getOption("resizeContainer");if(t){var e=this._getContainerSize();e&&(this._setContainerMeasure(e.width,!0),this._setContainerMeasure(e.height,!1))}},c._getContainerSize=d,c._setContainerMeasure=function(t,e){if(void 0!==t){var i=this.size;i.isBorderBox&&(t+=e?i.paddingLeft+i.paddingRight+i.borderLeftWidth+i.borderRightWidth:i.paddingBottom+i.paddingTop+i.borderTopWidth+i.borderBottomWidth),t=Math.max(t,0),this.element.style[e?"width":"height"]=t+"px"}},c._emitCompleteOnItems=function(t,e){function i(){n.dispatchEvent(t+"Complete",null,[e])}function o(){r++,r==s&&i()}var n=this,s=e.length;if(!e||!s)return void i();var r=0;e.forEach(function(e){e.once(t,o)})},c.dispatchEvent=function(t,e,i){var o=e?[e].concat(i):i;if(this.emitEvent(t,o),h)if(this.$element=this.$element||h(this.element),e){var n=h.Event(e);n.type=t,this.$element.trigger(n,i)}else this.$element.trigger(t,i)},c.ignore=function(t){var e=this.getItem(t);e&&(e.isIgnored=!0)},c.unignore=function(t){var e=this.getItem(t);e&&delete e.isIgnored},c.stamp=function(t){t=this._find(t),t&&(this.stamps=this.stamps.concat(t),t.forEach(this.ignore,this))},c.unstamp=function(t){t=this._find(t),t&&t.forEach(function(t){o.removeFrom(this.stamps,t),this.unignore(t)},this)},c._find=function(t){if(t)return"string"==typeof t&&(t=this.element.querySelectorAll(t)),t=o.makeArray(t)},c._manageStamps=function(){this.stamps&&this.stamps.length&&(this._getBoundingRect(),this.stamps.forEach(this._manageStamp,this))},c._getBoundingRect=function(){var t=this.element.getBoundingClientRect(),e=this.size;this._boundingRect={left:t.left+e.paddingLeft+e.borderLeftWidth,top:t.top+e.paddingTop+e.borderTopWidth,right:t.right-(e.paddingRight+e.borderRightWidth),bottom:t.bottom-(e.paddingBottom+e.borderBottomWidth)}},c._manageStamp=d,c._getElementOffset=function(t){var e=t.getBoundingClientRect(),o=this._boundingRect,n=i(t),s={left:e.left-o.left-n.marginLeft,top:e.top-o.top-n.marginTop,right:o.right-e.right-n.marginRight,bottom:o.bottom-e.bottom-n.marginBottom};return s},c.handleEvent=o.handleEvent,c.bindResize=function(){t.addEventListener("resize",this),this.isResizeBound=!0},c.unbindResize=function(){t.removeEventListener("resize",this),this.isResizeBound=!1},c.onresize=function(){this.resize()},o.debounceMethod(s,"onresize",100),c.resize=function(){this.isResizeBound&&this.needsResizeLayout()&&this.layout()},c.needsResizeLayout=function(){var t=i(this.element),e=this.size&&t;return e&&t.innerWidth!==this.size.innerWidth},c.addItems=function(t){var e=this._itemize(t);return e.length&&(this.items=this.items.concat(e)),e},c.appended=function(t){var e=this.addItems(t);e.length&&(this.layoutItems(e,!0),this.reveal(e))},c.prepended=function(t){var e=this._itemize(t);if(e.length){var i=this.items.slice(0);this.items=e.concat(i),this._resetLayout(),this._manageStamps(),this.layoutItems(e,!0),this.reveal(e),this.layoutItems(i)}},c.reveal=function(t){if(this._emitCompleteOnItems("reveal",t),t&&t.length){var e=this.updateStagger();t.forEach(function(t,i){t.stagger(i*e),t.reveal()})}},c.hide=function(t){if(this._emitCompleteOnItems("hide",t),t&&t.length){var e=this.updateStagger();t.forEach(function(t,i){t.stagger(i*e),t.hide()})}},c.revealItemElements=function(t){var e=this.getItems(t);this.reveal(e)},c.hideItemElements=function(t){var e=this.getItems(t);this.hide(e)},c.getItem=function(t){for(var e=0;e<this.items.length;e++){var i=this.items[e];if(i.element==t)return i}},c.getItems=function(t){t=o.makeArray(t);var e=[];return t.forEach(function(t){var i=this.getItem(t);i&&e.push(i)},this),e},c.remove=function(t){var e=this.getItems(t);this._emitCompleteOnItems("remove",e),e&&e.length&&e.forEach(function(t){t.remove(),o.removeFrom(this.items,t)},this)},c.destroy=function(){var t=this.element.style;t.height="",t.position="",t.width="",this.items.forEach(function(t){t.destroy()}),this.unbindResize();var e=this.element.outlayerGUID;delete f[e],delete this.element.outlayerGUID,h&&h.removeData(this.element,this.constructor.namespace)},s.data=function(t){t=o.getQueryElement(t);var e=t&&t.outlayerGUID;return e&&f[e]},s.create=function(t,e){var i=r(s);return i.defaults=o.extend({},s.defaults),o.extend(i.defaults,e),i.compatOptions=o.extend({},s.compatOptions),i.namespace=t,i.data=s.data,i.Item=r(n),o.htmlInit(i,t),h&&h.bridget&&h.bridget(t,i),i};var m={ms:1,s:1e3};return s.Item=n,s}),function(t,e){"function"==typeof define&&define.amd?define("isotope-layout/js/item",["outlayer/outlayer"],e):"object"==typeof module&&module.exports?module.exports=e(require("outlayer")):(t.Isotope=t.Isotope||{},t.Isotope.Item=e(t.Outlayer))}(window,function(t){"use strict";function e(){t.Item.apply(this,arguments)}var i=e.prototype=Object.create(t.Item.prototype),o=i._create;i._create=function(){this.id=this.layout.itemGUID++,o.call(this),this.sortData={}},i.updateSortData=function(){if(!this.isIgnored){this.sortData.id=this.id,this.sortData["original-order"]=this.id,this.sortData.random=Math.random();var t=this.layout.options.getSortData,e=this.layout._sorters;for(var i in t){var o=e[i];this.sortData[i]=o(this.element,this)}}};var n=i.destroy;return i.destroy=function(){n.apply(this,arguments),this.css({display:""})},e}),function(t,e){"function"==typeof define&&define.amd?define("isotope-layout/js/layout-mode",["get-size/get-size","outlayer/outlayer"],e):"object"==typeof module&&module.exports?module.exports=e(require("get-size"),require("outlayer")):(t.Isotope=t.Isotope||{},t.Isotope.LayoutMode=e(t.getSize,t.Outlayer))}(window,function(t,e){"use strict";function i(t){this.isotope=t,t&&(this.options=t.options[this.namespace],this.element=t.element,this.items=t.filteredItems,this.size=t.size)}var o=i.prototype,n=["_resetLayout","_getItemLayoutPosition","_manageStamp","_getContainerSize","_getElementOffset","needsResizeLayout","_getOption"];return n.forEach(function(t){o[t]=function(){return e.prototype[t].apply(this.isotope,arguments)}}),o.needsVerticalResizeLayout=function(){var e=t(this.isotope.element),i=this.isotope.size&&e;return i&&e.innerHeight!=this.isotope.size.innerHeight},o._getMeasurement=function(){this.isotope._getMeasurement.apply(this,arguments)},o.getColumnWidth=function(){this.getSegmentSize("column","Width")},o.getRowHeight=function(){this.getSegmentSize("row","Height")},o.getSegmentSize=function(t,e){var i=t+e,o="outer"+e;if(this._getMeasurement(i,o),!this[i]){var n=this.getFirstItemSize();this[i]=n&&n[o]||this.isotope.size["inner"+e]}},o.getFirstItemSize=function(){var e=this.isotope.filteredItems[0];return e&&e.element&&t(e.element)},o.layout=function(){this.isotope.layout.apply(this.isotope,arguments)},o.getSize=function(){this.isotope.getSize(),this.size=this.isotope.size},i.modes={},i.create=function(t,e){function n(){i.apply(this,arguments)}return n.prototype=Object.create(o),n.prototype.constructor=n,e&&(n.options=e),n.prototype.namespace=t,i.modes[t]=n,n},i}),function(t,e){"function"==typeof define&&define.amd?define("masonry-layout/masonry",["outlayer/outlayer","get-size/get-size"],e):"object"==typeof module&&module.exports?module.exports=e(require("outlayer"),require("get-size")):t.Masonry=e(t.Outlayer,t.getSize)}(window,function(t,e){var i=t.create("masonry");i.compatOptions.fitWidth="isFitWidth";var o=i.prototype;return o._resetLayout=function(){this.getSize(),this._getMeasurement("columnWidth","outerWidth"),this._getMeasurement("gutter","outerWidth"),this.measureColumns(),this.colYs=[];for(var t=0;t<this.cols;t++)this.colYs.push(0);this.maxY=0,this.horizontalColIndex=0},o.measureColumns=function(){if(this.getContainerWidth(),!this.columnWidth){var t=this.items[0],i=t&&t.element;this.columnWidth=i&&e(i).outerWidth||this.containerWidth}var o=this.columnWidth+=this.gutter,n=this.containerWidth+this.gutter,s=n/o,r=o-n%o,a=r&&r<1?"round":"floor";s=Math[a](s),this.cols=Math.max(s,1)},o.getContainerWidth=function(){var t=this._getOption("fitWidth"),i=t?this.element.parentNode:this.element,o=e(i);this.containerWidth=o&&o.innerWidth},o._getItemLayoutPosition=function(t){t.getSize();var e=t.size.outerWidth%this.columnWidth,i=e&&e<1?"round":"ceil",o=Math[i](t.size.outerWidth/this.columnWidth);o=Math.min(o,this.cols);for(var n=this.options.horizontalOrder?"_getHorizontalColPosition":"_getTopColPosition",s=this[n](o,t),r={x:this.columnWidth*s.col,y:s.y},a=s.y+t.size.outerHeight,u=o+s.col,h=s.col;h<u;h++)this.colYs[h]=a;return r},o._getTopColPosition=function(t){var e=this._getTopColGroup(t),i=Math.min.apply(Math,e);return{col:e.indexOf(i),y:i}},o._getTopColGroup=function(t){if(t<2)return this.colYs;for(var e=[],i=this.cols+1-t,o=0;o<i;o++)e[o]=this._getColGroupY(o,t);return e},o._getColGroupY=function(t,e){if(e<2)return this.colYs[t];var i=this.colYs.slice(t,t+e);return Math.max.apply(Math,i)},o._getHorizontalColPosition=function(t,e){var i=this.horizontalColIndex%this.cols,o=t>1&&i+t>this.cols;i=o?0:i;var n=e.size.outerWidth&&e.size.outerHeight;return this.horizontalColIndex=n?i+t:this.horizontalColIndex,{col:i,y:this._getColGroupY(i,t)}},o._manageStamp=function(t){var i=e(t),o=this._getElementOffset(t),n=this._getOption("originLeft"),s=n?o.left:o.right,r=s+i.outerWidth,a=Math.floor(s/this.columnWidth);a=Math.max(0,a);var u=Math.floor(r/this.columnWidth);u-=r%this.columnWidth?0:1,u=Math.min(this.cols-1,u);for(var h=this._getOption("originTop"),d=(h?o.top:o.bottom)+i.outerHeight,l=a;l<=u;l++)this.colYs[l]=Math.max(d,this.colYs[l])},o._getContainerSize=function(){this.maxY=Math.max.apply(Math,this.colYs);var t={height:this.maxY};return this._getOption("fitWidth")&&(t.width=this._getContainerFitWidth()),t},o._getContainerFitWidth=function(){for(var t=0,e=this.cols;--e&&0===this.colYs[e];)t++;return(this.cols-t)*this.columnWidth-this.gutter},o.needsResizeLayout=function(){var t=this.containerWidth;return this.getContainerWidth(),t!=this.containerWidth},i}),function(t,e){"function"==typeof define&&define.amd?define("isotope-layout/js/layout-modes/masonry",["../layout-mode","masonry-layout/masonry"],e):"object"==typeof module&&module.exports?module.exports=e(require("../layout-mode"),require("masonry-layout")):e(t.Isotope.LayoutMode,t.Masonry)}(window,function(t,e){"use strict";var i=t.create("masonry"),o=i.prototype,n={_getElementOffset:!0,layout:!0,_getMeasurement:!0};for(var s in e.prototype)n[s]||(o[s]=e.prototype[s]);var r=o.measureColumns;o.measureColumns=function(){this.items=this.isotope.filteredItems,r.call(this)};var a=o._getOption;return o._getOption=function(t){return"fitWidth"==t?void 0!==this.options.isFitWidth?this.options.isFitWidth:this.options.fitWidth:a.apply(this.isotope,arguments)},i}),function(t,e){"function"==typeof define&&define.amd?define("isotope-layout/js/layout-modes/fit-rows",["../layout-mode"],e):"object"==typeof exports?module.exports=e(require("../layout-mode")):e(t.Isotope.LayoutMode)}(window,function(t){"use strict";var e=t.create("fitRows"),i=e.prototype;return i._resetLayout=function(){this.x=0,this.y=0,this.maxY=0,this._getMeasurement("gutter","outerWidth")},i._getItemLayoutPosition=function(t){t.getSize();var e=t.size.outerWidth+this.gutter,i=this.isotope.size.innerWidth+this.gutter;0!==this.x&&e+this.x>i&&(this.x=0,this.y=this.maxY);var o={x:this.x,y:this.y};return this.maxY=Math.max(this.maxY,this.y+t.size.outerHeight),this.x+=e,o},i._getContainerSize=function(){return{height:this.maxY}},e}),function(t,e){"function"==typeof define&&define.amd?define("isotope-layout/js/layout-modes/vertical",["../layout-mode"],e):"object"==typeof module&&module.exports?module.exports=e(require("../layout-mode")):e(t.Isotope.LayoutMode)}(window,function(t){"use strict";var e=t.create("vertical",{horizontalAlignment:0}),i=e.prototype;return i._resetLayout=function(){this.y=0},i._getItemLayoutPosition=function(t){t.getSize();var e=(this.isotope.size.innerWidth-t.size.outerWidth)*this.options.horizontalAlignment,i=this.y;return this.y+=t.size.outerHeight,{x:e,y:i}},i._getContainerSize=function(){return{height:this.y}},e}),function(t,e){"function"==typeof define&&define.amd?define(["outlayer/outlayer","get-size/get-size","desandro-matches-selector/matches-selector","fizzy-ui-utils/utils","isotope-layout/js/item","isotope-layout/js/layout-mode","isotope-layout/js/layout-modes/masonry","isotope-layout/js/layout-modes/fit-rows","isotope-layout/js/layout-modes/vertical"],function(i,o,n,s,r,a){return e(t,i,o,n,s,r,a)}):"object"==typeof module&&module.exports?module.exports=e(t,require("outlayer"),require("get-size"),require("desandro-matches-selector"),require("fizzy-ui-utils"),require("isotope-layout/js/item"),require("isotope-layout/js/layout-mode"),require("isotope-layout/js/layout-modes/masonry"),require("isotope-layout/js/layout-modes/fit-rows"),require("isotope-layout/js/layout-modes/vertical")):t.Isotope=e(t,t.Outlayer,t.getSize,t.matchesSelector,t.fizzyUIUtils,t.Isotope.Item,t.Isotope.LayoutMode)}(window,function(t,e,i,o,n,s,r){function a(t,e){return function(i,o){for(var n=0;n<t.length;n++){var s=t[n],r=i.sortData[s],a=o.sortData[s];if(r>a||r<a){var u=void 0!==e[s]?e[s]:e,h=u?1:-1;return(r>a?1:-1)*h}}return 0}}var u=t.jQuery,h=String.prototype.trim?function(t){return t.trim()}:function(t){return t.replace(/^\s+|\s+$/g,"")},d=e.create("isotope",{layoutMode:"masonry",isJQueryFiltering:!0,sortAscending:!0});d.Item=s,d.LayoutMode=r;var l=d.prototype;l._create=function(){this.itemGUID=0,this._sorters={},this._getSorters(),e.prototype._create.call(this),this.modes={},this.filteredItems=this.items,this.sortHistory=["original-order"];for(var t in r.modes)this._initLayoutMode(t)},l.reloadItems=function(){this.itemGUID=0,e.prototype.reloadItems.call(this)},l._itemize=function(){for(var t=e.prototype._itemize.apply(this,arguments),i=0;i<t.length;i++){var o=t[i];o.id=this.itemGUID++}return this._updateItemsSortData(t),t},l._initLayoutMode=function(t){var e=r.modes[t],i=this.options[t]||{};this.options[t]=e.options?n.extend(e.options,i):i,this.modes[t]=new e(this)},l.layout=function(){return!this._isLayoutInited&&this._getOption("initLayout")?void this.arrange():void this._layout()},l._layout=function(){var t=this._getIsInstant();this._resetLayout(),this._manageStamps(),this.layoutItems(this.filteredItems,t),this._isLayoutInited=!0},l.arrange=function(t){this.option(t),this._getIsInstant();var e=this._filter(this.items);this.filteredItems=e.matches,this._bindArrangeComplete(),this._isInstant?this._noTransition(this._hideReveal,[e]):this._hideReveal(e),this._sort(),this._layout()},l._init=l.arrange,l._hideReveal=function(t){this.reveal(t.needReveal),this.hide(t.needHide)},l._getIsInstant=function(){var t=this._getOption("layoutInstant"),e=void 0!==t?t:!this._isLayoutInited;return this._isInstant=e,e},l._bindArrangeComplete=function(){function t(){e&&i&&o&&n.dispatchEvent("arrangeComplete",null,[n.filteredItems])}var e,i,o,n=this;this.once("layoutComplete",function(){e=!0,t()}),this.once("hideComplete",function(){i=!0,t()}),this.once("revealComplete",function(){o=!0,t()})},l._filter=function(t){var e=this.options.filter;e=e||"*";for(var i=[],o=[],n=[],s=this._getFilterTest(e),r=0;r<t.length;r++){var a=t[r];if(!a.isIgnored){var u=s(a);u&&i.push(a),u&&a.isHidden?o.push(a):u||a.isHidden||n.push(a)}}return{matches:i,needReveal:o,needHide:n}},l._getFilterTest=function(t){return u&&this.options.isJQueryFiltering?function(e){return u(e.element).is(t);
10785}:"function"==typeof t?function(e){return t(e.element)}:function(e){return o(e.element,t)}},l.updateSortData=function(t){var e;t?(t=n.makeArray(t),e=this.getItems(t)):e=this.items,this._getSorters(),this._updateItemsSortData(e)},l._getSorters=function(){var t=this.options.getSortData;for(var e in t){var i=t[e];this._sorters[e]=f(i)}},l._updateItemsSortData=function(t){for(var e=t&&t.length,i=0;e&&i<e;i++){var o=t[i];o.updateSortData()}};var f=function(){function t(t){if("string"!=typeof t)return t;var i=h(t).split(" "),o=i[0],n=o.match(/^\[(.+)\]$/),s=n&&n[1],r=e(s,o),a=d.sortDataParsers[i[1]];return t=a?function(t){return t&&a(r(t))}:function(t){return t&&r(t)}}function e(t,e){return t?function(e){return e.getAttribute(t)}:function(t){var i=t.querySelector(e);return i&&i.textContent}}return t}();d.sortDataParsers={parseInt:function(t){return parseInt(t,10)},parseFloat:function(t){return parseFloat(t)}},l._sort=function(){if(this.options.sortBy){var t=n.makeArray(this.options.sortBy);this._getIsSameSortBy(t)||(this.sortHistory=t.concat(this.sortHistory));var e=a(this.sortHistory,this.options.sortAscending);this.filteredItems.sort(e)}},l._getIsSameSortBy=function(t){for(var e=0;e<t.length;e++)if(t[e]!=this.sortHistory[e])return!1;return!0},l._mode=function(){var t=this.options.layoutMode,e=this.modes[t];if(!e)throw new Error("No layout mode: "+t);return e.options=this.options[t],e},l._resetLayout=function(){e.prototype._resetLayout.call(this),this._mode()._resetLayout()},l._getItemLayoutPosition=function(t){return this._mode()._getItemLayoutPosition(t)},l._manageStamp=function(t){this._mode()._manageStamp(t)},l._getContainerSize=function(){return this._mode()._getContainerSize()},l.needsResizeLayout=function(){return this._mode().needsResizeLayout()},l.appended=function(t){var e=this.addItems(t);if(e.length){var i=this._filterRevealAdded(e);this.filteredItems=this.filteredItems.concat(i)}},l.prepended=function(t){var e=this._itemize(t);if(e.length){this._resetLayout(),this._manageStamps();var i=this._filterRevealAdded(e);this.layoutItems(this.filteredItems),this.filteredItems=i.concat(this.filteredItems),this.items=e.concat(this.items)}},l._filterRevealAdded=function(t){var e=this._filter(t);return this.hide(e.needHide),this.reveal(e.matches),this.layoutItems(e.matches,!0),e.matches},l.insert=function(t){var e=this.addItems(t);if(e.length){var i,o,n=e.length;for(i=0;i<n;i++)o=e[i],this.element.appendChild(o.element);var s=this._filter(e).matches;for(i=0;i<n;i++)e[i].isLayoutInstant=!0;for(this.arrange(),i=0;i<n;i++)delete e[i].isLayoutInstant;this.reveal(s)}};var c=l.remove;return l.remove=function(t){t=n.makeArray(t);var e=this.getItems(t);c.call(this,t);for(var i=e&&e.length,o=0;i&&o<i;o++){var s=e[o];n.removeFrom(this.filteredItems,s)}},l.shuffle=function(){for(var t=0;t<this.items.length;t++){var e=this.items[t];e.sortData.random=Math.random()}this.options.sortBy="random",this._sort(),this._layout()},l._noTransition=function(t,e){var i=this.options.transitionDuration;this.options.transitionDuration=0;var o=t.apply(this,e);return this.options.transitionDuration=i,o},l.getFilteredItemElements=function(){return this.filteredItems.map(function(t){return t.element})},d});
10785
10786/*!
10787 * iTooltip.js v1.1.1
10788 * https://github.com/Ins-V/iTooltip
10789 */
10790class DoubleCenterException{constructor(){window.console.error('iTooltip Error: positionX and positionY properties cannot be "center" at the same time.')}}class iTooltip{constructor(t="*"){const e="*"!==t?t:"*[title]";this.objects=document.querySelectorAll(e)}init(t={}){if(this.settings=Object.assign({className:"tooltip",indentX:10,indentY:15,positionX:"right",positionY:"bottom"},t),"center"===this.settings.positionX&&"center"===this.settings.positionY)throw new DoubleCenterException;this.objects.forEach(t=>{t.getAttribute("title")&&(t.addEventListener("mouseenter",t=>this.createTooltip(t)),t.addEventListener("mouseleave",t=>this.removeTooltip(t)))})}createTooltip(t){const e=t.target;this.tooltip=document.createElement("div"),this.tooltip.classList.add(this.settings.className),this.tooltip.innerHTML=e.getAttribute("title");var i=t.target.className.split(" ").find(t=>t.startsWith("itooltip-"));i&&this.tooltip.classList.add(i),this.tooltip.style.position="absolute",this.changePosition(t),e.removeAttribute("title"),document.body.appendChild(this.tooltip),e.addEventListener("mousemove",t=>this.changePosition(t))}removeTooltip(t){t.target.setAttribute("title",this.tooltip.innerHTML),this.tooltip.remove()}changePosition(t){const[e,i]=this.getSizeTooltip(),o=this.getEdges(t),s=window.pageYOffset||document.documentElement.scrollTop;let n=t.pageY,l=t.pageX;if(l="right"===this.settings.positionX?o.right<=e?t.clientX-e-this.settings.indentX:t.clientX+this.settings.indentX:"left"===this.settings.positionX?o.left<=e?o.left+this.settings.indentX:t.clientX-e-this.settings.indentX:o.left<=Math.round(e/2)?t.clientX-o.left:t.clientX-Math.round(e/2),"top"===this.settings.positionY)n=o.top<=i?s+t.clientY+this.settings.indentY:t.pageY-i-this.settings.indentY;else if("bottom"===this.settings.positionY)n=o.bottom<i&&o.top>i+this.settings.indentY?t.pageY-i-this.settings.indentY:s+t.clientY+this.settings.indentY;else{let t=Math.round(i/2);o.bottom<=t&&(t=Math.round(i-o.bottom)),o.top<=t&&(t=o.top),n-=t}this.tooltip.style.top=`${n}px`,this.tooltip.style.left=`${l}px`}getSizeTooltip(){const t=this.tooltip.getBoundingClientRect();return[t.right-t.left,t.bottom-t.top]}getEdges(t){const e=document.documentElement;return{left:t.clientX,right:e.clientWidth-t.clientX,top:t.clientY,bottom:e.clientHeight-t.clientY}}}
10791/*!
10792Waypoints - 4.0.1
10793Copyright © 2011-2016 Caleb Troughton
10794Licensed under the MIT license.
10795https://github.com/imakewebthings/waypoints/blob/master/licenses.txt
10796*/
10797!function(){"use strict";function t(n){if(!n)throw new Error("No options passed to Waypoint constructor");if(!n.element)throw new Error("No element option passed to Waypoint constructor");if(!n.handler)throw new Error("No handler option passed to Waypoint constructor");this.key="waypoint-"+e,this.options=t.Adapter.extend({},t.defaults,n),this.element=this.options.element,this.adapter=new t.Adapter(this.element),this.callback=n.handler,this.axis=this.options.horizontal?"horizontal":"vertical",this.enabled=this.options.enabled,this.triggerPoint=null,this.group=t.Group.findOrCreate({name:this.options.group,axis:this.axis}),this.context=t.Context.findOrCreateByElement(this.options.context),t.offsetAliases[this.options.offset]&&(this.options.offset=t.offsetAliases[this.options.offset]),this.group.add(this),this.context.add(this),i[this.key]=this,e+=1}var e=0,i={};t.prototype.queueTrigger=function(t){this.group.queueTrigger(this,t)},t.prototype.trigger=function(t){this.enabled&&this.callback&&this.callback.apply(this,t)},t.prototype.destroy=function(){this.context.remove(this),this.group.remove(this),delete i[this.key]},t.prototype.disable=function(){return this.enabled=!1,this},t.prototype.enable=function(){return this.context.refresh(),this.enabled=!0,this},t.prototype.next=function(){return this.group.next(this)},t.prototype.previous=function(){return this.group.previous(this)},t.invokeAll=function(t){var e=[];for(var n in i)e.push(i[n]);for(var o=0,r=e.length;r>o;o++)e[o][t]()},t.destroyAll=function(){t.invokeAll("destroy")},t.disableAll=function(){t.invokeAll("disable")},t.enableAll=function(){t.Context.refreshAll();for(var e in i)i[e].enabled=!0;return this},t.refreshAll=function(){t.Context.refreshAll()}
vendor: 5,257 bytes, line 10797
10797,t.viewportHeight=function(){return window.innerHeight||document.documentElement.clientHeight},t.viewportWidth=function(){return document.documentElement.clientWidth},t.adapters=[],t.defaults={context:window,continuous:!0,enabled:!0,group:"default",horizontal:!1,offset:0},t.offsetAliases={"bottom-in-view":function(){return this.context.innerHeight()-this.adapter.outerHeight()},"right-in-view":function(){return this.context.innerWidth()-this.adapter.outerWidth()}},window.Waypoint=t}(),function(){"use strict";function t(t){window.setTimeout(t,1e3/60)}function e(t){this.element=t,this.Adapter=o.Adapter,this.adapter=new this.Adapter(t),this.key="waypoint-context-"+i,this.didScroll=!1,this.didResize=!1,this.oldScroll={x:this.adapter.scrollLeft(),y:this.adapter.scrollTop()},this.waypoints={vertical:{},horizontal:{}},t.waypointContextKey=this.key,n[t.waypointContextKey]=this,i+=1,o.windowContext||(o.windowContext=!0,o.windowContext=new e(window)),this.createThrottledScrollHandler(),this.createThrottledResizeHandler()}var i=0,n={},o=window.Waypoint,r=window.onload;e.prototype.add=function(t){var e=t.options.horizontal?"horizontal":"vertical";this.waypoints[e][t.key]=t,this.refresh()},e.prototype.checkEmpty=function(){var t=this.Adapter.isEmptyObject(this.waypoints.horizontal),e=this.Adapter.isEmptyObject(this.waypoints.vertical),i=this.element==this.element.window;t&&e&&!i&&(this.adapter.off(".waypoints"),delete n[this.key])},e.prototype.createThrottledResizeHandler=function(){function t(){e.handleResize(),e.didResize=!1}var e=this;this.adapter.on("resize.waypoints",function(){e.didResize||(e.didResize=!0,o.requestAnimationFrame(t))})},e.prototype.createThrottledScrollHandler=function(){function t(){e.handleScroll(),e.didScroll=!1}var e=this;this.adapter.on("scroll.waypoints",function(){(!e.didScroll||o.isTouch)&&(e.didScroll=!0,o.requestAnimationFrame(t))})},e.prototype.handleResize=function(){o.Context.refreshAll()},e.prototype.handleScroll=function(){var t={},e={horizontal:{newScroll:this.adapter.scrollLeft(),oldScroll:this.oldScroll.x,forward:"right",backward:"left"},vertical:{newScroll:this.adapter.scrollTop(),oldScroll:this.oldScroll.y,forward:"down",backward:"up"}};for(var i in e){var n=e[i],o=n.newScroll>n.oldScroll,r=o?n.forward:n.backward;for(var s in this.waypoints[i]){var l=this.waypoints[i][s];if(null!==l.triggerPoint){var a=n.oldScroll<l.triggerPoint,h=n.newScroll>=l.triggerPoint,p=a&&h,u=!a&&!h;(p||u)&&(l.queueTrigger(r),t[l.group.id]=l.group)}}}for(var d in t)t[d].flushTriggers();this.oldScroll={x:e.horizontal.newScroll,y:e.vertical.newScroll}},e.prototype.innerHeight=function(){return this.element==this.element.window?o.viewportHeight():this.adapter.innerHeight()},e.prototype.remove=function(t){delete this.waypoints[t.axis][t.key],this.checkEmpty()},e.prototype.innerWidth=function(){return this.element==this.element.window?o.viewportWidth():this.adapter.innerWidth()},e.prototype.destroy=function(){var t=[];for(var e in this.waypoints)for(var i in this.waypoints[e])t.push(this.waypoints[e][i]);for(var n=0,o=t.length;o>n;n++)t[n].destroy()},e.prototype.refresh=function(){var t,e=this.element==this.element.window,i=e?void 0:this.adapter.offset(),n={};this.handleScroll(),t={horizontal:{contextOffset:e?0:i.left,contextScroll:e?0:this.oldScroll.x,contextDimension:this.innerWidth(),oldScroll:this.oldScroll.x,forward:"right",backward:"left",offsetProp:"left"},vertical:{contextOffset:e?0:i.top,contextScroll:e?0:this.oldScroll.y,contextDimension:this.innerHeight(),oldScroll:this.oldScroll.y,forward:"down",backward:"up",offsetProp:"top"}};for(var r in t){var s=t[r];for(var l in this.waypoints[r]){var a,h,p,u,d,f=this.waypoints[r][l],c=f.options.offset,w=f.triggerPoint,y=0,g=null==w;f.element!==f.element.window&&(y=f.adapter.offset()[s.offsetProp]),"function"==typeof c?c=c.apply(f):"string"==typeof c&&(c=parseFloat(c),f.options.offset.indexOf("%")>-1&&(c=Math.ceil(s.contextDimension*c/100))),a=s.contextScroll-s.contextOffset,f.triggerPoint=Math.floor(y+a-c),h=w<s.oldScroll,p=f.triggerPoint>=s.oldScroll,u=h&&p,d=!h&&!p,!g&&u?(f.queueTrigger(s.backward),n[f.group.id]=f.group):!g&&d?(f.queueTrigger(s.forward),n[f.group.id]=f.group):g&&s.oldScroll>=f.triggerPoint&&(f.queueTrigger(s.forward),n[f.group.id]=f.group)}}return o.requestAnimationFrame(function(){for(var t in n)n[t].flushTriggers()}),this},e.findOrCreateByElement=function(t){return e.findByElement(t)||new e(t)},e.refreshAll=function(){for(var t in n)n[t].refresh()},e.findByElement=function(t){return n[t.waypointContextKey]},window.onload=function(){r&&r(),e.refreshAll()},o.requestAnimationFrame=function(e){var i=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||t;i.call(window,e)},o.Context=e}(),function(){"use strict";function t(t,e){return t.triggerPoint-e.triggerPoint}function e(t,e){return e.triggerPoint-t.triggerPoint}function i(t){this.name=t.name,this.axis=t.axis,this.id=this.name+"-"+this.axis,this.waypoints=[],this.clearTriggerQueues(),n[this.axis][this.name]=this}var n={vertical:{},horizontal:{}},o=window.Waypoint;i.prototype.add=function(t){this.waypoints.push(t)},i.prototype.clearTriggerQueues=function(){this.triggerQueues={up:[],down:[],left:[],r
10797ight:[]}},i.prototype.flushTriggers=function(){for(var i in this.triggerQueues){var n=this.triggerQueues[i],o="up"===i||"left"===i;n.sort(o?e:t);for(var r=0,s=n.length;s>r;r+=1){var l=n[r];(l.options.continuous||r===n.length-1)&&l.trigger([i])}}this.clearTriggerQueues()},i.prototype.next=function(e){this.waypoints.sort(t);var i=o.Adapter.inArray(e,this.waypoints),n=i===this.waypoints.length-1;return n?null:this.waypoints[i+1]},i.prototype.previous=function(e){this.waypoints.sort(t);var i=o.Adapter.inArray(e,this.waypoints);return i?this.waypoints[i-1]:null},i.prototype.queueTrigger=function(t,e){this.triggerQueues[e].push(t)},i.prototype.remove=function(t){var e=o.Adapter.inArray(t,this.waypoints);e>-1&&this.waypoints.splice(e,1)},i.prototype.first=function(){return this.waypoints[0]},i.prototype.last=function(){return this.waypoints[this.waypoints.length-1]},i.findOrCreate=function(t){return n[t.axis][t.name]||new i(t)},o.Group=i}(),function(){"use strict";function t(t){return t===t.window}function e(e){return t(e)?e:e.defaultView}function i(t){this.element=t,this.handlers={}}var n=window.Waypoint;i.prototype.innerHeight=function(){var e=t(this.element);return e?this.element.innerHeight:this.element.clientHeight},i.prototype.innerWidth=function(){var e=t(this.element);return e?this.element.innerWidth:this.element.clientWidth},i.prototype.off=function(t,e){function i(t,e,i){for(var n=0,o=e.length-1;o>n;n++){var r=e[n];i&&i!==r||t.removeEventListener(r)}}var n=t.split("."),o=n[0],r=n[1],s=this.element;if(r&&this.handlers[r]&&o)i(s,this.handlers[r][o],e),this.handlers[r][o]=[];else if(o)for(var l in this.handlers)i(s,this.handlers[l][o]||[],e),this.handlers[l][o]=[];else if(r&&this.handlers[r]){for(var a in this.handlers[r])i(s,this.handlers[r][a],e);this.handlers[r]={}}},i.prototype.offset=function(){if(!this.element.ownerDocument)return null;var t=this.element.ownerDocument.documentElement,i=e(this.element.ownerDocument),n={top:0,left:0};return this.element.getBoundingClientRect&&(n=this.element.getBoundingClientRect()),{top:n.top+i.pageYOffset-t.clientTop,left:n.left+i.pageXOffset-t.clientLeft}},i.prototype.on=function(t,e){var i=t.split("."),n=i[0],o=i[1]||"__default",r=this.handlers[o]=this.handlers[o]||{},s=r[n]=r[n]||[];s.push(e),this.element.addEventListener(n,e)},i.prototype.outerHeight=function(e){var i,n=this.innerHeight();return e&&!t(this.element)&&(i=window.getComputedStyle(this.element),n+=parseInt(i.marginTop,10),n+=parseInt(i.marginBottom,10)),n},i.prototype.outerWidth=function(e){var i,n=this.innerWidth();return e&&!t(this.element)&&(i=window.getComputedStyle(this.element),n+=parseInt(i.marginLeft,10),n+=parseInt(i.marginRight,10)),n},i.prototype.scrollLeft=function(){var t=e(this.element);return t?t.pageXOffset:this.element.scrollLeft},i.prototype.scrollTop=function(){var t=e(this.element);return t?t.pageYOffset:this.element.scrollTop},i.extend=function(){function t(t,e){if("object"==typeof t&&"object"==typeof e)for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i]);return t}for(var e=Array.prototype.slice.call(arguments),i=1,n=e.length;n>i;i++)t(e[0],e[i]);return e[0]},i.inArray=function(t,e,i){return null==e?-1:e.indexOf(t,i)},i.isEmptyObject=function(t){for(var e in t)return!1;return!0},n.adapters.push({name:"noframework",Adapter:i}),n.Adapter=i}();
10798/*! picturefill - v3.0.2 - 2016-02-12
10799 * https://scottjehl.github.io/picturefill/
10800 * Copyright (c) 2016 https://github.com/scottjehl/picturefill/blob/master/Authors.txt; Licensed MIT
10801 */
10802!function(a){var b=navigator.userAgent;a.HTMLPictureElement&&/ecko/.test(b)&&b.match(/rv\:(\d+)/)&&RegExp.$1<45&&addEventListener("resize",function(){var b,c=document.createElement("source"),d=function(a){var b,d,e=a.parentNode;"PICTURE"===e.nodeName.toUpperCase()?(b=c.cloneNode(),e.insertBefore(b,e.firstElementChild),setTimeout(function(){e.removeChild(b)})):(!a._pfLastSize||a.offsetWidth>a._pfLastSize)&&(a._pfLastSize=a.offsetWidth,d=a.sizes,a.sizes+=",100vw",setTimeout(function(){a.sizes=d}))},e=function(){var a,b=document.querySelectorAll("picture > img, img[srcset][sizes]");for(a=0;a<b.length;a++)d(b[a])},f=function(){clearTimeout(b),b=setTimeout(e,99)},g=a.matchMedia&&matchMedia("(orientation: landscape)"),h=function(){f(),g&&g.addListener&&g.addListener(f)};return c.srcset="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",/^[c|i]|d$/.test(document.readyState||"")?h():document.addEventListener("DOMContentLoaded",h),f}())}(window),function(a,b,c){"use strict";function d(a){return" "===a||"	"===a||"\n"===a||"\f"===a||"\r"===a}function e(b,c){var d=new a.Image;return d.onerror=function(){A[b]=!1,ba()},d.onload=function(){A[b]=1===d.width,ba()},d.src=c,"pending"}function f(){M=!1,P=a.devicePixelRatio,N={},O={},s.DPR=P||1,Q.width=Math.max(a.innerWidth||0,z.clientWidth),Q.height=Math.max(a.innerHeight||0,z.clientHeight),Q.vw=Q.width/100,Q.vh=Q.height/100,r=[Q.height,Q.width,P].join("-"),Q.em=s.getEmValue(),Q.rem=Q.em}function g(a,b,c,d){var e,f,g,h;return"saveData"===B.algorithm?a>2.7?h=c+1:(f=b-c,e=Math.pow(a-.6,1.5),g=f*e,d&&(g+=.1*e),h=a+g):h=c>1?Math.sqrt(a*b):a,h>
vendor: 8,071 bytes, line 10802
10802c}function h(a){var b,c=s.getSet(a),d=!1;"pending"!==c&&(d=r,c&&(b=s.setRes(c),s.applySetCandidate(b,a))),a[s.ns].evaled=d}function i(a,b){return a.res-b.res}function j(a,b,c){var d;return!c&&b&&(c=a[s.ns].sets,c=c&&c[c.length-1]),d=k(b,c),d&&(b=s.makeUrl(b),a[s.ns].curSrc=b,a[s.ns].curCan=d,d.res||aa(d,d.set.sizes)),d}function k(a,b){var c,d,e;if(a&&b)for(e=s.parseSet(b),a=s.makeUrl(a),c=0;c<e.length;c++)if(a===s.makeUrl(e[c].url)){d=e[c];break}return d}function l(a,b){var c,d,e,f,g=a.getElementsByTagName("source");for(c=0,d=g.length;d>c;c++)e=g[c],e[s.ns]=!0,f=e.getAttribute("srcset"),f&&b.push({srcset:f,media:e.getAttribute("media"),type:e.getAttribute("type"),sizes:e.getAttribute("sizes")})}function m(a,b){function c(b){var c,d=b.exec(a.substring(m));return d?(c=d[0],m+=c.length,c):void 0}function e(){var a,c,d,e,f,i,j,k,l,m=!1,o={};for(e=0;e<h.length;e++)f=h[e],i=f[f.length-1],j=f.substring(0,f.length-1),k=parseInt(j,10),l=parseFloat(j),X.test(j)&&"w"===i?((a||c)&&(m=!0),0===k?m=!0:a=k):Y.test(j)&&"x"===i?((a||c||d)&&(m=!0),0>l?m=!0:c=l):X.test(j)&&"h"===i?((d||c)&&(m=!0),0===k?m=!0:d=k):m=!0;m||(o.url=g,a&&(o.w=a),c&&(o.d=c),d&&(o.h=d),d||c||a||(o.d=1),1===o.d&&(b.has1x=!0),o.set=b,n.push(o))}function f(){for(c(T),i="",j="in descriptor";;){if(k=a.charAt(m),"in descriptor"===j)if(d(k))i&&(h.push(i),i="",j="after descriptor");else{if(","===k)return m+=1,i&&h.push(i),void e();if("("===k)i+=k,j="in parens";else{if(""===k)return i&&h.push(i),void e();i+=k}}else if("in parens"===j)if(")"===k)i+=k,j="in descriptor";else{if(""===k)return h.push(i),void e();i+=k}else if("after descriptor"===j)if(d(k));else{if(""===k)return void e();j="in descriptor",m-=1}m+=1}}for(var g,h,i,j,k,l=a.length,m=0,n=[];;){if(c(U),m>=l)return n;g=c(V),h=[],","===g.slice(-1)?(g=g.replace(W,""),e()):f()}}function n(a){function b(a){function b(){f&&(g.push(f),f="")}function c(){g[0]&&(h.push(g),g=[])}for(var e,f="",g=[],h=[],i=0,j=0,k=!1;;){if(e=a.charAt(j),""===e)return b(),c(),h;if(k){if("*"===e&&"/"===a[j+1]){k=!1,j+=2,b();continue}j+=1}else{if(d(e)){if(a.charAt(j-1)&&d(a.charAt(j-1))||!f){j+=1;continue}if(0===i){b(),j+=1;continue}e=" "}else if("("===e)i+=1;else if(")"===e)i-=1;else{if(","===e){b(),c(),j+=1;continue}if("/"===e&&"*"===a.charAt(j+1)){k=!0,j+=2;continue}}f+=e,j+=1}}}function c(a){return k.test(a)&&parseFloat(a)>=0?!0:l.test(a)?!0:"0"===a||"-0"===a||"+0"===a?!0:!1}var e,f,g,h,i,j,k=/^(?:[+-]?[0-9]+|[0-9]*\.[0-9]+)(?:[eE][+-]?[0-9]+)?(?:ch|cm|em|ex|in|mm|pc|pt|px|rem|vh|vmin|vmax|vw)$/i,l=/^calc\((?:[0-9a-z \.\+\-\*\/\(\)]+)\)$/i;for(f=b(a),g=f.length,e=0;g>e;e++)if(h=f[e],i=h[h.length-1],c(i)){if(j=i,h.pop(),0===h.length)return j;if(h=h.join(" "),s.matchesMedia(h))return j}return"100vw"}b.createElement("picture");var o,p,q,r,s={},t=!1,u=function(){},v=b.createElement("img"),w=v.getAttribute,x=v.setAttribute,y=v.removeAttribute,z=b.documentElement,A={},B={algorithm:""},C="data-pfsrc",D=C+"set",E=navigator.userAgent,F=/rident/.test(E)||/ecko/.test(E)&&E.match(/rv\:(\d+)/)&&RegExp.$1>35,G="currentSrc",H=/\s+\+?\d+(e\d+)?w/,I=/(\([^)]+\))?\s*(.+)/,J=a.picturefillCFG,K="position:absolute;left:0;visibility:hidden;display:block;padding:0;border:none;font-size:1em;width:1em;overflow:hidden;clip:rect(0px, 0px, 0px, 0px)",L="font-size:100%!important;",M=!0,N={},O={},P=a.devicePixelRatio,Q={px:1,"in":96},R=b.createElement("a"),S=!1,T=/^[ \t\n\r\u000c]+/,U=/^[, \t\n\r\u000c]+/,V=/^[^ \t\n\r\u000c]+/,W=/[,]+$/,X=/^\d+$/,Y=/^-?(?:[0-9]+|[0-9]*\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/,Z=function(a,b,c,d){a.addEventListener?a.addEventListener(b,c,d||!1):a.attachEvent&&a.attachEvent("on"+b,c)},$=function(a){var b={};return function(c){return c in b||(b[c]=a(c)),b[c]}},_=function(){var a=/^([\d\.]+)(em|vw|px)$/,b=function(){for(var a=arguments,b=0,c=a[0];++b in a;)c=c.replace(a[b],a[++b]);return c},c=$(function(a){return"return "+b((a||"").toLowerCase(),/\band\b/g,"&&",/,/g,"||",/min-([a-z-\s]+):/g,"e.$1>=",/max-([a-z-\s]+):/g,"e.$1<=",/calc([^)]+)/g,"($1)",/(\d+[\.]*[\d]*)([a-z]+)/g,"($1 * e.$2)",/^(?!(e.[a-z]|[0-9\.&=|><\+\-\*\(\)\/])).*/gi,"")+";"});return function(b,d){var e;if(!(b in N))if(N[b]=!1,d&&(e=b.match(a)))N[b]=e[1]*Q[e[2]];else try{N[b]=new Function("e",c(b))(Q)}catch(f){}return N[b]}}(),aa=function(a,b){return a.w?(a.cWidth=s.calcListLength(b||"100vw"),a.res=a.w/a.cWidth):a.res=a.d,a},ba=function(a){if(t){var c,d,e,f=a||{};if(f.elements&&1===f.elements.nodeType&&("IMG"===f.elements.nodeName.toUpperCase()?f.elements=[f.elements]:(f.context=f.elements,f.elements=null)),c=f.elements||s.qsa(f.context||b,f.reevaluate||f.reselect?s.sel:s.selShort),e=c.length){for(s.setupRun(f),S=!0,d=0;e>d;d++)s.fillImg(c[d],f);s.teardownRun(f)}}};o=a.console&&console.warn?function(a){console.warn(a)}:u,G in v||(G="src"),A["image/jpeg"]=!0,A["image/gif"]=!0,A["image/png"]=!0,A["image/svg+xml"]=b.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#Image","1.1"),s.ns=("pf"+(new Date).getTime()).substr(0,9),s.supSrcset="srcset"in v,s.supSizes="sizes"in v,s.supPicture=!!a.HTMLPictureElement,s.supSrcset&&s.supPicture&&!s.supSizes&&!function(a){v.srcset="data:,a",a.src="data:,a",s.supSrcset=v.complete===a.complete,s.supPicture=s.supSrcset&&s.supPicture}(b.createElement("img")),s.supSrcset&&!s.supSizes?!function(){var a="data:image/gif;base64,R0lGODlhAgABAPAAAP///wAAACH5BAAAAAAALAAAAAACAAEAAAICBAoAOw==",c="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",d=b.createElement("img"),e=function(){var a=d.width;2===a&&(s.supSizes=!0),q=s.supSrcset&&!s.supSizes,t=!0,setTimeout(ba)};d.onload=e,d.onerror=e,d.setAttribute("sizes","9px"),d.srcset=c+" 1w,"+a+" 9w",d.src=c}():t=!0,s.selShort="picture>img,img[srcset]",s.sel=s.selShort,s.cfg=B,s.DPR=P||1,s.u=Q,s.types=A,s.setSize=u,s.makeUrl=$(function(a){return R.href=a,R.href}),s.qsa=function(a,b){return"querySelector"in a?a.querySelectorAll(b):[]},s.matchesMedia=function(){return a.matchMedia&&(matchMedia("(min-width: 0.1em)")||{}).matches?s.matchesMedia=function(a){return!a||matchMedia(a).matches}:s.matchesMedia=s.mMQ,s.matchesMedia.apply(this,arguments)},s.mMQ=function(a){return a?_(a):!0},s.calcLength=function(a){var b=_(a,!0)||!1;return 0>b&&(b=!1),b},s.supportsType=function(a){return a?A[a]:!0},s.parseSize=$(function(a){var b=(a||"").match(I);return{media:b&&b[1],length:b&&b[2]}}),s.parseSet=function(a){return a.cands||(a.cands=m(a.srcset,a)),a.cands},s.getEmValue=function(){var a;if(!p&&(a=b.body)){var c=b.createElement("div"),d=z.style.cssText,e=a.style.cssText;c.style.cssText=K,z.style.cssText=L,a.style.cssText=L,a.appendChild(c),p=c.offsetWidth,a.removeChild(c),p=parseFloat(p,10),z.style.cssText=d,a.style.cssText=e}return p||16},s.calcListLength=function(a){if(!(a in O)||B.uT){var b=s.calcLength(n(a));O[a]=b?b:Q.width}return O[a]},s.setRes=function(a){var b;if(a){b=s.parseSet(a);for(var c=0,d=b.length;d>c;c++)aa(b[c],a.sizes)}return b},s.setRes.res=aa,s.applySetCandidate=function(a,b){if(a.length){var c,d,e,f,h,k,l,m,n,o=b[s.ns],p=s.DPR;if(k=o.curSrc||b[G],l=o.curCan||j(b,k,a[0].set),l&&l.set===a[0].set&&(n=F&&!b.complete&&l.res-.1>p,n||(l.cached=!0,l.res>=p&&(h=l))),!h)for(a.sort(i),f=a.length,h=a[f-1],d=0;f>d;d++)if(c=a[d],c.res>=p){e=d-1,h=a[e]&&(n||k!==s.makeUrl(c.url))&&g(a[e].res,c.res,p,a[e].cached)?a[e]:c;break}h&&(m=s.makeUrl(h.url),o.curSrc=m,o.curCan=h,m!==k&&s.setSrc(b,h),s.setSize(b))}},s.setSrc=function(a,b){var c;a.src=b.url,"image/svg+xml"===b.set.type&&(c=a.style.width,a.style.width=a.offsetWidth+1+"px",a.offsetWidth+1&&(a.style.width=c))},s.getSet=function(a){var b,c,d,e=!1,f=a[s.ns].sets;for(b=0;b<f.length&&!e;b++)if(c=f[b],c.srcset&&s.matchesMedia(c.media)&&(d=s.supportsType(c.type))){"pending"===d&&(c=d),e=c;break}return e},s.parseSets=function(a,b,d){var e,f,g,h,i=b&&"PICTURE"===b.nodeName.toUpperCase(),j=a[s.ns];(j.src===c||d.src)&&(j.src=w.call(a,"src"),j.src?x.call(a,C,j.src):y.call(a,C)),(j.srcset===c||d.srcset||!s.supSrcset||a.srcset)&&(e=w.call(a,"srcset"),j.srcset=e,h=!0),j.sets=[],i&&(j.pic=!0,l(b,j.sets)),j.srcset?(f={srcset:j.srcset,sizes:w.call(a,"sizes")}
10802,j.sets.push(f),g=(q||j.src)&&H.test(j.srcset||""),g||!j.src||k(j.src,f)||f.has1x||(f.srcset+=", "+j.src,f.cands.push({url:j.src,d:1,set:f}))):j.src&&j.sets.push({srcset:j.src,sizes:null}),j.curCan=null,j.curSrc=c,j.supported=!(i||f&&!s.supSrcset||g&&!s.supSizes),h&&s.supSrcset&&!j.supported&&(e?(x.call(a,D,e),a.srcset=""):y.call(a,D)),j.supported&&!j.srcset&&(!j.src&&a.src||a.src!==s.makeUrl(j.src))&&(null===j.src?a.removeAttribute("src"):a.src=j.src),j.parsed=!0},s.fillImg=function(a,b){var c,d=b.reselect||b.reevaluate;a[s.ns]||(a[s.ns]={}),c=a[s.ns],(d||c.evaled!==r)&&((!c.parsed||b.reevaluate)&&s.parseSets(a,a.parentNode,b),c.supported?c.evaled=r:h(a))},s.setupRun=function(){(!S||M||P!==a.devicePixelRatio)&&f()},s.supPicture?(ba=u,s.fillImg=u):!function(){var c,d=a.attachEvent?/d$|^c/:/d$|^c|^i/,e=function(){var a=b.readyState||"";f=setTimeout(e,"loading"===a?200:999),b.body&&(s.fillImgs(),c=c||d.test(a),c&&clearTimeout(f))},f=setTimeout(e,b.body?9:99),g=function(a,b){var c,d,e=function(){var f=new Date-d;b>f?c=setTimeout(e,b-f):(c=null,a())};return function(){d=new Date,c||(c=setTimeout(e,b))}},h=z.clientHeight,i=function(){M=Math.max(a.innerWidth||0,z.clientWidth)!==Q.width||z.clientHeight!==h,h=z.clientHeight,M&&s.fillImgs()};Z(a,"resize",g(i,99)),Z(b,"readystatechange",e)}(),s.picturefill=ba,s.fillImgs=ba,s.teardownRun=u,ba._=s,a.picturefillCFG={pf:s,push:function(a){var b=a.shift();"function"==typeof s[b]?s[b].apply(s,a):(B[b]=a[0],S&&s.fillImgs({reselect:!0}))}};for(;J&&J.length;)a.picturefillCFG.push(J.shift());a.picturefill=ba,"object"==typeof module&&"object"==typeof module.exports?module.exports=ba:"function"==typeof define&&define.amd&&define("picturefill",function(){return ba}),s.supPicture||(A["image/webp"]=e("image/webp","data:image/webp;base64,UklGRkoAAABXRUJQVlA4WAoAAAAQAAAAAAAAAAAAQUxQSAwAAAABBxAR/Q9ERP8DAABWUDggGAAAADABAJ0BKgEAAQADADQlpAADcAD++/1QAA=="))}(window,document);
10803/*!
10804 * Plyr v3.7.2
10805 * https://github.com/sampotts/plyr
10806 */
10807"object"==typeof navigator&&function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define("Plyr",t):(e="undefined"!=typeof globalThis?globalThis:e||self).Plyr=t()}(this,(function(){"use strict";function e(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function t(e,t){for(var i=0;i<t.length;i++){var s=t[i];s.enumerable=s.enumerable||!1,s.configurable=!0,"value"in s&&(s.writable=!0),Object.defineProperty(e,s.key,s)}}function i(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function s(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,s)}return i}function n(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?s(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):s(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var a={addCSS:!0,thumbWidth:15,watch:!0};function l(e,t){return function(){return Array.from(document.querySelectorAll(t)).includes(this)}.call(e,t)}var o=function(e){return null!=e?e.constructor:null},r=function(e,t){return!!(e&&t&&e instanceof t)},c=function(e){return null==e},h=function(e){return o(e)===Object},u=function(e){return o(e)===String},d=function(e){return Array.isArray(e)},m=function(e){return r(e,NodeList)},p=u,g=d,f=m,b=function(e){return r(e,Element)},y=function(e){return r(e,Event)},v=function(e){return c(e)||(u(e)||d(e)||m(e))&&!e.length||h(e)&&!Object.keys(e).length};function w(e,t){if(1>t){var i=function(e){var t="".concat(e).match(/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/);return t?Math.max(0,(t[1]?t[1].length:0)-(t[2]?+t[2]:0)):0}(t);return parseFloat(e.toFixed(i))}return Math.round(e/t)*t}var T=function(){function e(t,i){(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")})(this,e),b(t)?this.element=t:p(t)&&(this.element=document.querySelector(t)),b(this.element)&&v(this.element.rangeTouch)&&(this.config=n({},a,{},i),this.init())}
10807return function(e,i,s){i&&t(e.prototype,i),s&&t(e,s)}(e,[{key:"init",value:function(){e.enabled&&(this.config.addCSS&&(this.element.style.userSelect="none",this.element.style.webKitUserSelect="none",this.element.style.touchAction="manipulation"),this.listeners(!0),this.element.rangeTouch=this)}},{key:"destroy",value:function(){e.enabled&&(this.config.addCSS&&(this.element.style.userSelect="",this.element.style.webKitUserSelect="",this.element.style.touchAction=""),this.listeners(!1),this.element.rangeTouch=null)}},{key:"listeners",value:function(e){var t=this,i=e?"addEventListener":"removeEventListener";["touchstart","touchmove","touchend"].forEach((function(e){t.element[i](e,(function(e){return t.set(e)}),!1)}))}},{key:"get",value:function(t){if(!e.enabled||!y(t))return null;var i,s=t.target,n=t.changedTouches[0],a=parseFloat(s.getAttribute("min"))||0,l=parseFloat(s.getAttribute("max"))||100,o=parseFloat(s.getAttribute("step"))||1,r=s.getBoundingClientRect(),c=100/r.width*(this.config.thumbWidth/2)/100;return 0>(i=100/r.width*(n.clientX-r.left))?i=0:100<i&&(i=100),50>i?i-=(100-2*i)*c:50<i&&(i+=2*(i-50)*c),a+w(i/100*(l-a),o)}},{key:"set",value:function(t){e.enabled&&y(t)&&!t.target.disabled&&(t.preventDefault(),t.target.value=this.get(t),function(e,t){if(e&&t){var i=new Event(t,{bubbles:!0});e.dispatchEvent(i)}}(t.target,"touchend"===t.type?"change":"input"))}}],[{key:"setup",value:function(t){var i=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},s=null;if(v(t)||p(t)?s=Array.from(document.querySelectorAll(p(t)?t:'input[type="range"]')):b(t)?s=[t]:f(t)?s=Array.from(t):g(t)&&(s=t.filter(b)),v(s))return null;var o=n({},a,{},i);if(p(t)&&o.watch){var r=new MutationObserver((function(i){Array.from(i).forEach((function(i){Array.from(i.addedNodes).forEach((function(i){b(i)&&l(i,t)&&new e(i,o)}))}))}));r.observe(document.body,{childList:!0,subtree:!0})}return s.map((function(t){return new e(t,i)}))}},{key:"enabled",get:function(){return"ontouchstart"in document.documentElement}}]),e}();const k=e=>null!=e?e.constructor:null,C=(e,t)=>Boolean(e&&t&&e instanceof t),A=e=>null==e,S=e=>k(e)===Object,E=e=>k(e)===String,P=e=>k(e)===Function,M=e=>Array.isArray(e),N=e=>C(e,NodeList),x=e=>A(e)||(E(e)||M(e)||N(e))&&!e.length||S(e)&&!Object.keys(e).length;var I=A,L=S,$=e=>k(e)===Number&&!Number.isNaN(e),_=E,O=e=>k(e)===Boolean,j=P,D=M,q=N,H=e=>null!==e&&"object"==typeof e&&1===e.nodeType&&"object"==typeof e.style&&"object"==typeof e.ownerDocument,R=e=>C(e,Event),F=e=>C(e,KeyboardEvent),V=e=>C(e,TextTrack)||!A(e)&&E(e.kind),B=e=>C(e,Promise)&&P(e.then),U=e=>{if(C(e,window.URL))return!0;if(!E(e))return!1;let t=e;e.startsWith("http://")&&e.startsWith("https://")||(t=`http://${e}`);try{return!x(new URL(t).hostname)}catch(e){return!1}},W=x;const z=(()=>{const e=document.createElement("span"),t={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"},i=Object.keys(t).find((t=>void 0!==e.style[t]));return!!_(i)&&t[i]})();function K(e,t){setTimeout((()=>{try{e.hidden=!0,e.offsetHeight,e.hidden=!1}catch(e){}}),t)}const Y={isIE:Boolean(window.document.documentMode),isEdge:window.navigator.userAgent.includes("Edge"),isWebkit:"WebkitAppearance"in document.documentElement.style&&!/Edge/.test(navigator.userAgent),isIPhone:/(iPhone|iPod)/gi.test(navigator.platform),isIos:"MacIntel"===navigator.platform&&navigator.maxTouchPoints>1||/(iPad|iPhone|iPod)/gi.test(navigator.platform)};function Q(e,t){return t.split(".").reduce(((e,t)=>e&&e[t]),e)}function X(e={},...t){if(!t.length)return e;const i=t.shift();
10807return L(i)?(Object.keys(i).forEach((t=>{L(i[t])?(Object.keys(e).includes(t)||Object.assign(e,{[t]:{}}),X(e[t],i[t])):Object.assign(e,{[t]:i[t]})})),X(e,...t)):e}function J(e,t){const i=e.length?e:[e];Array.from(i).reverse().forEach(((e,i)=>{const s=i>0?t.cloneNode(!0):t,n=e.parentNode,a=e.nextSibling;s.appendChild(e),a?n.insertBefore(s,a):n.appendChild(s)}))}function G(e,t){H(e)&&!W(t)&&Object.entries(t).filter((([,e])=>!I(e))).forEach((([t,i])=>e.setAttribute(t,i)))}function Z(e,t,i){const s=document.createElement(e);return L(t)&&G(s,t),_(i)&&(s.innerText=i),s}function ee(e,t,i,s){H(t)&&t.appendChild(Z(e,i,s))}function te(e){q(e)||D(e)?Array.from(e).forEach(te):H(e)&&H(e.parentNode)&&e.parentNode.removeChild(e)}function ie(e){if(!H(e))return;let{length:t}=e.childNodes;for(;t>0;)e.removeChild(e.lastChild),t-=1}function se(e,t){return H(t)&&H(t.parentNode)&&H(e)?(t.parentNode.replaceChild(e,t),e):null}function ne(e,t){if(!_(e)||W(e))return{};const i={},s=X({},t);return e.split(",").forEach((e=>{const t=e.trim(),n=t.replace(".",""),a=t.replace(/[[\]]/g,"").split("="),[l]=a,o=a.length>1?a[1].replace(/["']/g,""):"";switch(t.charAt(0)){case".":_(s.class)?i.class=`${s.class} ${n}`:i.class=n;break;case"#":i.id=t.replace("#","");break;case"[":i[l]=o}})),X(s,i)}function ae(e,t){if(!H(e))return;let i=t;O(i)||(i=!e.hidden),e.hidden=i}function le(e,t,i){if(q(e))return Array.from(e).map((e=>le(e,t,i)));if(H(e)){let s="toggle";return void 0!==i&&(s=i?"add":"remove"),e.classList[s](t),e.classList.contains(t)}return!1}function oe(e,t){return H(e)&&e.classList.contains(t)}function re(e,t){const{prototype:i}=Element;return(i.matches||i.webkitMatchesSelector||i.mozMatchesSelector||i.msMatchesSelector||function(){return Array.from(document.querySelectorAll(t)).includes(this)}).call(e,t)}function ce(e){return this.elements.container.querySelectorAll(e)}function he(e){return this.elements.container.querySelector(e)}function ue(e=null,t=!1){H(e)&&(e.focus({preventScroll:!0}),t&&le(e,this.config.classNames.tabFocus))}const de={"audio/ogg":"vorbis","audio/wav":"1","video/webm":"vp8, vorbis","video/mp4":"avc1.42E01E, mp4a.40.2","video/ogg":"theora"},me={audio:"canPlayType"in document.createElement("audio"),video:"canPlayType"in document.createElement("video"),check(e,t,i){const s=Y.isIPhone&&i&&me.playsinline,n=me[e]||"html5"!==t;return{api:n,ui:n&&me.rangeInput&&("video"!==e||!Y.isIPhone||s)}},pip:!(Y.isIPhone||!j(Z("video").webkitSetPresentationMode)&&(!document.pictureInPictureEnabled||Z("video").disablePictureInPicture)),airplay:j(window.WebKitPlaybackTargetAvailabilityEvent),playsinline:"playsInline"in document.createElement("video"),mime(e){if(W(e))return!1;const[t]=e.split("/");let i=e;if(!this.isHTML5||t!==this.type)return!1;Object.keys(de).includes(i)&&(i+=`; codecs="${de[e]}"`);try{return Boolean(i&&this.media.canPlayType(i).replace(/no/,""))}catch(e){return!1}},textTracks:"textTracks"in document.createElement("video"),rangeInput:(()=>{const e=document.createElement("input");return e.type="range","range"===e.type})(),touch:"ontouchstart"in document.documentElement,transitions:!1!==z,reducedMotion:"matchMedia"in window&&window.matchMedia("(prefers-reduced-motion)").matches},pe=(()=>{let e=!1;try{const t=Object.defineProperty({},"passive",{get:()=>(e=!0,null)});window.addEventListener("test",null,t),window.removeEventListener("test",null,t)}catch(e){}return e})();function ge(e,t,i,s=!1,n=!0,a=!1){if(!e||!("addEventListener"in e)||W(t)||!j(i))return;const l=t.split(" ");let o=a;pe&&(o={passive:n,capture:a}),l.forEach((t=>{this&&this.eventListeners&&s&&this.eventListeners.push({element:e,type:t,callback:i,options:o}),e[s?"addEventListener":"removeEventListener"](t,i,o)}))}function fe(e,t="",i,s=!0,n=!1){ge.call(this,e,t,i,!0,s,n)}function be(e,t="",i,s=!0,n=!1){ge.call(this,e,t,i,!1,s,n)}function ye(e,t="",i,s=!0,n=!1){const a=(...l)=>{be(e,t,a,s,n),i.apply(this,l)};ge.call(this,e,t,a,!0,s,n)}function ve(e,t="",i=!1,s={}){if(!H(e)||W(t))return;const n=new CustomEvent(t,{bubbles:i,detail:{...s,plyr:this}});e.dispatchEvent(n)}function we(){this&&this.eventListeners&&(this.eventListeners.forEac
vendor: 12,214 bytes, line 10807
10807h((e=>{const{element:t,type:i,callback:s,options:n}=e;t.removeEventListener(i,s,n)})),this.eventListeners=[])}function Te(){return new Promise((e=>this.ready?setTimeout(e,0):fe.call(this,this.elements.container,"ready",e))).then((()=>{}))}function ke(e){B(e)&&e.then(null,(()=>{}))}function Ce(e){return D(e)?e.filter(((t,i)=>e.indexOf(t)===i)):e}function Ae(e,t){return D(e)&&e.length?e.reduce(((e,i)=>Math.abs(i-t)<Math.abs(e-t)?i:e)):null}function Se(e){return!(!window||!window.CSS)&&window.CSS.supports(e)}const Ee=[[1,1],[4,3],[3,4],[5,4],[4,5],[3,2],[2,3],[16,10],[10,16],[16,9],[9,16],[21,9],[9,21],[32,9],[9,32]].reduce(((e,[t,i])=>({...e,[t/i]:[t,i]})),{});function Pe(e){if(!(D(e)||_(e)&&e.includes(":")))return!1;return(D(e)?e:e.split(":")).map(Number).every($)}function Me(e){if(!D(e)||!e.every($))return null;const[t,i]=e,s=(e,t)=>0===t?e:s(t,e%t),n=s(t,i);return[t/n,i/n]}function Ne(e){const t=e=>Pe(e)?e.split(":").map(Number):null;let i=t(e);if(null===i&&(i=t(this.config.ratio)),null===i&&!W(this.embed)&&D(this.embed.ratio)&&({ratio:i}=this.embed),null===i&&this.isHTML5){const{videoWidth:e,videoHeight:t}=this.media;i=[e,t]}return Me(i)}function xe(e){if(!this.isVideo)return{};const{wrapper:t}=this.elements,i=Ne.call(this,e);if(!D(i))return{};const[s,n]=Me(i),a=100/s*n;if(Se(`aspect-ratio: ${s}/${n}`)?t.style.aspectRatio=`${s}/${n}`:t.style.paddingBottom=`${a}%`,this.isVimeo&&!this.config.vimeo.premium&&this.supported.ui){const e=100/this.media.offsetWidth*parseInt(window.getComputedStyle(this.media).paddingBottom,10),i=(e-a)/(e/50);this.fullscreen.active?t.style.paddingBottom=null:this.media.style.transform=`translateY(-${i}%)`}else this.isHTML5&&t.classList.add(this.config.classNames.videoFixedRatio);return{padding:a,ratio:i}}function Ie(e,t,i=.05){const s=e/t,n=Ae(Object.keys(Ee),s);return Math.abs(n-s)<=i?Ee[n]:[e,t]}const Le={getSources(){if(!this.isHTML5)return[];return Array.from(this.media.querySelectorAll("source")).filter((e=>{const t=e.getAttribute("type");return!!W(t)||me.mime.call(this,t)}))},getQualityOptions(){return this.config.quality.forced?this.config.quality.options:Le.getSources.call(this).map((e=>Number(e.getAttribute("size")))).filter(Boolean)},setup(){if(!this.isHTML5)return;const e=this;e.options.speed=e.config.speed.options,W(this.config.ratio)||xe.call(e),Object.defineProperty(e.media,"quality",{get(){const t=Le.getSources.call(e).find((t=>t.getAttribute("src")===e.source));return t&&Number(t.getAttribute("size"))},set(t){if(e.quality!==t){if(e.config.quality.forced&&j(e.config.quality.onChange))e.config.quality.onChange(t);else{const i=Le.getSources.call(e).find((e=>Number(e.getAttribute("size"))===t));if(!i)return;const{currentTime:s,paused:n,preload:a,readyState:l,playbackRate:o}=e.media;e.media.src=i.getAttribute("src"),("none"!==a||l)&&(e.once("loadedmetadata",(()=>{e.speed=o,e.currentTime=s,n||ke(e.play())})),e.media.load())}ve.call(e,e.media,"qualitychange",!1,{quality:t})}}})},cancelRequests(){this.isHTML5&&(te(Le.getSources.call(this)),this.media.setAttribute("src",this.config.blankVideo),this.media.load(),this.debug.log("Cancelled network requests"))}};function $e(e,...t){return W(e)?e:e.toString().replace(/{(\d+)}/g,((e,i)=>t[i].toString()))}const _e=(e="",t="",i="")=>e.replace(new RegExp(t.toString().replace(/([.*+?^=!:${}()|[\]/\\])/g,"\\$1"),"g"),i.toString()),Oe=(e="")=>e.toString().replace(/\w\S*/g,(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()));function je(e=""){let t=e.toString();return t=function(e=""){let t=e.toString();return t=_e(t,"-"," "),t=_e(t,"_"," "),t=Oe(t),_e(t," ","")}(t),t.charAt(0).toLowerCase()+t.slice(1)}function De(e){const t=document.createElement("div");return t.appendChild(e),t.innerHTML}const qe={pip:"PIP",airplay:"AirPlay",html5:"HTML5",vimeo:"Vimeo",youtube:"YouTube"},He={get(e="",t={}){if(W(e)||W(t))return"";let i=Q(t.i18n,e);if(W(i))return Object.keys(qe).includes(e)?qe[e]:"";const s={"{seektime}":t.seekTime,"{title}":t.title};return Object.entries(s).forEach((([e,t])=>{i=_e(i,e,t)})),i}};class Re{constructor(t){e(this,"get",(e=>{if(!Re.supported||!this.enabled)return null;const t=window.localStorage.getItem(this.key);if(W(t))return null;const i=JSON.parse(t);return _(e)&&e.length?i[e]:i})),e(this,"set",(e=>{if(!Re.supported||!this.enabled)return;if(!L(e))return;let t=this.get();W(t)&&(t={}),X(t,e);try{window.localStorage.setItem(this.key,JSON.stringify(t))}catch(e){}})),this.enabled=t.config.storage.enabled,this.key=t.config.storage.key}static get supported(){try{if(!("localStorage"in window))return!1;const e="___test";return window.localStorage.setItem(e,e),window.localStorage.removeItem(e),!0}catch(e){return!1}}}function Fe(e,t="text"){return new Promise(((i,s)=>{try{const s=new XMLHttpRequest;if(!("withCredentials"in s))return;s.addEventListener("load",(()=>{if("text"===t)try{i(JSON.parse(s.responseText))}catch(e){i(s.responseText)}else i(s.response)})),s.addEventListener("error",(()=>{throw new Error(s.status)})),s.open("GET",e,!0),s.responseType=t,s.send()}catch(e){s(e)}}))}function Ve(e,t){if(!_(e))return;const i=_(t);let s=!1;const n=()=>null!==document.getElementById(t),a=(e,t)=>{e.innerHTML=t,i&&n()||document.body.insertAdjacentElement("afterbegin",e)};if(!i||!n()){const n=Re.supported,l=document.createElement("div");if(l.setAttribute("hidden",""),i&&l.setAttribute("id",t),n){const e=window.localStorage.getItem(`cache-${t}`);if(s=null!==e,s){const t=JSON.parse(e);a(l,t.content)}}Fe(e).then((e=>{if(!W(e)){if(n)try{window.localStorage.setItem(`cache-${t}`,JSON.stringify({content:e}))}catch(e){}a(l,e)}})).catch((()=>{}))}}const Be=e=>Math.trunc(e/60/60%60,10);function Ue(e=0,t=!1,i=!1){if(!$(e))return Ue(void 0,t,i);const s=e=>`0${e}`.slice(-2);let n=Be(e);const a=(l=e,Math.trunc(l/60%60,10));var l;const o=(e=>Math.trunc(e%60,10))(e);return n=t||n>0?`${n}:`:"",`${i&&e>0?"-":""}${n}${s(a)}:${s(o)}`}const We={getIconUrl(){const e=new URL(this.config.iconUrl,window.location),t=window.location.host?window.location.host:window.top.location.host,i=e.host!==t||Y.isIE&&!window.svg4everybody;return{url:this.config.iconUrl,cors:i}},findElements(){try{return this.elements.controls=he.call(this,this.config.selectors.controls.wrapper),this.elements.buttons={play:ce.call(this,this.config.selectors.buttons.play),pause:he.call(this,this.config.selectors.buttons.pause),restart:he.call(this,this.config.selectors.buttons.restart),rewind:he.call(this,this.config.selectors.buttons.rewind),fastForward:he.call(this,this.config.selectors.buttons.fastForward),mute:he.call(this,this.config.selectors.buttons.mute),pip:he.call(this,this.config.selectors.buttons.pip),airplay:he.call(this,this.config.selectors.buttons.airplay),settings:he.call(this,this.config.selectors.buttons.settings),captions:he.call(this,this.config.selectors.buttons.captions),fullscreen:he.call(this,this.config.selectors.buttons.fullscreen)},this.elements.progress=he.call(this,this.config.selectors.progress),this.elements.inputs={seek:he.call(this,this.config.selectors.inputs.seek),volume:he.call(this,this.config.selectors.inputs.volume)},this.elements.display={buffer:he.call(this,this.config.selectors.display.buffer),currentTime:he.call(this,this.config.selectors.display.currentTime),duration:he.call(this,this.config.selectors.display.duration)},H(this.elements.progress)&&(this.elements.display.seekTooltip=this.elements.progress.querySelector(`.${this.config.classNames.tooltip}`)),!0}catch(e){return this.debug.warn("It looks like there is a problem with your custom controls HTML",e),this.toggleNativeControls(!0),!1}},createIcon(e,t){const i="http://www.w3.org/2000/svg",s=We.getIconUrl.call(this),n=`${s.cors?"":s.url}#${this.config.iconPrefix}`,a=document.createElementNS(i,"svg");G(a,X(t,{"aria-hidden":"true",focusable:"false"}));const l=document.createElementNS(i,"use"),o=`${n}-${e}`;return"href"in l&&l.setAttributeNS("http://www.w3.org/1999/xlink","href",o),l.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",o),a.appendChild(l),a},createLabel(e,t={}){const i=He.get(e,this.config);return Z("span",{...t,class:[t.class,this.config.classNames.hidden].filter(Boolean).join(" ")},i)},createBadge(e){if(W(e))return null;const t=Z("span",{class:this.config.classNames.menu.value});return t.appendChild(Z("span",{class:this.config.classNames.menu.badge},e)),t},createButton(e,t){const i=X({},t);let s=je(e);const n={element:"button",toggle:!1,label:null,icon:null,labelPressed:null,iconPressed:null};switch(["element","icon","label"].forEach((e=>{Object.keys(i).includes(e)&&(n[e]=i[e],delete i[e])})),"button"!==n.element||Object.keys(i).includes("type")||(i.type="button"),Object.keys(i).includes("class")?i.class.split(" ").some((e=>e===this.config.classNames.control))||X(i,{class:`${i.class} ${this.config.classNames.control}`}):i.class=this.config.classNames.control,e){case"play":n.toggle=!0,n.label="play",n.labelPressed="pause",n.icon="play",n.iconPressed="pause";break;case"mute":n.toggle=!0,n.label="mute",n.labelPressed="unmute",n.icon="volume",n.iconPressed="muted";break;case"captions":n.toggle=!0,n.label="enableCaptions",n.labelPressed="disableCaptions",n.icon="captions-off",n.iconPressed="captions-on";break;case"fullscreen":n.toggle=!0,n.label="enterFullscreen",n.labelPressed="exitFullscreen",n.icon="enter-fullscreen",n.iconPressed="exit-fullscreen";break;case"play-large":i.class+=` ${this.config.classNames.control}--overlaid`,s="play",n.label="play",n.icon="play";break;default:W(n.label)&&(n.label=s),W(n.icon)&&(n.icon=e)}const a=Z(n.element);return n.toggle?(a.appendChild(We.createIcon.call(this,n.iconPressed,{class:"icon--pressed"})),a.appendChild(We.createIcon.call(this,n.icon,{class:"icon--not-pressed"})),a.appendChild(We.createLabel.call(this,n.labelPressed,{class:"label--pressed"})),a.appendChild(We.createLabel.call(this,n.label,{class:"label--not-pressed"}))):(a.appendChild(We.createIcon.call(this,n.icon)),a.appendChild(We.createLabel.call(this,n.label))),X(i,ne(this.config.selectors.buttons[s],i)),G(a,i),"play"===s?(D(this.elements.buttons[s])||(this.elements.buttons[s]=[]),this.elements.buttons[s].push(a)):this.elements.buttons[s]=a,a},createRange(e,t){const i=Z("input",X(ne(this.config.selectors.inputs[e]),{type:"range",min:0,max:100,step:.01,value:0,autocomplete:"off",role:"slider","aria-label":He.get(e,this.config),"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":0},t));return this.elements.inputs[e]=i,We.updateRangeFill.call(this,i),T.setup(i),i},createProgress(e,t){const i=Z("progress",X(ne(this.config.selectors.display[e]),{min:0,max:100,value:0,role:"progressbar","aria-hidden":!0},t));if("volume"!==e){i.appendChild(Z("span",null,"0"));const t={played:"played",buffer:"buffered"}[e],s=t?He.get(t,this.config):"";i.innerText=`% ${s.toLowerCase()}`}return this.elements.display[e]=i,i},createTime(e,t){const i=ne(this.config.selectors.display[e],t),s=Z("div",X(i,{class:`${i.class?i.class:""} ${this.config.classNames.display.time} `.trim(),"aria-label":He.get(e,this.config)}),"00:00");return this.elements.display[e]=s,s},bindMenuItemShortcuts(e,t){fe.call(this,e,"keydown keyup",(i=>{if(!["Space","ArrowUp","ArrowDown","ArrowRight"].includes(i.key))return;if(i.preventDefault(),i.stopPropagation(),"keydown"===i.type)return;const s=re(e,'[role="menuitemradio"]');if(!s&&["Space","ArrowRight"].includes(i.key))We.showMenuPanel.call(this,t,!0);else{let t;"Space"!==i.key&&("ArrowDown"===i.key||s&&"ArrowRight"===i.key?(t=e.nextElementSibling,H(t)||(t=e.parentNode.firstElementChild)):(t=e.previousElementSibling,H(t)||(t=e.parentNode.lastElementChild)),ue.call(this,t,!0))}}),!1),fe.call(this,e,"keyup",(e=>{"Return"===e.key&&We.focusFirstMenuItem.call(this,null,!0)}))},createMenuItem({value:e,list:t,type:i,title:s,badge:n=null,checked:a=!1}){const l=ne(this.config.selectors.inputs[i]),o=Z("button",X(l,{type:"button",role:"menuitemradio",class:`${this.config.classNames.control} ${l.class?l.class:""}`.trim(),"aria-checked":a,value:e})),r=Z("span");r.innerHTML=s,H(n)&&r.appendChild(n),o.appendChild(r),Object.defineProperty(o,"checked",{enumerable:!0,get:()=>"true"===o.getAttribute("aria-checked"),set(e){e&&Array.from(o.parentNode.children).filter((e=>
10807re(e,'[role="menuitemradio"]'))).forEach((e=>e.setAttribute("aria-checked","false"))),o.setAttribute("aria-checked",e?"true":"false")}}),this.listeners.bind(o,"click keyup",(t=>{if(!F(t)||"Space"===t.key){switch(t.preventDefault(),t.stopPropagation(),o.checked=!0,i){case"language":this.currentTrack=Number(e);break;case"quality":this.quality=e;break;case"speed":this.speed=parseFloat(e)}We.showMenuPanel.call(this,"home",F(t))}}),i,!1),We.bindMenuItemShortcuts.call(this,o,i),t.appendChild(o)},formatTime(e=0,t=!1){if(!$(e))return e;return Ue(e,Be(this.duration)>0,t)},updateTimeDisplay(e=null,t=0,i=!1){H(e)&&$(t)&&(e.innerText=We.formatTime(t,i))},updateVolume(){this.supported.ui&&(H(this.elements.inputs.volume)&&We.setRange.call(this,this.elements.inputs.volume,this.muted?0:this.volume),H(this.elements.buttons.mute)&&(this.elements.buttons.mute.pressed=this.muted||0===this.volume))},setRange(e,t=0){H(e)&&(e.value=t,We.updateRangeFill.call(this,e))},updateProgress(e){if(!this.supported.ui||!R(e))return;let t=0;const i=(e,t)=>{const i=$(t)?t:0,s=H(e)?e:this.elements.display.buffer;if(H(s)){s.value=i;const e=s.getElementsByTagName("span")[0];H(e)&&(e.childNodes[0].nodeValue=i)}};if(e)switch(e.type){case"timeupdate":case"seeking":case"seeked":s=this.currentTime,n=this.duration,t=0===s||0===n||Number.isNaN(s)||Number.isNaN(n)?0:(s/n*100).toFixed(2),"timeupdate"===e.type&&We.setRange.call(this,this.elements.inputs.seek,t);break;case"playing":case"progress":i(this.elements.display.buffer,100*this.buffered)}var s,n},updateRangeFill(e){const t=R(e)?e.target:e;if(H(t)&&"range"===t.getAttribute("type")){if(re(t,this.config.selectors.inputs.seek)){t.setAttribute("aria-valuenow",this.currentTime);const e=We.formatTime(this.currentTime),i=We.formatTime(this.duration),s=He.get("seekLabel",this.config);t.setAttribute("aria-valuetext",s.replace("{currentTime}",e).replace("{duration}",i))}else if(re(t,this.config.selectors.inputs.volume)){const e=100*t.value;t.setAttribute("aria-valuenow",e),t.setAttribute("aria-valuetext",`${e.toFixed(1)}%`)}else t.setAttribute("aria-valuenow",t.value);Y.isWebkit&&t.style.setProperty("--value",t.value/t.max*100+"%")}},updateSeekTooltip(e){var t,i;if(!this.config.tooltips.seek||!H(this.elements.inputs.seek)||!H(this.elements.display.seekTooltip)||0===this.duration)return;const s=this.elements.display.seekTooltip,n=`${this.config.classNames.tooltip}--visible`,a=e=>le(s,n,e);if(this.touch)return void a(!1);let l=0;const o=this.elements.progress.getBoundingClientRect();if(R(e))l=100/o.width*(e.pageX-o.left);else{if(!oe(s,n))return;l=parseFloat(s.style.left,10)}l<0?l=0:l>100&&(l=100);const r=this.duration/100*l;s.innerText=We.formatTime(r);const c=null===(t=this.config.markers)||void 0===t||null===(i=t.points)||void 0===i?void 0:i.find((({time:e})=>e===Math.round(r)));c&&s.insertAdjacentHTML("afterbegin",`${c.label}<br>`),s.style.left=`${l}%`,R(e)&&["mouseenter","mouseleave"].includes(e.type)&&a("mouseenter"===e.type)},timeUpdate(e){const t=!H(this.elements.display.duration)&&this.config.invertTime;We.updateTimeDisplay.call(this,this.elements.display.currentTime,t?this.duration-this.currentTime:this.currentTime,t),e&&"timeupdate"===e.type&&this.media.seeking||We.updateProgress.call(this,e)},durationUpdate(){if(!this.supported.ui||!this.config.invertTime&&this.currentTime)return;if(this.duration>=2**32)return ae(this.elements.display.currentTime,!0),void ae(this.elements.progress,!0);H(this.elements.inputs.seek)&&this.elements.inputs.seek.setAttribute("aria-valuemax",this.duration);const e=H(this.elements.display.duration);!e&&this.config.displayDuration&&this.paused&&We.updateTimeDisplay.call(this,this.elements.display.currentTime,this.duration),e&&We.updateTimeDisplay.call(this,this.elements.display.duration,this.duration),this.config.markers.enabled&&We.setMarkers.call(this),We.updateSeekTooltip.call(this)},toggleMenuButton(e,t){ae(this.elements.settings.buttons[e],!t)},updateSetting(e,t,i){const s=this.elements.settings.panels[e];let n=null,a=t;if("captions"===e)n=this.currentTrack;else{if(n=W(i)?this[e]:i,W(n)&&(n=this.config[e].default),!W(this.options[e])&&!this.options[e].includes(n))return void this.debug.warn(`Unsupported value of '${n}' for ${e}`);if(!this.config[e].options.includes(n))return void this.debug.warn(`Disabled value of '${n}' for ${e}`)}if(H(a)||(a=s&&s.querySelector('[role="menu"]')),!H(a))return;this.elements.settings.buttons[e].querySelector(`.${this.config.classNames.menu.value}`).innerHTML=We.getLabel.call(this,e,n);const l=a&&a.querySelector(`[value="${n}"]`);H(l)&&(l.checked=!0)},getLabel(e,t){switch(e){case"speed":return 1===t?He.get("normal",this.config):`${t}&times;`;case"quality":if($(t)){const e=He.get(`qualityLabel.${t}`,this.config);return e.length?e:`${t}p`}return Oe(t);case"captions":return Ye.getLabel.call(this);default:return null}},setQualityMenu(e){if(!H(this.elements.settings.panels.quality))return;const t="quality",i=this.elements.settings.panels.quality.querySelector('[role="menu"]');D(e)&&(this.options.quality=Ce(e).filter((e=>this.config.quality.options.includes(e))));const s=!W(this.options.quality)&&this.options.quality.length>1;if(We.toggleMenuButton.call(this,t,s),ie(i),We.checkMenu.call(this),!s)return;const n=e=>{const t=He.get(`qualityBadge.${e}`,this.config);return t.length?We.createBadge.call(this,t):null};this.options.quality.sort(((e,t)=>{const i=this.config.quality.options;return i.indexOf(e)>i.indexOf(t)?1:-1}
vendor: 16,778 bytes, line 10807
10807)).forEach((e=>{We.createMenuItem.call(this,{value:e,list:i,type:t,title:We.getLabel.call(this,"quality",e),badge:n(e)})})),We.updateSetting.call(this,t,i)},setCaptionsMenu(){if(!H(this.elements.settings.panels.captions))return;const e="captions",t=this.elements.settings.panels.captions.querySelector('[role="menu"]'),i=Ye.getTracks.call(this),s=Boolean(i.length);if(We.toggleMenuButton.call(this,e,s),ie(t),We.checkMenu.call(this),!s)return;const n=i.map(((e,i)=>({value:i,checked:this.captions.toggled&&this.currentTrack===i,title:Ye.getLabel.call(this,e),badge:e.language&&We.createBadge.call(this,e.language.toUpperCase()),list:t,type:"language"})));n.unshift({value:-1,checked:!this.captions.toggled,title:He.get("disabled",this.config),list:t,type:"language"}),n.forEach(We.createMenuItem.bind(this)),We.updateSetting.call(this,e,t)},setSpeedMenu(){if(!H(this.elements.settings.panels.speed))return;const e="speed",t=this.elements.settings.panels.speed.querySelector('[role="menu"]');this.options.speed=this.options.speed.filter((e=>e>=this.minimumSpeed&&e<=this.maximumSpeed));const i=!W(this.options.speed)&&this.options.speed.length>1;We.toggleMenuButton.call(this,e,i),ie(t),We.checkMenu.call(this),i&&(this.options.speed.forEach((i=>{We.createMenuItem.call(this,{value:i,list:t,type:e,title:We.getLabel.call(this,"speed",i)})})),We.updateSetting.call(this,e,t))},checkMenu(){const{buttons:e}=this.elements.settings,t=!W(e)&&Object.values(e).some((e=>!e.hidden));ae(this.elements.settings.menu,!t)},focusFirstMenuItem(e,t=!1){if(this.elements.settings.popup.hidden)return;let i=e;H(i)||(i=Object.values(this.elements.settings.panels).find((e=>!e.hidden)));const s=i.querySelector('[role^="menuitem"]');ue.call(this,s,t)},toggleMenu(e){const{popup:t}=this.elements.settings,i=this.elements.buttons.settings;if(!H(t)||!H(i))return;const{hidden:s}=t;let n=s;if(O(e))n=e;else if(F(e)&&"Escape"===e.key)n=!1;else if(R(e)){const s=j(e.composedPath)?e.composedPath()[0]:e.target,a=t.contains(s);if(a||!a&&e.target!==i&&n)return}i.setAttribute("aria-expanded",n),ae(t,!n),le(this.elements.container,this.config.classNames.menu.open,n),n&&F(e)?We.focusFirstMenuItem.call(this,null,!0):n||s||ue.call(this,i,F(e))},getMenuSize(e){const t=e.cloneNode(!0);t.style.position="absolute",t.style.opacity=0,t.removeAttribute("hidden"),e.parentNode.appendChild(t);const i=t.scrollWidth,s=t.scrollHeight;return te(t),{width:i,height:s}},showMenuPanel(e="",t=!1){const i=this.elements.container.querySelector(`#plyr-settings-${this.id}-${e}`);if(!H(i))return;const s=i.parentNode,n=Array.from(s.children).find((e=>!e.hidden));if(me.transitions&&!me.reducedMotion){s.style.width=`${n.scrollWidth}px`,s.style.height=`${n.scrollHeight}px`;const e=We.getMenuSize.call(this,i),t=e=>{e.target===s&&["width","height"].includes(e.propertyName)&&(s.style.width="",s.style.height="",be.call(this,s,z,t))};fe.call(this,s,z,t),s.style.width=`${e.width}px`,s.style.height=`${e.height}px`}ae(n,!0),ae(i,!1),We.focusFirstMenuItem.call(this,i,t)},setDownloadUrl(){const e=this.elements.buttons.download;H(e)&&e.setAttribute("href",this.download)},create(e){const{bindMenuItemShortcuts:t,createButton:i,createProgress:s,createRange:n,createTime:a,setQualityMenu:l,setSpeedMenu:o,showMenuPanel:r}=We;this.elements.controls=null,D(this.config.controls)&&this.config.controls.includes("play-large")&&this.elements.container.appendChild(i.call(this,"play-large"));const c=Z("div",ne(this.config.selectors.controls.wrapper));this.elements.controls=c;const h={class:"plyr__controls__item"};return Ce(D(this.config.controls)?this.config.controls:[]).forEach((l=>{if("restart"===l&&c.appendChild(i.call(this,"restart",h)),"rewind"===l&&c.appendChild(i.call(this,"rewind",h)),"play"===l&&c.appendChild(i.call(this,"play",h)),"fast-forward"===l&&c.appendChild(i.call(this,"fast-forward",h)),"progress"===l){const t=Z("div",{class:`${h.class} plyr__progress__container`}),i=Z("div",ne(this.config.selectors.progress));if(i.appendChild(n.call(this,"seek",{id:`plyr-seek-${e.id}`})),i.appendChild(s.call(this,"buffer")),this.config.tooltips.seek){const e=Z("span",{class:this.config.classNames.tooltip},"00:00");i.appendChild(e),this.elements.display.seekTooltip=e}this.elements.progress=i,t.appendChild(this.elements.progress),c.appendChild(t)}if("current-time"===l&&c.appendChild(a.call(this,"currentTime",h)),"duration"===l&&c.appendChild(a.call(this,"duration",h)),"mute"===l||"volume"===l){let{volume:t}=this.elements;if(H(t)&&c.contains(t)||(t=Z("div",X({},h,{class:`${h.class} plyr__volume`.trim()})),this.elements.volume=t,c.appendChild(t)),"mute"===l&&t.appendChild(i.call(this,"mute")),"volume"===l&&!Y.isIos){const i={max:1,step:.05,value:this.config.volume};t.appendChild(n.call(this,"volume",X(i,{id:`plyr-volume-${e.id}`})))}}if("captions"===l&&c.appendChild(i.call(this,"captions",h)),"settings"===l&&!W(this.config.settings)){const s=Z("div",X({},h,{class:`${h.class} plyr__menu`.trim(),hidden:""}));s.appendChild(i.call(this,"settings",{"aria-haspopup":!0,"aria-controls":`plyr-settings-${e.id}`,"aria-expanded":!1}));const n=Z("div",{class:"plyr__menu__container",id:`plyr-settings-${e.id}`,hidden:""}),a=Z("div"),l=Z("div",{id:`plyr-settings-${e.id}-home`}),o=Z("div",{role:"menu"});l.appendChild(o),a.appendChild(l),this.elements.settings.panels.home=l,this.config.settings.forEach((i=>{const s=Z("button",X(ne(this.config.selectors.buttons.settings),{type:"button",class:`${this.config.classNames.control} ${this.config.classNames.control}--forward`,role:"menuitem","aria-haspopup":!0,hidden:""}));t.call(this,s,i),fe.call(this,s,"click",(()=>{r.call(this,i,!1)}));const n=Z("span",null,He.get(i,this.config)),l=Z("span",{class:this.config.classNames.menu.value});l.innerHTML=e[i],n.appendChild(l),s.appendChild(n),o.appendChild(s);const c=Z("div",{id:`plyr-settings-${e.id}-${i}`,hidden:""}),h=Z("button",{type:"button",class:`${this.config.classNames.control} ${this.config.classNames.control}--back`});h.appendChild(Z("span",{"aria-hidden":!0},He.get(i,this.config))),h.appendChild(Z("span",{class:this.config.classNames.hidden},He.get("menuBack",this.config))),fe.call(this,c,"keydown",(e=>{"ArrowLeft"===e.key&&(e.preventDefault(),e.stopPropagation(),r.call(this,"home",!0))}),!1),fe.call(this,h,"click",(()=>{r.call(this,"home",!1)})),c.appendChild(h),c.appendChild(Z("div",{role:"menu"})),a.appendChild(c),this.elements.settings.buttons[i]=s,this.elements.settings.panels[i]=c})),n.appendChild(a),s.appendChild(n),c.appendChild(s),this.elements.settings.popup=n,this.elements.settings.menu=s}if("pip"===l&&me.pip&&c.appendChild(i.call(this,"pip",h)),"airplay"===l&&me.airplay&&c.appendChild(i.call(this,"airplay",h)),"download"===l){const e=X({},h,{element:"a",href:this.download,target:"_blank"});this.isHTML5&&(e.download="");const{download:t}=this.config.urls;!U(t)&&this.isEmbed&&X(e,{icon:`logo-${this.provider}`,label:this.provider}),c.appendChild(i.call(this,"download",e))}"fullscreen"===l&&c.appendChild(i.call(this,"fullscreen",h))})),this.isHTML5&&l.call(this,Le.getQualityOptions.call(this)),o.call(this),c},inject(){if(this.config.loadSprite){const e=We.getIconUrl.call(this);e.cors&&Ve(e.url,"sprite-plyr")}this.id=Math.floor(1e4*Math.random());let e=null;this.elements.controls=null;const t={id:this.id,seektime:this.config.seekTime,title:this.config.title};let i=!0;j(this.config.controls)&&(this.config.controls=this.config.controls.call(this,t)),this.config.controls||(this.config.controls=[]),H(this.config.controls)||_(this.config.controls)?e=this.config.controls:(e=We.create.call(this,{id:this.id,seektime:this.config.seekTime,speed:this.speed,quality:this.quality,captions:Ye.getLabel.call(this)}),i=!1);let s;i&&_(this.config.controls)&&(e=(e=>{let i=e;return Object.entries(t).forEach((([e,t])=>{i=_e(i,`{${e}}`,t)})),i})(e)),_(this.config.selectors.controls.container)&&(s=document.querySelector(this.config.selectors.controls.container)),H(s)||(s=this.elements.container);if(s[H(e)?"insertAdjacentElement":"insertAdjacentHTML"]("afterbegin",e),H(this.elements.controls)||We.findElements.call(this),!W(this.elements.buttons)){const e=e=>{const t=this.config.classNames.controlPressed;Object.defineProperty(e,"pressed",{enumerable:!0,get:()=>oe(e,t),set(i=!1){le(e,t,i)}})};Object.values(this.elements.buttons).filter(Boolean).forEach((t=>{D(t)||q(t)?Array.from(t).filter(Boolean).forEach(e):e(t)}))}if(Y.isEdge&&K(s),this.config.tooltips.controls){const{classNames:e,selectors:t}=this.config,i=`${t.controls.wrapper} ${t.labels} .${e.hidden}`,s=ce.call(this,i);Array.from(s).forEach((e=>{le(e,this.config.classNames.hidden,!1),le(e,this.config.classNames.tooltip,!0)}))}},setMediaMetadata(){try{"mediaSession"in navigator&&(navigator.mediaSession.metadata=new window.MediaMetadata({title:this.config.mediaMetadata.title,artist:this.config.mediaMetadata.artist,album:this.config.mediaMetadata.album,artwork:this.config.mediaMetadata.artwork}))}catch(e){}},setMarkers(){var e,t;if(!this.duration||this.elements.markers)return;const i=null===(e=this.config.markers)||void 0===e||null===(t=e.points)||void 0===t?void 0:t.filter((({time:e})=>e>0&&e<this.duration));if(null==i||!i.length)return;const s=document.createDocumentFragment(),n=document.createDocumentFragment();let a=null;const l=`${this.config.classNames.tooltip}--visible`,o=e=>le(a,l,e);i.forEach((e=>{const t=Z("span",{class:this.config.classNames.marker},""),i=e.time/this.duration*100+"%";a&&(t.addEventListener("mouseenter",(()=>{e.label||(a.style.left=i,a.innerHTML=e.label,o(!0))})),t.addEventListener("mouseleave",(()=>{o(!1)}))),t.addEventListener("click",(()=>{this.currentTime=e.time})),t.style.left=i,n.appendChild(t)})),s.appendChild(n),this.config.tooltips.seek||(a=Z("span",{class:this.config.classNames.tooltip},""),s.appendChild(a)),this.elements.markers={points:n,tip:a},this.elements.progress.appendChild(s)}};function ze(e,t=!0){let i=e;if(t){const e=document.createElement("a");e.href=i,i=e.href}try{return new URL(i)}catch(e){return null}}function Ke(e){const t=new URLSearchParams;return L(e)&&Object.entries(e).forEach((([e,i])=>{t.set(e,i)})),t}const Ye={setup(){if(!this.supported.ui)return;if(!this.isVideo||this.isYouTube||this.isHTML5&&!me.textTracks)return void(D(this.config.controls)&&this.config.controls.includes("settings")&&this.config.settings.includes("captions")&&We.setCaptionsMenu.call(this));var e,t;if(H(this.elements.captions)||(this.elements.captions=Z("div",ne(this.config.selectors.captions)),e=this.elements.captions,t=this.elements.wrapper,H(e)&&H(t)&&t.parentNode.insertBefore(e,t.nextSibling)),Y.isIE&&window.URL){const e=this.media.querySelectorAll("track");Array.from(e).forEach((e=>{const t=e.getAttribute("src"),i=ze(t);null!==i&&i.hostname!==window.location.href.hostname&&["http:","https:"].includes(i.protocol)&&Fe(t,"blob").then((t=>{e.setAttribute("src",window.URL.createObjectURL(t))})).catch((()=>{te(e)}))}))}const i=Ce((navigator.languages||[navigator.language||navigator.userLanguage||"en"]).map((e=>e.split("-")[0])));let s=(this.storage.get("language")||this.config.captions.language||"auto").toLowerCase();"auto"===s&&([s]=i);let n=this.storage.get("captions");if(O(n)||({active:n}=this.config.captions),Object.assign(this.captions,{toggled:!1,active:n,language:s,languages:i}),this.isHTML5){const e=this.config.captions.update?"addtrack removetrack":"removetrack";fe.call(this,this.media.textTracks,e,Ye.update.bind(this))}setTimeout(Ye.update.bind(this),0)},update(){const e=Ye.getTracks.call(this,!0),{active:t,language:i,meta:s,currentTrackNode:n}=this.captions,a=Boolean(e.find((e=>e.language===i)));this.isHTML5&&this.isVideo&&e.filter((e=>!s.get(e))).forEach((e=>{this.debug.log("Track added",e),s.set(e,{default:"showing"===e.mode}),"showing"===e.mode&&(e.mode="hidden"),fe.call(this,e,"cuechange",(()=>Ye.updateCues.call(this)))})),(a&&this.language!==i||!e.includes(n))&&(Ye.setLanguage.call(this,i),Ye.toggle.call(this,t&&a)),this.elements&&le(this.elements.container,this.config.classNames.captions.enabled,!W(e)),D(this.config.controls)&&this.config.controls.includes("settings")&&this.config.settings.includes("captions")&&We.setCaptionsMenu.call(this)},toggle(e,t=!0){if(!this.supported.ui)return;const{toggled:i}=this.captions,s=this.config.classNames.captions.active,n=I(e)?!i:e;if(n!==i){if(t||(this.captions.active=n,this.storage.set({captions:n})),!this.language&&n&&!t){const e=Ye.getTracks.call(this),t=Ye.findTrack.call(this,[this.captions.language,...this.captions.languages],!0);return this.captions.language=t.language,void Ye.set.call(this,e.indexOf(t))}this.elements.buttons.captions&&(this.elements.buttons.captions.pressed=n),le(this.elements.container,s,n),this.captions.toggled=n,We.updateSetting.call(this,"captions"),ve.call(this,this.media,n?"captionsenabled":"captionsdisabled")}setTimeout((()=>{n&&this.captions.toggled&&(this.captions.currentTrackNode.mode="hidden")}))},set(e,t=!0){const i=Ye.getTracks.call(this);if(-1!==e)if($(e))if(e in i){if(this.captions.currentTrack!==e){this.captions.currentTrack=e;const s=i[e],{language:n}=s||{};this.captions.currentTrackNode=s,We.updateSetting.call(this,"captions"),t||(this.captions.language=n,this.storage.set({language:n})),this.isVimeo&&this.embed.enableTextTrack(n),ve.call(this,this.media,"languagechange")}Ye.toggle.call(this,!0,t),this.isHTML5&&this.isVideo&&Ye.updateCues.call(this)}else this.debug.warn("Track not found",e);else this.debug.warn("Invalid caption argument",e);else Ye.toggle.call(this,!1,t)},setLanguage(e,t=!0){if(!_(e))return void this.debug.warn("Invalid language argument",e);const i=e.toLowerCase();this.captions.language=i;const s=Ye.getTracks.call(this),n=Ye.findTrack.call(this,[i]);Ye.set.call(this,s.indexOf(n),t)},getTracks(e=!1){return Array.from((this.media||{}).textTracks||[]).filter((t=>!this.isHTML5||e||this.captions.meta.has(t))).filter((e=>["captions","subtitles"].includes(e.kind)))},findTrack(e,t=!1){const i=Ye.getTracks.call(this),s=e=>Number((this.captions.meta.get(e)||{}).default),n=Array.from(i).sort(((e,t)=>s(t)-s(e)));let a;return e.every((e=>(a=n.find((t=>t.language===e)),!a))),a||(t?n[0]:void 0)},getCurrentTrack(){return Ye.getTracks.call(this)[this.currentTrack]},getLabel(e){let t=e;return!V(t)&&me.textTracks&&this.captions.toggled&&(t=Ye.getCurrentTrack.call(this)),V(t)?W(t.label)?W(t.language)?He.get("enabled",this.config):e.language.toUpperCase():t.label:He.get("disabled",this.config)},updateCues(e){if(!this.supported.ui)return;if(!H(this.elements.captions))return void this.debug.warn("No captions element to render to");if(!I(e)&&!Array.isArray(e))return void this.debug.warn("updateCues: Invalid input",e);let t=e;if(!t){const e=Ye.getCurrentTrack.call(this);t=Array.from((e||{}).activeCues||[]).map((e=>e.getCueAsHTML())).map(De)}const i=t.map((e=>e.trim())).join("\n");if(i!==this.elements.captions.innerHTML){ie(this.elements.captions);const e=Z("span",ne(this.config.selectors.caption));e.innerHTML=i,this.elements.captions.appendChild(e),ve.call(this,this.media,"cuechange")}}},Qe={enabled:!0,title:"",debug:!1,autoplay:!1,autopause:!0,playsinline:!0,seekTime:10,volume:1,muted:!1,duration:null,displayDuration:!0,invertTime:!0,toggleInvert:!0,ratio:null,clickToPlay:!0,hideControls:!0,resetOnEnd:!1,disableContextMenu:!0,loadSprite:!0,iconPrefix:"plyr",iconUrl:"https://cdn.plyr.io/3.7.2/plyr.svg",blankVideo:"https://cdn.plyr.io/static/blank.mp4",quality:{default:576,options:[4320,2880,2160,1440,1080,720,576,480,360,240],forced:!1,onChange:null},loop:{active:!1},speed:{selected:1,options:[.5,.75,1,1.25,1.5,1.75,2,4]},keyboard:{focused:!0,global:!1},tooltips:{controls:!1,seek:!0},captions:{active:!1,language:"auto",update:!1},fullscreen:{enabled:!0,fallback:!0,iosNative:!1},storage:{enabled:!0,key:"plyr"},controls:["play-large","play","progress","current-time","mute","volume","captions","settings","pip","airplay","fullscreen"],settings:["captions","quality","speed"],i18n:{restart:"Restart",rewind:"Rewind {seektime}s",play:"Play",pause:"Pause",fastForward:"Forward {seektime}s",seek:"Seek",seekLabel:"{currentTime} of {duration}",played:"Played",buffered:"Buffered",currentTime:"Current time",duration:"Duration",volume:"Volume",mute:"Mute",unmute:"Unmute",enableCaptions:"Enable captions",disableCaptions:"Disable captions",download:"Download",enterFullscreen:"Enter fullscreen",exitFullscreen:"Exit fullscreen",frameTitle:"Player for {title}",captions:"Captions",settings:"Settings",pip:"PIP",menuBack:"Go back to previous menu",speed:"Speed",normal:"Normal",quality:"Quality",loop:"Loop",start:"Start",end:"End",all:"All",reset:"Reset",disabled:"Disabled",enabled:"Enabled",advertisement:"Ad",qualityBadge:{2160:"4K",1440:"HD",1080:"HD",720:"HD",576:"SD",480:"S
10807D"}},urls:{download:null,vimeo:{sdk:"https://player.vimeo.com/api/player.js",iframe:"https://player.vimeo.com/video/{0}?{1}",api:"https://vimeo.com/api/oembed.json?url={0}"},youtube:{sdk:"https://www.youtube.com/iframe_api",api:"https://noembed.com/embed?url=https://www.youtube.com/watch?v={0}"},googleIMA:{sdk:"https://imasdk.googleapis.com/js/sdkloader/ima3.js"}},listeners:{seek:null,play:null,pause:null,restart:null,rewind:null,fastForward:null,mute:null,volume:null,captions:null,download:null,fullscreen:null,pip:null,airplay:null,speed:null,quality:null,loop:null,language:null},events:["ended","progress","stalled","playing","waiting","canplay","canplaythrough","loadstart","loadeddata","loadedmetadata","timeupdate","volumechange","play","pause","error","seeking","seeked","emptied","ratechange","cuechange","download","enterfullscreen","exitfullscreen","captionsenabled","captionsdisabled","languagechange","controlshidden","controlsshown","ready","statechange","qualitychange","adsloaded","adscontentpause","adscontentresume","adstarted","adsmidpoint","adscomplete","adsallcomplete","adsimpression","adsclick"],selectors:{editable:"input, textarea, select, [contenteditable]",container:".plyr",controls:{container:null,wrapper:".plyr__controls"},labels:"[data-plyr]",buttons:{play:'[data-plyr="play"]',pause:'[data-plyr="pause"]',restart:'[data-plyr="restart"]',rewind:'[data-plyr="rewind"]',fastForward:'[data-plyr="fast-forward"]',mute:'[data-plyr="mute"]',captions:'[data-plyr="captions"]',download:'[data-plyr="download"]',fullscreen:'[data-plyr="fullscreen"]',pip:'[data-plyr="pip"]',airplay:'[data-plyr="airplay"]',settings:'[data-plyr="settings"]',loop:'[data-plyr="loop"]'},inputs:{seek:'[data-plyr="seek"]',volume:'[data-plyr="volume"]',speed:'[data-plyr="speed"]',language:'[data-plyr="language"]',quality:'[data-plyr="quality"]'},display:{currentTime:".plyr__time--current",duration:".plyr__time--duration",buffer:".plyr__progress__buffer",loop:".plyr__progress__loop",volume:".plyr__volume--display"},progress:".plyr__progress",captions:".plyr__captions",caption:".plyr__caption"},classNames:{type:"plyr--{0}",provider:"plyr--{0}",video:"plyr__video-wrapper",embed:"plyr__video-embed",videoFixedRatio:"plyr__video-wrapper--fixed-ratio",embedContainer:"plyr__video-embed__container",poster:"plyr__poster",posterEnabled:"plyr__poster-enabled",ads:"plyr__ads",control:"plyr__control",controlPressed:"plyr__control--pressed",playing:"plyr--playing",paused:"plyr--paused",stopped:"plyr--stopped",loading:"plyr--loading",hover:"plyr--hover",tooltip:"plyr__tooltip",cues:"plyr__cues",marker:"plyr__progress__marker",hidden:"plyr__sr-only",hideControls:"plyr--hide-controls",isIos:"plyr--is-ios",isTouch:"plyr--is-touch",uiSupported:"plyr--full-ui",noTransition:"plyr--no-transition",display:{time:"plyr__time"},menu:{value:"plyr__menu__value",badge:"plyr__badge",open:"plyr--menu-open"},captions:{enabled:"plyr--captions-enabled",active:"plyr--captions-active"},fullscreen:{enabled:"plyr--fullscreen-enabled",fallback:"plyr--fullscreen-fallback"},pip:{supported:"plyr--pip-supported",active:"plyr--pip-active"},airplay:{supported:"plyr--airplay-supported",active:"plyr--airplay-active"},tabFocus:"plyr__tab-focus",previewThumbnails:{thumbContainer:"plyr__preview-thumb",thumbContainerShown:"plyr__preview-thumb--is-shown",imageContainer:"plyr__preview-thumb__image-container",timeContainer:"plyr__preview-thumb__time-container",scrubbingContainer:"plyr__preview-scrubbing",scrubbingContainerShown:"plyr__preview-scrubbing--is-shown"}},attributes:{embed:{provider:"data-plyr-provider",id:"data-plyr-embed-id",hash:"data-plyr-embed-hash"}},ads:{enabled:!1,publisherId:"",tagUrl:""},previewThumbnails:{enabled:!1,src:""},vimeo:{byline:!1,portrait:!1,title:!1,speed:!0,transparent:!1,customControls:!0,referrerPolicy:null,premium:!1},youtube:{rel:0,showinfo:0,iv_load_policy:3,modestbranding:1,customControls:!0,noCookie:!1},mediaMetadata:{title:"",artist:"",album:"",artwork:[]},markers:{enabled:!1,points:[]}},Xe="picture-in-picture",Je="inline",Ge={html5:"html5",youtube:"youtube",vimeo:"vimeo"},Ze="audio",et="video";const tt=()=>{};class it{constructor(e=!1){this.enabled=window.console&&e,this.enabled&&this.log("Debugging enabled")}get log(){return this.enabled?Function.prototype.bind.call(console.log,console):tt}get warn(){return this.enabled?Function.prototype.bind.call(console.warn,console):tt}get error(){return this.enabled?Function.prototype.bind.call(console.error,console):tt}}class st{constructor(t){e(this,"onChange",(()=>{if(!this.enabled)return;const e=this.player.elements.buttons.fullscreen;H(e)&&(e.pressed=this.active);const t=this.target===this.player.media?this.target:this.player.elements.container;ve.call(this.player,t,this.active?"enterfullscreen":"exitfullscreen",!0)})),e(this,"toggleFallback",((e=!1)=>
vendor: 6,552 bytes, line 10807
10807{if(e?this.scrollPosition={x:window.scrollX||0,y:window.scrollY||0}:window.scrollTo(this.scrollPosition.x,this.scrollPosition.y),document.body.style.overflow=e?"hidden":"",le(this.target,this.player.config.classNames.fullscreen.fallback,e),Y.isIos){let t=document.head.querySelector('meta[name="viewport"]');const i="viewport-fit=cover";t||(t=document.createElement("meta"),t.setAttribute("name","viewport"));const s=_(t.content)&&t.content.includes(i);e?(this.cleanupViewport=!s,s||(t.content+=`,${i}`)):this.cleanupViewport&&(t.content=t.content.split(",").filter((e=>e.trim()!==i)).join(","))}this.onChange()})),e(this,"trapFocus",(e=>{if(Y.isIos||!this.active||"Tab"!==e.key)return;const t=document.activeElement,i=ce.call(this.player,"a[href], button:not(:disabled), input:not(:disabled), [tabindex]"),[s]=i,n=i[i.length-1];t!==n||e.shiftKey?t===s&&e.shiftKey&&(n.focus(),e.preventDefault()):(s.focus(),e.preventDefault())})),e(this,"update",(()=>{if(this.enabled){let e;e=this.forceFallback?"Fallback (forced)":st.native?"Native":"Fallback",this.player.debug.log(`${e} fullscreen enabled`)}else this.player.debug.log("Fullscreen not supported and fallback disabled");le(this.player.elements.container,this.player.config.classNames.fullscreen.enabled,this.enabled)})),e(this,"enter",(()=>{this.enabled&&(Y.isIos&&this.player.config.fullscreen.iosNative?this.player.isVimeo?this.player.embed.requestFullscreen():this.target.webkitEnterFullscreen():!st.native||this.forceFallback?this.toggleFallback(!0):this.prefix?W(this.prefix)||this.target[`${this.prefix}Request${this.property}`]():this.target.requestFullscreen({navigationUI:"hide"}))})),e(this,"exit",(()=>{if(this.enabled)if(Y.isIos&&this.player.config.fullscreen.iosNative)this.target.webkitExitFullscreen(),ke(this.player.play());else if(!st.native||this.forceFallback)this.toggleFallback(!1);else if(this.prefix){if(!W(this.prefix)){const e="moz"===this.prefix?"Cancel":"Exit";document[`${this.prefix}${e}${this.property}`]()}}else(document.cancelFullScreen||document.exitFullscreen).call(document)})),e(this,"toggle",(()=>{this.active?this.exit():this.enter()})),this.player=t,this.prefix=st.prefix,this.property=st.property,this.scrollPosition={x:0,y:0},this.forceFallback="force"===t.config.fullscreen.fallback,this.player.elements.fullscreen=t.config.fullscreen.container&&function(e,t){const{prototype:i}=Element;return(i.closest||function(){let e=this;do{if(re.matches(e,t))return e;e=e.parentElement||e.parentNode}while(null!==e&&1===e.nodeType);return null}).call(e,t)}(this.player.elements.container,t.config.fullscreen.container),fe.call(this.player,document,"ms"===this.prefix?"MSFullscreenChange":`${this.prefix}fullscreenchange`,(()=>{this.onChange()})),fe.call(this.player,this.player.elements.container,"dblclick",(e=>{H(this.player.elements.controls)&&this.player.elements.controls.contains(e.target)||this.player.listeners.proxy(e,this.toggle,"fullscreen")})),fe.call(this,this.player.elements.container,"keydown",(e=>this.trapFocus(e))),this.update()}static get native(){return!!(document.fullscreenEnabled||document.webkitFullscreenEnabled||document.mozFullScreenEnabled||document.msFullscreenEnabled)}get usingNative(){return st.native&&!this.forceFallback}static get prefix(){if(j(document.exitFullscreen))return"";let e="";return["webkit","moz","ms"].some((t=>!(!j(document[`${t}ExitFullscreen`])&&!j(document[`${t}CancelFullScreen`]))&&(e=t,!0))),e}static get property(){return"moz"===this.prefix?"FullScreen":"Fullscreen"}get enabled(){return(st.native||this.player.config.fullscreen.fallback)&&this.player.config.fullscreen.enabled&&this.player.supported.ui&&this.player.isVideo}get active(){if(!this.enabled)return!1;if(!st.native||this.forceFallback)return oe(this.target,this.player.config.classNames.fullscreen.fallback);const e=this.prefix?this.target.getRootNode()[`${this.prefix}${this.property}Element`]:this.target.getRootNode().fullscreenElement;return e&&e.shadowRoot?e===this.target.getRootNode().host:e===this.target}get target(){return Y.isIos&&this.player.config.fullscreen.iosNative?this.player.media:this.player.elements.fullscreen||this.player.elements.container}}function nt(e,t=1){return new Promise(((i,s)=>{const n=new Image,a=()=>{delete n.onload,delete n.onerror,(n.naturalWidth>=t?i:s)(n)};Object.assign(n,{onload:a,onerror:a,src:e})}))}const at={addStyleHook(){le(this.elements.container,this.config.selectors.container.replace(".",""),!0),le(this.elements.container,this.config.classNames.uiSupported,this.supported.ui)},toggleNativeControls(e=!1){e&&this.isHTML5?this.media.setAttribute("controls",""):this.media.removeAttribute("controls")},build(){if(this.listeners.media(),!this.supported.ui)return this.debug.warn(`Basic support only for ${this.provider} ${this.type}`),void at.toggleNativeControls.call(this,!0);H(this.elements.controls)||(We.inject.call(this),this.listeners.controls()),at.toggleNativeControls.call(this),this.isHTML5&&Ye.setup.call(this),this.volume=null,this.muted=null,this.loop=null,this.quality=null,this.speed=null,We.updateVolume.call(this),We.timeUpdate.call(this),We.durationUpdate.call(this),at.checkPlaying.call(this),le(this.elements.container,this.config.classNames.pip.supported,me.pip&&this.isHTML5&&this.isVideo),le(this.elements.container,this.config.classNames.airplay.supported,me.airplay&&this.isHTML5),le(this.elements.container,this.config.classNames.isIos,Y.isIos),le(this.elements.container,this.config.classNames.isTouch,this.touch),this.ready=!0,setTimeout((()=>{ve.call(this,this.media,"ready")}),0),at.setTitle.call(this),this.poster&&at.setPoster.call(this,this.poster,!1).catch((()=>{})),this.config.duration&&We.durationUpdate.call(this),this.config.mediaMetadata&&We.setMediaMetadata.call(this)},setTitle(){let e=He.get("play",this.config);if(_(this.config.title)&&!W(this.config.title)&&(e+=`, ${this.config.title}`),Array.from(this.elements.buttons.play||[]).forEach((t=>{t.setAttribute("aria-label",e)})),this.isEmbed){const e=he.call(this,"iframe");if(!H(e))return;const t=W(this.config.title)?"video":this.config.title,i=He.get("frameTitle",this.config);e.setAttribute("title",i.replace("{title}",t))}},togglePoster(e){le(this.elements.container,this.config.classNames.posterEnabled,e)},setPoster(e,t=!0){return t&&this.poster?Promise.reject(new Error("Poster already set")):(this.media.setAttribute("data-poster",e),this.elements.poster.removeAttribute("hidden"),Te.call(this).then((()=>nt(e))).catch((t=>{throw e===this.poster&&at.togglePoster.call(this,!1),t})).then((()=>
10807{if(e!==this.poster)throw new Error("setPoster cancelled by later call to setPoster")})).then((()=>(Object.assign(this.elements.poster.style,{backgroundImage:`url('${e}')`,backgroundSize:""}),at.togglePoster.call(this,!0),e))))},checkPlaying(e){le(this.elements.container,this.config.classNames.playing,this.playing),le(this.elements.container,this.config.classNames.paused,this.paused),le(this.elements.container,this.config.classNames.stopped,this.stopped),Array.from(this.elements.buttons.play||[]).forEach((e=>{Object.assign(e,{pressed:this.playing}),e.setAttribute("aria-label",He.get(this.playing?"pause":"play",this.config))})),R(e)&&"timeupdate"===e.type||at.toggleControls.call(this)},checkLoading(e){this.loading=["stalled","waiting"].includes(e.type),clearTimeout(this.timers.loading),this.timers.loading=setTimeout((()=>{le(this.elements.container,this.config.classNames.loading,this.loading),at.toggleControls.call(this)}),this.loading?250:0)},toggleControls(e){const{controls:t}=this.elements;if(t&&this.config.hideControls){const i=this.touch&&this.lastSeekTime+2e3>Date.now();this.toggleControls(Boolean(e||this.loading||this.paused||t.pressed||t.hover||i))}},migrateStyles(){Object.values({...this.media.style}).filter((e=>!W(e)&&_(e)&&e.startsWith("--plyr"))).forEach((e=>{this.elements.container.style.setProperty(e,this.media.style.getPropertyValue(e)),this.media.style.removeProperty(e)})),W(this.media.style)&&this.media.removeAttribute("style")}};class lt{constructor(t){e(this,"firstTouch",(()=>{const{player:e}=this,{elements:t}=e;e.touch=!0,le(t.container,e.config.classNames.isTouch,!0)})),e(this,"setTabFocus",(e=>{const{player:t}=this,{elements:i}=t,{key:s,type:n,timeStamp:a}=e;if(clearTimeout(this.focusTimer),"keydown"===n&&"Tab"!==s)return;"keydown"===n&&(this.lastKeyDown=a);const l=a-this.lastKeyDown<=20;("focus"!==n||l)&&((()=>{const e=t.config.classNames.tabFocus;le(ce.call(t,`.${e}`),e,!1)})(),"focusout"!==n&&(this.focusTimer=setTimeout((()=>{const e=document.activeElement;i.container.contains(e)&&le(document.activeElement,t.config.classNames.tabFocus,!0)}),10)))})),e(this,"global",((e=!0)=>{const{player:t}=this;t.config.keyboard.global&&ge.call(t,window,"keydown keyup",this.handleKey,e,!1),ge.call(t,document.body,"click",this.toggleMenu,e),ye.call(t,document.body,"touchstart",this.firstTouch),ge.call(t,document.body,"keydown focus blur focusout",this.setTabFocus,e,!1,!0)})),e(this,"container",(()=>{const{player:e}=this,{config:t,elements:i,timers:s}=e;!t.keyboard.global&&t.keyboard.focused&&fe.call(e,i.container,"keydown keyup",this.handleKey,!1),fe.call(e,i.container,"mousemove mouseleave touchstart touchmove enterfullscreen exitfullscreen",(t=>{const{controls:n}=i;n&&"enterfullscreen"===t.type&&(n.pressed=!1,n.hover=!1);let a=0;["touchstart","touchmove","mousemove"].includes(t.type)&&(at.toggleControls.call(e,!0),a=e.touch?3e3:2e3),clearTimeout(s.controls),s.controls=setTimeout((()=>at.toggleControls.call(e,!1)),a)}));const n=()=>
vendor: 17,519 bytes, line 10807
10807{if(!e.isVimeo||e.config.vimeo.premium)return;const t=i.wrapper,{active:s}=e.fullscreen,[n,a]=Ne.call(e),l=Se(`aspect-ratio: ${n} / ${a}`);if(!s)return void(l?(t.style.width=null,t.style.height=null):(t.style.maxWidth=null,t.style.margin=null));const[o,r]=[Math.max(document.documentElement.clientWidth||0,window.innerWidth||0),Math.max(document.documentElement.clientHeight||0,window.innerHeight||0)],c=o/r>n/a;l?(t.style.width=c?"auto":"100%",t.style.height=c?"100%":"auto"):(t.style.maxWidth=c?r/a*n+"px":null,t.style.margin=c?"0 auto":null)},a=()=>{clearTimeout(s.resized),s.resized=setTimeout(n,50)};fe.call(e,i.container,"enterfullscreen exitfullscreen",(t=>{const{target:s}=e.fullscreen;if(s!==i.container)return;if(!e.isEmbed&&W(e.config.ratio))return;n();("enterfullscreen"===t.type?fe:be).call(e,window,"resize",a)}))})),e(this,"media",(()=>{const{player:e}=this,{elements:t}=e;if(fe.call(e,e.media,"timeupdate seeking seeked",(t=>We.timeUpdate.call(e,t))),fe.call(e,e.media,"durationchange loadeddata loadedmetadata",(t=>We.durationUpdate.call(e,t))),fe.call(e,e.media,"ended",(()=>{e.isHTML5&&e.isVideo&&e.config.resetOnEnd&&(e.restart(),e.pause())})),fe.call(e,e.media,"progress playing seeking seeked",(t=>We.updateProgress.call(e,t))),fe.call(e,e.media,"volumechange",(t=>We.updateVolume.call(e,t))),fe.call(e,e.media,"playing play pause ended emptied timeupdate",(t=>at.checkPlaying.call(e,t))),fe.call(e,e.media,"waiting canplay seeked playing",(t=>at.checkLoading.call(e,t))),e.supported.ui&&e.config.clickToPlay&&!e.isAudio){const i=he.call(e,`.${e.config.classNames.video}`);if(!H(i))return;fe.call(e,t.container,"click",(s=>{([t.container,i].includes(s.target)||i.contains(s.target))&&(e.touch&&e.config.hideControls||(e.ended?(this.proxy(s,e.restart,"restart"),this.proxy(s,(()=>{ke(e.play())}),"play")):this.proxy(s,(()=>{ke(e.togglePlay())}),"play")))}))}e.supported.ui&&e.config.disableContextMenu&&fe.call(e,t.wrapper,"contextmenu",(e=>{e.preventDefault()}),!1),fe.call(e,e.media,"volumechange",(()=>{e.storage.set({volume:e.volume,muted:e.muted})})),fe.call(e,e.media,"ratechange",(()=>{We.updateSetting.call(e,"speed"),e.storage.set({speed:e.speed})})),fe.call(e,e.media,"qualitychange",(t=>{We.updateSetting.call(e,"quality",null,t.detail.quality)})),fe.call(e,e.media,"ready qualitychange",(()=>{We.setDownloadUrl.call(e)}));const i=e.config.events.concat(["keyup","keydown"]).join(" ");fe.call(e,e.media,i,(i=>{let{detail:s={}}=i;"error"===i.type&&(s=e.media.error),ve.call(e,t.container,i.type,!0,s)}))})),e(this,"proxy",((e,t,i)=>{const{player:s}=this,n=s.config.listeners[i];let a=!0;j(n)&&(a=n.call(s,e)),!1!==a&&j(t)&&t.call(s,e)})),e(this,"bind",((e,t,i,s,n=!0)=>{const{player:a}=this,l=a.config.listeners[s],o=j(l);fe.call(a,e,t,(e=>this.proxy(e,i,s)),n&&!o)})),e(this,"controls",(()=>{const{player:e}=this,{elements:t}=e,i=Y.isIE?"change":"input";if(t.buttons.play&&Array.from(t.buttons.play).forEach((t=>{this.bind(t,"click",(()=>{ke(e.togglePlay())}),"play")})),this.bind(t.buttons.restart,"click",e.restart,"restart"),this.bind(t.buttons.rewind,"click",(()=>{e.lastSeekTime=Date.now(),e.rewind()}),"rewind"),this.bind(t.buttons.fastForward,"click",(()=>{e.lastSeekTime=Date.now(),e.forward()}),"fastForward"),this.bind(t.buttons.mute,"click",(()=>{e.muted=!e.muted}),"mute"),this.bind(t.buttons.captions,"click",(()=>e.toggleCaptions())),this.bind(t.buttons.download,"click",(()=>{ve.call(e,e.media,"download")}),"download"),this.bind(t.buttons.fullscreen,"click",(()=>{e.fullscreen.toggle()}),"fullscreen"),this.bind(t.buttons.pip,"click",(()=>{e.pip="toggle"}),"pip"),this.bind(t.buttons.airplay,"click",e.airplay,"airplay"),this.bind(t.buttons.settings,"click",(t=>{t.stopPropagation(),t.preventDefault(),We.toggleMenu.call(e,t)}),null,!1),this.bind(t.buttons.settings,"keyup",(t=>{["Space","Enter"].includes(t.key)&&("Enter"!==t.key?(t.preventDefault(),t.stopPropagation(),We.toggleMenu.call(e,t)):We.focusFirstMenuItem.call(e,null,!0))}),null,!1),this.bind(t.settings.menu,"keydown",(t=>{"Escape"===t.key&&We.toggleMenu.call(e,t)})),this.bind(t.inputs.seek,"mousedown mousemove",(e=>{const i=t.progress.getBoundingClientRect(),s=100/i.width*(e.pageX-i.left);e.currentTarget.setAttribute("seek-value",s)})),this.bind(t.inputs.seek,"mousedown mouseup keydown keyup touchstart touchend",(t=>{const i=t.currentTarget,s="play-on-seeked";if(F(t)&&!["ArrowLeft","ArrowRight"].includes(t.key))return;e.lastSeekTime=Date.now();const n=i.hasAttribute(s),a=["mouseup","touchend","keyup"].includes(t.type);n&&a?(i.removeAttribute(s),ke(e.play())):!a&&e.playing&&(i.setAttribute(s,""),e.pause())})),Y.isIos){const t=ce.call(e,'input[type="range"]');Array.from(t).forEach((e=>this.bind(e,i,(e=>K(e.target)))))}this.bind(t.inputs.seek,i,(t=>{const i=t.currentTarget;let s=i.getAttribute("seek-value");W(s)&&(s=i.value),i.removeAttribute("seek-value"),e.currentTime=s/i.max*e.duration}),"seek"),this.bind(t.progress,"mouseenter mouseleave mousemove",(t=>We.updateSeekTooltip.call(e,t))),this.bind(t.progress,"mousemove touchmove",(t=>{const{previewThumbnails:i}=e;i&&i.loaded&&i.startMove(t)})),this.bind(t.progress,"mouseleave touchend click",(()=>{const{previewThumbnails:t}=e;t&&t.loaded&&t.endMove(!1,!0)})),this.bind(t.progress,"mousedown touchstart",(t=>{const{previewThumbnails:i}=e;i&&i.loaded&&i.startScrubbing(t)})),this.bind(t.progress,"mouseup touchend",(t=>{const{previewThumbnails:i}=e;i&&i.loaded&&i.endScrubbing(t)})),Y.isWebkit&&Array.from(ce.call(e,'input[type="range"]')).forEach((t=>{this.bind(t,"input",(t=>We.updateRangeFill.call(e,t.target)))})),e.config.toggleInvert&&!H(t.display.duration)&&this.bind(t.display.currentTime,"click",(()=>{0!==e.currentTime&&(e.config.invertTime=!e.config.invertTime,We.timeUpdate.call(e))})),this.bind(t.inputs.volume,i,(t=>{e.volume=t.target.value}),"volume"),this.bind(t.controls,"mouseenter mouseleave",(i=>{t.controls.hover=!e.touch&&"mouseenter"===i.type})),t.fullscreen&&Array.from(t.fullscreen.children).filter((e=>!e.contains(t.container))).forEach((i=>{this.bind(i,"mouseenter mouseleave",(i=>{t.controls&&(t.controls.hover=!e.touch&&"mouseenter"===i.type)}))})),this.bind(t.controls,"mousedown mouseup touchstart touchend touchcancel",(e=>{t.controls.pressed=["mousedown","touchstart"].includes(e.type)})),this.bind(t.controls,"focusin",(()=>{const{config:i,timers:s}=e;le(t.controls,i.classNames.noTransition,!0),at.toggleControls.call(e,!0),setTimeout((()=>{le(t.controls,i.classNames.noTransition,!1)}),0);const n=this.touch?3e3:4e3;clearTimeout(s.controls),s.controls=setTimeout((()=>at.toggleControls.call(e,!1)),n)})),this.bind(t.inputs.volume,"wheel",(t=>{const i=t.webkitDirectionInvertedFromDevice,[s,n]=[t.deltaX,-t.deltaY].map((e=>i?-e:e)),a=Math.sign(Math.abs(s)>Math.abs(n)?s:n);e.increaseVolume(a/50);const{volume:l}=e.media;(1===a&&l<1||-1===a&&l>0)&&t.preventDefault()}),"volume",!1)})),this.player=t,this.lastKey=null,this.focusTimer=null,this.lastKeyDown=null,this.handleKey=this.handleKey.bind(this),this.toggleMenu=this.toggleMenu.bind(this),this.setTabFocus=this.setTabFocus.bind(this),this.firstTouch=this.firstTouch.bind(this)}handleKey(e){const{player:t}=this,{elements:i}=t,{key:s,type:n,altKey:a,ctrlKey:l,metaKey:o,shiftKey:r}=e,c="keydown"===n,h=c&&s===this.lastKey;if(a||l||o||r)return;if(!s)return;if(c){const n=document.activeElement;if(H(n)){const{editable:s}=t.config.selectors,{seek:a}=i.inputs;if(n!==a&&re(n,s))return;if("Space"===e.key&&re(n,'button, [role^="menuitem"]'))return}switch(["Space","ArrowLeft","ArrowUp","ArrowRight","ArrowDown","0","1","2","3","4","5","6","7","8","9","c","f","k","l","m"].includes(s)&&(e.preventDefault(),e.stopPropagation()),s){case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":h||(u=parseInt(s,10),t.currentTime=t.duration/10*u);break;case"Space":case"k":h||ke(t.togglePlay());break;case"ArrowUp":t.increaseVolume(.1);break;case"ArrowDown":t.decreaseVolume(.1);break;case"m":h||(t.muted=!t.muted);break;case"ArrowRight":t.forward();break;case"ArrowLeft":t.rewind();break;case"f":t.fullscreen.toggle();break;case"c":h||t.toggleCaptions();break;case"l":t.loop=!t.loop}"Escape"===s&&!t.fullscreen.usingNative&&t.fullscreen.active&&t.fullscreen.toggle(),this.lastKey=s}else this.lastKey=null;var u}toggleMenu(e){We.toggleMenu.call(this.player,e)}}"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;var ot=function(e,t){return e(t={exports:{}},t.exports),t.exports}((function(e,t){e.exports=function(){var e=function(){},t={},i={},s={};function n(e,t){e=e.push?e:[e];var n,a,l,o=[],r=e.length,c=r;for(n=function(e,i){i.length&&o.push(e),--c||t(o)};r--;)a=e[r],(l=i[a])?n(a,l):(s[a]=s[a]||[]).push(n)}function a(e,t){if(e){var n=s[e];if(i[e]=t,n)for(;n.length;)n[0](e,t),n.splice(0,1)}}function l(t,i){t.call&&(t={success:t}),i.length?(t.error||e)(i):(t.success||e)(t)}function o(t,i,s,n){var a,l,r=document,c=s.async,h=(s.numRetries||0)+1,u=s.before||e,d=t.replace(/[\?|#].*$/,""),m=t.replace(/^(css|img)!/,"");n=n||0,/(^css!|\.css$)/.test(d)?((l=r.createElement("link")).rel="stylesheet",l.href=m,(a="hideFocus"in l)&&l.relList&&(a=0,l.rel="preload",l.as="style")):/(^img!|\.(png|gif|jpg|svg|webp)$)/.test(d)?(l=r.createElement("img")).src=m:((l=r.createElement("script")).src=t,l.async=void 0===c||c),l.onload=l.onerror=l.onbeforeload=function(e){var r=e.type[0];if(a)try{l.sheet.cssText.length||(r="e")}catch(e){18!=e.code&&(r="e")}if("e"==r){if((n+=1)<h)return o(t,i,s,n)}else if("preload"==l.rel&&"style"==l.as)return l.rel="stylesheet";i(t,r,e.defaultPrevented)},!1!==u(t,l)&&r.head.appendChild(l)}function r(e,t,i){var s,n,a=(e=e.push?e:[e]).length,l=a,r=[];for(s=function(e,i,s){if("e"==i&&r.push(e),"b"==i){if(!s)return;r.push(e)}--a||t(r)},n=0;n<l;n++)o(e[n],s,i)}function c(e,i,s){var n,o;if(i&&i.trim&&(n=i),o=(n?s:i)||{},n){if(n in t)throw"LoadJS";t[n]=!0}function c(t,i){r(e,(function(e){l(o,e),t&&l({success:t,error:i},e),a(n,e)}),o)}if(o.returnPromise)return new Promise(c);c()}return c.ready=function(e,t){return n(e,(function(e){l(t,e)})),c},c.done=function(e){a(e,[])},c.reset=function(){t={},i={},s={}},c.isDefined=function(e){return e in t},c}()}));function rt(e){return new Promise(((t,i)=>{ot(e,{success:t,error:i})}))}function ct(e){e&&!this.embed.hasPlayed&&(this.embed.hasPlayed=!0),this.media.paused===e&&(this.media.paused=!e,ve.call(this,this.media,e?"play":"pause"))}const ht={setup(){const e=this;le(e.elements.wrapper,e.config.classNames.embed,!0),e.options.speed=e.config.speed.options,xe.call(e),L(window.Vimeo)?ht.ready.call(e):rt(e.config.urls.vimeo.sdk).then((()=>{ht.ready.call(e)})).catch((t=>{e.debug.warn("Vimeo SDK (player.js) failed to load",t)}))},ready(){const e=this,t=e.config.vimeo,{premium:i,referrerPolicy:s,...n}=t;let a=e.media.getAttribute("src"),l="";W(a)?(a=e.media.getAttribute(e.config.attributes.embed.id),l=e.media.getAttribute(e.config.attributes.embed.hash)):l=function(e){const t=e.match(/^.*(vimeo.com\/|video\/)(\d+)(\?.*&*h=|\/)+([\d,a-f]+)/);return t&&5===t.length?t[4]:null}(a);const o=l?{h:l}:{};i&&Object.assign(n,{controls:!1,sidedock:!1});const r=Ke({loop:e.config.loop.active,autoplay:e.autoplay,muted:e.muted,gesture:"media",playsinline:!this.config.fullscreen.iosNative,...o,...n}),c=W(h=a)?null:$(Number(h))?h:h.match(/^.*(vimeo.com\/|video\/)(\d+).*/)?RegExp.$2:h;var h;const u=Z("iframe"),d=$e(e.config.urls.vimeo.iframe,c,r);if(u.setAttribute("src",d),u.setAttribute("allowfullscreen",""),u.setAttribute("allow",["autoplay","fullscreen","picture-in-picture","encrypted-media","accelerometer","gyroscope"].join("; ")),W(s)||u.setAttribute("referrerPolicy",s),i||!t.customControls)u.setAttribute("data-poster",e.poster),e.media=se(u,e.media);else{const t=Z("div",{class:e.config.classNames.embedContainer,"data-poster":e.poster});t.appendChild(u),e.media=se(t,e.media)}t.customControls||Fe($e(e.config.urls.vimeo.api,d)).then((t=>{!W(t)&&t.thumbnail_url&&at.setPoster.call(e,t.thumbnail_url).catch((()=>{}))})),e.embed=new window.Vimeo.Player(u,{autopause:e.config.autopause,muted:e.muted}),e.media.paused=!0,e.media.currentTime=0,e.supported.ui&&e.embed.disableTextTrack(),e.media.play=()=>(ct.call(e,!0),e.embed.play()),e.media.pause=()=>(ct.call(e,!1),e.embed.pause()),e.media.stop=()=>{e.pause(),e.currentTime=0};let{currentTime:m}=e.media;Object.defineProperty(e.media,"currentTime",{get:()=>m,set(t){const{embed:i,media:s,paused:n,volume:a}=e,l=n&&!i.hasPlayed;s.seeking=!0,ve.call(e,s,"seeking"),Promise.resolve(l&&i.setVolume(0)).then((()=>i.setCurrentTime(t))).then((()=>l&&i.pause())).then((()=>l&&i.setVolume(a))).catch((()=>{}))}});let p=e.config.speed.selected;Object.defineProperty(e.media,"playbackRate",{get:()=>p,set(t){e.embed.setPlaybackRate(t).then((()=>{p=t,ve.call(e,e.media,"ratechange")})).catch((()=>{e.options.speed=[1]}))}});let{volume:g}=e.config;Object.defineProperty(e.media,"volume",{get:()=>g,set(t){e.embed.setVolume(t).then((()=>{g=t,ve.call(e,e.media,"volumechange")}))}});let{muted:f}=e.config;Object.defineProperty(e.media,"muted",{get:()=>f,set(t){const i=!!O(t)&&t;e.embed.setVolume(i?0:e.config.volume).then((()=>{f=i,ve.call(e,e.media,"volumechange")}))}});let b,{loop:y}=e.config;Object.defineProperty(e.media,"loop",{get:()=>y,set(t){const i=O(t)?t:e.config.loop.active;e.embed.setLoop(i).then((()=>{y=i}))}}),e.embed.getVideoUrl().then((t=>{b=t,We.setDownloadUrl.call(e)})).catch((e=>{this.debug.warn(e)})),Object.defineProperty(e.media,"currentSrc",{get:()=>b}),Object.defineProperty(e.media,"ended",{get:()=>e.currentTime===e.duration}),Promise.all([e.embed.getVideoWidth(),e.embed.getVideoHeight()]).then((t=>{const[i,s]=t;e.embed.ratio=Ie(i,s),xe.call(this)})),e.embed.setAutopause(e.config.autopause).then((t=>{e.config.autopause=t})),e.embed.getVideoTitle().then((t=>{e.config.title=t,at.setTitle.call(this)})),e.embed.getCurrentTime().then((t=>{m=t,ve.call(e,e.media,"timeupdate")})),e.embed.getDuration().then((t=>{e.media.duration=t,ve.call(e,e.media,"durationchange")})),e.embed.getTextTracks().then((t=>{e.media.textTracks=t,Ye.setup.call(e)})),e.embed.on("cuechange",(({cues:t=[]})=>{const i=t.map((e=>function(e){const t=document.createDocumentFragment(),i=document.createElement("div");return t.appendChild(i),i.innerHTML=e,t.firstChild.innerText}(e.text)));Ye.updateCues.call(e,i)})),e.embed.on("loaded",(()=>{if(e.embed.getPaused().then((t=>{ct.call(e,!t),t||ve.call(e,e.media,"playing")})),H(e.embed.element)&&e.supported.ui){e.embed.element.setAttribute("tabindex",-1)}})),e.embed.on("bufferstart",(()=>{ve.call(e,e.media,"waiting")})),e.embed.on("bufferend",(()=>{ve.call(e,e.media,"playing")})),e.embed.on("play",(()=>{ct.call(e,!0),ve.call(e,e.media,"playing")})),e.embed.on("pause",(()=>{ct.call(e,!1)})),e.embed.on("timeupdate",(t=>{e.media.seeking=!1,m=t.seconds,ve.call(e,e.media,"timeupdate")})),e.embed.on("progress",(t=>{e.media.buffered=t.percent,ve.call(e,e.media,"progress"),1===parseInt(t.percent,10)&&ve.call(e,e.media,"canplaythrough"),e.embed.getDuration().then((t=>{t!==e.media.duration&&(e.media.duration=t,ve.call(e,e.media,"durationchange"))}))})),e.embed.on("seeked",(()=>{e.media.seeking=!1,ve.call(e,e.media,"seeked")})),e.embed.on("ended",(()=>{e.media.paused=!0,ve.call(e,e.media,"ended")})),e.embed.on("error",(t=>{e.media.error=t,ve.call(e,e.media,"error")})),t.customControls&&setTimeout((()=>at.build.call(e)),0)}};function ut(e){e&&!this.embed.hasPlayed&&(this.embed.hasPlayed=!0),this.media.paused===e&&(this.media.paused=!e,ve.call(this,this.media,e?"play":"pause"))}function dt(e){return e.noCookie?"https://www.youtube-nocookie.com":"http:"===window.location.protocol?"http://www.youtube.com":void 0}const mt={setup(){if(le(this.elements.wrapper,this.config.classNames.embed,!0),L(window.YT)&&j(window.YT.Player))mt.ready.call(this);else{const e=window.onYouTubeIframeAPIReady;window.onYouTubeIframeAPIReady=()=>{j(e)&&e(),mt.ready.call(this)},rt(this.config.urls.youtube.sdk).catch((e=>{this.debug.warn("YouTube API failed to load",e)}))}},getTitle(e){Fe($e(this.config.urls.youtube.api,e)).then((e=>{if(L(e)){const{title:t,height:i,width:s}=e;this.config.title=t,at.setTitle.call(this),this.embed.ratio=Ie(s,i)}xe.call(this)})).catch((()=>{xe.call(this)}))},ready(){const e=this,t=e.config.youtube,i=e.media&&e.media.getAttribute("id");if(!W(i)&&i.startsWith("youtube-"))return;let s=e.media.getAttribute("src");W(s)&&(s=e.media.getAttribute(this.config.attributes.embed.id));const n=W(a=s)?null:a.match(/^.*(youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|&v=)([^#&?]*).*/)?RegExp.$2:a;var a;const l=Z("div",{id:`${e.provider}-${Math.floor(1e4*Math.random())}`,"data-poster":t.customControls?e.poster:void 0});if(e.media=se(l,e.media),t.customControls){const t=e=>`https://i.ytimg.com/vi/${n}/${e}default.jpg`;nt(t("maxres"),121).catch((()=>nt(t("sd"),121))).catch((()=>nt(t("hq")))).then((t=>at.setPoster.call(e,t.src))).then((t=>{t.includes("maxres")||(e.elements.poster.style.backgroundSize="cover")})).catch((()=>{}))}e.embed=new window.YT.Player(e.media,{videoId:n,host:dt(t),playerVars:X({},{autoplay:e.config.autoplay?1:0,hl:e.config.hl,controls:e.supported.ui&&t.customControls?0:1,disablekb:1,playsinline:e.config.fullscreen.iosNative?0:1,cc_load_policy:e.captions.active?1:0,cc_lang_pref:e.config.captions.language,widget_referrer:window?window.location.href:null},t),events:{onError(t){if(!e.media.error){const i=t.data,s={2:"The request contains an invali
10807d parameter value. For example, this error occurs if you specify a video ID that does not have 11 characters, or if the video ID contains invalid characters, such as exclamation points or asterisks.",5:"The requested content cannot be played in an HTML5 player or another error related to the HTML5 player has occurred.",100:"The video requested was not found. This error occurs when a video has been removed (for any reason) or has been marked as private.",101:"The owner of the requested video does not allow it to be played in embedded players.",150:"The owner of the requested video does not allow it to be played in embedded players."}[i]||"An unknown error occured";e.media.error={code:i,message:s},ve.call(e,e.media,"error")}},onPlaybackRateChange(t){const i=t.target;e.media.playbackRate=i.getPlaybackRate(),ve.call(e,e.media,"ratechange")},onReady(i){if(j(e.media.play))return;const s=i.target;mt.getTitle.call(e,n),e.media.play=()=>{ut.call(e,!0),s.playVideo()},e.media.pause=()=>{ut.call(e,!1),s.pauseVideo()},e.media.stop=()=>{s.stopVideo()},e.media.duration=s.getDuration(),e.media.paused=!0,e.media.currentTime=0,Object.defineProperty(e.media,"currentTime",{get:()=>Number(s.getCurrentTime()),set(t){e.paused&&!e.embed.hasPlayed&&e.embed.mute(),e.media.seeking=!0,ve.call(e,e.media,"seeking"),s.seekTo(t)}}),Object.defineProperty(e.media,"playbackRate",{get:()=>s.getPlaybackRate(),set(e){s.setPlaybackRate(e)}});let{volume:a}=e.config;Object.defineProperty(e.media,"volume",{get:()=>a,set(t){a=t,s.setVolume(100*a),ve.call(e,e.media,"volumechange")}});let{muted:l}=e.config;Object.defineProperty(e.media,"muted",{get:()=>l,set(t){const i=O(t)?t:l;l=i,s[i?"mute":"unMute"](),s.setVolume(100*a),ve.call(e,e.media,"volumechange")}}),Object.defineProperty(e.media,"currentSrc",{get:()=>s.getVideoUrl()}),Object.defineProperty(e.media,"ended",{get:()=>e.currentTime===e.duration});const o=s.getAvailablePlaybackRates();e.options.speed=o.filter((t=>e.config.speed.options.includes(t))),e.supported.ui&&t.customControls&&e.media.setAttribute("tabindex",-1),ve.call(e,e.media,"timeupdate"),ve.call(e,e.media,"durationchange"),clearInterval(e.timers.buffering),e.timers.buffering=setInterval((()=>{e.media.buffered=s.getVideoLoadedFraction(),(null===e.media.lastBuffered||e.media.lastBuffered<e.media.buffered)&&ve.call(e,e.media,"progress"),e.media.lastBuffered=e.media.buffered,1===e.media.buffered&&(clearInterval(e.timers.buffering),ve.call(e,e.media,"canplaythrough"))}),200),t.customControls&&setTimeout((()=>at.build.call(e)),50)},onStateChange(i){const s=i.target;clearInterval(e.timers.playing);switch(e.media.seeking&&[1,2].includes(i.data)&&(e.media.seeking=!1,ve.call(e,e.media,"seeked")),i.data){case-1:ve.call(e,e.media,"timeupdate"),e.media.buffered=s.getVideoLoadedFraction(),ve.call(e,e.media,"progress");break;case 0:ut.call(e,!1),e.media.loop?(s.stopVideo(),s.playVideo()):ve.call(e,e.media,"ended");break;case 1:t.customControls&&!e.config.autoplay&&e.media.paused&&!e.embed.hasPlayed?e.media.pause():(ut.call(e,!0),ve.call(e,e.media,"playing"),e.timers.playing=setInterval((()=>{ve.call(e,e.media,"timeupdate")}),50),e.media.duration!==s.getDuration()&&(e.media.duration=s.getDuration(),ve.call(e,e.media,"durationchange")));break;case 2:e.muted||e.embed.unMute(),ut.call(e,!1);break;case 3:ve.call(e,e.media,"waiting")}ve.call(e,e.elements.container,"statechange",!1,{code:i.data})}}})}},pt={setup(){this.media?(le(this.elements.container,this.config.classNames.type.replace("{0}",this.type),!0),le(this.elements.container,this.config.classNames.provider.replace("{0}",this.provider),!0),this.isEmbed&&le(this.elements.container,this.config.classNames.type.replace("{0}","video"),!0),this.isVideo&&(this.elements.wrapper=Z("div",{class:this.config.classNames.video}),J(this.media,this.elements.wrapper),this.elements.poster=Z("div",{class:this.config.classNames.poster}),this.elements.wrapper.appendChild(this.elements.poster)),this.isHTML5?Le.setup.call(this):this.isYouTube?mt.setup.call(this):this.isVimeo&&ht.setup.call(this)):this.debug.warn("No media element found!")}};class gt{constructor(t){e(this,"load",(()=>{this.enabled&&(L(window.google)&&L(window.google.ima)?this.ready():rt(this.player.config.urls.googleIMA.sdk).then((()=>{this.ready()})).catch((()=>{this.trigger("error",new Error("Google IMA SDK failed to load"))})))})),e(this,"ready",(()=>{var e;this.enabled||((e=this).manager&&e.manager.destroy(),e.elements.displayContainer&&e.elements.displayContainer.destroy(),e.elements.container.remove()),this.startSafetyTimer(12e3,"ready()"),this.managerPromise.then((()=>{this.clearSafetyTimer("onAdsManagerLoaded()")})),this.listeners(),this.setupIMA()})),e(this,"setupIMA",(()=>{this.elements.container=Z("div",{class:this.player.config.classNames.ads}),this.player.elements.container.appendChild(this.elements.container),google.ima.settings.setVpaidMode(google.ima.ImaSdkSettings.VpaidMode.ENABLED),google.ima.settings.setLocale(this.player.config.ads.language),google.ima.settings.setDisableCustomPlaybackForIOS10Plus(this.player.config.playsinline),this.elements.displayContainer=new google.ima.AdDisplayContainer(this.elements.container,this.player.media),this.loader=new google.ima.AdsLoader(this.elements.displayContainer),this.loader.addEventListener(google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED,(e=>this.onAdsManagerLoaded(e)),!1),this.loader.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR,(e=>this.onAdError(e)),!1),this.requestAds()})),e(this,"requestAds",(()=>{const{container:e}=this.player.elements;try{const t=new google.ima.AdsRequest;t.adTagUrl=this.tagUrl,t.linearAdSlotWidth=e.offsetWidth,t.linearAdSlotHeight=e.offsetHeight,t.nonLinearAdSlotWidth=e.offsetWidth,t.nonLinearAdSlotHeight=e.offsetHeight,t.forceNonLinearFullSlot=!1,t.setAdWillPlayMuted(!this.player.muted),this.loader.requestAds(t)}catch(e){this.onAdError(e)}})),e(this,"pollCountdown",((e=!1)=>
vendor: 23,402 bytes, line 10807
10807{if(!e)return clearInterval(this.countdownTimer),void this.elements.container.removeAttribute("data-badge-text");this.countdownTimer=setInterval((()=>{const e=Ue(Math.max(this.manager.getRemainingTime(),0)),t=`${He.get("advertisement",this.player.config)} - ${e}`;this.elements.container.setAttribute("data-badge-text",t)}),100)})),e(this,"onAdsManagerLoaded",(e=>{if(!this.enabled)return;const t=new google.ima.AdsRenderingSettings;t.restoreCustomPlaybackStateOnAdBreakComplete=!0,t.enablePreloading=!0,this.manager=e.getAdsManager(this.player,t),this.cuePoints=this.manager.getCuePoints(),this.manager.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR,(e=>this.onAdError(e))),Object.keys(google.ima.AdEvent.Type).forEach((e=>{this.manager.addEventListener(google.ima.AdEvent.Type[e],(e=>this.onAdEvent(e)))})),this.trigger("loaded")})),e(this,"addCuePoints",(()=>{W(this.cuePoints)||this.cuePoints.forEach((e=>{if(0!==e&&-1!==e&&e<this.player.duration){const t=this.player.elements.progress;if(H(t)){const i=100/this.player.duration*e,s=Z("span",{class:this.player.config.classNames.cues});s.style.left=`${i.toString()}%`,t.appendChild(s)}}}))})),e(this,"onAdEvent",(e=>{const{container:t}=this.player.elements,i=e.getAd(),s=e.getAdData();switch((e=>{ve.call(this.player,this.player.media,`ads${e.replace(/_/g,"").toLowerCase()}`)})(e.type),e.type){case google.ima.AdEvent.Type.LOADED:this.trigger("loaded"),this.pollCountdown(!0),i.isLinear()||(i.width=t.offsetWidth,i.height=t.offsetHeight);break;case google.ima.AdEvent.Type.STARTED:this.manager.setVolume(this.player.volume);break;case google.ima.AdEvent.Type.ALL_ADS_COMPLETED:this.player.ended?this.loadAds():this.loader.contentComplete();break;case google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED:this.pauseContent();break;case google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED:this.pollCountdown(),this.resumeContent();break;case google.ima.AdEvent.Type.LOG:s.adError&&this.player.debug.warn(`Non-fatal ad error: ${s.adError.getMessage()}`)}})),e(this,"onAdError",(e=>{this.cancel(),this.player.debug.warn("Ads error",e)})),e(this,"listeners",(()=>{const{container:e}=this.player.elements;let t;this.player.on("canplay",(()=>{this.addCuePoints()})),this.player.on("ended",(()=>{this.loader.contentComplete()})),this.player.on("timeupdate",(()=>{t=this.player.currentTime})),this.player.on("seeked",(()=>{const e=this.player.currentTime;W(this.cuePoints)||this.cuePoints.forEach(((i,s)=>{t<i&&i<e&&(this.manager.discardAdBreak(),this.cuePoints.splice(s,1))}))})),window.addEventListener("resize",(()=>{this.manager&&this.manager.resize(e.offsetWidth,e.offsetHeight,google.ima.ViewMode.NORMAL)}))})),e(this,"play",(()=>{const{container:e}=this.player.elements;this.managerPromise||this.resumeContent(),this.managerPromise.then((()=>{this.manager.setVolume(this.player.volume),this.elements.displayContainer.initialize();try{this.initialized||(this.manager.init(e.offsetWidth,e.offsetHeight,google.ima.ViewMode.NORMAL),this.manager.start()),this.initialized=!0}catch(e){this.onAdError(e)}})).catch((()=>{}))})),e(this,"resumeContent",(()=>{this.elements.container.style.zIndex="",this.playing=!1,ke(this.player.media.play())})),e(this,"pauseContent",(()=>{this.elements.container.style.zIndex=3,this.playing=!0,this.player.media.pause()})),e(this,"cancel",(()=>{this.initialized&&this.resumeContent(),this.trigger("error"),this.loadAds()})),e(this,"loadAds",(()=>{this.managerPromise.then((()=>{this.manager&&this.manager.destroy(),this.managerPromise=new Promise((e=>{this.on("loaded",e),this.player.debug.log(this.manager)})),this.initialized=!1,this.requestAds()})).catch((()=>{}))})),e(this,"trigger",((e,...t)=>{const i=this.events[e];D(i)&&i.forEach((e=>{j(e)&&e.apply(this,t)}))})),e(this,"on",((e,t)=>(D(this.events[e])||(this.events[e]=[]),this.events[e].push(t),this))),e(this,"startSafetyTimer",((e,t)=>{this.player.debug.log(`Safety timer invoked from: ${t}`),this.safetyTimer=setTimeout((()=>{this.cancel(),this.clearSafetyTimer("startSafetyTimer()")}),e)})),e(this,"clearSafetyTimer",(e=>{I(this.safetyTimer)||(this.player.debug.log(`Safety timer cleared from: ${e}`),clearTimeout(this.safetyTimer),this.safetyTimer=null)})),this.player=t,this.config=t.config.ads,this.playing=!1,this.initialized=!1,this.elements={container:null,displayContainer:null},this.manager=null,this.loader=null,this.cuePoints=null,this.events={},this.safetyTimer=null,this.countdownTimer=null,this.managerPromise=new Promise(((e,t)=>{this.on("loaded",e),this.on("error",t)})),this.load()}get enabled(){const{config:e}=this;return this.player.isHTML5&&this.player.isVideo&&e.enabled&&(!W(e.publisherId)||U(e.tagUrl))}get tagUrl(){const{config:e}=this;if(U(e.tagUrl))return e.tagUrl;return`https://go.aniview.com/api/adserver6/vast/?${Ke({AV_PUBLISHERID:"58c25bb0073ef448b1087ad6",AV_CHANNELID:"5a0458dc28a06145e4519d21",AV_URL:window.location.hostname,cb:Date.now(),AV_WIDTH:640,AV_HEIGHT:480,AV_CDIM2:e.publisherId})}`}}function ft(e=0,t=0,i=255){return Math.min(Math.max(e,t),i)}const bt=e=>{const t=[];return e.split(/\r\n\r\n|\n\n|\r\r/).forEach((e=>{const i={};e.split(/\r\n|\n|\r/).forEach((e=>{if($(i.startTime)){if(!W(e.trim())&&W(i.text)){const t=e.trim().split("#xywh=");[i.text]=t,t[1]&&([i.x,i.y,i.w,i.h]=t[1].split(","))}}else{const t=e.match(/([0-9]{2})?:?([0-9]{2}):([0-9]{2}).([0-9]{2,3})( ?--> ?)([0-9]{2})?:?([0-9]{2}):([0-9]{2}).([0-9]{2,3})/);t&&(i.startTime=60*Number(t[1]||0)*60+60*Number(t[2])+Number(t[3])+Number(`0.${t[4]}`),i.endTime=60*Number(t[6]||0)*60+60*Number(t[7])+Number(t[8])+Number(`0.${t[9]}`))}})),i.text&&t.push(i)})),t},yt=(e,t)=>{const i={};return e>t.width/t.height?(i.width=t.width,i.height=1/e*t.width):(i.height=t.height,i.width=e*t.height),i};class vt{constructor(t){e(this,"load",(()=>{this.player.elements.display.seekTooltip&&(this.player.elements.display.seekTooltip.hidden=this.enabled),this.enabled&&this.getThumbnails().then((()=>{this.enabled&&(this.render(),this.determineContainerAutoSizing(),this.loaded=!0)}))})),e(this,"getThumbnails",(()=>new Promise((e=>{const{src:t}=this.player.config.previewThumbnails;if(W(t))throw new Error("Missing previewThumbnails.src config attribute");const i=()=>{this.thumbnails.sort(((e,t)=>e.height-t.height)),this.player.debug.log("Preview thumbnails",this.thumbnails),e()};if(j(t))t((e=>{this.thumbnails=e,i()}));else{const e=(_(t)?[t]:t).map((e=>this.getThumbnail(e)));Promise.all(e).then(i)}})))),e(this,"getThumbnail",(e=>new Promise((t=>{Fe(e).then((i=>{const s={frames:bt(i),height:null,urlPrefix:""};s.frames[0].text.startsWith("/")||s.frames[0].text.startsWith("http://")||s.frames[0].text.startsWith("https://")||(s.urlPrefix=e.substring(0,e.lastIndexOf("/")+1));const n=new Image;n.onload=()=>{s.height=n.naturalHeight,s.width=n.naturalWidth,this.thumbnails.push(s),t()},n.src=s.urlPrefix+s.frames[0].text}))})))),e(this,"startMove",(e=>{if(this.loaded&&R(e)&&["touchmove","mousemove"].includes(e.type)&&this.player.media.duration){if("touchmove"===e.type)this.seekTime=this.player.media.duration*(this.player.elements.inputs.seek.value/100);else{var t,i;const s=this.player.elements.progress.getBoundingClientRect(),n=100/s.width*(e.pageX-s.left);this.seekTime=this.player.media.duration*(n/100),this.seekTime<0&&(this.seekTime=0),this.seekTime>this.player.media.duration-1&&(this.seekTime=this.player.media.duration-1),this.mousePosX=e.pageX,this.elements.thumb.time.innerText=Ue(this.seekTime);const a=null===(t=this.player.config.markers)||void 0===t||null===(i=t.points)||void 0===i?void 0:i.find((({time:e})=>e===Math.round(this.seekTime)));a&&this.elements.thumb.time.insertAdjacentHTML("afterbegin",`${a.label}<br>`)}this.showImageAtCurrentTime()}})),e(this,"endMove",(()=>{this.toggleThumbContainer(!1,!0)})),e(this,"startScrubbing",(e=>{(I(e.button)||!1===e.button||0===e.button)&&(this.mouseDown=!0,this.player.media.duration&&(this.toggleScrubbingContainer(!0),this.toggleThumbContainer(!1,!0),this.showImageAtCurrentTime()))})),e(this,"endScrubbing",(()=>{this.mouseDown=!1,Math.ceil(this.lastTime)===Math.ceil(this.player.media.currentTime)?this.toggleScrubbingContainer(!1):ye.call(this.player,this.player.media,"timeupdate",(()=>{this.mouseDown||this.toggleScrubbingContainer(!1)}))})),e(this,"listeners",(()=>{this.player.on("play",(()=>{this.toggleThumbContainer(!1,!0)})),this.player.on("seeked",(()=>{this.toggleThumbContainer(!1)})),this.player.on("timeupdate",(()=>{this.lastTime=this.player.media.currentTime}))})),e(this,"render",(()=>{this.elements.thumb.container=Z("div",{class:this.player.config.classNames.previewThumbnails.thumbContainer}),this.elements.thumb.imageContainer=Z("div",{class:this.player.config.classNames.previewThumbnails.imageContainer}),this.elements.thumb.container.appendChild(this.elements.thumb.imageContainer);const e=Z("div",{class:this.player.config.classNames.previewThumbnails.timeContainer});this.elements.thumb.time=Z("span",{},"00:00"),e.appendChild(this.elements.thumb.time),this.elements.thumb.imageContainer.appendChild(e),H(this.player.elements.progress)&&this.player.elements.progress.appendChild(this.elements.thumb.container),this.elements.scrubbing.container=Z("div",{class:this.player.config.classNames.previewThumbnails.scrubbingContainer}),this.player.elements.wrapper.appendChild(this.elements.scrubbing.container)})),e(this,"destroy",(()=>{this.elements.thumb.container&&this.elements.thumb.container.remove(),this.elements.scrubbing.container&&this.elements.scrubbing.container.remove()})),e(this,"showImageAtCurrentTime",(()=>{this.mouseDown?this.setScrubbingContainerSize():this.setThumbContainerSizeAndPos();const e=this.thumbnails[0].frames.findIndex((e=>this.seekTime>=e.startTime&&this.seekTime<=e.endTime)),t=e>=0;let i=0;this.mouseDown||this.toggleThumbContainer(t),t&&(this.thumbnails.forEach(((t,s)=>{this.loadedImages.includes(t.frames[e].text)&&(i=s)})),e!==this.showingThumb&&(this.showingThumb=e,this.loadImage(i)))})),e(this,"loadImage",((e=0)=>{const t=this.showingThumb,i=this.thumbnails[e],{urlPrefix:s}=i,n=i.frames[t],a=i.frames[t].text,l=s+a;if(this.currentImageElement&&this.currentImageElement.dataset.filename===a)this.showImage(this.currentImageElement,n,e,t,a,!1),this.currentImageElement.dataset.index=t,this.removeOldImages(this.currentImageElement);else{this.loadingImage&&this.usingSprites&&(this.loadingImage.onload=null);const i=new Image;i.src=l,i.dataset.index=t,i.dataset.filename=a,this.showingThumbFilename=a,this.player.debug.log(`Loading image: ${l}`),i.onload=()=>this.showImage(i,n,e,t,a,!0),this.loadingImage=i,this.removeOldImages(i)}})),e(this,"showImage",((e,t,i,s,n,a=!0)=>{this.player.debug.log(`Showing thumb: ${n}. num: ${s}. qual: ${i}. newimg: ${a}`),this.setImageSizeAndOffset(e,t),a&&(this.currentImageContainer.appendChild(e),this.currentImageElement=e,this.loadedImages.includes(n)||this.loadedImages.push(n)),this.preloadNearby(s,!0).then(this.preloadNearby(s,!1)).then(this.getHigherQuality(i,e,t,n))})),e(this,"removeOldImages",(e=>{Array.from(this.currentImageContainer.children).forEach((t=>{if("img"!==t.tagName.toLowerCase())return;const i=this.usingSprites?500:1e3;if(t.dataset.index!==e.dataset.index&&!t.dataset.deleting){t.dataset.deleting=!0;const{currentImageContainer:e}=this;setTimeout((()=>{e.removeChild(t),this.player.debug.log(`Removing thumb: ${t.dataset.filename}`)}),i)}}))})),e(this,"preloadNearby",((e,t=!0)=>new Promise((i=>{setTimeout((()=>{const s=this.thumbnails[0].frames[e].text;if(this.showingThumbFilename===s){let n;n=t?this.thumbnails[0].frames.slice(e):this.thumbnails[0].frames.slice(0,e).reverse();let a=!1;n.forEach((e=>{const t=e.text;if(t!==s&&!this.loadedImages.includes(t)){a=!0,this.player.debug.log(`Preloading thumb filename: ${t}`);const{urlPrefix:e}=this.thumbnails[0],s=e+t,n=new Image;n.src=s,n.onload=()=>{this.player.debug.log(`Preloaded thumb filename: ${t}`),this.loadedImages.includes(t)||this.loadedImages.push(t),i()}}})),a||i()}}),300)})))),e(this,"getHigherQuality",((e,t,i,s)=>{if(e<this.thumbnails.length-1){let n=t.naturalHeight;this.usingSprites&&(n=i.h),n<this.thumbContainerHeight&&setTimeout((()=>{this.showingThumbFilename===s&&(this.player.debug.log(`Showing higher quality thumb for: ${s}`),this.loadImage(e+1))}),300)}})),e(this,"toggleThumbContainer",((e=!1,t=!1)=>{const i=this.player.config.classNames.previewThumbnails.thumbContainerShown;this.elements.thumb.container.classList.toggle(i,e),!e&&t&&(this.showingThumb=null,this.showingThumbFilename=null)})),e(this,"toggleScrubbingContainer",((e=!1)=>{const t=this.player.config.classNames.previewThumbnails.scrubbingContainerShown;this.elements.scrubbing.container.classList.toggle(t,e),e||(this.showingThumb=null,this.showingThumbFilename=null)})),e(this,"determineContainerAutoSizing",(()=>{(this.elements.thumb.imageContainer.clientHeight>20||this.elements.thumb.imageContainer.clientWidth>20)&&(this.sizeSpecifiedInCSS=!0)})),e(this,"setThumbContainerSizeAndPos",(()=>{const{imageContainer:e}=this.elements.thumb;if(this.sizeSpecifiedInCSS){if(e.clientHeight>20&&e.clientWidth<20){const t=Math.floor(e.clientHeight*this.thumbAspectRatio);e.style.width=`${t}px`}else if(e.clientHeight<20&&e.clientWidth>20){const t=Math.floor(e.clientWidth/this.thumbAspectRatio);e.style.height=`${t}px`}}else{const t=Math.floor(this.thumbContainerHeight*this.thumbAspectRatio);e.style.height=`${this.thumbContainerHeight}px`,e.style.width=`${t}px`}this.setThumbContainerPos()})),e(this,"setThumbContainerPos",(()=>{const e=this.player.elements.progress.getBoundingClientRect(),t=this.player.elements.container.getBoundingClientRect(),{container:i}=this.elements.thumb,s=t.left-e.left+10,n=t.right-e.left-i.clientWidth-10,a=this.mousePosX-e.left-i.clientWidth/2,l=ft(a,s,n);i.style.left=`${l}px`,i.style.setProperty("--preview-arrow-offset",a-l+"px")})),e(this,"setScrubbingContainerSize",(()=>{const{width:e,height:t}=yt(this.thumbAspectRatio,{width:this.player.media.clientWidth,height:this.player.media.clientHeight});this.elements.scrubbing.container.style.width=`${e}px`,this.elements.scrubbing.container.style.height=`${t}px`})),e(this,"setImageSizeAndOffset",((e,t)=>{if(!this.usingSprites)return;const i=this.thumbContainerHeight/t.h;e.style.height=e.naturalHeight*i+"px",e.style.width=e.naturalWidth*i+"px",e.style.left=`-${t.x*i}px`,e.style.top=`-${t.y*i}px`})),this.player=t,this.thumbnails=[],this.loaded=!1,this.lastMouseMoveTime=Date.now(),this.mouseDown=!1,this.loadedImages=[],this.elements={thumb:{},scrubbing:{}},this.load()}get enabled(){return this.player.isHTML5&&this.player.isVideo&&this.player.config.previewThumbnails.enabled}get currentImageContainer(){return this.mouseDown?this.elements.scrubbing.container:this.elements.thumb.imageContainer}get usingSprites(){return Object.keys(this.thumbnails[0].frames[0]).includes("w")}get thumbAspectRatio(){return this.usingSprites?this.thumbnails[0].frames[0].w/this.thumbnails[0].frames[0].h:this.thumbnails[0].width/this.thumbnails[0].height}get thumbContainerHeight(){if(this.mouseDown){const{height:e}=yt(this.thumbAspectRatio,{width:this.player.media.clientWidth,height:this.player.media.clientHeight});return e}return this.sizeSpecifiedInCSS?this.elements.thumb.imageContainer.clientHeight:Math.floor(this.player.media.clientWidth/this.thumbAspectRatio/4)}get currentImageElement(){return this.mouseDown?this.currentScrubbingImageElement:this.currentThumbnailImageElement}set currentImageElement(e){this.mouseDown?this.currentScrubbingImageElement=e:this.currentThumbnailImageElement=e}}const wt={insertElements(e,t){_(t)?ee(e,this.media,{src:t}):D(t)&&t.forEach((t=>{ee(e,this.media,t)}))},change(e){Q(e,"sources.length")?(Le.cancelRequests.call(this),this.destroy.call(this,(()=>{this.options.quality=[],te(this.media),this.media=null,H(this.elements.container)&&this.elements.container.removeAttribute("class");const{sources:t,type:i}=e,[{provider:s=Ge.html5,src:n}]=t,a="html5"===s?i:"div",l="html5"===s?{}:{src:n};Object.assign(this,{provider:s,type:i,supported:me.check(i,s,this.config.playsinline),media:Z(a,l)}),this.elements.container.appendChild(this.media),O(e.autoplay)&&(this.config.autoplay=e.autoplay),this.isHTML5&&(this.config.crossorigin&&this.media.setAttribute("crossorigin",""),this.config.autoplay&&this.media.setAttribute("autoplay",""),W(e.poster)||(this.poster=e.poster),this.config.loop.active&&this.media.setAttribute("loop",""),this.config.muted&&this.media.setAttribute("muted",""),this.config.playsinline&&this.media.setAttribute("playsinline","")),at.addStyleHook.call(this),this.isHTML5&&wt.insertElements.call(this,"source",t),this.config.title=e.title,pt.setup.call(this),this.isHTML5&&Object.keys(e).includes("tracks")&&wt.insertElements.call(this,"track",e.tracks),(this.isHTML5||this.isEmbed&&!this.supported.ui)&&at.build.call(this),this.isHTML5&&this.media.load(),W(e.previewThumbnails)||(Object.assign(this.config.previewThumbnails,e.previewThumbnails),this.previewThumbnails&&this.previewThumbnails.loaded&&(this.previewThumbnails.destroy(),this.previewThumbnails=null),this.config.previewThumbnails.enabled&&(this.previewThumbnails=new vt(this))),this.fullscreen.update()}),!0)):this.debug.warn("Invalid source format")}};class Tt{constructor(t,i){if(e(this,"play",(()=>j(this.media.play)?(this.ads&&this.ads.enabled&&this.ads.managerPromise.then((()=>this.ads.play())).catch((()=>ke(this.media.play()))),this.media.play()):null)),e(this,"pause",(()=>this.playing&&j(this.media.pause)?this.media.pause():null)),e(this,"togglePlay",(e=>(O(e)?e:!this.playing)?this.play():this.pause())),e(this,"stop",(()=>{this.isHTML5?(this.pause(),this.restart()):j(this.media.stop)&&this.media.stop()})),e(this,"restart",(()=>{this.currentTime=0})),e(this,"rewind",(e=>{this.currentTime-=$(e)?e:this.config.seekTime})),e(this,"forward",(e=>{this.currentTime+=$(e)?e:this.config.seekTime})),e(this,"increaseVolume",(e=>{const t=this.media.muted?0:this.volume;this.volume=t+($(e)?e:0)})),e(this,"decreaseVolume",(e=>{this.increaseVolume(-e)})),e(this,"airplay",(()=>{me.airplay&&this.media.webkitShowPlaybackTargetPicker()})),e(this,"toggleControls",(e=>{if(this.supported.ui&&!this.isAudio){const t=oe(this.elements.container,this.config.classNames.hideControls),i=void 0===e?void 0:!e,s=le(this.elements.container,this.config.classNames.hideControls,i);if(s&&D(this.config.controls)&&this.config.controls.includes("settings")&&!W(this.config.settings)&&We.toggleMenu.call(this,!1),s!==t){const e=s?"controlshidden":"controlsshown";ve.call(this,this.media,e)}return!s}return!1})),e(this,"on",((e,t)=>{fe.call(this,this.elements.container,e,t)})),e(this,"once",((e,t)=>{ye.call(this,this.elements.container,e,t)})),e(this,"off",((e,t)=>{be(this.elements.container,e,t)})),e(this,"destroy",((e,t=!1)=>{if(!this.ready)return;const i=()=>{document.body.style.overflow="",this.embed=null,t?(Object.keys(this.elements).length&&(te(this.elements.buttons.play),te(this.elements.captions),te(this.elements.controls),te(this.elements.wrapper),this.elements.buttons.play=null,this.elements.captions=null,this.elements.controls=null,this.elements.wrapper=null),j(e)&&e()):(we.call(this),Le.cancelRequests.call(this),se(this.elements.original,this.elements.container),ve.call(this,this.elements.original,"destroyed",!0),j(e)&&e.call(this.elements.original),this.ready=!1,setTimeout((()=>{this.elements=null,this.media=null}),200))};this.stop(),clearTimeout(this.timers.loading),clearTimeout(this.timers.controls),clearTimeout(this.timers.resized),this.isHTML5?(at.toggleNativeControls.call(this,!0),i()):this.isYouTube?(clearInterval(this.timers.buffering),clearInterval(this.timers.playing),null!==this.embed&&j(this.embed.destroy)&&this.embed.destroy(),i()):this.isVimeo&&(null!==this.embed&&this.embed.unload().then(i),setTimeout(i,200))})),e(this,"supports",(e=>me.mime.call(this,e))),this.timers={},this.ready=!1,this.loading=!1,this.failed=!1,this.touch=me.touch,this.media=t,_(this.media)&&(this.media=document.querySelectorAll(this.media)),(window.jQuery&&this.media instanceof jQuery||q(this.media)||D(this.media))&&(this.media=this.media[0]),this.config=X({},Qe,Tt.defaults,i||{},(()=>{try{return JSON.parse(this.media.getAttribute("data-plyr-config"))}catch(e){return{}}})()),this.elements={container:null,fullscreen:null,captions:null,buttons:{},display:{},progress:{},inputs:{},settings:{popup:null,menu:null,panels:{},buttons:{}}},this.captions={active:null,currentTrack:-1,meta:new WeakMap},this.fullscreen={active:!1},this.options={speed:[],quality:[]},this.debug=new it(this.config.debug),this.debug.log("Config",this.config),this.debug.log("Support",me),I(this.media)||!H(this.media))return void this.debug.error("Setup failed: no suitable element passed");if(this.media.plyr)return void this.debug.warn("Target already setup");if(!this.config.enabled)return void this.debug.error("Setup failed: disabled by config");if(!me.check().api)return void this.debug.error("Setup failed: no support");const s=this.media.cloneNode(!0);s.autoplay=!1,this.elements.original=s;const n=this.media.tagName.toLowerCase();let a=null,l=null;switch(n){case"div":if(a=this.media.querySelector("iframe"),H(a)){if(l=ze(a.getAttribute("src")),this.provider=function(e){return/^(https?:\/\/)?(www\.)?(youtube\.com|youtube-nocookie\.com|youtu\.?be)\/.+$/.test(e)?Ge.youtube:/^https?:\/\/player.vimeo.com\/video\/\d{0,9}(?=\b|\/)/.test(e)?Ge.vimeo:null}(l.toString()),this.elements.container=this.media,this.media=a,this.elements.container.className="",l.search.length){const e=["1","true"];e.includes(l.searchParams.get("autoplay"))&&(this.config.autoplay=!0),e.includes(l.searchParams.get("loop"))&&(this.config.loop.active=!0),this.isYouTube?(this.config.playsinline=e.includes(l.searchParams.get("playsinline")),this.config.youtube.hl=l.searchParams.get("hl")):this.config.playsinline=!0}}else this.provider=this.media.getAttribute(this.config.attributes.embed.provider),this.media.removeAttribute(this.config.attributes.embed.provider);if(W(this.provider)||!Object.values(Ge).includes(this.provider))return void this.debug.error("Setup failed: Invalid provider");this.type=et;break;case"video":case"audio":this.type=n,this.provider=Ge.html5,this.media.hasAttribute("crossorigin")&&(this.config.crossorigin=!0),this.media.hasAttribute("autoplay")&&(this.config.autoplay=!0),(this.media.hasAttribute("playsinline")||this.media.hasAttribute("webkit-playsinline"))&&(this.config.playsinline=!0),this.media.hasAttribute("muted")&&(this.config.muted=!0),this.media.hasAttribute("loop")&&(this.config.loop.active=!0);break;default:return void this.debug.error("Setup failed: unsupported type")}this.supported=me.check(this.type,this.provider,this.config.playsinline),this.supported.api?(this.eventListeners=[],this.listeners=new lt(this),this.storage=new Re(this),this.media.plyr=this,H(this.elements.container)||(this.elements.container=Z("div",{tabindex:0}),J(this.media,this.elements.container)),at.migrateStyles.call(this),at.addStyleHook.call(this),pt.setup.call(this),this.config.debug&&fe.call(this,this.elements.container,this.config.events.join(" "),(e=>{this.debug.log(`event: ${e.type}`)})),this.fullscreen=new st(this),(this.isHTML5||this.isEmbed&&!this.supported.ui)&&at.build.call(this),this.listeners.container(),this.listeners.global(),this.config.ads.enabled&&(this.ads=new gt(this)),this.isHTML5&&this.config.auto
10807play&&this.once("canplay",(()=>ke(this.play()))),this.lastSeekTime=0,this.config.previewThumbnails.enabled&&(this.previewThumbnails=new vt(this))):this.debug.error("Setup failed: no support")}get isHTML5(){return this.provider===Ge.html5}get isEmbed(){return this.isYouTube||this.isVimeo}get isYouTube(){return this.provider===Ge.youtube}get isVimeo(){return this.provider===Ge.vimeo}get isVideo(){return this.type===et}get isAudio(){return this.type===Ze}get playing(){return Boolean(this.ready&&!this.paused&&!this.ended)}get paused(){return Boolean(this.media.paused)}get stopped(){return Boolean(this.paused&&0===this.currentTime)}get ended(){return Boolean(this.media.ended)}set currentTime(e){if(!this.duration)return;const t=$(e)&&e>0;this.media.currentTime=t?Math.min(e,this.duration):0,this.debug.log(`Seeking to ${this.currentTime} seconds`)}get currentTime(){return Number(this.media.currentTime)}get buffered(){const{buffered:e}=this.media;return $(e)?e:e&&e.length&&this.duration>0?e.end(0)/this.duration:0}get seeking(){return Boolean(this.media.seeking)}get duration(){const e=parseFloat(this.config.duration),t=(this.media||{}).duration,i=$(t)&&t!==1/0?t:0;return e||i}set volume(e){let t=e;_(t)&&(t=Number(t)),$(t)||(t=this.storage.get("volume")),$(t)||({volume:t}=this.config),t>1&&(t=1),t<0&&(t=0),this.config.volume=t,this.media.volume=t,!W(e)&&this.muted&&t>0&&(this.muted=!1)}get volume(){return Number(this.media.volume)}set muted(e){let t=e;O(t)||(t=this.storage.get("muted")),O(t)||(t=this.config.muted),this.config.muted=t,this.media.muted=t}get muted(){return Boolean(this.media.muted)}get hasAudio(){return!this.isHTML5||(!!this.isAudio||(Boolean(this.media.mozHasAudio)||Boolean(this.media.webkitAudioDecodedByteCount)||Boolean(this.media.audioTracks&&this.media.audioTracks.length)))}set speed(e){let t=null;$(e)&&(t=e),$(t)||(t=this.storage.get("speed")),$(t)||(t=this.config.speed.selected);const{minimumSpeed:i,maximumSpeed:s}=this;t=ft(t,i,s),this.config.speed.selected=t,setTimeout((()=>{this.media&&(this.media.playbackRate=t)}),0)}get speed(){return Number(this.media.playbackRate)}get minimumSpeed(){return this.isYouTube?Math.min(...this.options.speed):this.isVimeo?.5:.0625}get maximumSpeed(){return this.isYouTube?Math.max(...this.options.speed):this.isVimeo?2:16}set quality(e){const t=this.config.quality,i=this.options.quality;if(!i.length)return;let s=[!W(e)&&Number(e),this.storage.get("quality"),t.selected,t.default].find($),n=!0;if(!i.includes(s)){const e=Ae(i,s);this.debug.warn(`Unsupported quality option: ${s}, using ${e} instead`),s=e,n=!1}t.selected=s,this.media.quality=s,n&&this.storage.set({quality:s})}get quality(){return this.media.quality}set loop(e){const t=O(e)?e:this.config.loop.active;this.config.loop.active=t,this.media.loop=t}get loop(){return Boolean(this.media.loop)}set source(e){wt.change.call(this,e)}get source(){return this.media.currentSrc}get download(){const{download:e}=this.config.urls;return U(e)?e:this.source}set download(e){U(e)&&(this.config.urls.download=e,We.setDownloadUrl.call(this))}set poster(e){this.isVideo?at.setPoster.call(this,e,!1).catch((()=>{})):this.debug.warn("Poster can only be set for video")}get poster(){return this.isVideo?this.media.getAttribute("poster")||this.media.getAttribute("data-poster"):null}get ratio(){if(!this.isVideo)return null;const e=Me(Ne.call(this));return D(e)?e.join(":"):e}set ratio(e){this.isVideo?_(e)&&Pe(e)?(this.config.ratio=Me(e),xe.call(this)):this.debug.error(`Invalid aspect ratio specified (${e})`):this.debug.warn("Aspect ratio can only be set for video")}set autoplay(e){this.config.autoplay=O(e)?e:this.config.autoplay}get autoplay(){return Boolean(this.config.autoplay)}toggleCaptions(e){Ye.toggle.call(this,e,!1)}set currentTrack(e){Ye.set.call(this,e,!1),Ye.setup.call(this)}get currentTrack(){const{toggled:e,currentTrack:t}=this.captions;return e?t:-1}set language(e){Ye.setLanguage.call(this,e,!1)}get language(){return(Ye.getCurrentTrack.call(this)||{}).language}set pip(e){if(!me.pip)return;const t=O(e)?e:!this.pip;j(this.media.webkitSetPresentationMode)&&this.media.webkitSetPresentationMode(t?Xe:Je),j(this.media.requestPictureInPicture)&&(!this.pip&&t?this.media.requestPictureInPicture():this.pip&&!t&&document.exitPictureInPicture())}get pip(){return me.pip?W(this.media.webkitPresentationMode)?this.media===document.pictureInPictureElement:this.media.webkitPresentationMode===Xe:null}setPreviewThumbnails(e){this.previewThumbnails&&this.previewThumbnails.loaded&&(this.previewThumbnails.destroy(),this.previewThumbnails=null),Object.assign(this.config.previewThumbnails,e),this.config.previewThumbnails.enabled&&(this.previewThumbnails=new vt(this))}
vendor: 2,400 bytes, lines 10807-10812
10807static supported(e,t,i){return me.check(e,t,i)}static loadSprite(e,t){return Ve(e,t)}static setup(e,t={}){let i=null;return _(e)?i=Array.from(document.querySelectorAll(e)):q(e)?i=Array.from(e):D(e)&&(i=e.filter(H)),W(i)?null:i.map((e=>new Tt(e,t)))}}var kt;return Tt.defaults=(kt=Qe,JSON.parse(JSON.stringify(kt))),Tt}));
10808//# sourceMappingURL=plyr.min.js.map
10809
10810/* PrismJS 1.24.1
10811https://prismjs.com/download.html#themes=prism-tomorrow&languages=markup+css+clike+javascript+markup-templating+php+sass+scss */
10812var _self="undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{},Prism=function(u){var c=/\blang(?:uage)?-([\w-]+)\b/i,n=0,e={},M={manual:u.Prism&&u.Prism.manual,disableWorkerMessageHandler:u.Prism&&u.Prism.disableWorkerMessageHandler,util:{encode:function e(n){return n instanceof W?new W(n.type,e(n.content),n.alias):Array.isArray(n)?n.map(e):n.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++n}),e.__id},clone:function t(e,r){var a,n;switch(r=r||{},M.util.type(e)){case"Object":if(n=M.util.objId(e),r[n])return r[n];for(var i in a={},r[n]=a,e)e.hasOwnProperty(i)&&(a[i]=t(e[i],r));return a;case"Array":return n=M.util.objId(e),r[n]?r[n]:(a=[],r[n]=a,e.forEach(function(e,n){a[n]=t(e,r)}),a);default:return e}},getLanguage:function(e){for(;e&&!c.test(e.className);)e=e.parentElement;return e?(e.className.match(c)||[,"none"])[1].toLowerCase():"none"},currentScript:function(){if("undefined"==typeof document)return null;if("currentScript"in document)return document.currentScript;try{throw new Error}catch(e){var n=(/at [^(\r\n]*\((.*):[^:]+:[^:]+\)$/i.exec(e.stack)||[])[1];if(n){var t=document.getElementsByTagName("script");for(var r in t)if(t[r].src==n)return t[r]}return null}},isActive:function(e,n,t){for(var r="no-"+n;e;){var a=e.classList;if(a.contains(n))return!0;if(a.contains(r))return!1;e=e.parentElement}return!!t}},languages:{plain:e,plaintext:e,text:e,txt:e,extend:function(e,n){var t=M.util.clone(M.languages[e]);for(var r in n)t[r]=n[r];return t},insertBefore:function(t,e,n,r){var a=(r=r||M.languages)[t],i={};for(var l in a)if(a.hasOwnProperty(l)){if(l==e)for(var o in n)n.hasOwnProperty(o)&&(i[o]=n[o]);n.hasOwnProperty(l)||(i[l]=a[l])}var s=r[t];
10812return r[t]=i,M.languages.DFS(M.languages,function(e,n){n===s&&e!=t&&(this[e]=i)}),i},DFS:function e(n,t,r,a){a=a||{};var i=M.util.objId;for(var l in n)if(n.hasOwnProperty(l)){t.call(n,l,n[l],r||l);var o=n[l],s=M.util.type(o);"Object"!==s||a[i(o)]?"Array"!==s||a[i(o)]||(a[i(o)]=!0,e(o,t,l,a)):(a[i(o)]=!0,e(o,t,null,a))}}},plugins:{},highlightAll:function(e,n){M.highlightAllUnder(document,e,n)},highlightAllUnder:function(e,n,t){var r={callback:t,container:e,selector:'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'};M.hooks.run("before-highlightall",r),r.elements=Array.prototype.slice.apply(r.container.querySelectorAll(r.selector)),M.hooks.run("before-all-elements-highlight",r);for(var a,i=0;a=r.elements[i++];)M.highlightElement(a,!0===n,r.callback)},highlightElement:function(e,n,t){var r=M.util.getLanguage(e),a=M.languages[r];e.className=e.className.replace(c,"").replace(/\s+/g," ")+" language-"+r;var i=e.parentElement;i&&"pre"===i.nodeName.toLowerCase()&&(i.className=i.className.replace(c,"").replace(/\s+/g," ")+" language-"+r);var l={element:e,language:r,grammar:a,code:e.textContent};function o(e){l.highlightedCode=e,M.hooks.run("before-insert",l),l.element.innerHTML=l.highlightedCode,M.hooks.run("after-highlight",l),M.hooks.run("complete",l),t&&t.call(l.element)}if(M.hooks.run("before-sanity-check",l),(i=l.element.parentElement)&&"pre"===i.nodeName.toLowerCase()&&!i.hasAttribute("tabindex")&&i.setAttribute("tabindex","0"),!l.code)return M.hooks.run("complete",l),void(t&&t.call(l.element));if(M.hooks.run("before-highlight",l),l.grammar)if(n&&u.Worker){var s=new Worker(M.filename);s.onmessage=function(e){o(e.data)},s.postMessage(JSON.stringify({language:l.language,code:l.code,immediateClose:!0}))}else o(M.highlight(l.code,l.grammar,l.language));else o(M.util.encode(l.code))},highlight:function(e,n,t){var r={code:e,grammar:n,language:t};return M.hooks.run("before-tokenize",r),r.tokens=M.tokenize(r.code,r.grammar),M.hooks.run("after-tokenize",r),W.stringify(M.util.encode(r.tokens),r.language)},tokenize:function(e,n){var t=n.rest;if(t){for(var r in t)n[r]=t[r];delete n.rest}var a=new i;return I(a,a.head,e),function e(n,t,r,a,i,l){for(var o in r)if(r.hasOwnProperty(o)&&r[o]){var s=r[o];s=Array.isArray(s)?s:[s];for(var u=0;u<s.length;++u){if(l&&l.cause==o+","+u)return;var c=s[u],g=c.inside,f=!!c.lookbehind,h=!!c.greedy,d=c.alias;if(h&&!c.pattern.global){var p=c.pattern.toString().match(/[imsuy]*$/)[0];c.pattern=RegExp(c.pattern.source,p+"g")}for(var v=c.pattern||c,m=a.next,y=i;m!==t.tail&&!(l&&y>=l.reach);y+=m.value.length,m=m.next){var b=m.value;if(t.length>n.length)return;if(!(b instanceof W)){var k,x=1;if(h){if(!(k=z(v,y,n,f)))break;var w=k.index,A=k.index+k[0].length,P=y;for(P+=m.value.length;P<=w;)m=m.next,P+=m.value.length;if(P-=m.value.length,y=P,m.value instanceof W)continue;for(var E=m;E!==t.tail&&(P<A||"string"==typeof E.value);E=E.next)x++,P+=E.value.length;x--,b=n.slice(y,P),k.index-=y}else if(!(k=z(v,0,b,f)))continue;var w=k.index,S=k[0],O=b.slice(0,w),L=b.slice(w+S.length),N=y+b.length;l&&N>l.reach&&(l.reach=N);var j=m.prev;O&&(j=I(t,j,O),y+=O.length),q(t,j,x);var C=new W(o,g?M.tokenize(S,g):S,d,S);if(m=I(t,j,C),L&&I(t,m,L),1<x){var _={cause:o+","+u,reach:N};e(n,t,r,m.prev,y,_),l&&_.reach>l.reach&&(l.reach=_.reach)}}}}}}(e,a,n,a.head,0),function(e){var n=[],t=e.head.next;for(;t!==e.tail;)n.push(t.value),t=t.next;return n}(a)},hooks:{all:{},add:function(e,n){var t=M.hooks.all;t[e]=t[e]||[],t[e].push(n)},run:function(e,n){var t=M.hooks.all[e];if(t&&t.length)for(var r,a=0;r=t[a++];)r(n)}},Token:W};function W(e,n,t,r){this.type=e,this.content=n,this.alias=t,this.length=0|(r||"").length}function z(e,n,t,r){e.lastIndex=n;var a=e.exec(t);if(a&&r&&a[1]){var i=a[1].length;a.index+=i,a[0]=a[0].slice(i)}return a}function i(){var e={value:null,prev:null,next:null},n={value:null,prev:e,next:null};e.next=n,this.head=e,this.tail=n,this.length=0}function I(e,n,t){var r=n.next,a={value:t,prev:n,next:r};return n.next=a,r.prev=a,e.length++,a}function q(e,n,t){for(var r=n.next,a=0;a<t&&r!==e.tail;a++)r=r.next;(n.next=r).prev=n,e.length-=a}if(u.Prism=M,W.stringify=function n(e,t){if("string"==typeof e)return e;if(Array.isArray(e)){var r="";return e.forEach(function(e){r+=n(e,t)}),r}var a={type:e.type,content:n(e.content,t),tag:"span",classes:["token",e.type],attributes:{},language:t},i=e.alias;i&&(Array.isArray(i)?Array.prototype.push.apply(a.classes,i):a.classes.push(i)),M.hooks.run("wrap",a);var l="";for(var o in a.attributes)l+=" "+o+'="'+(a.attributes[o]||"").replace(/"/g,"&quot;")+'"';return"<"+a.tag+' class="'+a.classes.join(" ")+'"'+l+">"+a.content+"</"+a.tag+">"},!u.document)return u.addEventListener&&(M.disableWorkerMessageHandler||u.addEventListener("message",function(e){var n=JSON.parse(e.data),t=n.language,r=n.code,a=n.immediateClose;u.postMessage(M.highlight(r,M.languages[t],t)),a&&u.close()},!1)),M;var t=M.util.currentScript();function r(){M.manual||M.highlightAll()}if(t&&(M.filename=t.src,t.hasAttribute("data-manual")&&(M.manual=!0)),!M.manual){var a=document.readyState;"loading"===a||"interactive"===a&&t&&t.defer?document.addEventListener("DOMContentLoaded",r):window.requestAnimationFrame?window.requestAnimationFrame(r):window.setTimeout(r,16)}return M}(_self);"undefined"!=typeof module&&module.exports&&(module.exports=Prism),"undefined"!=typeof global&&(global.Prism=Prism);
10813Prism.languages.markup={comment:/<!--[\s\S]*?-->/,prolog:/<\?[\s\S]+?\?>/,doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/,name:/[^\s<>'"]+/}},cdata:/<!\[CDATA\[[\s\S]*?\]\]>/i,tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>
10813\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},Prism.languages.markup.tag.inside["attr-value"].inside.entity=Prism.languages.markup.entity,Prism.languages.markup.doctype.inside["internal-subset"].inside=Prism.languages.markup,Prism.hooks.add("wrap",function(a){"entity"===a.type&&(a.attributes.title=a.content.replace(/&amp;/,"&"))}),Object.defineProperty(Prism.languages.markup.tag,"addInlined",{value:function(a,e){var s={};s["language-"+e]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:Prism.languages[e]},s.cdata=/^<!\[CDATA\[|\]\]>$/i;var t={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:s}};t["language-"+e]={pattern:/[\s\S]+/,inside:Prism.languages[e]};var n={};n[a]={pattern:RegExp("(<__[^>]*>)(?:<!\\[CDATA\\[(?:[^\\]]|\\](?!\\]>))*\\]\\]>|(?!<!\\[CDATA\\[)[^])*?(?=</__>)".replace(/__/g,function(){return a}),"i"),lookbehind:!0,greedy:!0,inside:t},Prism.languages.insertBefore("markup","cdata",n)}}),Object.defineProperty(Prism.languages.markup.tag,"addAttribute",{value:function(a,e){Prism.languages.markup.tag.inside["special-attr"].push({pattern:RegExp("(^|[\"'\\s])(?:"+a+")\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))","i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[e,"language-"+e],inside:Prism.languages[e]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),Prism.languages.html=Prism.languages.markup,Prism.languages.mathml=Prism.languages.markup,Prism.languages.svg=Prism.languages.markup,Prism.languages.xml=Prism.languages.extend("markup",{}),Prism.languages.ssml=Prism.languages.xml,Prism.languages.atom=Prism.languages.xml,Prism.languages.rss=Prism.languages.xml;
10814!function(s){var e=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;s.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+e.source+"|(?:[^\\\\\r\n()\"']|\\\\[^])*)\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+e.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+e.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:e,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},s.languages.css.atrule.inside.rest=s.languages.css;var t=s.languages.markup;t&&(t.tag.addInlined("style","css"),t.tag.addAttribute("style","css"))}(Prism);
10815Prism.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|interface|extends|implements|trait|instanceof|new)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,boolean:/\b(?:true|false)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/};
10816Prism.languages.javascript=Prism.languages.extend("clike",{"class-name":[Prism.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:prototype|constructor))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:/\b(?:(?:0[xX](?:[\dA-Fa-f](?:_[\dA-Fa-f])?)+|0[bB](?:[01](?:_[01])?)+|0[oO](?:[0-7](?:_[0-7])?)+)n?|(?:\d(?:_\d)?)+n|NaN|Infinity)\b|(?:\b(?:\d(?:_\d)?)+\.?(?:\d(?:_\d)?)*|\B\.(?:\d(?:_\d)?)+)(?:[Ee][+-]?(?:\d(?:_\d)?)+)?/,operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),Prism.languages.javascript["class-name"][0].pattern=/(\b(?:class|interface|extends|implements|instanceof|new)\s+)[\w.\\]+/,Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}
vendor: 4,488 bytes, lines 10816-10818
10816(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:Prism.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:Prism.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),Prism.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:Prism.languages.javascript}},string:/[\s\S]+/}}}),Prism.languages.markup&&(Prism.languages.markup.tag.addInlined("script","javascript"),Prism.languages.markup.tag.addAttribute("on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)","javascript")),Prism.languages.js=Prism.languages.javascript;
10817!function(h){function v(e,n){return"___"+e.toUpperCase()+n+"___"}Object.defineProperties(h.languages["markup-templating"]={},{buildPlaceholders:{value:function(a,r,e,o){if(a.language===r){var c=a.tokenStack=[];a.code=a.code.replace(e,function(e){if("function"==typeof o&&!o(e))return e;for(var n,t=c.length;-1!==a.code.indexOf(n=v(r,t));)++t;return c[t]=e,n}),a.grammar=h.languages.markup}}},tokenizePlaceholders:{value:function(p,k){if(p.language===k&&p.tokenStack){p.grammar=h.languages[k];var m=0,d=Object.keys(p.tokenStack);!function e(n){for(var t=0;t<n.length&&!(m>=d.length);t++){var a=n[t];if("string"==typeof a||a.content&&"string"==typeof a.content){var r=d[m],o=p.tokenStack[r],c="string"==typeof a?a:a.content,i=v(k,r),u=c.indexOf(i);if(-1<u){++m;var g=c.substring(0,u),l=new h.Token(k,h.tokenize(o,p.grammar),"language-"+k,o),s=c.substring(u+i.length),f=[];g&&f.push.apply(f,e([g])),f.push(l),s&&f.push.apply(f,e([s])),"string"==typeof a?n.splice.apply(n,[t,1].concat(f)):a.content=f}}else a.content&&e(a.content)}return n}(p.tokens)}}}})}(Prism);
10818!function(a){var e=/\/\*[\s\S]*?\*\/|\/\/.*|#(?!\[).*/,t=[{pattern:/\b(?:false|true)\b/i,alias:"boolean"},{pattern:/(::\s*)\b[a-z_]\w*\b(?!\s*\()/i,greedy:!0,lookbehind:!0},{pattern:/(\b(?:case|const)\s+)\b[a-z_]\w*(?=\s*[;=])/i,greedy:!0,lookbehind:!0},/\b(?:null)\b/i,/\b[A-Z_][A-Z0-9_]*\b(?!\s*\()/],i=/\b0b[01]+(?:_[01]+)*\b|\b0o[0-7]+(?:_[0-7]+)*\b|\b0x[\da-f]+(?:_[\da-f]+)*\b|(?:\b\d+(?:_\d+)*\.?(?:\d+(?:_\d+)*)?|\B\.\d+)(?:e[+-]?\d+)?/i,n=/<?=>|\?\?=?|\.{3}|\??->|[!=]=?=?|::|\*\*=?|--|\+\+|&&|\|\||<<|>>|[?~]|[/^|%*&<>.+-]=?/,s=/[{}\[\](),:;]/;a.languages.php={delimiter:{pattern:/\?>$|^<\?(?:php(?=\s)|=)?/i,alias:"important"},comment:e,variable:/\$+(?:\w+\b|(?=\{))/i,package:{pattern:/(namespace\s+|use\s+(?:function\s+)?)(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,lookbehind:!0,inside:{punctuation:/\\/}},"class-name-definition":{pattern:/(\b(?:class|enum|interface|trait)\s+)\b[a-z_]\w*(?!\\)\b/i,lookbehind:!0,alias:"class-name"}
vendor: 4,398 bytes, line 10818
10818,"function-definition":{pattern:/(\bfunction\s+)[a-z_]\w*(?=\s*\()/i,lookbehind:!0,alias:"function"},keyword:[{pattern:/(\(\s*)\b(?:bool|boolean|int|integer|float|string|object|array)\b(?=\s*\))/i,alias:"type-casting",greedy:!0,lookbehind:!0},{pattern:/([(,?]\s*)\b(?:bool|int|float|string|object|array(?!\s*\()|mixed|self|static|callable|iterable|(?:null|false)(?=\s*\|))\b(?=\s*\$)/i,alias:"type-hint",greedy:!0,lookbehind:!0},{pattern:/([(,?]\s*[\w|]\|\s*)(?:null|false)\b(?=\s*\$)/i,alias:"type-hint",greedy:!0,lookbehind:!0},{pattern:/(\)\s*:\s*(?:\?\s*)?)\b(?:bool|int|float|string|object|void|array(?!\s*\()|mixed|self|static|callable|iterable|(?:null|false)(?=\s*\|))\b/i,alias:"return-type",greedy:!0,lookbehind:!0},{pattern:/(\)\s*:\s*(?:\?\s*)?[\w|]\|\s*)(?:null|false)\b/i,alias:"return-type",greedy:!0,lookbehind:!0},{pattern:/\b(?:bool|int|float|string|object|void|array(?!\s*\()|mixed|iterable|(?:null|false)(?=\s*\|))\b/i,alias:"type-declaration",greedy:!0},{pattern:/(\|\s*)(?:null|false)\b/i,alias:"type-declaration",greedy:!0,lookbehind:!0},{pattern:/\b(?:parent|self|static)(?=\s*::)/i,alias:"static-context",greedy:!0},{pattern:/(\byield\s+)from\b/i,lookbehind:!0},/\bclass\b/i,{pattern:/((?:^|[^\s>:]|(?:^|[^-])>|(?:^|[^:]):)\s*)\b(?:__halt_compiler|abstract|and|array|as|break|callable|case|catch|clone|const|continue|declare|default|die|do|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|enum|eval|exit|extends|final|finally|fn|for|foreach|function|global|goto|if|implements|include|include_once|instanceof|insteadof|interface|isset|list|namespace|match|new|or|parent|print|private|protected|public|require|require_once|return|self|static|switch|throw|trait|try|unset|use|var|while|xor|yield)\b/i,lookbehind:!0}],"argument-name":{pattern:/([(,]\s+)\b[a-z_]\w*(?=\s*:(?!:))/i,lookbehind:!0},"class-name":[{pattern:/(\b(?:extends|implements|instanceof|new(?!\s+self|\s+static))\s+|\bcatch\s*\()\b[a-z_]\w*(?!\\)\b/i,greedy:!0,lookbehind:!0},{pattern:/(\|\s*)\b[a-z_]\w*(?!\\)\b/i,greedy:!0,lookbehind:!0},{pattern:/\b[a-z_]\w*(?!\\)\b(?=\s*\|)/i,greedy:!0},{pattern:/(\|\s*)(?:\\?\b[a-z_]\w*)+\b/i,alias:"class-name-fully-qualified",greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/(?:\\?\b[a-z_]\w*)+\b(?=\s*\|)/i,alias:"class-name-fully-qualified",greedy:!0,inside:{punctuation:/\\/}},{pattern:/(\b(?:extends|implements|instanceof|new(?!\s+self\b|\s+static\b))\s+|\bcatch\s*\()(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,alias:"class-name-fully-qualified",greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/\b[a-z_]\w*(?=\s*\$)/i,alias:"type-declaration",greedy:!0},{pattern:/(?:\\?\b[a-z_]\w*)+(?=\s*\$)/i,alias:["class-name-fully-qualified","type-declaration"],greedy:!0,inside:{punctuation:/\\/}},{pattern:/\b[a-z_]\w*(?=\s*::)/i,alias:"static-context",greedy:!0},{pattern:/(?:\\?\b[a-z_]\w*)+(?=\s*::)/i,alias:["class-name-fully-qualified","static-context"],greedy:!0,inside:{punctuation:/\\/}},{pattern:/([(,?]\s*)[a-z_]\w*(?=\s*\$)/i,alias:"type-hint",greedy:!0,lookbehind:!0},{pattern:/([(,?]\s*)(?:\\?\b[a-z_]\w*)+(?=\s*\$)/i,alias:["class-name-fully-qualified","type-hint"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/(\)\s*:\s*(?:\?\s*)?)\b[a-z_]\w*(?!\\)\b/i,alias:"return-type",greedy:!0,lookbehind:!0},{pattern:/(\)\s*:\s*(?:\?\s*)?)(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,alias:["class-name-fully-qualified","return-type"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}}],constant:t,function:{pattern:/(^|[^\\\w])\\?[a-z_](?:[\w\\]*\w)?(?=\s*\()/i,lookbehind:!0,inside:{punctuation:/\\/}},property:{pattern:/(->\s*)\w+/,lookbehind:!0},number:i,operator:n,punctuation:s};var l={pattern:/\{\$(?:\{(?:\{[^{}]+\}|[^{}]+)\}|[^{}])+\}|(^|[^\\{])\$+(?:\w+(?:\[[^\r\n\[\]]+\]|->\w+)?)/,lookbehind:!0,inside:a.languages.php},r=[{pattern:/<<<'([^']+)'[\r\n](?:.*[\r\n])*?\1;/,alias:"nowdoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<<'[^']+'|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<'?|[';]$/}}}},{pattern:/<<<(?:"([^"]+)"[\r\n](?:.*[\r\n])*?\1;|([a-z_]\w*)[\r\n](?:.*[\r\n])*?\2;)/i,alias:"heredoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<<(?:"[^"]+"|[a-z_]\w*)|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<"?|[";]$/}},interpolation:l}},{pattern:/`(?:\\[\s\S]|[^\\`])*`/,alias:"backtick-quoted-string",greedy:!0},{pattern:/'(?:\\[\s\S]|[^\\'])*'/,alias:"single-quoted-string",greedy:!0}
10818,{pattern:/"(?:\\[\s\S]|[^\\"])*"/,alias:"double-quoted-string",greedy:!0,inside:{interpolation:l}}];a.languages.insertBefore("php","variable",{string:r,attribute:{pattern:/#\[(?:[^"'\/#]|\/(?![*/])|\/\/.*$|#(?!\[).*$|\/\*(?:[^*]|\*(?!\/))*\*\/|"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*')+\](?=\s*[a-z$#])/im,greedy:!0,inside:{"attribute-content":{pattern:/^(#\[)[\s\S]+(?=\]$)/,lookbehind:!0,inside:{comment:e,string:r,"attribute-class-name":[{pattern:/([^:]|^)\b[a-z_]\w*(?!\\)\b/i,alias:"class-name",greedy:!0,lookbehind:!0},{pattern:/([^:]|^)(?:\\?\b[a-z_]\w*)+/i,alias:["class-name","class-name-fully-qualified"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}}],constant:t,number:i,operator:n,punctuation:s}},delimiter:{pattern:/^#\[|\]$/,alias:"punctuation"}}}}),a.hooks.add("before-tokenize",function(e){if(/<\?/.test(e.code)){a.languages["markup-templating"].buildPlaceholders(e,"php",/<\?(?:[^"'/#]|\/(?![*/])|("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|(?:\/\/|#(?!\[))(?:[^?\n\r]|\?(?!>))*(?=$|\?>|[\r\n])|#\[|\/\*(?:[^*]|\*(?!\/))*(?:\*\/|$))*?(?:\?>|$)/gi)}}),a.hooks.add("after-tokenize",function(e){a.languages["markup-templating"].tokenizePlaceholders(e,"php")})}(Prism);
10819!function(e){e.languages.sass=e.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0,greedy:!0}}),e.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,greedy:!0,inside:{atrule:/(?:@[\w-]+|[+=])/m}}}),delete e.languages.sass.atrule;var r=/\$[-\w]+|#\{\$[-\w]+\}/,t=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|or|not)\b/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,greedy:!0,inside:{punctuation:/:/,variable:r,operator:t}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,greedy:!0,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:r,operator:t,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,e.languages.insertBefore("sass","punctuation",{selector:{pattern:/^([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/m,lookbehind:!0,greedy:!0}})}(Prism);
10820Prism.languages.scss=Prism.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]))/m,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),Prism.languages.insertBefore("scss","atrule",{keyword:[/@(?:if|else(?: if)?|forward|for|each|while|import|use|extend|debug|warn|mixin|include|function|return|content)\b/i,{pattern:/( )(?:from|through)(?= )/,lookbehind:!0}]}),Prism.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),Prism.languages.insertBefore("scss","function",{"module-modifier":{pattern:/\b(?:as|with|show|hide)\b/i,alias:"keyword"},placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:true|false)\b/,null:{pattern:/\bnull\b/,alias:"keyword"},operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|or|not)(?=\s)/,lookbehind:!0}}),Prism.languages.scss.atrule.inside.rest=Prism.languages.scss;
10821
10822// ProgressBar.js 1.0.1
10823// https://kimmobrunfeldt.github.io/progressbar.js
10824// License: MIT
10825!function(a){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=a();else if("function"==typeof define&&define.amd)define([],a);else{var b;b="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,b.ProgressBar=a()}}(function(){var a;return function b(a,c,d){function e(g,h){if(!c[g]){if(!a[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);var j=new Error("Cannot find module '"+g+"'");throw j.code="MODULE_NOT_FOUND",j}var k=c[g]={exports:{}};a[g][0].call(k.exports,function(b){var c=a[g][1][b];return e(c?c:b)},k,k.exports,b,a,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g<d.length;g++)e(d[g]);return e}({1:[function(b,c,d){(function(){var b=this||Function("return this")(),e=function(){"use strict";function e(){}function f(a,b){var c;for(c in a)Object.hasOwnProperty.call(a,c)&&b(c)}function g(a,b){return f(b,function(c){a[c]=b[c]}),a}function h(a,b){f(b,function(c){"undefined"==typeof a[c]&&(a[c]=b[c])})}function i(a,b,c,d,e,f,g){var h,i,k,l=f>a?0:(a-f)/e;for(h in b)b.hasOwnProperty(h)&&(i=g[h],k="function"==typeof i?i:o[i],b[h]=j(c[h],d[h],k,l));return b}function j(a,b,c,d){return a+(b-a)*c(d)}function k(a,b){var c=n.prototype.filter,d=a._filterArgs;f(c,function(e){"undefined"!=typeof c[e][b]&&c[e][b].apply(a,d)})}function l(a,b,c,d,e,f,g,h,j,l,m){v=b+c+d,w=Math.min(m||u(),v),x=w>=v,y=d-(v-w),a.isPlaying()&&(x?(j(g,a._attachment,y),a.stop(!0)):(a._scheduleId=l(a._timeoutHandler,s),k(a,"beforeTween"),b+c>w?i(1,e,f,g,1,1,h):i(w,e,f,g,d,b+c,h),k(a,"afterTween"),j(e,a._attachment,y)))}function m(a,b){var c={},d=typeof b;return"string"===d||"function"===d?f(a,function(a){c[a]=b}):f(a,function(a){c[a]||(c[a]=b[a]||q)}),c}function n(a,b){this._currentState=a||{},this._configured=!1,this._scheduleFunction=p,"undefined"!=typeof b&&this.setConfig(b)}var o,p,q="linear",r=500,s=1e3/60,t=Date.now?Date.now:function(){return+new Date},u="undefined"!=typeof SHIFTY_DEBUG_NOW?SHIFTY_DEBUG_NOW:t;p="undefined"!=typeof window?window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||window.mozCancelRequestAnimationFrame&&window.mozRequestAnimationFrame||setTimeout:setTimeout;var v,w,x,y;return n.prototype.tween=function(a){return this._isTweening?this:(void 0===a&&this._configured||this.setConfig(a),this._timestamp=u(),this._start(this.get(),this._attachment),this.resume())},n.prototype.setConfig=function(a){a=a||{},this._configured=!0,this._attachment=a.attachment,this._pausedAtTime=null,this._scheduleId=null,this._delay=a.delay||0,this._start=a.start||e,this._step=a.step||e,this._finish=a.finish||e,this._duration=a.duration||r,this._currentState=g({},a.from)||this.get(),this._originalState=this.get(),this._targetState=g({},a.to)||this.get();var b=this;this._timeoutHandler=function(){l(b,b._timestamp,b._delay,b._duration,b._currentState,b._originalState,b._targetState,b._easing,b._step,b._scheduleFunction)};var c=this._currentState,d=this._targetState;return h(d,c),this._easing=m(c,a.easing||q),this._filterArgs=[c,this._originalState,d,this._easing],k(this,"tweenCreated"),this},n.prototype.get=function(){return g({},this._currentState)},n.prototype.set=function(a){this._currentState=a},n.prototype.pause=function(){return this._pausedAtTime=u(),this._isPaused=!0,this},n.prototype.resume=function(){return this._isPaused&&(this._timestamp+=u()-this._pausedAtTime),this._isPaused=!1,this._isTweening=!0,this._timeoutHandler(),this},n.prototype.seek=function(a){a=Math.max(a,0);var b=u();return this._timestamp+a===0?this:(this._timestamp=b-a,this.isPlaying()||(this._isTweening=!0,this._isPaused=!1,l(this,this._timestamp,this._delay,this._duration,this._currentState,this._originalState,this._targetState,this._easing,this._step,this._scheduleFunction,b),this.pause()),this)},n.prototype.stop=function(a){return this._isTweening=!1,this._isPaused=!1,this._timeoutHandler=e,(b.cancelAnimationFrame||b.webkitCancelAnimationFrame||b.oCancelAnimationFrame||b.msCancelAnimationFrame||b.mozCancelRequestAnimationFrame||b.clearTimeout)(this._scheduleId),a&&(k(this,"beforeTween"),i(1,this._currentState,this._originalState,this._targetState,1,0,this._easing),k(this,"afterTween"),k(this,"afterTweenEnd"),this._finish.call(this,this._currentState,this._attachment)),this},n.prototype.isPlaying=function(){return this._isTweening&&!this._isPaused},n.prototype.setScheduleFunction=function(a){this._scheduleFunction=a},n.prototype.dispose=function(){var a;for(a in this)this.hasOwnProperty(a)&&delete this[a]},n.prototype.filter={},n.prototype.formula={linear:function(a){return a}},o=n.prototype.formula,g(n,{now:u,each:f,tweenProps:i,tweenProp:j,applyFilter:k,shallowCopy:g,defaults:h,composeEasingObject:m}),"function"==typeof SHIFTY_DEBUG_NOW&&(b.timeoutHandler=l),"object"==typeof d?c.exports=n:"function"==typeof a&&a.amd?a(function(){return n}):"undefined"==typeof b.Tweenable&&(b.Tweenable=n),n}();!function(){e.shallowCopy(e.prototype.formula,{easeInQuad:function(a){return Math.pow(a,2)},easeOutQuad:function(a){return-(Math.pow(a-1,2)-1)},easeInOutQuad:function(a){return(a/=.5)<1?.5*Math.pow(a,2):-.5*((a-=2)*a-2)},easeInCubic:function(a){return Math.pow(a,3)},easeOutCubic:function(a){return Math.pow(a-1,3)+1},easeInOutCubic:function(a){return(a/=.5)<1?.5*Math.pow(a,3):.5*(Math.pow(a-2,3)+2)},easeInQuart:function(a){return Math.pow(a,4)},easeOutQuart:function(a){return-(Math.pow(a-1,4)-1)},easeInOutQuart:function(a){return(a/=.5)<1?.5*Math.pow(a,4):-.5*((a-=2)*Math.pow(a,3)-2)},easeInQuint:function(a){return Math.pow(a,5)},easeOutQuint:function(a){return Math.pow(a-1,5)+1},easeInOutQuint:function(a){return(a/=.5)<1?.5*Math.pow(a,5):.5*(Math.pow(a-2,5)+2)},easeInSine:function(a){return-Math.cos(a*(Math.PI/2))+1},easeOutSine:function(a){return Math.sin(a*(Math.PI/2))},easeInOutSine:function(a){return-.5*(Math.cos(Math.PI*a)-1)},easeInExpo:function(a){return 0===a?0:Math.pow(2,10*(a-1))},easeOutExpo:function(a){return 1===a?1:-Math.pow(2,-10*a)+1},easeInOutExpo:function(a){return 0===a?0:1===a?1:(a/=.5)<1?.5*Math.pow(2,10*(a-1)):.5*(-Math.pow(2,-10*--a)+2)},easeInCirc:function(a){return-(Math.sqrt(1-a*a)-1)},easeOutCirc:function(a){return Math.sqrt(1-Math.pow(a-1,2))},easeInOutCirc:function(a){return(a/=.5)<1?-.5*(Math.sqrt(1-a*a)-1):.5*(Math.sqrt(1-(a-=2)*a)+1)},easeOutBounce:function(a){return 1/2.75>a?7.5625*a*a:2/2.75>a?7.5625*(a-=1.5/2.75)*a+.75:2.5/2.75>a?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375},easeInBack:function(a){var b=1.70158;return a*a*((b+1)*a-b)},easeOutBack:function(a){var b=1.70158;return(a-=1)*a*((b+1)*a+b)+1},easeInOutBack:function(a){var b=1.70158;return(a/=.5)<1?.5*(a*a*(((b*=1.525)+1)*a-b)):.5*((a-=2)*a*(((b*=1.525)+1)*a+b)+2)},elastic:function(a){return-1*Math.pow(4,-8*a)*Math.sin((6*a-1)*(2*Math.PI)/2)+1},swingFromTo:function(a){var b=1.70158;return(a/=.5)<1?.5*(a*a*(((b*=1.525)+1)*a-b)):.5*((a-=2)*a*(((b*=1.525)+1)*a+b)+2)}
vendor: 4,147 bytes, line 10825
10825,swingFrom:function(a){var b=1.70158;return a*a*((b+1)*a-b)},swingTo:function(a){var b=1.70158;return(a-=1)*a*((b+1)*a+b)+1},bounce:function(a){return 1/2.75>a?7.5625*a*a:2/2.75>a?7.5625*(a-=1.5/2.75)*a+.75:2.5/2.75>a?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375},bouncePast:function(a){return 1/2.75>a?7.5625*a*a:2/2.75>a?2-(7.5625*(a-=1.5/2.75)*a+.75):2.5/2.75>a?2-(7.5625*(a-=2.25/2.75)*a+.9375):2-(7.5625*(a-=2.625/2.75)*a+.984375)},easeFromTo:function(a){return(a/=.5)<1?.5*Math.pow(a,4):-.5*((a-=2)*Math.pow(a,3)-2)},easeFrom:function(a){return Math.pow(a,4)},easeTo:function(a){return Math.pow(a,.25)}})}(),function(){function a(a,b,c,d,e,f){function g(a){return((n*a+o)*a+p)*a}function h(a){return((q*a+r)*a+s)*a}function i(a){return(3*n*a+2*o)*a+p}function j(a){return 1/(200*a)}function k(a,b){return h(m(a,b))}function l(a){return a>=0?a:0-a}function m(a,b){var c,d,e,f,h,j;for(e=a,j=0;8>j;j++){if(f=g(e)-a,l(f)<b)return e;if(h=i(e),l(h)<1e-6)break;e-=f/h}if(c=0,d=1,e=a,c>e)return c;if(e>d)return d;for(;d>c;){if(f=g(e),l(f-a)<b)return e;a>f?c=e:d=e,e=.5*(d-c)+c}return e}var n=0,o=0,p=0,q=0,r=0,s=0;return p=3*b,o=3*(d-b)-p,n=1-p-o,s=3*c,r=3*(e-c)-s,q=1-s-r,k(a,j(f))}function b(b,c,d,e){return function(f){return a(f,b,c,d,e,1)}}e.setBezierFunction=function(a,c,d,f,g){var h=b(c,d,f,g);return h.displayName=a,h.x1=c,h.y1=d,h.x2=f,h.y2=g,e.prototype.formula[a]=h},e.unsetBezierFunction=function(a){delete e.prototype.formula[a]}}(),function(){function a(a,b,c,d,f,g){return e.tweenProps(d,b,a,c,1,g,f)}var b=new e;b._filterArgs=[],e.interpolate=function(c,d,f,g,h){var i=e.shallowCopy({},c),j=h||0,k=e.composeEasingObject(c,g||"linear");b.set({});var l=b._filterArgs;l.length=0,l[0]=i,l[1]=c,l[2]=d,l[3]=k,e.applyFilter(b,"tweenCreated"),e.applyFilter(b,"beforeTween");var m=a(c,i,d,f,k,j);return e.applyFilter(b,"afterTween"),m}}(),function(a){function b(a,b){var c,d=[],e=a.length;for(c=0;e>c;c++)d.push("_"+b+"_"+c);return d}function c(a){var b=a.match(v);return b?(1===b.length||a[0].match(u))&&b.unshift(""):b=["",""],b.join(A)}function d(b){a.each(b,function(a){var c=b[a];"string"==typeof c&&c.match(z)&&(b[a]=e(c))})}function e(a){return i(z,a,f)}function f(a){var b=g(a);return"rgb("+b[0]+","+b[1]+","+b[2]+")"}function g(a){return a=a.replace(/#/,""),3===a.length&&(a=a.split(""),a=a[0]+a[0]+a[1]+a[1]+a[2]+a[2]),B[0]=h(a.substr(0,2)),B[1]=h(a.substr(2,2)),B[2]=h(a.substr(4,2)),B}function h(a){return parseInt(a,16)}function i(a,b,c){var d=b.match(a),e=b.replace(a,A);if(d)for(var f,g=d.length,h=0;g>h;h++)f=d.shift(),e=e.replace(A,c(f));return e}function j(a){return i(x,a,k)}function k(a){for(var b=a.match(w),c=b.length,d=a.match(y)[0],e=0;c>e;e++)d+=parseInt(b[e],10)+",";return d=d.slice(0,-1)+")"}function l(d){var e={};return a.each(d,function(a){var f=d[a];if("string"==typeof f){var g=r(f);e[a]={formatString:c(f),chunkNames:b(g,a)}}}),e}function m(b,c){a.each(c,function(a){for(var d=b[a],e=r(d),f=e.length,g=0;f>g;g++)b[c[a].chunkNames[g]]=+e[g];delete b[a]})}function n(b,c){a.each(c,function(a){var d=b[a],e=o(b,c[a].chunkNames),f=p(e,c[a].chunkNames);d=q(c[a].formatString,f),b[a]=j(d)})}function o(a,b){for(var c,d={},e=b.length,f=0;e>f;f++)c=b[f],d[c]=a[c],delete a[c];return d}function p(a,b){C.length=0;for(var c=b.length,d=0;c>d;d++)C.push(a[b[d]]);return C}function q(a,b){for(var c=a,d=b.length,e=0;d>e;e++)c=c.replace(A,+b[e].toFixed(4));return c}function r(a){return a.match(w)}function s(b,c){a.each(c,function(a){var d,e=c[a],f=e.chunkNames,g=f.length,h=b[a];if("string"==typeof h){var i=h.split(" "),j=i[i.length-1];for(d=0;g>d;d++)b[f[d]]=i[d]||j}else for(d=0;g>d;d++)b[f[d]]=h;delete b[a]})}function t(b,c){a.each(c,function(a){var d=c[a],e=d.chunkNames,f=e.length,g=b[e[0]],h=typeof g;if("string"===h){for(var i="",j=0;f>j;j++)i+=" "+b[e[j]],delete b[e[j]];b[a]=i.substr(1)}else b[a]=g})}var u=/(\d|\-|\.)/,v=/([^\-0-9\.]+)/g,w=/[0-9.\-]+/g,x=new RegExp("rgb\\("+w.source+/,\s*/.source+w.source+/,\s*/.source+w.source+"\\)","g"),y=/^.*\(/,z=/#([0-9]|[a-f]){3,6}/gi,A="VAL",B=[],C=[];a.prototype.filter.token={tweenCreated:function(a,b,c,e){d(a),d(b),d(c),this._tokenData=l(a)}
vendor: 4,132 bytes, line 10825
10825,beforeTween:function(a,b,c,d){s(d,this._tokenData),m(a,this._tokenData),m(b,this._tokenData),m(c,this._tokenData)},afterTween:function(a,b,c,d){n(a,this._tokenData),n(b,this._tokenData),n(c,this._tokenData),t(d,this._tokenData)}}}(e)}).call(null)},{}],2:[function(a,b,c){var d=a("./shape"),e=a("./utils"),f=function(a,b){this._pathTemplate="M 50,50 m 0,-{radius} a {radius},{radius} 0 1 1 0,{2radius} a {radius},{radius} 0 1 1 0,-{2radius}",this.containerAspectRatio=1,d.apply(this,arguments)};f.prototype=new d,f.prototype.constructor=f,f.prototype._pathString=function(a){var b=a.strokeWidth;a.trailWidth&&a.trailWidth>a.strokeWidth&&(b=a.trailWidth);var c=50-b/2;return e.render(this._pathTemplate,{radius:c,"2radius":2*c})},f.prototype._trailString=function(a){return this._pathString(a)},b.exports=f},{"./shape":7,"./utils":8}],3:[function(a,b,c){var d=a("./shape"),e=a("./utils"),f=function(a,b){this._pathTemplate="M 0,{center} L 100,{center}",d.apply(this,arguments)};f.prototype=new d,f.prototype.constructor=f,f.prototype._initializeSvg=function(a,b){a.setAttribute("viewBox","0 0 100 "+b.strokeWidth),a.setAttribute("preserveAspectRatio","none")},f.prototype._pathString=function(a){return e.render(this._pathTemplate,{center:a.strokeWidth/2})},f.prototype._trailString=function(a){return this._pathString(a)},b.exports=f},{"./shape":7,"./utils":8}],4:[function(a,b,c){b.exports={Line:a("./line"),Circle:a("./circle"),SemiCircle:a("./semicircle"),Path:a("./path"),Shape:a("./shape"),utils:a("./utils")}},{"./circle":2,"./line":3,"./path":5,"./semicircle":6,"./shape":7,"./utils":8}],5:[function(a,b,c){var d=a("shifty"),e=a("./utils"),f={easeIn:"easeInCubic",easeOut:"easeOutCubic",easeInOut:"easeInOutCubic"},g=function h(a,b){if(!(this instanceof h))throw new Error("Constructor was called without new keyword");b=e.extend({duration:800,easing:"linear",from:{},to:{},step:function(){}},b);var c;c=e.isString(a)?document.querySelector(a):a,this.path=c,this._opts=b,this._tweenable=null;var d=this.path.getTotalLength();this.path.style.strokeDasharray=d+" "+d,this.set(0)};g.prototype.value=function(){var a=this._getComputedDashOffset(),b=this.path.getTotalLength(),c=1-a/b;return parseFloat(c.toFixed(6),10)},g.prototype.set=function(a){this.stop(),this.path.style.strokeDashoffset=this._progressToOffset(a);var b=this._opts.step;if(e.isFunction(b)){var c=this._easing(this._opts.easing),d=this._calculateTo(a,c),f=this._opts.shape||this;b(d,f,this._opts.attachment)}},g.prototype.stop=function(){this._stopTween(),this.path.style.strokeDashoffset=this._getComputedDashOffset()},g.prototype.animate=function(a,b,c){b=b||{},e.isFunction(b)&&(c=b,b={});var f=e.extend({},b),g=e.extend({},this._opts);b=e.extend(g,b);var h=this._easing(b.easing),i=this._resolveFromAndTo(a,h,f);this.stop(),this.path.getBoundingClientRect();var j=this._getComputedDashOffset(),k=this._progressToOffset(a),l=this;this._tweenable=new d,this._tweenable.tween({from:e.extend({offset:j},i.from),to:e.extend({offset:k},i.to),duration:b.duration,easing:h,step:function(a){l.path.style.strokeDashoffset=a.offset;var c=b.shape||l;b.step(a,c,b.attachment)},finish:function(a){e.isFunction(c)&&c()}})},g.prototype._getComputedDashOffset=function(){var a=window.getComputedStyle(this.path,null);return parseFloat(a.getPropertyValue("stroke-dashoffset"),10)},g.prototype._progressToOffset=function(a){var b=this.path.getTotalLength();return b-a*b},g.prototype._resolveFromAndTo=function(a,b,c){return c.from&&c.to?{from:c.from,to:c.to}:{from:this._calculateFrom(b),to:this._calculateTo(a,b)}},g.prototype._calculateFrom=function(a){return d.interpolate(this._opts.from,this._opts.to,this.value(),a)},g.prototype._calculateTo=function(a,b){return d.interpolate(this._opts.from,this._opts.to,a,b)},g.prototype._stopTween=function(){null!==this._tweenable&&(this._tweenable.stop(),this._tweenable=null)},g.prototype._easing=function(a){return f.hasOwnProperty(a)?f[a]:a},b.exports=g},{"./utils":8,shifty:1}],6:[function(a,b,c){var d=a("./shape"),e=a("./circle"),f=a("./utils"),g=function(a,b){this._pathTemplate="M 50,50 m -{radius},0 a {radius},{radius}
10825 0 1 1 {2radius},0",this.containerAspectRatio=2,d.apply(this,arguments)};g.prototype=new d,g.prototype.constructor=g,g.prototype._initializeSvg=function(a,b){a.setAttribute("viewBox","0 0 100 50")},g.prototype._initializeTextContainer=function(a,b,c){a.text.style&&(c.style.top="auto",c.style.bottom="0",a.text.alignToBottom?f.setStyle(c,"transform","translate(-50%, 0)"):f.setStyle(c,"transform","translate(-50%, 50%)"))},g.prototype._pathString=e.prototype._pathString,g.prototype._trailString=e.prototype._trailString,b.exports=g},{"./circle":2,"./shape":7,"./utils":8}],7:[function(a,b,c){var d=a("./path"),e=a("./utils"),f="Object is destroyed",g=function h(a,b){if(!(this instanceof h))throw new Error("Constructor was called without new keyword");if(0!==arguments.length){this._opts=e.extend({color:"#555",strokeWidth:1,trailColor:null,trailWidth:null,fill:null,text:{style:{color:null,position:"absolute",left:"50%",top:"50%",padding:0,margin:0,transform:{prefix:!0,value:"translate(-50%, -50%)"}},autoStyleContainer:!0,alignToBottom:!0,value:null,className:"progressbar-text"},svgStyle:{display:"block",width:"100%"},warnings:!1},b,!0),e.isObject(b)&&void 0!==b.svgStyle&&(this._opts.svgStyle=b.svgStyle),e.isObject(b)&&e.isObject(b.text)&&void 0!==b.text.style&&(this._opts.text.style=b.text.style);var c,f=this._createSvgView(this._opts);if(c=e.isString(a)?document.querySelector(a):a,!c)throw new Error("Container does not exist: "+a);this._container=c,this._container.appendChild(f.svg),this._opts.warnings&&this._warnContainerAspectRatio(this._container),this._opts.svgStyle&&e.setStyles(f.svg,this._opts.svgStyle),this.svg=f.svg,this.path=f.path,this.trail=f.trail,this.text=null;var g=e.extend({attachment:void 0,shape:this},this._opts);this._progressPath=new d(f.path,g),e.isObject(this._opts.text)&&null!==this._opts.text.value&&this.setText(this._opts.text.value)}};g.prototype.animate=function(a,b,c){if(null===this._progressPath)throw new Error(f);this._progressPath.animate(a,b,c)},g.prototype.stop=function(){if(null===this._progressPath)throw new Error(f);void 0!==this._progressPath&&this._progressPath.stop()},g.prototype.destroy=function(){if(null===this._progressPath)throw new Error(f);this.stop(),this.svg.parentNode.removeChild(this.svg),this.svg=null,this.path=null,this.trail=null,this._progressPath=null,null!==this.text&&(this.text.parentNode.removeChild(this.text),this.text=null)},g.prototype.set=function(a){if(null===this._progressPath)throw new Error(f);this._progressPath.set(a)},g.prototype.value=function(){if(null===this._progressPath)throw new Error(f);return void 0===this._progressPath?0:this._progressPath.value()},g.prototype.setText=function(a){if(null===this._progressPath)throw new Error(f);null===this.text&&(this.text=this._createTextContainer(this._opts,this._container),this._container.appendChild(this.text)),e.isObject(a)?(e.removeChildren(this.text),this.text.appendChild(a)):this.text.innerHTML=a},g.prototype._createSvgView=function(a){var b=document.createElementNS("http://www.w3.org/2000/svg","svg");this._initializeSvg(b,a);var c=null;(a.trailColor||a.trailWidth)&&(c=this._createTrail(a),b.appendChild(c));var d=this._createPath(a);return b.appendChild(d),{svg:b,path:d,trail:c}},g.prototype._initializeSvg=function(a,b){a.setAttribute("viewBox","0 0 100 100")},g.prototype._createPath=function(a){var b=this._pathString(a);return this._createPathElement(b,a)},g.prototype._createTrail=function(a){var b=this._trailString(a),c=e.extend({},a);return c.trailColor||(c.trailColor="#eee"),c.trailWidth||(c.trailWidth=c.strokeWidth),c.color=c.trailColor,c.strokeWidth=c.trailWidth,c.fill=null,this._createPathElement(b,c)},g.prototype._createPathElement=function(a,b){var c=document.createElementNS("http://www.w3.org/2000/svg","path");return c.setAttribute("d",a),c.setAttribute("stroke",b.color),c.setAttribute("stroke-width",b.strokeWidth),b.fill?c.setAttribute("fill",b.fill):c.setAttribute("fill-opacity","0"),c},g.prototype._createTextContainer=function(a,b){var c=document.createElement("div");c.className=a.text.className;var d=a.text.style;return d&&(a.text.autoStyleContainer&&(b.style.position="relative"),e.setStyles(c,d),d.color||(c.style.color=a.color)),this._initializeTextContainer(a,b,c),c},g.prototype._initializeTextContainer=function(a,b,c){},g.prototype._pathString=function(a){throw new Error("Override this function for each progress bar")},g.prototype._trailString=function(a){throw new Error("Override this function for each progress bar")}
10825,g.prototype._warnContainerAspectRatio=function(a){if(this.containerAspectRatio){var b=window.getComputedStyle(a,null),c=parseFloat(b.getPropertyValue("width"),10),d=parseFloat(b.getPropertyValue("height"),10);e.floatEquals(this.containerAspectRatio,c/d)||(console.warn("Incorrect aspect ratio of container","#"+a.id,"detected:",b.getPropertyValue("width")+"(width)","/",b.getPropertyValue("height")+"(height)","=",c/d),console.warn("Aspect ratio of should be",this.containerAspectRatio))}},b.exports=g},{"./path":5,"./utils":8}],8:[function(a,b,c){function d(a,b,c){a=a||{},b=b||{},c=c||!1;for(var e in b)if(b.hasOwnProperty(e)){var f=a[e],g=b[e];c&&l(f)&&l(g)?a[e]=d(f,g,c):a[e]=g}return a}function e(a,b){var c=a;for(var d in b)if(b.hasOwnProperty(d)){var e=b[d],f="\\{"+d+"\\}",g=new RegExp(f,"g");c=c.replace(g,e)}return c}function f(a,b,c){for(var d=a.style,e=0;e<p.length;++e){var f=p[e];d[f+h(b)]=c}d[b]=c}function g(a,b){m(b,function(b,c){null!==b&&void 0!==b&&(l(b)&&b.prefix===!0?f(a,c,b.value):a.style[c]=b)})}function h(a){return a.charAt(0).toUpperCase()+a.slice(1)}function i(a){return"string"==typeof a||a instanceof String}function j(a){return"function"==typeof a}function k(a){return"[object Array]"===Object.prototype.toString.call(a)}function l(a){if(k(a))return!1;var b=typeof a;return"object"===b&&!!a}function m(a,b){for(var c in a)if(a.hasOwnProperty(c)){var d=a[c];b(d,c)}}function n(a,b){return Math.abs(a-b)<q}function o(a){for(;a.firstChild;)a.removeChild(a.firstChild)}var p="Webkit Moz O ms".split(" "),q=.001;b.exports={extend:d,render:e,setStyle:f,setStyles:g,capitalize:h,isString:i,isFunction:j,isObject:l,forEachObject:m,floatEquals:n,removeChildren:o}},{}]},{},[4])(4)});
10826/*!
10827 * RELLAX v1.12.1
10828 * https://github.com/dixonandmoe/rellax
10829 */
10830(function(q,g){"function"===typeof define&&define.amd?define([],g):"object"===typeof module&&module.exports?module.exports=g():q.Rellax=g()})("undefined"!==typeof window?window:global,function(){var q=function(g,u){function C(){if(3===a.options.breakpoints.length&&Array.isArray(a.options.breakpoints)){var f=!0,c=!0,b;a.options.breakpoints.forEach(function(a){"number"!==typeof a&&(c=!1);null!==b&&a<b&&(f=!1);b=a});if(f&&c)return}a.options.breakpoints=[576,768,1201];console.warn("Rellax: You must pass an array of 3 numbers in ascending order to the breakpoints option. Defaults reverted")}
10831var a=Object.create(q.prototype),l=0,v=0,m=0,n=0,d=[],w=!0,A=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame||function(a){return setTimeout(a,1E3/60)},p=null,x=!1;try{var k=Object.defineProperty({},"passive",{get:function(){x=!0}});window.addEventListener("testPassive",null,k);window.removeEventListener("testPassive",null,k)}catch(f){}var D=window.cancelAnimationFrame||window.mozCancelAnimationFrame||
10832clearTimeout,E=window.transformProp||function(){var a=document.createElement("div");if(null===a.style.transform){var c=["Webkit","Moz","ms"],b;for(b in c)if(void 0!==a.style[c[b]+"Transform"])return c[b]+"Transform"}return"transform"}();a.options={speed:-2,verticalSpeed:null,horizontalSpeed:null,breakpoints:[576,768,1201],center:!1,wrapper:null,relativeToWrapper:!1,round:!0,vertical:!0,horizontal:!1,verticalScrollAxis:"y",horizontalScrollAxis:"x",callback:function(){}};u&&Object.keys(u).forEach(function(d){a.options[d]=
10833u[d]});u&&u.breakpoints&&C();g||(g=".rellax");k="string"===typeof g?document.querySelectorAll(g):[g];if(0<k.length){a.elems=k;if(a.options.wrapper&&!a.options.wrapper.nodeType)if(k=document.querySelector(a.options.wrapper))a.options.wrapper=k;else{console.warn("Rellax: The wrapper you're trying to use doesn't exist.");return}var F,B=function(){for(var f=0;f<d.length;f++)a.elems[f].style.cssText=d[f].style;d=[];v=window.innerHeight;n=window.innerWidth;f=a.options.breakpoints;F=n<f[0]?"xs":n>=f[0]&&n<
10834f[1]?"sm":n>=f[1]&&n<f[2]?"md":"lg";H();for(f=0;f<a.elems.length;f++){var c=void 0,b=a.elems[f],e=b.getAttribute("data-rellax-percentage"),y=b.getAttribute("data-rellax-speed"),t=b.getAttribute("data-rellax-xs-speed"),g=b.getAttribute("data-rellax-mobile-speed"),h=b.getAttribute("data-rellax-tablet-speed"),k=b.getAttribute("data-rellax-desktop-speed"),l=b.getAttribute("data-rellax-vert
vendor: 4,169 bytes, lines 10834-10842
10834ical-speed"),m=b.getAttribute("data-rellax-horizontal-speed"),p=b.getAttribute("data-rellax-vertical-scroll-axis"),
10835q=b.getAttribute("data-rellax-horizontal-scroll-axis"),u=b.getAttribute("data-rellax-zindex")||0,x=b.getAttribute("data-rellax-min"),A=b.getAttribute("data-rellax-max"),C=b.getAttribute("data-rellax-min-x"),D=b.getAttribute("data-rellax-max-x"),E=b.getAttribute("data-rellax-min-y"),L=b.getAttribute("data-rellax-max-y"),r=!0;t||g||h||k?c={xs:t,sm:g,md:h,lg:k}:r=!1;t=a.options.wrapper?a.options.wrapper.scrollTop:window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop;a.options.relativeToWrapper&&
10836(t=(window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop)-a.options.wrapper.offsetTop);var z=a.options.vertical?e||a.options.center?t:0:0,I=a.options.horizontal?e||a.options.center?a.options.wrapper?a.options.wrapper.scrollLeft:window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft:0:0;t=z+b.getBoundingClientRect().top;g=b.clientHeight||b.offsetHeight||b.scrollHeight;h=I+b.getBoundingClientRect().left;k=b.clientWidth||b.offsetWidth||b.scrollWidth;
10837z=e?e:(z-t+v)/(g+v);e=e?e:(I-h+n)/(k+n);a.options.center&&(z=e=.5);c=r&&null!==c[F]?Number(c[F]):y?y:a.options.speed;l=l?l:a.options.verticalSpeed;m=m?m:a.options.horizontalSpeed;p=p?p:a.options.verticalScrollAxis;q=q?q:a.options.horizontalScrollAxis;y=J(e,z,c,l,m);b=b.style.cssText;r="";if(e=/transform\s*:/i.exec(b))r=b.slice(e.index),r=(e=r.indexOf(";"))?" "+r.slice(11,e).replace(/\s/g,""):" "+r.slice(11).replace(/\s/g,"");d.push({baseX:y.x,baseY:y.y,top:t,left:h,height:g,width:k,speed:c,verticalSpeed:l,
10838horizontalSpeed:m,verticalScrollAxis:p,horizontalScrollAxis:q,style:b,transform:r,zindex:u,min:x,max:A,minX:C,maxX:D,minY:E,maxY:L})}K();w&&(window.addEventListener("resize",B),w=!1,G())},H=function(){var d=l,c=m;l=a.options.wrapper?a.options.wrapper.scrollTop:(document.documentElement||document.body.parentNode||document.body).scrollTop||window.pageYOffset;m=a.options.wrapper?a.options.wrapper.scrollLeft:(document.documentElement||document.body.parentNode||document.body).scrollLeft||window.pageXOffset;
10839a.options.relativeToWrapper&&(l=((document.documentElement||document.body.parentNode||document.body).scrollTop||window.pageYOffset)-a.options.wrapper.offsetTop);return d!=l&&a.options.vertical||c!=m&&a.options.horizontal?!0:!1},J=function(d,c,b,e,g){var f={};d=100*(g?g:b)*(1-d);c=100*(e?e:b)*(1-c);f.x=a.options.round?Math.round(d):Math.round(100*d)/100;f.y=a.options.round?Math.round(c):Math.round(100*c)/100;return f},h=function(){window.removeEventListener("resize",h);window.removeEventListener("orientationchange",
10840h);(a.options.wrapper?a.options.wrapper:window).removeEventListener("scroll",h);(a.options.wrapper?a.options.wrapper:document).removeEventListener("touchmove",h);p=A(G)},G=function(){H()&&!1===w?(K(),p=A(G)):(p=null,window.addEventListener("resize",h),window.addEventListener("orientationchange",h),(a.options.wrapper?a.options.wrapper:window).addEventListener("scroll",h,x?{passive:!0}:!1),(a.options.wrapper?a.options.wrapper:document).addEventListener("touchmove",h,x?{passive:!0}:!1))},K=function(){for(var f,
10841c=0;c<a.elems.length;c++){var b=d[c].verticalScrollAxis.toLowerCase(),e=d[c].horizontalScrollAxis.toLowerCase();f=-1!=b.indexOf("x")?l:0;b=-1!=b.indexOf("y")?l:0;var g=-1!=e.indexOf("x")?m:0;e=-1!=e.indexOf("y")?m:0;f=J((f+g-d[c].left+n)/(d[c].width+n),(b+e-d[c].top+v)/(d[c].height+v),d[c].speed,d[c].verticalSpeed,d[c].horizontalSpeed);e=f.y-d[c].baseY;b=f.x-d[c].baseX;null!==d[c].min&&(a.options.vertical&&!a.options.horizontal&&(e=e<=d[c].min?d[c].min:e),a.options.horizontal&&!a.options.vertical&&
10842(b=b<=d[c].min?d[c].min:b));null!=d[c].minY&&(e=e<=d[c].minY?d[c].minY:e);null!=d[c].minX&&(b=b<=d[c].minX?d[c].minX:b);null!==d[c].max&&(a.options.vertical&&!a.options.horizontal&&(e=e>=d[c].max?d[c].max:e),a.options.horizontal&&!a.options.vertical&&(b=b>=d[c].max?d[c].max:b));null!=d[c].maxY&&(e=e>=d[c].maxY?d[c].maxY:e);null!=d[c].maxX&&(b=b>=d[c].maxX?d[c].maxX:b);a.elems[c].style[E]="translate3d("+(a.options.horizontal?b:"0")+"px,"+(a.options.vertical?e:"
108420")+"px,"+d[c].zindex+"px) "+d[c].transform}a.options.callback(f)};
10843a.destroy=function(){for(var f=0;f<a.elems.length;f++)a.elems[f].style.cssText=d[f].style;w||(window.removeEventListener("resize",B),w=!0);D(p);p=null};B();a.refresh=B;return a}console.warn("Rellax: The elements you're trying to select don't exist.")};return q});
10844
10845/*!
10846 *  replaceme.js - text rotating component in vanilla JavaScript
10847 *  @version 1.1.0
10848 *  @author Adrian Klimek
10849 *  @link https://adrianklimek.github.io/replaceme/
10850 *  @copyright Addrian Klimek 2016
10851 *  @license MIT
10852 */
10853!function(a,b){"use strict";function c(a,b){for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c]);return a}function d(){"function"==typeof b&&b.fn.extend({ReplaceMe:function(a){return this.each(function(){new e(this,a)})}})}function e(a,b){var d={animation:"animated fadeIn",speed:2e3,separator:",",hoverStop:!1,clickChange:!1,loopCount:"infinite",autoRun:!0,onInit:!1,onChange:!1,onComplete:!1};if("object"==typeof b?this.options=c(d,b):this.options=d,"undefined"==typeof a)throw new Error('ReplaceMe [constructor]: "element" parameter is required');if("object"==typeof a)this.element=a;else{if("string"!=typeof a)throw new Error('ReplaceMe [constructor]: wrong "element" parameter');this.element=document.querySelector(a)}this.init()}e.prototype.init=function(){"function"==typeof this.options.onInit&&this.options.onInit(),this.words=this.escapeHTML(this.element.innerHTML).split(this.options.separator),this.count=this.words.length,this.position=this.loopCount=0,this.running=!1,this.bindAll(),this.options.autoRun===!0&&this.start()},e.prototype.bindAll=function(){this.options.hoverStop===!0&&(this.element.addEventListener("mouseover",this.pause.bind(this)),this.element.addEventListener("mouseout",this.start.bind(this))),this.options.clickChange===!0&&this.element.addEventListener("click",this.change.bind(this))},e.prototype.changeAnimation=function(){this.change(),this.loop=setTimeout(this.changeAnimation.bind(this),this.options.speed)},e.prototype.start=function(){this.running!==!0&&(this.running=!0,this.changeWord(this.words[this.position]),this.position++),this.loop=setTimeout(this.changeAnimation.bind(this),this.options.speed)},e.prototype.change=function(){return this.position>this.count-1&&(this.position=0,this.loopCount++,this.loopCount>=this.options.loopCount)?void this.stop():(this.changeWord(this.words[this.position]),this.position++,void("function"==typeof this.options.onChange&&this.options.onChange()))},e.prototype.stop=function(){this.running=!1,this.position=this.loopCount=0,this.pause(),"function"==typeof this.options.onComplete&&this.options.onComplete()},e.prototype.pause=function(){clearTimeout(this.loop)},e.prototype.changeWord=function(a){this.element.innerHTML='<span class="'+this.options.animation+'" style="display:inline-block;">'+a+"</span>"},e.prototype.escapeHTML=function(a){var b=/<\/?\w+\s*[^>]*>/g;return b.test(a)===!0?a.replace(b,""):a},a.ReplaceMe=e,d()}(window,window.jQuery);
10854/*!
10855 * scrollCue.js v2.0.0
10856 * https://github.com/prjct-samwest/scrollCue
10857 */
10858var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.arrayIteratorImpl=function(a){var b=0;return function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}}};$jscomp.arrayIterator=function(a){return{next:$jscomp.arrayIteratorImpl(a)}};$jscomp.ASSUME_ES5=!1;$jscomp.ASSUME_NO_NATIVE_MAP=!1;$jscomp.ASSUME_NO_NATIVE_SET=!1;$jscomp.SIMPLE_FROUND_POLYFILL=!1;$jscomp.ISOLATE_POLYFILLS=!1;
10859$jscomp.defineProperty=$jscomp.ASSUME_ES5||"function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,e){if(a==Array.prototype||a==Object.prototype)return a;a[b]=e.value;return a};$jscomp.getGlobal=function(a){a=["object"==typeof globalThis&&globalThis,a,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof global&&global];for(var b=0;b<a.length;++b){var e=a[b];if(e&&e.Math==Math)return e}throw Error("Cannot find global object");};$jscomp.global=$jscomp.getGlobal(this);
10860$jscomp.IS_SYMBOL_NATIVE="function"===typeof Symbol&&"symbol"===typeof Symbol("x");$jscomp.TRUST_ES6_POLYFILLS=!$jscomp.ISOLATE_POLYFILLS||$jscomp.IS_SYMBOL_NATIVE;$jscomp.polyfills={};$jscomp.propertyToPolyfillSymbol={};$jscomp.POLYFILL_PREFIX="$jscp$";var $jscomp$lookupPolyfilledValue=function(a,b){var e=$jscomp.propertyToPolyfillSymbol[b];if(null==e)return a[b];e=a[e];return void 0!==e?e:a[b]};
10861$jscomp.polyfill=function(a,b,e,f){b&&($jscomp.ISOLATE_POLYFILLS?$jscomp.polyfillIsolated(a,b,e,f):$jscomp.polyfillUnisolated(a,b,e,f))};$jscomp.polyfillUnisolated=function(a,b,e,f){e=$jscomp.global;a=a.split(".");for(f=0;f<a.length-1;f++){var h=a[f];h in e||(e[h]={});e=e[h]}a=a[a.length-1];f=e[a];b=b(f);b!=f&&null!=b&&$jscomp.defineProperty(e,a,{configurable:!0,writable:!0,value:b})};
10862$jscomp.polyfillIsolated=function(a,b,e,f){var h=a.split(".");a=1===h.length;f=h[0];
vendor: 5,894 bytes, lines 10862-10875
10862f=!a&&f in $jscomp.polyfills?$jscomp.polyfills:$jscomp.global;for(var k=0;k<h.length-1;k++){var l=h[k];l in f||(f[l]={});f=f[l]}h=h[h.length-1];e=$jscomp.IS_SYMBOL_NATIVE&&"es6"===e?f[h]:null;b=b(e);null!=b&&(a?$jscomp.defineProperty($jscomp.polyfills,h,{configurable:!0,writable:!0,value:b}):b!==e&&($jscomp.propertyToPolyfillSymbol[h]=$jscomp.IS_SYMBOL_NATIVE?$jscomp.global.Symbol(h):$jscomp.POLYFILL_PREFIX+h,h=$jscomp.propertyToPolyfillSymbol[h],
10863$jscomp.defineProperty(f,h,{configurable:!0,writable:!0,value:b})))};$jscomp.initSymbol=function(){};
10864$jscomp.polyfill("Symbol",function(a){if(a)return a;var b=function(a,b){this.$jscomp$symbol$id_=a;$jscomp.defineProperty(this,"description",{configurable:!0,writable:!0,value:b})};b.prototype.toString=function(){return this.$jscomp$symbol$id_};var e=0,f=function(a){if(this instanceof f)throw new TypeError("Symbol is not a constructor");return new b("jscomp_symbol_"+(a||"")+"_"+e++,a)};return f},"es6","es3");$jscomp.initSymbolIterator=function(){};
10865$jscomp.polyfill("Symbol.iterator",function(a){if(a)return a;a=Symbol("Symbol.iterator");for(var b="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),e=0;e<b.length;e++){var f=$jscomp.global[b[e]];"function"===typeof f&&"function"!=typeof f.prototype[a]&&$jscomp.defineProperty(f.prototype,a,{configurable:!0,writable:!0,value:function(){return $jscomp.iteratorPrototype($jscomp.arrayIteratorImpl(this))}})}return a},"es6",
10866"es3");$jscomp.initSymbolAsyncIterator=function(){};$jscomp.iteratorPrototype=function(a){a={next:a};a[Symbol.iterator]=function(){return this};return a};$jscomp.iteratorFromArray=function(a,b){a instanceof String&&(a+="");var e=0,f={next:function(){if(e<a.length){var h=e++;return{value:b(h,a[h]),done:!1}}f.next=function(){return{done:!0,value:void 0}};return f.next()}};f[Symbol.iterator]=function(){return f};return f};
10867$jscomp.polyfill("Array.prototype.keys",function(a){return a?a:function(){return $jscomp.iteratorFromArray(this,function(a){return a})}},"es6","es3");
10868var scrollCue=function(){var a={},b,e,f=0,h=!0,k=!0,l=!1,n=!1,m,p={duration:600,interval:-.7,percentage:.75,enable:!0,docSlider:!1,pageChangeReset:!1};a={setEvents:function(g){var c=function(){h&&(requestAnimationFrame(function(){h=!0;k&&(a.setQuery(),a.runQuery())}),h=!1)};k&&!g&&window.addEventListener("load",a.runQuery);window.addEventListener("scroll",c);if(l){g=docSlider.getElements().pages;for(var d=0;d<g.length;d++)g[d].addEventListener("scroll",function(a){var g=docSlider.getCurrentIndex()+
10869"";a=a.target.getAttribute("data-ds-index");if(g!==a)return!1;docSlider._getWheelEnable()&&c()})}window.addEventListener("resize",function(){0<f&&clearTimeout(f);f=setTimeout(function(){k&&(a.searchElements(),a.setQuery(),a.runQuery())},200)})},setOptions:function(g,c){var d={};if("undefined"!==typeof g)return Object.keys(g).forEach(function(b){"[object Object]"===Object.prototype.toString.call(g[b])?d[b]=a.setOptions(g[b],c[b]):(d[b]=g[b],"undefined"!==typeof c&&"undefined"!==typeof c[b]&&(d[b]=
10870c[b]))}),d},searchElements:function(){b=[];var g=document.querySelectorAll("[data-cues]:not([data-disabled])");for(var c=0;c<g.length;c++){for(var d=g[c],e=0;e<d.children.length;e++){var f=d.children[e];a.setAttrPtoC(f,"data-cue",d,"data-cues","");a.setAttrPtoC(f,"data-duration",d,"data-duration",!1);a.setAttrPtoC(f,"data-interval",d,"data-interval",!1);a.setAttrPtoC(f,"data-sort",d,"data-sort",!1);a.setAttrPtoC(f,"data-addClass",d,"data-addClass",!1);a.setAttrPtoC(f,"data-group",d,"data-group",!1);
10871a.setAttrPtoC(f,"data-delay",d,"data-delay",!1)}d.setAttribute("data-disabled","true")}g=document.querySelectorAll('[data-cue]:not([data-show="true"])');for(c=0;c<g.length;c++)d=g[c],b.push({elm:d,cue:a.getAttr(d,"data-cue","fadeIn"),duration:Number(a.getAttr(d,"data-duration",m.duration)),interval:Number(a.getAttr(d,"data-interval",m.interval)),order:a.getOrderNumber(d),sort:a.getAttr(d,"data-sort",null),addClass:a.getAttr(d,"data-addClass",null),group:a.getAttr(d,"data-group",null),delay:Number(a.getAttr(d,
10872"data-delay",0))});if(l)for(g=docSlider.getElements().pages.length,c=0;c<g;c++)for(d=document.querySelectorAll('[data-ds-index="'+c+'"] [data-cue]:not([data-scpage])'),e=0;e<d.length;e++)d[e].setAttribute("data-scpage",c)},sortElements:function(){for(var a=arguments[0],c=[].slice.call(arguments).slice(1),d={$jscomp$loop$prop$i$4:0};d.$jscomp$loop$prop$i$4<c.length;d={$jscomp$loop$prop$i$4:d.$jscomp$loop$prop$i$4},d.$jscomp$loop$prop$i$4++)a.sort(function(a){return function(g,d){var b="undefined"===
10873typeof c[a.$jscomp$loop$prop$i$4][1]?!0:c[a.$jscomp$loop$prop$i$4][1],e=c[a.$jscomp$loop$prop$i$4][0];return g[e]>d[e]?b?1:-1:g[e]<d[e]?b?-1:1:0}}(d))},randElements:function(a){for(var g=a.length-1;0<g;g--){var d=Math.floor(Math.random()*(g+1)),b=a[g];a[g]=a[d];a[d]=b}return a},setDurationValue:function(a,c,d){if("undefined"===typeof c)return a;c=c.duration;a=-1===(d+"").indexOf(".")?a+c+d:a+c+c*d;return 0>a?0:a},getOrderNumber:function(a){return a.hasAttribute("data-order")?(a=Number(a.getAttribute("data-order")),
108740<=a?a:Math.pow(2,53)-1+a):Math.pow(2,52)-1},setAttrPtoC:function(a,c,d,b,e){d.hasAttribute(b)?a.hasAttribute(c)||a.setAttribute(c,d.getAttribute(b)):!1!==e&&a.setAttribute(c,e)},getAttr:function(a,c,d){return a.hasAttribute(c)?a.getAttribute(c):d},getOffsetTop:function(a){return a.getBoundingClientRect().top+(window.pageYOffset||document.documentElement.scrollTop)},setClassNames:function(a,c){if(c){c=c.split(" ");for(var d=0;d<c.length;d++)a.classList.add(c[d])}},setQuery:function(){e={};for(var g=
108750;g<b.length;g++){var c=b[g],d=c.group?c.group:"$"+a.getOffsetTop(c.elm);if(!c.elm.hasAttribute("data-show")){if(l){var f=c.elm.getAttribute("data-scpage"),h=docSlider.getCurrentIndex()+"";if(f!==h&&null!==f)continue}"undefined"===typeof e[d]&&(e[d]=[]);
10875e[d].push(c)}}},runQuery:function(){for(var b=Object.keys(e),c={},d=0;d<b.length;c={$jscomp$loop$prop$elms$6:c.$jscomp$loop$prop$elms$6,$jscomp$loop$prop$interval$7:c.$jscomp$loop$prop$interval$7},d++)if(c.$jscomp$loop$prop$elms$6=e[b[d]],a.isElementIn(c.$jscomp$loop$prop$elms$6[0].elm)){"reverse"===
10876c.$jscomp$loop$prop$elms$6[0].sort?c.$jscomp$loop$prop$elms$6.reverse():"random"===c.$jscomp$loop$prop$elms$6[0].sort&&a.randElements(c.$jscomp$loop$prop$elms$6);a.sortElements(c.$jscomp$loop$prop$elms$6,["order"]);for(var f=c.$jscomp$loop$prop$interval$7=0;f<c.$jscomp$loop$prop$elms$6.length;f++)(function(c){return function(b){c.$jscomp$loop$prop$elms$6[b].elm.setAttribute("data-show","true");a.setClassNames(c.$jscomp$loop$prop$elms$6[b].elm,c.$jscomp$loop$prop$elms$6[b].addClass);c.$jscomp$loop$prop$interval$7=
10877a.setDurationValue(c.$jscomp$loop$prop$interval$7,c.$jscomp$loop$prop$elms$6[b-1],c.$jscomp$loop$prop$elms$6[b].interval);c.$jscomp$loop$prop$elms$6[b].elm.style.animationName=c.$jscomp$loop$prop$elms$6[b].cue;c.$jscomp$loop$prop$elms$6[b].elm.style.animationDuration=c.$jscomp$loop$prop$elms$6[b].duration+"ms";c.$jscomp$loop$prop$elms$6[b].elm.style.animationTimingFunction="ease";c.$jscomp$loop$prop$elms$6[b].elm.style.animationDelay=c.$jscomp$loop$prop$interval$7+c.$jscomp$loop$prop$elms$6[b].delay+
10878"ms";c.$jscomp$loop$prop$elms$6[b].elm.style.animationDirection="normal";c.$jscomp$loop$prop$elms$6[b].elm.style.animationFillMode="both"}})(c)(f);delete e[b[d]]}},isElementIn:function(b){var c=b.hasAttribute("data-scpage")?a.isScrollEndWithDocSlider:a.isScrollEnd;return window.pageYOffset>a.getOffsetTop(b)-window.innerHeight*m.percentage||c()},isScrollEnd:function(){var a=window.document.documentElement;return(window.document.body.scrollTop||a.scrollTop)>=a.scrollHeight-a.clientHeight},isScrollEndWithDocSlider:function(){var a=
10879docSlider.getCurrentPage();return a.scrollTop>=a.scrollHeight-a.clientHeight}};return{init:function(b){m=a.setOptions(p,b);k=m.enable;l=m.docSlider;n=m.pageChangeReset;l||(a.setEvents(),a.searchElements(),a.setQuery())},update:function(){k&&(a.searchElements(),a.setQuery(),a.runQuery())},enable:function(a){k="undefined"===typeof a?!k:a;scrollCue.update()},_hasDocSlider:function(){return l},_hasPageChangeReset:function(){return n},_initWithDocSlider:function(b){a.setEvents(b);a.searchElements();a.setQuery()},
10880_updateWithDocSlider:function(){k&&(a.setQuery(),a.runQuery())},_searchElements:function(){a.searchElements()}}}();
10881
10882/*!
10883 * Smooth Scroll behavior polyfill
10884 * https://iamdustan.github.io/smoothscroll
10885 */
10886'use strict';
10887
10888// polyfill
10889function polyfill() {
10890  // aliases
10891  var w = window;
10892  var d = document;
10893
10894  // return if scroll behavior is supported and polyfill is not forced
10895  if (
10896    'scrollBehavior' in d.documentElement.style &&
10897    w.__forceSmoothScrollPolyfill__ !== true
10898  ) {
10899    return;
10900  }
10901
10902  // globals
10903  var Element = w.HTMLElement || w.Element;
10904  var SCROLL_TIME = 468;
10905
10906  // object gathering original scroll methods
10907  var original = {
10908    scroll: w.scroll || w.scrollTo,
10909    scrollBy: w.scrollBy,
10910    elementScroll: Element.prototype.scroll || scrollElement,
10911    scrollIntoView: Element.prototype.scrollIntoView
10912  };
10913
10914  // define timing method
10915  var now =
10916    w.performance && w.performance.now
10917      ? w.performance.now.bind(w.performance)
10918      : Date.now;
10919
10920  /**
10921   * indicates if a the current browser is made by Microsoft
10922   * @method isMicrosoftBrowser
10923   * @param {String} userAgent
10924   * @returns {Boolean}
10925   */
10926  function isMicrosoftBrowser(userAgent) {
10927    var userAgentPatterns = ['MSIE ', 'Trident/', 'Edge/'];
10928
10929    return new RegExp(userAgentPatterns.join('|')).test(userAgent);
10930  }
10931
10932  /*
10933   * IE has rounding bug rounding down clientHeight and clientWidth and
10934   * rounding up scrollHeight and scrollWidth causing false positives
10935   * on hasScrollableSpace
10936   */
10937  var ROUNDING_TOLERANCE = isMicrosoftBrowser(w.navigator.userAgent) ? 1 : 0;
10938
10939  /**
10940   * changes scroll position inside an element
10941   * @method scrollElement
10942   * @param {Number} x
10943   * @param {Number} y
10944   * @returns {undefined}
10945   */
10946  function scrollElement(x, y) {
10947    this.scrollLeft = x;
10948    this.scrollTop = y;
10949  }
10950
10951  /**
10952   * returns result of applying ease math function to a number
10953   * @method ease
10954   * @param {Number} k
10955   * @returns {Number}
10956   */
10957  function ease(k) {
10958    return 0.5 * (1 - Math.cos(Math.PI * k));
10959  }
10960
10961  /**
10962   * indicates if a smooth behavior should be applied
10963   * @method shouldBailOut
10964   * @param {Number|Object} firstArg
10965   * @returns {Boolean}
10966   */
10967  function shouldBailOut(firstArg) {
10968    if (
10969      firstArg === null ||
10970      typeof firstArg !== 'object' ||
10971      firstArg.behavior === undefined ||
10972      firstArg.behavior === 'auto' ||
10973      firstArg.behavior === 'instant'
10974    ) {
10975      // first argument is not an object/null
10976      // or behavior is auto, instant or undefined
10977      return true;
10978    }
10979
10980    if (typeof firstArg === 'object' && firstArg.behavior === 'smooth') {
10981      // first argument is an object and behavior is smooth
10982      return false;
vendor: 9,641 bytes, lines 10983-11321
10983    }
10984
10985    // throw error when behavior is not supported
10986    throw new TypeError(
10987      'behavior member of ScrollOptions ' +
10988        firstArg.behavior +
10989        ' is not a valid value for enumeration ScrollBehavior.'
10990    );
10991  }
10992
10993  /**
10994   * indicates if an element has scrollable space in the provided axis
10995   * @method hasScrollableSpace
10996   * @param {Node} el
10997   * @param {String} axis
10998   * @returns {Boolean}
10999   */
11000  function hasScrollableSpace(el, axis) {
11001    if (axis === 'Y') {
11002      return el.clientHeight + ROUNDING_TOLERANCE < el.scrollHeight;
11003    }
11004
11005    if (axis === 'X') {
11006      return el.clientWidth + ROUNDING_TOLERANCE < el.scrollWidth;
11007    }
11008  }
11009
11010  /**
11011   * indicates if an element has a scrollable overflow property in the axis
11012   * @method canOverflow
11013   * @param {Node} el
11014   * @param {String} axis
11015   * @returns {Boolean}
11016   */
11017  function canOverflow(el, axis) {
11018    var overflowValue = w.getComputedStyle(el, null)['overflow' + axis];
11019
11020    return overflowValue === 'auto' || overflowValue === 'scroll';
11021  }
11022
11023  /**
11024   * indicates if an element can be scrolled in either axis
11025   * @method isScrollable
11026   * @param {Node} el
11027   * @param {String} axis
11028   * @returns {Boolean}
11029   */
11030  function isScrollable(el) {
11031    var isScrollableY = hasScrollableSpace(el, 'Y') && canOverflow(el, 'Y');
11032    var isScrollableX = hasScrollableSpace(el, 'X') && canOverflow(el, 'X');
11033
11034    return isScrollableY || isScrollableX;
11035  }
11036
11037  /**
11038   * finds scrollable parent of an element
11039   * @method findScrollableParent
11040   * @param {Node} el
11041   * @returns {Node} el
11042   */
11043  function findScrollableParent(el) {
11044    while (el !== d.body && isScrollable(el) === false) {
11045      el = el.parentNode || el.host;
11046    }
11047
11048    return el;
11049  }
11050
11051  /**
11052   * self invoked function that, given a context, steps through scrolling
11053   * @method step
11054   * @param {Object} context
11055   * @returns {undefined}
11056   */
11057  function step(context) {
11058    var time = now();
11059    var value;
11060    var currentX;
11061    var currentY;
11062    var elapsed = (time - context.startTime) / SCROLL_TIME;
11063
11064    // avoid elapsed times higher than one
11065    elapsed = elapsed > 1 ? 1 : elapsed;
11066
11067    // apply easing to elapsed time
11068    value = ease(elapsed);
11069
11070    currentX = context.startX + (context.x - context.startX) * value;
11071    currentY = context.startY + (context.y - context.startY) * value;
11072
11073    context.method.call(context.scrollable, currentX, currentY);
11074
11075    // scroll more if we have not reached our destination
11076    if (currentX !== context.x || currentY !== context.y) {
11077      w.requestAnimationFrame(step.bind(w, context));
11078    }
11079  }
11080
11081  /**
11082   * scrolls window or element with a smooth behavior
11083   * @method smoothScroll
11084   * @param {Object|Node} el
11085   * @param {Number} x
11086   * @param {Number} y
11087   * @returns {undefined}
11088   */
11089  function smoothScroll(el, x, y) {
11090    var scrollable;
11091    var startX;
11092    var startY;
11093    var method;
11094    var startTime = now();
11095
11096    // define scroll context
11097    if (el === d.body) {
11098      scrollable = w;
11099      startX = w.scrollX || w.pageXOffset;
11100      startY = w.scrollY || w.pageYOffset;
11101      method = original.scroll;
11102    } else {
11103      scrollable = el;
11104      startX = el.scrollLeft;
11105      startY = el.scrollTop;
11106      method = scrollElement;
11107    }
11108
11109    // scroll looping over a frame
11110    step({
11111      scrollable: scrollable,
11112      method: method,
11113      startTime: startTime,
11114      startX: startX,
11115      startY: startY,
11116      x: x,
11117      y: y
11118    });
11119  }
11120
11121  // ORIGINAL METHODS OVERRIDES
11122  // w.scroll and w.scrollTo
11123  w.scroll = w.scrollTo = function() {
11124    // avoid action when no arguments are passed
11125    if (arguments[0] === undefined) {
11126      return;
11127    }
11128
11129    // avoid smooth behavior if not required
11130    if (shouldBailOut(arguments[0]) === true) {
11131      original.scroll.call(
11132        w,
11133        arguments[0].left !== undefined
11134          ? arguments[0].left
11135          : typeof arguments[0] !== 'object'
11136            ? arguments[0]
11137            : w.scrollX || w.pageXOffset,
11138        // use top prop, second argument if present or fallback to scrollY
11139        arguments[0].top !== undefined
11140          ? arguments[0].top
11141          : arguments[1] !== undefined
11142            ? arguments[1]
11143            : w.scrollY || w.pageYOffset
11144      );
11145
11146      return;
11147    }
11148
11149    // LET THE SMOOTHNESS BEGIN!
11150    smoothScroll.call(
11151      w,
11152      d.body,
11153      arguments[0].left !== undefined
11154        ? ~~arguments[0].left
11155        : w.scrollX || w.pageXOffset,
11156      arguments[0].top !== undefined
11157        ? ~~arguments[0].top
11158        : w.scrollY || w.pageYOffset
11159    );
11160  };
11161
11162  // w.scrollBy
11163  w.scrollBy = function() {
11164    // avoid action when no arguments are passed
11165    if (arguments[0] === undefined) {
11166      return;
11167    }
11168
11169    // avoid smooth behavior if not required
11170    if (shouldBailOut(arguments[0])) {
11171      original.scrollBy.call(
11172        w,
11173        arguments[0].left !== undefined
11174          ? arguments[0].left
11175          : typeof arguments[0] !== 'object' ? arguments[0] : 0,
11176        arguments[0].top !== undefined
11177          ? arguments[0].top
11178          : arguments[1] !== undefined ? arguments[1] : 0
11179      );
11180
11181      return;
11182    }
11183
11184    // LET THE SMOOTHNESS BEGIN!
11185    smoothScroll.call(
11186      w,
11187      d.body,
11188      ~~arguments[0].left + (w.scrollX || w.pageXOffset),
11189      ~~arguments[0].top + (w.scrollY || w.pageYOffset)
11190    );
11191  };
11192
11193  // Element.prototype.scroll and Element.prototype.scrollTo
11194  Element.prototype.scroll = Element.prototype.scrollTo = function() {
11195    // avoid action when no arguments are passed
11196    if (arguments[0] === undefined) {
11197      return;
11198    }
11199
11200    // avoid smooth behavior if not required
11201    if (shouldBailOut(arguments[0]) === true) {
11202      // if one number is passed, throw error to match Firefox implementation
11203      if (typeof arguments[0] === 'number' && arguments[1] === undefined) {
11204        throw new SyntaxError('Value could not be converted');
11205      }
11206
11207      original.elementScroll.call(
11208        this,
11209        // use left prop, first number argument or fallback to scrollLeft
11210        arguments[0].left !== undefined
11211          ? ~~arguments[0].left
11212          : typeof arguments[0] !== 'object' ? ~~arguments[0] : this.scrollLeft,
11213        // use top prop, second argument or fallback to scrollTop
11214        arguments[0].top !== undefined
11215          ? ~~arguments[0].top
11216          : arguments[1] !== undefined ? ~~arguments[1] : this.scrollTop
11217      );
11218
11219      return;
11220    }
11221
11222    var left = arguments[0].left;
11223    var top = arguments[0].top;
11224
11225    // LET THE SMOOTHNESS BEGIN!
11226    smoothScroll.call(
11227      this,
11228      this,
11229      typeof left === 'undefined' ? this.scrollLeft : ~~left,
11230      typeof top === 'undefined' ? this.scrollTop : ~~top
11231    );
11232  };
11233
11234  // Element.prototype.scrollBy
11235  Element.prototype.scrollBy = function() {
11236    // avoid action when no arguments are passed
11237    if (arguments[0] === undefined) {
11238      return;
11239    }
11240
11241    // avoid smooth behavior if not required
11242    if (shouldBailOut(arguments[0]) === true) {
11243      original.elementScroll.call(
11244        this,
11245        arguments[0].left !== undefined
11246          ? ~~arguments[0].left + this.scrollLeft
11247          : ~~arguments[0] + this.scrollLeft,
11248        arguments[0].top !== undefined
11249          ? ~~arguments[0].top + this.scrollTop
11250          : ~~arguments[1] + this.scrollTop
11251      );
11252
11253      return;
11254    }
11255
11256    this.scroll({
11257      left: ~~arguments[0].left + this.scrollLeft,
11258      top: ~~arguments[0].top + this.scrollTop,
11259      behavior: arguments[0].behavior
11260    });
11261  };
11262
11263  // Element.prototype.scrollIntoView
11264  Element.prototype.scrollIntoView = function() {
11265    // avoid smooth behavior if not required
11266    if (shouldBailOut(arguments[0]) === true) {
11267      original.scrollIntoView.call(
11268        this,
11269        arguments[0] === undefined ? true : arguments[0]
11270      );
11271
11272      return;
11273    }
11274
11275    // LET THE SMOOTHNESS BEGIN!
11276    var scrollableParent = findScrollableParent(this);
11277    var parentRects = scrollableParent.getBoundingClientRect();
11278    var clientRects = this.getBoundingClientRect();
11279
11280    if (scrollableParent !== d.body) {
11281      // reveal element inside parent
11282      smoothScroll.call(
11283        this,
11284        scrollableParent,
11285        scrollableParent.scrollLeft + clientRects.left - parentRects.left,
11286        scrollableParent.scrollTop + clientRects.top - parentRects.top
11287      );
11288
11289      // reveal parent in viewport unless is fixed
11290      if (w.getComputedStyle(scrollableParent).position !== 'fixed') {
11291        w.scrollBy({
11292          left: parentRects.left,
11293          top: parentRects.top,
11294          behavior: 'smooth'
11295        });
11296      }
11297    } else {
11298      // reveal element in viewport
11299      w.scrollBy({
11300        left: clientRects.left,
11301        top: clientRects.top,
11302        behavior: 'smooth'
11303      });
11304    }
11305  };
11306}
11307
11308if (typeof exports === 'object' && typeof module !== 'undefined') {
11309  // commonjs
11310  module.exports = { polyfill: polyfill };
11311} else {
11312  // global
11313  polyfill();
11314}
11315
11316/*!
11317 * SVGInject v1.2.3
11318 * https://github.com/iconfu/svg-inject
11319 */
11320!function(o,l){var r,a,s="createElement",g="getElementsByTagName",b="length",E="style",d="title",y="undefined",k="setAttribute",w="getAttribute",x=null,A="__svgInject",C="--inject-",S=new RegExp(C+"\\d+","g"),I="LOAD_FAIL",t="SVG_NOT_SUPPORTED",L="SVG_INVALID",v=["src","alt","onload","onerror"],j=l[s]("a"),G=typeof SVGRect!=y,f={useCache:!0,copyAttributes:!0,makeIdsUnique:!0},N={clipPath:["clip-path"],"color-profile":x,cursor:x,filter:x,linearGradient:["fill","stroke"],marker:["marker",
11321"marker-end","marker-mid","marker-start"],mask:x,pattern:["fill","stroke"],radialGradient:["fill","stroke"]},u=1,c=2,O=1;function T(e){return(r=r||new XMLSerializer).serializeToString(e)}
11321function P(e,r){var t,n,i,o,a=C+O++,f=/url\("?#([a-zA-Z][\w:.-]*)"?\)/g,u=e.querySelectorAll("[id]"),c=r?[]:x,l={},s=[],d=!1;if(u[b]){for(i=0;i<u[b];i++)(n=u[i].localName)in N&&(l[n]=1);for(n in l)(N[n]||[n]).forEach(function(e){s.indexOf(e)<0&&s.push(e)});s[b]&&s.push(E);var v,p,m,h=e[g]("*"),y=e;for(i=-1;y!=x;
11322){if(y.localName==E)(m=(p=y.textContent)&&p.replace(f,function(e,r){return c&&(c[r]=1),"url(#"+r+a+")"}))!==p&&(y.textContent=m);else if(y.hasAttributes()){for(o=0;o<s[b];o++)v=s[o],(m=(p=y[w](v))&&p.replace(f,function(e,r){return c&&(c[r]=1),"url(#"+r+a+")"}))!==p&&y[k](v,m);["xlink:href","href"].forEach(function(e){var r=y[w](e);/^\s*#/.test(r)&&(r=r.trim(),y[k](e,r+a),c&&(c[r.substring(1)]=1))})}y=h[++i]}for(i=0;i<u[b];i++)t=u[i],c&&!c[t.id]||(t.id+=a,d=!0)}return d}function V(e,r,t,n){if(r){
11323r[k]("data-inject-url",t);var i=e.parentNode;if(i){n.copyAttributes&&function c(e,r){for(var t,n,i,o=e.attributes,a=0;a<o[b];a++)if(n=(t=o[a]).name,-1==v.indexOf(n))if(i=t.value,n==d){var f,u=r.firstElementChild;u&&u.localName.toLowerCase()==d?f=u:(f=l[s+"NS"]("http://www.w3.org/2000/svg",d),r.insertBefore(f,u)),f.textContent=i}else r[k](n,i)}(e,r);var o=n.beforeInject,a=o&&o(e,r)||r;i.replaceChild(a,e),e[A]=u,m(e);var f=n.afterInject;f&&f(e,a)}}else D(e,n)}function p(){for(var e={},r=arguments,
11324t=0;t<r[b];t++){var n=r[t];for(var i in n)n.hasOwnProperty(i)&&(e[i]=n[i])}return e}function _(e,r){if(r){var t;try{t=function i(e){return(a=a||new DOMParser).parseFromString(e,"text/xml")}(e)}catch(o){return x}return t[g]("parsererror")[b]?x:t.documentElement}var n=l.createElement("div");return n.innerHTML=e,n.firstElementChild}function m(e){e.removeAttribute("onload")}function n(e){console.error("SVGInject: "+e)}function i(e,r,t){e[A]=c,t.onFail?t.onFail(e,r):n(r)}function D(e,r){m(e),i(e,L,r)
11325}function F(e,r){m(e),i(e,t,r)}function M(e,r){i(e,I,r)}function q(e){e.onload=x,e.onerror=x}function R(e){n("no img element")}var e=function z(e,r){var t=p(f,r),h={};function n(a,f){f=p(t,f);var e=function(r){var e=function(){var e=f.onAllFinish;e&&e(),r&&r()};if(a&&typeof a[b]!=y){var t=0,n=a[b];if(0==n)e();else for(var i=function(){++t==n&&e()},o=0;o<n;o++)u(a[o],f,i)}else u(a,f,e)};return typeof Promise==y?e():new Promise(e)}function u(u,c,e){if(u){var r=u[A];if(r)Array.isArray(r)?r.push(e
11326):e();else{if(q(u),!G)return F(u,c),void e();var t=c.beforeLoad,n=t&&t(u)||u[w]("src");if(!n)return""===n&&M(u,c),void e();var i=[];u[A]=i;var l=function(){e(),i.forEach(function(e){e()})},s=function f(e){return j.href=e,j.href}(n),d=c.useCache,v=c.makeIdsUnique,p=function(r){d&&(h[s].forEac
11326h(function(e){e(r)}),h[s]=r)};if(d){var o,a=function(e){if(e===I)M(u,c);else if(e===L)D(u,c);else{var r,t=e[0],n=e[1],i=e[2];v&&(t===x?(t=P(r=_(n,!1),!1),e[0]=t,e[2]=t&&T(r)):t&&(n=function o(e){
11327return e.replace(S,C+O++)}(i))),r=r||_(n,!1),V(u,r,s,c)}l()};if(typeof(o=h[s])!=y)return void(o.isCallbackQueue?o.push(a):a(o));(o=[]).isCallbackQueue=!0,h[s]=o}!function m(e,r,t){if(e){var n=new XMLHttpRequest;n.onreadystatechange=function(){if(4==n.readyState){var e=n.status;200==e?r(n.responseXML,n.responseText.trim()):400<=e?t():0==e&&t()}},n.open("GET",e,!0),n.send()}}(s,function(e,r){var t=e instanceof Document?e.documentElement:_(r,!0),n=c.afterLoad;if(n){var i=n(t,r)||t;if(i){
11328var o="string"==typeof i;r=o?i:T(t),t=o?_(i,!0):i}}if(t instanceof SVGElement){var a=x;if(v&&(a=P(t,!1)),d){var f=a&&T(t);p([a,r,f])}V(u,t,s,c)}else D(u,c),p(L);l()},function(){M(u,c),p(I),l()})}}else R()}return G&&function i(e){var r=l[g]("head")[0];if(r){var t=l[s](E);t.type="text/css",t.appendChild(l.createTextNode(e)),r.appendChild(t)}}('img[onload^="'+e+'("]{visibility:hidden;}'),n.setOptions=function(e){t=p(t,e)},n.create=z,n.err=function(e,r){e?e[A]!=c&&(q(e),G?(m(e),M(e,t)):F(e,t),r&&(m(
11329e),e.src=r)):R()},o[e]=n}("SVGInject");"object"==typeof module&&"object"==typeof module.exports&&(module.exports=e)}(window,document);
11330/**
11331 * Swiper 8.3.2
11332 * Most modern mobile touch slider and framework with hardware accelerated transitions
11333 * https://swiperjs.com
11334 *
11335 * Copyright 2014-2022 Vladimir Kharlampidi
11336 *
11337 * Released under the MIT License
11338 *
11339 * Released on: July 26, 2022
11340 */
11341
11342!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).Swiper=t()}(this,(function(){"use strict";function e(e){return null!==e&&"object"==typeof e&&"constructor"in e&&e.constructor===Object}function t(s,a){void 0===s&&(s={}),void 0===a&&(a={}),Object.keys(a).forEach((i=>{void 0===s[i]?s[i]=a[i]:e(a[i])&&e(s[i])&&Object.keys(a[i]).length>0&&t(s[i],a[i])}))}const s={body:{},addEventListener(){},removeEventListener(){},activeElement:{blur(){},nodeName:""},querySelector:()=>null,querySelectorAll:()=>[],getElementById:()=>null,createEvent:()=>({initEvent(){}}),createElement:()=>({children:[],childNodes:[],style:{},setAttribute(){},getElementsByTagName:()=>[]}),createElementNS:()=>({}),importNode:()=>null,location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""}};function a(){const e="undefined"!=typeof document?document:{};return t(e,s),e}const i={document:s,navigator:{userAgent:""},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""},history:{replaceState(){},pushState(){},go(){},back(){}},CustomEvent:function(){return this},addEventListener(){},removeEventListener(){},getComputedStyle:()=>({getPropertyValue:()=>""}),Image(){},Date(){},screen:{},setTimeout(){},clearTimeout(){},matchMedia:()=>({}),requestAnimationFrame:e=>"undefined"==typeof setTimeout?(e(),null):setTimeout(e,0),cancelAnimationFrame(e){"undefined"!=typeof setTimeout&&clearTimeout(e)}};function r(){const e="undefined"!=typeof window?window:{};return t(e,i),e}class n extends Array{constructor(e){"number"==typeof e?super(e):(super(...e||[]),function(e){const t=e.__proto__;Object.defineProperty(e,"__proto__",{get:()=>t,set(e){t.__proto__=e}})}(this))}}function l(e){void 0===e&&(e=[]);const t=[];return e.forEach((e=>{Array.isArray(e)?t.push(...l(e)):t.push(e)})),t}function o(e,t){return Array.prototype.filter.call(e,t)}function d(e,t){const s=r(),i=a();let l=[];if(!t&&e instanceof n)return e;if(!e)return new n(l);if("string"==typeof e){const s=e.trim();if(s.indexOf("<")>=0&&s.indexOf(">")>=0){let e="div";0===s.indexOf("<li")&&(e="ul"),0===s.indexOf("<tr")&&(e="tbody"),0!==s.indexOf("<td")&&0!==s.indexOf("<th")||(e="tr"),0===s.indexOf("<tbody")&&(e="table"),0===s.indexOf("<option")&&(e="select");const t=i.createElement(e);t.innerHTML=s;for(let e=0;e<t.childNodes.length;e+=1)l.push(t.childNodes[e])}else l=function(e,t){if("string"!=typeof e)return[e];const s=[],a=t.querySelectorAll(e);for(let e=0;e<a.length;e+=1)s.push(a[e]);return s}(e.trim(),t||i)}else if(e.nodeType||e===s||e===i)l.push(e);else if(Array.isArray(e)){if(e instanceof n)return e;l=e}return new n(function(e){const t=[];for(let s=0;s<e.length;
vendor: 19,578 bytes, line 11342
11342s+=1)-1===t.indexOf(e[s])&&t.push(e[s]);return t}(l))}d.fn=n.prototype;const c={addClass:function(){for(var e=arguments.length,t=new Array(e),s=0;s<e;s++)t[s]=arguments[s];const a=l(t.map((e=>e.split(" "))));return this.forEach((e=>{e.classList.add(...a)})),this},removeClass:function(){for(var e=arguments.length,t=new Array(e),s=0;s<e;s++)t[s]=arguments[s];const a=l(t.map((e=>e.split(" "))));return this.forEach((e=>{e.classList.remove(...a)})),this},hasClass:function(){for(var e=arguments.length,t=new Array(e),s=0;s<e;s++)t[s]=arguments[s];const a=l(t.map((e=>e.split(" "))));return o(this,(e=>a.filter((t=>e.classList.contains(t))).length>0)).length>0},toggleClass:function(){for(var e=arguments.length,t=new Array(e),s=0;s<e;s++)t[s]=arguments[s];const a=l(t.map((e=>e.split(" "))));this.forEach((e=>{a.forEach((t=>{e.classList.toggle(t)}))}))},attr:function(e,t){if(1===arguments.length&&"string"==typeof e)return this[0]?this[0].getAttribute(e):void 0;for(let s=0;s<this.length;s+=1)if(2===arguments.length)this[s].setAttribute(e,t);else for(const t in e)this[s][t]=e[t],this[s].setAttribute(t,e[t]);return this},removeAttr:function(e){for(let t=0;t<this.length;t+=1)this[t].removeAttribute(e);return this},transform:function(e){for(let t=0;t<this.length;t+=1)this[t].style.transform=e;return this},transition:function(e){for(let t=0;t<this.length;t+=1)this[t].style.transitionDuration="string"!=typeof e?`${e}ms`:e;return this},on:function(){for(var e=arguments.length,t=new Array(e),s=0;s<e;s++)t[s]=arguments[s];let[a,i,r,n]=t;function l(e){const t=e.target;if(!t)return;const s=e.target.dom7EventData||[];if(s.indexOf(e)<0&&s.unshift(e),d(t).is(i))r.apply(t,s);else{const e=d(t).parents();for(let t=0;t<e.length;t+=1)d(e[t]).is(i)&&r.apply(e[t],s)}}function o(e){const t=e&&e.target&&e.target.dom7EventData||[];t.indexOf(e)<0&&t.unshift(e),r.apply(this,t)}"function"==typeof t[1]&&([a,r,n]=t,i=void 0),n||(n=!1);const c=a.split(" ");let p;for(let e=0;e<this.length;e+=1){const t=this[e];if(i)for(p=0;p<c.length;p+=1){const e=c[p];t.dom7LiveListeners||(t.dom7LiveListeners={}),t.dom7LiveListeners[e]||(t.dom7LiveListeners[e]=[]),t.dom7LiveListeners[e].push({listener:r,proxyListener:l}),t.addEventListener(e,l,n)}else for(p=0;p<c.length;p+=1){const e=c[p];t.dom7Listeners||(t.dom7Listeners={}),t.dom7Listeners[e]||(t.dom7Listeners[e]=[]),t.dom7Listeners[e].push({listener:r,proxyListener:o}),t.addEventListener(e,o,n)}}return this},off:function(){for(var e=arguments.length,t=new Array(e),s=0;s<e;s++)t[s]=arguments[s];let[a,i,r,n]=t;"function"==typeof t[1]&&([a,r,n]=t,i=void 0),n||(n=!1);const l=a.split(" ");for(let e=0;e<l.length;e+=1){const t=l[e];for(let e=0;e<this.length;e+=1){const s=this[e];let a;if(!i&&s.dom7Listeners?a=s.dom7Listeners[t]:i&&s.dom7LiveListeners&&(a=s.dom7LiveListeners[t]),a&&a.length)for(let e=a.length-1;e>=0;e-=1){const i=a[e];r&&i.listener===r||r&&i.listener&&i.listener.dom7proxy&&i.listener.dom7proxy===r?(s.removeEventListener(t,i.proxyListener,n),a.splice(e,1)):r||(s.removeEventListener(t,i.proxyListener,n),a.splice(e,1))}}}return this},trigger:function(){const e=r();for(var t=arguments.length,s=new Array(t),a=0;a<t;a++)s[a]=arguments[a];const i=s[0].split(" "),n=s[1];for(let t=0;t<i.length;t+=1){const a=i[t];for(let t=0;t<this.length;t+=1){const i=this[t];if(e.CustomEvent){const t=new e.CustomEvent(a,{detail:n,bubbles:!0,cancelable:!0});i.dom7EventData=s.filter(((e,t)=>t>0)),i.dispatchEvent(t),i.dom7EventData=[],delete i.dom7EventData}}}return this},transitionEnd:function(e){const t=this;return e&&t.on("transitionend",(function s(a){a.target===this&&(e.call(this,a),t.off("transitionend",s))})),this},outerWidth:function(e){if(this.length>0){if(e){const e=this.styles();return this[0].offsetWidth+parseFloat(e.getPropertyValue("margin-right"))+parseFloat(e.getPropertyValue("margin-left"))}return this[0].offsetWidth}return null},outerHeight:function(e){if(this.length>0){if(e){const e=this.styles();return this[0].offsetHeight+parseFloat(e.getPropertyValue("margin-top"))+parseFloat(e.getPropertyValue("margin-bottom"))}return this[0].offsetHeight}return null},styles:function(){const e=r();return this[0]?e.getComputedStyle(this[0],null):{}},offset:function(){if(this.length>0){const e=r(),t=a(),s=this[0],i=s.getBoundingClientRect(),n=t.body,l=s.clientTop||n.clientTop||0,o=s.clientLeft||n.clientLeft||0,d=s===e?e.scrollY:s.scrollTop,c=s===e?e.scrollX:s.scrollLeft;return{top:i.top+d-l,left:i.left+c-o}}return null},css:function(e,t){const s=r();let a;if(1===arguments.length){if("string"!=typeof e){for(a=0;a<this.length;a+=1)for(const t in e)this[a].style[t]=e[t];return this}if(this[0])return s.getComputedStyle(this[0],null).getPropertyValue(e)}if(2===arguments.length&&"string"==typeof e){for(a=0;a<this.length;a+=1)this[a].style[e]=t;return this}return this},each:function(e){return e?(this.forEach(((t,s)=>{e.apply(t,[t,s])})),this):this},html:function(e){if(void 0===e)return this[0]?this[0].innerHTML:null;for(let t=0;t<this.length;t+=1)this[t].innerHTML=e;return this},text:function(e){if(void 0===e)return this[0]?this[0].textContent.trim():null;for(let t=0;t<this.length;t+=1)this[t].textContent=e;return this},is:function(e){const t=r(),s=a(),i=this[0];let l,o;if(!i||void 0===e)return!1;if("string"==typeof e){if(i.matches)return i.matches(e);if(i.webkitMatchesSelector)return i.webkitMatchesSelector(e);if(i.msMatchesSelector)return i.msMatchesSelector(e);for(l=d(e),o=0;o<l.length;o+=1)if(l[o]===i)return!0;return!1}if(e===s)return i===s;if(e===t)return i===t;if(e.nodeType||e instanceof n){for(l=e.nodeType?[e]:e,o=0;o<l.length;o+=1)if(l[o]===i)return!0;return!1}return!1},index:function(){let e,t=this[0];if(t){for(e=0;null!==(t=t.previousSibling);)1===t.nodeType&&(e+=1);return e}},eq:function(e){if(void 0===e)return this;const t=this.length;if(e>t-1)return d([]);if(e<0){const s=t+e;return d(s<0?[]:[this[s]])}return d([this[e]])},append:function(){let e;const t=a();for(let s=0;s<arguments.length;s+=1){e=s<0||arguments.length<=s?void 0:arguments[s];for(let s=0;s<this.length;s+=1)if("string"==typeof e){const a=t.createElement("div");for(a.innerHTML=e;a.firstChild;)this[s].appendChild(a.firstChild)}else if(e instanceof n)for(let t=0;t<e.length;t+=1)this[s].appendChild(e[t]);else this[s].appendChild(e)}return this},prepend:function(e){const t=a();let s,i;for(s=0;s<this.length;s+=1)if("string"==typeof e){const a=t.createElement("div");for(a.innerHTML=e,i=a.childNodes.length-1;i>=0;i-=1)this[s].insertBefore(a.childNodes[i],this[s].childNodes[0])}else if(e instanceof n)for(i=0;i<e.length;i+=1)this[s].insertBefore(e[i],this[s].childNodes[0]);else this[s].insertBefore(e,this[s].childNodes[0]);return this},next:function(e){return this.length>0?e?this[0].nextElementSibling&&d(this[0].nextElementSibling).is(e)?d([this[0].nextElementSibling]):d([]):this[0].nextElementSibling?d([this[0].nextElementSibling]):d([]):d([])},nextAll:function(e){const t=[];let s=this[0];if(!s)return d([]);for(;s.nextElementSibling;){const a=s.nextElementSibling;e?d(a).is(e)&&t.push(a):t.push(a),s=a}return d(t)},prev:function(e){if(this.length>0){const t=this[0];return e?t.previousElementSibling&&d(t.previousElementSibling).is(e)?d([t.previousElementSibling]):d([]):t.previousElementSibling?d([t.previousElementSibling]):d([])}return d([])},prevAll:function(e){const t=[];let s=this[0];if(!s)return d([]);for(;s.previousElementSibling;){const a=s.previousElementSibling;e?d(a).is(e)&&t.push(a):t.push(a),s=a}return d(t)},parent:function(e){const t=[];for(let s=0;s<this.length;s+=1)null!==this[s].parentNode&&(e?d(this[s].parentNode).is(e)&&t.push(this[s].parentNode):t.push(this[s].parentNode));return d(t)},parents:function(e){const t=[];for(let s=0;s<this.length;s+=1){let a=this[s].parentNode;for(;a;)e?d(a).is(e)&&t.push(a):t.push(a),a=a.parentNode}return d(t)},closest:function(e){let t=this;return void 0===e?d([]):(t.is(e)||(t=t.parents(e).eq(0)),t)},find:function(e){const t=[];for(let s=0;s<this.length;s+=1){const a=this[s].querySelectorAll(e);for(let e=0;e<a.length;e+=1)t.push(a[e])}return d(t)},children:function(e){const t=[];for(let s=0;s<this.length;s+=1){const a=this[s].children;for(let s=0;s<a.length;s+=1)e&&!d(a[s]).is(e)||t.push(a[s])}return d(t)},filter:function(e){return d(o(this,e))},remove:function(){for(let e=0;e<this.length;e+=1)this[e].parentNode&&this[e].parentNode.removeChild(this[e]);return this}};function p(e,t){return void 0===t&&(t=0),setTimeout(e,t)}function u(){return Date.now()}function h(e,t){void 0===t&&(t="x");const s=r();let a,i,n;const l=function(e){const t=r();let s;return t.getComputedStyle&&(s=t.getComputedStyle(e,null)),!s&&e.currentStyle&&(s=e.currentStyle),s||(s=e.style),s}(e);return s.WebKitCSSMatrix?(i=l.transform||l.webkitTransform,i.split(",").length>6&&(i=i.split(", ").map((e=>e.replace(",","."))).join(", ")),n=new s.WebKitCSSMatrix("none"===i?"":i)):(n=l.MozTransform||l.OTransform||l.MsTransform||l.msTransform||l.transform||l.getPropertyValue("transform").replace("translate(","matrix(1, 0, 0, 1,"),a=n.toString().split(",")),"x"===t&&(i=s.WebKitCSSMatrix?n.m41:16===a.length?parseFloat(a[12]):parseFloat(a[4])),"y"===t&&(i=s.WebKitCSSMatrix?n.m42:16===a.length?parseFloat(a[13]):parseFloat(a[5])),i||0}function m(e){return"object"==typeof e&&null!==e&&e.constructor&&"Object"===Object.prototype.toString.call(e).slice(8,-1)}function f(e){return"undefined"!=typeof window&&void 0!==window.HTMLElement?e instanceof HTMLElement:e&&(1===e.nodeType||11===e.nodeType)}function g(){const e=Object(arguments.length<=0?void 0:arguments[0]),t=["__proto__","constructor","prototype"];for(let s=1;s<arguments.length;s+=1){const a=s<0||arguments.length<=s?void 0:arguments[s];if(null!=a&&!f(a)){const s=Object.keys(Object(a)).filter((e=>t.indexOf(e)<0));for(let t=0,i=s.length;t<i;t+=1){const i=s[t],r=Object.getOwnPropertyDescriptor(a,i);void 0!==r&&r.enumerable&&(m(e[i])&&m(a[i])?a[i].__swiper__?e[i]=a[i]:g(e[i],a[i]):!m(e[i])&&m(a[i])?(e[i]={},a[i].__swiper__?e[i]=a[i]:g(e[i],a[i])):e[i]=a[i])}}}return e}function v(e,t,s){e.style.setProperty(t,s)}function w(e){let{swiper:t,targetPosition:s,side:a}=e;const i=r(),n=-t.translate;let l,o=null;const d=t.params.speed;t.wrapperEl.style.scrollSnapType="none",i.cancelAnimationFrame(t.cssModeFrameID);const c=s>n?"next":"prev",p=(e,t)=>"next"===c&&e>=t||"prev"===c&&e<=t,u=()=>{l=(new Date).getTime(),null===o&&(o=l);const e=Math.max(Math.min((l-o)/d,1),0),r=.5-Math.cos(e*Math.PI)/2;let c=n+r*(s-n);if(p(c,s)&&(c=s),t.wrapperEl.scrollTo({[a]:c}),p(c,s))return t.wrapperEl.style.overflow="hidden",t.wrapperEl.style.scrollSnapType="",setTimeout((()=>{t.wrapperEl.style.overflow="",t.wrapperEl.scrollTo({[a]:c})})),void i.cancelAnimationFrame(t.cssModeFrameID);t.cssModeFrameID=i.requestAnimationFrame(u)};u()}let b,x,y;function E(){return b||(b=function(){const e=r(),t=a();return{smoothScroll:t.documentElement&&"scrollBehavior"in t.documentElement.style,touch:!!("ontouchstart"in e||e.DocumentTouch&&t instanceof e.DocumentTouch),passiveListener:function(){let t=!1;try{const s=Object.defineProperty({},"passive",{get(){t=!0}});e.addEventListener("testPassiveListener",null,s)}catch(e){}return t}(),gestures:"ongesturestart"in e}}()),b}function C(e){return void 0===e&&(e={}),x||(x=function(e){let{userAgent:t}=void 0===e?{}:e;const s=E(),a=r(),i=a.navigator.platform,n=t||a.navigator.userAgent,l={ios:!1,android:!1},o=a.screen.width,d=a.screen.height,c=n.match(/(Android);?[\s\/]+([\d.]+)?/);let p=n.match(/(iPad).*OS\s([\d_]+)/);const u=n.match(/(iPod)(.*OS\s([\d_]+))?/),h=!p&&n.match(/(iPhone\sOS|iOS)\s([\d_]+)/),m="Win32"===i;let f="MacIntel"===i;return!p&&f&&s.touch&&["1024x1366","1366x1024","834x1194","1194x834","834x1112","1112x834","768x1024","1024x768","820x1180","1180x820","810x1080","1080x810"].indexOf(`${o}x${d}`)>=0&&(p=n.match(/(Version)\/([\d.]+)/),p||(p=[0,1,"13_0_0"]),f=!1),c&&!m&&(l.os="android",l.android=!0),(p||h||u)&&(l.os="ios",l.ios=!0),l}(e)),x}function T(){return y||(y=function(){const e=r();return{isSafari:function(){const t=e.navigator.userAgent.toLowerCase();return t.indexOf("safari")>=0&&t.indexOf("chrome")<0&&t.indexOf("android")<0}(),isWebView:/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(e.navigator.userAgent)}}()),y}Object.keys(c).forEach((e=>{Object.defineProperty(d.fn,e,{value:c[e],writable:!0})}));var $={on(e,t,s){const a=this;if(!a.eventsListeners||a.destroyed)return a;if("function"!=typeof t)return a;const i=s?"unshift":"push";return e.split(" ").forEach((e=>{a.eventsListeners[e]||(a.eventsListeners[e]=[]),a.eventsListeners[e][i](t)})),a},once(e,t,s){const a=this;if(!a.eventsListeners||a.destroyed)return a;if("function"!=typeof t)return a;function i(){a.off(e,i),i.__emitterProxy&&delete i.__emitterProxy;for(var s=arguments.length,r=new Array(s),n=0;n<s;n++)r[n]=arguments[n];t.apply(a,r)}return i.__emitterProxy=t,a.on(e,i,s)},onAny(e,t){const s=this;if(!s.eventsListeners||s.destroyed)return s;if("function"!=typeof e)return s;const a=t?"unshift":"push";return s.eventsAnyListeners.indexOf(e)<0&&s.eventsAnyListeners[a](e),s},offAny(e){const t=this;if(!t.eventsListeners||t.destroyed)return t;if(!t.eventsAnyListeners)return t;const s=t.eventsAnyListeners.indexOf(e);return s>=0&&t.eventsAnyListeners.splice(s,1),t},off(e,t){const s=this;return!s.eventsListeners||s.destroyed?s:s.eventsListeners?(e.split(" ").forEach((e=>{void 0===t?s.eventsListeners[e]=[]:s.eventsListeners[e]&&s.eventsListeners[e].forEach(((a,i)=>{(a===t||a.__emitterProxy&&a.__emitterProxy===t)&&s.eventsListeners[e].splice(i,1)}))})),s):s},emit(){const e=this;if(!e.eventsListeners||e.destroyed)return e;if(!e.eventsListeners)return e;let t,s,a;for(var i=arguments.length,r=new Array(i),n=0;n<i;n++)r[n]=arguments[n];"string"==typeof r[0]||Array.isArray(r[0])?(t=r[0],s=r.slice(1,r.length),a=e):(t=r[0].events,s=r[0].data,a=r[0].context||e),s.unshift(a);return(Array.isArray(t)?t:t.split(" ")).forEach((t=>{e.eventsAnyListeners&&e.eventsAnyListeners.length&&e.eventsAnyListeners.forEach((e=>{e.apply(a,[t,...s])})),e.eventsListeners&&e.eventsListeners[t]&&e.eventsListeners[t].forEach((e=>{e.apply(a,s)}))})),e}};var S={updateSize:function(){const e=this;let t,s;const a=e.$el;t=void 0!==e.params.width&&null!==e.params.width?e.params.width:a[0].clientWidth,s=void 0!==e.params.height&&null!==e.params.height?e.params.height:a[0].clientHeight,0===t&&e.isHorizontal()||0===s&&e.isVertical()||(t=t-parseInt(a.css("padding-left")||0,10)-parseInt(a.css("padding-right")||0,10),s=s-parseInt(a.css("padding-top")||0,10)-parseInt(a.css("padding-bottom")||0,10),Number.isNaN(t)&&(t=0),Number.isNaN(s)&&(s=0),Object.assign(e,{width:t,height:s,size:e.isHorizontal()?t:s}))},updateSlides:function(){const e=this;function t(t){return e.isHorizontal()?t:{width:"height","margin-top":"margin-left","margin-bottom ":"margin-right","margin-left":"margin-top","margin-right":"margin-bottom","padding-left":"padding-top","padding-right":"padding-bottom",marginRight:"marginBottom"}[t]}function s(e,s){return parseFloat(e.getPropertyValue(t(s))||0)}const a=e.params,{$wrapperEl:i,size:r,rtlTranslate:n,wrongRTL:l}=e,o=e.virtual&&a.virtual.enabled,d=o?e.virtual.slides.length:e.slides.length,c=i.children(`.${e.params.slideClass}`),p=o?e.virtual.slides.length:c.length;let u=[];const h=[],m=[];let f=a.slidesOffsetBefore;"function"==typeof f&&(f=a.slidesOffsetBefore.call(e));let g=a.slidesOffsetAfter;"function"==typeof g&&(g=a.slidesOffsetAfter.call(e));const w=e.snapGrid.length,b=e.slidesGrid.length;let x=a.spaceBetween,y=-f,E=0,C=0;if(void 0===r)return;"string"==typeof x&&x.indexOf("%")>=0&&(x=parseFloat(x.replace("%",""))/100*r),e.virtualSize=-x,n?c.css({marginLeft:"",marginBottom:"",marginTop:""}):c.css({marginRight:"",marginBottom:"",marginTop:""}),a.centeredSlides&&a.cssMode&&(v(e.wrapperEl,"--swiper-centered-offset-before",""),v(e.wrapperEl,"--swiper-centered-offset-after",""));const T=a.grid&&a.grid.rows>1&&e.grid;let $;T&&e.grid.initSlides(p);const S="auto"===a.slidesPerView&&a.breakpoints&&Object.keys(a.breakpoints).filter((e=>void 0!==a.breakpoints[e].slidesPerView)).length>0;for(let i=0;i<p;i+=1){$=0;const n=c.eq(i);if(T&&e.grid.updateSlide(i,n,p,t),"none"!==n.css("display")){if("auto"===a.slidesPerView){S&&(c[i].style[t("width")]="");const r=getComputedStyle(n[0]),l=n[0].style.transform,o=n[0].style.webkitTransform;if(l&&(n[0].style.transform="none"),o&&(n[0].style.webkitTransform="none"),a.roundLengths)$=e.isHorizontal()?n.outerWidth(!0):n.outerHeight(!0);else{const e=s(r,"width"),t=s(r,"padding-left"),a=s(r,"padding-right"),i=s(r,"margin-left"),l=s(r,"margin-right"),o=r.getPropertyValue("box-sizing");if(o&&"border-box"===o)$=e+i+l;else{const{clientWidth:s,offsetWidth:r}=n[0];$=e+t+a+i+l+(r-s)}}l&&(n[0].style.transform=l),o&&(n[0].style.webkitTransform=o),a.roundLengths&&($=Math.floor($))}else $=(r-(a.slidesPerView-1)*x)/a.slidesPerView,a.roundLengths&&($=Math.floor($)),c[i]&&(c[i].style[t("width")]=`${$}px`);c[i]&&(c[i].swiperSlideSize=$),m.push($),a.centeredSlides?(y=y+$/2+E/2+x,0===E&&0!==i&&(y=y-r/2-x),0===i&&(y=y-r/2-x),Math.abs(y)<.001&&(y=0),a.roundLengths&&(y=Math.floor(y)),C%a.slidesPerGroup==0&&u.push(y),h.push(y)):(a.roundLengths&&(y=Math.floor(y)),(C-Math.min(e.params.slidesPerGroupSkip,C))%e.params.slidesPerGroup==0&&u.push(y),h.push(y),y=y+$+x),e.virtualSize+=$+x,E=$,C+=1}}if(e.virtualSize=Math.max(e.virtualSize,r)+g,n&&l&&("slide"===a.effect||"coverflow"===a.effect)&&i.css({width:`${e.virtualSize+a.spaceBetween}px`}),a.setWrapperSize&&i.css({[t("width")]:`${e.virtualSize+a.spaceBetween}px`}),T&&e.grid.updateWrapperSize($,u,t),!a.centeredSlides){const t=[];for(let s=0;s<u.length;s+=1){let i=u[s];a.roundLengths&&(i=Math.floor(i)),u[s]<=e.virtualSize-r&&t.push(i)}u=t,Math.floor(e.virtualSize-r)-Math.floor(u[u.length-1])>1&&u.push(e.virtualSize-r)}if(0===u.length&&(u=[0]),0!==a.spaceBetween){const s=e.isHorizontal()&&n?"marginLeft":t("marginRight");c.filter(((e,t)=>!a.cssMode||t!==c.length-1)).css({[s]:`${x}px`})}if(a.centeredSlides&&a.centeredSlidesBounds){let e=0;m.forEach((t=>{e+=t+(a.spaceBetween?a.spaceBetween:0)})),e-=a.spaceBetween;const t=e-r;u=u.map((e=>e<0?-f:e>t?t+g:e))}if(a.centerInsufficientSlides){let e=0;if(m.forEach((t=>{e+=t+(a.spaceBetween?a.spaceBetween:0)})),e-=a.spaceBetween,e<r){const t=(r-e)/2;u.forEach(((e,s)=>{u[s]=e-t})),h.forEach(((e,s)=>{h[s]=e+t}))}}if(Object.assign(e,{slides:c,snapGrid:u,slidesGrid:h,slidesSizesGrid:m}),a.centeredSlides&&a.cssMode&&!a.centeredSlidesBounds){v(e.wrapperEl,"--swiper-centered-offset-before",-u[0]+"px"),v(e.wrapperEl,"--swiper-centered-offset-after",e.size/2-m[m.length-1]/2+"px");const t=-e.snapGrid[0],s=-e.slidesGrid[0];e.snapGrid=e.snapGrid.map((e=>e+t)),e.slidesGrid=e.slidesGrid.map((e=>e+s))}if(p!==d&&e.emit("slidesLengthChange"),u.length!==w&&(e.params.watchOverflow&&e.checkOverflow(),e.emit("snapGridLengthChange")),h.length!==b&&e.emit("slidesGridLengthChange"),a.watchSlidesProgress&&e.updateSlidesOffset(),!(o||a.cssMode||"slide"!==a.effect&&"fade"!==a.effect)){const t=`${a.containerModifierClass}backface-hidden`,s=e.$el.hasClass(t);p<=a.maxBackfaceHiddenSlides?s||e.$el.addClass(t):s&&e.$el.removeClass(t)}},updateAutoHeight:function(e){const t=this,s=[],a=t.virtual&&t.params.virtual.enabled;let i,r=0;"number"==typeof e?t.setTransition(e):!0===e&&t.setTransition(t.params.speed);const n=e=>a?t.slides.filter((t=>parseInt(t.getAttribute("data-swiper-slide-index"),10)===e))[0]:t.slides.eq(e)[0];if("auto"!==t.params.slidesPerView&&t.params.slidesPerView>1)if(t.params.centeredSlides)(t.visibleSlides||d([]))
vendor: 10,393 bytes, line 11342
11342.each((e=>{s.push(e)}));else for(i=0;i<Math.ceil(t.params.slidesPerView);i+=1){const e=t.activeIndex+i;if(e>t.slides.length&&!a)break;s.push(n(e))}else s.push(n(t.activeIndex));for(i=0;i<s.length;i+=1)if(void 0!==s[i]){const e=s[i].offsetHeight;r=e>r?e:r}(r||0===r)&&t.$wrapperEl.css("height",`${r}px`)},updateSlidesOffset:function(){const e=this,t=e.slides;for(let s=0;s<t.length;s+=1)t[s].swiperSlideOffset=e.isHorizontal()?t[s].offsetLeft:t[s].offsetTop},updateSlidesProgress:function(e){void 0===e&&(e=this&&this.translate||0);const t=this,s=t.params,{slides:a,rtlTranslate:i,snapGrid:r}=t;if(0===a.length)return;void 0===a[0].swiperSlideOffset&&t.updateSlidesOffset();let n=-e;i&&(n=e),a.removeClass(s.slideVisibleClass),t.visibleSlidesIndexes=[],t.visibleSlides=[];for(let e=0;e<a.length;e+=1){const l=a[e];let o=l.swiperSlideOffset;s.cssMode&&s.centeredSlides&&(o-=a[0].swiperSlideOffset);const d=(n+(s.centeredSlides?t.minTranslate():0)-o)/(l.swiperSlideSize+s.spaceBetween),c=(n-r[0]+(s.centeredSlides?t.minTranslate():0)-o)/(l.swiperSlideSize+s.spaceBetween),p=-(n-o),u=p+t.slidesSizesGrid[e];(p>=0&&p<t.size-1||u>1&&u<=t.size||p<=0&&u>=t.size)&&(t.visibleSlides.push(l),t.visibleSlidesIndexes.push(e),a.eq(e).addClass(s.slideVisibleClass)),l.progress=i?-d:d,l.originalProgress=i?-c:c}t.visibleSlides=d(t.visibleSlides)},updateProgress:function(e){const t=this;if(void 0===e){const s=t.rtlTranslate?-1:1;e=t&&t.translate&&t.translate*s||0}const s=t.params,a=t.maxTranslate()-t.minTranslate();let{progress:i,isBeginning:r,isEnd:n}=t;const l=r,o=n;0===a?(i=0,r=!0,n=!0):(i=(e-t.minTranslate())/a,r=i<=0,n=i>=1),Object.assign(t,{progress:i,isBeginning:r,isEnd:n}),(s.watchSlidesProgress||s.centeredSlides&&s.autoHeight)&&t.updateSlidesProgress(e),r&&!l&&t.emit("reachBeginning toEdge"),n&&!o&&t.emit("reachEnd toEdge"),(l&&!r||o&&!n)&&t.emit("fromEdge"),t.emit("progress",i)},updateSlidesClasses:function(){const e=this,{slides:t,params:s,$wrapperEl:a,activeIndex:i,realIndex:r}=e,n=e.virtual&&s.virtual.enabled;let l;t.removeClass(`${s.slideActiveClass} ${s.slideNextClass} ${s.slidePrevClass} ${s.slideDuplicateActiveClass} ${s.slideDuplicateNextClass} ${s.slideDuplicatePrevClass}`),l=n?e.$wrapperEl.find(`.${s.slideClass}[data-swiper-slide-index="${i}"]`):t.eq(i),l.addClass(s.slideActiveClass),s.loop&&(l.hasClass(s.slideDuplicateClass)?a.children(`.${s.slideClass}:not(.${s.slideDuplicateClass})[data-swiper-slide-index="${r}"]`).addClass(s.slideDuplicateActiveClass):a.children(`.${s.slideClass}.${s.slideDuplicateClass}[data-swiper-slide-index="${r}"]`).addClass(s.slideDuplicateActiveClass));let o=l.nextAll(`.${s.slideClass}`).eq(0).addClass(s.slideNextClass);s.loop&&0===o.length&&(o=t.eq(0),o.addClass(s.slideNextClass));let d=l.prevAll(`.${s.slideClass}`).eq(0).addClass(s.slidePrevClass);s.loop&&0===d.length&&(d=t.eq(-1),d.addClass(s.slidePrevClass)),s.loop&&(o.hasClass(s.slideDuplicateClass)?a.children(`.${s.slideClass}:not(.${s.slideDuplicateClass})[data-swiper-slide-index="${o.attr("data-swiper-slide-index")}"]`).addClass(s.slideDuplicateNextClass):a.children(`.${s.slideClass}.${s.slideDuplicateClass}[data-swiper-slide-index="${o.attr("data-swiper-slide-index")}"]`).addClass(s.slideDuplicateNextClass),d.hasClass(s.slideDuplicateClass)?a.children(`.${s.slideClass}:not(.${s.slideDuplicateClass})[data-swiper-slide-index="${d.attr("data-swiper-slide-index")}"]`).addClass(s.slideDuplicatePrevClass):a.children(`.${s.slideClass}.${s.slideDuplicateClass}[data-swiper-slide-index="${d.attr("data-swiper-slide-index")}"]`).addClass(s.slideDuplicatePrevClass)),e.emitSlidesClasses()},updateActiveIndex:function(e){const t=this,s=t.rtlTranslate?t.translate:-t.translate,{slidesGrid:a,snapGrid:i,params:r,activeIndex:n,realIndex:l,snapIndex:o}=t;let d,c=e;if(void 0===c){for(let e=0;e<a.length;e+=1)void 0!==a[e+1]?s>=a[e]&&s<a[e+1]-(a[e+1]-a[e])/2?c=e:s>=a[e]&&s<a[e+1]&&(c=e+1):s>=a[e]&&(c=e);r.normalizeSlideIndex&&(c<0||void 0===c)&&(c=0)}if(i.indexOf(s)>=0)d=i.indexOf(s);else{const e=Math.min(r.slidesPerGroupSkip,c);d=e+Math.floor((c-e)/r.slidesPerGroup)}if(d>=i.length&&(d=i.length-1),c===n)return void(d!==o&&(t.snapIndex=d,t.emit("snapIndexChange")));const p=parseInt(t.slides.eq(c).attr("data-swiper-slide-index")||c,10);Object.assign(t,{snapIndex:d,realIndex:p,previousIndex:n,activeIndex:c}),t.emit("activeIndexChange"),t.emit("snapIndexChange"),l!==p&&t.emit("realIndexChange"),(t.initialized||t.params.runCallbacksOnInit)&&t.emit("slideChange")},updateClickedSlide:function(e){const t=this,s=t.params,a=d(e).closest(`.${s.slideClass}`)[0];let i,r=!1;if(a)for(let e=0;e<t.slides.length;e+=1)if(t.slides[e]===a){r=!0,i=e;break}if(!a||!r)return t.clickedSlide=void 0,void(t.clickedIndex=void 0);t.clickedSlide=a,t.virtual&&t.params.virtual.enabled?t.clickedIndex=parseInt(d(a).attr("data-swiper-slide-index"),10):t.clickedIndex=i,s.slideToClickedSlide&&void 0!==t.clickedIndex&&t.clickedIndex!==t.activeIndex&&t.slideToClickedSlide()}};var M={getTranslate:function(e){void 0===e&&(e=this.isHorizontal()?"x":"y");const{params:t,rtlTranslate:s,translate:a,$wrapperEl:i}=this;if(t.virtualTranslate)return s?-a:a;if(t.cssMode)return a;let r=h(i[0],e);return s&&(r=-r),r||0},setTranslate:function(e,t){const s=this,{rtlTranslate:a,params:i,$wrapperEl:r,wrapperEl:n,progress:l}=s;let o,d=0,c=0;s.isHorizontal()?d=a?-e:e:c=e,i.roundLengths&&(d=Math.floor(d),c=Math.floor(c)),i.cssMode?n[s.isHorizontal()?"scrollLeft":"scrollTop"]=s.isHorizontal()?-d:-c:i.virtualTranslate||r.transform(`translate3d(${d}px, ${c}px, 0px)`),s.previousTranslate=s.translate,s.translate=s.isHorizontal()?d:c;const p=s.maxTranslate()-s.minTranslate();o=0===p?0:(e-s.minTranslate())/p,o!==l&&s.updateProgress(e),s.emit("setTranslate",s.translate,t)},minTranslate:function(){return-this.snapGrid[0]},maxTranslate:function(){return-this.snapGrid[this.snapGrid.length-1]},translateTo:function(e,t,s,a,i){void 0===e&&(e=0),void 0===t&&(t=this.params.speed),void 0===s&&(s=!0),void 0===a&&(a=!0);const r=this,{params:n,wrapperEl:l}=r;if(r.animating&&n.preventInteractionOnTransition)return!1;const o=r.minTranslate(),d=r.maxTranslate();let c;if(c=a&&e>o?o:a&&e<d?d:e,r.updateProgress(c),n.cssMode){const e=r.isHorizontal();if(0===t)l[e?"scrollLeft":"scrollTop"]=-c;else{if(!r.support.smoothScroll)return w({swiper:r,targetPosition:-c,side:e?"left":"top"}),!0;l.scrollTo({[e?"left":"top"]:-c,behavior:"smooth"})}return!0}return 0===t?(r.setTransition(0),r.setTranslate(c),s&&(r.emit("beforeTransitionStart",t,i),r.emit("transitionEnd"))):(r.setTransition(t),r.setTranslate(c),s&&(r.emit("beforeTransitionStart",t,i),r.emit("transitionStart")),r.animating||(r.animating=!0,r.onTranslateToWrapperTransitionEnd||(r.onTranslateToWrapperTransitionEnd=function(e){r&&!r.destroyed&&e.target===this&&(r.$wrapperEl[0].removeEventListener("transitionend",r.onTranslateToWrapperTransitionEnd),r.$wrapperEl[0].removeEventListener("webkitTransitionEnd",r.onTranslateToWrapperTransitionEnd),r.onTranslateToWrapperTransitionEnd=null,delete r.onTranslateToWrapperTransitionEnd,s&&r.emit("transitionEnd"))}),r.$wrapperEl[0].addEventListener("transitionend",r.onTranslateToWrapperTransitionEnd),r.$wrapperEl[0].addEventListener("webkitTransitionEnd",r.onTranslateToWrapperTransitionEnd))),!0}};function P(e){let{swiper:t,runCallbacks:s,direction:a,step:i}=e;const{activeIndex:r,previousIndex:n}=t;let l=a;if(l||(l=r>n?"next":r<n?"prev":"reset"),t.emit(`transition${i}`),s&&r!==n){if("reset"===l)return void t.emit(`slideResetTransition${i}`);t.emit(`slideChangeTransition${i}`),"next"===l?t.emit(`slideNextTransition${i}`):t.emit(`slidePrevTransition${i}`)}}var k={slideTo:function(e,t,s,a,i){if(void 0===e&&(e=0),void 0===t&&(t=this.params.speed),void 0===s&&(s=!0),"number"!=typeof e&&"string"!=typeof e)throw new Error(`The 'index' argument cannot have type other than 'number' or 'string'. [${typeof e}] given.`);if("string"==typeof e){const t=parseInt(e,10);if(!isFinite(t))throw new Error(`The passed-in 'index' (string) couldn't be converted to 'number'. [${e}] given.`);e=t}const r=this;let n=e;n<0&&(n=0);const{params:l,snapGrid:o,slidesGrid:d,previousIndex:c,activeIndex:p,rtlTranslate:u,wrapperEl:h,enabled:m}=r;if(r.animating&&l.preventInteractionOnTransition||!m&&!a&&!i)return!1;const f=Math.min(r.params.slidesPerGroupSkip,n);let g=f+Math.floor((n-f)/r.params.slidesPerGroup);g>=o.length&&(g=o.length-1),(p||l.initialSlide||0)===(c||0)&&s&&r.emit("beforeSlideChangeStart");const v=-o[g];if(r.updateProgress(v),l.normalizeSlideIndex)for(let e=0;e<d.length;e+=1){const t=-Math.floor(100*v),s=Math.floor(100*d[e]),a=Math.floor(100*d[e+1]);void 0!==d[e+1]?t>=s&&t<a-(a-s)/2?n=e:t>=s&&t<a&&(n=e+1):t>=s&&(n=e)}if(r.initialized&&n!==p){if(!r.allowSlideNext&&v<r.translate&&v<r.minTranslate())return!1;if(!r.allowSlidePrev&&v>r.translate&&v>r.maxTranslate()&&(p||0)!==n)return!1}let b;if(b=n>p?"next":n<p?"prev":"reset",u&&-v===r.translate||!u&&v===r.translate)return r.updateActiveIndex(n),l.autoHeight&&r.updateAutoHeight(),r.updateSlidesClasses(),"slide"!==l.effect&&r.setTranslate(v),"reset"!==b&&(r.transitionStart(s,b),r.transitionEnd(s,b)),!1;if(l.cssMode){const e=r.isHorizontal(),s=u?v:-v;if(0===t){const t=r.virtual&&r.params.virtual.enabled;t&&(r.wrapperEl.style.scrollSnapType="none",r._immediateVirtual=!0),h[e?"scrollLeft":"scrollTop"]=s,t&&requestAnimationFrame((()=>{r.wrapperEl.style.scrollSnapType="",r._swiperImmediateVirtual=!1}))}else{if(!r.support.smoothScroll)return w({swiper:r,targetPosition:s,side:e?"left":"top"}),!0;h.scrollTo({[e?"left":"top"]:s,behavior:"smooth"})}return!0}return r.setTransition(t),r.setTranslate(v),r.updateActiveIndex(n),r.updateSlidesClasses(),r.emit("beforeTransitionStart",t,a),r.transitionStart(s,b),0===t?r.transitionEnd(s,b):r.animating||(r.animating=!0,r.onSlideToWrapperTransitionEnd||(r.onSlideToWrapperTransitionEnd=function(e){r&&!r.destroyed&&e.target===this&&(r.$wrapperEl[0].removeEventListener("transitionend",r.onSlideToWrapperTransitionEnd),r.$wrapperEl[0].removeEventListener("webkitTransitionEnd",r.onSlideToWrapperTransitionEnd),r.onSlideToWrapperTransitionEnd=null,delete r.onSlideToWrapperTransitionEnd,r.transitionEnd(s,b))}),r.$wrapperEl[0].addEventListener("transitionend",r.onSlideToWrapperTransitionEnd),r.$wrapperEl[0].addEventListener("webkitTransitionEnd",r.onSlideToWrapperTransitionEnd)),!0},slideToLoop:function(e,t,s,a){
vendor: 5,480 bytes, line 11342
11342if(void 0===e&&(e=0),void 0===t&&(t=this.params.speed),void 0===s&&(s=!0),"string"==typeof e){const t=parseInt(e,10);if(!isFinite(t))throw new Error(`The passed-in 'index' (string) couldn't be converted to 'number'. [${e}] given.`);e=t}const i=this;let r=e;return i.params.loop&&(r+=i.loopedSlides),i.slideTo(r,t,s,a)},slideNext:function(e,t,s){void 0===e&&(e=this.params.speed),void 0===t&&(t=!0);const a=this,{animating:i,enabled:r,params:n}=a;if(!r)return a;let l=n.slidesPerGroup;"auto"===n.slidesPerView&&1===n.slidesPerGroup&&n.slidesPerGroupAuto&&(l=Math.max(a.slidesPerViewDynamic("current",!0),1));const o=a.activeIndex<n.slidesPerGroupSkip?1:l;if(n.loop){if(i&&n.loopPreventsSlide)return!1;a.loopFix(),a._clientLeft=a.$wrapperEl[0].clientLeft}return n.rewind&&a.isEnd?a.slideTo(0,e,t,s):a.slideTo(a.activeIndex+o,e,t,s)},slidePrev:function(e,t,s){void 0===e&&(e=this.params.speed),void 0===t&&(t=!0);const a=this,{params:i,animating:r,snapGrid:n,slidesGrid:l,rtlTranslate:o,enabled:d}=a;if(!d)return a;if(i.loop){if(r&&i.loopPreventsSlide)return!1;a.loopFix(),a._clientLeft=a.$wrapperEl[0].clientLeft}function c(e){return e<0?-Math.floor(Math.abs(e)):Math.floor(e)}const p=c(o?a.translate:-a.translate),u=n.map((e=>c(e)));let h=n[u.indexOf(p)-1];if(void 0===h&&i.cssMode){let e;n.forEach(((t,s)=>{p>=t&&(e=s)})),void 0!==e&&(h=n[e>0?e-1:e])}let m=0;if(void 0!==h&&(m=l.indexOf(h),m<0&&(m=a.activeIndex-1),"auto"===i.slidesPerView&&1===i.slidesPerGroup&&i.slidesPerGroupAuto&&(m=m-a.slidesPerViewDynamic("previous",!0)+1,m=Math.max(m,0))),i.rewind&&a.isBeginning){const i=a.params.virtual&&a.params.virtual.enabled&&a.virtual?a.virtual.slides.length-1:a.slides.length-1;return a.slideTo(i,e,t,s)}return a.slideTo(m,e,t,s)},slideReset:function(e,t,s){return void 0===e&&(e=this.params.speed),void 0===t&&(t=!0),this.slideTo(this.activeIndex,e,t,s)},slideToClosest:function(e,t,s,a){void 0===e&&(e=this.params.speed),void 0===t&&(t=!0),void 0===a&&(a=.5);const i=this;let r=i.activeIndex;const n=Math.min(i.params.slidesPerGroupSkip,r),l=n+Math.floor((r-n)/i.params.slidesPerGroup),o=i.rtlTranslate?i.translate:-i.translate;if(o>=i.snapGrid[l]){const e=i.snapGrid[l];o-e>(i.snapGrid[l+1]-e)*a&&(r+=i.params.slidesPerGroup)}else{const e=i.snapGrid[l-1];o-e<=(i.snapGrid[l]-e)*a&&(r-=i.params.slidesPerGroup)}return r=Math.max(r,0),r=Math.min(r,i.slidesGrid.length-1),i.slideTo(r,e,t,s)},slideToClickedSlide:function(){const e=this,{params:t,$wrapperEl:s}=e,a="auto"===t.slidesPerView?e.slidesPerViewDynamic():t.slidesPerView;let i,r=e.clickedIndex;if(t.loop){if(e.animating)return;i=parseInt(d(e.clickedSlide).attr("data-swiper-slide-index"),10),t.centeredSlides?r<e.loopedSlides-a/2||r>e.slides.length-e.loopedSlides+a/2?(e.loopFix(),r=s.children(`.${t.slideClass}[data-swiper-slide-index="${i}"]:not(.${t.slideDuplicateClass})`).eq(0).index(),p((()=>{e.slideTo(r)}))):e.slideTo(r):r>e.slides.length-a?(e.loopFix(),r=s.children(`.${t.slideClass}[data-swiper-slide-index="${i}"]:not(.${t.slideDuplicateClass})`).eq(0).index(),p((()=>{e.slideTo(r)}))):e.slideTo(r)}else e.slideTo(r)}};var z={loopCreate:function(){const e=this,t=a(),{params:s,$wrapperEl:i}=e,r=i.children().length>0?d(i.children()[0].parentNode):i;r.children(`.${s.slideClass}.${s.slideDuplicateClass}`).remove();let n=r.children(`.${s.slideClass}`);if(s.loopFillGroupWithBlank){const e=s.slidesPerGroup-n.length%s.slidesPerGroup;if(e!==s.slidesPerGroup){for(let a=0;a<e;a+=1){const e=d(t.createElement("div")).addClass(`${s.slideClass} ${s.slideBlankClass}`);r.append(e)}n=r.children(`.${s.slideClass}`)}}"auto"!==s.slidesPerView||s.loopedSlides||(s.loopedSlides=n.length),e.loopedSlides=Math.ceil(parseFloat(s.loopedSlides||s.slidesPerView,10)),e.loopedSlides+=s.loopAdditionalSlides,e.loopedSlides>n.length&&e.params.loopedSlidesLimit&&(e.loopedSlides=n.length);const l=[],o=[];n.each(((e,t)=>{d(e).attr("data-swiper-slide-index",t)}));for(let t=0;t<e.loopedSlides;t+=1){const e=t-Math.floor(t/n.length)*n.length;o.push(n.eq(e)[0]),l.unshift(n.eq(n.length-e-1)[0])}for(let e=0;e<o.length;e+=1)r.append(d(o[e].cloneNode(!0)).addClass(s.slideDuplicateClass));for(let e=l.length-1;e>=0;e-=1)r.prepend(d(l[e].cloneNode(!0)).addClass(s.slideDuplicateClass))},loopFix:function(){const e=this;e.emit("beforeLoopFix");const{activeIndex:t,slides:s,loopedSlides:a,allowSlidePrev:i,allowSlideNext:r,snapGrid:n,rtlTranslate:l}=e;let o;e.allowSlidePrev=!0,e.allowSlideNext=!0;const d=-n[t]-e.getTranslate();if(t<a){o=s.length-3*a+t,o+=a;e.slideTo(o,0,!1,!0)&&0!==d&&e.setTranslate((l?-e.translate:e.translate)-d)}else if(t>=s.length-a){o=-s.length+t+a,o+=a;e.slideTo(o,0,!1,!0)&&0!==d&&e.setTranslate((l?-e.translate:e.translate)-d)}e.allowSlidePrev=i,e.allowSlideNext=r,e.emit("loopFix")},loopDestroy:function(){const{$wrapperEl:e,params:t,slides:s}=this;e.children(`.${t.slideClass}.${t.slideDuplicateClass},.${t.slideClass}.${t.slideBlankClass}`).remove(),s.removeAttr("data-swiper-slide-index")}};function L(e){const t=this,s=a(),i=r(),n=t.touchEventsData,{params:l,touches:o,enabled:c}=t;if(!c)return;if(t.animating&&l.preventInteractionOnTransition)return;!t.animating&&l.cssMode&&l.loop&&t.loopFix();let p=e;p.originalEvent&&(p=p.originalEvent);let h=d(p.target);if("wrapper"===l.touchEventsTarget&&!h.closest(t.wrapperEl).length)return;if(n.isTouchEvent="touchstart"===p.type,!n.isTouchEvent&&"which"in p&&3===p.which)return;if(!n.isTouchEvent&&"button"in p&&p.button>0)return;if(n.isTouched&&n.isMoved)return;
vendor: 4,890 bytes, line 11342
11342!!l.noSwipingClass&&""!==l.noSwipingClass&&p.target&&p.target.shadowRoot&&e.path&&e.path[0]&&(h=d(e.path[0]));const m=l.noSwipingSelector?l.noSwipingSelector:`.${l.noSwipingClass}`,f=!(!p.target||!p.target.shadowRoot);if(l.noSwiping&&(f?function(e,t){return void 0===t&&(t=this),function t(s){if(!s||s===a()||s===r())return null;s.assignedSlot&&(s=s.assignedSlot);const i=s.closest(e);return i||s.getRootNode?i||t(s.getRootNode().host):null}(t)}(m,h[0]):h.closest(m)[0]))return void(t.allowClick=!0);if(l.swipeHandler&&!h.closest(l.swipeHandler)[0])return;o.currentX="touchstart"===p.type?p.targetTouches[0].pageX:p.pageX,o.currentY="touchstart"===p.type?p.targetTouches[0].pageY:p.pageY;const g=o.currentX,v=o.currentY,w=l.edgeSwipeDetection||l.iOSEdgeSwipeDetection,b=l.edgeSwipeThreshold||l.iOSEdgeSwipeThreshold;if(w&&(g<=b||g>=i.innerWidth-b)){if("prevent"!==w)return;e.preventDefault()}if(Object.assign(n,{isTouched:!0,isMoved:!1,allowTouchCallbacks:!0,isScrolling:void 0,startMoving:void 0}),o.startX=g,o.startY=v,n.touchStartTime=u(),t.allowClick=!0,t.updateSize(),t.swipeDirection=void 0,l.threshold>0&&(n.allowThresholdMove=!1),"touchstart"!==p.type){let e=!0;h.is(n.focusableElements)&&(e=!1,"SELECT"===h[0].nodeName&&(n.isTouched=!1)),s.activeElement&&d(s.activeElement).is(n.focusableElements)&&s.activeElement!==h[0]&&s.activeElement.blur();const a=e&&t.allowTouchMove&&l.touchStartPreventDefault;!l.touchStartForcePreventDefault&&!a||h[0].isContentEditable||p.preventDefault()}t.params.freeMode&&t.params.freeMode.enabled&&t.freeMode&&t.animating&&!l.cssMode&&t.freeMode.onTouchStart(),t.emit("touchStart",p)}function O(e){const t=a(),s=this,i=s.touchEventsData,{params:r,touches:n,rtlTranslate:l,enabled:o}=s;if(!o)return;let c=e;if(c.originalEvent&&(c=c.originalEvent),!i.isTouched)return void(i.startMoving&&i.isScrolling&&s.emit("touchMoveOpposite",c));if(i.isTouchEvent&&"touchmove"!==c.type)return;const p="touchmove"===c.type&&c.targetTouches&&(c.targetTouches[0]||c.changedTouches[0]),h="touchmove"===c.type?p.pageX:c.pageX,m="touchmove"===c.type?p.pageY:c.pageY;if(c.preventedByNestedSwiper)return n.startX=h,void(n.startY=m);if(!s.allowTouchMove)return d(c.target).is(i.focusableElements)||(s.allowClick=!1),void(i.isTouched&&(Object.assign(n,{startX:h,startY:m,currentX:h,currentY:m}),i.touchStartTime=u()));if(i.isTouchEvent&&r.touchReleaseOnEdges&&!r.loop)if(s.isVertical()){if(m<n.startY&&s.translate<=s.maxTranslate()||m>n.startY&&s.translate>=s.minTranslate())return i.isTouched=!1,void(i.isMoved=!1)}else if(h<n.startX&&s.translate<=s.maxTranslate()||h>n.startX&&s.translate>=s.minTranslate())return;if(i.isTouchEvent&&t.activeElement&&c.target===t.activeElement&&d(c.target).is(i.focusableElements))return i.isMoved=!0,void(s.allowClick=!1);if(i.allowTouchCallbacks&&s.emit("touchMove",c),c.targetTouches&&c.targetTouches.length>1)return;n.currentX=h,n.currentY=m;const f=n.currentX-n.startX,g=n.currentY-n.startY;if(s.params.threshold&&Math.sqrt(f**2+g**2)<s.params.threshold)return;if(void 0===i.isScrolling){let e;s.isHorizontal()&&n.currentY===n.startY||s.isVertical()&&n.currentX===n.startX?i.isScrolling=!1:f*f+g*g>=25&&(e=180*Math.atan2(Math.abs(g),Math.abs(f))/Math.PI,i.isScrolling=s.isHorizontal()?e>r.touchAngle:90-e>r.touchAngle)}if(i.isScrolling&&s.emit("touchMoveOpposite",c),void 0===i.startMoving&&(n.currentX===n.startX&&n.currentY===n.startY||(i.startMoving=!0)),i.isScrolling)return void(i.isTouched=!1);if(!i.startMoving)return;s.allowClick=!1,!r.cssMode&&c.cancelable&&c.preventDefault(),r.touchMoveStopPropagation&&!r.nested&&c.stopPropagation(),i.isMoved||(r.loop&&!r.cssMode&&s.loopFix(),i.startTranslate=s.getTranslate(),s.setTransition(0),s.animating&&s.$wrapperEl.trigger("webkitTransitionEnd transitionend"),i.allowMomentumBounce=!1,!r.grabCursor||!0!==s.allowSlideNext&&!0!==s.allowSlidePrev||s.setGrabCursor(!0),s.emit("sliderFirstMove",c)),s.emit("sliderMove",c),i.isMoved=!0;let v=s.isHorizontal()?f:g;n.diff=v,v*=r.touchRatio,l&&(v=-v),s.swipeDirection=v>0?"prev":"next",i.currentTranslate=v+i.startTranslate;let w=!0,b=r.resistanceRatio;if(r.touchReleaseOnEdges&&(b=0),v>0&&i.currentTranslate>s.minTranslate()?(w=!1,r.resistance&&(i.currentTranslate=s.minTranslate()-1+(-s.minTranslate()+i.startTranslate+v)**b)):v<0&&i.currentTranslate<s.maxTranslate()&&(w=!1,r.resistance&&(i.currentTranslate=s.maxTranslate()+1-(s.maxTranslate()-i.startTranslate-v)**b)),w&&(c.preventedByNestedSwiper=!0),!s.allowSlideNext&&"next"===s.swipeDirection&&i.currentTranslate<i.startTranslate&&(i.currentTranslate=i.startTranslate),!s.allowSlidePrev&&"prev"===s.swipeDirection&&i.currentTranslate>i.startTranslate&&(i.currentTranslate=i.startTranslate),s.allowSlidePrev||s.allowSlideNext||(i.currentTranslate=i.startTranslate),r.threshold>0){if(!(Math.abs(v)>r.threshold||i.allowThresholdMove))return void(i.currentTranslate=i.startTranslate);
vendor: 17,582 bytes, line 11342
11342if(!i.allowThresholdMove)return i.allowThresholdMove=!0,n.startX=n.currentX,n.startY=n.currentY,i.currentTranslate=i.startTranslate,void(n.diff=s.isHorizontal()?n.currentX-n.startX:n.currentY-n.startY)}r.followFinger&&!r.cssMode&&((r.freeMode&&r.freeMode.enabled&&s.freeMode||r.watchSlidesProgress)&&(s.updateActiveIndex(),s.updateSlidesClasses()),s.params.freeMode&&r.freeMode.enabled&&s.freeMode&&s.freeMode.onTouchMove(),s.updateProgress(i.currentTranslate),s.setTranslate(i.currentTranslate))}function I(e){const t=this,s=t.touchEventsData,{params:a,touches:i,rtlTranslate:r,slidesGrid:n,enabled:l}=t;if(!l)return;let o=e;if(o.originalEvent&&(o=o.originalEvent),s.allowTouchCallbacks&&t.emit("touchEnd",o),s.allowTouchCallbacks=!1,!s.isTouched)return s.isMoved&&a.grabCursor&&t.setGrabCursor(!1),s.isMoved=!1,void(s.startMoving=!1);a.grabCursor&&s.isMoved&&s.isTouched&&(!0===t.allowSlideNext||!0===t.allowSlidePrev)&&t.setGrabCursor(!1);const d=u(),c=d-s.touchStartTime;if(t.allowClick){const e=o.path||o.composedPath&&o.composedPath();t.updateClickedSlide(e&&e[0]||o.target),t.emit("tap click",o),c<300&&d-s.lastClickTime<300&&t.emit("doubleTap doubleClick",o)}if(s.lastClickTime=u(),p((()=>{t.destroyed||(t.allowClick=!0)})),!s.isTouched||!s.isMoved||!t.swipeDirection||0===i.diff||s.currentTranslate===s.startTranslate)return s.isTouched=!1,s.isMoved=!1,void(s.startMoving=!1);let h;if(s.isTouched=!1,s.isMoved=!1,s.startMoving=!1,h=a.followFinger?r?t.translate:-t.translate:-s.currentTranslate,a.cssMode)return;if(t.params.freeMode&&a.freeMode.enabled)return void t.freeMode.onTouchEnd({currentPos:h});let m=0,f=t.slidesSizesGrid[0];for(let e=0;e<n.length;e+=e<a.slidesPerGroupSkip?1:a.slidesPerGroup){const t=e<a.slidesPerGroupSkip-1?1:a.slidesPerGroup;void 0!==n[e+t]?h>=n[e]&&h<n[e+t]&&(m=e,f=n[e+t]-n[e]):h>=n[e]&&(m=e,f=n[n.length-1]-n[n.length-2])}let g=null,v=null;a.rewind&&(t.isBeginning?v=t.params.virtual&&t.params.virtual.enabled&&t.virtual?t.virtual.slides.length-1:t.slides.length-1:t.isEnd&&(g=0));const w=(h-n[m])/f,b=m<a.slidesPerGroupSkip-1?1:a.slidesPerGroup;if(c>a.longSwipesMs){if(!a.longSwipes)return void t.slideTo(t.activeIndex);"next"===t.swipeDirection&&(w>=a.longSwipesRatio?t.slideTo(a.rewind&&t.isEnd?g:m+b):t.slideTo(m)),"prev"===t.swipeDirection&&(w>1-a.longSwipesRatio?t.slideTo(m+b):null!==v&&w<0&&Math.abs(w)>a.longSwipesRatio?t.slideTo(v):t.slideTo(m))}else{if(!a.shortSwipes)return void t.slideTo(t.activeIndex);t.navigation&&(o.target===t.navigation.nextEl||o.target===t.navigation.prevEl)?o.target===t.navigation.nextEl?t.slideTo(m+b):t.slideTo(m):("next"===t.swipeDirection&&t.slideTo(null!==g?g:m+b),"prev"===t.swipeDirection&&t.slideTo(null!==v?v:m))}}function A(){const e=this,{params:t,el:s}=e;if(s&&0===s.offsetWidth)return;t.breakpoints&&e.setBreakpoint();const{allowSlideNext:a,allowSlidePrev:i,snapGrid:r}=e;e.allowSlideNext=!0,e.allowSlidePrev=!0,e.updateSize(),e.updateSlides(),e.updateSlidesClasses(),("auto"===t.slidesPerView||t.slidesPerView>1)&&e.isEnd&&!e.isBeginning&&!e.params.centeredSlides?e.slideTo(e.slides.length-1,0,!1,!0):e.slideTo(e.activeIndex,0,!1,!0),e.autoplay&&e.autoplay.running&&e.autoplay.paused&&e.autoplay.run(),e.allowSlidePrev=i,e.allowSlideNext=a,e.params.watchOverflow&&r!==e.snapGrid&&e.checkOverflow()}function D(e){const t=this;t.enabled&&(t.allowClick||(t.params.preventClicks&&e.preventDefault(),t.params.preventClicksPropagation&&t.animating&&(e.stopPropagation(),e.stopImmediatePropagation())))}function G(){const e=this,{wrapperEl:t,rtlTranslate:s,enabled:a}=e;if(!a)return;let i;e.previousTranslate=e.translate,e.isHorizontal()?e.translate=-t.scrollLeft:e.translate=-t.scrollTop,0===e.translate&&(e.translate=0),e.updateActiveIndex(),e.updateSlidesClasses();const r=e.maxTranslate()-e.minTranslate();i=0===r?0:(e.translate-e.minTranslate())/r,i!==e.progress&&e.updateProgress(s?-e.translate:e.translate),e.emit("setTranslate",e.translate,!1)}let N=!1;function B(){}const H=(e,t)=>{const s=a(),{params:i,touchEvents:r,el:n,wrapperEl:l,device:o,support:d}=e,c=!!i.nested,p="on"===t?"addEventListener":"removeEventListener",u=t;if(d.touch){const t=!("touchstart"!==r.start||!d.passiveListener||!i.passiveListeners)&&{passive:!0,capture:!1};n[p](r.start,e.onTouchStart,t),n[p](r.move,e.onTouchMove,d.passiveListener?{passive:!1,capture:c}:c),n[p](r.end,e.onTouchEnd,t),r.cancel&&n[p](r.cancel,e.onTouchEnd,t)}else n[p](r.start,e.onTouchStart,!1),s[p](r.move,e.onTouchMove,c),s[p](r.end,e.onTouchEnd,!1);(i.preventClicks||i.preventClicksPropagation)&&n[p]("click",e.onClick,!0),i.cssMode&&l[p]("scroll",e.onScroll),i.updateOnWindowResize?e[u](o.ios||o.android?"resize orientationchange observerUpdate":"resize observerUpdate",A,!0):e[u]("observerUpdate",A,!0)};var X={attachEvents:function(){const e=this,t=a(),{params:s,support:i}=e;e.onTouchStart=L.bind(e),e.onTouchMove=O.bind(e),e.onTouchEnd=I.bind(e),s.cssMode&&(e.onScroll=G.bind(e)),e.onClick=D.bind(e),i.touch&&!N&&(t.addEventListener("touchstart",B),N=!0),H(e,"on")},detachEvents:function(){H(this,"off")}};const Y=(e,t)=>e.grid&&t.grid&&t.grid.rows>1;var R={addClasses:function(){const e=this,{classNames:t,params:s,rtl:a,$el:i,device:r,support:n}=e,l=function(e,t){const s=[];return e.forEach((e=>{"object"==typeof e?Object.keys(e).forEach((a=>{e[a]&&s.push(t+a)})):"string"==typeof e&&s.push(t+e)})),s}(["initialized",s.direction,{"pointer-events":!n.touch},{"free-mode":e.params.freeMode&&s.freeMode.enabled},{autoheight:s.autoHeight},{rtl:a},{grid:s.grid&&s.grid.rows>1},{"grid-column":s.grid&&s.grid.rows>1&&"column"===s.grid.fill},{android:r.android},{ios:r.ios},{"css-mode":s.cssMode},{centered:s.cssMode&&s.centeredSlides},{"watch-progress":s.watchSlidesProgress}],s.containerModifierClass);t.push(...l),i.addClass([...t].join(" ")),e.emitContainerClasses()},removeClasses:function(){const{$el:e,classNames:t}=this;e.removeClass(t.join(" ")),this.emitContainerClasses()}};var W={init:!0,direction:"horizontal",touchEventsTarget:"wrapper",initialSlide:0,speed:300,cssMode:!1,updateOnWindowResize:!0,resizeObserver:!0,nested:!1,createElements:!1,enabled:!0,focusableElements:"input, select, option, textarea, button, video, label",width:null,height:null,preventInteractionOnTransition:!1,userAgent:null,url:null,edgeSwipeDetection:!1,edgeSwipeThreshold:20,autoHeight:!1,setWrapperSize:!1,virtualTranslate:!1,effect:"slide",breakpoints:void 0,breakpointsBase:"window",spaceBetween:0,slidesPerView:1,slidesPerGroup:1,slidesPerGroupSkip:0,slidesPerGroupAuto:!1,centeredSlides:!1,centeredSlidesBounds:!1,slidesOffsetBefore:0,slidesOffsetAfter:0,normalizeSlideIndex:!0,centerInsufficientSlides:!1,watchOverflow:!0,roundLengths:!1,touchRatio:1,touchAngle:45,simulateTouch:!0,shortSwipes:!0,longSwipes:!0,longSwipesRatio:.5,longSwipesMs:300,followFinger:!0,allowTouchMove:!0,threshold:0,touchMoveStopPropagation:!1,touchStartPreventDefault:!0,touchStartForcePreventDefault:!1,touchReleaseOnEdges:!1,uniqueNavElements:!0,resistance:!0,resistanceRatio:.85,watchSlidesProgress:!1,grabCursor:!1,preventClicks:!0,preventClicksPropagation:!0,slideToClickedSlide:!1,preloadImages:!0,updateOnImagesReady:!0,loop:!1,loopAdditionalSlides:0,loopedSlides:null,loopedSlidesLimit:!0,loopFillGroupWithBlank:!1,loopPreventsSlide:!0,rewind:!1,allowSlidePrev:!0,allowSlideNext:!0,swipeHandler:null,noSwiping:!0,noSwipingClass:"swiper-no-swiping",noSwipingSelector:null,passiveListeners:!0,maxBackfaceHiddenSlides:10,containerModifierClass:"swiper-",slideClass:"swiper-slide",slideBlankClass:"swiper-slide-invisible-blank",slideActiveClass:"swiper-slide-active",slideDuplicateActiveClass:"swiper-slide-duplicate-active",slideVisibleClass:"swiper-slide-visible",slideDuplicateClass:"swiper-slide-duplicate",slideNextClass:"swiper-slide-next",slideDuplicateNextClass:"swiper-slide-duplicate-next",slidePrevClass:"swiper-slide-prev",slideDuplicatePrevClass:"swiper-slide-duplicate-prev",wrapperClass:"swiper-wrapper",runCallbacksOnInit:!0,_emitClasses:!1};function j(e,t){return function(s){void 0===s&&(s={});const a=Object.keys(s)[0],i=s[a];"object"==typeof i&&null!==i?(["navigation","pagination","scrollbar"].indexOf(a)>=0&&!0===e[a]&&(e[a]={auto:!0}),a in e&&"enabled"in i?(!0===e[a]&&(e[a]={enabled:!0}),"object"!=typeof e[a]||"enabled"in e[a]||(e[a].enabled=!0),e[a]||(e[a]={enabled:!1}),g(t,s)):g(t,s)):g(t,s)}}const q={eventsEmitter:$,update:S,translate:M,transition:{setTransition:function(e,t){const s=this;s.params.cssMode||s.$wrapperEl.transition(e),s.emit("setTransition",e,t)},transitionStart:function(e,t){void 0===e&&(e=!0);const s=this,{params:a}=s;a.cssMode||(a.autoHeight&&s.updateAutoHeight(),P({swiper:s,runCallbacks:e,direction:t,step:"Start"}))},transitionEnd:function(e,t){void 0===e&&(e=!0);const s=this,{params:a}=s;s.animating=!1,a.cssMode||(s.setTransition(0),P({swiper:s,runCallbacks:e,direction:t,step:"End"}))}},slide:k,loop:z,grabCursor:{setGrabCursor:function(e){const t=this;if(t.support.touch||!t.params.simulateTouch||t.params.watchOverflow&&t.isLocked||t.params.cssMode)return;const s="container"===t.params.touchEventsTarget?t.el:t.wrapperEl;s.style.cursor="move",s.style.cursor=e?"grabbing":"grab"},unsetGrabCursor:function(){const e=this;e.support.touch||e.params.watchOverflow&&e.isLocked||e.params.cssMode||(e["container"===e.params.touchEventsTarget?"el":"wrapperEl"].style.cursor="")}},events:X,breakpoints:{setBreakpoint:function(){const e=this,{activeIndex:t,initialized:s,loopedSlides:a=0,params:i,$el:r}=e,n=i.breakpoints;if(!n||n&&0===Object.keys(n).length)return;const l=e.getBreakpoint(n,e.params.breakpointsBase,e.el);if(!l||e.currentBreakpoint===l)return;const o=(l in n?n[l]:void 0)||e.originalParams,d=Y(e,i),c=Y(e,o),p=i.enabled;d&&!c?(r.removeClass(`${i.containerModifierClass}grid ${i.containerModifierClass}grid-column`),e.emitContainerClasses()):!d&&c&&(r.addClass(`${i.containerModifierClass}grid`),(o.grid.fill&&"column"===o.grid.fill||!o.grid.fill&&"column"===i.grid.fill)&&r.addClass(`${i.containerModifierClass}grid-column`),e.emitContainerClasses()),["navigation","pagination","scrollbar"].forEach((t=>{const s=i[t]&&i[t].enabled,a=o[t]&&o[t].enabled;s&&!a&&e[t].disable(),!s&&a&&e[t].enable()}));const u=o.direction&&o.direction!==i.direction,h=i.loop&&(o.slidesPerView!==i.slidesPerView||u);u&&s&&e.changeDirection(),g(e.params,o);const m=e.params.enabled;Object.assign(e,{allowTouchMove:e.params.allowTouchMove,allowSlideNext:e.params.allowSlideNext,allowSlidePrev:e.params.allowSlidePrev}),p&&!m?e.disable():!p&&m&&e.enable(),e.currentBreakpoint=l,e.emit("_beforeBreakpoint",o),h&&s&&(e.loopDestroy(),e.loopCreate(),e.updateSlides(),e.slideTo(t-a+e.loopedSlides,0,!1)),e.emit("breakpoint",o)},getBreakpoint:function(e,t,s){if(void 0===t&&(t="window"),!e||"container"===t&&!s)return;let a=!1;const i=r(),n="window"===t?i.innerHeight:s.clientHeight,l=Object.keys(e).map((e=>{if("string"==typeof e&&0===e.indexOf("@")){const t=parseFloat(e.substr(1));return{value:n*t,point:e}}return{value:e,point:e}}));l.sort(((e,t)=>parseInt(e.value,10)-parseInt(t.value,10)));for(let e=0;e<l.length;e+=1){const{point:r,value:n}=l[e];"window"===t?i.matchMedia(`(min-width: ${n}px)`).matches&&(a=r):n<=s.clientWidth&&(a=r)}return a||"max"}},checkOverflow:{checkOverflow:function(){const e=this,{isLocked:t,params:s}=e,{slidesOffsetBefore:a}=s;if(a){const t=e.slides.length-1,s=e.slidesGrid[t]+e.slidesSizesGrid[t]+2*a;e.isLocked=e.size>s}else e.isLocked=1===e.snapGrid.length;!0===s.allowSlideNext&&(e.allowSlideNext=!e.isLocked),!0===s.allowSlidePrev&&(e.allowSlidePrev=!e.isLocked),t&&t!==e.isLocked&&(e.isEnd=!1),t!==e.isLocked&&e.emit(e.isLocked?"lock":"unlock")}},classes:R,images:{loadImage:function(e,t,s,a,i,n){const l=r();let o;function c(){n&&n()}d(e).parent("picture")[0]||e.complete&&i?c():t?(o=new l.Image,o.onload=c,o.onerror=c,a&&(o.sizes=a),s&&(o.srcset=s),t&&(o.src=t)):c()},preloadImages:function(){const e=this;function t(){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")))}e.imagesToLoad=e.$el.find("img");for(let s=0;s<e.imagesToLoad.length;s+=1){const a=e.imagesToLoad[s];e.loadImage(a,a.currentSrc||a.getAttribute("src"),a.srcset||a.getAttribute("srcset"),a.sizes||a.getAttribute("sizes"),!0,t)}}}},_={};class V{constructor(){let e,t;for(var s=arguments.length,a=new Array(s),i=0;i<s;i++)a[i]=arguments[i];if(1===a.length&&a[0].constructor&&"Object"===Object.prototype.toString.call(a[0]).slice(8,-1)?t=a[0]:[e,t]=a,t||(t={}),t=g({},t),e&&!t.el&&(t.el=e),t.el&&d(t.el).length>1){const e=[];return d(t.el).each((s=>{const a=g({},t,{el:s});e.push(new V(a))})),e}const r=this;r.__swiper__=!0,r.support=E(),r.device=C({userAgent:t.userAgent}),r.browser=T(),r.eventsListeners={},r.eventsAnyListeners=[],r.modules=[...r.__modules__],t.modules&&Array.isArray(t.modules)&&r.modules.push(...t.modules);const n={};r.modules.forEach((e=>{e({swiper:r,extendParams:j(t,n),on:r.on.bind(r),once:r.once.bind(r),off:r.off.bind(r),emit:r.emit.bind(r)})}));const l=g({},W,n);return r.params=g({},l,_,t),r.originalParams=g({},r.params),r.passedParams=g({},t),r.params&&r.params.on&&Object.keys(r.params.on).forEach((e=>{r.on(e,r.params.on[e])})),r.params&&r.params.onAny&&r.onAny(r.params.onAny),r.$=d,Object.assign(r,{enabled:r.params.enabled,el:e,classNames:[],slides:d(),slidesGrid:[],snapGrid:[],slidesSizesGrid:[],isHorizontal:()=>"horizontal"===r.params.direction,isVertical:()=>"vertical"===r.params.direction,activeIndex:0,realIndex:0,isBeginning:!0,isEnd:!1,translate:0,previousTranslate:0,progress:0,velocity:0,animating:!1,allowSlideNext:r.params.allowSlideNext,allowSlidePrev:r.params.allowSlidePrev,touchEvents:function(){const e=["touchstart","touchmove","touchend","touchcancel"],t=["pointerdown","pointermove","pointerup"];return r.touchEventsTouch={start:e[0],move:e[1],end:e[2],cancel:e[3]},r.touchEventsDesktop={start:t[0],move:t[1],end:t[2]},r.support.touch||!r.params.simulateTouch?r.touchEventsTouch:r.touchEventsDesktop}(),touchEventsData:{isTouched:void 0,isMoved:void 0,allowTouchCallbacks:void 0,touchStartTime:void 0,isScrolling:void 0,currentTranslate:void 0,startTranslate:void 0,allowThresholdMove:void 0,focusableElements:r.params.focusableElements,lastClickTime:u(),clickTimeout:void 0,velocities:[],allowMomentumBounce:void 0,isTouchEvent:void 0,startMoving:void 0},allowClick:!0,allowTouchMove:r.params.allowTouchMove,touches:{startX:0,startY:0,currentX:0,currentY:0,diff:0},imagesToLoad:[],imagesLoaded:0}),r.emit("_swiper"),r.params.init&&r.init(),r}enable(){const e=this;e.enabled||(e.enabled=!0,e.params.grabCursor&&e.setGrabCursor(),e.emit("enable"))}disable(){const e=this;e.enabled&&(e.enabled=!1,e.params.grabCursor&&e.unsetGrabCursor(),e.emit("disable"))}setProgress(e,t){const s=this;e=Math.min(Math.max(e,0),1);const a=s.minTranslate(),i=(s.maxTranslate()-a)*e+a;s.translateTo(i,void 0===t?0:t),s.updateActiveIndex(),s.updateSlidesClasses()}emitContainerClasses(){const e=this;if(!e.params._emitClasses||!e.el)return;const t=e.el.className.split(" ").filter((t=>0===t.indexOf("swiper")||0===t.indexOf(e.params.containerModifierClass)));e.emit("_containerClasses",t.join(" "))}getSlideClasses(e){const t=this;return t.destroyed?"":e.className.split(" ").filter((e=>0===e.indexOf("swiper-slide")||0===e.indexOf(t.params.slideClass))).join(" ")}emitSlidesClasses(){const e=this;if(!e.params._emitClasses||!e.el)return;const t=[];e.slides.each((s=>{const a=e.getSlideClasses(s);t.push({slideEl:s,classNames:a}),e.emit("_slideClass",s,a)})),e.emit("_slideClasses",t)}slidesPerViewDynamic(e,t){void 0===e&&(e="current"),void 0===t&&(t=!1);const{params:s,slides:a,slidesGrid:i,slidesSizesGrid:r,size:n,activeIndex:l}=this;let o=1;if(s.centeredSlides){let e,t=a[l].swiperSlideSize;for(let s=l+1;s<a.length;s+=1)a[s]&&!e&&(t+=a[s].swiperSlideSize,o+=1,t>n&&(e=!0));for(let s=l-1;s>=0;s-=1)a[s]&&!e&&(t+=a[s].swiperSlideSize,o+=1,t>n&&(e=!0))}else if("current"===e)for(let e=l+1;e<a.length;e+=1){(t?i[e]+r[e]-i[l]<n:i[e]-i[l]<n)&&(o+=1)}else for(let e=l-1;e>=0;e-=1){i[l]-i[e]<n&&(o+=1)}return o}update(){const e=this;if(!e||e.destroyed)return;const{snapGrid:t,params:s}=e;function a(){const t=e.rtlTranslate?-1*e.translate:e.translate,s=Math.min(Math.max(t,e.maxTranslate()),e.minTranslate());e.setTranslate(s),e.updateActiveIndex(),e.updateSlidesClasses()}let i;s.breakpoints&&e.setBreakpoint(),e.updateSize(),e.updateSlides(),e.updateProgress(),e.updateSlidesClasses(),e.params.freeMode&&e.params.freeMode.enabled?(a(),e.params.autoHeight&&e.updateAutoHeight()):(i=("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),i||a()),s.watchOverflow&&t!==e.snapGrid&&e.checkOverflow(),e.emit("update")}changeDirection(e,t){void 0===t&&(t=!0);const s=this,a=s.params.direction;return e||(e="horizontal"===a?"vertical":"horizontal"),e===a||"horizontal"!==e&&"vertical"!==e||(s.$el.removeClass(`${s.params.containerModifierClass}${a}`).addClass(`${s.params.containerModifierClass}${e}`),s.emitContainerClasses(),s.params.direction=e,s.slides.each((t=>{"vertical"===e?t.style.width="":t.style.height=""})),s.emit("changeDirection"),t&&s.update()),s}changeLanguageDirection(e){const t=this;t.rtl&&"rtl"===e||!t.rtl&&"ltr"===e||(t.rtl="rtl"===e,t.rtlTranslate="horizontal"===t.params.direction&&t.rtl,t.rtl?(t.$el.addClass(`${t.params.containerModifierClass}rtl`),t.el.dir="rtl"):(t.$el.removeClass(`${t.params.containerModifierClass}
11342rtl`),t.el.dir="ltr"),t.update())}mount(e){const t=this;if(t.mounted)return!0;const s=d(e||t.params.el);if(!(e=s[0]))return!1;e.swiper=t;const i=()=>`.${(t.params.wrapperClass||"").trim().split(" ").join(".")}`;let r=(()=>{if(e&&e.shadowRoot&&e.shadowRoot.querySelector){const t=d(e.shadowRoot.querySelector(i()));return t.children=e=>s.children(e),t}return s.children?s.children(i()):d(s).children(i())})();if(0===r.length&&t.params.createElements){const e=a().createElement("div");r=d(e),e.className=t.params.wrapperClass,s.append(e),s.children(`.${t.params.slideClass}`).each((e=>{r.append(e)}))}return Object.assign(t,{$el:s,el:e,$wrapperEl:r,wrapperEl:r[0],mounted:!0,rtl:"rtl"===e.dir.toLowerCase()||"rtl"===s.css("direction"),rtlTranslate:"horizontal"===t.params.direction&&("rtl"===e.dir.toLowerCase()||"rtl"===s.css("direction")),wrongRTL:"-webkit-box"===r.css("display")}),!0}init(e){const t=this;if(t.initialized)return t;return!1===t.mount(e)||(t.emit("beforeInit"),t.params.breakpoints&&t.setBreakpoint(),t.addClasses(),t.params.loop&&t.loopCreate(),t.updateSize(),t.updateSlides(),t.params.watchOverflow&&t.checkOverflow(),t.params.grabCursor&&t.enabled&&t.setGrabCursor(),t.params.preloadImages&&t.preloadImages(),t.params.loop?t.slideTo(t.params.initialSlide+t.loopedSlides,0,t.params.runCallbacksOnInit,!1,!0):t.slideTo(t.params.initialSlide,0,t.params.runCallbacksOnInit,!1,!0),t.attachEvents(),t.initialized=!0,t.emit("init"),t.emit("afterInit")),t}destroy(e,t){void 0===e&&(e=!0),void 0===t&&(t=!0);const s=this,{params:a,$el:i,$wrapperEl:r,slides:n}=s;return void 0===s.params||s.destroyed||(s.emit("beforeDestroy"),s.initialized=!1,s.detachEvents(),a.loop&&s.loopDestroy(),t&&(s.removeClasses(),i.removeAttr("style"),r.removeAttr("style"),n&&n.length&&n.removeClass([a.slideVisibleClass,a.slideActiveClass,a.slideNextClass,a.slidePrevClass].join(" ")).removeAttr("style").removeAttr("data-swiper-slide-index")),s.emit("destroy"),Object.keys(s.eventsListeners).forEach((e=>{s.off(e)})),!1!==e&&(s.$el[0].swiper=null,function(e){const t=e;Object.keys(t).forEach((e=>{try{t[e]=null}catch(e){}try{delete t[e]}catch(e){}}))}(s)),s.destroyed=!0),null}static extendDefaults(e){g(_,e)}static get extendedDefaults(){return _}static get defaults(){return W}static installModule(e){V.prototype.__modules__||(V.prototype.__modules__=[]);const t=V.prototype.__modules__;"function"==typeof e&&t.indexOf(e)<0&&t.push(e)}static use(e){return Array.isArray(e)?(e.forEach((e=>V.installModule(e))),V):(V.installModule(e),V)}}function F(e,t,s,i){const r=a();
vendor: 19,085 bytes, line 11342
11342return e.params.createElements&&Object.keys(i).forEach((a=>{if(!s[a]&&!0===s.auto){let n=e.$el.children(`.${i[a]}`)[0];n||(n=r.createElement("div"),n.className=i[a],e.$el.append(n)),s[a]=n,t[a]=n}})),s}function U(e){return void 0===e&&(e=""),`.${e.trim().replace(/([\.:!\/])/g,"\\$1").replace(/ /g,".")}`}function K(e){const t=this,{$wrapperEl:s,params:a}=t;if(a.loop&&t.loopDestroy(),"object"==typeof e&&"length"in e)for(let t=0;t<e.length;t+=1)e[t]&&s.append(e[t]);else s.append(e);a.loop&&t.loopCreate(),a.observer||t.update()}function Z(e){const t=this,{params:s,$wrapperEl:a,activeIndex:i}=t;s.loop&&t.loopDestroy();let r=i+1;if("object"==typeof e&&"length"in e){for(let t=0;t<e.length;t+=1)e[t]&&a.prepend(e[t]);r=i+e.length}else a.prepend(e);s.loop&&t.loopCreate(),s.observer||t.update(),t.slideTo(r,0,!1)}function Q(e,t){const s=this,{$wrapperEl:a,params:i,activeIndex:r}=s;let n=r;i.loop&&(n-=s.loopedSlides,s.loopDestroy(),s.slides=a.children(`.${i.slideClass}`));const l=s.slides.length;if(e<=0)return void s.prependSlide(t);if(e>=l)return void s.appendSlide(t);let o=n>e?n+1:n;const d=[];for(let t=l-1;t>=e;t-=1){const e=s.slides.eq(t);e.remove(),d.unshift(e)}if("object"==typeof t&&"length"in t){for(let e=0;e<t.length;e+=1)t[e]&&a.append(t[e]);o=n>e?n+t.length:n}else a.append(t);for(let e=0;e<d.length;e+=1)a.append(d[e]);i.loop&&s.loopCreate(),i.observer||s.update(),i.loop?s.slideTo(o+s.loopedSlides,0,!1):s.slideTo(o,0,!1)}function J(e){const t=this,{params:s,$wrapperEl:a,activeIndex:i}=t;let r=i;s.loop&&(r-=t.loopedSlides,t.loopDestroy(),t.slides=a.children(`.${s.slideClass}`));let n,l=r;if("object"==typeof e&&"length"in e){for(let s=0;s<e.length;s+=1)n=e[s],t.slides[n]&&t.slides.eq(n).remove(),n<l&&(l-=1);l=Math.max(l,0)}else n=e,t.slides[n]&&t.slides.eq(n).remove(),n<l&&(l-=1),l=Math.max(l,0);s.loop&&t.loopCreate(),s.observer||t.update(),s.loop?t.slideTo(l+t.loopedSlides,0,!1):t.slideTo(l,0,!1)}function ee(){const e=this,t=[];for(let s=0;s<e.slides.length;s+=1)t.push(s);e.removeSlide(t)}function te(e){const{effect:t,swiper:s,on:a,setTranslate:i,setTransition:r,overwriteParams:n,perspective:l,recreateShadows:o,getEffectParams:d}=e;let c;a("beforeInit",(()=>{if(s.params.effect!==t)return;s.classNames.push(`${s.params.containerModifierClass}${t}`),l&&l()&&s.classNames.push(`${s.params.containerModifierClass}3d`);const e=n?n():{};Object.assign(s.params,e),Object.assign(s.originalParams,e)})),a("setTranslate",(()=>{s.params.effect===t&&i()})),a("setTransition",((e,a)=>{s.params.effect===t&&r(a)})),a("transitionEnd",(()=>{if(s.params.effect===t&&o){if(!d||!d().slideShadows)return;s.slides.each((e=>{s.$(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").remove()})),o()}})),a("virtualUpdate",(()=>{s.params.effect===t&&(s.slides.length||(c=!0),requestAnimationFrame((()=>{c&&s.slides&&s.slides.length&&(i(),c=!1)})))}))}function se(e,t){return e.transformEl?t.find(e.transformEl).css({"backface-visibility":"hidden","-webkit-backface-visibility":"hidden"}):t}function ae(e){let{swiper:t,duration:s,transformEl:a,allSlides:i}=e;const{slides:r,activeIndex:n,$wrapperEl:l}=t;if(t.params.virtualTranslate&&0!==s){let e,s=!1;e=i?a?r.find(a):r:a?r.eq(n).find(a):r.eq(n),e.transitionEnd((()=>{if(s)return;if(!t||t.destroyed)return;s=!0,t.animating=!1;const e=["webkitTransitionEnd","transitionend"];for(let t=0;t<e.length;t+=1)l.trigger(e[t])}))}}function ie(e,t,s){const a="swiper-slide-shadow"+(s?`-${s}`:""),i=e.transformEl?t.find(e.transformEl):t;let r=i.children(`.${a}`);return r.length||(r=d(`<div class="swiper-slide-shadow${s?`-${s}`:""}"></div>`),i.append(r)),r}Object.keys(q).forEach((e=>{Object.keys(q[e]).forEach((t=>{V.prototype[t]=q[e][t]}))})),V.use([function(e){let{swiper:t,on:s,emit:a}=e;const i=r();let n=null,l=null;const o=()=>{t&&!t.destroyed&&t.initialized&&(a("beforeResize"),a("resize"))},d=()=>{t&&!t.destroyed&&t.initialized&&a("orientationchange")};s("init",(()=>{t.params.resizeObserver&&void 0!==i.ResizeObserver?t&&!t.destroyed&&t.initialized&&(n=new ResizeObserver((e=>{l=i.requestAnimationFrame((()=>{const{width:s,height:a}=t;let i=s,r=a;e.forEach((e=>{let{contentBoxSize:s,contentRect:a,target:n}=e;n&&n!==t.el||(i=a?a.width:(s[0]||s).inlineSize,r=a?a.height:(s[0]||s).blockSize)})),i===s&&r===a||o()}))})),n.observe(t.el)):(i.addEventListener("resize",o),i.addEventListener("orientationchange",d))})),s("destroy",(()=>{l&&i.cancelAnimationFrame(l),n&&n.unobserve&&t.el&&(n.unobserve(t.el),n=null),i.removeEventListener("resize",o),i.removeEventListener("orientationchange",d)}))},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;const n=[],l=r(),o=function(e,t){void 0===t&&(t={});const s=new(l.MutationObserver||l.WebkitMutationObserver)((e=>{if(1===e.length)return void i("observerUpdate",e[0]);const t=function(){i("observerUpdate",e[0])};l.requestAnimationFrame?l.requestAnimationFrame(t):l.setTimeout(t,0)}));s.observe(e,{attributes:void 0===t.attributes||t.attributes,childList:void 0===t.childList||t.childList,characterData:void 0===t.characterData||t.characterData}),n.push(s)};s({observer:!1,observeParents:!1,observeSlideChildren:!1}),a("init",(()=>{if(t.params.observer){if(t.params.observeParents){const e=t.$el.parents();for(let t=0;t<e.length;t+=1)o(e[t])}o(t.$el[0],{childList:t.params.observeSlideChildren}),o(t.$wrapperEl[0],{attributes:!1})}})),a("destroy",(()=>{n.forEach((e=>{e.disconnect()})),n.splice(0,n.length)}))}]);const re=[function(e){let t,{swiper:s,extendParams:a,on:i,emit:r}=e;function n(e,t){const a=s.params.virtual;if(a.cache&&s.virtual.cache[t])return s.virtual.cache[t];const i=a.renderSlide?d(a.renderSlide.call(s,e,t)):d(`<div class="${s.params.slideClass}" data-swiper-slide-index="${t}">${e}</div>`);return i.attr("data-swiper-slide-index")||i.attr("data-swiper-slide-index",t),a.cache&&(s.virtual.cache[t]=i),i}function l(e){const{slidesPerView:t,slidesPerGroup:a,centeredSlides:i}=s.params,{addSlidesBefore:l,addSlidesAfter:o}=s.params.virtual,{from:d,to:c,slides:p,slidesGrid:u,offset:h}=s.virtual;s.params.cssMode||s.updateActiveIndex();const m=s.activeIndex||0;let f,g,v;f=s.rtlTranslate?"right":s.isHorizontal()?"left":"top",i?(g=Math.floor(t/2)+a+o,v=Math.floor(t/2)+a+l):(g=t+(a-1)+o,v=a+l);const w=Math.max((m||0)-v,0),b=Math.min((m||0)+g,p.length-1),x=(s.slidesGrid[w]||0)-(s.slidesGrid[0]||0);function y(){s.updateSlides(),s.updateProgress(),s.updateSlidesClasses(),s.lazy&&s.params.lazy.enabled&&s.lazy.load(),r("virtualUpdate")}if(Object.assign(s.virtual,{from:w,to:b,offset:x,slidesGrid:s.slidesGrid}),d===w&&c===b&&!e)return s.slidesGrid!==u&&x!==h&&s.slides.css(f,`${x}px`),s.updateProgress(),void r("virtualUpdate");if(s.params.virtual.renderExternal)return s.params.virtual.renderExternal.call(s,{offset:x,from:w,to:b,slides:function(){const e=[];for(let t=w;t<=b;t+=1)e.push(p[t]);return e}()}),void(s.params.virtual.renderExternalUpdate?y():r("virtualUpdate"));const E=[],C=[];if(e)s.$wrapperEl.find(`.${s.params.slideClass}`).remove();else for(let e=d;e<=c;e+=1)(e<w||e>b)&&s.$wrapperEl.find(`.${s.params.slideClass}[data-swiper-slide-index="${e}"]`).remove();for(let t=0;t<p.length;t+=1)t>=w&&t<=b&&(void 0===c||e?C.push(t):(t>c&&C.push(t),t<d&&E.push(t)));C.forEach((e=>{s.$wrapperEl.append(n(p[e],e))})),E.sort(((e,t)=>t-e)).forEach((e=>{s.$wrapperEl.prepend(n(p[e],e))})),s.$wrapperEl.children(".swiper-slide").css(f,`${x}px`),y()}a({virtual:{enabled:!1,slides:[],cache:!0,renderSlide:null,renderExternal:null,renderExternalUpdate:!0,addSlidesBefore:0,addSlidesAfter:0}}),s.virtual={cache:{},from:void 0,to:void 0,slides:[],offset:0,slidesGrid:[]},i("beforeInit",(()=>{s.params.virtual.enabled&&(s.virtual.slides=s.params.virtual.slides,s.classNames.push(`${s.params.containerModifierClass}virtual`),s.params.watchSlidesProgress=!0,s.originalParams.watchSlidesProgress=!0,s.params.initialSlide||l())})),i("setTranslate",(()=>{s.params.virtual.enabled&&(s.params.cssMode&&!s._immediateVirtual?(clearTimeout(t),t=setTimeout((()=>{l()}),100)):l())})),i("init update resize",(()=>{s.params.virtual.enabled&&s.params.cssMode&&v(s.wrapperEl,"--swiper-virtual-size",`${s.virtualSize}px`)})),Object.assign(s.virtual,{appendSlide:function(e){if("object"==typeof e&&"length"in e)for(let t=0;t<e.length;t+=1)e[t]&&s.virtual.slides.push(e[t]);else s.virtual.slides.push(e);l(!0)},prependSlide:function(e){const t=s.activeIndex;let a=t+1,i=1;if(Array.isArray(e)){for(let t=0;t<e.length;t+=1)e[t]&&s.virtual.slides.unshift(e[t]);a=t+e.length,i=e.length}else s.virtual.slides.unshift(e);if(s.params.virtual.cache){const e=s.virtual.cache,t={};Object.keys(e).forEach((s=>{const a=e[s],r=a.attr("data-swiper-slide-index");r&&a.attr("data-swiper-slide-index",parseInt(r,10)+i),t[parseInt(s,10)+i]=a})),s.virtual.cache=t}l(!0),s.slideTo(a,0)},removeSlide:function(e){if(null==e)return;let t=s.activeIndex;if(Array.isArray(e))for(let a=e.length-1;a>=0;a-=1)s.virtual.slides.splice(e[a],1),s.params.virtual.cache&&delete s.virtual.cache[e[a]],e[a]<t&&(t-=1),t=Math.max(t,0);else s.virtual.slides.splice(e,1),s.params.virtual.cache&&delete s.virtual.cache[e],e<t&&(t-=1),t=Math.max(t,0);l(!0),s.slideTo(t,0)},removeAllSlides:function(){s.virtual.slides=[],s.params.virtual.cache&&(s.virtual.cache={}),l(!0),s.slideTo(0,0)},update:l})},function(e){let{swiper:t,extendParams:s,on:i,emit:n}=e;const l=a(),o=r();function c(e){if(!t.enabled)return;const{rtlTranslate:s}=t;let a=e;a.originalEvent&&(a=a.originalEvent);const i=a.keyCode||a.charCode,r=t.params.keyboard.pageUpDown,d=r&&33===i,c=r&&34===i,p=37===i,u=39===i,h=38===i,m=40===i;if(!t.allowSlideNext&&(t.isHorizontal()&&u||t.isVertical()&&m||c))return!1;if(!t.allowSlidePrev&&(t.isHorizontal()&&p||t.isVertical()&&h||d))return!1;if(!(a.shiftKey||a.altKey||a.ctrlKey||a.metaKey||l.activeElement&&l.activeElement.nodeName&&("input"===l.activeElement.nodeName.toLowerCase()||"textarea"===l.activeElement.nodeName.toLowerCase()))){if(t.params.keyboard.onlyInViewport&&(d||c||p||u||h||m)){let e=!1;if(t.$el.parents(`.${t.params.slideClass}`).length>0&&0===t.$el.parents(`.${t.params.slideActiveClass}`).length)return;const a=t.$el,i=a[0].clientWidth,r=a[0].clientHeight,n=o.innerWidth,l=o.innerHeight,d=t.$el.offset();s&&(d.left-=t.$el[0].scrollLeft);const c=[[d.left,d.top],[d.left+i,d.top],[d.left,d.top+r],[d.left+i,d.top+r]];for(let t=0;t<c.length;t+=1){const s=c[t];if(s[0]>=0&&s[0]<=n&&s[1]>=0&&s[1]<=l){if(0===s[0]&&0===s[1])continue;e=!0}}if(!e)return}t.isHorizontal()?((d||c||p||u)&&(a.preventDefault?a.preventDefault():a.returnValue=!1),((c||u)&&!s||(d||p)&&s)&&t.slideNext(),((d||p)&&!s||(c||u)&&s)&&t.slidePrev()):((d||c||h||m)&&(a.preventDefault?a.preventDefault():a.returnValue=!1),(c||m)&&t.slideNext(),(d||h)&&t.slidePrev()),n("keyPress",i)}}function p(){t.keyboard.enabled||(d(l).on("keydown",c),t.keyboard.enabled=!0)}function u(){t.keyboard.enabled&&(d(l).off("keydown",c),t.keyboard.enabled=!1)}t.keyboard={enabled:!1},s({keyboard:{enabled:!1,onlyInViewport:!0,pageUpDown:!0}}),i("init",(()=>{t.params.keyboard.enabled&&p()})),i("destroy",(()=>{t.keyboard.enabled&&u()})),Object.assign(t.keyboard,{enable:p,disable:u})},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;const n=r();let l;s({mousewheel:{enabled:!1,releaseOnEdges:!1,invert:!1,forceToAxis:!1,sensitivity:1,eventsTarget:"container",thresholdDelta:null,thresholdTime:null}}),t.mousewheel={enabled:!1};let o,c=u();const h=[];function m(){t.enabled&&(t.mouseEntered=!0)}function f(){t.enabled&&(t.mouseEntered=!1)}function g(e){return!(t.params.mousewheel.thresholdDelta&&e.delta<t.params.mousewheel.thresholdDelta)&&(!(t.params.mousewheel.thresholdTime&&u()-c<t.params.mousewheel.thresholdTime)&&(e.delta>=6&&u()-c<60||(e.direction<0?t.isEnd&&!t.params.loop||t.animating||(t.slideNext(),i("scroll",e.raw)):t.isBeginning&&!t.params.loop||t.animating||(t.slidePrev(),i("scroll",e.raw)),c=(new n.Date).getTime(),!1)))}function v(e){let s=e,a=!0;if(!t.enabled)return;const r=t.params.mousewheel;t.params.cssMode&&s.preventDefault();let n=t.$el;if("container"!==t.params.mousewheel.eventsTarget&&(n=d(t.params.mousewheel.eventsTarget)),!t.mouseEntered&&!n[0].contains(s.target)&&!r.releaseOnEdges)return!0;s.originalEvent&&(s=s.originalEvent);let c=0;const m=t.rtlTranslate?-1:1,f=function(e){let t=0,s=0,a=0,i=0;return"detail"in e&&(s=e.detail),"wheelDelta"in e&&(s=-e.wheelDelta/120),"wheelDeltaY"in e&&(s=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=s,s=0),a=10*t,i=10*s,"deltaY"in e&&(i=e.deltaY),"deltaX"in e&&(a=e.deltaX),e.shiftKey&&!a&&(a=i,i=0),(a||i)&&e.deltaMode&&(1===e.deltaMode?(a*=40,i*=40):(a*=800,i*=800)),a&&!t&&(t=a<1?-1:1),i&&!s&&(s=i<1?-1:1),{spinX:t,spinY:s,pixelX:a,pixelY:i}}(s);if(r.forceToAxis)if(t.isHorizontal()){if(!(Math.abs(f.pixelX)>Math.abs(f.pixelY)))return!0;c=-f.pixelX*m}else{if(!(Math.abs(f.pixelY)>Math.abs(f.pixelX)))return!0;c=-f.pixelY}else c=Math.abs(f.pixelX)>Math.abs(f.pixelY)?-f.pixelX*m:-f.pixelY;if(0===c)return!0;r.invert&&(c=-c);let v=t.getTranslate()+c*r.sensitivity;if(v>=t.minTranslate()&&(v=t.minTranslate()),v<=t.maxTranslate()&&(v=t.maxTranslate()),a=!!t.params.loop||!(v===t.minTranslate()||v===t.maxTranslate()),a&&t.params.nested&&s.stopPropagation(),t.params.freeMode&&t.params.freeMode.enabled){const e={time:u(),delta:Math.abs(c),direction:Math.sign(c)},a=o&&e.time<o.time+500&&e.delta<=o.delta&&e.direction===o.direction;if(!a){o=void 0,t.params.loop&&t.loopFix();let n=t.getTranslate()+c*r.sensitivity;const d=t.isBeginning,u=t.isEnd;if(n>=t.minTranslate()&&(n=t.minTranslate()),n<=t.maxTranslate()&&(n=t.maxTranslate()),t.setTransition(0),t.setTranslate(n),t.updateProgress(),t.updateActiveIndex(),t.updateSlidesClasses(),(!d&&t.isBeginning||!u&&t.isEnd)&&t.updateSlidesClasses(),t.params.freeMode.sticky){clearTimeout(l),l=void 0,h.length>=15&&h.shift();const s=h.length?h[h.length-1]:void 0,a=h[0];if(h.push(e),s&&(e.delta>s.delta||e.direction!==s.direction))h.splice(0);else if(h.length>=15&&e.time-a.time<500&&a.delta-e.delta>=1&&e.delta<=6){const s=c>0?.8:.2;o=e,h.splice(0),l=p((()=>{t.slideToClosest(t.params.speed,!0,void 0,s)}),0)}l||(l=p((()=>{o=e,h.splice(0),t.slideToClosest(t.params.speed,!0,void 0,.5)}),500))}if(a||i("scroll",s),t.params.autoplay&&t.params.autoplayDisableOnInteraction&&t.autoplay.stop(),n===t.minTranslate()||n===t.maxTranslate())return!0}}else{const s={time:u(),delta:Math.abs(c),direction:Math.sign(c),raw:e};h.length>=2&&h.shift();const a=h.length?h[h.length-1]:void 0;if(h.push(s),a?(s.direction!==a.direction||s.delta>a.delta||s.time>a.time+150)&&g(s):g(s),function(e){const s=t.params.mousewheel;if(e.direction<0){if(t.isEnd&&!t.params.loop&&s.releaseOnEdges)return!0}else if(t.isBeginning&&!t.params.loop&&s.releaseOnEdges)return!0;return!1}(s))return!0}return s.preventDefault?s.preventDefault():s.returnValue=!1,!1}function w(e){let s=t.$el;"container"!==t.params.mousewheel.eventsTarget&&(s=d(t.params.mousewheel.eventsTarget)),s[e]("mouseenter",m),s[e]("mouseleave",f),s[e]("wheel",v)}function b(){return t.params.cssMode?(t.wrapperEl.removeEventListener("wheel",v),!0):!t.mousewheel.enabled&&(w("on"),t.mousewheel.enabled=!0,!0)}function x(){return t.params.cssMode?(t.wrapperEl.addEventListener(event,v),!0):!!t.mousewheel.enabled&&(w("off"),t.mousewheel.enabled=!1,!0)}a("init",(()=>{!t.params.mousewheel.enabled&&t.params.cssMode&&x(),t.params.mousewheel.enabled&&b()})),a("destroy",(()=>{t.params.cssMode&&b(),t.mousewheel.enabled&&x()})),Object.assign(t.mousewheel,{enable:b,disable:x})},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;function r(e){let s;return e&&(s=d(e),t.params.uniqueNavElements&&"string"==typeof e&&s.length>1&&1===t.$el.find(e).length&&(s=t.$el.find(e))),s}function n(e,s){const a=t.params.navigation;e&&e.length>0&&(e[s?"addClass":"removeClass"](a.disabledClass),e[0]&&"BUTTON"===e[0].tagName&&(e[0].disabled=s),t.params.watchOverflow&&t.enabled&&e[t.isLocked?"addClass":"removeClass"](a.lockClass))}function l(){if(t.params.loop)return;const{$nextEl:e,$prevEl:s}=t.navigation;n(s,t.isBeginning&&!t.params.rewind),n(e,t.isEnd&&!t.params.rewind)}function o(e){e.preventDefault(),(!t.isBeginning||t.params.loop||t.params.rewind)&&(t.slidePrev(),i("navigationPrev"))}function c(e){e.preventDefault(),(!t.isEnd||t.params.loop||t.params.rewind)&&(t.slideNext(),i("navigationNext"))}function p(){const e=t.params.navigation;if(t.params.navigation=F(t,t.originalParams.navigation,t.params.navigation,{nextEl:"swiper-button-next",prevEl:"swiper-button-prev"}),!e.nextEl&&!e.prevEl)return;const s=r(e.nextEl),a=r(e.prevEl);s&&s.length>0&&s.on("click",c),a&&a.length>0&&a.on("click",o),Object.assign(t.navigation,{$nextEl:s,nextEl:s&&s[0],$prevEl:a,prevEl:a&&a[0]}),t.enabled||(s&&s.addClass(e.lockClass),a&&a.addClass(e.lockClass))}function u(){const{$nextEl:e,$prevEl:s}=t.navigation;e&&e.length&&(e.off("click",c),e.removeClass(t.params.navigation.disabledClass)),s&&s.length&&(s.off("click",o),s.removeClass(t.params.navigation.disabledClass))}s({navigation:{nextEl:null,prevEl:null,hideOnClick:!1,disabledClass:"swiper-button-disabled",hiddenClass:"swiper-button-hidden",lockClass:"swiper-button-lock",navigationDisabledClass:"swiper-navigation-disabled"}}),t.navigation={nextEl:null,$nextEl:null,prevEl:null,$prevEl:null},a("init",(()=>{!1===t.params.navigation.enabled?h():(p(),l())})),a("toEdge fromEdge lock unlock",(()=>{l()})),a("destroy",(()=>{u()})),a("enable disable",(()=>{const{$nextEl:e,$prevEl:s}=t.navigation;e&&e[t.enabled?"removeClass":"addClass"](t.params.navigation.lockClass),s&&s[t.enabled?"removeClass":"addClass"](t.params.navigation.lockClass)})),a("click",((e,s)=>{const{$nextEl:a,$prevEl:r}=t.navigation,n=s.target;if(t.params.navigation.hideOnClick&&!d(n).is(r)&&!d(n).is(a)){if(t.pagination&&t.params.pagination&&t.params.pagination.clickable&&(t.pagination.el===n||t.pagination.el.contains(n)))return;let e;a?e=a.hasClass(t.params.navigation.hiddenClass):r&&(e=r.hasClass(t.params.navigation.hiddenClass)),i(!0===e?"navigationShow":"navigationHide"),a&&a.toggleClass(t.params.navigation.hiddenClass),r&&r.toggleClass(t.params.navigation.hiddenClass)}}));const h=()=>{t.$el.addClass(t.params.navigation.navigationDisabledClass),u()};Object.assign(t.navigation,{enable:()=>{t.$el.removeClass(t.params.navigation.navigationDisabledClass),p(),l()},disable:h,update:l,init:p,destroy:u})},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;const r="swiper-pagination";let n;s({pagination:{el:null,bulletElement:"span",clickable:!1,hideOnClick:!1,renderBullet:null,renderProgressbar:null,renderFraction:null,renderCustom:null,progressbarOpposite:!1,type:"bullets",dynamicBullets:!1,dynamicMainBullets:1,formatFractionCurrent:e=>e,formatFractionTotal:e=>e,bulletClass:`${r}-bullet`,bulletActiveClass:`${r}-bullet-active`,modifierClass:`${r}-`,currentClass:`${r}-current`,totalClass:`${r}-total`,hiddenClass:`${r}-hidden`,progressbarFillClass:`${r}-progressbar-fill`,progressbarOppositeClass:`${r}-progressbar-opposite`,clickableClass:`${r}
11342-clickable`,lockClass:`${r}-lock`,horizontalClass:`${r}-horizontal`,verticalClass:`${r}-vertical`,paginationDisabledClass:`${r}-disabled`}}),t.pagination={el:null,$el:null,bullets:[]};let l=0;function o(){return!t.params.pagination.el||!t.pagination.el||!t.pagination.$el||0===t.pagination.$el.length}function c(e,s){const{bulletActiveClass:a}=t.params.pagination;e[s]().addClass(`${a}-${s}`)[s]().addClass(`${a}-${s}-${s}`)}function p(){const e=t.rtl,s=t.params.pagination;if(o())return;const a=t.virtual&&t.params.virtual.enabled?t.virtual.slides.length:t.slides.length,r=t.pagination.$el;let p;const u=t.params.loop?Math.ceil((a-2*t.loopedSlides)/t.params.slidesPerGroup):t.snapGrid.length;if(t.params.loop?(p=Math.ceil((t.activeIndex-t.loopedSlides)/t.params.slidesPerGroup),p>a-1-2*t.loopedSlides&&(p-=a-2*t.loopedSlides),p>u-1&&(p-=u),p<0&&"bullets"!==t.params.paginationType&&(p=u+p)):p=void 0!==t.snapIndex?t.snapIndex:t.activeIndex||0,"bullets"===s.type&&t.pagination.bullets&&t.pagination.bullets.length>0){const a=t.pagination.bullets;let i,o,u;if(s.dynamicBullets&&(n=a.eq(0)[t.isHorizontal()?"outerWidth":"outerHeight"](!0),r.css(t.isHorizontal()?"width":"height",n*(s.dynamicMainBullets+4)+"px"),s.dynamicMainBullets>1&&void 0!==t.previousIndex&&(l+=p-(t.previousIndex-t.loopedSlides||0),l>s.dynamicMainBullets-1?l=s.dynamicMainBullets-1:l<0&&(l=0)),i=Math.max(p-l,0),o=i+(Math.min(a.length,s.dynamicMainBullets)-1),u=(o+i)/2),a.removeClass(["","-next","-next-next","-prev","-prev-prev","-main"].map((e=>`${s.bulletActiveClass}${e}`)).join(" ")),r.length>1)a.each((e=>{const t=d(e),a=t.index();a===p&&t.addClass(s.bulletActiveClass),s.dynamicBullets&&(a>=i&&a<=o&&t.addClass(`${s.bulletActiveClass}-main`),a===i&&c(t,"prev"),a===o&&c(t,"next"))}));else{const e=a.eq(p),r=e.index();if(e.addClass(s.bulletActiveClass),s.dynamicBullets){const e=a.eq(i),n=a.eq(o);for(let e=i;e<=o;e+=1)a.eq(e).addClass(`${s.bulletActiveClass}-main`);if(t.params.loop)if(r>=a.length){for(let e=s.dynamicMainBullets;e>=0;e-=1)a.eq(a.length-e).addClass(`${s.bulletActiveClass}-main`);a.eq(a.length-s.dynamicMainBullets-1).addClass(`${s.bulletActiveClass}-prev`)}else c(e,"prev"),c(n,"next");else c(e,"prev"),c(n,"next")}}if(s.dynamicBullets){const i=Math.min(a.length,s.dynamicMainBullets+4),r=(n*i-n)/2-u*n,l=e?"right":"left";a.css(t.isHorizontal()?l:"top",`${r}px`)}}if("fraction"===s.type&&(r.find(U(s.currentClass)).text(s.formatFractionCurrent(p+1)),r.find(U(s.totalClass)).text(s.formatFractionTotal(u))),"progressbar"===s.type){let e;e=s.progressbarOpposite?t.isHorizontal()?"vertical":"horizontal":t.isHorizontal()?"horizontal":"vertical";const a=(p+1)/u;let i=1,n=1;"horizontal"===e?i=a:n=a,r.find(U(s.progressbarFillClass)).transform(`translate3d(0,0,0) scaleX(${i}) scaleY(${n})`).transition(t.params.speed)}"custom"===s.type&&s.renderCustom?(r.html(s.renderCustom(t,p+1,u)),i("paginationRender",r[0])):i("paginationUpdate",r[0]),t.params.watchOverflow&&t.enabled&&r[t.isLocked?"addClass":"removeClass"](s.lockClass)}function u(){const e=t.params.pagination;if(o())return;const s=t.virtual&&t.params.virtual.enabled?t.virtual.slides.length:t.slides.length,a=t.pagination.$el;let r="";if("bullets"===e.type){let i=t.params.loop?Math.ceil((s-2*t.loopedSlides)/t.params.slidesPerGroup):t.snapGrid.length;t.params.freeMode&&t.params.freeMode.enabled&&!t.params.loop&&i>s&&(i=s);for(let s=0;s<i;s+=1)e.renderBullet?r+=e.renderBullet.call(t,s,e.bulletClass):r+=`<${e.bulletElement} class="${e.bulletClass}"></${e.bulletElement}>`;a.html(r),t.pagination.bullets=a.find(U(e.bulletClass))}"fraction"===e.type&&(r=e.renderFraction?e.renderFraction.call(t,e.currentClass,e.totalClass):`<span class="${e.currentClass}"></span> / <span class="${e.totalClass}"></span>`,a.html(r)),"progressbar"===e.type&&(r=e.renderProgressbar?e.renderProgressbar.call(t,e.progressbarFillClass):`<span class="${e.progressbarFillClass}"></span>`,a.html(r)),"custom"!==e.type&&i("paginationRender",t.pagination.$el[0])}function h(){t.params.pagination=F(t,t.originalParams.pagination,t.params.pagination,{el:"swiper-pagination"});const e=t.params.pagination;if(!e.el)return;let s=d(e.el);0!==s.length&&(t.params.uniqueNavElements&&"string"==typeof e.el&&s.length>1&&(s=t.$el.find(e.el),s.length>1&&(s=s.filter((e=>d(e).parents(".swiper")[0]===t.el)))),"bullets"===e.type&&e.clickable&&s.addClass(e.clickableClass),s.addClass(e.modifierClass+e.type),s.addClass(t.isHorizontal()?e.horizontalClass:e.verticalClass),"bullets"===e.type&&e.dynamicBullets&&(s.addClass(`${e.modifierClass}${e.type}-dynamic`),l=0,e.dynamicMainBullets<1&&(e.dynamicMainBullets=1)),"progressbar"===e.type&&e.progressbarOpposite&&s.addClass(e.progressbarOppositeClass),e.clickable&&s.on("click",U(e.bulletClass),(function(e){e.preventDefault();let s=d(this).index()*t.params.slidesPerGroup;t.params.loop&&(s+=t.loopedSlides),t.slideTo(s)})),Object.assign(t.pagination,{$el:s,el:s[0]}),t.enabled||s.addClass(e.lockClass))}function m(){const e=t.params.pagination;if(o())return;const s=t.pagination.$el;s.removeClass(e.hiddenClass),s.removeClass(e.modifierClass+e.type),s.removeClass(t.isHorizontal()?e.horizontalClass:e.verticalClass),t.pagination.bullets&&t.pagination.bullets.removeClass&&t.pagination.bullets.removeClass(e.bulletActiveClass),e.clickable&&s.off("click",U(e.bulletClass))}a("init",(()=>{!1===t.params.pagination.enabled?f():(h(),u(),p())})),a("activeIndexChange",(()=>{(t.params.loop||void 0===t.snapIndex)&&p()})),a("snapIndexChange",(()=>{t.params.loop||p()})),a("slidesLengthChange",(()=>{t.params.loop&&(u(),p())})),a("snapGridLengthChange",(()=>{t.params.loop||(u(),p())})),a("destroy",(()=>{m()}
vendor: 10,059 bytes, line 11342
11342)),a("enable disable",(()=>{const{$el:e}=t.pagination;e&&e[t.enabled?"removeClass":"addClass"](t.params.pagination.lockClass)})),a("lock unlock",(()=>{p()})),a("click",((e,s)=>{const a=s.target,{$el:r}=t.pagination;if(t.params.pagination.el&&t.params.pagination.hideOnClick&&r&&r.length>0&&!d(a).hasClass(t.params.pagination.bulletClass)){if(t.navigation&&(t.navigation.nextEl&&a===t.navigation.nextEl||t.navigation.prevEl&&a===t.navigation.prevEl))return;const e=r.hasClass(t.params.pagination.hiddenClass);i(!0===e?"paginationShow":"paginationHide"),r.toggleClass(t.params.pagination.hiddenClass)}}));const f=()=>{t.$el.addClass(t.params.pagination.paginationDisabledClass),t.pagination.$el&&t.pagination.$el.addClass(t.params.pagination.paginationDisabledClass),m()};Object.assign(t.pagination,{enable:()=>{t.$el.removeClass(t.params.pagination.paginationDisabledClass),t.pagination.$el&&t.pagination.$el.removeClass(t.params.pagination.paginationDisabledClass),h(),u(),p()},disable:f,render:u,update:p,init:h,destroy:m})},function(e){let{swiper:t,extendParams:s,on:i,emit:r}=e;const n=a();let l,o,c,u,h=!1,m=null,f=null;function g(){if(!t.params.scrollbar.el||!t.scrollbar.el)return;const{scrollbar:e,rtlTranslate:s,progress:a}=t,{$dragEl:i,$el:r}=e,n=t.params.scrollbar;let l=o,d=(c-o)*a;s?(d=-d,d>0?(l=o-d,d=0):-d+o>c&&(l=c+d)):d<0?(l=o+d,d=0):d+o>c&&(l=c-d),t.isHorizontal()?(i.transform(`translate3d(${d}px, 0, 0)`),i[0].style.width=`${l}px`):(i.transform(`translate3d(0px, ${d}px, 0)`),i[0].style.height=`${l}px`),n.hide&&(clearTimeout(m),r[0].style.opacity=1,m=setTimeout((()=>{r[0].style.opacity=0,r.transition(400)}),1e3))}function v(){if(!t.params.scrollbar.el||!t.scrollbar.el)return;const{scrollbar:e}=t,{$dragEl:s,$el:a}=e;s[0].style.width="",s[0].style.height="",c=t.isHorizontal()?a[0].offsetWidth:a[0].offsetHeight,u=t.size/(t.virtualSize+t.params.slidesOffsetBefore-(t.params.centeredSlides?t.snapGrid[0]:0)),o="auto"===t.params.scrollbar.dragSize?c*u:parseInt(t.params.scrollbar.dragSize,10),t.isHorizontal()?s[0].style.width=`${o}px`:s[0].style.height=`${o}px`,a[0].style.display=u>=1?"none":"",t.params.scrollbar.hide&&(a[0].style.opacity=0),t.params.watchOverflow&&t.enabled&&e.$el[t.isLocked?"addClass":"removeClass"](t.params.scrollbar.lockClass)}function w(e){return t.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}function b(e){const{scrollbar:s,rtlTranslate:a}=t,{$el:i}=s;let r;r=(w(e)-i.offset()[t.isHorizontal()?"left":"top"]-(null!==l?l:o/2))/(c-o),r=Math.max(Math.min(r,1),0),a&&(r=1-r);const n=t.minTranslate()+(t.maxTranslate()-t.minTranslate())*r;t.updateProgress(n),t.setTranslate(n),t.updateActiveIndex(),t.updateSlidesClasses()}function x(e){const s=t.params.scrollbar,{scrollbar:a,$wrapperEl:i}=t,{$el:n,$dragEl:o}=a;h=!0,l=e.target===o[0]||e.target===o?w(e)-e.target.getBoundingClientRect()[t.isHorizontal()?"left":"top"]:null,e.preventDefault(),e.stopPropagation(),i.transition(100),o.transition(100),b(e),clearTimeout(f),n.transition(0),s.hide&&n.css("opacity",1),t.params.cssMode&&t.$wrapperEl.css("scroll-snap-type","none"),r("scrollbarDragStart",e)}function y(e){const{scrollbar:s,$wrapperEl:a}=t,{$el:i,$dragEl:n}=s;h&&(e.preventDefault?e.preventDefault():e.returnValue=!1,b(e),a.transition(0),i.transition(0),n.transition(0),r("scrollbarDragMove",e))}function E(e){const s=t.params.scrollbar,{scrollbar:a,$wrapperEl:i}=t,{$el:n}=a;h&&(h=!1,t.params.cssMode&&(t.$wrapperEl.css("scroll-snap-type",""),i.transition("")),s.hide&&(clearTimeout(f),f=p((()=>{n.css("opacity",0),n.transition(400)}),1e3)),r("scrollbarDragEnd",e),s.snapOnRelease&&t.slideToClosest())}function C(e){const{scrollbar:s,touchEventsTouch:a,touchEventsDesktop:i,params:r,support:l}=t,o=s.$el;if(!o)return;const d=o[0],c=!(!l.passiveListener||!r.passiveListeners)&&{passive:!1,capture:!1},p=!(!l.passiveListener||!r.passiveListeners)&&{passive:!0,capture:!1};if(!d)return;const u="on"===e?"addEventListener":"removeEventListener";l.touch?(d[u](a.start,x,c),d[u](a.move,y,c),d[u](a.end,E,p)):(d[u](i.start,x,c),n[u](i.move,y,c),n[u](i.end,E,p))}function T(){const{scrollbar:e,$el:s}=t;t.params.scrollbar=F(t,t.originalParams.scrollbar,t.params.scrollbar,{el:"swiper-scrollbar"});const a=t.params.scrollbar;if(!a.el)return;let i=d(a.el);t.params.uniqueNavElements&&"string"==typeof a.el&&i.length>1&&1===s.find(a.el).length&&(i=s.find(a.el)),i.addClass(t.isHorizontal()?a.horizontalClass:a.verticalClass);let r=i.find(`.${t.params.scrollbar.dragClass}`);0===r.length&&(r=d(`<div class="${t.params.scrollbar.dragClass}"></div>`),i.append(r)),Object.assign(e,{$el:i,el:i[0],$dragEl:r,dragEl:r[0]}),a.draggable&&t.params.scrollbar.el&&t.scrollbar.el&&C("on"),i&&i[t.enabled?"removeClass":"addClass"](t.params.scrollbar.lockClass)}function $(){const e=t.params.scrollbar,s=t.scrollbar.$el;s&&s.removeClass(t.isHorizontal()?e.horizontalClass:e.verticalClass),t.params.scrollbar.el&&t.scrollbar.el&&C("off")}s({scrollbar:{el:null,dragSize:"auto",hide:!1,draggable:!1,snapOnRelease:!0,lockClass:"swiper-scrollbar-lock",dragClass:"swiper-scrollbar-drag",scrollbarDisabledClass:"swiper-scrollbar-disabled",horizontalClass:"swiper-scrollbar-horizontal",verticalClass:"swiper-scrollbar-vertical"}}),t.scrollbar={el:null,dragEl:null,$el:null,$dragEl:null},i("init",(()=>{!1===t.params.scrollbar.enabled?S():(T(),v(),g())})),i("update resize observerUpdate lock unlock",(()=>{v()})),i("setTranslate",(()=>{g()})),i("setTransition",((e,s)=>{!function(e){t.params.scrollbar.el&&t.scrollbar.el&&t.scrollbar.$dragEl.transition(e)}(s)})),i("enable disable",(()=>{const{$el:e}=t.scrollbar;e&&e[t.enabled?"removeClass":"addClass"](t.params.scrollbar.lockClass)})),i("destroy",(()=>{$()}));const S=()=>{t.$el.addClass(t.params.scrollbar.scrollbarDisabledClass),t.scrollbar.$el&&t.scrollbar.$el.addClass(t.params.scrollbar.scrollbarDisabledClass),$()};Object.assign(t.scrollbar,{enable:()=>{t.$el.removeClass(t.params.scrollbar.scrollbarDisabledClass),t.scrollbar.$el&&t.scrollbar.$el.removeClass(t.params.scrollbar.scrollbarDisabledClass),T(),v(),g()},disable:S,updateSize:v,setTranslate:g,init:T,destroy:$})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({parallax:{enabled:!1}});const i=(e,s)=>{const{rtl:a}=t,i=d(e),r=a?-1:1,n=i.attr("data-swiper-parallax")||"0";let l=i.attr("data-swiper-parallax-x"),o=i.attr("data-swiper-parallax-y");const c=i.attr("data-swiper-parallax-scale"),p=i.attr("data-swiper-parallax-opacity");if(l||o?(l=l||"0",o=o||"0"):t.isHorizontal()?(l=n,o="0"):(o=n,l="0"),l=l.indexOf("%")>=0?parseInt(l,10)*s*r+"%":l*s*r+"px",o=o.indexOf("%")>=0?parseInt(o,10)*s+"%":o*s+"px",null!=p){const e=p-(p-1)*(1-Math.abs(s));i[0].style.opacity=e}if(null==c)i.transform(`translate3d(${l}, ${o}, 0px)`);else{const e=c-(c-1)*(1-Math.abs(s));i.transform(`translate3d(${l}, ${o}, 0px) scale(${e})`)}},r=()=>{const{$el:e,slides:s,progress:a,snapGrid:r}=t;e.children("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each((e=>{i(e,a)})),s.each(((e,s)=>{let n=e.progress;t.params.slidesPerGroup>1&&"auto"!==t.params.slidesPerView&&(n+=Math.ceil(s/2)-a*(r.length-1)),n=Math.min(Math.max(n,-1),1),d(e).find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each((e=>{i(e,n)}))}))};a("beforeInit",(()=>{t.params.parallax.enabled&&(t.params.watchSlidesProgress=!0,t.originalParams.watchSlidesProgress=!0)})),a("init",(()=>{t.params.parallax.enabled&&r()})),a("setTranslate",(()=>{t.params.parallax.enabled&&r()})),a("setTransition",((e,s)=>{t.params.parallax.enabled&&function(e){void 0===e&&(e=t.params.speed);const{$el:s}=t;s.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each((t=>{const s=d(t);let a=parseInt(s.attr("data-swiper-parallax-duration"),10)||e;0===e&&(a=0),s.transition(a)}))}(s)}))},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;const n=r();s({zoom:{enabled:!1,maxRatio:3,minRatio:1,toggle:!0,containerClass:"swiper-zoom-container",zoomedSlideClass:"swiper-slide-zoomed"}}),t.zoom={enabled:!1};let l,o,c,p=1,u=!1;const m={$slideEl:void 0,slideWidth:void 0,slideHeight:void 0,$imageEl:void 0,$imageWrapEl:void 0,maxRatio:3},f={isTouched:void 0,isMoved:void 0,currentX:void 0,currentY:void 0,minX:void 0,minY:void 0,maxX:void 0,maxY:void 0,width:void 0,height:void 0,startX:void 0,startY:void 0,touchesStart:{},touchesCurrent:{}},g={x:void 0,y:void 0,prevPositionX:void 0,prevPositionY:void 0,prevTime:void 0};let v=1;function w(e){if(e.targetTouches.length<2)return 1;const t=e.targetTouches[0].pageX,s=e.targetTouches[0].pageY,a=e.targetTouches[1].pageX,i=e.targetTouches[1].pageY;return Math.sqrt((a-t)**2+(i-s)**2)}function b(e){const s=t.support,a=t.params.zoom;if(o=!1,c=!1,!s.gestures){if("touchstart"!==e.type||"touchstart"===e.type&&e.targetTouches.length<2)return;o=!0,m.scaleStart=w(e)}m.$slideEl&&m.$slideEl.length||(m.$slideEl=d(e.target).closest(`.${t.params.slideClass}`),0===m.$slideEl.length&&(m.$slideEl=t.slides.eq(t.activeIndex)),m.$imageEl=m.$slideEl.find(`.${a.containerClass}`).eq(0).find("picture, img, svg, canvas, .swiper-zoom-target").eq(0),m.$imageWrapEl=m.$imageEl.parent(`.${a.containerClass}`),m.maxRatio=m.$imageWrapEl.attr("data-swiper-zoom")||a.maxRatio,0!==m.$imageWrapEl.length)?(m.$imageEl&&m.$imageEl.transition(0),u=!0):m.$imageEl=void 0}function x(e){const s=t.support,a=t.params.zoom,i=t.zoom;if(!s.gestures){if("touchmove"!==e.type||"touchmove"===e.type&&e.targetTouches.length<2)return;c=!0,m.scaleMove=w(e)}m.$imageEl&&0!==m.$imageEl.length?(s.gestures?i.scale=e.scale*p:i.scale=m.scaleMove/m.scaleStart*p,i.scale>m.maxRatio&&(i.scale=m.maxRatio-1+(i.scale-m.maxRatio+1)**.5),i.scale<a.minRatio&&(i.scale=a.minRatio+1-(a.minRatio-i.scale+1)**.5),m.$imageEl.transform(`translate3d(0,
113420,0) scale(${i.scale})`)):"gesturechange"===e.type&&b(e)}function y(e){const s=t.device,a=t.support,i=t.params.zoom,r=t.zoom;if(!a.gestures){if(!o||!c)return;if("touchend"!==e.type||"touchend"===e.type&&e.changedTouches.length<2&&!s.android)return;o=!1,c=!1}m.$imageEl&&0!==m.$imageEl.length&&(r.scale=Math.max(Math.min(r.scale,m.maxRatio),i.minRatio),m.$imageEl.transition(t.params.speed).transform(`translate3d(0,0,0) scale(${r.scale})`),p=r.scale,u=!1,1===r.scale&&(m.$slideEl=void 0))}function E(e){const s=t.zoom;if(!m.$imageEl||0===m.$imageEl.length)return;if(t.allowClick=!1,!f.isTouched||!m.$slideEl)return;f.isMoved||(f.width=m.$imageEl[0].offsetWidth,f.height=m.$imageEl[0].offsetHeight,f.startX=h(m.$imageWrapEl[0],"x")||0,f.startY=h(m.$imageWrapEl[0],"y")||0,m.slideWidth=m.$slideEl[0].offsetWidth,m.slideHeight=m.$slideEl[0].offsetHeight,m.$imageWrapEl.transition(0));const a=f.width*s.scale,i=f.height*s.scale;if(!(a<m.slideWidth&&i<m.slideHeight)){if(f.minX=Math.min(m.slideWidth/2-a/2,0),f.maxX=-f.minX,f.minY=Math.min(m.slideHeight/2-i/2,0),f.maxY=-f.minY,f.touchesCurrent.x="touchmove"===e.type?e.targetTouches[0].pageX:e.pageX,f.touchesCurrent.y="touchmove"===e.type?e.targetTouches[0].pageY:e.pageY,!f.isMoved&&!u){if(t.isHorizontal()&&(Math.floor(f.minX)===Math.floor(f.startX)&&f.touchesCurrent.x<f.touchesStart.x||Math.floor(f.maxX)===Math.floor(f.startX)&&f.touchesCurrent.x>f.touchesStart.x))return void(f.isTouched=!1);if(!t.isHorizontal()&&(Math.floor(f.minY)===Math.floor(f.startY)&&f.touchesCurrent.y<f.touchesStart.y||Math.floor(f.maxY)===Math.floor(f.startY)&&f.touchesCurrent.y>f.touchesStart.y))return void(f.isTouched=!1)}e.cancelable&&e.preventDefault(),e.stopPropagation(),f.isMoved=!0,f.currentX=f.touchesCurrent.x-f.touchesStart.x+f.startX,f.currentY=f.touchesCurrent.y-f.touchesStart.y+f.startY,f.currentX<f.minX&&(f.currentX=f.minX+1-(f.minX-f.currentX+1)**.8),f.currentX>f.maxX&&(f.currentX=f.maxX-1+(f.currentX-f.maxX+1)**.8),f.currentY<f.minY&&(f.currentY=f.minY+1-(f.minY-f.currentY+1)**.8),f.currentY>f.maxY&&(f.currentY=f.maxY-1+(f.currentY-f.maxY+1)**.8),g.prevPositionX||(g.prevPositionX=f.touchesCurrent.x),g.prevPositionY||(g.prevPositionY=f.touchesCurrent.y),g.prevTime||(g.prevTime=Date.now()),g.x=(f.touchesCurrent.x-g.prevPositionX)/(Date.now()-g.prevTime)/2,g.y=(f.touchesCurrent.y-g.prevPositionY)/(Date.now()-g.prevTime)/2,Math.abs(f.touchesCurrent.x-g.prevPositionX)<2&&(g.x=0),Math.abs(f.touchesCurrent.y-g.prevPositionY)<2&&(g.y=0),g.prevPositionX=f.touchesCurrent.x,g.prevPositionY=f.touchesCurrent.y,g.prevTime=Date.now(),m.$imageWrapEl.transform(`translate3d(${f.currentX}px, ${f.currentY}px,0)`)}}function C(){const e=t.zoom;m.$slideEl&&t.previousIndex!==t.activeIndex&&(m.$imageEl&&m.$imageEl.transform("translate3d(0,0,0) scale(1)"),m.$imageWrapEl&&m.$imageWrapEl.transform("translate3d(0,0,0)"),e.scale=1,p=1,m.$slideEl=void 0,m.$imageEl=void 0,m.$imageWrapEl=void 0)}function T(e){const s=t.zoom,a=t.params.zoom;if(m.$slideEl||(e&&e.target&&(m.$slideEl=d(e.target).closest(`.${t.params.slideClass}`)),m.$slideEl||(t.params.virtual&&t.params.virtual.enabled&&t.virtual?m.$slideEl=t.$wrapperEl.children(`.${t.params.slideActiveClass}`):m.$slideEl=t.slides.eq(t.activeIndex)),m.$imageEl=m.$slideEl.find(`.${a.containerClass}`).eq(0).find("picture, img, svg, canvas, .swiper-zoom-target").eq(0),m.$imageWrapEl=m.$imageEl.parent(`.${a.containerClass}`)),!m.$imageEl||0===m.$imageEl.length||!m.$imageWrapEl||0===m.$imageWrapEl.length)return;let i,r,l,o,c,u,h,g,v,w,b,x,y,E,C,T,$,S;t.params.cssMode&&(t.wrapperEl.style.overflow="hidden",t.wrapperEl.style.touchAction="none"),m.$slideEl.addClass(`${a.zoomedSlideClass}`),void 0===f.touchesStart.x&&e?(i="touchend"===e.type?e.changedTouches[0].pageX:e.pageX,r="touchend"===e.type?e.changedTouches[0].pageY:e.pageY):(i=f.touchesStart.x,r=f.touchesStart.y),s.scale=m.$imageWrapEl.attr("data-swiper-zoom")||a.maxRatio,p=m.$imageWrapEl.attr("data-swiper-zoom")||a.maxRatio,e?($=m.$slideEl[0].offsetWidth,S=m.$slideEl[0].offsetHeight,l=m.$slideEl.offset().left+n.scrollX,o=m.$slideEl.offset().top+n.scrollY,c=l+$/2-i,u=o+S/2-r,v=m.$imageEl[0].offsetWidth,w=m.$imageEl[0].offsetHeight,b=v*s.scale,x=w*s.scale,y=Math.min($/2-b/2,0),E=Math.min(S/2-x/2,0),C=-y,T=-E,h=c*s.scale,g=u*s.scale,h<y&&(h=y),h>C&&(h=C),g<E&&(g=E),g>T&&(g=T)):(h=0,g=0),m.$imageWrapEl.transition(300).transform(`translate3d(${h}px, ${g}
11342px,0)`),m.$imageEl.transition(300).transform(`translate3d(0,0,0) scale(${s.scale})`)}function $(){const e=t.zoom,s=t.params.zoom;m.$slideEl||(t.params.virtual&&t.params.virtual.enabled&&t.virtual?m.$slideEl=t.$wrapperEl.children(`.${t.params.slideActiveClass}`):m.$slideEl=t.slides.eq(t.activeIndex),m.$imageEl=m.$slideEl.find(`.${s.containerClass}`).eq(0).find("picture, img, svg, canvas, .swiper-zoom-target").eq(0),m.$imageWrapEl=m.$imageEl.parent(`.${s.containerClass}`)),m.$imageEl&&0!==m.$imageEl.length&&m.$imageWrapEl&&0!==m.$imageWrapEl.length&&(t.params.cssMode&&(t.wrapperEl.style.overflow="",t.wrapperEl.style.touchAction=""),e.scale=1,p=1,m.$imageWrapEl.transition(300).transform("translate3d(0,0,0)"),m.$imageEl.transition(300).transform("translate3d(0,0,0) scale(1)"),m.$slideEl.removeClass(`${s.zoomedSlideClass}`),m.$slideEl=void 0)}function S(e){const s=t.zoom;s.scale&&1!==s.scale?$():T(e)}function M(){const e=t.support;return{passiveListener:!("touchstart"!==t.touchEvents.start||!e.passiveListener||!t.params.passiveListeners)&&{passive:!0,capture:!1},activeListenerWithCapture:!e.passiveListener||{passive:!1,capture:!0}}}function P(){return`.${t.params.slideClass}`}function k(e){const{passiveListener:s}=M(),a=P();t.$wrapperEl[e]("gesturestart",a,b,s),t.$wrapperEl[e]("gesturechange",a,x,s),t.$wrapperEl[e]("gestureend",a,y,s)}function z(){l||(l=!0,k("on"))}function L(){l&&(l=!1,k("off"))}function O(){const e=t.zoom;if(e.enabled)return;e.enabled=!0;const s=t.support,{passiveListener:a,activeListenerWithCapture:i}=M(),r=P();s.gestures?(t.$wrapperEl.on(t.touchEvents.start,z,a),t.$wrapperEl.on(t.touchEvents.end,L,a)):"touchstart"===t.touchEvents.start&&(t.$wrapperEl.on(t.touchEvents.start,r,b,a),t.$wrapperEl.on(t.touchEvents.move,r,x,i),t.$wrapperEl.on(t.touchEvents.end,r,y,a),t.touchEvents.cancel&&t.$wrapperEl.on(t.touchEvents.cancel,r,y,a)),t.$wrapperEl.on(t.touchEvents.move,`.${t.params.zoom.containerClass}`,E,i)}function I(){const e=t.zoom;if(!e.enabled)return;const s=t.support;e.enabled=!1;const{passiveListener:a,activeListenerWithCapture:i}=M(),r=P();s.gestures?(t.$wrapperEl.off(t.touchEvents.start,z,a),t.$wrapperEl.off(t.touchEvents.end,L,a)):"touchstart"===t.touchEvents.start&&(t.$wrapperEl.off(t.touchEvents.start,r,b,a),t.$wrapperEl.off(t.touchEvents.move,r,x,i),t.$wrapperEl.off(t.touchEvents.end,r,y,a),t.touchEvents.cancel&&t.$wrapperEl.off(t.touchEvents.cancel,r,y,a)),t.$wrapperEl.off(t.touchEvents.move,`.${t.params.zoom.containerClass}`,E,i)}Object.defineProperty(t.zoom,"scale",{get:()=>v,set(e){if(v!==e){const t=m.$imageEl?m.$imageEl[0]:void 0,s=m.$slideEl?m.$slideEl[0]:void 0;i("zoomChange",e,t,s)}v=e}}),a("init",(()=>{t.params.zoom.enabled&&O()})),a("destroy",(()=>{I()})),a("touchStart",((e,s)=>{t.zoom.enabled&&function(e){const s=t.device;m.$imageEl&&0!==m.$imageEl.length&&(f.isTouched||(s.android&&e.cancelable&&e.preventDefault(),f.isTouched=!0,f.touchesStart.x="touchstart"===e.type?e.targetTouches[0].pageX:e.pageX,f.touchesStart.y="touchstart"===e.type?e.targetTouches[0].pageY:e.pageY))}(s)})),a("touchEnd",((e,s)=>{t.zoom.enabled&&function(){const e=t.zoom;if(!m.$imageEl||0===m.$imageEl.length)return;if(!f.isTouched||!f.isMoved)return f.isTouched=!1,void(f.isMoved=!1);f.isTouched=!1,f.isMoved=!1;let s=300,a=300;const i=g.x*s,r=f.currentX+i,n=g.y*a,l=f.currentY+n;0!==g.x&&(s=Math.abs((r-f.currentX)/g.x)),0!==g.y&&(a=Math.abs((l-f.currentY)/g.y));const o=Math.max(s,a);f.currentX=r,f.currentY=l;const d=f.width*e.scale,c=f.height*e.scale;f.minX=Math.min(m.slideWidth/2-d/2,0),f.maxX=-f.minX,f.minY=Math.min(m.slideHeight/2-c/2,0),f.maxY=-f.minY,f.currentX=Math.max(Math.min(f.currentX,f.maxX),f.minX),f.currentY=Math.max(Math.min(f.currentY,f.maxY),f.minY),m.$imageWrapEl.transition(o).transform(`translate3d(${f.currentX}px, ${f.currentY}px,0)`)}()})),a("doubleTap",((e,s)=>{!t.animating&&t.params.zoom.enabled&&t.zoom.enabled&&t.params.zoom.toggle&&S(s)})),a("transitionEnd",(()=>{t.zoom.enabled&&t.params.zoom.enabled&&C()})),a("slideChange",(()=>{t.zoom.enabled&&t.params.zoom.enabled&&t.params.cssMode&&C()})),Object.assign(t.zoom,{enable:O,disable:I,in:T,out:$,toggle:S})},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;s({lazy:{checkInView:!1,enabled:!1,loadPrevNext:!1,loadPrevNextAmount:1,loadOnTransitionStart:!1,scrollingElement:"",elementClass:"swiper-lazy",loadingClass:"swiper-lazy-loading",loadedClass:"swiper-lazy-loaded",preloaderClass:"swiper-lazy-preloader"}}),t.lazy={};let n=!1,l=!1;function o(e,s){void 0===s&&(s=!0);const a=t.params.lazy;if(void 0===e)return;if(0===t.slides.length)return;const r=t.virtual&&t.params.virtual.enabled?t.$wrapperEl.children(`.${t.params.slideClass}[data-swiper-slide-index="${e}"]`):t.slides.eq(e),n=r.find(`.${a.elementClass}:not(.${a.loadedClass}):not(.${a.loadingClass})`);!r.hasClass(a.elementClass)||r.hasClass(a.loadedClass)||r.hasClass(a.loadingClass)||n.push(r[0]),0!==n.length&&n.each((e=>{const n=d(e);n.addClass(a.loadingClass);const l=n.attr("data-background"),c=n.attr("data-src"),p=n.attr("data-srcset"),u=n.attr("data-sizes"),h=n.parent("picture");t.loadImage(n[0],c||l,p,u,!1,(()=>
vendor: 32,363 bytes, line 11342
11342{if(null!=t&&t&&(!t||t.params)&&!t.destroyed){if(l?(n.css("background-image",`url("${l}")`),n.removeAttr("data-background")):(p&&(n.attr("srcset",p),n.removeAttr("data-srcset")),u&&(n.attr("sizes",u),n.removeAttr("data-sizes")),h.length&&h.children("source").each((e=>{const t=d(e);t.attr("data-srcset")&&(t.attr("srcset",t.attr("data-srcset")),t.removeAttr("data-srcset"))})),c&&(n.attr("src",c),n.removeAttr("data-src"))),n.addClass(a.loadedClass).removeClass(a.loadingClass),r.find(`.${a.preloaderClass}`).remove(),t.params.loop&&s){const e=r.attr("data-swiper-slide-index");if(r.hasClass(t.params.slideDuplicateClass)){o(t.$wrapperEl.children(`[data-swiper-slide-index="${e}"]:not(.${t.params.slideDuplicateClass})`).index(),!1)}else{o(t.$wrapperEl.children(`.${t.params.slideDuplicateClass}[data-swiper-slide-index="${e}"]`).index(),!1)}}i("lazyImageReady",r[0],n[0]),t.params.autoHeight&&t.updateAutoHeight()}})),i("lazyImageLoad",r[0],n[0])}))}function c(){const{$wrapperEl:e,params:s,slides:a,activeIndex:i}=t,r=t.virtual&&s.virtual.enabled,n=s.lazy;let c=s.slidesPerView;function p(t){if(r){if(e.children(`.${s.slideClass}[data-swiper-slide-index="${t}"]`).length)return!0}else if(a[t])return!0;return!1}function u(e){return r?d(e).attr("data-swiper-slide-index"):d(e).index()}if("auto"===c&&(c=0),l||(l=!0),t.params.watchSlidesProgress)e.children(`.${s.slideVisibleClass}`).each((e=>{o(r?d(e).attr("data-swiper-slide-index"):d(e).index())}));else if(c>1)for(let e=i;e<i+c;e+=1)p(e)&&o(e);else o(i);if(n.loadPrevNext)if(c>1||n.loadPrevNextAmount&&n.loadPrevNextAmount>1){const e=n.loadPrevNextAmount,t=Math.ceil(c),s=Math.min(i+t+Math.max(e,t),a.length),r=Math.max(i-Math.max(t,e),0);for(let e=i+t;e<s;e+=1)p(e)&&o(e);for(let e=r;e<i;e+=1)p(e)&&o(e)}else{const t=e.children(`.${s.slideNextClass}`);t.length>0&&o(u(t));const a=e.children(`.${s.slidePrevClass}`);a.length>0&&o(u(a))}}function p(){const e=r();if(!t||t.destroyed)return;const s=t.params.lazy.scrollingElement?d(t.params.lazy.scrollingElement):d(e),a=s[0]===e,i=a?e.innerWidth:s[0].offsetWidth,l=a?e.innerHeight:s[0].offsetHeight,o=t.$el.offset(),{rtlTranslate:u}=t;let h=!1;u&&(o.left-=t.$el[0].scrollLeft);const m=[[o.left,o.top],[o.left+t.width,o.top],[o.left,o.top+t.height],[o.left+t.width,o.top+t.height]];for(let e=0;e<m.length;e+=1){const t=m[e];if(t[0]>=0&&t[0]<=i&&t[1]>=0&&t[1]<=l){if(0===t[0]&&0===t[1])continue;h=!0}}const f=!("touchstart"!==t.touchEvents.start||!t.support.passiveListener||!t.params.passiveListeners)&&{passive:!0,capture:!1};h?(c(),s.off("scroll",p,f)):n||(n=!0,s.on("scroll",p,f))}a("beforeInit",(()=>{t.params.lazy.enabled&&t.params.preloadImages&&(t.params.preloadImages=!1)})),a("init",(()=>{t.params.lazy.enabled&&(t.params.lazy.checkInView?p():c())})),a("scroll",(()=>{t.params.freeMode&&t.params.freeMode.enabled&&!t.params.freeMode.sticky&&c()})),a("scrollbarDragMove resize _freeModeNoMomentumRelease",(()=>{t.params.lazy.enabled&&(t.params.lazy.checkInView?p():c())})),a("transitionStart",(()=>{t.params.lazy.enabled&&(t.params.lazy.loadOnTransitionStart||!t.params.lazy.loadOnTransitionStart&&!l)&&(t.params.lazy.checkInView?p():c())})),a("transitionEnd",(()=>{t.params.lazy.enabled&&!t.params.lazy.loadOnTransitionStart&&(t.params.lazy.checkInView?p():c())})),a("slideChange",(()=>{const{lazy:e,cssMode:s,watchSlidesProgress:a,touchReleaseOnEdges:i,resistanceRatio:r}=t.params;e.enabled&&(s||a&&(i||0===r))&&c()})),a("destroy",(()=>{t.$el&&t.$el.find(`.${t.params.lazy.loadingClass}`).removeClass(t.params.lazy.loadingClass)})),Object.assign(t.lazy,{load:c,loadInSlide:o})},function(e){let{swiper:t,extendParams:s,on:a}=e;function i(e,t){const s=function(){let e,t,s;return(a,i)=>{for(t=-1,e=a.length;e-t>1;)s=e+t>>1,a[s]<=i?t=s:e=s;return e}}();let a,i;return this.x=e,this.y=t,this.lastIndex=e.length-1,this.interpolate=function(e){return e?(i=s(this.x,e),a=i-1,(e-this.x[a])*(this.y[i]-this.y[a])/(this.x[i]-this.x[a])+this.y[a]):0},this}function r(){t.controller.control&&t.controller.spline&&(t.controller.spline=void 0,delete t.controller.spline)}s({controller:{control:void 0,inverse:!1,by:"slide"}}),t.controller={control:void 0},a("beforeInit",(()=>{t.controller.control=t.params.controller.control})),a("update",(()=>{r()})),a("resize",(()=>{r()})),a("observerUpdate",(()=>{r()})),a("setTranslate",((e,s,a)=>{t.controller.control&&t.controller.setTranslate(s,a)})),a("setTransition",((e,s,a)=>{t.controller.control&&t.controller.setTransition(s,a)})),Object.assign(t.controller,{setTranslate:function(e,s){const a=t.controller.control;let r,n;const l=t.constructor;function o(e){const s=t.rtlTranslate?-t.translate:t.translate;"slide"===t.params.controller.by&&(!function(e){t.controller.spline||(t.controller.spline=t.params.loop?new i(t.slidesGrid,e.slidesGrid):new i(t.snapGrid,e.snapGrid))}(e),n=-t.controller.spline.interpolate(-s)),n&&"container"!==t.params.controller.by||(r=(e.maxTranslate()-e.minTranslate())/(t.maxTranslate()-t.minTranslate()),n=(s-t.minTranslate())*r+e.minTranslate()),t.params.controller.inverse&&(n=e.maxTranslate()-n),e.updateProgress(n),e.setTranslate(n,t),e.updateActiveIndex(),e.updateSlidesClasses()}if(Array.isArray(a))for(let e=0;e<a.length;e+=1)a[e]!==s&&a[e]instanceof l&&o(a[e]);else a instanceof l&&s!==a&&o(a)},setTransition:function(e,s){const a=t.constructor,i=t.controller.control;let r;function n(s){s.setTransition(e,t),0!==e&&(s.transitionStart(),s.params.autoHeight&&p((()=>{s.updateAutoHeight()})),s.$wrapperEl.transitionEnd((()=>{i&&(s.params.loop&&"slide"===t.params.controller.by&&s.loopFix(),s.transitionEnd())})))}if(Array.isArray(i))for(r=0;r<i.length;r+=1)i[r]!==s&&i[r]instanceof a&&n(i[r]);else i instanceof a&&s!==i&&n(i)}})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({a11y:{enabled:!0,notificationClass:"swiper-notification",prevSlideMessage:"Previous slide",nextSlideMessage:"Next slide",firstSlideMessage:"This is the first slide",lastSlideMessage:"This is the last slide",paginationBulletMessage:"Go to slide {{index}}",slideLabelMessage:"{{index}} / {{slidesLength}}",containerMessage:null,containerRoleDescriptionMessage:null,itemRoleDescriptionMessage:null,slideRole:"group",id:null}});let i=null;function r(e){const t=i;0!==t.length&&(t.html(""),t.html(e))}function n(e){e.attr("tabIndex","0")}function l(e){e.attr("tabIndex","-1")}function o(e,t){e.attr("role",t)}function c(e,t){e.attr("aria-roledescription",t)}function p(e,t){e.attr("aria-label",t)}function u(e){e.attr("aria-disabled",!0)}function h(e){e.attr("aria-disabled",!1)}function m(e){if(13!==e.keyCode&&32!==e.keyCode)return;const s=t.params.a11y,a=d(e.target);t.navigation&&t.navigation.$nextEl&&a.is(t.navigation.$nextEl)&&(t.isEnd&&!t.params.loop||t.slideNext(),t.isEnd?r(s.lastSlideMessage):r(s.nextSlideMessage)),t.navigation&&t.navigation.$prevEl&&a.is(t.navigation.$prevEl)&&(t.isBeginning&&!t.params.loop||t.slidePrev(),t.isBeginning?r(s.firstSlideMessage):r(s.prevSlideMessage)),t.pagination&&a.is(U(t.params.pagination.bulletClass))&&a[0].click()}function f(){return t.pagination&&t.pagination.bullets&&t.pagination.bullets.length}function g(){return f()&&t.params.pagination.clickable}const v=(e,t,s)=>{n(e),"BUTTON"!==e[0].tagName&&(o(e,"button"),e.on("keydown",m)),p(e,s),function(e,t){e.attr("aria-controls",t)}(e,t)},w=e=>{const s=e.target.closest(`.${t.params.slideClass}`);if(!s||!t.slides.includes(s))return;const a=t.slides.indexOf(s)===t.activeIndex,i=t.params.watchSlidesProgress&&t.visibleSlides&&t.visibleSlides.includes(s);a||i||(t.isHorizontal()?t.el.scrollLeft=0:t.el.scrollTop=0,t.slideTo(t.slides.indexOf(s),0))},b=()=>{const e=t.params.a11y;e.itemRoleDescriptionMessage&&c(d(t.slides),e.itemRoleDescriptionMessage),e.slideRole&&o(d(t.slides),e.slideRole);const s=t.params.loop?t.slides.filter((e=>!e.classList.contains(t.params.slideDuplicateClass))).length:t.slides.length;e.slideLabelMessage&&t.slides.each(((a,i)=>{const r=d(a),n=t.params.loop?parseInt(r.attr("data-swiper-slide-index"),10):i;p(r,e.slideLabelMessage.replace(/\{\{index\}\}/,n+1).replace(/\{\{slidesLength\}\}/,s))}))},x=()=>{const e=t.params.a11y;t.$el.append(i);const s=t.$el;e.containerRoleDescriptionMessage&&c(s,e.containerRoleDescriptionMessage),e.containerMessage&&p(s,e.containerMessage);const a=t.$wrapperEl,r=e.id||a.attr("id")||`swiper-wrapper-${n=16,void 0===n&&(n=16),"x".repeat(n).replace(/x/g,(()=>Math.round(16*Math.random()).toString(16)))}`;var n;const l=t.params.autoplay&&t.params.autoplay.enabled?"off":"polite";var o;let d,u;o=r,a.attr("id",o),function(e,t){e.attr("aria-live",t)}(a,l),b(),t.navigation&&t.navigation.$nextEl&&(d=t.navigation.$nextEl),t.navigation&&t.navigation.$prevEl&&(u=t.navigation.$prevEl),d&&d.length&&v(d,r,e.nextSlideMessage),u&&u.length&&v(u,r,e.prevSlideMessage),g()&&t.pagination.$el.on("keydown",U(t.params.pagination.bulletClass),m),t.$el.on("focus",w,!0)};a("beforeInit",(()=>{i=d(`<span class="${t.params.a11y.notificationClass}" aria-live="assertive" aria-atomic="true"></span>`)})),a("afterInit",(()=>{t.params.a11y.enabled&&x()})),a("slidesLengthChange snapGridLengthChange slidesGridLengthChange",(()=>{t.params.a11y.enabled&&b()})),a("fromEdge toEdge afterInit lock unlock",(()=>{t.params.a11y.enabled&&function(){if(t.params.loop||t.params.rewind||!t.navigation)return;const{$nextEl:e,$prevEl:s}=t.navigation;s&&s.length>0&&(t.isBeginning?(u(s),l(s)):(h(s),n(s))),e&&e.length>0&&(t.isEnd?(u(e),l(e)):(h(e),n(e)))}()})),a("paginationUpdate",(()=>{t.params.a11y.enabled&&function(){const e=t.params.a11y;f()&&t.pagination.bullets.each((s=>{const a=d(s);t.params.pagination.clickable&&(n(a),t.params.pagination.renderBullet||(o(a,"button"),p(a,e.paginationBulletMessage.replace(/\{\{index\}\}/,a.index()+1)))),a.is(`.${t.params.pagination.bulletActiveClass}`)?a.attr("aria-current","true"):a.removeAttr("aria-current")}))}()})),a("destroy",(()=>{t.params.a11y.enabled&&function(){let e,s;i&&i.length>0&&i.remove(),t.navigation&&t.navigation.$nextEl&&(e=t.navigation.$nextEl),t.navigation&&t.navigation.$prevEl&&(s=t.navigation.$prevEl),e&&e.off("keydown",m),s&&s.off("keydown",m),g()&&t.pagination.$el.off("keydown",U(t.params.pagination.bulletClass),m),t.$el.off("focus",w,!0)}()}))},function(e){let{swiper:t,extendParams:s,on:a}=e;s({history:{enabled:!1,root:"",replaceState:!1,key:"slides",keepQuery:!1}});let i=!1,n={};const l=e=>e.toString().replace(/\s+/g,"-").replace(/[^\w-]+/g,"").replace(/--+/g,"-").replace(/^-+/,"").replace(/-+$/,""),o=e=>{const t=r();let s;s=e?new URL(e):t.location;const a=s.pathname.slice(1).split("/").filter((e=>""!==e)),i=a.length;return{key:a[i-2],value:a[i-1]}},d=(e,s)=>{const a=r();if(!i||!t.params.history.enabled)return;let n;n=t.params.url?new URL(t.params.url):a.location;const o=t.slides.eq(s);let d=l(o.attr("data-history"));if(t.params.history.root.length>0){let s=t.params.history.root;"/"===s[s.length-1]&&(s=s.slice(0,s.length-1)),d=`${s}/${e}/${d}`}else n.pathname.includes(e)||(d=`${e}/${d}`);t.params.history.keepQuery&&(d+=n.search);const c=a.history.state;c&&c.value===d||(t.params.history.replaceState?a.history.replaceState({value:d},null,d):a.history.pushState({value:d},null,d))},c=(e,s,a)=>{if(s)for(let i=0,r=t.slides.length;i<r;i+=1){const r=t.slides.eq(i);if(l(r.attr("data-history"))===s&&!r.hasClass(t.params.slideDuplicateClass)){const s=r.index();t.slideTo(s,e,a)}}else t.slideTo(0,e,a)},p=()=>{n=o(t.params.url),c(t.params.speed,n.value,!1)};a("init",(()=>{t.params.history.enabled&&(()=>{const e=r();if(t.params.history){if(!e.history||!e.history.pushState)return t.params.history.enabled=!1,void(t.params.hashNavigation.enabled=!0);i=!0,n=o(t.params.url),(n.key||n.value)&&(c(0,n.value,t.params.runCallbacksOnInit),t.params.history.replaceState||e.addEventListener("popstate",p))}})()})),a("destroy",(()=>{t.params.history.enabled&&(()=>{const e=r();t.params.history.replaceState||e.removeEventListener("popstate",p)})()})),a("transitionEnd _freeModeNoMomentumRelease",(()=>{i&&d(t.params.history.key,t.activeIndex)})),a("slideChange",(()=>{i&&t.params.cssMode&&d(t.params.history.key,t.activeIndex)}))},function(e){let{swiper:t,extendParams:s,emit:i,on:n}=e,l=!1;const o=a(),c=r();s({hashNavigation:{enabled:!1,replaceState:!1,watchState:!1}});const p=()=>{i("hashChange");const e=o.location.hash.replace("#","");if(e!==t.slides.eq(t.activeIndex).attr("data-hash")){const s=t.$wrapperEl.children(`.${t.params.slideClass}[data-hash="${e}"]`).index();if(void 0===s)return;t.slideTo(s)}},u=()=>{if(l&&t.params.hashNavigation.enabled)if(t.params.hashNavigation.replaceState&&c.history&&c.history.replaceState)c.history.replaceState(null,null,`#${t.slides.eq(t.activeIndex).attr("data-hash")}`||""),i("hashSet");else{const e=t.slides.eq(t.activeIndex),s=e.attr("data-hash")||e.attr("data-history");o.location.hash=s||"",i("hashSet")}};n("init",(()=>{t.params.hashNavigation.enabled&&(()=>{if(!t.params.hashNavigation.enabled||t.params.history&&t.params.history.enabled)return;l=!0;const e=o.location.hash.replace("#","");if(e){const s=0;for(let a=0,i=t.slides.length;a<i;a+=1){const i=t.slides.eq(a);if((i.attr("data-hash")||i.attr("data-history"))===e&&!i.hasClass(t.params.slideDuplicateClass)){const e=i.index();t.slideTo(e,s,t.params.runCallbacksOnInit,!0)}}}t.params.hashNavigation.watchState&&d(c).on("hashchange",p)})()})),n("destroy",(()=>{t.params.hashNavigation.enabled&&t.params.hashNavigation.watchState&&d(c).off("hashchange",p)})),n("transitionEnd _freeModeNoMomentumRelease",(()=>{l&&u()})),n("slideChange",(()=>{l&&t.params.cssMode&&u()}))},function(e){let t,{swiper:s,extendParams:i,on:r,emit:n}=e;function l(){if(!s.size)return s.autoplay.running=!1,void(s.autoplay.paused=!1);const e=s.slides.eq(s.activeIndex);let a=s.params.autoplay.delay;e.attr("data-swiper-autoplay")&&(a=e.attr("data-swiper-autoplay")||s.params.autoplay.delay),clearTimeout(t),t=p((()=>{let e;s.params.autoplay.reverseDirection?s.params.loop?(s.loopFix(),e=s.slidePrev(s.params.speed,!0,!0),n("autoplay")):s.isBeginning?s.params.autoplay.stopOnLastSlide?d():(e=s.slideTo(s.slides.length-1,s.params.speed,!0,!0),n("autoplay")):(e=s.slidePrev(s.params.speed,!0,!0),n("autoplay")):s.params.loop?(s.loopFix(),e=s.slideNext(s.params.speed,!0,!0),n("autoplay")):s.isEnd?s.params.autoplay.stopOnLastSlide?d():(e=s.slideTo(0,s.params.speed,!0,!0),n("autoplay")):(e=s.slideNext(s.params.speed,!0,!0),n("autoplay")),(s.params.cssMode&&s.autoplay.running||!1===e)&&l()}),a)}function o(){return void 0===t&&(!s.autoplay.running&&(s.autoplay.running=!0,n("autoplayStart"),l(),!0))}function d(){return!!s.autoplay.running&&(void 0!==t&&(t&&(clearTimeout(t),t=void 0),s.autoplay.running=!1,n("autoplayStop"),!0))}function c(e){s.autoplay.running&&(s.autoplay.paused||(t&&clearTimeout(t),s.autoplay.paused=!0,0!==e&&s.params.autoplay.waitForTransition?["transitionend","webkitTransitionEnd"].forEach((e=>{s.$wrapperEl[0].addEventListener(e,h)})):(s.autoplay.paused=!1,l())))}function u(){const e=a();"hidden"===e.visibilityState&&s.autoplay.running&&c(),"visible"===e.visibilityState&&s.autoplay.paused&&(l(),s.autoplay.paused=!1)}function h(e){s&&!s.destroyed&&s.$wrapperEl&&e.target===s.$wrapperEl[0]&&(["transitionend","webkitTransitionEnd"].forEach((e=>{s.$wrapperEl[0].removeEventListener(e,h)})),s.autoplay.paused=!1,s.autoplay.running?l():d())}function m(){s.params.autoplay.disableOnInteraction?d():(n("autoplayPause"),c()),["transitionend","webkitTransitionEnd"].forEach((e=>{s.$wrapperEl[0].removeEventListener(e,h)}))}function f(){s.params.autoplay.disableOnInteraction||(s.autoplay.paused=!1,n("autoplayResume"),l())}s.autoplay={running:!1,paused:!1},i({autoplay:{enabled:!1,delay:3e3,waitForTransition:!0,disableOnInteraction:!0,stopOnLastSlide:!1,reverseDirection:!1,pauseOnMouseEnter:!1}}),r("init",(()=>{if(s.params.autoplay.enabled){o();a().addEventListener("visibilitychange",u),s.params.autoplay.pauseOnMouseEnter&&(s.$el.on("mouseenter",m),s.$el.on("mouseleave",f))}})),r("beforeTransitionStart",((e,t,a)=>{s.autoplay.running&&(a||!s.params.autoplay.disableOnInteraction?s.autoplay.pause(t):d())})),r("sliderFirstMove",(()=>{s.autoplay.running&&(s.params.autoplay.disableOnInteraction?d():c())})),r("touchEnd",(()=>{s.params.cssMode&&s.autoplay.paused&&!s.params.autoplay.disableOnInteraction&&l()})),r("destroy",(()=>{s.$el.off("mouseenter",m),s.$el.off("mouseleave",f),s.autoplay.running&&d();a().removeEventListener("visibilitychange",u)})),Object.assign(s.autoplay,{pause:c,run:l,start:o,stop:d})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({thumbs:{swiper:null,multipleActiveThumbs:!0,autoScrollOffset:0,slideThumbActiveClass:"swiper-slide-thumb-active",thumbsContainerClass:"swiper-thumbs"}});let i=!1,r=!1;function n(){const e=t.thumbs.swiper;if(!e||e.destroyed)return;const s=e.clickedIndex,a=e.clickedSlide;if(a&&d(a).hasClass(t.params.thumbs.slideThumbActiveClass))return;if(null==s)return;let i;if(i=e.params.loop?parseInt(d(e.clickedSlide).attr("data-swiper-slide-index"),10):s,t.params.loop){let e=t.activeIndex;t.slides.eq(e).hasClass(t.params.slideDuplicateClass)&&(t.loopFix(),t._clientLeft=t.$wrapperEl[0].clientLeft,e=t.activeIndex);const s=t.slides.eq(e).prevAll(`[data-swiper-slide-index="${i}"]`).eq(0).index(),a=t.slides.eq(e).nextAll(`[data-swiper-slide-index="${i}"]`).eq(0).index();i=void 0===s?a:void 0===a?s:a-e<e-s?a:s}t.slideTo(i)}function l(){const{thumbs:e}=t.params;if(i)return!1;i=!0;const s=t.constructor;if(e.swiper instanceof s)t.thumbs.swiper=e.swiper,Object.assign(t.thumbs.swiper.originalParams,{watchSlidesProgress:!0,slideToClickedSlide:!1}),Object.assign(t.thumbs.swiper.params,{watchSlidesProgress:!0,slideToClickedSlide:!1});else if(m(e.swiper)){const a=Object.assign({},e.swiper);Object.assign(a,{watchSlidesProgress:!0,slideToClickedSlide:!1}),t.thumbs.swiper=new s(a),r=!0}return t.thumbs.swiper.$el.addClass(t.params.thumbs.thumbsContainerClass),t.thumbs.swiper.on("tap",n),!0}function o(e){const s=t.thumbs.swiper;if(!s||s.destroyed)return;const a="auto"===s.params.slidesPerView?s.slidesPerViewDynamic():s.params.slidesPerView;let i=1;const r=t.params.thumbs.slideThumbActiveClass;if(t.params.slidesPerView>1&&!t.params.centeredSlides&&(i=t.params.slidesPerView),t.params.thumbs.multipleActiveThumbs||(i=1),i=Math.floor(i),s.slides.removeClass(r),s.params.loop||s.params.virtual&&s.params.virtual.enabled)for(let e=0;e<i;e+=1)s.$wrapperEl.children(`[data-swiper-slide-index="${t.realIndex+e}"]`).addClass(r);else for(let e=0;e<i;e+=1)s.slides.eq(t.realIndex+e).addClass(r);const n=t.params.thumbs.autoScrollOffset,l=n&&!s.params.loop;if(t.realIndex!==s.realIndex||l){let i,r,o=s.activeIndex;if(s.params.loop){s.slides.eq(o).hasClass(s.params.slideDuplicateClass)&&(s.loopFix(),s._clientLeft=s.$wrapperEl[0].clientLeft,o=s.activeIndex);const e=s.slides.eq(o).prevAll(`[data-swiper-slide-index="${t.realIndex}"]`).eq(0).index(),a=s.slides.eq(o).nextAll(`[data-swiper-slide-index="${t.realIndex}"]`).eq(0).index();i=void 0===e?a:void 0===a?e:a-o==o-e?s.params.slidesPerGroup>1?a:o:a-o<o-e?a:e,r=t.activeIndex>t.previousIndex?"next":"prev"}else i=t.realIndex,r=i>t.previousIndex?"next":"prev";l&&(i+="next"===r?n:-1*n),s.visibleSlidesIndexes&&s.visibleSlidesIndexes.indexOf(i)<0&&(s.params.centeredSlides?i=i>o?i-Math.floor(a/2)+1:i+Math.floor(a/2)-1:i>o&&s.params.slidesPerGroup,s.slideTo(i,e?0:void 0))}}t.thumbs={swiper:null},a("beforeInit",(()=>{const{thumbs:e}=t.params;e&&e.swiper&&(l(),o(!0))})),a("slideChange update resize observerUpdate",(()=>{o()})),a("setTransition",((e,s)=>{const a=t.thumbs.swiper;a&&!a.destroyed&&a.setTransition(s)})),a("beforeDestroy",(()=>{const e=t.thumbs.swiper;e&&!e.destroyed&&r&&e.destroy()})),Object.assign(t.thumbs,{init:l,update:o})},function(e){let{swiper:t,extendParams:s,emit:a,once:i}=e;s({freeMode:{enabled:!1,momentum:!0,momentumRatio:1,momentumBounce:!0,momentumBounceRatio:1,momentumVelocityRatio:1,sticky:!1,minimumVelocity:.02}}),Object.assign(t,{freeMode:{onTouchStart:function(){const e=t.getTranslate();t.setTranslate(e),t.setTransition(0),t.touchEventsData.velocities.length=0,t.freeMode.onTouchEnd({currentPos:t.rtl?t.translate:-t.translate})},onTouchMove:function(){const{touchEventsData:e,touches:s}=t;0===e.velocities.length&&e.velocities.push({position:s[t.isHorizontal()?"startX":"startY"],time:e.touchStartTime}),e.velocities.push({position:s[t.isHorizontal()?"currentX":"currentY"],time:u()})},onTouchEnd:function(e){let{currentPos:s}=e;const{params:r,$wrapperEl:n,rtlTranslate:l,snapGrid:o,touchEventsData:d}=t,c=u()-d.touchStartTime;if(s<-t.minTranslate())t.slideTo(t.activeIndex);else if(s>-t.maxTranslate())t.slides.length<o.length?t.slideTo(o.length-1):t.slideTo(t.slides.length-1);else{if(r.freeMode.momentum){if(d.velocities.length>1){const e=d.velocities.pop(),s=d.velocities.pop(),a=e.position-s.position,i=e.time-s.time;t.velocity=a/i,t.velocity/=2,Math.abs(t.velocity)<r.freeMode.minimumVelocity&&(t.velocity=0),(i>150||u()-e.time>300)&&(t.velocity=0)}else t.velocity=0;t.velocity*=r.freeMode.momentumVelocityRatio,d.velocities.length=0;let e=1e3*r.freeMode.momentumRatio;const s=t.velocity*e;let c=t.translate+s;l&&(c=-c);let p,h=!1;const m=20*Math.abs(t.velocity)*r.freeMode.momentumBounceRatio;let f;if(c<t.maxTranslate())r.freeMode.momentumBounce?(c+t.maxTranslate()<-m&&(c=t.maxTranslate()-m),p=t.maxTranslate(),h=!0,d.allowMomentumBounce=!0):c=t.maxTranslate(),r.loop&&r.centeredSlides&&(f=!0);else if(c>t.minTranslate())r.freeMode.momentumBounce?(c-t.minTranslate()>m&&(c=t.minTranslate()+m),p=t.minTranslate(),h=!0,d.allowMomentumBounce=!0):c=t.minTranslate(),r.loop&&r.centeredSlides&&(f=!0);else if(r.freeMode.sticky){let e;for(let t=0;t<o.length;t+=1)if(o[t]>-c){e=t;break}c=Math.abs(o[e]-c)<Math.abs(o[e-1]-c)||"next"===t.swipeDirection?o[e]:o[e-1],c=-c}if(f&&i("transitionEnd",(()=>{t.loopFix()})),0!==t.velocity){if(e=l?Math.abs((-c-t.translate)/t.velocity):Math.abs((c-t.translate)/t.velocity),r.freeMode.sticky){const s=Math.abs((l?-c:c)-t.translate),a=t.slidesSizesGrid[t.activeIndex];e=s<a?r.speed:s<2*a?1.5*r.speed:2.5*r.speed}}else if(r.freeMode.sticky)return void t.slideToClosest();r.freeMode.momentumBounce&&h?(t.updateProgress(p),t.setTransition(e),t.setTranslate(c),t.transitionStart(!0,t.swipeDirection),t.animating=!0,n.transitionEnd((()=>{t&&!t.destroyed&&d.allowMomentumBounce&&(a("momentumBounce"),t.setTransition(r.speed),setTimeout((()=>{t.setTranslate(p),n.transitionEnd((()=>{t&&!t.destroyed&&t.transitionEnd()}))}),0))}))):t.velocity?(a("_freeModeNoMomentumRelease"),t.updateProgress(c),t.setTransition(e),t.setTranslate(c),t.transitionStart(!0,t.swipeDirection),t.animating||(t.animating=!0,n.transitionEnd((()=>{t&&!t.destroyed&&t.transitionEnd()})))):t.updateProgress(c),t.updateActiveIndex(),t.updateSlidesClasses()}else{if(r.freeMode.sticky)return void t.slideToClosest();r.freeMode&&a("_freeModeNoMomentumRelease")}(!r.freeMode.momentum||c>=r.longSwipesMs)&&(t.updateProgress(),t.updateActiveIndex(),t.updateSlidesClasses())}}}})},function(e){let t,s,a,{swiper:i,extendParams:r}=e;r({grid:{rows:1,fill:"column"}}),i.grid={initSlides:e=>{const{slidesPerView:r}=i.params,{rows:n,fill:l}=i.params.grid;s=t/n,a=Math.floor(e/n),t=Math.floor(e/n)===e/n?e:Math.ceil(e/n)*n,"auto"!==r&&"row"===l&&(t=Math.max(t,r*n))},updateSlide:(e,r,n,l)=>{const{slidesPerGroup:o,spaceBetween:d}=i.params,{rows:c,fill:p}=i.params.grid;let u,h,m;if("row"===p&&o>1){const s=Math.floor(e/(o*c)),a=e-c*o*s,i=0===s?o:Math.min(Math.ceil((n-s*c*o)/c),o);m=Math.floor(a/i),h=a-m*i+s*o,u=h+m*t/c,r.css({"-webkit-order":u,order:u})}else"column"===p?(h=Math.floor(e/c),m=e-h*c,(h>a||h===a&&m===c-1)&&(m+=1,m>=c&&(m=0,h+=1))):(m=Math.floor(e/s),h=e-m*s);r.css(l("margin-top"),0!==m?d&&`${d}px`:"")},updateWrapperSize:(e,s,a)=>{const{spaceBetween:r,centeredSlides:n,roundLengths:l}=i.params,{rows:o}=i.params.grid;if(i.virtualSize=(e+r)*t,i.virtualSize=Math.ceil(i.virtualSize/o)-r,i.$wrapperEl.css({[a("width")]:`${i.virtualSize+r}px`}),n){s.splice(0,s.length);const e=[];for(let t=0;t<s.length;t+=1){let a=s[t];l&&(a=Math.floor(a)),s[t]<i.virtualSize+s[0]&&e.push(a)}s.push(...e)}}}},function(e){let{swiper:t}=e;Object.assign(t,{appendSlide:K.bind(t),prependSlide:Z.bind(t),addSlide:Q.bind(t),removeSlide:J.bind(t),removeAllSlides:ee.bind(t)})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({fadeEffect:{crossFade:!1,transformEl:null}}),te({effect:"fade",swiper:t,on:a,setTranslate:()=>{const{slides:e}=t,s=t.params.fadeEffect;for(let a=0;a<e.length;a+=1){const e=t.slides.eq(a);let i=-e[0].swiperSlideOffset;t.params.virtualTranslate||(i-=t.translate);let r=0;t.isHorizontal()||(r=i,i=0);const n=t.params.fadeEffect.crossFade?Math.max(1-Math.abs(e[0].progress),0):1+Math.min(Math.max(e[0].progress,-1),0);se(s,e).css({opacity:n}).transform(`translate3d(${i}px, ${r}px, 0px)`)}},setTransition:e=>{const{transformEl:s}=t.params.fadeEffect;(s?t.slides.find(s):t.slides).transition(e),ae({swiper:t,duration:e,transformEl:s,allSlides:!0})},overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!t.params.cssMode})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({cubeEffect:{slideShadows:!0,shadow:!0,shadowOffset:20,shadowScale:.94}});const i=(e,t,s)=>{let a=s?e.find(".swiper-slide-shadow-left"):e.find(".swiper-slide-shadow-top"),i=s?e.find(".swiper-slide-shadow-right"):e.find(".swiper-slide-shadow-bottom");0===a.length&&(a=d(`<div class="swiper-slide-shadow-${s?"left":"top"}"></div>`),e.append(a)),0===i.length&&(i=d(`<div class="swiper-slide-shadow-${s?"right":"bottom"}"></div>`),e.append(i)),a.length&&(a[0].style.opacity=Math.max(-t,0)),i.length&&(i[0].style.opacity=Math.max(t,0))};te({effect:"cube",swiper:t,on:a,setTranslate:()=>{const{$el:e,$wrapperEl:s,slides:a,width:r,height:n,rtlTranslate:l,size:o,browser:c}=t,p=t.params.cubeEffect,u=t.isHorizontal(),h=t.virtual&&t.params.virtual.enabled;let m,f=0;p.shadow&&(u?(m=s.find(".swiper-cube-shadow"),0===m.length&&(m=d('<div class="swiper-cube-shadow"></div>'),s.append(m)),m.css({height:`${r}px`})):(m=e.find(".swiper-cube-shadow"),0===m.length&&(m=d('<div class="swiper-cube-shadow"></div>'),e.append(m))));for(let e=0;e<a.length;e+=1){const t=a.eq(e);let s=e;h&&(s=parseInt(t.attr("data-swiper-slide-index"),10));let r=90*s,n=Math.floor(r/360);l&&(r=-r,n=Math.floor(-r/360));const d=Math.max(Math.min(t[0].progress,1),-1);let c=0,m=0,g=0;s%4==0?(c=4*-n*o,g=0):(s-1)%4==0?(c=0,g=4*-n*o):(s-2)%4==0?(c=o+4*n*o,g=o):(s-3)%4==0&&(c=-o,g=3*o+4*o*n),l&&(c=-c),u||(m=c,c=0);const v=`rotateX(${u?0:-r}deg) rotateY(${u?r:0}deg) translate3d(${c}px, ${m}px, ${g}px)`;d<=1&&d>-1&&(f=90*s+90*d,l&&(f=90*-s-90*d)),t.transform(v),p.slideShadows&&i(t,d,u)}if(s.css({"-webkit-transform-origin":`50% 50% -${o/2}px`,"transform-origin":`50% 50% -${o/2}px`}),p.shadow)if(u)m.transform(`translate3d(0px, ${r/2+p.shadowOffset}px, ${-r/2}px) rotateX(90deg) rotateZ(0deg) scale(${p.shadowScale})`);else{const e=Math.abs(f)-90*Math.floor(Math.abs(f)/90),t=1.5-(Math.sin(2*e*Math.PI/360)/2+Math.cos(2*e*Math.PI/360)/2),s=p.shadowScale,a=p.shadowScale/t,i=p.shadowOffset;m.transform(`scale3d(${s}, 1, ${a}) translate3d(0px, ${n/2+i}px, ${-n/2/a}px) rotateX(-90deg)`)}const g=c.isSafari||c.isWebView?-o/2:0;s.transform(`translate3d(0px,0,${g}px) rotateX(${t.isHorizontal()?0:f}deg) rotateY(${t.isHorizontal()?-f:0}deg)`),s[0].style.setProperty("--swiper-cube-translate-z",`${g}px`)},setTransition:e=>{const{$el:s,slides:a}=t;a.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e),t.params.cubeEffect.shadow&&!t.isHorizontal()&&s.find(".swiper-cube-shadow").transition(e)},recreateShadows:()=>{const e=t.isHorizontal();t.slides.each((t=>{const s=Math.max(Math.min(t.progress,1),-1);i(d(t),s,e)}))},getEffectParams:()=>t.params.cubeEffect,perspective:()=>!0,overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,resistanceRatio:0,spaceBetween:0,centeredSlides:!1,virtualTranslate:!0})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({flipEffect:{slideShadows:!0,limitRotation:!0,transformEl:null}});const i=(e,s,a)=>{let i=t.isHorizontal()?e.find(".swiper-slide-shadow-left"):e.find(".swiper-slide-shadow-top"),r=t.isHorizontal()?e.find(".swiper-slide-shadow-right"):e.find(".swiper-slide-shadow-bottom");0===i.length&&(i=ie(a,e,t.isHorizontal()?"left":"top")),0===r.length&&(r=ie(a,e,t.isHorizontal()?"right":"bottom")),i.length&&(i[0].style.opacity=Math.max(-s,0)),r.length&&(r[0].style.opacity=Math.max(s,0))};te({effect:"flip",swiper:t,on:a,setTranslate:()=>{const{slides:e,rtlTranslate:s}=t,a=t.params.flipEffect;for(let r=0;r<e.length;r+=1){const n=e.eq(r);let l=n[0].progress;t.params.flipEffect.limitRotation&&(l=Math.max(Math.min(n[0].progress,1),-1));const o=n[0].swiperSlideOffset;let d=-180*l,c=0,p=t.params.cssMode?-o-t.translate:-o,u=0;t.isHorizontal()?s&&(d=-d):(u=p,p=0,c=-d,d=0),n[0].style.zIndex=-Math.abs(Math.round(l))+e.length,a.slideShadows&&i(n,l,a);const h=`translate3d(${p}px, ${u}px, 0px) rotateX(${c}deg) rotateY(${d}deg)`;se(a,n).transform(h)}},setTransition:e=>{const{transformEl:s}=t.params.flipEffect;(s?t.slides.find(s):t.slides).transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e),ae({swiper:t,duration:e,transformEl:s})},recreateShadows:()=>{const e=t.params.flipEffect;t.slides.each((s=>{const a=d(s);let r=a[0].progress;t.params.flipEffect.limitRotation&&(r=Math.max(Math.min(s.progress,1),-1)),i(a,r,e)}))},getEffectParams:()=>t.params.flipEffect,perspective:()=>!0,overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!t.params.cssMode})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({coverflowEffect:{rotate:50,stretch:0,depth:100,scale:1,modifier:1,slideShadows:!0,transformEl:null}}),te({effect:"coverflow",swiper:t,on:a,setTranslate:()=>{const{width:e,height:s,slides:a,slidesSizesGrid:i}=t,r=t.params.coverflowEffect,n=t.isHorizontal(),l=t.translate,o=n?e/2-l:s/2-l,d=n?r.rotate:-r.rotate,c=r.depth;for(let e=0,t=a.length;e<t;e+=1){const t=a.eq(e),s=i[e],l=(o-t[0].swiperSlideOffset-s/2)/s,p="function"==typeof r.modifier?r.modifier(l):l*r.modifier;let u=n?d*p:0,h=n?0:d*p,m=-c*Math.abs(p),f=r.stretch;"string"==typeof f&&-1!==f.indexOf("%")&&(f=parseFloat(r.stretch)/100*s);let g=n?0:f*p,v=n?f*p:0,w=1-(1-r.scale)*Math.abs(p);Math.abs(v)<.001&&(v=0),Math.abs(g)<.001&&(g=0),Math.abs(m)<.001&&(m=0),Math.abs(u)<.001&&(u=0),Math.abs(h)<.001&&(h=0),Math.abs(w)<.001&&(w=0);const b=`translate3d(${v}px,${g}px,${m}px)  rotateX(${h}deg) rotateY(${u}deg) scale(${w})`;if(se(r,t).transform(b),t[0].style.zIndex=1-Math.abs(Math.round(p)),r.slideShadows){let e=n?t.find(".swiper-slide-shadow-left"):t.find(".swiper-slide-shadow-top"),s=n?t.find(".swiper-slide-shadow-right"):t.find(".swiper-slide-shadow-bottom");0===e.length&&(e=ie(r,t,n?"left":"top")),0===s.length&&(s=ie(r,t,n?"right":"bottom")),e.length&&(e[0].style.opacity=p>0?p:0),s.length&&(s[0].style.opacity=-p>0?-p:0)}}},setTransition:e=>{const{transformEl:s}=t.params.coverflowEffect;(s?t.slides.find(s):t.slides).transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e)},perspective:()=>!0,overwriteParams:()=>({watchSlidesProgress:!0})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({creativeEffect:{transformEl:null,limitProgress:1,shadowPerProgress:!1,progressMultiplier:1,perspective:!0,prev:{translate:[0,0,0],rotate:[0,0,0],opacity:1,scale:1},next:{translate:[0,0,0],rotate:[0,0,0],opacity:1,scale:1}}});const i=e=>"string"==typeof e?e:`${e}px`;te({effect:"creative",swiper:t,on:a,setTranslate:()=>{const{slides:e,$wrapperEl:s,slidesSizesGrid:a}=t,r=t.params.creativeEffect,{progressMultiplier:n}=r,l=t.params.centeredSlides;if(l){const e=a[0]/2-t.params.slidesOffsetBefore||0;s.transform(`translateX(calc(50% - ${e}px))`)}for(let s=0;s<e.length;s+=1){const a=e.eq(s),o=a[0].progress,d=Math.min(Math.max(a[0].progress,-r.limitProgress),r.limitProgress);let c=d;l||(c=Math.min(Math.max(a[0].originalProgress,-r.limitProgress),r.limitProgress));const p=a[0].swiperSlideOffset,u=[t.params.cssMode?-p-t.translate:-p,0,0],h=[0,0,0];let m=!1;t.isHorizontal()||(u[1]=u[0],u[0]=0);
11342let f={translate:[0,0,0],rotate:[0,0,0],scale:1,opacity:1};d<0?(f=r.next,m=!0):d>0&&(f=r.prev,m=!0),u.forEach(((e,t)=>{u[t]=`calc(${e}px + (${i(f.translate[t])} * ${Math.abs(d*n)}))`})),h.forEach(((e,t)=>{h[t]=f.rotate[t]*Math.abs(d*n)})),a[0].style.zIndex=-Math.abs(Math.round(o))+e.length;const g=u.join(", "),v=`rotateX(${h[0]}deg) rotateY(${h[1]}deg) rotateZ(${h[2]}deg)`,w=c<0?`scale(${1+(1-f.scale)*c*n})`:`scale(${1-(1-f.scale)*c*n})`,b=c<0?1+(1-f.opacity)*c*n:1-(1-f.opacity)*c*n,x=`translate3d(${g}) ${v} ${w}`;if(m&&f.shadow||!m){let e=a.children(".swiper-slide-shadow");if(0===e.length&&f.shadow&&(e=ie(r,a)),e.length){const t=r.shadowPerProgress?d*(1/r.limitProgress):d;e[0].style.opacity=Math.min(Math.max(Math.abs(t),0),1)}}const y=se(r,a);y.transform(x).css({opacity:b}),f.origin&&y.css("transform-origin",f.origin)}},setTransition:e=>{const{transformEl:s}=t.params.creativeEffect;(s?t.slides.find(s):t.slides).transition(e).find(".swiper-slide-shadow").transition(e),ae({swiper:t,duration:e,transformEl:s,allSlides:!0})},perspective:()=>t.params.creativeEffect.perspective,overwriteParams:()=>({watchSlidesProgress:!0,virtualTranslate:!t.params.cssMode})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({cardsEffect:{slideShadows:!0,transformEl:null,rotate:!0}}),te({effect:"cards",swiper:t,on:a,setTranslate:()=>{const{slides:e,activeIndex:s}=t,a=t.params.cardsEffect,{startTranslate:i,isTouched:r}=t.touchEventsData,n=t.translate;for(let l=0;l<e.length;l+=1){const o=e.eq(l),d=o[0].progress,c=Math.min(Math.max(d,-4),4);let p=o[0].swiperSlideOffset;t.params.centeredSlides&&!t.params.cssMode&&t.$wrapperEl.transform(`translateX(${t.minTranslate()}px)`),t.params.centeredSlides&&t.params.cssMode&&(p-=e[0].swiperSlideOffset);let u=t.params.cssMode?-p-t.translate:-p,h=0;const m=-100*Math.abs(c);let f=1,g=-2*c,v=8-.75*Math.abs(c);const w=t.virtual&&t.params.virtual.enabled?t.virtual.from+l:l,b=(w===s||w===s-1)&&c>0&&c<1&&(r||t.params.cssMode)&&n<i,x=(w===s||w===s+1)&&c<0&&c>-1&&(r||t.params.cssMode)&&n>i;if(b||x){const e=(1-Math.abs((Math.abs(c)-.5)/.5))**.5;g+=-28*c*e,f+=-.5*e,v+=96*e,h=-25*e*Math.abs(c)+"%"}if(u=c<0?`calc(${u}px + (${v*Math.abs(c)}%))`:c>0?`calc(${u}px + (-${v*Math.abs(c)}%))`:`${u}px`,!t.isHorizontal()){const e=h;h=u,u=e}const y=c<0?""+(1+(1-f)*c):""+(1-(1-f)*c),E=`\n        translate3d(${u}, ${h}, ${m}px)\n        rotateZ(${a.rotate?g:0}deg)\n        scale(${y})\n      `;if(a.slideShadows){let e=o.find(".swiper-slide-shadow");0===e.length&&(e=ie(a,o)),e.length&&(e[0].style.opacity=Math.min(Math.max((Math.abs(c)-.5)/.5,0),1))}o[0].style.zIndex=-Math.abs(Math.round(d))+e.length;se(a,o).transform(E)}},setTransition:e=>{const{transformEl:s}=t.params.cardsEffect;(s?t.slides.find(s):t.slides).transition(e).find(".swiper-slide-shadow").transition(e),ae({swiper:t,duration:e,transformEl:s})},perspective:()=>!0,overwriteParams:()=>({watchSlidesProgress:!0,virtualTranslate:!t.params.cssMode})})}];return V.use(re),V}));
11343/*!
11344 * Typer.js v0.1.0
11345 * https://unpkg.com/[email protected]/typer.js
11346 */
11347var Typer = function(element) {
11348  this.element = element;
11349  var delim = element.dataset.delim || ",";
11350  var words = element.dataset.words || "override these,sample typing";
11351  this.words = words.split(delim).filter((v) => v); // non empty words
11352  this.delayVariance = parseInt(element.dataset.delayVariance) || 0;
11353  this.delay = parseInt(element.dataset.delay) || 200;
11354  this.loop = element.dataset.loop || "true";
11355  if (this.loop === "false" ) { this.loop = 1 }
11356  this.deleteDelay = element.dataset.deletedelay || element.dataset.deleteDelay || 800;
11357
11358  this.progress = { word: 0, char: 0, building: true, looped: 0 };
11359  this.typing = true;
11360
11361  var colors = element.dataset.colors || "black";
11362  this.colors = colors.split(",");
11363  this.element.style.color = this.colors[0];
11364  this.colorIndex = 0;
11365
11366  this.doTyping();
11367};
11368
11369Typer.prototype.start = function() {
11370  if (!this.typing) {
11371    this.typing = true;
11372    this.doTyping();
11373  }
11374};
11375Typer.prototype.stop = function() {
11376  this.typing = false;
11377};
11378Typer.prototype.doTyping = function() {
11379  var e = this.element;
11380  var p = this.progress;
11381  var w = p.word;
11382  var c = p.char;
11383  var currentDisplay = [...this.words[w]].slice(0, c).join("");
11384  var atWordEnd;
11385  var timeoutDelay = ((2 * Math.random() - 1) * this.delayVariance) + this.delay;
11386  if (this.cursor) {
11387    this.cursor.element.style.opacity = "1";
11388    this.cursor.on = true;
11389    clearInterval(this.cursor.interval);
11390    this.cursor.interval = setInterval(() => this.cursor.updateBlinkState(), 400);
11391  }
11392
11393  e.innerHTML = currentDisplay;
11394
11395  if (p.building) {
11396    atWordEnd = p.char === this.words[w].length;
11397    if (atWordEnd) {
11398      p.building = false;
11399    } else {
11400      p.char += 1;
11401    }
11402  } else {
11403    if (p.char === 0) {
11404      p.building = true;
11405      p.word = (p.word + 1) % this.words.length;
11406      this.colorIndex = (this.colorIndex + 1) % this.colors.length;
11407      this.element.style.color = this.colors[this.colorIndex];
11408    } else {
11409      p.char -= 1;
11410    }
11411  }
11412
11413  if (p.word === this.words.length - 1) {
11414    p.looped += 1;
11415  }
11416
11417  if (!p.building && this.loop <= p.looped){
11418    this.typing = false;
11419  }
11420
11421  setTimeout(() => {
11422    if (this.typing) { this.doTyping() };
11423  }, atWordEnd ? this.deleteDelay : timeoutDelay);
11424};
11425
11426var Cursor = function(element) {
11427  this.element = element;
11428  this.cursorDisplay = element.dataset.cursordisplay || element.dataset.cursorDisplay || "|";
11429  element.innerHTML = this.cursorDisplay;
11430  this.on = true;
11431  element.style.transition = "all 0.1s";
11432  this.interval = setInterval(() => this.updateBlinkState(), 400);
11433}
11434Cursor.prototype.updateBlinkState = function() {
11435  if (this.on) {
11436    this.element.style.opacity = "0";
11437    this.on = false;
11438  } else {
11439    this.element.style.opacity = "1";
11440    this.on = true;
11441  }
11442}
11443
11444function TyperSetup() {
11445  var typers = {};
11446  for (let e of document.getElementsByClassName("typer")) {
11447    typers[e.id] = new Typer(e);
11448  }
11449  for (let e of document.getElementsByClassName("typer-stop")) {
11450    let owner = typers[e.dataset.owner];
11451    e.onclick = () => owner.stop();
11452  }
11453  for (let e of document.getElementsByClassName("typer-start")) {
11454    let owner = typers[e.dataset.owner];
11455    e.onclick = () => owner.start();
11456  }
11457  for (let e of document.getElementsByClassName("cursor")) {
11458    let t = new Cursor(e);
11459    t.owner = typers[e.dataset.owner];
11460    //t.owner.cursor = t;
11461  }
11462}
11463
11464TyperSetup();

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.