PageSourceSearch

https://paam.org/wp-content/themes/paam-theme/js/scripts.js?ver=1790914469

js paam.org collected 2026-10-02 04:35:06 UTC 221,889 bytes, 4,460 lines download raw bytes

1/*!
2  * Bootstrap v4.3.1 (https://getbootstrap.com/)
3  * Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5  */
6(function (global, factory) {
7  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('jquery'), require('popper.js')) :
8  typeof define === 'function' && define.amd ? define(['exports', 'jquery', 'popper.js'], factory) :
9  (global = global || self, factory(global.bootstrap = {}, global.jQuery, global.Popper));
10}(this, function (exports, $, Popper) { 'use strict';
11
12  $ = $ && $.hasOwnProperty('default') ? $['default'] : $;
13  Popper = Popper && Popper.hasOwnProperty('default') ? Popper['default'] : Popper;
14
15  function _defineProperties(target, props) {
16    for (var i = 0; i < props.length; i++) {
17      var descriptor = props[i];
18      descriptor.enumerable = descriptor.enumerable || false;
19      descriptor.configurable = true;
20      if ("value" in descriptor) descriptor.writable = true;
21      Object.defineProperty(target, descriptor.key, descriptor);
22    }
23  }
24
25  function _createClass(Constructor, protoProps, staticProps) {
26    if (protoProps) _defineProperties(Constructor.prototype, protoProps);
27    if (staticProps) _defineProperties(Constructor, staticProps);
28    return Constructor;
29  }
30
31  function _defineProperty(obj, key, value) {
32    if (key in obj) {
33      Object.defineProperty(obj, key, {
34        value: value,
35        enumerable: true,
36        configurable: true,
37        writable: true
38      });
39    } else {
40      obj[key] = value;
41    }
42
43    return obj;
44  }
45
46  function _objectSpread(target) {
47    for (var i = 1; i < arguments.length; i++) {
48      var source = arguments[i] != null ? arguments[i] : {};
49      var ownKeys = Object.keys(source);
50
51      if (typeof Object.getOwnPropertySymbols === 'function') {
52        ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {
53          return Object.getOwnPropertyDescriptor(source, sym).enumerable;
54        }));
55      }
56
57      ownKeys.forEach(function (key) {
58        _defineProperty(target, key, source[key]);
59      });
60    }
61
62    return target;
63  }
64
65  function _inheritsLoose(subClass, superClass) {
66    subClass.prototype = Object.create(superClass.prototype);
67    subClass.prototype.constructor = subClass;
68    subClass.__proto__ = superClass;
69  }
70
71  /**
72   * --------------------------------------------------------------------------
73   * Bootstrap (v4.3.1): util.js
74   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
75   * --------------------------------------------------------------------------
76   */
77  /**
78   * ------------------------------------------------------------------------
79   * Private TransitionEnd Helpers
80   * ------------------------------------------------------------------------
81   */
82
83  var TRANSITION_END = 'transitionend';
84  var MAX_UID = 1000000;
85  var MILLISECONDS_MULTIPLIER = 1000; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
86
87  function toType(obj) {
88    return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
89  }
90
91  function getSpecialTransitionEndEvent() {
92    return {
93      bindType: TRANSITION_END,
94      delegateType: TRANSITION_END,
95      handle: function handle(event) {
96        if ($(event.target).is(this)) {
97          return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params
98        }
99
100        return undefined; // eslint-disable-line no-undefined
101      }
102    };
103  }
104
105  function transitionEndEmulator(duration) {
106    var _this = this;
107
108    var called = false;
109    $(this).one(Util.TRANSITION_END, function () {
110      called = true;
111    });
112    setTimeout(function () {
113      if (!called) {
114        Util.triggerTransitionEnd(_this);
115      }
116    }, duration);
117    return this;
118  }
119
120  function setTransitionEndSupport() {
121    $.fn.emulateTransitionEnd = transitionEndEmulator;
122    $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();
123  }
124  /**
125   * --------------------------------------------------------------------------
126   * Public Util Api
127   * --------------------------------------------------------------------------
128   */
129
130
131  var Util = {
132    TRANSITION_END: 'bsTransitionEnd',
133    getUID: function getUID(prefix) {
134      do {
135        // eslint-disable-next-line no-bitwise
136        prefix += ~~(Math.random() * MAX_UID); // "~~" acts like a faster Math.floor() here
137      } while (document.getElementById(prefix));
138
139      return prefix;
140    },
141    getSelectorFromElement: function getSelectorFromElement(element) {
142      var selector = element.getAttribute('data-target');
143
144      if (!selector || selector === '#') {
145        var hrefAttr = element.getAttribute('href');
146        selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : '';
147      }
148
vendor: 4,399 bytes, lines 149-293
149      try {
150        return document.querySelector(selector) ? selector : null;
151      } catch (err) {
152        return null;
153      }
154    },
155    getTransitionDurationFromElement: function getTransitionDurationFromElement(element) {
156      if (!element) {
157        return 0;
158      } // Get transition-duration of the element
159
160
161      var transitionDuration = $(element).css('transition-duration');
162      var transitionDelay = $(element).css('transition-delay');
163      var floatTransitionDuration = parseFloat(transitionDuration);
164      var floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
165
166      if (!floatTransitionDuration && !floatTransitionDelay) {
167        return 0;
168      } // If multiple durations are defined, take the first
169
170
171      transitionDuration = transitionDuration.split(',')[0];
172      transitionDelay = transitionDelay.split(',')[0];
173      return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
174    },
175    reflow: function reflow(element) {
176      return element.offsetHeight;
177    },
178    triggerTransitionEnd: function triggerTransitionEnd(element) {
179      $(element).trigger(TRANSITION_END);
180    },
181    // TODO: Remove in v5
182    supportsTransitionEnd: function supportsTransitionEnd() {
183      return Boolean(TRANSITION_END);
184    },
185    isElement: function isElement(obj) {
186      return (obj[0] || obj).nodeType;
187    },
188    typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) {
189      for (var property in configTypes) {
190        if (Object.prototype.hasOwnProperty.call(configTypes, property)) {
191          var expectedTypes = configTypes[property];
192          var value = config[property];
193          var valueType = value && Util.isElement(value) ? 'element' : toType(value);
194
195          if (!new RegExp(expectedTypes).test(valueType)) {
196            throw new Error(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));
197          }
198        }
199      }
200    },
201    findShadowRoot: function findShadowRoot(element) {
202      if (!document.documentElement.attachShadow) {
203        return null;
204      } // Can find the shadow root otherwise it'll return the document
205
206
207      if (typeof element.getRootNode === 'function') {
208        var root = element.getRootNode();
209        return root instanceof ShadowRoot ? root : null;
210      }
211
212      if (element instanceof ShadowRoot) {
213        return element;
214      } // when we don't find a shadow root
215
216
217      if (!element.parentNode) {
218        return null;
219      }
220
221      return Util.findShadowRoot(element.parentNode);
222    }
223  };
224  setTransitionEndSupport();
225
226  /**
227   * ------------------------------------------------------------------------
228   * Constants
229   * ------------------------------------------------------------------------
230   */
231
232  var NAME = 'alert';
233  var VERSION = '4.3.1';
234  var DATA_KEY = 'bs.alert';
235  var EVENT_KEY = "." + DATA_KEY;
236  var DATA_API_KEY = '.data-api';
237  var JQUERY_NO_CONFLICT = $.fn[NAME];
238  var Selector = {
239    DISMISS: '[data-dismiss="alert"]'
240  };
241  var Event = {
242    CLOSE: "close" + EVENT_KEY,
243    CLOSED: "closed" + EVENT_KEY,
244    CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
245  };
246  var ClassName = {
247    ALERT: 'alert',
248    FADE: 'fade',
249    SHOW: 'show'
250    /**
251     * ------------------------------------------------------------------------
252     * Class Definition
253     * ------------------------------------------------------------------------
254     */
255
256  };
257
258  var Alert =
259  /*#__PURE__*/
260  function () {
261    function Alert(element) {
262      this._element = element;
263    } // Getters
264
265
266    var _proto = Alert.prototype;
267
268    // Public
269    _proto.close = function close(element) {
270      var rootElement = this._element;
271
272      if (element) {
273        rootElement = this._getRootElement(element);
274      }
275
276      var customEvent = this._triggerCloseEvent(rootElement);
277
278      if (customEvent.isDefaultPrevented()) {
279        return;
280      }
281
282      this._removeElement(rootElement);
283    };
284
285    _proto.dispose = function dispose() {
286      $.removeData(this._element, DATA_KEY);
287      this._element = null;
288    } // Private
289    ;
290
291    _proto._getRootElement = function _getRootElement(element) {
292      var selector = Util.getSelectorFromElement(element);
293      var parent = false;
294
295      if (selector) {
296        parent = document.querySelector(selector);
297      }
298
299      if (!parent) {
300        parent = $(element).closest("." + ClassName.ALERT)[0];
301      }
302
303      return parent;
304    };
305
306    _proto._triggerCloseEvent = function _triggerCloseEvent(element) {
307      var closeEvent = $.Event(Event.CLOSE);
308      $(element).trigger(closeEvent);
309      return closeEvent;
310    };
311
312    _proto._removeElement = function _removeElement(element) {
313      var _this = this;
314
315      $(element).removeClass(ClassName.SHOW);
316
317      if (!$(element).hasClass(ClassName.FADE)) {
318        this._destroyElement(element);
319
320        return;
321      }
322
323      var transitionDuration = Util.getTransitionDurationFromElement(element);
324      $(element).one(Util.TRANSITION_END, function (event) {
325        return _this._destroyElement(element, event);
326      }).emulateTransitionEnd(transitionDuration);
327    };
328
329    _proto._destroyElement = function _destroyElement(element) {
330      $(element).detach().trigger(Event.CLOSED).remove();
331    } // Static
332    ;
333
334    Alert._jQueryInterface = function _jQueryInterface(config) {
335      return this.each(function () {
336        var $element = $(this);
337        var data = $element.data(DATA_KEY);
338
339        if (!data) {
340          data = new Alert(this);
341          $element.data(DATA_KEY, data);
342        }
343
344        if (config === 'close') {
345          data[config](this);
346        }
347      });
348    };
349
350    Alert._handleDismiss = function _handleDismiss(alertInstance) {
351      return function (event) {
352        if (event) {
353          event.preventDefault();
354        }
355
356        alertInstance.close(this);
357      };
358    };
359
360    _createClass(Alert, null, [{
361      key: "VERSION",
362      get: function get() {
363        return VERSION;
364      }
365    }]);
366
367    return Alert;
368  }();
369  /**
370   * ------------------------------------------------------------------------
371   * Data Api implementation
372   * ------------------------------------------------------------------------
373   */
374
375
376  $(document).on(Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()));
377  /**
378   * ------------------------------------------------------------------------
379   * jQuery
380   * ------------------------------------------------------------------------
381   */
382
383  $.fn[NAME] = Alert._jQueryInterface;
384  $.fn[NAME].Constructor = Alert;
385
386  $.fn[NAME].noConflict = function () {
387    $.fn[NAME] = JQUERY_NO_CONFLICT;
388    return Alert._jQueryInterface;
389  };
390
391  /**
392   * ------------------------------------------------------------------------
393   * Constants
394   * ------------------------------------------------------------------------
395   */
396
397  var NAME$1 = 'button';
398  var VERSION$1 = '4.3.1';
399  var DATA_KEY$1 = 'bs.button';
400  var EVENT_KEY$1 = "." + DATA_KEY$1;
401  var DATA_API_KEY$1 = '.data-api';
402  var JQUERY_NO_CONFLICT$1 = $.fn[NAME$1];
403  var ClassName$1 = {
404    ACTIVE: 'active',
405    BUTTON: 'btn',
406    FOCUS: 'focus'
407  };
408  var Selector$1 = {
409    DATA_TOGGLE_CARROT: '[data-toggle^="button"]',
410    DATA_TOGGLE: '[data-toggle="buttons"]',
411    INPUT: 'input:not([type="hidden"])',
412    ACTIVE: '.active',
413    BUTTON: '.btn'
414  };
415  var Event$1 = {
416    CLICK_DATA_API: "click" + EVENT_KEY$1 + DATA_API_KEY$1,
417    FOCUS_BLUR_DATA_API: "focus" + EVENT_KEY$1 + DATA_API_KEY$1 + " " + ("blur" + EVENT_KEY$1 + DATA_API_KEY$1)
418    /**
419     * ------------------------------------------------------------------------
420     * Class Definition
421     * ------------------------------------------------------------------------
422     */
423
424  };
425
426  var Button =
427  /*#__PURE__*/
428  function () {
429    function Button(element) {
430      this._element = element;
431    } // Getters
432
433
434    var _proto = Button.prototype;
435
436    // Public
437    _proto.toggle = function toggle() {
438      var triggerChangeEvent = true;
439      var addAriaPressed = true;
440      var rootElement = $(this._element).closest(Selector$1.DATA_TOGGLE)[0];
441
442      if (rootElement) {
443        var input = this._element.querySelector(Selector$1.INPUT);
444
445        if (input) {
446          if (input.type === 'radio') {
447            if (input.checked && this._element.classList.contains(ClassName$1.ACTIVE)) {
448              triggerChangeEvent = false;
vendor: 4,952 bytes, lines 449-618
449            } else {
450              var activeElement = rootElement.querySelector(Selector$1.ACTIVE);
451
452              if (activeElement) {
453                $(activeElement).removeClass(ClassName$1.ACTIVE);
454              }
455            }
456          }
457
458          if (triggerChangeEvent) {
459            if (input.hasAttribute('disabled') || rootElement.hasAttribute('disabled') || input.classList.contains('disabled') || rootElement.classList.contains('disabled')) {
460              return;
461            }
462
463            input.checked = !this._element.classList.contains(ClassName$1.ACTIVE);
464            $(input).trigger('change');
465          }
466
467          input.focus();
468          addAriaPressed = false;
469        }
470      }
471
472      if (addAriaPressed) {
473        this._element.setAttribute('aria-pressed', !this._element.classList.contains(ClassName$1.ACTIVE));
474      }
475
476      if (triggerChangeEvent) {
477        $(this._element).toggleClass(ClassName$1.ACTIVE);
478      }
479    };
480
481    _proto.dispose = function dispose() {
482      $.removeData(this._element, DATA_KEY$1);
483      this._element = null;
484    } // Static
485    ;
486
487    Button._jQueryInterface = function _jQueryInterface(config) {
488      return this.each(function () {
489        var data = $(this).data(DATA_KEY$1);
490
491        if (!data) {
492          data = new Button(this);
493          $(this).data(DATA_KEY$1, data);
494        }
495
496        if (config === 'toggle') {
497          data[config]();
498        }
499      });
500    };
501
502    _createClass(Button, null, [{
503      key: "VERSION",
504      get: function get() {
505        return VERSION$1;
506      }
507    }]);
508
509    return Button;
510  }();
511  /**
512   * ------------------------------------------------------------------------
513   * Data Api implementation
514   * ------------------------------------------------------------------------
515   */
516
517
518  $(document).on(Event$1.CLICK_DATA_API, Selector$1.DATA_TOGGLE_CARROT, function (event) {
519    event.preventDefault();
520    var button = event.target;
521
522    if (!$(button).hasClass(ClassName$1.BUTTON)) {
523      button = $(button).closest(Selector$1.BUTTON);
524    }
525
526    Button._jQueryInterface.call($(button), 'toggle');
527  }).on(Event$1.FOCUS_BLUR_DATA_API, Selector$1.DATA_TOGGLE_CARROT, function (event) {
528    var button = $(event.target).closest(Selector$1.BUTTON)[0];
529    $(button).toggleClass(ClassName$1.FOCUS, /^focus(in)?$/.test(event.type));
530  });
531  /**
532   * ------------------------------------------------------------------------
533   * jQuery
534   * ------------------------------------------------------------------------
535   */
536
537  $.fn[NAME$1] = Button._jQueryInterface;
538  $.fn[NAME$1].Constructor = Button;
539
540  $.fn[NAME$1].noConflict = function () {
541    $.fn[NAME$1] = JQUERY_NO_CONFLICT$1;
542    return Button._jQueryInterface;
543  };
544
545  /**
546   * ------------------------------------------------------------------------
547   * Constants
548   * ------------------------------------------------------------------------
549   */
550
551  var NAME$2 = 'carousel';
552  var VERSION$2 = '4.3.1';
553  var DATA_KEY$2 = 'bs.carousel';
554  var EVENT_KEY$2 = "." + DATA_KEY$2;
555  var DATA_API_KEY$2 = '.data-api';
556  var JQUERY_NO_CONFLICT$2 = $.fn[NAME$2];
557  var ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key
558
559  var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key
560
561  var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch
562
563  var SWIPE_THRESHOLD = 40;
564  var Default = {
565    interval: 5000,
566    keyboard: true,
567    slide: false,
568    pause: 'hover',
569    wrap: true,
570    touch: true
571  };
572  var DefaultType = {
573    interval: '(number|boolean)',
574    keyboard: 'boolean',
575    slide: '(boolean|string)',
576    pause: '(string|boolean)',
577    wrap: 'boolean',
578    touch: 'boolean'
579  };
580  var Direction = {
581    NEXT: 'next',
582    PREV: 'prev',
583    LEFT: 'left',
584    RIGHT: 'right'
585  };
586  var Event$2 = {
587    SLIDE: "slide" + EVENT_KEY$2,
588    SLID: "slid" + EVENT_KEY$2,
589    KEYDOWN: "keydown" + EVENT_KEY$2,
590    MOUSEENTER: "mouseenter" + EVENT_KEY$2,
591    MOUSELEAVE: "mouseleave" + EVENT_KEY$2,
592    TOUCHSTART: "touchstart" + EVENT_KEY$2,
593    TOUCHMOVE: "touchmove" + EVENT_KEY$2,
594    TOUCHEND: "touchend" + EVENT_KEY$2,
595    POINTERDOWN: "pointerdown" + EVENT_KEY$2,
596    POINTERUP: "pointerup" + EVENT_KEY$2,
597    DRAG_START: "dragstart" + EVENT_KEY$2,
598    LOAD_DATA_API: "load" + EVENT_KEY$2 + DATA_API_KEY$2,
599    CLICK_DATA_API: "click" + EVENT_KEY$2 + DATA_API_KEY$2
600  };
601  var ClassName$2 = {
602    CAROUSEL: 'carousel',
603    ACTIVE: 'active',
604    SLIDE: 'slide',
605    RIGHT: 'carousel-item-right',
606    LEFT: 'carousel-item-left',
607    NEXT: 'carousel-item-next',
608    PREV: 'carousel-item-prev',
609    ITEM: 'carousel-item',
610    POINTER_EVENT: 'pointer-event'
611  };
612  var Selector$2 = {
613    ACTIVE: '.active',
614    ACTIVE_ITEM: '.active.carousel-item',
615    ITEM: '.carousel-item',
616    ITEM_IMG: '.carousel-item img',
617    NEXT_PREV: '.carousel-item-next, .carousel-item-prev',
618    INDICATORS: '.carousel-indicators',
619    DATA_SLIDE: '[data-slide], [data-slide-to]',
620    DATA_RIDE: '[data-ride="carousel"]'
621  };
622  var PointerType = {
623    TOUCH: 'touch',
624    PEN: 'pen'
625    /**
626     * ------------------------------------------------------------------------
627     * Class Definition
628     * ------------------------------------------------------------------------
629     */
630
631  };
632
633  var Carousel =
634  /*#__PURE__*/
635  function () {
636    function Carousel(element, config) {
637      this._items = null;
638      this._interval = null;
639      this._activeElement = null;
640      this._isPaused = false;
641      this._isSliding = false;
642      this.touchTimeout = null;
643      this.touchStartX = 0;
644      this.touchDeltaX = 0;
645      this._config = this._getConfig(config);
646      this._element = element;
647      this._indicatorsElement = this._element.querySelector(Selector$2.INDICATORS);
648      this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;
649      this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent);
650
651      this._addEventListeners();
652    } // Getters
653
654
655    var _proto = Carousel.prototype;
656
657    // Public
658    _proto.next = function next() {
659      if (!this._isSliding) {
660        this._slide(Direction.NEXT);
661      }
662    };
663
664    _proto.nextWhenVisible = function nextWhenVisible() {
665      // Don't call next when the page isn't visible
666      // or the carousel or its parent isn't visible
667      if (!document.hidden && $(this._element).is(':visible') && $(this._element).css('visibility') !== 'hidden') {
668        this.next();
669      }
670    };
671
672    _proto.prev = function prev() {
673      if (!this._isSliding) {
674        this._slide(Direction.PREV);
675      }
676    };
677
678    _proto.pause = function pause(event) {
679      if (!event) {
680        this._isPaused = true;
681      }
682
683      if (this._element.querySelector(Selector$2.NEXT_PREV)) {
684        Util.triggerTransitionEnd(this._element);
685        this.cycle(true);
686      }
687
688      clearInterval(this._interval);
689      this._interval = null;
690    };
691
692    _proto.cycle = function cycle(event) {
693      if (!event) {
694        this._isPaused = false;
695      }
696
697      if (this._interval) {
698        clearInterval(this._interval);
699        this._interval = null;
700      }
701
702      if (this._config.interval && !this._isPaused) {
703        this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval);
704      }
705    };
706
707    _proto.to = function to(index) {
708      var _this = this;
709
710      this._activeElement = this._element.querySelector(Selector$2.ACTIVE_ITEM);
711
712      var activeIndex = this._getItemIndex(this._activeElement);
713
714      if (index > this._items.length - 1 || index < 0) {
715        return;
716      }
717
718      if (this._isSliding) {
719        $(this._element).one(Event$2.SLID, function () {
720          return _this.to(index);
721        });
722        return;
723      }
724
725      if (activeIndex === index) {
726        this.pause();
727        this.cycle();
728        return;
729      }
730
731      var direction = index > activeIndex ? Direction.NEXT : Direction.PREV;
732
733      this._slide(direction, this._items[index]);
734    };
735
736    _proto.dispose = function dispose() {
737      $(this._element).off(EVENT_KEY$2);
738      $.removeData(this._element, DATA_KEY$2);
739      this._items = null;
740      this._config = null;
741      this._element = null;
742      this._interval = null;
743      this._isPaused = null;
744      this._isSliding = null;
745      this._activeElement = null;
746      this._indicatorsElement = null;
747    } // Private
748    ;
749
750    _proto._getConfig = function _getConfig(config) {
751      config = _objectSpread({}, Default, config);
752      Util.typeCheckConfig(NAME$2, config, DefaultType);
753      return config;
754    };
755
756    _proto._handleSwipe = function _handleSwipe() {
757      var absDeltax = Math.abs(this.touchDeltaX);
758
759      if (absDeltax <= SWIPE_THRESHOLD) {
760        return;
761      }
762
763      var direction = absDeltax / this.touchDeltaX; // swipe left
764
765      if (direction > 0) {
766        this.prev();
767      } // swipe right
768
769
770      if (direction < 0) {
771        this.next();
772      }
773    };
774
775    _proto._addEventListeners = function _addEventListeners() {
776      var _this2 = this;
777
778      if (this._config.keyboard) {
779        $(this._element).on(Event$2.KEYDOWN, function (event) {
780          return _this2._keydown(event);
781        });
782      }
783
784      if (this._config.pause === 'hover') {
785        $(this._element).on(Event$2.MOUSEENTER, function (event) {
786          return _this2.pause(event);
787        }).on(Event$2.MOUSELEAVE, function (event) {
788          return _this2.cycle(event);
789        });
790      }
791
792      if (this._config.touch) {
793        this._addTouchEventListeners();
794      }
795    };
796
797    _proto._addTouchEventListeners = function _addTouchEventListeners() {
798      var _this3 = this;
799
800      if (!this._touchSupported) {
801        return;
802      }
803
804      var start = function start(event) {
805        if (_this3._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {
806          _this3.touchStartX = event.originalEvent.clientX;
807        } else if (!_this3._pointerEvent) {
808          _this3.touchStartX = event.originalEvent.touches[0].clientX;
809        }
810      };
811
812      var move = function move(event) {
813        // ensure swiping with one touch and not pinching
814        if (event.originalEvent.touches && event.originalEvent.touches.length > 1) {
815          _this3.touchDeltaX = 0;
816        } else {
817          _this3.touchDeltaX = event.originalEvent.touches[0].clientX - _this3.touchStartX;
818        }
819      };
820
821      var end = function end(event) {
822        if (_this3._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {
823          _this3.touchDeltaX = event.originalEvent.clientX - _this3.touchStartX;
824        }
825
826        _this3._handleSwipe();
827
828        if (_this3._config.pause === 'hover') {
829          // If it's a touch-enabled device, mouseenter/leave are fired as
830          // part of the mouse compatibility events on first tap - the carousel
831          // would stop cycling until user tapped out of it;
832          // here, we listen for touchend, explicitly pause the carousel
833          // (as if it's the second time we tap on it, mouseenter compat event
834          // is NOT fired) and after a timeout (to allow for mouse compatibility
835          // events to fire) we explicitly restart cycling
836          _this3.pause();
837
838          if (_this3.touchTimeout) {
839            clearTimeout(_this3.touchTimeout);
840          }
841
842          _this3.touchTimeout = setTimeout(function (event) {
843            return _this3.cycle(event);
844          }, TOUCHEVENT_COMPAT_WAIT + _this3._config.interval);
845        }
846      };
847
848      $(this._element.querySelectorAll(Selector$2.ITEM_IMG)).on(Event$2.DRAG_START, function (e) {
849        return e.preventDefault();
850      });
851
852      if (this._pointerEvent) {
853        $(this._element).on(Event$2.POINTERDOWN, function (event) {
854          return start(event);
855        });
856        $(this._element).on(Event$2.POINTERUP, function (event) {
857          return end(event);
858        });
859
860        this._element.classList.add(ClassName$2.POINTER_EVENT);
861      } else {
862        $(this._element).on(Event$2.TOUCHSTART, function (event) {
863          return start(event);
864        });
865        $(this._element).on(Event$2.TOUCHMOVE, function (event) {
866          return move(event);
867        });
868        $(this._element).on(Event$2.TOUCHEND, function (event) {
869          return end(event);
870        });
871      }
872    };
873
874    _proto._keydown = function _keydown(event) {
875      if (/input|textarea/i.test(event.target.tagName)) {
876        return;
877      }
878
879      switch (event.which) {
880        case ARROW_LEFT_KEYCODE:
881          event.preventDefault();
882          this.prev();
883          break;
884
885        case ARROW_RIGHT_KEYCODE:
886          event.preventDefault();
887          this.next();
888          break;
889
890        default:
891      }
892    };
893
894    _proto._getItemIndex = function _getItemIndex(element) {
895      this._items = element && element.parentNode ? [].slice.call(element.parentNode.querySelectorAll(Selector$2.ITEM)) : [];
896      return this._items.indexOf(element);
897    };
898
899    _proto._getItemByDirection = function _getItemByDirection(direction, activeElement) {
900      var isNextDirection = direction === Direction.NEXT;
901      var isPrevDirection = direction === Direction.PREV;
902
903      var activeIndex = this._getItemIndex(activeElement);
904
905      var lastItemIndex = this._items.length - 1;
906      var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex;
907
908      if (isGoingToWrap && !this._config.wrap) {
909        return activeElement;
910      }
911
912      var delta = direction === Direction.PREV ? -1 : 1;
913      var itemIndex = (activeIndex + delta) % this._items.length;
914      return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex];
915    };
916
917    _proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) {
918      var targetIndex = this._getItemIndex(relatedTarget);
919
920      var fromIndex = this._getItemIndex(this._element.querySelector(Selector$2.ACTIVE_ITEM));
921
922      var slideEvent = $.Event(Event$2.SLIDE, {
923        relatedTarget: relatedTarget,
924        direction: eventDirectionName,
925        from: fromIndex,
926        to: targetIndex
927      });
928      $(this._element).trigger(slideEvent);
929      return slideEvent;
930    };
931
932    _proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) {
933      if (this._indicatorsElement) {
934        var indicators = [].slice.call(this._indicatorsElement.querySelectorAll(Selector$2.ACTIVE));
935        $(indicators).removeClass(ClassName$2.ACTIVE);
936
937        var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)];
938
939        if (nextIndicator) {
940          $(nextIndicator).addClass(ClassName$2.ACTIVE);
941        }
942      }
943    };
944
945    _proto._slide = function _slide(direction, element) {
946      var _this4 = this;
947
948      var activeElement = this._element.querySelector(Selector$2.ACTIVE_ITEM);
949
950      var activeElementIndex = this._getItemIndex(activeElement);
951
952      var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement);
953
954      var nextElementIndex = this._getItemIndex(nextElement);
955
956      var isCycling = Boolean(this._interval);
957      var directionalClassName;
958      var orderClassName;
959      var eventDirectionName;
960
961      if (direction === Direction.NEXT) {
962        directionalClassName = ClassName$2.LEFT;
963        orderClassName = ClassName$2.NEXT;
964        eventDirectionName = Direction.LEFT;
965      } else {
966        directionalClassName = ClassName$2.RIGHT;
967        orderClassName = ClassName$2.PREV;
968        eventDirectionName = Direction.RIGHT;
969      }
970
971      if (nextElement && $(nextElement).hasClass(ClassName$2.ACTIVE)) {
972        this._isSliding = false;
973        return;
974      }
975
976      var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName);
977
978      if (slideEvent.isDefaultPrevented()) {
979        return;
980      }
981
982      if (!activeElement || !nextElement) {
983        // Some weirdness is happening, so we bail
984        return;
985      }
986
987      this._isSliding = true;
988
989      if (isCycling) {
990        this.pause();
991      }
992
993      this._setActiveIndicatorElement(nextElement);
994
995      var slidEvent = $.Event(Event$2.SLID, {
996        relatedTarget: nextElement,
997        direction: eventDirectionName,
998        from: activeElementIndex,
999        to: nextElementIndex
1000      });
1001
1002      if ($(this._element).hasClass(ClassName$2.SLIDE)) {
1003        $(nextElement).addClass(orderClassName);
1004        Util.reflow(nextElement);
1005        $(activeElement).addClass(directionalClassName);
1006        $(nextElement).addClass(directionalClassName);
1007        var nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10);
1008
1009        if (nextElementInterval) {
1010          this._config.defaultInterval = this._config.defaultInterval || this._config.interval;
1011          this._config.interval = nextElementInterval;
1012        } else {
1013          this._config.interval = this._config.defaultInterval || this._config.interval;
1014        }
1015
1016        var transitionDuration = Util.getTransitionDurationFromElement(activeElement);
1017        $(activeElement).one(Util.TRANSITION_END, function () {
1018          $(nextElement).removeClass(directionalClassName + " " + orderClassName).addClass(ClassName$2.ACTIVE);
1019          $(activeElement).removeClass(ClassName$2.ACTIVE + " " + orderClassName + " " + directionalClassName);
1020          _this4._isSliding = false;
1021          setTimeout(function () {
1022            return $(_this4._element).trigger(slidEvent);
1023          }, 0);
1024        }).emulateTransitionEnd(transitionDuration);
1025      } else {
1026        $(activeElement).removeClass(ClassName$2.ACTIVE);
1027        $(nextElement).addClass(ClassName$2.ACTIVE);
1028        this._isSliding = false;
1029        $(this._element).trigger(slidEvent);
1030      }
1031
1032      if (isCycling) {
1033        this.cycle();
1034      }
1035    } // Static
1036    ;
1037
1038    Carousel._jQueryInterface = function _jQueryInterface(config) {
1039      return this.each(function () {
1040        var data = $(this).data(DATA_KEY$2);
1041
1042        var _config = _objectSpread({}, Default, $(this).data());
1043
1044        if (typeof config === 'object') {
1045          _config = _objectSpread({}, _config, config);
1046        }
1047
1048        var action = typeof config === 'string' ? config : _config.slide;
1049
1050        if (!data) {
1051          data = new Carousel(this, _config);
1052          $(this).data(DATA_KEY$2, data);
1053        }
1054
1055        if (typeof config === 'number') {
1056          data.to(config);
1057        } else if (typeof action === 'string') {
1058          if (typeof data[action] === 'undefined') {
1059            throw new TypeError("No method named \"" + action + "\"");
1060          }
1061
1062          data[action]();
1063        } else if (_config.interval && _config.ride) {
1064          data.pause();
1065          data.cycle();
1066        }
1067      });
1068    };
1069
1070    Carousel._dataApiClickHandler = function _dataApiClickHandler(event) {
1071      var selector = Util.getSelectorFromElement(this);
1072
1073      if (!selector) {
1074        return;
1075      }
1076
1077      var target = $(selector)[0];
1078
1079      if (!target || !$(target).hasClass(ClassName$2.CAROUSEL)) {
1080        return;
1081      }
1082
1083      var config = _objectSpread({}, $(target).data(), $(this).data());
1084
1085      var slideIndex = this.getAttribute('data-slide-to');
1086
1087      if (slideIndex) {
1088        config.interval = false;
1089      }
1090
1091      Carousel._jQueryInterface.call($(target), config);
1092
1093      if (slideIndex) {
1094        $(target).data(DATA_KEY$2).to(slideIndex);
1095      }
1096
1097      event.preventDefault();
1098    };
1099
1100    _createClass(Carousel, null, [{
1101      key: "VERSION",
1102      get: function get() {
1103        return VERSION$2;
1104      }
1105    }, {
1106      key: "Default",
1107      get: function get() {
1108        return Default;
1109      }
1110    }]);
1111
1112    return Carousel;
1113  }();
1114  /**
1115   * ------------------------------------------------------------------------
1116   * Data Api implementation
1117   * ------------------------------------------------------------------------
1118   */
1119
1120
1121  $(document).on(Event$2.CLICK_DATA_API, Selector$2.DATA_SLIDE, Carousel._dataApiClickHandler);
1122  $(window).on(Event$2.LOAD_DATA_API, function () {
1123    var carousels = [].slice.call(document.querySelectorAll(Selector$2.DATA_RIDE));
1124
1125    for (var i = 0, len = carousels.length; i < len; i++) {
1126      var $carousel = $(carousels[i]);
1127
1128      Carousel._jQueryInterface.call($carousel, $carousel.data());
1129    }
1130  });
1131  /**
1132   * ------------------------------------------------------------------------
1133   * jQuery
1134   * ------------------------------------------------------------------------
1135   */
1136
1137  $.fn[NAME$2] = Carousel._jQueryInterface;
1138  $.fn[NAME$2].Constructor = Carousel;
1139
1140  $.fn[NAME$2].noConflict = function () {
1141    $.fn[NAME$2] = JQUERY_NO_CONFLICT$2;
1142    return Carousel._jQueryInterface;
1143  };
1144
1145  /**
1146   * ------------------------------------------------------------------------
1147   * Constants
1148   * ------------------------------------------------------------------------
1149   */
1150
1151  var NAME$3 = 'collapse';
1152  var VERSION$3 = '4.3.1';
1153  var DATA_KEY$3 = 'bs.collapse';
1154  var EVENT_KEY$3 = "." + DATA_KEY$3;
1155  var DATA_API_KEY$3 = '.data-api';
1156  var JQUERY_NO_CONFLICT$3 = $.fn[NAME$3];
1157  var Default$1 = {
1158    toggle: true,
1159    parent: ''
1160  };
1161  var DefaultType$1 = {
1162    toggle: 'boolean',
1163    parent: '(string|element)'
1164  };
1165  var Event$3 = {
1166    SHOW: "show" + EVENT_KEY$3,
1167    SHOWN: "shown" + EVENT_KEY$3,
1168    HIDE: "hide" + EVENT_KEY$3,
1169    HIDDEN: "hidden" + EVENT_KEY$3,
1170    CLICK_DATA_API: "click" + EVENT_KEY$3 + DATA_API_KEY$3
1171  };
1172  var ClassName$3 = {
1173    SHOW: 'show',
1174    COLLAPSE: 'collapse',
1175    COLLAPSING: 'collapsing',
1176    COLLAPSED: 'collapsed'
1177  };
1178  var Dimension = {
1179    WIDTH: 'width',
1180    HEIGHT: 'height'
1181  };
1182  var Selector$3 = {
1183    ACTIVES: '.show, .collapsing',
1184    DATA_TOGGLE: '[data-toggle="collapse"]'
1185    /**
1186     * ------------------------------------------------------------------------
1187     * Class Definition
1188     * ------------------------------------------------------------------------
1189     */
1190
1191  };
1192
1193  var Collapse =
1194  /*#__PURE__*/
1195  function () {
1196    function Collapse(element, config) {
1197      this._isTransitioning = false;
1198      this._element = element;
1199      this._config = this._getConfig(config);
1200      this._triggerArray = [].slice.call(document.querySelectorAll("[data-toggle=\"collapse\"][href=\"#" + element.id + "\"]," + ("[data-toggle=\"collapse\"][data-target=\"#" + element.id + "\"]")));
1201      var toggleList = [].slice.call(document.querySelectorAll(Selector$3.DATA_TOGGLE));
1202
1203      for (var i = 0, len = toggleList.length; i < len; i++) {
1204        var elem = toggleList[i];
1205        var selector = Util.getSelectorFromElement(elem);
1206        var filterElement = [].slice.call(document.querySelectorAll(selector)).filter(function (foundElem) {
1207          return foundElem === element;
1208        });
1209
1210        if (selector !== null && filterElement.length > 0) {
1211          this._selector = selector;
1212
1213          this._triggerArray.push(elem);
1214        }
1215      }
1216
1217      this._parent = this._config.parent ? this._getParent() : null;
1218
1219      if (!this._config.parent) {
1220        this._addAriaAndCollapsedClass(this._element, this._triggerArray);
1221      }
1222
1223      if (this._config.toggle) {
1224        this.toggle();
1225      }
1226    } // Getters
1227
1228
1229    var _proto = Collapse.prototype;
1230
1231    // Public
1232    _proto.toggle = function toggle() {
1233      if ($(this._element).hasClass(ClassName$3.SHOW)) {
1234        this.hide();
1235      } else {
1236        this.show();
1237      }
1238    };
1239
1240    _proto.show = function show() {
1241      var _this = this;
1242
1243      if (this._isTransitioning || $(this._element).hasClass(ClassName$3.SHOW)) {
1244        return;
1245      }
1246
1247      var actives;
1248      var activesData;
1249
1250      if (this._parent) {
1251        actives = [].slice.call(this._parent.querySelectorAll(Selector$3.ACTIVES)).filter(function (elem) {
1252          if (typeof _this._config.parent === 'string') {
1253            return elem.getAttribute('data-parent') === _this._config.parent;
1254          }
1255
1256          return elem.classList.contains(ClassName$3.COLLAPSE);
1257        });
1258
1259        if (actives.length === 0) {
1260          actives = null;
1261        }
1262      }
1263
1264      if (actives) {
1265        activesData = $(actives).not(this._selector).data(DATA_KEY$3);
1266
1267        if (activesData && activesData._isTransitioning) {
1268          return;
1269        }
1270      }
1271
1272      var startEvent = $.Event(Event$3.SHOW);
1273      $(this._element).trigger(startEvent);
1274
1275      if (startEvent.isDefaultPrevented()) {
1276        return;
1277      }
1278
1279      if (actives) {
1280        Collapse._jQueryInterface.call($(actives).not(this._selector), 'hide');
1281
1282        if (!activesData) {
1283          $(actives).data(DATA_KEY$3, null);
1284        }
1285      }
1286
1287      var dimension = this._getDimension();
1288
1289      $(this._element).removeClass(ClassName$3.COLLAPSE).addClass(ClassName$3.COLLAPSING);
1290      this._element.style[dimension] = 0;
1291
1292      if (this._triggerArray.length) {
1293        $(this._triggerArray).removeClass(ClassName$3.COLLAPSED).attr('aria-expanded', true);
1294      }
1295
1296      this.setTransitioning(true);
1297
1298      var complete = function complete() {
1299        $(_this._element).removeClass(ClassName$3.COLLAPSING).addClass(ClassName$3.COLLAPSE).addClass(ClassName$3.SHOW);
1300        _this._element.style[dimension] = '';
1301
1302        _this.setTransitioning(false);
1303
1304        $(_this._element).trigger(Event$3.SHOWN);
1305      };
1306
1307      var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
1308      var scrollSize = "scroll" + capitalizedDimension;
1309      var transitionDuration = Util.getTransitionDurationFromElement(this._element);
1310      $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
1311      this._element.style[dimension] = this._element[scrollSize] + "px";
1312    };
1313
1314    _proto.hide = function hide() {
1315      var _this2 = this;
1316
1317      if (this._isTransitioning || !$(this._element).hasClass(ClassName$3.SHOW)) {
1318        return;
1319      }
1320
1321      var startEvent = $.Event(Event$3.HIDE);
1322      $(this._element).trigger(startEvent);
1323
1324      if (startEvent.isDefaultPrevented()) {
1325        return;
1326      }
1327
1328      var dimension = this._getDimension();
1329
1330      this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + "px";
1331      Util.reflow(this._element);
1332      $(this._element).addClass(ClassName$3.COLLAPSING).removeClass(ClassName$3.COLLAPSE).removeClass(ClassName$3.SHOW);
1333      var triggerArrayLength = this._triggerArray.length;
1334
1335      if (triggerArrayLength > 0) {
1336        for (var i = 0; i < triggerArrayLength; i++) {
1337          var trigger = this._triggerArray[i];
1338          var selector = Util.getSelectorFromElement(trigger);
1339
1340          if (selector !== null) {
1341            var $elem = $([].slice.call(document.querySelectorAll(selector)));
1342
1343            if (!$elem.hasClass(ClassName$3.SHOW)) {
1344              $(trigger).addClass(ClassName$3.COLLAPSED).attr('aria-expanded', false);
1345            }
1346          }
1347        }
1348      }
1349
1350      this.setTransitioning(true);
1351
1352      var complete = function complete() {
1353        _this2.setTransitioning(false);
1354
1355        $(_this2._element).removeClass(ClassName$3.COLLAPSING).addClass(ClassName$3.COLLAPSE).trigger(Event$3.HIDDEN);
1356      };
1357
1358      this._element.style[dimension] = '';
1359      var transitionDuration = Util.getTransitionDurationFromElement(this._element);
1360      $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
1361    };
1362
1363    _proto.setTransitioning = function setTransitioning(isTransitioning) {
1364      this._isTransitioning = isTransitioning;
1365    };
1366
1367    _proto.dispose = function dispose() {
1368      $.removeData(this._element, DATA_KEY$3);
1369      this._config = null;
1370      this._parent = null;
1371      this._element = null;
1372      this._triggerArray = null;
1373      this._isTransitioning = null;
1374    } // Private
1375    ;
1376
1377    _proto._getConfig = function _getConfig(config) {
1378      config = _objectSpread({}, Default$1, config);
1379      config.toggle = Boolean(config.toggle); // Coerce string values
1380
1381      Util.typeCheckConfig(NAME$3, config, DefaultType$1);
1382      return config;
1383    };
1384
1385    _proto._getDimension = function _getDimension() {
1386      var hasWidth = $(this._element).hasClass(Dimension.WIDTH);
1387      return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT;
1388    };
1389
1390    _proto._getParent = function _getParent() {
1391      var _this3 = this;
1392
1393      var parent;
1394
1395      if (Util.isElement(this._config.parent)) {
1396        parent = this._config.parent; // It's a jQuery object
1397
1398        if (typeof this._config.parent.jquery !== 'undefined') {
1399          parent = this._config.parent[0];
1400        }
1401      } else {
1402        parent = document.querySelector(this._config.parent);
1403      }
1404
1405      var selector = "[data-toggle=\"collapse\"][data-parent=\"" + this._config.parent + "\"]";
1406      var children = [].slice.call(parent.querySelectorAll(selector));
1407      $(children).each(function (i, element) {
1408        _this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]);
1409      });
1410      return parent;
1411    };
1412
1413    _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {
1414      var isOpen = $(element).hasClass(ClassName$3.SHOW);
1415
1416      if (triggerArray.length) {
1417        $(triggerArray).toggleClass(ClassName$3.COLLAPSED, !isOpen).attr('aria-expanded', isOpen);
1418      }
1419    } // Static
1420    ;
1421
1422    Collapse._getTargetFromElement = function _getTargetFromElement(element) {
1423      var selector = Util.getSelectorFromElement(element);
1424      return selector ? document.querySelector(selector) : null;
1425    };
1426
1427    Collapse._jQueryInterface = function _jQueryInterface(config) {
1428      return this.each(function () {
1429        var $this = $(this);
1430        var data = $this.data(DATA_KEY$3);
1431
1432        var _config = _objectSpread({}, Default$1, $this.data(), typeof config === 'object' && config ? config : {});
1433
1434        if (!data && _config.toggle && /show|hide/.test(config)) {
1435          _config.toggle = false;
1436        }
1437
1438        if (!data) {
1439          data = new Collapse(this, _config);
1440          $this.data(DATA_KEY$3, data);
1441        }
1442
1443        if (typeof config === 'string') {
1444          if (typeof data[config] === 'undefined') {
1445            throw new TypeError("No method named \"" + config + "\"");
1446          }
1447
1448          data[config]();
1449        }
1450      });
1451    };
1452
1453    _createClass(Collapse, null, [{
1454      key: "VERSION",
1455      get: function get() {
1456        return VERSION$3;
1457      }
1458    }, {
1459      key: "Default",
1460      get: function get() {
1461        return Default$1;
1462      }
1463    }]);
1464
1465    return Collapse;
1466  }();
1467  /**
1468   * ------------------------------------------------------------------------
1469   * Data Api implementation
1470   * ------------------------------------------------------------------------
1471   */
1472
1473
1474  $(document).on(Event$3.CLICK_DATA_API, Selector$3.DATA_TOGGLE, function (event) {
1475    // preventDefault only for <a> elements (which change the URL) not inside the collapsible element
1476    if (event.currentTarget.tagName === 'A') {
1477      event.preventDefault();
1478    }
1479
1480    var $trigger = $(this);
1481    var selector = Util.getSelectorFromElement(this);
1482    var selectors = [].slice.call(document.querySelectorAll(selector));
1483    $(selectors).each(function () {
1484      var $target = $(this);
1485      var data = $target.data(DATA_KEY$3);
1486      var config = data ? 'toggle' : $trigger.data();
1487
1488      Collapse._jQueryInterface.call($target, config);
1489    });
1490  });
1491  /**
1492   * ------------------------------------------------------------------------
1493   * jQuery
1494   * ------------------------------------------------------------------------
1495   */
1496
1497  $.fn[NAME$3] = Collapse._jQueryInterface;
1498  $.fn[NAME$3].Constructor = Collapse;
1499
1500  $.fn[NAME$3].noConflict = function () {
1501    $.fn[NAME$3] = JQUERY_NO_CONFLICT$3;
1502    return Collapse._jQueryInterface;
1503  };
1504
1505  /**
1506   * ------------------------------------------------------------------------
1507   * Constants
1508   * ------------------------------------------------------------------------
1509   */
1510
1511  var NAME$4 = 'dropdown';
1512  var VERSION$4 = '4.3.1';
1513  var DATA_KEY$4 = 'bs.dropdown';
1514  var EVENT_KEY$4 = "." + DATA_KEY$4;
1515  var DATA_API_KEY$4 = '.data-api';
1516  var JQUERY_NO_CONFLICT$4 = $.fn[NAME$4];
1517  var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
1518
1519  var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key
1520
1521  var TAB_KEYCODE = 9; // KeyboardEvent.which value for tab key
1522
1523  var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key
1524
1525  var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key
1526
1527  var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)
1528
1529  var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + "|" + ARROW_DOWN_KEYCODE + "|" + ESCAPE_KEYCODE);
1530  var Event$4 = {
1531    HIDE: "hide" + EVENT_KEY$4,
1532    HIDDEN: "hidden" + EVENT_KEY$4,
1533    SHOW: "show" + EVENT_KEY$4,
1534    SHOWN: "shown" + EVENT_KEY$4,
1535    CLICK: "click" + EVENT_KEY$4,
1536    CLICK_DATA_API: "click" + EVENT_KEY$4 + DATA_API_KEY$4,
1537    KEYDOWN_DATA_API: "keydown" + EVENT_KEY$4 + DATA_API_KEY$4,
1538    KEYUP_DATA_API: "keyup" + EVENT_KEY$4 + DATA_API_KEY$4
1539  };
1540  var ClassName$4 = {
1541    DISABLED: 'disabled',
1542    SHOW: 'show',
1543    DROPUP: 'dropup',
1544    DROPRIGHT: 'dropright',
1545    DROPLEFT: 'dropleft',
1546    MENURIGHT: 'dropdown-menu-right',
1547    MENULEFT: 'dropdown-menu-left',
1548    POSITION_STATIC: 'position-static'
1549  };
1550  var Selector$4 = {
1551    DATA_TOGGLE: '[data-toggle="dropdown"]',
1552    FORM_CHILD: '.dropdown form',
1553    MENU: '.dropdown-menu',
1554    NAVBAR_NAV: '.navbar-nav',
1555    VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'
1556  };
1557  var AttachmentMap = {
1558    TOP: 'top-start',
1559    TOPEND: 'top-end',
1560    BOTTOM: 'bottom-start',
1561    BOTTOMEND: 'bottom-end',
1562    RIGHT: 'right-start',
1563    RIGHTEND: 'right-end',
1564    LEFT: 'left-start',
1565    LEFTEND: 'left-end'
1566  };
1567  var Default$2 = {
1568    offset: 0,
1569    flip: true,
1570    boundary: 'scrollParent',
1571    reference: 'toggle',
1572    display: 'dynamic'
1573  };
1574  var DefaultType$2 = {
1575    offset: '(number|string|function)',
1576    flip: 'boolean',
1577    boundary: '(string|element)',
1578    reference: '(string|element)',
1579    display: 'string'
1580    /**
1581     * ------------------------------------------------------------------------
1582     * Class Definition
1583     * ------------------------------------------------------------------------
1584     */
1585
1586  };
1587
1588  var Dropdown =
1589  /*#__PURE__*/
1590  function () {
1591    function Dropdown(element, config) {
1592      this._element = element;
1593      this._popper = null;
1594      this._config = this._getConfig(config);
1595      this._menu = this._getMenuElement();
1596      this._inNavbar = this._detectNavbar();
1597
1598      this._addEventListeners();
1599    } // Getters
1600
1601
1602    var _proto = Dropdown.prototype;
1603
1604    // Public
1605    _proto.toggle = function toggle() {
1606      if (this._element.disabled || $(this._element).hasClass(ClassName$4.DISABLED)) {
1607        return;
1608      }
1609
1610      var parent = Dropdown._getParentFromElement(this._element);
1611
1612      var isActive = $(this._menu).hasClass(ClassName$4.SHOW);
1613
1614      Dropdown._clearMenus();
1615
1616      if (isActive) {
1617        return;
1618      }
1619
1620      var relatedTarget = {
1621        relatedTarget: this._element
1622      };
1623      var showEvent = $.Event(Event$4.SHOW, relatedTarget);
1624      $(parent).trigger(showEvent);
1625
1626      if (showEvent.isDefaultPrevented()) {
1627        return;
1628      } // Disable totally Popper.js for Dropdown in Navbar
1629
1630
1631      if (!this._inNavbar) {
1632        /**
1633         * Check for Popper dependency
1634         * Popper - https://popper.js.org
1635         */
1636        if (typeof Popper === 'undefined') {
1637          throw new TypeError('Bootstrap\'s dropdowns require Popper.js (https://popper.js.org/)');
1638        }
1639
1640        var referenceElement = this._element;
1641
1642        if (this._config.reference === 'parent') {
1643          referenceElement = parent;
1644        } else if (Util.isElement(this._config.reference)) {
1645          referenceElement = this._config.reference; // Check if it's jQuery element
1646
1647          if (typeof this._config.reference.jquery !== 'undefined') {
1648            referenceElement = this._config.reference[0];
1649          }
1650        } // If boundary is not `scrollParent`, then set position to `static`
1651        // to allow the menu to "escape" the scroll parent's boundaries
1652        // https://github.com/twbs/bootstrap/issues/24251
1653
1654
1655        if (this._config.boundary !== 'scrollParent') {
1656          $(parent).addClass(ClassName$4.POSITION_STATIC);
1657        }
1658
1659        this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig());
1660      } // If this is a touch-enabled device we add extra
1661      // empty mouseover listeners to the body's immediate children;
1662      // only needed because of broken event delegation on iOS
1663      // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
1664
1665
1666      if ('ontouchstart' in document.documentElement && $(parent).closest(Selector$4.NAVBAR_NAV).length === 0) {
1667        $(document.body).children().on('mouseover', null, $.noop);
1668      }
1669
1670      this._element.focus();
1671
1672      this._element.setAttribute('aria-expanded', true);
1673
1674      $(this._menu).toggleClass(ClassName$4.SHOW);
1675      $(parent).toggleClass(ClassName$4.SHOW).trigger($.Event(Event$4.SHOWN, relatedTarget));
1676    };
1677
1678    _proto.show = function show() {
1679      if (this._element.disabled || $(this._element).hasClass(ClassName$4.DISABLED) || $(this._menu).hasClass(ClassName$4.SHOW)) {
1680        return;
1681      }
1682
1683      var relatedTarget = {
1684        relatedTarget: this._element
1685      };
1686      var showEvent = $.Event(Event$4.SHOW, relatedTarget);
1687
1688      var parent = Dropdown._getParentFromElement(this._element);
1689
1690      $(parent).trigger(showEvent);
1691
1692      if (showEvent.isDefaultPrevented()) {
1693        return;
1694      }
1695
1696      $(this._menu).toggleClass(ClassName$4.SHOW);
1697      $(parent).toggleClass(ClassName$4.SHOW).trigger($.Event(Event$4.SHOWN, relatedTarget));
1698    };
1699
1700    _proto.hide = function hide() {
1701      if (this._element.disabled || $(this._element).hasClass(ClassName$4.DISABLED) || !$(this._menu).hasClass(ClassName$4.SHOW)) {
1702        return;
1703      }
1704
1705      var relatedTarget = {
1706        relatedTarget: this._element
1707      };
1708      var hideEvent = $.Event(Event$4.HIDE, relatedTarget);
1709
1710      var parent = Dropdown._getParentFromElement(this._element);
1711
1712      $(parent).trigger(hideEvent);
1713
1714      if (hideEvent.isDefaultPrevented()) {
1715        return;
1716      }
1717
1718      $(this._menu).toggleClass(ClassName$4.SHOW);
1719      $(parent).toggleClass(ClassName$4.SHOW).trigger($.Event(Event$4.HIDDEN, relatedTarget));
1720    };
1721
1722    _proto.dispose = function dispose() {
1723      $.removeData(this._element, DATA_KEY$4);
1724      $(this._element).off(EVENT_KEY$4);
1725      this._element = null;
1726      this._menu = null;
1727
1728      if (this._popper !== null) {
1729        this._popper.destroy();
1730
1731        this._popper = null;
1732      }
1733    };
1734
1735    _proto.update = function update() {
1736      this._inNavbar = this._detectNavbar();
1737
1738      if (this._popper !== null) {
1739        this._popper.scheduleUpdate();
1740      }
1741    } // Private
1742    ;
1743
1744    _proto._addEventListeners = function _addEventListeners() {
1745      var _this = this;
1746
1747      $(this._element).on(Event$4.CLICK, function (event) {
1748        event.preventDefault();
1749        event.stopPropagation();
1750
1751        _this.toggle();
1752      });
1753    };
1754
1755    _proto._getConfig = function _getConfig(config) {
1756      config = _objectSpread({}, this.constructor.Default, $(this._element).data(), config);
1757      Util.typeCheckConfig(NAME$4, config, this.constructor.DefaultType);
1758      return config;
1759    };
1760
1761    _proto._getMenuElement = function _getMenuElement() {
1762      if (!this._menu) {
1763        var parent = Dropdown._getParentFromElement(this._element);
1764
1765        if (parent) {
1766          this._menu = parent.querySelector(Selector$4.MENU);
1767        }
1768      }
1769
1770      return this._menu;
1771    };
1772
1773    _proto._getPlacement = function _getPlacement() {
1774      var $parentDropdown = $(this._element.parentNode);
1775      var placement = AttachmentMap.BOTTOM; // Handle dropup
1776
1777      if ($parentDropdown.hasClass(ClassName$4.DROPUP)) {
1778        placement = AttachmentMap.TOP;
1779
1780        if ($(this._menu).hasClass(ClassName$4.MENURIGHT)) {
1781          placement = AttachmentMap.TOPEND;
1782        }
1783      } else if ($parentDropdown.hasClass(ClassName$4.DROPRIGHT)) {
1784        placement = AttachmentMap.RIGHT;
1785      } else if ($parentDropdown.hasClass(ClassName$4.DROPLEFT)) {
1786        placement = AttachmentMap.LEFT;
1787      } else if ($(this._menu).hasClass(ClassName$4.MENURIGHT)) {
1788        placement = AttachmentMap.BOTTOMEND;
1789      }
1790
1791      return placement;
1792    };
1793
1794    _proto._detectNavbar = function _detectNavbar() {
1795      return $(this._element).closest('.navbar').length > 0;
1796    };
1797
1798    _proto._getOffset = function _getOffset() {
1799      var _this2 = this;
1800
1801      var offset = {};
1802
1803      if (typeof this._config.offset === 'function') {
1804        offset.fn = function (data) {
1805          data.offsets = _objectSpread({}, data.offsets, _this2._config.offset(data.offsets, _this2._element) || {});
1806          return data;
1807        };
1808      } else {
1809        offset.offset = this._config.offset;
1810      }
1811
1812      return offset;
1813    };
1814
1815    _proto._getPopperConfig = function _getPopperConfig() {
1816      var popperConfig = {
1817        placement: this._getPlacement(),
1818        modifiers: {
1819          offset: this._getOffset(),
1820          flip: {
1821            enabled: this._config.flip
1822          },
1823          preventOverflow: {
1824            boundariesElement: this._config.boundary
1825          }
1826        } // Disable Popper.js if we have a static display
1827
1828      };
1829
1830      if (this._config.display === 'static') {
1831        popperConfig.modifiers.applyStyle = {
1832          enabled: false
1833        };
1834      }
1835
1836      return popperConfig;
1837    } // Static
1838    ;
1839
1840    Dropdown._jQueryInterface = function _jQueryInterface(config) {
1841      return this.each(function () {
1842        var data = $(this).data(DATA_KEY$4);
1843
1844        var _config = typeof config === 'object' ? config : null;
1845
1846        if (!data) {
1847          data = new Dropdown(this, _config);
1848          $(this).data(DATA_KEY$4, data);
1849        }
1850
1851        if (typeof config === 'string') {
1852          if (typeof data[config] === 'undefined') {
1853            throw new TypeError("No method named \"" + config + "\"");
1854          }
1855
1856          data[config]();
1857        }
1858      });
1859    };
1860
1861    Dropdown._clearMenus = function _clearMenus(event) {
1862      if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH || event.type === 'keyup' && event.which !== TAB_KEYCODE)) {
1863        return;
1864      }
1865
1866      var toggles = [].slice.call(document.querySelectorAll(Selector$4.DATA_TOGGLE));
1867
1868      for (var i = 0, len = toggles.length; i < len; i++) {
1869        var parent = Dropdown._getParentFromElement(toggles[i]);
1870
1871        var context = $(toggles[i]).data(DATA_KEY$4);
1872        var relatedTarget = {
1873          relatedTarget: toggles[i]
1874        };
1875
1876        if (event && event.type === 'click') {
1877          relatedTarget.clickEvent = event;
1878        }
1879
1880        if (!context) {
1881          continue;
1882        }
1883
1884        var dropdownMenu = context._menu;
1885
1886        if (!$(parent).hasClass(ClassName$4.SHOW)) {
1887          continue;
1888        }
1889
1890        if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && $.contains(parent, event.target)) {
1891          continue;
1892        }
1893
1894        var hideEvent = $.Event(Event$4.HIDE, relatedTarget);
1895        $(parent).trigger(hideEvent);
1896
1897        if (hideEvent.isDefaultPrevented()) {
1898          continue;
1899        } // If this is a touch-enabled device we remove the extra
1900        // empty mouseover listeners we added for iOS support
1901
1902
1903        if ('ontouchstart' in document.documentElement) {
1904          $(document.body).children().off('mouseover', null, $.noop);
1905        }
1906
1907        toggles[i].setAttribute('aria-expanded', 'false');
1908        $(dropdownMenu).removeClass(ClassName$4.SHOW);
1909        $(parent).removeClass(ClassName$4.SHOW).trigger($.Event(Event$4.HIDDEN, relatedTarget));
1910      }
1911    };
1912
1913    Dropdown._getParentFromElement = function _getParentFromElement(element) {
1914      var parent;
1915      var selector = Util.getSelectorFromElement(element);
1916
1917      if (selector) {
1918        parent = document.querySelector(selector);
1919      }
1920
1921      return parent || element.parentNode;
1922    } // eslint-disable-next-line complexity
1923    ;
1924
1925    Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) {
1926      // If not input/textarea:
1927      //  - And not a key in REGEXP_KEYDOWN => not a dropdown command
1928      // If input/textarea:
1929      //  - If space key => not a dropdown command
1930      //  - If key is other than escape
1931      //    - If key is not up or down => not a dropdown command
1932      //    - If trigger inside the menu =>
1932 not a dropdown command
1933      if (/input|textarea/i.test(event.target.tagName) ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE && (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE || $(event.target).closest(Selector$4.MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {
1934        return;
1935      }
1936
1937      event.preventDefault();
1938      event.stopPropagation();
1939
1940      if (this.disabled || $(this).hasClass(ClassName$4.DISABLED)) {
1941        return;
1942      }
1943
1944      var parent = Dropdown._getParentFromElement(this);
1945
1946      var isActive = $(parent).hasClass(ClassName$4.SHOW);
1947
1948      if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {
1949        if (event.which === ESCAPE_KEYCODE) {
1950          var toggle = parent.querySelector(Selector$4.DATA_TOGGLE);
1951          $(toggle).trigger('focus');
1952        }
1953
1954        $(this).trigger('click');
1955        return;
1956      }
1957
1958      var items = [].slice.call(parent.querySelectorAll(Selector$4.VISIBLE_ITEMS));
1959
1960      if (items.length === 0) {
1961        return;
1962      }
1963
1964      var index = items.indexOf(event.target);
1965
1966      if (event.which === ARROW_UP_KEYCODE && index > 0) {
1967        // Up
1968        index--;
1969      }
1970
1971      if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {
1972        // Down
1973        index++;
1974      }
1975
1976      if (index < 0) {
1977        index = 0;
1978      }
1979
1980      items[index].focus();
1981    };
1982
1983    _createClass(Dropdown, null, [{
1984      key: "VERSION",
1985      get: function get() {
1986        return VERSION$4;
1987      }
1988    }, {
1989      key: "Default",
1990      get: function get() {
1991        return Default$2;
1992      }
1993    }, {
1994      key: "DefaultType",
1995      get: function get() {
1996        return DefaultType$2;
1997      }
1998    }]);
1999
2000    return Dropdown;
2001  }();
2002  /**
2003   * ------------------------------------------------------------------------
2004   * Data Api implementation
2005   * ------------------------------------------------------------------------
2006   */
2007
2008
2009  $(document).on(Event$4.KEYDOWN_DATA_API, Selector$4.DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(Event$4.KEYDOWN_DATA_API, Selector$4.MENU, Dropdown._dataApiKeydownHandler).on(Event$4.CLICK_DATA_API + " " + Event$4.KEYUP_DATA_API, Dropdown._clearMenus).on(Event$4.CLICK_DATA_API, Selector$4.DATA_TOGGLE, function (event) {
2010    event.preventDefault();
2011    event.stopPropagation();
2012
2013    Dropdown._jQueryInterface.call($(this), 'toggle');
2014  }).on(Event$4.CLICK_DATA_API, Selector$4.FORM_CHILD, function (e) {
2015    e.stopPropagation();
2016  });
2017  /**
2018   * ------------------------------------------------------------------------
2019   * jQuery
2020   * ------------------------------------------------------------------------
2021   */
2022
2023  $.fn[NAME$4] = Dropdown._jQueryInterface;
2024  $.fn[NAME$4].Constructor = Dropdown;
2025
2026  $.fn[NAME$4].noConflict = function () {
2027    $.fn[NAME$4] = JQUERY_NO_CONFLICT$4;
2028    return Dropdown._jQueryInterface;
2029  };
2030
2031  /**
2032   * ------------------------------------------------------------------------
2033   * Constants
2034   * ------------------------------------------------------------------------
2035   */
2036
2037  var NAME$5 = 'modal';
2038  var VERSION$5 = '4.3.1';
2039  var DATA_KEY$5 = 'bs.modal';
2040  var EVENT_KEY$5 = "." + DATA_KEY$5;
2041  var DATA_API_KEY$5 = '.data-api';
2042  var JQUERY_NO_CONFLICT$5 = $.fn[NAME$5];
2043  var ESCAPE_KEYCODE$1 = 27; // KeyboardEvent.which value for Escape (Esc) key
2044
2045  var Default$3 = {
2046    backdrop: true,
2047    keyboard: true,
2048    focus: true,
2049    show: true
2050  };
2051  var DefaultType$3 = {
2052    backdrop: '(boolean|string)',
2053    keyboard: 'boolean',
2054    focus: 'boolean',
2055    show: 'boolean'
2056  };
2057  var Event$5 = {
2058    HIDE: "hide" + EVENT_KEY$5,
2059    HIDDEN: "hidden" + EVENT_KEY$5,
2060    SHOW: "show" + EVENT_KEY$5,
2061    SHOWN: "shown" + EVENT_KEY$5,
2062    FOCUSIN: "focusin" + EVENT_KEY$5,
2063    RESIZE: "resize" + EVENT_KEY$5,
2064    CLICK_DISMISS: "click.dismiss" + EVENT_KEY$5,
2065    KEYDOWN_DISMISS: "keydown.dismiss" + EVENT_KEY$5,
2066    MOUSEUP_DISMISS: "mouseup.dismiss" + EVENT_KEY$5,
2067    MOUSEDOWN_DISMISS: "mousedown.dismiss" + EVENT_KEY$5,
2068    CLICK_DATA_API: "click" + EVENT_KEY$5 + DATA_API_KEY$5
2069  };
2070  var ClassName$5 = {
2071    SCROLLABLE: 'modal-dialog-scrollable',
2072    SCROLLBAR_MEASURER: 'modal-scrollbar-measure',
2073    BACKDROP: 'modal-backdrop',
2074    OPEN: 'modal-open',
2075    FADE: 'fade',
2076    SHOW: 'show'
2077  };
2078  var Selector$5 = {
2079    DIALOG: '.modal-dialog',
2080    MODAL_BODY: '.modal-body',
2081    DATA_TOGGLE: '[data-toggle="modal"]',
2082    DATA_DISMISS: '[data-dismiss="modal"]',
2083    FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',
2084    STICKY_CONTENT: '.sticky-top'
2085    /**
2086     * ------------------------------------------------------------------------
2087     * Class Definition
2088     * ------------------------------------------------------------------------
2089     */
2090
2091  };
2092
2093  var Modal =
2094  /*#__PURE__*/
2095  function () {
2096    function Modal(element, config) {
2097      this._config = this._getConfig(config);
2098      this._element = element;
2099      this._dialog = element.querySelector(Selector$5.DIALOG);
2100      this._backdrop = null;
2101      this._isShown = false;
2102      this._isBodyOverflowing = false;
2103      this._ignoreBackdropClick = false;
2104      this._isTransitioning = false;
2105      this._scrollbarWidth = 0;
2106    } // Getters
2107
2108
2109    var _proto = Modal.prototype;
2110
2111    // Public
2112    _proto.toggle = function toggle(relatedTarget) {
2113      return this._isShown ? this.hide() : this.show(relatedTarget);
2114    };
2115
2116    _proto.show = function show(relatedTarget) {
2117      var _this = this;
2118
2119      if (this._isShown || this._isTransitioning) {
2120        return;
2121      }
2122
2123      if ($(this._element).hasClass(ClassName$5.FADE)) {
2124        this._isTransitioning = true;
2125      }
2126
2127      var showEvent = $.Event(Event$5.SHOW, {
2128        relatedTarget: relatedTarget
2129      });
2130      $(this._element).trigger(showEvent);
2131
2132      if (this._isShown || showEvent.isDefaultPrevented()) {
2133        return;
2134      }
2135
2136      this._isShown = true;
2137
2138      this._checkScrollbar();
2139
2140      this._setScrollbar();
2141
2142      this._adjustDialog();
2143
2144      this._setEscapeEvent();
2145
2146      this._setResizeEvent();
2147
2148      $(this._element).on(Event$5.CLICK_DISMISS, Selector$5.DATA_DISMISS, function (event) {
2149        return _this.hide(event);
2150      });
2151      $(this._dialog).on(Event$5.MOUSEDOWN_DISMISS, function () {
2152        $(_this._element).one(Event$5.MOUSEUP_DISMISS, function (event) {
2153          if ($(event.target).is(_this._element)) {
2154            _this._ignoreBackdropClick = true;
2155          }
2156        });
2157      });
2158
2159      this._showBackdrop(function () {
2160        return _this._showElement(relatedTarget);
2161      });
2162    };
2163
2164    _proto.hide = function hide(event) {
2165      var _this2 = this;
2166
2167      if (event) {
2168        event.preventDefault();
2169      }
2170
2171      if (!this._isShown || this._isTransitioning) {
2172        return;
2173      }
2174
2175      var hideEvent = $.Event(Event$5.HIDE);
2176      $(this._element).trigger(hideEvent);
2177
2178      if (!this._isShown || hideEvent.isDefaultPrevented()) {
2179        return;
2180      }
2181
2182      this._isShown = false;
2183      var transition = $(this._element).hasClass(ClassName$5.FADE);
2184
2185      if (transition) {
2186        this._isTransitioning = true;
2187      }
2188
2189      this._setEscapeEvent();
2190
2191      this._setResizeEvent();
2192
2193      $(document).off(Event$5.FOCUSIN);
2194      $(this._element).removeClass(ClassName$5.SHOW);
2195      $(this._element).off(Event$5.CLICK_DISMISS);
2196      $(this._dialog).off(Event$5.MOUSEDOWN_DISMISS);
2197
2198      if (transition) {
2199        var transitionDuration = Util.getTransitionDurationFromElement(this._element);
2200        $(this._element).one(Util.TRANSITION_END, function (event) {
2201          return _this2._hideModal(event);
2202        }).emulateTransitionEnd(transitionDuration);
2203      } else {
2204        this._hideModal();
2205      }
2206    };
2207
2208    _proto.dispose = function dispose() {
2209      [window, this._element, this._dialog].forEach(function (htmlElement) {
2210        return $(htmlElement).off(EVENT_KEY$5);
2211      });
2212      /**
2213       * `document` has 2 events `Event.FOCUSIN` and `Event.CLICK_DATA_API`
2214       * Do not move `document` in `htmlElements` array
2215       * It will remove `Event.CLICK_DATA_API` event that should remain
2216       */
2217
2218      $(document).off(Event$5.FOCUSIN);
2219      $.removeData(this._element, DATA_KEY$5);
2220      this._config = null;
2221      this._element = null;
2222      this._dialog = null;
2223      this._backdrop = null;
2224      this._isShown = null;
2225      this._isBodyOverflowing = null;
2226      this._ignoreBackdropClick = null;
2227      this._isTransitioning = null;
2228      this._scrollbarWidth = null;
2229    };
2230
2231    _proto.handleUpdate = function handleUpdate() {
2232      this._adjustDialog();
2233    } // Private
2234    ;
2235
2236    _proto._getConfig = function _getConfig(config) {
2237      config = _objectSpread({}, Default$3, config);
2238      Util.typeCheckConfig(NAME$5, config, DefaultType$3);
2239      return config;
2240    };
2241
2242    _proto._showElement = function _showElement(relatedTarget) {
2243      var _this3 = this;
2244
2245      var transition = $(this._element).hasClass(ClassName$5.FADE);
2246
2247      if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {
2248        // Don't move modal's DOM position
2249        document.body.appendChild(this._element);
2250      }
2251
2252      this._element.style.display = 'block';
2253
2254      this._element.removeAttribute('aria-hidden');
2255
2256      this._element.setAttribute('aria-modal', true);
2257
2258      if ($(this._dialog).hasClass(ClassName$5.SCROLLABLE)) {
2259        this._dialog.querySelector(Selector$5.MODAL_BODY).scrollTop = 0;
2260      } else {
2261        this._element.scrollTop = 0;
2262      }
2263
2264      if (transition) {
2265        Util.reflow(this._element);
2266      }
2267
2268      $(this._element).addClass(ClassName$5.SHOW);
2269
2270      if (this._config.focus) {
2271        this._enforceFocus();
2272      }
2273
2274      var shownEvent = $.Event(Event$5.SHOWN, {
2275        relatedTarget: relatedTarget
2276      });
2277
2278      var transitionComplete = function transitionComplete() {
2279        if (_this3._config.focus) {
2280          _this3._element.focus();
2281        }
2282
2283        _this3._isTransitioning = false;
2284        $(_this3._element).trigger(shownEvent);
2285      };
2286
2287      if (transition) {
2288        var transitionDuration = Util.getTransitionDurationFromElement(this._dialog);
2289        $(this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(transitionDuration);
2290      } else {
2291        transitionComplete();
2292      }
2293    };
2294
2295    _proto._enforceFocus = function _enforceFocus() {
2296      var _this4 = this;
2297
2298      $(document).off(Event$5.FOCUSIN) // Guard against infinite focus loop
2299      .on(Event$5.FOCUSIN, function (event) {
2300        if (document !== event.target && _this4._element !== event.target && $(_this4._element).has(event.target).length === 0) {
2301          _this4._element.focus();
2302        }
2303      });
2304    };
2305
2306    _proto._setEscapeEvent = function _setEscapeEvent() {
2307      var _this5 = this;
2308
2309      if (this._isShown && this._config.keyboard) {
2310        $(this._element).on(Event$5.KEYDOWN_DISMISS, function (event) {
2311          if (event.which === ESCAPE_KEYCODE$1) {
2312            event.preventDefault();
2313
2314            _this5.hide();
2315          }
2316        });
2317      } else if (!this._isShown) {
2318        $(this._element).off(Event$5.KEYDOWN_DISMISS);
2319      }
2320    };
2321
2322    _proto._setResizeEvent = function _setResizeEvent() {
2323      var _this6 = this;
2324
2325      if (this._isShown) {
2326        $(window).on(Event$5.RESIZE, function (event) {
2327          return _this6.handleUpdate(event);
2328        });
2329      } else {
2330        $(window).off(Event$5.RESIZE);
2331      }
2332    };
2333
2334    _proto._hideModal = function _hideModal() {
2335      var _this7 = this;
2336
2337      this._element.style.display = 'none';
2338
2339      this._element.setAttribute('aria-hidden', true);
2340
2341      this._element.removeAttribute('aria-modal');
2342
2343      this._isTransitioning = false;
2344
2345      this._showBackdrop(function () {
2346        $(document.body).removeClass(ClassName$5.OPEN);
2347
2348        _this7._resetAdjustments();
2349
2350        _this7._resetScrollbar();
2351
2352        $(_this7._element).trigger(Event$5.HIDDEN);
2353      });
2354    };
2355
2356    _proto._removeBackdrop = function _removeBackdrop() {
2357      if (this._backdrop) {
2358        $(this._backdrop).remove();
2359        this._backdrop = null;
2360      }
2361    };
2362
2363    _proto._showBackdrop = function _showBackdrop(callback) {
2364      var _this8 = this;
2365
2366      var animate = $(this._element).hasClass(ClassName$5.FADE) ? ClassName$5.FADE : '';
2367
2368      if (this._isShown && this._config.backdrop) {
2369        this._backdrop = document.createElement('div');
2370        this._backdrop.className = ClassName$5.BACKDROP;
2371
2372        if (animate) {
2373          this._backdrop.classList.add(animate);
2374        }
2375
2376        $(this._backdrop).appendTo(document.body);
2377        $(this._element).on(Event$5.CLICK_DISMISS, function (event) {
2378          if (_this8._ignoreBackdropClick) {
2379            _this8._ignoreBackdropClick = false;
2380            return;
2381          }
2382
2383          if (event.target !== event.currentTarget) {
2384            return;
2385          }
2386
2387          if (_this8._config.backdrop === 'static') {
2388            _this8._element.focus();
2389          } else {
2390            _this8.hide();
2391          }
2392        });
2393
2394        if (animate) {
2395          Util.reflow(this._backdrop);
2396        }
2397
2398        $(this._backdrop).addClass(ClassName$5.SHOW);
2399
2400        if (!callback) {
2401          return;
2402        }
2403
2404        if (!animate) {
2405          callback();
2406          return;
2407        }
2408
2409        var backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);
2410        $(this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(backdropTransitionDuration);
2411      } else if (!this._isShown && this._backdrop) {
2412        $(this._backdrop).removeClass(ClassName$5.SHOW);
2413
2414        var callbackRemove = function callbackRemove() {
2415          _this8._removeBackdrop();
2416
2417          if (callback) {
2418            callback();
2419          }
2420        };
2421
2422        if ($(this._element).hasClass(ClassName$5.FADE)) {
2423          var _backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);
2424
2425          $(this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(_backdropTransitionDuration);
2426        } else {
2427          callbackRemove();
2428        }
2429      } else if (callback) {
2430        callback();
2431      }
2432    } // ----------------------------------------------------------------------
2433    // the following methods are used to handle overflowing modals
2434    // todo (fat): these should probably be refactored out of modal.js
2435    // ----------------------------------------------------------------------
2436    ;
2437
2438    _proto._adjustDialog = function _adjustDialog() {
2439      var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
2440
2441      if (!this._isBodyOverflowing && isModalOverflowing) {
2442        this._element.style.paddingLeft = this._scrollbarWidth + "px";
2443      }
2444
2445      if (this._isBodyOverflowing && !isModalOverflowing) {
2446        this._element.style.paddingRight = this._scrollbarWidth + "px";
2447      }
2448    };
2449
2450    _proto._resetAdjustments = function _resetAdjustments() {
2451      this._element.style.paddingLeft = '';
2452      this._element.style.paddingRight = '';
2453    };
2454
2455    _proto._checkScrollbar = function _checkScrollbar() {
2456      var rect = document.body.getBoundingClientRect();
2457      this._isBodyOverflowing = rect.left + rect.right < window.innerWidth;
2458      this._scrollbarWidth = this._getScrollbarWidth();
2459    };
2460
2461    _proto._setScrollbar = function _setScrollbar() {
2462      var _this9 = this;
2463
2464      if (this._isBodyOverflowing) {
2465        // Note: DOMNode.style.paddingRight returns the actual value or '' if not set
2466        //   while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set
2467        var fixedContent = [].slice.call(document.querySelectorAll(Selector$5.FIXED_CONTENT));
2468        var stickyContent = [].slice.call(document.querySelectorAll(Selector$5.STICKY_CONTENT)); // Adjust fixed content padding
2469
2470        $(fixedContent).each(function (index, element) {
2471          var actualPadding = element.style.paddingRight;
2472          var calculatedPadding = $(element).css('padding-right');
2473          $(element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this9._scrollbarWidth + "px");
2474        }); // Adjust sticky content margin
2475
2476        $(stickyContent).each(function (index, element) {
2477          var actualMargin = element.style.marginRight;
2478          var calculatedMargin = $(element).css('margin-right');
2479          $(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this9._scrollbarWidth + "px");
2480        }); // Adjust body padding
2481
2482        var actualPadding = document.body.style.paddingRight;
2483        var calculatedPadding = $(document.body).css('padding-right');
2484        $(document.body).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + "px");
2485      }
2486
2487      $(document.body).addClass(ClassName$5.OPEN);
2488    };
2489
2490    _proto._resetScrollbar = function _resetScrollbar() {
2491      // Restore fixed content padding
2492      var fixedContent = [].slice.call(document.querySelectorAll(Selector$5.FIXED_CONTENT));
2493      $(fixedContent).each(function (index, element) {
2494        var padding = $(element).data('padding-right');
2495        $(element).removeData('padding-right');
2496        element.style.paddingRight = padding ? padding : '';
2497      }); // Restore sticky content
2498
2499      var elements = [].slice.call(document.querySelectorAll("" + Selector$5.STICKY_CONTENT));
2500      $(elements).each(function (index, element) {
2501        var margin = $(element).data('margin-right');
2502
2503        if (typeof margin !== 'undefined') {
2504          $(element).css('margin-right', margin).removeData('margin-right');
2505        }
2506      }); // Restore body padding
2507
2508      var padding = $(document.body).data('padding-right');
2509      $(document.body).removeData('padding-right');
2510      document.body.style.paddingRight = padding ? padding : '';
2511    };
2512
2513    _proto._getScrollbarWidth = function _getScrollbarWidth() {
2514      // thx d.walsh
2515      var scrollDiv = document.createElement('div');
2516      scrollDiv.className = ClassName$5.SCROLLBAR_MEASURER;
2517      document.body.appendChild(scrollDiv);
2518      var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;
2519      document.body.removeChild(scrollDiv);
2520      return scrollbarWidth;
2521    } // Static
2522    ;
2523
2524    Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) {
2525      return this.each(function () {
2526        var data = $(this).data(DATA_KEY$5);
2527
2528        var _config = _objectSpread({}, Default$3, $(this).data(), typeof config === 'object' && config ? config : {});
2529
2530        if (!data) {
2531          data = new Modal(this, _config);
2532          $(this).data(DATA_KEY$5, data);
2533        }
2534
2535        if (typeof config === 'string') {
2536          if (typeof data[config] === 'undefined') {
2537            throw new TypeError("No method named \"" + config + "\"");
2538          }
2539
2540          data[config](relatedTarget);
2541        } else if (_config.show) {
2542          data.show(relatedTarget);
2543        }
2544      });
2545    };
2546
2547    _createClass(Modal, null, [{
2548      key: "VERSION",
2549      get: function get() {
2550        return VERSION$5;
2551      }
2552    }, {
2553      key: "Default",
2554      get: function get() {
2555        return Default$3;
2556      }
2557    }]);
2558
2559    return Modal;
2560  }();
2561  /**
2562   * ------------------------------------------------------------------------
2563   * Data Api implementation
2564   * ------------------------------------------------------------------------
2565   */
2566
2567
2568  $(document).on(Event$5.CLICK_DATA_API, Selector$5.DATA_TOGGLE, function (event) {
2569    var _this10 = this;
2570
2571    var target;
2572    var selector = Util.getSelectorFromElement(this);
2573
2574    if (selector) {
2575      target = document.querySelector(selector);
2576    }
2577
2578    var config = $(target).data(DATA_KEY$5) ? 'toggle' : _objectSpread({}, $(target).data(), $(this).data());
2579
2580    if (this.tagName === 'A' || this.tagName === 'AREA') {
2581      event.preventDefault();
2582    }
2583
2584    var $target = $(target).one(Event$5.SHOW, function (showEvent) {
2585      if (showEvent.isDefaultPrevented()) {
2586        // Only register focus restorer if modal will actually get shown
2587        return;
2588      }
2589
2590      $target.one(Event$5.HIDDEN, function () {
2591        if ($(_this10).is(':visible')) {
2592          _this10.focus();
2593        }
2594      });
2595    });
2596
2597    Modal._jQueryInterface.call($(target), config, this);
2598  });
2599  /**
2600   * ------------------------------------------------------------------------
2601   * jQuery
2602   * ------------------------------------------------------------------------
2603   */
2604
2605  $.fn[NAME$5] = Modal._jQueryInterface;
2606  $.fn[NAME$5].Constructor = Modal;
2607
2608  $.fn[NAME$5].noConflict = function () {
2609    $.fn[NAME$5] = JQUERY_NO_CONFLICT$5;
2610    return Modal._jQueryInterface;
2611  };
2612
2613  /**
2614   * --------------------------------------------------------------------------
2615   * Bootstrap (v4.3.1): tools/sanitizer.js
2616   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
2617   * --------------------------------------------------------------------------
2618   */
2619  var uriAttrs = ['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href'];
2620  var ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i;
2621  var DefaultWhitelist = {
2622    // Global attributes allowed on any supplied element below.
2623    '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],
2624    a: ['target', 'href', 'title', 'rel'],
2625    area: [],
2626    b: [],
2627    br: [],
2628    col: [],
2629    code: [],
2630    div: [],
2631    em: [],
2632    hr: [],
2633    h1: [],
2634    h2: [],
2635    h3: [],
2636    h4: [],
2637    h5: [],
2638    h6: [],
2639    i: [],
2640    img: ['src', 'alt', 'title', 'width', 'height'],
2641    li: [],
2642    ol: [],
2643    p: [],
2644    pre: [],
2645    s: [],
2646    small: [],
2647    span: [],
2648    sub: [],
2649    sup: [],
2650    strong: [],
2651    u: [],
2652    ul: []
2653    /**
2654     * A pattern that recognizes a commonly useful subset of URLs that are safe.
2655     *
2656     * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts
2657     */
2658
2659  };
2660  var SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi;
2661  /**
2662   * A pattern that matches safe data URLs. Only matches image, video and audio types.
2663   *
2664   * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts
2665   */
2666
2667  var DATA_URL_PATTERN = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i;
2668
2669  function allowedAttribute(attr, allowedAttributeList) {
2670    var attrName = attr.nodeName.toLowerCase();
2671
2672    if (allowedAttributeList.indexOf(attrName) !== -1) {
2673      if (uriAttrs.indexOf(attrName) !== -1) {
2674        return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN));
2675      }
2676
2677      return true;
2678    }
2679
2680    var regExp = allowedAttributeList.filter(function (attrRegex) {
vendor: 4,926 bytes, lines 2681-2862
2681      return attrRegex instanceof RegExp;
2682    }); // Check if a regular expression validates the attribute.
2683
2684    for (var i = 0, l = regExp.length; i < l; i++) {
2685      if (attrName.match(regExp[i])) {
2686        return true;
2687      }
2688    }
2689
2690    return false;
2691  }
2692
2693  function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {
2694    if (unsafeHtml.length === 0) {
2695      return unsafeHtml;
2696    }
2697
2698    if (sanitizeFn && typeof sanitizeFn === 'function') {
2699      return sanitizeFn(unsafeHtml);
2700    }
2701
2702    var domParser = new window.DOMParser();
2703    var createdDocument = domParser.parseFromString(unsafeHtml, 'text/html');
2704    var whitelistKeys = Object.keys(whiteList);
2705    var elements = [].slice.call(createdDocument.body.querySelectorAll('*'));
2706
2707    var _loop = function _loop(i, len) {
2708      var el = elements[i];
2709      var elName = el.nodeName.toLowerCase();
2710
2711      if (whitelistKeys.indexOf(el.nodeName.toLowerCase()) === -1) {
2712        el.parentNode.removeChild(el);
2713        return "continue";
2714      }
2715
2716      var attributeList = [].slice.call(el.attributes);
2717      var whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || []);
2718      attributeList.forEach(function (attr) {
2719        if (!allowedAttribute(attr, whitelistedAttributes)) {
2720          el.removeAttribute(attr.nodeName);
2721        }
2722      });
2723    };
2724
2725    for (var i = 0, len = elements.length; i < len; i++) {
2726      var _ret = _loop(i, len);
2727
2728      if (_ret === "continue") continue;
2729    }
2730
2731    return createdDocument.body.innerHTML;
2732  }
2733
2734  /**
2735   * ------------------------------------------------------------------------
2736   * Constants
2737   * ------------------------------------------------------------------------
2738   */
2739
2740  var NAME$6 = 'tooltip';
2741  var VERSION$6 = '4.3.1';
2742  var DATA_KEY$6 = 'bs.tooltip';
2743  var EVENT_KEY$6 = "." + DATA_KEY$6;
2744  var JQUERY_NO_CONFLICT$6 = $.fn[NAME$6];
2745  var CLASS_PREFIX = 'bs-tooltip';
2746  var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
2747  var DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn'];
2748  var DefaultType$4 = {
2749    animation: 'boolean',
2750    template: 'string',
2751    title: '(string|element|function)',
2752    trigger: 'string',
2753    delay: '(number|object)',
2754    html: 'boolean',
2755    selector: '(string|boolean)',
2756    placement: '(string|function)',
2757    offset: '(number|string|function)',
2758    container: '(string|element|boolean)',
2759    fallbackPlacement: '(string|array)',
2760    boundary: '(string|element)',
2761    sanitize: 'boolean',
2762    sanitizeFn: '(null|function)',
2763    whiteList: 'object'
2764  };
2765  var AttachmentMap$1 = {
2766    AUTO: 'auto',
2767    TOP: 'top',
2768    RIGHT: 'right',
2769    BOTTOM: 'bottom',
2770    LEFT: 'left'
2771  };
2772  var Default$4 = {
2773    animation: true,
2774    template: '<div class="tooltip" role="tooltip">' + '<div class="arrow"></div>' + '<div class="tooltip-inner"></div></div>',
2775    trigger: 'hover focus',
2776    title: '',
2777    delay: 0,
2778    html: false,
2779    selector: false,
2780    placement: 'top',
2781    offset: 0,
2782    container: false,
2783    fallbackPlacement: 'flip',
2784    boundary: 'scrollParent',
2785    sanitize: true,
2786    sanitizeFn: null,
2787    whiteList: DefaultWhitelist
2788  };
2789  var HoverState = {
2790    SHOW: 'show',
2791    OUT: 'out'
2792  };
2793  var Event$6 = {
2794    HIDE: "hide" + EVENT_KEY$6,
2795    HIDDEN: "hidden" + EVENT_KEY$6,
2796    SHOW: "show" + EVENT_KEY$6,
2797    SHOWN: "shown" + EVENT_KEY$6,
2798    INSERTED: "inserted" + EVENT_KEY$6,
2799    CLICK: "click" + EVENT_KEY$6,
2800    FOCUSIN: "focusin" + EVENT_KEY$6,
2801    FOCUSOUT: "focusout" + EVENT_KEY$6,
2802    MOUSEENTER: "mouseenter" + EVENT_KEY$6,
2803    MOUSELEAVE: "mouseleave" + EVENT_KEY$6
2804  };
2805  var ClassName$6 = {
2806    FADE: 'fade',
2807    SHOW: 'show'
2808  };
2809  var Selector$6 = {
2810    TOOLTIP: '.tooltip',
2811    TOOLTIP_INNER: '.tooltip-inner',
2812    ARROW: '.arrow'
2813  };
2814  var Trigger = {
2815    HOVER: 'hover',
2816    FOCUS: 'focus',
2817    CLICK: 'click',
2818    MANUAL: 'manual'
2819    /**
2820     * ------------------------------------------------------------------------
2821     * Class Definition
2822     * ------------------------------------------------------------------------
2823     */
2824
2825  };
2826
2827  var Tooltip =
2828  /*#__PURE__*/
2829  function () {
2830    function Tooltip(element, config) {
2831      /**
2832       * Check for Popper dependency
2833       * Popper - https://popper.js.org
2834       */
2835      if (typeof Popper === 'undefined') {
2836        throw new TypeError('Bootstrap\'s tooltips require Popper.js (https://popper.js.org/)');
2837      } // private
2838
2839
2840      this._isEnabled = true;
2841      this._timeout = 0;
2842      this._hoverState = '';
2843      this._activeTrigger = {};
2844      this._popper = null; // Protected
2845
2846      this.element = element;
2847      this.config = this._getConfig(config);
2848      this.tip = null;
2849
2850      this._setListeners();
2851    } // Getters
2852
2853
2854    var _proto = Tooltip.prototype;
2855
2856    // Public
2857    _proto.enable = function enable() {
2858      this._isEnabled = true;
2859    };
2860
2861    _proto.disable = function disable() {
2862      this._isEnabled = false;
2863    };
2864
2865    _proto.toggleEnabled = function toggleEnabled() {
2866      this._isEnabled = !this._isEnabled;
2867    };
2868
2869    _proto.toggle = function toggle(event) {
2870      if (!this._isEnabled) {
2871        return;
2872      }
2873
2874      if (event) {
2875        var dataKey = this.constructor.DATA_KEY;
2876        var context = $(event.currentTarget).data(dataKey);
2877
2878        if (!context) {
2879          context = new this.constructor(event.currentTarget, this._getDelegateConfig());
2880          $(event.currentTarget).data(dataKey, context);
2881        }
2882
2883        context._activeTrigger.click = !context._activeTrigger.click;
2884
2885        if (context._isWithActiveTrigger()) {
2886          context._enter(null, context);
2887        } else {
2888          context._leave(null, context);
2889        }
2890      } else {
2891        if ($(this.getTipElement()).hasClass(ClassName$6.SHOW)) {
2892          this._leave(null, this);
2893
2894          return;
2895        }
2896
2897        this._enter(null, this);
2898      }
2899    };
2900
2901    _proto.dispose = function dispose() {
2902      clearTimeout(this._timeout);
2903      $.removeData(this.element, this.constructor.DATA_KEY);
2904      $(this.element).off(this.constructor.EVENT_KEY);
2905      $(this.element).closest('.modal').off('hide.bs.modal');
2906
2907      if (this.tip) {
2908        $(this.tip).remove();
2909      }
2910
2911      this._isEnabled = null;
2912      this._timeout = null;
2913      this._hoverState = null;
2914      this._activeTrigger = null;
2915
2916      if (this._popper !== null) {
2917        this._popper.destroy();
2918      }
2919
2920      this._popper = null;
2921      this.element = null;
2922      this.config = null;
2923      this.tip = null;
2924    };
2925
2926    _proto.show = function show() {
2927      var _this = this;
2928
2929      if ($(this.element).css('display') === 'none') {
2930        throw new Error('Please use show on visible elements');
2931      }
2932
2933      var showEvent = $.Event(this.constructor.Event.SHOW);
2934
2935      if (this.isWithContent() && this._isEnabled) {
2936        $(this.element).trigger(showEvent);
2937        var shadowRoot = Util.findShadowRoot(this.element);
2938        var isInTheDom = $.contains(shadowRoot !== null ? shadowRoot : this.element.ownerDocument.documentElement, this.element);
2939
2940        if (showEvent.isDefaultPrevented() || !isInTheDom) {
2941          return;
2942        }
2943
2944        var tip = this.getTipElement();
2945        var tipId = Util.getUID(this.constructor.NAME);
2946        tip.setAttribute('id', tipId);
2947        this.element.setAttribute('aria-describedby', tipId);
2948        this.setContent();
2949
2950        if (this.config.animation) {
2951          $(tip).addClass(ClassName$6.FADE);
2952        }
2953
2954        var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement;
2955
2956        var attachment = this._getAttachment(placement);
2957
2958        this.addAttachmentClass(attachment);
2959
2960        var container = this._getContainer();
2961
2962        $(tip).data(this.constructor.DATA_KEY, this);
2963
2964        if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {
2965          $(tip).appendTo(container);
2966        }
2967
2968        $(this.element).trigger(this.constructor.Event.INSERTED);
2969        this._popper = new Popper(this.element, tip, {
2970          placement: attachment,
2971          modifiers: {
2972            offset: this._getOffset(),
2973            flip: {
2974              behavior: this.config.fallbackPlacement
2975            },
2976            arrow: {
2977              element: Selector$6.ARROW
2978            },
2979            preventOverflow: {
2980              boundariesElement: this.config.boundary
2981            }
2982          },
2983          onCreate: function onCreate(data) {
2984            if (data.originalPlacement !== data.placement) {
2985              _this._handlePopperPlacementChange(data);
2986            }
2987          },
2988          onUpdate: function onUpdate(data) {
2989            return _this._handlePopperPlacementChange(data);
2990          }
2991        });
2992        $(tip).addClass(ClassName$6.SHOW); // If this is a touch-enabled device we add extra
2993        // empty mouseover listeners to the body's immediate children;
2994        // only needed because of broken event delegation on iOS
2995        // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
2996
2997        if ('ontouchstart' in document.documentElement) {
2998          $(document.body).children().on('mouseover', null, $.noop);
2999        }
3000
3001        var complete = function complete() {
3002          if (_this.config.animation) {
3003            _this._fixTransition();
3004          }
3005
3006          var prevHoverState = _this._hoverState;
3007          _this._hoverState = null;
3008          $(_this.element).trigger(_this.constructor.Event.SHOWN);
3009
3010          if (prevHoverState === HoverState.OUT) {
3011            _this._leave(null, _this);
3012          }
3013        };
3014
3015        if ($(this.tip).hasClass(ClassName$6.FADE)) {
3016          var transitionDuration = Util.getTransitionDurationFromElement(this.tip);
3017          $(this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
3018        } else {
3019          complete();
3020        }
3021      }
3022    };
3023
3024    _proto.hide = function hide(callback) {
3025      var _this2 = this;
3026
3027      var tip = this.getTipElement();
3028      var hideEvent = $.Event(this.constructor.Event.HIDE);
3029
3030      var complete = function complete() {
3031        if (_this2._hoverState !== HoverState.SHOW && tip.parentNode) {
3032          tip.parentNode.removeChild(tip);
3033        }
3034
3035        _this2._cleanTipClass();
3036
3037        _this2.element.removeAttribute('aria-describedby');
3038
3039        $(_this2.element).trigger(_this2.constructor.Event.HIDDEN);
3040
3041        if (_this2._popper !== null) {
3042          _this2._popper.destroy();
3043        }
3044
3045        if (callback) {
3046          callback();
3047        }
3048      };
3049
3050      $(this.element).trigger(hideEvent);
3051
3052      if (hideEvent.isDefaultPrevented()) {
3053        return;
3054      }
3055
3056      $(tip).removeClass(ClassName$6.SHOW); // If this is a touch-enabled device we remove the extra
3057      // empty mouseover listeners we added for iOS support
3058
3059      if ('ontouchstart' in document.documentElement) {
3060        $(document.body).children().off('mouseover', null, $.noop);
3061      }
3062
3063      this._activeTrigger[Trigger.CLICK] = false;
3064      this._activeTrigger[Trigger.FOCUS] = false;
3065      this._activeTrigger[Trigger.HOVER] = false;
3066
3067      if ($(this.tip).hasClass(ClassName$6.FADE)) {
3068        var transitionDuration = Util.getTransitionDurationFromElement(tip);
3069        $(tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
3070      } else {
3071        complete();
3072      }
3073
3074      this._hoverState = '';
3075    };
3076
3077    _proto.update = function update() {
3078      if (this._popper !== null) {
3079        this._popper.scheduleUpdate();
3080      }
3081    } // Protected
3082    ;
3083
3084    _proto.isWithContent = function isWithContent() {
3085      return Boolean(this.getTitle());
3086    };
3087
3088    _proto.addAttachmentClass = function addAttachmentClass(attachment) {
3089      $(this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment);
3090    };
3091
3092    _proto.getTipElement = function getTipElement() {
3093      this.tip = this.tip || $(this.config.template)[0];
3094      return this.tip;
3095    };
3096
3097    _proto.setContent = function setContent() {
3098      var tip = this.getTipElement();
3099      this.setElementContent($(tip.querySelectorAll(Selector$6.TOOLTIP_INNER)), this.getTitle());
3100      $(tip).removeClass(ClassName$6.FADE + " " + ClassName$6.SHOW);
3101    };
3102
3103    _proto.setElementContent = function setElementContent($element, content) {
3104      if (typeof content === 'object' && (content.nodeType || content.jquery)) {
3105        // Content is a DOM node or a jQuery
3106        if (this.config.html) {
3107          if (!$(content).parent().is($element)) {
3108            $element.empty().append(content);
3109          }
3110        } else {
3111          $element.text($(content).text());
3112        }
3113
3114        return;
3115      }
3116
3117      if (this.config.html) {
3118        if (this.config.sanitize) {
3119          content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn);
3120        }
3121
3122        $element.html(content);
3123      } else {
3124        $element.text(content);
3125      }
3126    };
3127
3128    _proto.getTitle = function getTitle() {
3129      var title = this.element.getAttribute('data-original-title');
3130
3131      if (!title) {
3132        title = typeof this.config.title === 'function' ? this.config.title.call(this.element) : this.config.title;
3133      }
3134
3135      return title;
3136    } // Private
3137    ;
3138
3139    _proto._getOffset = function _getOffset() {
3140      var _this3 = this;
3141
3142      var offset = {};
3143
3144      if (typeof this.config.offset === 'function') {
3145        offset.fn = function (data) {
3146          data.offsets = _objectSpread({}, data.offsets, _this3.config.offset(data.offsets, _this3.element) || {});
3147          return data;
3148        };
3149      } else {
3150        offset.offset = this.config.offset;
3151      }
3152
3153      return offset;
3154    };
3155
3156    _proto._getContainer = function _getContainer() {
3157      if (this.config.container === false) {
3158        return document.body;
3159      }
3160
3161      if (Util.isElement(this.config.container)) {
3162        return $(this.config.container);
3163      }
3164
3165      return $(document).find(this.config.container);
3166    };
3167
3168    _proto._getAttachment = function _getAttachment(placement) {
3169      return AttachmentMap$1[placement.toUpperCase()];
3170    };
3171
3172    _proto._setListeners = function _setListeners() {
3173      var _this4 = this;
3174
3175      var triggers = this.config.trigger.split(' ');
3176      triggers.forEach(function (trigger) {
3177        if (trigger === 'click') {
3178          $(_this4.element).on(_this4.constructor.Event.CLICK, _this4.config.selector, function (event) {
3179            return _this4.toggle(event);
3180          });
3181        } else if (trigger !== Trigger.MANUAL) {
3182          var eventIn = trigger === Trigger.HOVER ? _this4.constructor.Event.MOUSEENTER : _this4.constructor.Event.FOCUSIN;
3183          var eventOut = trigger === Trigger.HOVER ? _this4.constructor.Event.MOUSELEAVE : _this4.constructor.Event.FOCUSOUT;
3184          $(_this4.element).on(eventIn, _this4.config.selector, function (event) {
3185            return _this4._enter(event);
3186          }).on(eventOut, _this4.config.selector, function (event) {
3187            return _this4._leave(event);
3188          });
3189        }
3190      });
3191      $(this.element).closest('.modal').on('hide.bs.modal', function () {
3192        if (_this4.element) {
3193          _this4.hide();
3194        }
3195      });
3196
3197      if (this.config.selector) {
3198        this.config = _objectSpread({}, this.config, {
3199          trigger: 'manual',
3200          selector: ''
3201        });
3202      } else {
3203        this._fixTitle();
3204      }
3205    };
3206
3207    _proto._fixTitle = function _fixTitle() {
3208      var titleType = typeof this.element.getAttribute('data-original-title');
3209
3210      if (this.element.getAttribute('title') || titleType !== 'string') {
3211        this.element.setAttribute('data-original-title', this.element.getAttribute('title') || '');
3212        this.element.setAttribute('title', '');
3213      }
3214    };
3215
3216    _proto._enter = function _enter(event, context) {
3217      var dataKey = this.constructor.DATA_KEY;
3218      context = context || $(event.currentTarget).data(dataKey);
3219
3220      if (!context) {
3221        context = new this.constructor(event.currentTarget, this._getDelegateConfig());
3222        $(event.currentTarget).data(dataKey, context);
3223      }
3224
3225      if (event) {
3226        context._activeTrigger[event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER] = true;
3227      }
3228
3229      if ($(context.getTipElement()).hasClass(ClassName$6.SHOW) || context._hoverState === HoverState.SHOW) {
3230        context._hoverState = HoverState.SHOW;
3231        return;
3232      }
3233
3234      clearTimeout(context._timeout);
3235      context._hoverState = HoverState.SHOW;
3236
3237      if (!context.config.delay || !context.config.delay.show) {
3238        context.show();
3239        return;
3240      }
3241
3242      context._timeout = setTimeout(function () {
3243        if (context._hoverState === HoverState.SHOW) {
3244          context.show();
3245        }
3246      }, context.config.delay.show);
3247    };
3248
3249    _proto._leave = function _leave(event, context) {
3250      var dataKey = this.constructor.DATA_KEY;
3251      context = context || $(event.currentTarget).data(dataKey);
3252
3253      if (!context) {
3254        context = new this.constructor(event.currentTarget, this._getDelegateConfig());
3255        $(event.currentTarget).data(dataKey, context);
3256      }
3257
3258      if (event) {
3259        context._activeTrigger[event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER] = false;
vendor: 4,166 bytes, lines 3260-3422
3260      }
3261
3262      if (context._isWithActiveTrigger()) {
3263        return;
3264      }
3265
3266      clearTimeout(context._timeout);
3267      context._hoverState = HoverState.OUT;
3268
3269      if (!context.config.delay || !context.config.delay.hide) {
3270        context.hide();
3271        return;
3272      }
3273
3274      context._timeout = setTimeout(function () {
3275        if (context._hoverState === HoverState.OUT) {
3276          context.hide();
3277        }
3278      }, context.config.delay.hide);
3279    };
3280
3281    _proto._isWithActiveTrigger = function _isWithActiveTrigger() {
3282      for (var trigger in this._activeTrigger) {
3283        if (this._activeTrigger[trigger]) {
3284          return true;
3285        }
3286      }
3287
3288      return false;
3289    };
3290
3291    _proto._getConfig = function _getConfig(config) {
3292      var dataAttributes = $(this.element).data();
3293      Object.keys(dataAttributes).forEach(function (dataAttr) {
3294        if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {
3295          delete dataAttributes[dataAttr];
3296        }
3297      });
3298      config = _objectSpread({}, this.constructor.Default, dataAttributes, typeof config === 'object' && config ? config : {});
3299
3300      if (typeof config.delay === 'number') {
3301        config.delay = {
3302          show: config.delay,
3303          hide: config.delay
3304        };
3305      }
3306
3307      if (typeof config.title === 'number') {
3308        config.title = config.title.toString();
3309      }
3310
3311      if (typeof config.content === 'number') {
3312        config.content = config.content.toString();
3313      }
3314
3315      Util.typeCheckConfig(NAME$6, config, this.constructor.DefaultType);
3316
3317      if (config.sanitize) {
3318        config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn);
3319      }
3320
3321      return config;
3322    };
3323
3324    _proto._getDelegateConfig = function _getDelegateConfig() {
3325      var config = {};
3326
3327      if (this.config) {
3328        for (var key in this.config) {
3329          if (this.constructor.Default[key] !== this.config[key]) {
3330            config[key] = this.config[key];
3331          }
3332        }
3333      }
3334
3335      return config;
3336    };
3337
3338    _proto._cleanTipClass = function _cleanTipClass() {
3339      var $tip = $(this.getTipElement());
3340      var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);
3341
3342      if (tabClass !== null && tabClass.length) {
3343        $tip.removeClass(tabClass.join(''));
3344      }
3345    };
3346
3347    _proto._handlePopperPlacementChange = function _handlePopperPlacementChange(popperData) {
3348      var popperInstance = popperData.instance;
3349      this.tip = popperInstance.popper;
3350
3351      this._cleanTipClass();
3352
3353      this.addAttachmentClass(this._getAttachment(popperData.placement));
3354    };
3355
3356    _proto._fixTransition = function _fixTransition() {
3357      var tip = this.getTipElement();
3358      var initConfigAnimation = this.config.animation;
3359
3360      if (tip.getAttribute('x-placement') !== null) {
3361        return;
3362      }
3363
3364      $(tip).removeClass(ClassName$6.FADE);
3365      this.config.animation = false;
3366      this.hide();
3367      this.show();
3368      this.config.animation = initConfigAnimation;
3369    } // Static
3370    ;
3371
3372    Tooltip._jQueryInterface = function _jQueryInterface(config) {
3373      return this.each(function () {
3374        var data = $(this).data(DATA_KEY$6);
3375
3376        var _config = typeof config === 'object' && config;
3377
3378        if (!data && /dispose|hide/.test(config)) {
3379          return;
3380        }
3381
3382        if (!data) {
3383          data = new Tooltip(this, _config);
3384          $(this).data(DATA_KEY$6, data);
3385        }
3386
3387        if (typeof config === 'string') {
3388          if (typeof data[config] === 'undefined') {
3389            throw new TypeError("No method named \"" + config + "\"");
3390          }
3391
3392          data[config]();
3393        }
3394      });
3395    };
3396
3397    _createClass(Tooltip, null, [{
3398      key: "VERSION",
3399      get: function get() {
3400        return VERSION$6;
3401      }
3402    }, {
3403      key: "Default",
3404      get: function get() {
3405        return Default$4;
3406      }
3407    }, {
3408      key: "NAME",
3409      get: function get() {
3410        return NAME$6;
3411      }
3412    }, {
3413      key: "DATA_KEY",
3414      get: function get() {
3415        return DATA_KEY$6;
3416      }
3417    }, {
3418      key: "Event",
3419      get: function get() {
3420        return Event$6;
3421      }
3422    }, {
3423      key: "EVENT_KEY",
3424      get: function get() {
3425        return EVENT_KEY$6;
3426      }
3427    }, {
3428      key: "DefaultType",
3429      get: function get() {
3430        return DefaultType$4;
3431      }
3432    }]);
3433
3434    return Tooltip;
3435  }();
3436  /**
3437   * ------------------------------------------------------------------------
3438   * jQuery
3439   * ------------------------------------------------------------------------
3440   */
3441
3442
3443  $.fn[NAME$6] = Tooltip._jQueryInterface;
3444  $.fn[NAME$6].Constructor = Tooltip;
3445
3446  $.fn[NAME$6].noConflict = function () {
3447    $.fn[NAME$6] = JQUERY_NO_CONFLICT$6;
3448    return Tooltip._jQueryInterface;
3449  };
3450
3451  /**
3452   * ------------------------------------------------------------------------
3453   * Constants
3454   * ------------------------------------------------------------------------
3455   */
3456
3457  var NAME$7 = 'popover';
3458  var VERSION$7 = '4.3.1';
3459  var DATA_KEY$7 = 'bs.popover';
3460  var EVENT_KEY$7 = "." + DATA_KEY$7;
3461  var JQUERY_NO_CONFLICT$7 = $.fn[NAME$7];
3462  var CLASS_PREFIX$1 = 'bs-popover';
3463  var BSCLS_PREFIX_REGEX$1 = new RegExp("(^|\\s)" + CLASS_PREFIX$1 + "\\S+", 'g');
3464
3465  var Default$5 = _objectSpread({}, Tooltip.Default, {
3466    placement: 'right',
3467    trigger: 'click',
3468    content: '',
3469    template: '<div class="popover" role="tooltip">' + '<div class="arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div></div>'
3470  });
3471
3472  var DefaultType$5 = _objectSpread({}, Tooltip.DefaultType, {
3473    content: '(string|element|function)'
3474  });
3475
3476  var ClassName$7 = {
3477    FADE: 'fade',
3478    SHOW: 'show'
3479  };
3480  var Selector$7 = {
3481    TITLE: '.popover-header',
3482    CONTENT: '.popover-body'
3483  };
3484  var Event$7 = {
3485    HIDE: "hide" + EVENT_KEY$7,
3486    HIDDEN: "hidden" + EVENT_KEY$7,
3487    SHOW: "show" + EVENT_KEY$7,
3488    SHOWN: "shown" + EVENT_KEY$7,
3489    INSERTED: "inserted" + EVENT_KEY$7,
3490    CLICK: "click" + EVENT_KEY$7,
3491    FOCUSIN: "focusin" + EVENT_KEY$7,
3492    FOCUSOUT: "focusout" + EVENT_KEY$7,
3493    MOUSEENTER: "mouseenter" + EVENT_KEY$7,
3494    MOUSELEAVE: "mouseleave" + EVENT_KEY$7
3495    /**
3496     * ------------------------------------------------------------------------
3497     * Class Definition
3498     * ------------------------------------------------------------------------
3499     */
3500
3501  };
3502
3503  var Popover =
3504  /*#__PURE__*/
3505  function (_Tooltip) {
3506    _inheritsLoose(Popover, _Tooltip);
3507
3508    function Popover() {
3509      return _Tooltip.apply(this, arguments) || this;
3510    }
3511
3512    var _proto = Popover.prototype;
3513
3514    // Overrides
3515    _proto.isWithContent = function isWithContent() {
3516      return this.getTitle() || this._getContent();
3517    };
3518
3519    _proto.addAttachmentClass = function addAttachmentClass(attachment) {
3520      $(this.getTipElement()).addClass(CLASS_PREFIX$1 + "-" + attachment);
3521    };
3522
3523    _proto.getTipElement = function getTipElement() {
3524      this.tip = this.tip || $(this.config.template)[0];
3525      return this.tip;
3526    };
3527
3528    _proto.setContent = function setContent() {
3529      var $tip = $(this.getTipElement()); // We use append for html objects to maintain js events
3530
3531      this.setElementContent($tip.find(Selector$7.TITLE), this.getTitle());
3532
3533      var content = this._getContent();
3534
3535      if (typeof content === 'function') {
3536        content = content.call(this.element);
3537      }
3538
3539      this.setElementContent($tip.find(Selector$7.CONTENT), content);
3540      $tip.removeClass(ClassName$7.FADE + " " + ClassName$7.SHOW);
3541    } // Private
3542    ;
3543
3544    _proto._getContent = function _getContent() {
3545      return this.element.getAttribute('data-content') || this.config.content;
3546    };
3547
3548    _proto._cleanTipClass = function _cleanTipClass() {
3549      var $tip = $(this.getTipElement());
3550      var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX$1);
3551
3552      if (tabClass !== null && tabClass.length > 0) {
3553        $tip.removeClass(tabClass.join(''));
3554      }
3555    } // Static
3556    ;
3557
3558    Popover._jQueryInterface = function _jQueryInterface(config) {
3559      return this.each(function () {
3560        var data = $(this).data(DATA_KEY$7);
3561
3562        var _config = typeof config === 'object' ? config : null;
3563
3564        if (!data && /dispose|hide/.test(config)) {
3565          return;
3566        }
3567
3568        if (!data) {
3569          data = new Popover(this, _config);
3570          $(this).data(DATA_KEY$7, data);
3571        }
3572
3573        if (typeof config === 'string') {
3574          if (typeof data[config] === 'undefined') {
3575            throw new TypeError("No method named \"" + config + "\"");
3576          }
3577
3578          data[config]();
3579        }
3580      });
3581    };
3582
3583    _createClass(Popover, null, [{
3584      key: "VERSION",
3585      // Getters
3586      get: function get() {
3587        return VERSION$7;
3588      }
3589    }, {
3590      key: "Default",
3591      get: function get() {
3592        return Default$5;
3593      }
3594    }, {
3595      key: "NAME",
3596      get: function get() {
3597        return NAME$7;
3598      }
3599    }, {
3600      key: "DATA_KEY",
3601      get: function get() {
3602        return DATA_KEY$7;
3603      }
3604    }, {
3605      key: "Event",
3606      get: function get() {
3607        return Event$7;
3608      }
3609    }, {
3610      key: "EVENT_KEY",
3611      get: function get() {
3612        return EVENT_KEY$7;
3613      }
3614    }, {
3615      key: "DefaultType",
3616      get: function get() {
3617        return DefaultType$5;
3618      }
3619    }]);
3620
3621    return Popover;
3622  }(Tooltip);
3623  /**
3624   * ------------------------------------------------------------------------
3625   * jQuery
3626   * ------------------------------------------------------------------------
3627   */
3628
3629
3630  $.fn[NAME$7] = Popover._jQueryInterface;
3631  $.fn[NAME$7].Constructor = Popover;
3632
3633  $.fn[NAME$7].noConflict = function () {
3634    $.fn[NAME$7] = JQUERY_NO_CONFLICT$7;
3635    return Popover._jQueryInterface;
3636  };
3637
3638  /**
3639   * ------------------------------------------------------------------------
3640   * Constants
3641   * ------------------------------------------------------------------------
3642   */
3643
3644  var NAME$8 = 'scrollspy';
3645  var VERSION$8 = '4.3.1';
3646  var DATA_KEY$8 = 'bs.scrollspy';
3647  var EVENT_KEY$8 = "." + DATA_KEY$8;
3648  var DATA_API_KEY$6 = '.data-api';
3649  var JQUERY_NO_CONFLICT$8 = $.fn[NAME$8];
3650  var Default$6 = {
3651    offset: 10,
3652    method: 'auto',
3653    target: ''
3654  };
3655  var DefaultType$6 = {
3656    offset: 'number',
3657    method: 'string',
3658    target: '(string|element)'
3659  };
3660  var Event$8 = {
3661    ACTIVATE: "activate" + EVENT_KEY$8,
3662    SCROLL: "scroll" + EVENT_KEY$8,
3663    LOAD_DATA_API: "load" + EVENT_KEY$8 + DATA_API_KEY$6
3664  };
3665  var ClassName$8 = {
3666    DROPDOWN_ITEM: 'dropdown-item',
3667    DROPDOWN_MENU: 'dropdown-menu',
3668    ACTIVE: 'active'
3669  };
3670  var Selector$8 = {
3671    DATA_SPY: '[data-spy="scroll"]',
3672    ACTIVE: '.active',
3673    NAV_LIST_GROUP: '.nav, .list-group',
3674    NAV_LINKS: '.nav-link',
3675    NAV_ITEMS: '.nav-item',
3676    LIST_ITEMS: '.list-group-item',
3677    DROPDOWN: '.dropdown',
3678    DROPDOWN_ITEMS: '.dropdown-item',
3679    DROPDOWN_TOGGLE: '.dropdown-toggle'
3680  };
3681  var OffsetMethod = {
3682    OFFSET: 'offset',
3683    POSITION: 'position'
3684    /**
3685     * ------------------------------------------------------------------------
3686     * Class Definition
3687     * ------------------------------------------------------------------------
3688     */
3689
3690  };
3691
3692  var ScrollSpy =
3693  /*#__PURE__*/
3694  function () {
3695    function ScrollSpy(element, config) {
3696      var _this = this;
3697
3698      this._element = element;
3699      this._scrollElement = element.tagName === 'BODY' ? window : element;
3700      this._config = this._getConfig(config);
3701      this._selector = this._config.target + " " + Selector$8.NAV_LINKS + "," + (this._config.target + " " + Selector$8.LIST_ITEMS + ",") + (this._config.target + " " + Selector$8.DROPDOWN_ITEMS);
3702      this._offsets = [];
3703      this._targets = [];
3704      this._activeTarget = null;
3705      this._scrollHeight = 0;
3706      $(this._scrollElement).on(Event$8.SCROLL, function (event) {
3707        return _this._process(event);
3708      });
3709      this.refresh();
3710
3711      this._process();
3712    } // Getters
3713
3714
3715    var _proto = ScrollSpy.prototype;
3716
3717    // Public
3718    _proto.refresh = function refresh() {
3719      var _this2 = this;
3720
3721      var autoMethod = this._scrollElement === this._scrollElement.window ? OffsetMethod.OFFSET : OffsetMethod.POSITION;
3722      var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;
3723      var offsetBase = offsetMethod === OffsetMethod.POSITION ? this._getScrollTop() : 0;
3724      this._offsets = [];
3725      this._targets = [];
3726      this._scrollHeight = this._getScrollHeight();
3727      var targets = [].slice.call(document.querySelectorAll(this._selector));
3728      targets.map(function (element) {
3729        var target;
3730        var targetSelector = Util.getSelectorFromElement(element);
3731
vendor: 4,133 bytes, lines 3732-3860
3732        if (targetSelector) {
3733          target = document.querySelector(targetSelector);
3734        }
3735
3736        if (target) {
3737          var targetBCR = target.getBoundingClientRect();
3738
3739          if (targetBCR.width || targetBCR.height) {
3740            // TODO (fat): remove sketch reliance on jQuery position/offset
3741            return [$(target)[offsetMethod]().top + offsetBase, targetSelector];
3742          }
3743        }
3744
3745        return null;
3746      }).filter(function (item) {
3747        return item;
3748      }).sort(function (a, b) {
3749        return a[0] - b[0];
3750      }).forEach(function (item) {
3751        _this2._offsets.push(item[0]);
3752
3753        _this2._targets.push(item[1]);
3754      });
3755    };
3756
3757    _proto.dispose = function dispose() {
3758      $.removeData(this._element, DATA_KEY$8);
3759      $(this._scrollElement).off(EVENT_KEY$8);
3760      this._element = null;
3761      this._scrollElement = null;
3762      this._config = null;
3763      this._selector = null;
3764      this._offsets = null;
3765      this._targets = null;
3766      this._activeTarget = null;
3767      this._scrollHeight = null;
3768    } // Private
3769    ;
3770
3771    _proto._getConfig = function _getConfig(config) {
3772      config = _objectSpread({}, Default$6, typeof config === 'object' && config ? config : {});
3773
3774      if (typeof config.target !== 'string') {
3775        var id = $(config.target).attr('id');
3776
3777        if (!id) {
3778          id = Util.getUID(NAME$8);
3779          $(config.target).attr('id', id);
3780        }
3781
3782        config.target = "#" + id;
3783      }
3784
3785      Util.typeCheckConfig(NAME$8, config, DefaultType$6);
3786      return config;
3787    };
3788
3789    _proto._getScrollTop = function _getScrollTop() {
3790      return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop;
3791    };
3792
3793    _proto._getScrollHeight = function _getScrollHeight() {
3794      return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);
3795    };
3796
3797    _proto._getOffsetHeight = function _getOffsetHeight() {
3798      return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height;
3799    };
3800
3801    _proto._process = function _process() {
3802      var scrollTop = this._getScrollTop() + this._config.offset;
3803
3804      var scrollHeight = this._getScrollHeight();
3805
3806      var maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight();
3807
3808      if (this._scrollHeight !== scrollHeight) {
3809        this.refresh();
3810      }
3811
3812      if (scrollTop >= maxScroll) {
3813        var target = this._targets[this._targets.length - 1];
3814
3815        if (this._activeTarget !== target) {
3816          this._activate(target);
3817        }
3818
3819        return;
3820      }
3821
3822      if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {
3823        this._activeTarget = null;
3824
3825        this._clear();
3826
3827        return;
3828      }
3829
3830      var offsetLength = this._offsets.length;
3831
3832      for (var i = offsetLength; i--;) {
3833        var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]);
3834
3835        if (isActiveTarget) {
3836          this._activate(this._targets[i]);
3837        }
3838      }
3839    };
3840
3841    _proto._activate = function _activate(target) {
3842      this._activeTarget = target;
3843
3844      this._clear();
3845
3846      var queries = this._selector.split(',').map(function (selector) {
3847        return selector + "[data-target=\"" + target + "\"]," + selector + "[href=\"" + target + "\"]";
3848      });
3849
3850      var $link = $([].slice.call(document.querySelectorAll(queries.join(','))));
3851
3852      if ($link.hasClass(ClassName$8.DROPDOWN_ITEM)) {
3853        $link.closest(Selector$8.DROPDOWN).find(Selector$8.DROPDOWN_TOGGLE).addClass(ClassName$8.ACTIVE);
3854        $link.addClass(ClassName$8.ACTIVE);
3855      } else {
3856        // Set triggered link as active
3857        $link.addClass(ClassName$8.ACTIVE); // Set triggered links parents as active
3858        // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor
3859
3860        $link.parents(Selector$8.NAV_LIST_GROUP).prev(Selector$8.NAV_LINKS + ", " + Selector$8.
3860LIST_ITEMS).addClass(ClassName$8.ACTIVE); // Handle special case when .nav-link is inside .nav-item
3861
3862        $link.parents(Selector$8.NAV_LIST_GROUP).prev(Selector$8.NAV_ITEMS).children(Selector$8.NAV_LINKS).addClass(ClassName$8.ACTIVE);
3863      }
3864
3865      $(this._scrollElement).trigger(Event$8.ACTIVATE, {
3866        relatedTarget: target
3867      });
3868    };
3869
3870    _proto._clear = function _clear() {
3871      [].slice.call(document.querySelectorAll(this._selector)).filter(function (node) {
3872        return node.classList.contains(ClassName$8.ACTIVE);
3873      }).forEach(function (node) {
3874        return node.classList.remove(ClassName$8.ACTIVE);
3875      });
3876    } // Static
3877    ;
3878
3879    ScrollSpy._jQueryInterface = function _jQueryInterface(config) {
3880      return this.each(function () {
3881        var data = $(this).data(DATA_KEY$8);
3882
3883        var _config = typeof config === 'object' && config;
3884
3885        if (!data) {
3886          data = new ScrollSpy(this, _config);
3887          $(this).data(DATA_KEY$8, data);
3888        }
3889
3890        if (typeof config === 'string') {
3891          if (typeof data[config] === 'undefined') {
3892            throw new TypeError("No method named \"" + config + "\"");
3893          }
3894
3895          data[config]();
3896        }
3897      });
3898    };
3899
3900    _createClass(ScrollSpy, null, [{
3901      key: "VERSION",
3902      get: function get() {
3903        return VERSION$8;
3904      }
3905    }, {
3906      key: "Default",
3907      get: function get() {
3908        return Default$6;
3909      }
3910    }]);
3911
3912    return ScrollSpy;
3913  }();
3914  /**
3915   * ------------------------------------------------------------------------
3916   * Data Api implementation
3917   * ------------------------------------------------------------------------
3918   */
3919
3920
3921  $(window).on(Event$8.LOAD_DATA_API, function () {
3922    var scrollSpys = [].slice.call(document.querySelectorAll(Selector$8.DATA_SPY));
3923    var scrollSpysLength = scrollSpys.length;
3924
3925    for (var i = scrollSpysLength; i--;) {
3926      var $spy = $(scrollSpys[i]);
3927
3928      ScrollSpy._jQueryInterface.call($spy, $spy.data());
3929    }
3930  });
3931  /**
3932   * ------------------------------------------------------------------------
3933   * jQuery
3934   * ------------------------------------------------------------------------
3935   */
3936
3937  $.fn[NAME$8] = ScrollSpy._jQueryInterface;
3938  $.fn[NAME$8].Constructor = ScrollSpy;
3939
3940  $.fn[NAME$8].noConflict = function () {
3941    $.fn[NAME$8] = JQUERY_NO_CONFLICT$8;
3942    return ScrollSpy._jQueryInterface;
3943  };
3944
3945  /**
3946   * ------------------------------------------------------------------------
3947   * Constants
3948   * ------------------------------------------------------------------------
3949   */
3950
3951  var NAME$9 = 'tab';
3952  var VERSION$9 = '4.3.1';
3953  var DATA_KEY$9 = 'bs.tab';
3954  var EVENT_KEY$9 = "." + DATA_KEY$9;
3955  var DATA_API_KEY$7 = '.data-api';
3956  var JQUERY_NO_CONFLICT$9 = $.fn[NAME$9];
3957  var Event$9 = {
3958    HIDE: "hide" + EVENT_KEY$9,
3959    HIDDEN: "hidden" + EVENT_KEY$9,
3960    SHOW: "show" + EVENT_KEY$9,
3961    SHOWN: "shown" + EVENT_KEY$9,
3962    CLICK_DATA_API: "click" + EVENT_KEY$9 + DATA_API_KEY$7
3963  };
3964  var ClassName$9 = {
3965    DROPDOWN_MENU: 'dropdown-menu',
3966    ACTIVE: 'active',
3967    DISABLED: 'disabled',
3968    FADE: 'fade',
3969    SHOW: 'show'
3970  };
3971  var Selector$9 = {
3972    DROPDOWN: '.dropdown',
3973    NAV_LIST_GROUP: '.nav, .list-group',
3974    ACTIVE: '.active',
3975    ACTIVE_UL: '> li > .active',
3976    DATA_TOGGLE: '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',
3977    DROPDOWN_TOGGLE: '.dropdown-toggle',
3978    DROPDOWN_ACTIVE_CHILD: '> .dropdown-menu .active'
3979    /**
3980     * ------------------------------------------------------------------------
3981     * Class Definition
3982     * ------------------------------------------------------------------------
3983     */
3984
3985  };
3986
3987  var Tab =
3988  /*#__PURE__*/
3989  function () {
3990    function Tab(element) {
3991      this._element = element;
3992    } // Getters
3993
3994
3995    var _proto = Tab.prototype;
3996
3997    // Public
3998    _proto.show = function show() {
3999      var _this = this;
4000
4001      if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $(this._element).hasClass(ClassName$9.ACTIVE) || $(this._element).hasClass(ClassName$9.DISABLED)) {
4002        return;
4003      }
4004
4005      var target;
4006      var previous;
4007      var listElement = $(this._element).closest(Selector$9.NAV_LIST_GROUP)[0];
4008      var selector = Util.getSelectorFromElement(this._element);
4009
4010      if (listElement) {
4011        var itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? Selector$9.ACTIVE_UL : Selector$9.ACTIVE;
4012        previous = $.makeArray($(listElement).find(itemSelector));
4013        previous = previous[previous.length - 1];
4014      }
4015
4016      var hideEvent = $.Event(Event$9.HIDE, {
4017        relatedTarget: this._element
4018      });
4019      var showEvent = $.Event(Event$9.SHOW, {
4020        relatedTarget: previous
4021      });
4022
4023      if (previous) {
4024        $(previous).trigger(hideEvent);
4025      }
4026
4027      $(this._element).trigger(showEvent);
4028
4029      if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) {
4030        return;
4031      }
4032
4033      if (selector) {
4034        target = document.querySelector(selector);
4035      }
4036
4037      this._activate(this._element, listElement);
4038
4039      var complete = function complete() {
4040        var hiddenEvent = $.Event(Event$9.HIDDEN, {
4041          relatedTarget: _this._element
4042        });
4043        var shownEvent = $.Event(Event$9.SHOWN, {
4044          relatedTarget: previous
4045        });
4046        $(previous).trigger(hiddenEvent);
4047        $(_this._element).trigger(shownEvent);
4048      };
4049
4050      if (target) {
4051        this._activate(target, target.parentNode, complete);
4052      } else {
4053        complete();
4054      }
4055    };
4056
4057    _proto.dispose = function dispose() {
4058      $.removeData(this._element, DATA_KEY$9);
4059      this._element = null;
4060    } // Private
4061    ;
4062
4063    _proto._activate = function _activate(element, container, callback) {
4064      var _this2 = this;
4065
4066      var activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ? $(container).find(Selector$9.ACTIVE_UL) : $(container).children(Selector$9.ACTIVE);
4067      var active = activeElements[0];
4068      var isTransitioning = callback && active && $(active).hasClass(ClassName$9.FADE);
4069
4070      var complete = function complete() {
4071        return _this2._transitionComplete(element, active, callback);
4072      };
4073
4074      if (active && isTransitioning) {
4075        var transitionDuration = Util.getTransitionDurationFromElement(active);
4076        $(active).removeClass(ClassName$9.SHOW).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
4077      } else {
4078        complete();
4079      }
4080    };
4081
4082    _proto._transitionComplete = function _transitionComplete(element, active, callback) {
4083      if (active) {
4084        $(active).removeClass(ClassName$9.ACTIVE);
4085        var dropdownChild = $(active.parentNode).find(Selector$9.DROPDOWN_ACTIVE_CHILD)[0];
4086
4087        if (dropdownChild) {
4088          $(dropdownChild).removeClass(ClassName$9.ACTIVE);
4089        }
4090
4091        if (active.getAttribute('role') === 'tab') {
4092          active.setAttribute('aria-selected', false);
4093        }
4094      }
4095
4096      $(element).addClass(ClassName$9.ACTIVE);
4097
4098      if (element.getAttribute('role') === 'tab') {
4099        element.setAttribute('aria-selected', true);
4100      }
4101
4102      Util.reflow(element);
4103
4104      if (element.classList.contains(ClassName$9.FADE)) {
4105        element.classList.add(ClassName$9.SHOW);
4106      }
4107
4108      if (element.parentNode && $(element.parentNode).hasClass(ClassName$9.DROPDOWN_MENU)) {
4109        var dropdownElement = $(element).closest(Selector$9.DROPDOWN)[0];
4110
4111        if (dropdownElement) {
4112          var dropdownToggleList = [].slice.call(dropdownElement.querySelectorAll(Selector$9.DROPDOWN_TOGGLE));
4113          $(dropdownToggleList).addClass(ClassName$9.ACTIVE);
4114        }
4115
4116        element.setAttribute('aria-expanded', true);
4117      }
4118
4119      if (callback) {
4120        callback();
4121      }
4122    } // Static
4123    ;
4124
4125    Tab._jQueryInterface = function _jQueryInterface(config) {
4126      return this.each(function () {
4127        var $this = $(this);
4128        var data = $this.data(DATA_KEY$9);
4129
4130        if (!data) {
4131          data = new Tab(this);
4132          $this.data(DATA_KEY$9, data);
4133        }
4134
4135        if (typeof config === 'string') {
4136          if (typeof data[config] === 'undefined') {
4137            throw new TypeError("No method named \"" + config + "\"");
4138          }
4139
4140          data[config]();
4141        }
4142      });
4143    };
4144
4145    _createClass(Tab, null, [{
4146      key: "VERSION",
4147      get: function get() {
4148        return VERSION$9;
4149      }
4150    }]);
4151
4152    return Tab;
4153  }();
4154  /**
4155   * ------------------------------------------------------------------------
4156   * Data Api implementation
4157   * ------------------------------------------------------------------------
4158   */
4159
4160
4161  $(document).on(Event$9.CLICK_DATA_API, Selector$9.DATA_TOGGLE, function (event) {
4162    event.preventDefault();
4163
4164    Tab._jQueryInterface.call($(this), 'show');
4165  });
4166  /**
4167   * ------------------------------------------------------------------------
4168   * jQuery
4169   * ------------------------------------------------------------------------
4170   */
4171
4172  $.fn[NAME$9] = Tab._jQueryInterface;
4173  $.fn[NAME$9].Constructor = Tab;
4174
4175  $.fn[NAME$9].noConflict = function () {
4176    $.fn[NAME$9] = JQUERY_NO_CONFLICT$9;
4177    return Tab._jQueryInterface;
4178  };
4179
4180  /**
4181   * ------------------------------------------------------------------------
4182   * Constants
4183   * ------------------------------------------------------------------------
4184   */
4185
4186  var NAME$a = 'toast';
4187  var VERSION$a = '4.3.1';
4188  var DATA_KEY$a = 'bs.toast';
4189  var EVENT_KEY$a = "." + DATA_KEY$a;
4190  var JQUERY_NO_CONFLICT$a = $.fn[NAME$a];
4191  var Event$a = {
4192    CLICK_DISMISS: "click.dismiss" + EVENT_KEY$a,
4193    HIDE: "hide" + EVENT_KEY$a,
4194    HIDDEN: "hidden" + EVENT_KEY$a,
4195    SHOW: "show" + EVENT_KEY$a,
4196    SHOWN: "shown" + EVENT_KEY$a
4197  };
4198  var ClassName$a = {
4199    FADE: 'fade',
4200    HIDE: 'hide',
4201    SHOW: 'show',
4202    SHOWING: 'showing'
4203  };
4204  var DefaultType$7 = {
4205    animation: 'boolean',
4206    autohide: 'boolean',
4207    delay: 'number'
4208  };
4209  var Default$7 = {
4210    animation: true,
4211    autohide: true,
4212    delay: 500
4213  };
4214  var Selector$a = {
4215    DATA_DISMISS: '[data-dismiss="toast"]'
4216    /**
4217     * ------------------------------------------------------------------------
4218     * Class Definition
4219     * ------------------------------------------------------------------------
4220     */
4221
4222  };
4223
4224  var Toast =
4225  /*#__PURE__*/
4226  function () {
4227    function Toast(element, config) {
4228      this._element = element;
4229      this._config = this._getConfig(config);
4230      this._timeout = null;
4231
4232      this._setListeners();
4233    } // Getters
4234
4235
4236    var _proto = Toast.prototype;
4237
4238    // Public
4239    _proto.show = function show() {
4240      var _this = this;
4241
4242      $(this._element).trigger(Event$a.SHOW);
4243
4244      if (this._config.animation) {
4245        this._element.classList.add(ClassName$a.FADE);
4246      }
4247
4248      var complete = function complete() {
4249        _this._element.classList.remove(ClassName$a.SHOWING);
4250
4251        _this._element.classList.add(ClassName$a.SHOW);
4252
4253        $(_this._element).trigger(Event$a.SHOWN);
4254
4255        if (_this._config.autohide) {
4256          _this.hide();
4257        }
4258      };
4259
4260      this._element.classList.remove(ClassName$a.HIDE);
4261
4262      this._element.classList.add(ClassName$a.SHOWING);
4263
4264      if (this._config.animation) {
4265        var transitionDuration = Util.getTransitionDurationFromElement(this._element);
4266        $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
4267      } else {
4268        complete();
4269      }
4270    };
4271
4272    _proto.hide = function hide(withoutTimeout) {
4273      var _this2 = this;
4274
4275      if (!this._element.classList.contains(ClassName$a.SHOW)) {
4276        return;
4277      }
4278
4279      $(this._element).trigger(Event$a.HIDE);
4280
4281      if (withoutTimeout) {
4282        this._close();
4283      } else {
4284        this._timeout = setTimeout(function () {
4285          _this2._close();
4286        }, this._config.delay);
4287      }
4288    };
4289
4290    _proto.dispose = function dispose() {
4291      clearTimeout(this._timeout);
4292      this._timeout = null;
4293
4294      if (this._element.classList.contains(ClassName$a.SHOW)) {
4295        this._element.classList.remove(ClassName$a.SHOW);
4296      }
4297
4298      $(this._element).off(Event$a.CLICK_DISMISS);
4299      $.removeData(this._element, DATA_KEY$a);
4300      this._element = null;
4301      this._config = null;
4302    } // Private
4303    ;
4304
4305    _proto._getConfig = function _getConfig(config) {
4306      config = _objectSpread({}, Default$7, $(this._element).data(), typeof config === 'object' && config ? config : {});
4307      Util.typeCheckConfig(NAME$a, config, this.constructor.DefaultType);
4308      return config;
4309    };
4310
4311    _proto._setListeners = function _setListeners() {
4312      var _this3 = this;
4313
4314      $(this._element).on(Event$a.CLICK_DISMISS, Selector$a.DATA_DISMISS, function () {
4315        return _this3.hide(true);
4316      });
4317    };
4318
4319    _proto._close = function _close() {
4320      var _this4 = this;
4321
4322      var complete = function complete() {
4323        _this4._element.classList.add(ClassName$a.HIDE);
4324
4325        $(_this4._element).trigger(Event$a.HIDDEN);
4326      };
4327
4328      this._element.classList.remove(ClassName$a.SHOW);
4329
4330      if (this._config.animation) {
4331        var transitionDuration = Util.getTransitionDurationFromElement(this._element);
4332        $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
4333      } else {
4334        complete();
4335      }
4336    } // Static
4337    ;
4338
4339    Toast._jQueryInterface = function _jQueryInterface(config) {
4340      return this.each(function () {
4341        var $element = $(this);
4342        var data = $element.data(DATA_KEY$a);
4343
4344        var _config = typeof config === 'object' && config;
4345
4346        if (!data) {
4347          data = new Toast(this, _config);
4348          $element.data(DATA_KEY$a, data);
4349        }
4350
4351        if (typeof config === 'string') {
4352          if (typeof data[config] === 'undefined') {
4353            throw new TypeError("No method named \"" + config + "\"");
4354          }
4355
4356          data[config](this);
4357        }
4358      });
4359    };
4360
4361    _createClass(Toast, null, [{
4362      key: "VERSION",
4363      get: function get() {
4364        return VERSION$a;
4365      }
4366    }, {
4367      key: "DefaultType",
4368      get: function get() {
4369        return DefaultType$7;
4370      }
4371    }, {
4372      key: "Default",
4373      get: function get() {
4374        return Default$7;
4375      }
4376    }]);
4377
4378    return Toast;
4379  }();
4380  /**
4381   * ------------------------------------------------------------------------
4382   * jQuery
4383   * ------------------------------------------------------------------------
4384   */
4385
4386
4387  $.fn[NAME$a] = Toast._jQueryInterface;
4388  $.fn[NAME$a].Constructor = Toast;
4389
4390  $.fn[NAME$a].noConflict = function () {
4391    $.fn[NAME$a] = JQUERY_NO_CONFLICT$a;
4392    return Toast._jQueryInterface;
4393  };
4394
4395  /**
4396   * --------------------------------------------------------------------------
4397   * Bootstrap (v4.3.1): index.js
4398   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
4399   * --------------------------------------------------------------------------
4400   */
4401
4402  (function () {
4403    if (typeof $ === 'undefined') {
4404      throw new TypeError('Bootstrap\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\'s JavaScript.');
4405    }
4406
4407    var version = $.fn.jquery.split(' ')[0].split('.');
4408    var minMajor = 1;
4409    var ltMajor = 2;
4410    var minMinor = 9;
4411    var minPatch = 1;
4412    var maxMajor = 4;
4413
4414    if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {
4415      throw new Error('Bootstrap\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0');
4416    }
4417  })();
4418
4419  exports.Util = Util;
4420  exports.Alert = Alert;
4421  exports.Button = Button;
4422  exports.Carousel = Carousel;
4423  exports.Collapse = Collapse;
4424  exports.Dropdown = Dropdown;
4425  exports.Modal = Modal;
4426  exports.Popover = Popover;
4427  exports.Scrollspy = ScrollSpy;
4428  exports.Tab = Tab;
4429  exports.Toast = Toast;
4430  exports.Tooltip = Tooltip;
4431
4432  Object.defineProperty(exports, '__esModule', { value: true });
4433
4434}));
4435//# sourceMappingURL=bootstrap.js.map
4436
4437/*!
4438 * Lightbox v2.11.3
4439 * by Lokesh Dhakar
4440 *
4441 * More info:
4442 * http://lokeshdhakar.com/projects/lightbox2/
4443 *
4444 * Copyright Lokesh Dhakar
4445 * Released under the MIT license
4446 * https://github.com/lokesh/lightbox2/blob/master/LICENSE
4447 *
4448 * @preserve
4449 */
4450!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],b):"object"==typeof exports?module.exports=b(require("jquery")):a.lightbox=b(a.jQuery)}(this,function(a){function b(b){this.album=[],this.currentImageIndex=void 0,this.init(),this.options=a.extend({},this.constructor.defaults),this.option(b)}return b.defaults={albumLabel:"Image %1 of %2",alwaysShowNavOnTouchDevices:!1,fadeDuration:600,fitImagesInViewport:!0,imageFadeDuration:600,positionFromTop:50,resizeDuration:700,showImageNumberLabel:!0,wrapAround:!1,disableScrolling:!1,sanitizeTitle:!1},b.prototype.option=function(b){a.extend(this.options,b)},b.prototype.imageCountLabel=function(a,b){return this.options.albumLabel.replace(/%1/g,a).replace(/%2/g,b)},b.prototype.init=function(){var b=this;a(document).ready(function(){b.enable(),b.build()})},b.prototype.enable=function(){var b=this;a("body").on("click","a[rel^=lightbox], area[rel^=lightbox], a[data-lightbox], area[data-lightbox]",function(c){return b.start(a(c.currentTarget)),!1})},b.prototype.build=function(){if(!(a("#lightbox").length>0)){var b=this;a('<div id="lightboxOverlay" tabindex="-1" class="lightboxOverlay"></div><div id="lightbox" tabindex="-1" class="lightbox"><div class="lb-outerContainer"><div class="lb-container"><img class="lb-image" src="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==" alt=""/><div class="lb-nav"><a class="lb-prev" aria-label="Previous image" href="" ></a><a class="lb-next" aria-label="Next image" href="" ></a></div><div class="lb-loader"><a class="lb-cancel"></a></div></div></div><div class="lb-dataContainer"><div class="lb-data"><div class="lb-details"><span class="lb-caption"></span><span class="lb-number"></span></div><div class="lb-closeContainer"><a class="lb-close"></a></div></div></div></div>').appendTo(a("body")),this.$lightbox=a("#lightbox"),this.$overlay=a("#lightboxOverlay"),this.$outerContainer=this.$lightbox.find(".lb-outerContainer"),this.$container=this.$lightbox.find(".lb-container"),this.$image=this.$lightbox.find(".lb-image"),this.$nav=this.$lightbox.find(".lb-nav"),this.containerPadding={top:parseInt(this.$container.css("padding-top"),10),right:parseInt(this.$container.css("padding-right"),10),bottom:parseInt(this.$container.css("padding-bottom"),10),left:parseInt(this.$container.css("padding-left"),10)},this.imageBorderWidth={top:parseInt(this.$image.css("border-top-width"),10),right:parseInt(this.$image.css("border-right-width"),10),bottom:parseInt(this.$image.css("border-bottom-width"),10),left:parseInt(this.$image.css("border-left-width"),10)},this.$overlay.hide().on("click",function(){return b.end(),!1}),this.$lightbox.hide().on("click",function(c){"lightbox"===a(c.target).attr("id")&&b.end()}),this.$outerContainer.on("click",function(c){return"lightbox"===a(c.target).attr("id")&&b.end(),!1}),this.$lightbox.find(".lb-prev").on("click",function(){return 0===b.currentImageIndex?b.changeImage(b.album.length-1):b.changeImage(b.currentImageIndex-1),!1}),this.$lightbox.find(".lb-next").on("click",function(){return b.currentImageIndex===b.album.length-1?b.changeImage(0):b.changeImage(b.currentImageIndex+1),!1}),this.$nav.on("mousedown",function(a){3===a.which&&(b.$nav.css("pointer-events","none"),b.$lightbox.one("contextmenu",function(){setTimeout(function(){this.$nav.css("pointer-events","auto")}.bind(b),0)}))}),this.$lightbox.find(".lb-loader, .lb-close").on("click",function(){return b.end(),!1})}},b.prototype.start=function(b){function c(a){d.album.push({alt:a.attr("data-alt"),link:a.attr("href"),title:a.attr("data-title")||a.attr("title")})}var d=this,e=a(window);e.on("resize",a.proxy(this.sizeOverlay,this)),this.sizeOverlay(),this.album=[];var f,g=0,h=b.attr("data-lightbox");if(h){f=a(b.prop("tagName")+'[data-lightbox="'+h+'"]');for(var i=0;i<f.length;i=++i)c(a(f[i])),f[i]===b[0]&&(g=i)}else if("lightbox"===b.attr("rel"))c(b);else{f=a(b.prop("tagName")+'[rel="'+b.attr("rel")+'"]');for(var j=0;j<f.length;j=++j)c(a(f[j])),f[j]===b[0]&&(g=j)}var k=e.scrollTop()+this.options.positionFromTop,l=e.scrollLeft();this.$lightbox.css({top:k+"px",left:l+"px"}).fadeIn(this.options.fadeDuration),this.options.disableScrolling&&a("body").addClass("lb-disable-scrolling"),this.changeImage(g)},b.prototype.changeImage=function(b){var c=this,d=this.album[b].link,e=d.split(".").slice(-1)[0],f=this.$lightbox.find(".lb-image");this.disableKeyboardNav(),this.$overlay.fadeIn(this.options.fadeDuration),a(".lb-loader").fadeIn("slow"),this.$lightbox.find(".lb-image, .lb-nav, .lb-prev, .lb-next, .lb-dataContainer, .lb-numbers, .lb-caption").hide(),this.$outerContainer.addClass("animating");var g=new Image;g.onload=function(){var h,i,j,k,l,m;f.attr({alt:c.album[b].alt,src:d}),a(g),f.width(g.width),f.height(g.height),m=a(window).width(),l=a(window).height(),k=m-c.containerPadding.left-c.containerPadding.right-c.imageBorderWidth.left-c.imageBorderWidth.right-20,j=l-c.containerPadding.top-c.containerPadding.bottom-c.imageBorderWidth.top-c.imageBorderWidth.bottom-c.options.positionFromTop-70,"svg"===e&&(f.width(k),f.height(j)),c.options.fitImagesInViewport?(c.options.maxWidth&&c.options.maxWidth<k&&(k=c.options.maxWidth),c.options.maxHeight&&c.options.maxHeight<j&&(j=c.options.maxHeight)):(k=c.options.maxWidth||g.width||k,j=c.options.maxHeight||g.height||j),(g.width>k||g.height>j)&&(g.width/k>g.height/j?(i=k,h=parseInt(g.height/(g.width/i),10),f.width(i),f.height(h)):(h=j,i=parseInt(g.width/(g.height/h),10),f.width(i),f.height(h))),c.sizeContainer(f.width(),f.height())},g.src=this.album[b].link,this.currentImageIndex=b},b.prototype.sizeOverlay=function(){var b=this;setTimeout(function(){b.$overlay.width(a(document).width()).height(a(document).height())},0)},b.prototype.sizeContainer=function(a,b){function c(){d.$lightbox.find(".lb-dataContainer").width(g),d.$lightbox.find(".lb-prevLink").height(h),d.$lightbox.find(".lb-nextLink").height(h),d.$overlay.focus(),d.showImage()}var d=this,e=this.$outerContainer.outerWidth(),f=this.$outerContainer.outerHeight(),g=a+this.containerPadding.left+this.containerPadding.right+this.imageBorderWidth.left+this.imageBorderWidth.right,h=b+this.containerPadding.top+this.containerPadding.bottom+this.imageBorderWidth.top+this.imageBorderWidth.bottom;e!==g||f!==h?this.$outerContainer.animate({width:g,height:h},this.options.resizeDuration,"swing",function(){c()}):c()},b.prototype.showImage=function(){this.$lightbox.find(".lb-loader").stop(!0).hide(),this.$lightbox.find(".lb-image").fadeIn(this.options.imageFadeDuration),this.updateNav(),this.updateDetails(),this.preloadNeighboringImages(),this.enableKeyboardNav()},b.prototype.updateNav=function(){var a=!1;try{document.createEvent("TouchEvent"),a=!!this.options.alwaysShowNavOnTouchDevices}catch(a){}this.$lightbox.find(".lb-nav").show(),this.album.length>1&&(this.options.wrapAround?(a&&this.$lightbox.find(".lb-prev, .lb-next").
4450css("opacity","1"),this.$lightbox.find(".lb-prev, .lb-next").show()):(this.currentImageIndex>0&&(this.$lightbox.find(".lb-prev").show(),a&&this.$lightbox.find(".lb-prev").css("opacity","1")),this.currentImageIndex<this.album.length-1&&(this.$lightbox.find(".lb-next").show(),a&&this.$lightbox.find(".lb-next").css("opacity","1"))))},b.prototype.updateDetails=function(){var a=this;if(void 0!==this.album[this.currentImageIndex].title&&""!==this.album[this.currentImageIndex].title){var b=this.$lightbox.find(".lb-caption");this.options.sanitizeTitle?b.text(this.album[this.currentImageIndex].title):b.html(this.album[this.currentImageIndex].title),b.fadeIn("fast")}if(this.album.length>1&&this.options.showImageNumberLabel){var c=this.imageCountLabel(this.currentImageIndex+1,this.album.length);this.$lightbox.find(".lb-number").text(c).fadeIn("fast")}else this.$lightbox.find(".lb-number").hide();this.$outerContainer.removeClass("animating"),this.$lightbox.find(".lb-dataContainer").fadeIn(this.options.resizeDuration,function(){return a.sizeOverlay()})},b.prototype.preloadNeighboringImages=function(){if(this.album.length>this.currentImageIndex+1){(new Image).src=this.album[this.currentImageIndex+1].link}if(this.currentImageIndex>0){(new Image).src=this.album[this.currentImageIndex-1].link}},b.prototype.enableKeyboardNav=function(){this.$lightbox.on("keyup.keyboard",a.proxy(this.keyboardAction,this)),this.$overlay.on("keyup.keyboard",a.proxy(this.keyboardAction,this))},b.prototype.disableKeyboardNav=function(){this.$lightbox.off(".keyboard"),this.$overlay.off(".keyboard")},b.prototype.keyboardAction=function(a){var b=a.keyCode;27===b?(a.stopPropagation(),this.end()):37===b?0!==this.currentImageIndex?this.changeImage(this.currentImageIndex-1):this.options.wrapAround&&this.album.length>1&&this.changeImage(this.album.length-1):39===b&&(this.currentImageIndex!==this.album.length-1?this.changeImage(this.currentImageIndex+1):this.options.wrapAround&&this.album.length>1&&this.changeImage(0))},b.prototype.end=function(){this.disableKeyboardNav(),a(window).off("resize",this.sizeOverlay),this.$lightbox.fadeOut(this.options.fadeDuration),this.$overlay.fadeOut(this.options.fadeDuration),this.options.disableScrolling&&a("body").removeClass("lb-disable-scrolling")},new b});
4451//# sourceMappingURL=lightbox.min.map
vendor: 36,085 bytes, lines 4452-4458
4452/**
4453 * Owl Carousel v2.3.4
4454 * Copyright 2013-2018 David Deutsch
4455 * Licensed under: SEE LICENSE IN https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE
4456 */
4457!function(a,b,c,d){function e(b,c){this.settings=null,this.options=a.extend({},e.Defaults,c),this.$element=a(b),this._handlers={},this._plugins={},this._supress={},this._current=null,this._speed=null,this._coordinates=[],this._breakpoint=null,this._width=null,this._items=[],this._clones=[],this._mergers=[],this._widths=[],this._invalidated={},this._pipe=[],this._drag={time:null,target:null,pointer:null,stage:{start:null,current:null},direction:null},this._states={current:{},tags:{initializing:["busy"],animating:["busy"],dragging:["interacting"]}},a.each(["onResize","onThrottledResize"],a.proxy(function(b,c){this._handlers[c]=a.proxy(this[c],this)},this)),a.each(e.Plugins,a.proxy(function(a,b){this._plugins[a.charAt(0).toLowerCase()+a.slice(1)]=new b(this)},this)),a.each(e.Workers,a.proxy(function(b,c){this._pipe.push({filter:c.filter,run:a.proxy(c.run,this)})},this)),this.setup(),this.initialize()}e.Defaults={items:3,loop:!1,center:!1,rewind:!1,checkVisibility:!0,mouseDrag:!0,touchDrag:!0,pullDrag:!0,freeDrag:!1,margin:0,stagePadding:0,merge:!1,mergeFit:!0,autoWidth:!1,startPosition:0,rtl:!1,smartSpeed:250,fluidSpeed:!1,dragEndSpeed:!1,responsive:{},responsiveRefreshRate:200,responsiveBaseElement:b,fallbackEasing:"swing",slideTransition:"",info:!1,nestedItemSelector:!1,itemElement:"div",stageElement:"div",refreshClass:"owl-refresh",loadedClass:"owl-loaded",loadingClass:"owl-loading",rtlClass:"owl-rtl",responsiveClass:"owl-responsive",dragClass:"owl-drag",itemClass:"owl-item",stageClass:"owl-stage",stageOuterClass:"owl-stage-outer",grabClass:"owl-grab"},e.Width={Default:"default",Inner:"inner",Outer:"outer"},e.Type={Event:"event",State:"state"},e.Plugins={},e.Workers=[{filter:["width","settings"],run:function(){this._width=this.$element.width()}},{filter:["width","items","settings"],run:function(a){a.current=this._items&&this._items[this.relative(this._current)]}},{filter:["items","settings"],run:function(){this.$stage.children(".cloned").remove()}},{filter:["width","items","settings"],run:function(a){var b=this.settings.margin||"",c=!this.settings.autoWidth,d=this.settings.rtl,e={width:"auto","margin-left":d?b:"","margin-right":d?"":b};!c&&this.$stage.children().css(e),a.css=e}},{filter:["width","items","settings"],run:function(a){var b=(this.width()/this.settings.items).toFixed(3)-this.settings.margin,c=null,d=this._items.length,e=!this.settings.autoWidth,f=[];for(a.items={merge:!1,width:b};d--;)c=this._mergers[d],c=this.settings.mergeFit&&Math.min(c,this.settings.items)||c,a.items.merge=c>1||a.items.merge,f[d]=e?b*c:this._items[d].width();this._widths=f}},{filter:["items","settings"],run:function(){var b=[],c=this._items,d=this.settings,e=Math.max(2*d.items,4),f=2*Math.ceil(c.length/2),g=d.loop&&c.length?d.rewind?e:Math.max(e,f):0,h="",i="";for(g/=2;g>0;)b.push(this.normalize(b.length/2,!0)),h+=c[b[b.length-1]][0].outerHTML,b.push(this.normalize(c.length-1-(b.length-1)/2,!0)),i=c[b[b.length-1]][0].outerHTML+i,g-=1;this._clones=b,a(h).addClass("cloned").appendTo(this.$stage),a(i).addClass("cloned").prependTo(this.$stage)}},{filter:["width","items","settings"],run:function(){for(var a=this.settings.rtl?1:-1,b=this._clones.length+this._items.length,c=-1,d=0,e=0,f=[];++c<b;)d=f[c-1]||0,e=this._widths[this.relative(c)]+this.settings.margin,f.push(d+e*a);this._coordinates=f}},{filter:["width","items","settings"],run:function(){var a=this.settings.stagePadding,b=this._coordinates,c={width:Math.ceil(Math.abs(b[b.length-1]))+2*a,"padding-left":a||"","padding-right":a||""};this.$stage.css(c)}},{filter:["width","items","settings"],run:function(a){var b=this._coordinates.length,c=!this.settings.autoWidth,d=this.$stage.children();if(c&&a.items.merge)for(;b--;)a.css.width=this._widths[this.relative(b)],d.eq(b).css(a.css);else c&&(a.css.width=a.items.width,d.css(a.css))}},{filter:["items"],run:function(){this._coordinates.length<1&&this.$stage.removeAttr("style")}},{filter:["width","items","settings"],run:function(a){a.current=a.current?this.$stage.children().index(a.current):0,a.current=Math.max(this.minimum(),Math.min(this.maximum(),a.current)),this.reset(a.current)}},{filter:["position"],run:function(){this.animate(this.coordinates(this._current))}},{filter:["width","position","items","settings"],run:function(){var a,b,c,d,e=this.settings.rtl?1:-1,f=2*this.settings.stagePadding,g=this.coordinates(this.current())+f,h=g+this.width()*e,i=[];for(c=0,d=this._coordinates.length;c<d;c++)a=this._coordinates[c-1]||0,b=Math.abs(this._coordinates[c])+f*e,(this.op(a,"<=",g)&&this.op(a,">",h)||this.op(b,"<",g)&&this.op(b,">",h))&&i.push(c);this.$stage.children(".active").removeClass("active"),this.$stage.children(":eq("+i.join("), :eq(")+")").addClass("active"),this.$stage.children(".center").removeClass("center"),this.settings.center&&this.$stage.children().eq(this.current()).addClass("center")}}],e.prototype.initializeStage=function(){this.$stage=this.$element.find("."+this.settings.stageClass),this.$stage.length||(this.$element.addClass(this.options.loadingClass),this.$stage=a("<"+this.settings.stageElement+">",{class:this.settings.stageClass}).wrap(a("<div/>",{class:this.settings.stageOuterClass})),this.$element.append(this.$stage.parent()))},e.prototype.initializeItems=function(){var b=this.$element.find(".owl-item");if(b.length)return this._items=b.get().map(function(b){return a(b)}),this._mergers=this._items.map(function(){return 1}),void this.refresh();this.replace(this.$element.children().not(this.$stage.parent())),this.isVisible()?this.refresh():this.invalidate("width"),this.$element.removeClass(this.options.loadingClass).addClass(this.options.loadedClass)},e.prototype.initialize=function(){if(this.enter("initializing"),this.trigger("initialize"),this.$element.toggleClass(this.settings.rtlClass,this.settings.rtl),this.settings.autoWidth&&!this.is("pre-loading")){var a,b,c;a=this.$element.find("img"),b=this.settings.nestedItemSelector?"."+this.settings.nestedItemSelector:d,c=this.$element.children(b).width(),a.length&&c<=0&&this.preloadAutoWidthImages(a)}this.initializeStage(),this.initializeItems(),this.registerEventHandlers(),this.leave("initializing"),this.trigger("initialized")},e.prototype.isVisible=function(){return!this.settings.checkVisibility||this.$element.is(":visible")},e.prototype.setup=function(){var b=this.viewport(),c=this.options.responsive,d=-1,e=null;c?(a.each(c,function(a){a<=b&&a>d&&(d=Number(a))}),e=a.extend({},this.options,c[d]),"function"==typeof e.stagePadding&&(e.stagePadding=e.stagePadding()),delete e.responsive,e.responsiveClass&&this.$element.attr("class",this.$element.attr("class").replace(new RegExp("("+this.options.responsiveClass+"-)\\S+\\s","g"),"$1"+d))):e=a.extend({},this.options),this.trigger("change",{property:{name:"settings",value:e}}),this._breakpoint=d,this.settings=e,this.invalidate("settings"),this.trigger("changed",{property:{name:"settings",value:this.settings}})},e.prototype.optionsLogic=function(){this.settings.autoWidth&&(this.settings.stagePadding=!1,this.settings.merge=!1)},e.prototype.prepare=function(b){var c=this.trigger("prepare",{content:b});return c.data||(c.data=a("<"+this.settings.itemElement+"/>").addClass(this.options.itemClass).append(b)),this.trigger("prepared",{content:c.data}),c.data},e.prototype.update=function(){for(var b=0,c=this._pipe.length,d=a.proxy(function(a){return this[a]},this._invalidated),e={};b<c;)(this._invalidated.all||a.grep(this._pipe[b].filter,d).length>0)&&this._pipe[b].run(e),b++;this._invalidated={},!this.is("valid")&&this.enter("valid")},e.prototype.width=function(a){switch(a=a||e.Width.Default){case e.Width.Inner:case e.Width.Outer:return this._width;default:return this._width-2*this.settings.stagePadding+this.settings.margin}},e.prototype.refresh=function(){this.enter("refreshing"),this.trigger("refresh"),this.setup(),this.optionsLogic(),this.$element.addClass(this.options.refreshClass),this.update(),this.$element.removeClass(this.options.refreshClass),this.leave("refreshing"),this.trigger("refreshed")},e.prototype.onThrottledResize=function(){b.clearTimeout(this.resizeTimer),this.resizeTimer=b.setTimeout(this._handlers.onResize,this.settings.responsiveRefreshRate)},e.prototype.onResize=function(){return!!this._items.length&&(this._width!==this.$element.width()&&(!!this.isVisible()&&(this.enter("resizing"),this.trigger("resize").isDefaultPrevented()?(this.leave("resizing"),!1):(this.invalidate("width"),this.refresh(),this.leave("resizing"),void this.trigger("resized")))))},e.prototype.registerEventHandlers=function(){a.support.transition&&this.$stage.on(a.support.transition.end+".owl.core",a.proxy(this.onTransitionEnd,this)),!1!==this.settings.responsive&&this.on(b,"resize",this._handlers.onThrottledResize),this.settings.mouseDrag&&(this.$element.addClass(this.options.dragClass),this.$stage.on("mousedown.owl.core",a.proxy(this.onDragStart,this)),this.$stage.on("dragstart.owl.core selectstart.owl.core",function(){return!1})),this.settings.touchDrag&&(this.$stage.on("touchstart.owl.core",a.proxy(this.onDragStart,this)),this.$stage.on("touchcancel.owl.core",a.proxy(this.onDragEnd,this)))},e.prototype.onDragStart=function(b){var d=null;3!==b.which&&(a.support.transform?(d=this.$stage.css("transform").replace(/.*\(|\)| /g,"").split(","),d={x:d[16===d.length?12:4],y:d[16===d.length?13:5]}):(d=this.$stage.position(),d={x:this.settings.rtl?d.left+this.$stage.width()-this.width()+this.settings.margin:d.left,y:d.top}),this.is("animating")&&(a.support.transform?this.animate(d.x):this.$stage.stop(),this.invalidate("position")),this.$element.toggleClass(this.options.grabClass,"mousedown"===b.type),this.speed(0),this._drag.time=(new Date).getTime(),this._drag.target=a(b.target),this._drag.stage.start=d,this._drag.stage.current=d,this._drag.pointer=this.pointer(b),a(c).on("mouseup.owl.core touchend.owl.core",a.proxy(this.onDragEnd,this)),a(c).one("mousemove.owl.core touchmove.owl.core",a.proxy(function(b){var d=this.difference(this._drag.pointer,this.pointer(b));a(c).on("mousemove.owl.core touchmove.owl.core",a.proxy(this.onDragMove,this)),Math.abs(d.x)<Math.abs(d.y)&&this.is("valid")||(b.preventDefault(),this.enter("dragging"),this.trigger("drag"))},this)))},e.prototype.onDragMove=function(a){var b=null,c=null,d=null,e=this.difference(this._drag.pointer,this.pointer(a)),f=this.difference(this._drag.stage.start,e);this.is("dragging")&&(a.preventDefault(),this.settings.loop?(b=this.coordinates(this.minimum()),c=this.coordinates(this.maximum()+1)-b,f.x=((f.x-b)%c+c)%c+b):(b=this.settings.rtl?this.coordinates(this.maximum()):this.coordinates(this.minimum()),c=this.settings.rtl?this.coordinates(this.minimum()):this.coordinates(this.maximum()),d=this.settings.pullDrag?-1*e.x/5:0,f.x=Math.max(Math.min(f.x,b+d),c+d)),this._drag.stage.current=f,this.animate(f.x))},e.prototype.onDragEnd=function(b){var d=this.difference(this._drag.pointer,this.pointer(b)),e=this._drag.stage.current,f=d.x>0^this.settings.rtl?"left":"right";a(c).off(".owl.core"),this.$element.removeClass(this.options.grabClass),(0!==d.x&&this.is("dragging")||!this.is("valid"))&&(this.speed(this.settings.dragEndSpeed||this.settings.smartSpeed),this.current(this.closest(e.x,0!==d.x?f:this._drag.direction)),this.invalidate("position"),this.update(),this._drag.direction=f,(Math.abs(d.x)>3||(new Date).getTime()-this._drag.time>300)&&this._drag.target.one("click.owl.core",function(){return!1})),this.is("dragging")&&(this.leave("dragging"),this.trigger("dragged"))},e.prototype.closest=function(b,c){var e=-1,f=30,g=this.width(),h=this.coordinates();return this.settings.freeDrag||a.each(h,a.proxy(function(a,i){return"left"===c&&b>i-f&&b<i+f?e=a:"right"===c&&b>i-g-f&&b<i-g+f?e=a+1:this.op(b,"<",i)&&this.op(b,">",h[a+1]!==d?h[a+1]:i-g)&&(e="left"===c?a+1:a),-1===e},this)),this.settings.loop||(this.op(b,">",h[this.minimum()])?e=b=this.minimum():this.op(b,"<",h[this.maximum()])&&(e=b=this.maximum())),e},e.prototype.animate=function(b){var c=this.speed()>0;this.is("animating")&&this.onTransitionEnd(),c&&(this.enter("animating"),this.trigger("translate")),a.support.transform3d&&a.support.transition?this.$stage.css({transform:"translate3d("+b+"px,0px,0px)",transition:this.speed()/1e3+"s"+(this.settings.slideTransition?" "+this.settings.slideTransition:"")}):c?this.$stage.animate({left:b+"px"},this.speed(),this.settings.fallbackEasing,a.proxy(this.onTransitionEnd,this)):this.$stage.css({left:b+"px"})},e.prototype.is=function(a){return this._states.current[a]&&this._states.current[a]>0},e.prototype.current=function(a){if(a===d)return this._current;if(0===this._items.length)return d;if(a=this.normalize(a),this._current!==a){var b=this.trigger("change",{property:{name:"position",value:a}});b.data!==d&&(a=this.normalize(b.data)),this._current=a,this.invalidate("position"),this.trigger("changed",{property:{name:"position",value:this._current}})}return this._current},e.prototype.invalidate=function(b){return"string"===a.type(b)&&(this._invalidated[b]=!0,this.is("valid")&&this.leave("valid")),a.map(this._invalidated,function(a,b){return b})},e.prototype.reset=function(a){(a=this.normalize(a))!==d&&(this._speed=0,this._current=a,this.suppress(["translate","translated"]),this.animate(this.coordinates(a)),this.release(["translate","translated"]))},e.prototype.normalize=function(a,b){var c=this._items.length,e=b?0:this._clones.length;return!this.isNumeric(a)||c<1?a=d:(a<0||a>=c+e)&&(a=((a-e/2)%c+c)%c+e/2),a},e.prototype.relative=function(a){return a-=this._clones.length/2,this.normalize(a,!0)},e.prototype.maximum=function(a){var b,c,d,e=this.settings,f=this._coordinates.length;if(e.loop)f=this._clones.length/2+this._items.length-1;else if(e.autoWidth||e.merge){if(b=this._items.length)for(c=this._items[--b].width(),d=this.$element.width();b--&&!((c+=this._items[b].width()+this.settings.margin)>d););f=b+1}else f=e.center?this._items.length-1:this._items.length-e.items;return a&&(f-=this._clones.length/2),Math.max(f,0)},e.prototype.minimum=function(a){return a?0:this._clones.length/2},e.prototype.items=function(a){return a===d?this._items.slice():(a=this.normalize(a,!0),this._items[a])},e.prototype.mergers=function(a){return a===d?this._mergers.slice():(a=this.normalize(a,!0),this._mergers[a])},e.prototype.clones=function(b){var c=this._clones.length/2,e=c+this._items.length,f=function(a){return a%2==0?e+a/2:c-(a+1)/2};return b===d?a.map(this._clones,function(a,b){return f(b)}):a.map(this._clones,function(a,c){return a===b?f(c):null})},e.prototype.speed=function(a){return a!==d&&(this._speed=a),this._speed},e.prototype.coordinates=function(b){var c,e=1,f=b-1;return b===d?a.map(this._coordinates,a.proxy(function(a,b){return this.coordinates(b)},this)):(this.settings.center?(this.settings.rtl&&(e=-1,f=b+1),c=this._coordinates[b],c+=(this.width()-c+(this._coordinates[f]||0))/2*e):c=this._coordinates[f]||0,c=Math.ceil(c))},e.prototype.duration=function(a,b,c){return 0===c?0:Math.min(Math.max(Math.abs(b-a),1),6)*Math.abs(c||this.settings.smartSpeed)},e.prototype.to=function(a,b){var c=this.current(),d=null,e=a-this.relative(c),f=(e>0)-(e<0),g=this._items.length,h=this.minimum(),i=this.maximum();this.settings.loop?(!this.settings.rewind&&Math.abs(e)>g/2&&(e+=-1*f*g),a=c+e,(d=((a-h)%g+g)%g+h)!==a&&d-e<=i&&d-e>0&&(c=d-e,a=d,this.reset(c))):this.settings.rewind?(i+=1,a=(a%i+i)%i):a=Math.max(h,Math.min(i,a)),this.speed(this.duration(c,a,b)),this.current(a),this.isVisible()&&this.update()},e.prototype.next=function(a){a=a||!1,this.to(this.relative(this.current())+1,a)},e.prototype.prev=function(a){a=a||!1,this.to(this.relative(this.current())-1,a)},e.prototype.onTransitionEnd=function(a){if(a!==d&&(a.stopPropagation(),(a.target||a.srcElement||a.originalTarget)!==this.$stage.get(0)))return!1;this.leave("animating"),this.trigger("translated")},e.prototype.viewport=function(){var d;return this.options.responsiveBaseElement!==b?d=a(this.options.responsiveBaseElement).width():b.innerWidth?d=b.innerWidth:c.documentElement&&c.documentElement.clientWidth?d=c.documentElement.clientWidth:console.warn("Can not detect viewport width."),d},e.prototype.replace=function(b){this.$stage.empty(),this._items=[],b&&(b=b instanceof jQuery?b:a(b)),this.settings.nestedItemSelector&&(b=b.find("."+this.settings.nestedItemSelector)),b.filter(function(){return 1===this.nodeType}).each(a.proxy(function(a,b){b=this.prepare(b),this.$stage.append(b),this._items.push(b),this._mergers.push(1*b.find("[data-merge]").addBack("[data-merge]").attr("data-merge")||1)},this)),this.reset(this.isNumeric(this.settings.startPosition)?this.settings.startPosition:0),this.invalidate("items")},e.prototype.add=function(b,c){var e=this.relative(this._current);c=c===d?this._items.length:this.normalize(c,!0),b=b instanceof jQuery?b:a(b),this.trigger("add",{content:b,position:c}),b=this.prepare(b),0===this._items.length||c===this._items.length?(0===this._items.length&&this.$stage.append(b),0!==this._items.length&&this._items[c-1].after(b),this._items.push(b),this._mergers.push(1*b.find("[data-merge]").addBack("[data-merge]").attr("data-merge")||1)):(this._items[c].before(b),this._items.splice(c,0,b),this._mergers.splice(c,0,1*b.find("[data-merge]").addBack("[data-merge]").attr("data-merge")||1)),this._items[e]&&this.reset(this._items[e].index()),this.invalidate("items"),this.trigger("added",{content:b,position:c})},e.prototype.remove=function(a){(a=this.normalize(a,!0))!==d&&(this.trigger("remove",{content:this._items[a],position:a}),this._items[a].remove(),this._items.splice(a,1),this._mergers.splice(a,1),this.invalidate("items"),this.trigger("removed",{content:null,position:a}))},e.prototype.preloadAutoWidthImages=function(b){b.each(a.proxy(function(b,c){this.enter("pre-loading"),c=a(c),a(new Image).one("load",a.proxy(function(a){c.attr("src",a.target.src),c.css("opacity",1),this.leave("pre-loading"),!this.is("pre-loading")&&!this.is("initializing")&&this.refresh()},this)).attr("src",c.attr("src")||c.attr("data-src")||c.attr("data-src-retina"))},this))},e.prototype.destroy=function(){this.$element.off(".owl.core"),this.$stage.off(".owl.core"),a(c).off(".owl.core"),!1!==this.settings.responsive&&(b.clearTimeout(this.resizeTimer),this.off(b,"resize",this._handlers.onThrottledResize));for(var d in this._plugins)this._plugins[d].destroy();this.$stage.children(".cloned").remove(),this.$stage.unwrap(),this.$stage.children().contents().unwrap(),this.$stage.children().unwrap(),this.$stage.remove(),this.$element.removeClass(this.options.refreshClass).removeClass(this.options.loadingClass).removeClass(this.options.loadedClass).removeClass(this.options.rtlClass).removeClass(this.options.dragClass).removeClass(this.options.grabClass).attr("class",this.$element.attr("class").replace(new RegExp(this.options.responsiveClass+"-\\S+\\s","g"),"")).removeData("owl.carousel")},e.prototype.op=function(a,b,c){var d=this.settings.rtl;switch(b){case"<":return d?a>c:a<c;case">":return d?a<c:a>c;case">=":return d?a<=c:a>=c;case"<=":return d?a>=c:a<=c}},e.prototype.on=function(a,b,c,d){a.addEventListener?a.addEventListener(b,c,d):a.attachEvent&&a.attachEvent("on"+b,c)},e.prototype.off=function(a,b,c,d){a.removeEventListener?a.removeEventListener(b,c,d):a.detachEvent&&a.detachEvent("on"+b,c)},e.prototype.trigger=function(b,c,d,f,g){var h={item:{count:this._items.length,index:this.current()}},i=a.camelCase(a.grep(["on",b,d],function(a){return a}).join("-").toLowerCase()),j=a.Event([b,"owl",d||"carousel"].join(".").toLowerCase(),a.extend({relatedTarget:this},h,c));return this._supress[b]||(a.each(this._plugins,function(a,b){b.onTrigger&&b.onTrigger(j)}),this.register({type:e.Type.Event,name:b}),this.$element.trigger(j),this.settings&&"function"==typeof this.settings[i]&&this.settings[i].call(this,j)),j},e.prototype.enter=function(b){a.each([b].concat(this._states.tags[b]||[]),a.proxy(function(a,b){this._states.current[b]===d&&(this._states.current[b]=0),this._states.current[b]++},this))},e.prototype.leave=function(b){a.each([b].concat(this._states.tags[b]||[]),a.proxy(function(a,b){this._states.current[b]--},this))},e.prototype.register=function(b){if(b.type===e.Type.Event){if(a.event.special[b.name]||(a.event.special[b.name]={}),!a.event.special[b.name].owl){var c=a.event.special[b.name]._default;a.event.special[b.name]._default=function(a){return!c||!c.apply||a.namespace&&-1!==a.namespace.indexOf("owl")?a.namespace&&a.namespace.indexOf("owl")>-1:c.apply(this,arguments)},a.event.special[b.name].owl=!0}}else b.type===e.Type.State&&(this._states.tags[b.name]?this._states.tags[b.name]=this._states.tags[b.name].concat(b.tags):this._states.tags[b.name]=b.tags,this._states.tags[b.name]=a.grep(this._states.tags[b.name],a.proxy(function(c,d){return a.inArray(c,this._states.tags[b.name])===d},this)))},e.prototype.suppress=function(b){a.each(b,a.proxy(function(a,b){this._supress[b]=!0},this))},e.prototype.release=function(b){a.each(b,a.proxy(function(a,b){delete this._supress[b]},this))},e.prototype.pointer=function(a){var c={x:null,y:null};return a=a.originalEvent||a||b.event,a=a.touches&&a.touches.length?a.touches[0]:a.changedTouches&&a.changedTouches.length?a.changedTouches[0]:a,a.pageX?(c.x=a.pageX,c.y=a.pageY):(c.x=a.clientX,c.y=a.clientY),c},e.prototype.isNumeric=function(a){return!isNaN(parseFloat(a))},e.prototype.difference=function(a,b){return{x:a.x-b.x,y:a.y-b.y}},a.fn.owlCarousel=function(b){var c=Array.prototype.slice.call(arguments,1);return this.each(function(){var d=a(this),f=d.data("owl.carousel");f||(f=new e(this,"object"==typeof b&&b),d.data("owl.carousel",f),a.each(["next","prev","to","destroy","refresh","replace","add","remove"],function(b,c){f.register({type:e.Type.Event,name:c}),f.$element.on(c+".owl.carousel.core",a.proxy(function(a){a.namespace&&a.relatedTarget!==this&&(this.suppress([c]),f[c].apply(this,[].slice.call(arguments,1)),this.release([c]))},f))})),"string"==typeof b&&"_"!==b.charAt(0)&&f[b].apply(f,c)})},a.fn.owlCarousel.Constructor=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this._core=b,this._interval=null,this._visible=null,this._handlers={"initialized.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.autoRefresh&&this.watch()},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this._core.$element.on(this._handlers)};e.Defaults={autoRefresh:!0,autoRefreshInterval:500},e.prototype.watch=function(){this._interval||(this._visible=this._core.isVisible(),this._interval=b.setInterval(a.proxy(this.refresh,this),this._core.settings.autoRefreshInterval))},e.prototype.refresh=function(){this._core.isVisible()!==this._visible&&(this._visible=!this._visible,this._core.$element.toggleClass("owl-hidden",!this._visible),this._visible&&this._core.invalidate("width")&&this._core.refresh())},e.prototype.destroy=function(){var a,c;b.clearInterval(this._interval);for(a in this._handlers)this._core.$element.off(a,this._handlers[a]);for(c in Object.getOwnPropertyNames(this))"function"!=typeof this[c]&&(this[c]=null)},a.fn.owlCarousel.Constructor.Plugins.AutoRefresh=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this._core=b,this._loaded=[],this._handlers={"initialized.owl.carousel change.owl.carousel resized.owl.carousel":a.proxy(function(b){if(b.namespace&&this._core.settings&&this._core.settings.lazyLoad&&(b.property&&"position"==b.property.name||"initialized"==b.type)){var c=this._core.settings,e=c.center&&Math.ceil(c.items/2)||c.items,f=c.center&&-1*e||0,g=(b.property&&b.property.value!==d?b.property.value:this._core.current())+f,h=this._core.clones().length,i=a.proxy(function(a,b){this.load(b)},this);for(c.lazyLoadEager>0&&(e+=c.lazyLoadEager,c.loop&&(g-=c.lazyLoadEager,e++));f++<e;)this.load(h/2+this._core.relative(g)),h&&a.each(this._core.clones(this._core.relative(g)),i),g++}},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this._core.$element.on(this._handlers)};e.Defaults={lazyLoad:!1,lazyLoadEager:0},e.prototype.load=function(c){var d=this._core.$stage.children().eq(c),e=d&&d.find(".owl-lazy");!e||a.inArray(d.get(0),this._loaded)>-1||(e.each(a.proxy(function(c,d){var e,f=a(d),g=b.devicePixelRatio>1&&f.attr("data-src-retina")||f.attr("data-src")||f.attr("data-srcset");this._core.trigger("load",{element:f,url:g},"lazy"),f.is("img")?f.one("load.owl.lazy",a.proxy(function(){f.css("opacity",1),this._core.trigger("loaded",{element:f,url:g},"lazy")},this)).attr("src",g):f.is("source")?f.one("load.owl.lazy",a.proxy(function(){this._core.trigger("loaded",{element:f,url:g},"lazy")},this)).attr("srcset",g):(e=new Image,e.onload=a.proxy(function(){f.css({"background-image":'url("'+g+'")',opacity:"1"}),this._core.trigger("loaded",{element:f,url:g},"lazy")},this),e.src=g)},this)),this._loaded.push(d.get(0)))},e.prototype.destroy=function(){var a,b;for(a in this.handlers)this._core.$element.off(a,this.handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.Lazy=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(c){this._core=c,this._previousHeight=null,this._handlers={"initialized.owl.carousel refreshed.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.autoHeight&&this.update()},this),"changed.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.autoHeight&&"position"===a.property.name&&this.update()},this),"loaded.owl.lazy":a.proxy(function(a){a.namespace&&this._core.settings.autoHeight&&a.element.closest("."+this._core.settings.itemClass).index()===this._core.current()&&this.update()},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this._core.$element.on(this._handlers),this._intervalId=null;var d=this;a(b).on("load",function(){d._core.settings.autoHeight&&d.update()}),a(b).resize(function(){d._core.settings.autoHeight&&(null!=d._intervalId&&clearTimeout(d._intervalId),d._intervalId=setTimeout(function(){d.update()},250))})};e.Defaults={autoHeight:!1,autoHeightClass:"owl-height"},e.prototype.update=function(){var b=this._core._current,c=b+this._core.settings.items,d=this._core.settings.lazyLoad,e=this._core.$stage.children().toArray().slice(b,c),f=[],g=0;a.each(e,function(b,c){f.push(a(c).height())}),g=Math.max.apply(null,f),g<=1&&d&&this._previousHeight&&(g=this._previousHeight),this._previousHeight=g,this._core.$stage.parent().height(g).addClass(this._core.settings.autoHeightClass)},e.prototype.destroy=function(){var a,b;for(a in this._handlers)this._core.$element.off(a,this._handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.AutoHeight=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this._core=b,this._videos={},this._playing=null,this._handlers={"initialized.owl.carousel":a.proxy(function(a){a.namespace&&this._core.register({type:"state",name:"playing",tags:["interacting"]})},this),"resize.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.video&&this.isInFullScreen()&&a.preventDefault()},this),"refreshed.owl.carousel":a.proxy(function(a){a.namespace&&this._core.is("resizing")&&this._core.$stage.find(".cloned .owl-video-frame").remove()},this),"changed.owl.carousel":a.proxy(function(a){a.namespace&&"position"===a.property.name&&this._playing&&this.stop()},this),"prepared.owl.carousel":a.proxy(function(b){if(b.namespace){var c=a(b.content).find(".owl-video");c.length&&(c.css("display","none"),this.fetch(c,a(b.content)))}},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this._core.$element.on(this._handlers),this._core.$element.on("click.owl.video",".owl-video-play-icon",a.proxy(function(a){this.play(a)},this))};e.Defaults={video:!1,videoHeight:!1,videoWidth:!1},e.prototype.fetch=function(a,b){var c=function(){return a.attr("data-vimeo-id")?"vimeo":a.attr("data-vzaar-id")?"vzaar":"youtube"}(),d=a.attr("data-vimeo-id")||a.attr("data-youtube-id")||a.attr("data-vzaar-id"),e=a.attr("data-width")||this._core.settings.videoWidth,f=a.attr("data-height")||this._core.settings.videoHeight,g=a.attr("href");if(!g)throw new Error("Missing video URL.");if(d=g.match(/(http:|https:|)\/\/(player.|www.|app.)?(vimeo\.com|youtu(be\.com|\.be|be\.googleapis\.com|be\-nocookie\.com)|vzaar\.com)\/(video\/|videos\/|embed\/|channels\/.+\/|groups\/.+\/|watch\?v=|v\/)?([A-Za-z0-9._%-]*)(\&\S+)?/),d[3].indexOf("youtu")>-1)c="youtube";else if(d[3].indexOf("vimeo")>-1)c="vimeo";else{if(!(d[3].indexOf("vzaar")>-1))throw new Error("Video URL not supported.");c="vzaar"}d=d[6],this._videos[g]={type:c,id:d,width:e,height:f},b.attr("data-video",g),this.thumbnail(a,this._videos[g])},e.prototype.thumbnail=function(b,c){var d,e,f,g=c.width&&c.height?"width:"+c.width+"px;height:"+c.height+"px;":"",h=b.find("img"),i="src",j="",k=this._core.settings,l=function(c){e='<div class="owl-video-play-icon"></div>',d=k.lazyLoad?a("<div/>",{class:"owl-video-tn "+j,srcType:c}):a("<div/>",{class:"owl-video-tn",style:"opacity:1;background-image:url("+c+")"}),b.after(d),b.after(e)};if(b.wrap(a("<div/>",{class:"owl-video-wrapper",style:g})),this._core.settings.lazyLoad&&(i="data-src",j="owl-lazy"),h.length)return l(h.attr(i)),h.remove(),!1;"youtube"===c.type?(f="//img.youtube.com/vi/"+c.id+"/hqdefault.jpg",l(f)):"vimeo"===c.type?a.ajax({type:"GET",url:"//vimeo.com/api/v2/video/"+c.id+".json",jsonp:"callback",dataType:"jsonp",success:function(a){f=a[0].thumbnail_large,l(f)}}):"vzaar"===c.type&&a.ajax({type:"GET",url:"//vzaar.com/api/videos/"+c.id+".json",jsonp:"callback",dataType:"jsonp",success:function(a){f=a.framegrab_url,l(f)}})},e.prototype.stop=function(){this._core.trigger("stop",null,"video"),this._playing.find(".owl-video-frame").remove(),this._playing.removeClass("owl-video-playing"),this._playing=null,this._core.leave("playing"),this._core.trigger("stopped",null,"video")},e.prototype.play=function(b){var c,d=a(b.target),e=d.closest("."+this._core.settings.itemClass),f=this._videos[e.attr("data-video")],g=f.width||"100%",h=f.height||this._core.$stage.height();this._playing||(this._core.enter("playing"),this._core.trigger("play",null,"video"),e=this._core.items(this._core.relative(e.index())),this._core.reset(e.index()),c=a('<iframe frameborder="0" allowfullscreen mozallowfullscreen webkitAllowFullScreen ></iframe>'),c.attr("height",h),c.attr("width",g),"youtube"===f.type?c.attr("src","//www.youtube.com/embed/"+f.id+"?autoplay=1&rel=0&v="+f.id):"vimeo"===f.type?c.attr("src","//player.vimeo.com/video/"+f.id+"?autoplay=1"):"vzaar"===f.type&&c.attr("src","//view.vzaar.com/"+f.id+"/player?autoplay=true"),a(c).wrap('<div class="owl-video-frame" />').insertAfter(e.find(".owl-video")),this._playing=e.addClass("owl-video-playing"))},e.prototype.isInFullScreen=function(){var b=c.fullscreenElement||c.mozFullScreenElement||c.webkitFullscreenElement;return b&&a(b).parent().hasClass("owl-video-frame")},e.prototype.destroy=function(){var a,b;this._core.$element.off("click.owl.video");for(a in this._handlers)this._core.$element.off(a,this._handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.Video=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this.core=b,this.core.options=a.extend({},e.Defaults,this.core.options),this.swapping=!0,this.previous=d,this.next=d,this.handlers={"change.owl.carousel":a.proxy(function(a){a.namespace&&"position"==a.property.name&&(this.previous=this.core.current(),this.next=a.property.value)},this),"drag.owl.carousel dragged.owl.carousel translated.owl.carousel":a.proxy(function(a){a.namespace&&(this.swapping="translated"==a.type)},this),"translate.owl.carousel":a.proxy(function(a){a.namespace&&this.swapping&&(this.core.options.animateOut||this.core.options.animateIn)&&this.swap()},this)},this.core.$element.on(this.handlers)};e.Defaults={animateOut:!1,
4458animateIn:!1},e.prototype.swap=function(){if(1===this.core.settings.items&&a.support.animation&&a.support.transition){this.core.speed(0);var b,c=a.proxy(this.clear,this),d=this.core.$stage.children().eq(this.previous),e=this.core.$stage.children().eq(this.next),f=this.core.settings.animateIn,g=this.core.settings.animateOut;this.core.current()!==this.previous&&(g&&(b=this.core.coordinates(this.previous)-this.core.coordinates(this.next),d.one(a.support.animation.end,c).css({left:b+"px"}).addClass("animated owl-animated-out").addClass(g)),f&&e.one(a.support.animation.end,c).addClass("animated owl-animated-in").addClass(f))}},e.prototype.clear=function(b){a(b.target).css({left:""}).removeClass("animated owl-animated-out owl-animated-in").removeClass(this.core.settings.animateIn).removeClass(this.core.settings.animateOut),this.core.onTransitionEnd()},e.prototype.destroy=function(){var a,b;for(a in this.handlers)this.core.$element.off(a,this.handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.Animate=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this._core=b,this._call=null,this._time=0,this._timeout=0,this._paused=!0,this._handlers={"changed.owl.carousel":a.proxy(function(a){a.namespace&&"settings"===a.property.name?this._core.settings.autoplay?this.play():this.stop():a.namespace&&"position"===a.property.name&&this._paused&&(this._time=0)},this),"initialized.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.autoplay&&this.play()},this),"play.owl.autoplay":a.proxy(function(a,b,c){a.namespace&&this.play(b,c)},this),"stop.owl.autoplay":a.proxy(function(a){a.namespace&&this.stop()},this),"mouseover.owl.autoplay":a.proxy(function(){this._core.settings.autoplayHoverPause&&this._core.is("rotating")&&this.pause()},this),"mouseleave.owl.autoplay":a.proxy(function(){this._core.settings.autoplayHoverPause&&this._core.is("rotating")&&this.play()},this),"touchstart.owl.core":a.proxy(function(){this._core.settings.autoplayHoverPause&&this._core.is("rotating")&&this.pause()},this),"touchend.owl.core":a.proxy(function(){this._core.settings.autoplayHoverPause&&this.play()},this)},this._core.$element.on(this._handlers),this._core.options=a.extend({},e.Defaults,this._core.options)};e.Defaults={autoplay:!1,autoplayTimeout:5e3,autoplayHoverPause:!1,autoplaySpeed:!1},e.prototype._next=function(d){this._call=b.setTimeout(a.proxy(this._next,this,d),this._timeout*(Math.round(this.read()/this._timeout)+1)-this.read()),this._core.is("interacting")||c.hidden||this._core.next(d||this._core.settings.autoplaySpeed)},e.prototype.read=function(){return(new Date).getTime()-this._time},e.prototype.play=function(c,d){var e;this._core.is("rotating")||this._core.enter("rotating"),c=c||this._core.settings.autoplayTimeout,e=Math.min(this._time%(this._timeout||c),c),this._paused?(this._time=this.read(),this._paused=!1):b.clearTimeout(this._call),this._time+=this.read()%c-e,this._timeout=c,this._call=b.setTimeout(a.proxy(this._next,this,d),c-e)},e.prototype.stop=function(){this._core.is("rotating")&&(this._time=0,this._paused=!0,b.clearTimeout(this._call),this._core.leave("rotating"))},e.prototype.pause=function(){this._core.is("rotating")&&!this._paused&&(this._time=this.read(),this._paused=!0,b.clearTimeout(this._call))},e.prototype.destroy=function(){var a,b;this.stop();for(a in this._handlers)this._core.$element.off(a,this._handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.autoplay=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){"use strict";var e=function(b){this._core=b,this._initialized=!1,this._pages=[],this._controls={},this._templates=[],this.$element=this._core.$element,this._overrides={next:this._core.next,prev:this._core.prev,to:this._core.to}
vendor: 5,569 bytes, line 4458
4458,this._handlers={"prepared.owl.carousel":a.proxy(function(b){b.namespace&&this._core.settings.dotsData&&this._templates.push('<div class="'+this._core.settings.dotClass+'">'+a(b.content).find("[data-dot]").addBack("[data-dot]").attr("data-dot")+"</div>")},this),"added.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.dotsData&&this._templates.splice(a.position,0,this._templates.pop())},this),"remove.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.dotsData&&this._templates.splice(a.position,1)},this),"changed.owl.carousel":a.proxy(function(a){a.namespace&&"position"==a.property.name&&this.draw()},this),"initialized.owl.carousel":a.proxy(function(a){a.namespace&&!this._initialized&&(this._core.trigger("initialize",null,"navigation"),this.initialize(),this.update(),this.draw(),this._initialized=!0,this._core.trigger("initialized",null,"navigation"))},this),"refreshed.owl.carousel":a.proxy(function(a){a.namespace&&this._initialized&&(this._core.trigger("refresh",null,"navigation"),this.update(),this.draw(),this._core.trigger("refreshed",null,"navigation"))},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this.$element.on(this._handlers)};e.Defaults={nav:!1,navText:['<span aria-label="Previous">&#x2039;</span>','<span aria-label="Next">&#x203a;</span>'],navSpeed:!1,navElement:'button type="button" role="presentation"',navContainer:!1,navContainerClass:"owl-nav",navClass:["owl-prev","owl-next"],slideBy:1,dotClass:"owl-dot",dotsClass:"owl-dots",dots:!0,dotsEach:!1,dotsData:!1,dotsSpeed:!1,dotsContainer:!1},e.prototype.initialize=function(){var b,c=this._core.settings;this._controls.$relative=(c.navContainer?a(c.navContainer):a("<div>").addClass(c.navContainerClass).appendTo(this.$element)).addClass("disabled"),this._controls.$previous=a("<"+c.navElement+">").addClass(c.navClass[0]).html(c.navText[0]).prependTo(this._controls.$relative).on("click",a.proxy(function(a){this.prev(c.navSpeed)},this)),this._controls.$next=a("<"+c.navElement+">").addClass(c.navClass[1]).html(c.navText[1]).appendTo(this._controls.$relative).on("click",a.proxy(function(a){this.next(c.navSpeed)},this)),c.dotsData||(this._templates=[a('<button role="button">').addClass(c.dotClass).append(a("<span>")).prop("outerHTML")]),this._controls.$absolute=(c.dotsContainer?a(c.dotsContainer):a("<div>").addClass(c.dotsClass).appendTo(this.$element)).addClass("disabled"),this._controls.$absolute.on("click","button",a.proxy(function(b){var d=a(b.target).parent().is(this._controls.$absolute)?a(b.target).index():a(b.target).parent().index();b.preventDefault(),this.to(d,c.dotsSpeed)},this));for(b in this._overrides)this._core[b]=a.proxy(this[b],this)},e.prototype.destroy=function(){var a,b,c,d,e;e=this._core.settings;for(a in this._handlers)this.$element.off(a,this._handlers[a]);for(b in this._controls)"$relative"===b&&e.navContainer?this._controls[b].html(""):this._controls[b].remove();for(d in this.overides)this._core[d]=this._overrides[d];for(c in Object.getOwnPropertyNames(this))"function"!=typeof this[c]&&(this[c]=null)},e.prototype.update=function(){var a,b,c,d=this._core.clones().length/2,e=d+this._core.items().length,f=this._core.maximum(!0),g=this._core.settings,h=g.center||g.autoWidth||g.dotsData?1:g.dotsEach||g.items;if("page"!==g.slideBy&&(g.slideBy=Math.min(g.slideBy,g.items)),g.dots||"page"==g.slideBy)for(this._pages=[],a=d,b=0,c=0;a<e;a++){if(b>=h||0===b){if(this._pages.push({start:Math.min(f,a-d),end:a-d+h-1}),Math.min(f,a-d)===f)break;b=0,++c}b+=this._core.mergers(this._core.relative(a))}},e.prototype.draw=function(){var b,c=this._core.settings,d=this._core.items().length<=c.items,e=this._core.relative(this._core.current()),f=c.loop||c.rewind;this._controls.$relative.toggleClass("disabled",!c.nav||d),c.nav&&(this._controls.$previous.toggleClass("disabled",!f&&e<=this._core.minimum(!0)),this._controls.$next.toggleClass("disabled",!f&&e>=this._core.maximum(!0))),this._controls.$absolute.toggleClass("disabled",!c.dots||d),c.dots&&(b=this._pages.length-this._controls.$absolute.children().length,c.dotsData&&0!==b?this._controls.$absolute.html(this._templates.join("")):b>0?this._controls.$absolute.append(new Array(b+1).join(this._templates[0])):b<0&&this._controls.$absolute.children().slice(b).remove(),this._controls.$absolute.find(".active").removeClass("active"),this._controls.$absolute.children().eq(a.inArray(this.current(),this._pages)).addClass("active"))},e.prototype.onTrigger=function(b){var c=this._core.settings;b.page={index:a.inArray(this.current(),this._pages),count:this._pages.length,size:c&&(c.center||c.autoWidth||c.dotsData?1:c.dotsEach||c.items)}},e.prototype.current=function(){var b=this._core.relative(this._core.current());return a.grep(this._pages,a.proxy(function(a,c){return a.start<=b&&a.end>=b},this)).pop()},e.prototype.getPosition=function(b){var c,d,e=this._core.settings;return"page"==e.slideBy?(c=a.inArray(this.current(),this._pages),d=this._pages.length,b?++c:--c,c=this._pages[(c%d+d)%d].start):(c=this._core.relative(this._core.current()),d=this._core.items().length,b?c+=e.slideBy:c-=e.slideBy),c},e.prototype.next=function(b){a.proxy(this._overrides.to,this._core)(this.getPosition(!0),b)},e.prototype.prev=function(b){a.proxy(this._overrides.to,this._core)(this.getPosition(!1),b)},e.prototype.to=function(b,c,d){var e;!d&&this._pages.length?(e=this._pages.length,a.proxy(this._overrides.to,this._core)(this._pages[(b%e+e)%e].start,c)):a.proxy(this._overrides.to,this._core)(b,c)},a.fn.owlCarousel.Constructor.Plugins.Navigation=e}(
vendor: 3,160 bytes, lines 4458-4459
4458window.Zepto||window.jQuery,window,document),function(a,b,c,d){"use strict";var e=function(c){this._core=c,this._hashes={},this.$element=this._core.$element,this._handlers={"initialized.owl.carousel":a.proxy(function(c){c.namespace&&"URLHash"===this._core.settings.startPosition&&a(b).trigger("hashchange.owl.navigation")},this),"prepared.owl.carousel":a.proxy(function(b){if(b.namespace){var c=a(b.content).find("[data-hash]").addBack("[data-hash]").attr("data-hash");if(!c)return;this._hashes[c]=b.content}},this),"changed.owl.carousel":a.proxy(function(c){if(c.namespace&&"position"===c.property.name){var d=this._core.items(this._core.relative(this._core.current())),e=a.map(this._hashes,function(a,b){return a===d?b:null}).join();if(!e||b.location.hash.slice(1)===e)return;b.location.hash=e}},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this.$element.on(this._handlers),a(b).on("hashchange.owl.navigation",a.proxy(function(a){var c=b.location.hash.substring(1),e=this._core.$stage.children(),f=this._hashes[c]&&e.index(this._hashes[c]);f!==d&&f!==this._core.current()&&this._core.to(this._core.relative(f),!1,!0)},this))};e.Defaults={URLhashListener:!1},e.prototype.destroy=function(){var c,d;a(b).off("hashchange.owl.navigation");for(c in this._handlers)this._core.$element.off(c,this._handlers[c]);for(d in Object.getOwnPropertyNames(this))"function"!=typeof this[d]&&(this[d]=null)},a.fn.owlCarousel.Constructor.Plugins.Hash=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){function e(b,c){var e=!1,f=b.charAt(0).toUpperCase()+b.slice(1);return a.each((b+" "+h.join(f+" ")+f).split(" "),function(a,b){if(g[b]!==d)return e=!c||b,!1}),e}function f(a){return e(a,!0)}var g=a("<support>").get(0).style,h="Webkit Moz O ms".split(" "),i={transition:{end:{WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd",transition:"transitionend"}},animation:{end:{WebkitAnimation:"webkitAnimationEnd",MozAnimation:"animationend",OAnimation:"oAnimationEnd",animation:"animationend"}}},j={csstransforms:function(){return!!e("transform")},csstransforms3d:function(){return!!e("perspective")},csstransitions:function(){return!!e("transition")},cssanimations:function(){return!!e("animation")}};j.csstransitions()&&(a.support.transition=new String(f("transition")),a.support.transition.end=i.transition.end[a.support.transition]),j.cssanimations()&&(a.support.animation=new String(f("animation")),a.support.animation.end=i.animation.end[a.support.animation]),j.csstransforms()&&(a.support.transform=new String(f("transform")),a.support.transform3d=j.csstransforms3d())}(window.Zepto||window.jQuery,window,document);
4459!function(a){var e={};function t(o){if(e[o])return e[o].exports;var n=e[o]={i:o,l:!1,exports:{}};return a[o].call(n.exports,n,n.exports,t),n.l=!0,n.exports}t.m=a,t.c=e,t.d=function(a,e,o){t.o(a,e)||Object.defineProperty(a,e,{enumerable:!0,get:o})},t.r=function(a){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(a,"__esModule",{value:!0})},t.t=function(a,e){if(1&e&&(a=t(a)),8&e)return a;
4459if(4&e&&"object"==typeof a&&a&&a.__esModule)return a;var o=Object.create(null);if(t.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:a}),2&e&&"string"!=typeof a)for(var n in a)t.d(o,n,function(e){return a[e]}.bind(null,n));return o},t.n=function(a){var e=a&&a.__esModule?function(){return a.default}:function(){return a};return t.d(e,"a",e),e},t.o=function(a,e){return Object.prototype.hasOwnProperty.call(a,e)},t.p="",t(t.s=0)}([function(a,e){var t=jQuery;t("#mobile-toggle-container .hamburger").on("click",(function(){t(this).toggleClass("is-active"),t(".mainnav-container").toggleClass("active")})),t("#mobile-toggle-container .search").on("click",(function(){t("#mobile-search-container").toggleClass("active"),t("#mobile-search-container #form-search input").focus(),t(this).prop("disabled",(function(a,e){return!e}))})),t("#mobile-search-container .closer").on("click",(function(){t("#mobile-search-container").toggleClass("active"),t("#mobile-toggle-container .search").prop("disabled",(function(a,e){return!e}))})),t(".menu.filter .menu-header .filter").on("click",(function(a){t(this).toggleClass("active"),t(this).parents(".menu").find(">ul").toggleClass("active")})),t(".menu.secondary .menu-header .toggle").on("click",(function(a){t(this).toggleClass("active"),t(this).parents(".menu").find(">ul").toggleClass("active")})),t(".widget_product_categories .widget-title").on("click",(function(a){t(this).toggleClass("active"),t(this).next(".product-categories").toggleClass("active")})),t(".menu.secondary > ul .toggle").on("click",(function(a){t(this).toggleClass("active"),t(this).parents(".menu-item").toggleClass("toggled"),t(this).siblings("ul").toggleClass("active")})),t(".form-pager button").on("click",(function(a){a.preventDefault();var e=t(this).parents(".c-cards-poststack"),o=t(e).find(".c-cards-items"),n=t(e).find(".spinner"),s=parseInt(t(this).attr("data-page")),r=t(e).attr("data-pages")?parseInt(t(e).attr("data-pages")):null,i=t(e).attr("data-catid")?parseInt(t(e).attr("data-catid")):null,l=parseInt(t(e).attr("data-posts-per-page")),c=t(e).attr("data-orderby")?t(e).attr("data-orderby"):"ASC",d=t(e).attr("data-order")?t(e).attr("data-order"):"date",u={_wpnonce:ajax_object.ajax_nonce,action:"paam_ajax_handler",page:s,cat:i,posts_per_page:l,post_status:"publish",orderby:c,order:d,offset:s*l-l};
4459t.ajax({url:ajax_object.ajax_url,data:u,context:t(this),beforeSend:function(){t(o).removeClass("animate__fadeIn"),t(o).addClass("animate__fadeOut"),t(n).removeClass("animate__fadeOut d-none"),t(n).addClass("animate__fadeIn d-block")},success:function(a){t(o).html(a),t(o).removeClass("animate__fadeOut"),t(n).removeClass("animate__fadeIn d-block"),t(n).addClass("animate__fadeOut d-none")},complete:function(){t(o).addClass("animate__fadeIn"),t(e).attr("data-page",s),t(e).find("button.next").attr("data-page",s+1),t(e).find("button.previous").attr("data-page",s-1),t(e).find("select").val(s).change(),1===s&&(t(e).find("button.previous").removeClass("d-block").addClass("d-none"),t(e).find("button.next").removeClass("d-none").addClass("d-block")),s>1&&(t(e).find("button.previous").removeClass("d-none").addClass("d-block"),t(e).find("button.next").removeClass("d-none").addClass("d-block")),s>=r&&(t(e).find("button.previous").removeClass("d-none").addClass("d-block"),t(e).find("button.next").removeClass("d-block").addClass("d-none"))}})})),t(".form-pager select").on("change",(function(a){a.preventDefault();var e=t(this).parents(".c-cards-poststack"),o=t(e).find(".c-cards-items"),n=t(e).find(".spinner"),s=parseInt(t(this).val()),r=t(e).attr("data-pages")?parseInt(t(e).attr("data-pages")):null,i=t(e).attr("data-catid")?parseInt(t(e).attr("data-catid")):null,l=parseInt(t(e).attr("data-posts-per-page")),c=t(e).attr("data-orderby")?t(e).attr("data-orderby"):"ASC",d=t(e).attr("data-order")?t(e).attr("data-order"):"date",u={_wpnonce:ajax_object.ajax_nonce,action:"paam_ajax_handler",page:s,cat:i,posts_per_page:l,post_status:"publish",orderby:c,order:d,offset:s*l-l};t.ajax({url:ajax_object.ajax_url,data:u,beforeSend:function(){t(o).removeClass("animate__fadeIn"),t(o).addClass("animate__fadeOut"),t(n).removeClass("animate__fadeOut d-none"),t(n).addClass("animate__fadeIn d-block")},success:function(a){t(o).html(a),t(o).removeClass("animate__fadeOut"),t(n).removeClass("animate__fadeIn d-block"),t(n).addClass("animate__fadeOut d-none")},complete:function(){t(o).addClass("animate__fadeIn"),t(e).find("button.next").attr("data-page",s+1),t(e).find("button.previous").attr("data-page",s-1),1===s&&(t(e).find("button.previous").removeClass("d-block").addClass("d-none"),t(e).find("button.next").removeClass("d-none").addClass("d-block")),s>1&&(t(e).find("button.previous").removeClass("d-none").addClass("d-block"),t(e).find("button.next").removeClass("d-none").addClass("d-block")),s>=r&&(t(e).find("button.previous").removeClass("d-none").addClass("d-block"),t(e).find("button.next").removeClass("d-block").addClass("d-none"))}})})),t(".form-pager-search button").on("click",(function(a){a.preventDefault();var e=t(this).attr("data-page");window.location=e})),t(".form-pager-search select").on("change",(function(a){a.preventDefault();var e=t(this).val();window.location=e})),t(".collapse").collapse({toggle:!1}),t(".c-accordion .btn").on("click",(function(a){t(this).parents(".c-accordion").find(".c-accordion-item.active").removeClass("active"),t(this).hasClass("collapsed")?t(this).parents(".c-accordion-item").addClass("active"):t(this).parents(".c-accordion-item").removeClass("active")})),t(".c-carousel-sponsor .c-carousel-container").owlCarousel({loop:!0,autoplay:!0,autoplayHoverPause:!0,autoplayTimeout:2e3,dotsContainer:".c-carousel-sponsor .c-carousel-dots",margin:30,responsive:{960:{items:4},540:{items:2},0:{items:1}}}),t(".c-carousel-footer .c-carousel-container").owlCarousel({loop:!0,autoplay:!0,autoplayHoverPause:!0,autoplayTimeout:2e3,margin:30,responsive:{960:{items:6},540:{items:4},0:{items:1}}}),t(".c-carousel-gallery .c-carousel-container").owlCarousel({autoplay:!0,autoplayHoverPause:!0,autoplayTimeout:5e3,dotsContainer:".c-carousel-gallery .c-carousel-dots",margin:30,responsive:{960:{items:4},540:{items:2},0:{items:1}}}),t(".c-carousel-main .c-carousel-container").owlCarousel({loop:!0,items:1,autoplay:!0,autoplayHoverPause:!0,autoplayTimeout:5e3,margin:0,dotsContainer:".c-carousel-main .c-carousel-dots"}),t(".c-carousel-events .c-carousel-container").owlCarousel({loop:!1,autoplay:!1,autoplayHoverPause:!0,autoplayTimeout:5e3,margin:0,dotsContainer:".c-carousel-events .c-carousel-dots",responsive:{960:{items:4},540:{items:2},0:{items:1}}})}]);
4460//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vLy4vc3JjL2pzL3NjcmlwdHMuanMiXSwibmFtZXMiOlsiaW5zdGFsbGVkTW9kdWxlcyIsIl9fd2VicGFja19yZXF1aXJlX18iLCJtb2R1bGVJZCIsImV4cG9ydHMiLCJtb2R1bGUiLCJpIiwibCIsIm1vZHVsZXMiLCJjYWxsIiwibSIsImMiLCJkIiwibmFtZSIsImdldHRlciIsIm8iLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImVudW1lcmFibGUiLCJnZXQiLCJyIiwiU3ltYm9sIiwidG9TdHJpbmdUYWciLCJ2YWx1ZSIsInQiLCJtb2RlIiwiX19lc01vZHVsZSIsIm5zIiwiY3JlYXRlIiwia2V5IiwiYmluZCIsIm4iLCJvYmplY3QiLCJwcm9wZXJ0eSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwicCIsInMiLCIkIiwialF1ZXJ5Iiwib24iLCJ0aGlzIiwidG9nZ2xlQ2xhc3MiLCJmb2N1cyIsInByb3AiLCJ2IiwiZXZlbnQiLCJwYXJlbnRzIiwiZmluZCIsIm5leHQiLCJzaWJsaW5ncyIsImUiLCJwcmV2ZW50RGVmYXVsdCIsInBhcmVudF9lbCIsInRhcmdldF9lbCIsImxvYWRlcl9lbCIsInBhZ2UiLCJwYXJzZUludCIsImF0dHIiLCJwYWdlcyIsImNhdF9pZCIsInBvc3RzX3Blcl9wYWdlIiwib3JkZXJfYnkiLCJvcmRlciIsInF1ZXJ5X3BhcmFtcyIsIl93cG5vbmNlIiwiYWpheF9vYmplY3QiLCJhamF4X25vbmNlIiwiYWN0aW9uIiwiY2F0IiwicG9zdF9zdGF0dXMiLCJvcmRlcmJ5Iiwib2Zmc2V0IiwiYWpheCIsInVybCIsImFqYXhfdXJsIiwiZGF0YSIsImNvbn
4460RleHQiLCJiZWZvcmVTZW5kIiwicmVtb3ZlQ2xhc3MiLCJhZGRDbGFzcyIsInN1Y2Nlc3MiLCJyZXNwb25zZSIsImh0bWwiLCJjb21wbGV0ZSIsInZhbCIsImNoYW5nZSIsInN1Ym1pdF92YWwiLCJ3aW5kb3ciLCJsb2NhdGlvbiIsImNvbGxhcHNlIiwidG9nZ2xlIiwiaGFzQ2xhc3MiLCJvd2xDYXJvdXNlbCIsImxvb3AiLCJhdXRvcGxheSIsImF1dG9wbGF5SG92ZXJQYXVzZSIsImF1dG9wbGF5VGltZW91dCIsImRvdHNDb250YWluZXIiLCJtYXJnaW4iLCJyZXNwb25zaXZlIiwiOTYwIiwiaXRlbXMiLCI1NDAiLCIwIl0sIm1hcHBpbmdzIjoiYUFDRSxJQUFJQSxFQUFtQixHQUd2QixTQUFTQyxFQUFvQkMsR0FHNUIsR0FBR0YsRUFBaUJFLEdBQ25CLE9BQU9GLEVBQWlCRSxHQUFVQyxRQUduQyxJQUFJQyxFQUFTSixFQUFpQkUsR0FBWSxDQUN6Q0csRUFBR0gsRUFDSEksR0FBRyxFQUNISCxRQUFTLElBVVYsT0FOQUksRUFBUUwsR0FBVU0sS0FBS0osRUFBT0QsUUFBU0MsRUFBUUEsRUFBT0QsUUFBU0YsR0FHL0RHLEVBQU9FLEdBQUksRUFHSkYsRUFBT0QsUUFLZkYsRUFBb0JRLEVBQUlGLEVBR3hCTixFQUFvQlMsRUFBSVYsRUFHeEJDLEVBQW9CVSxFQUFJLFNBQVNSLEVBQVNTLEVBQU1DLEdBQzNDWixFQUFvQmEsRUFBRVgsRUFBU1MsSUFDbENHLE9BQU9DLGVBQWViLEVBQVNTLEVBQU0sQ0FBRUssWUFBWSxFQUFNQyxJQUFLTCxLQUtoRVosRUFBb0JrQixFQUFJLFNBQVNoQixHQUNYLG9CQUFYaUIsUUFBMEJBLE9BQU9DLGFBQzFDTixPQUFPQyxlQUFlYixFQUFTaUIsT0FBT0MsWUFBYSxDQUFFQyxNQUFPLFdBRTdEUCxPQUFPQyxlQUFlYixFQUFTLGFBQWMsQ0FBRW1CLE9BQU8sS0FRdkRyQixFQUFvQnNCLEVBQUksU0FBU0QsRUFBT0UsR0FFdkMsR0FEVSxFQUFQQSxJQUFVRixFQUFRckIsRUFBb0JxQixJQUMvQixFQUFQRSxFQUFVLE9BQU9GLEVBQ3BCLEdBQVcsRUFBUEUsR0FBOEIsaUJBQVZGLEdBQXNCQSxHQUFTQSxFQUFNRyxXQUFZLE9BQU9ILEVBQ2hGLElBQUlJLEVBQUtYLE9BQU9ZLE9BQU8sTUFHdkIsR0FGQTFCLEVBQW9Ca0IsRUFBRU8sR0FDdEJYLE9BQU9DLGVBQWVVLEVBQUksVUFBVyxDQUFFVCxZQUFZLEVBQU1LLE1BQU9BLElBQ3RELEVBQVBFLEdBQTRCLGlCQUFURixFQUFtQixJQUFJLElBQUlNLEtBQU9OLEVBQU9yQixFQUFvQlUsRUFBRWUsRUFBSUUsRUFBSyxTQUFTQSxHQUFPLE9BQU9OLEVBQU1NLElBQVFDLEtBQUssS0FBTUQsSUFDOUksT0FBT0YsR0FJUnpCLEVBQW9CNkIsRUFBSSxTQUFTMUIsR0FDaEMsSUFBSVMsRUFBU1QsR0FBVUEsRUFBT3FCLFdBQzdCLFdBQXdCLE9BQU9yQixFQUFnQixTQUMvQyxXQUE4QixPQUFPQSxHQUV0QyxPQURBSCxFQUFvQlUsRUFBRUUsRUFBUSxJQUFLQSxHQUM1QkEsR0FJUlosRUFBb0JhLEVBQUksU0FBU2lCLEVBQVFDLEdBQVksT0FBT2pCLE9BQU9rQixVQUFVQyxlQUFlMUIsS0FBS3VCLEVBQVFDLElBR3pHL0IsRUFBb0JrQyxFQUFJLEdBSWpCbEMsRUFBb0JBLEVBQW9CbUMsRUFBSSxHLGdCQ2hGckQsSUFBTUMsRUFBSUMsT0FFVkQsRUFBRSx1Q0FBdUNFLEdBQUcsU0FBUyxXQUVuREYsRUFBRUcsTUFBTUMsWUFBWSxhQUdwQkosRUFBRSxzQkFBc0JJLFlBQVksYUFJdENKLEVBQUUsb0NBQW9DRSxHQUFHLFNBQVMsV0FFaERGLEVBQUUsNEJBQTRCSSxZQUFZLFVBRzFDSixFQUFFLCtDQUErQ0ssUUFHakRMLEVBQUVHLE1BQU1HLEtBQUssWUFBWSxTQUFVdEMsRUFBR3VDLEdBQ3BDLE9BQVFBLFFBS1pQLEVBQUUsb0NBQW9DRSxHQUFHLFNBQVMsV0FDaERGLEVBQUUsNEJBQTRCSSxZQUFZLFVBQzFDSixFQUFFLG9DQUFvQ00sS0FBSyxZQUFZLFNBQVV0QyxFQUFHdUMsR0FDbEUsT0FBUUEsUUFLWlAsRUFBRSxxQ0FBcUNFLEdBQUcsU0FBUyxTQUFVTSxHQUMzRFIsRUFBRUcsTUFBTUMsWUFBWSxVQUNwQkosRUFBRUcsTUFBTU0sUUFBUSxTQUFTQyxLQUFLLE9BQU9OLFlBQVksYUFJbkRKLEVBQUUsd0NBQXdDRSxHQUFHLFNBQVMsU0FBVU0sR0FDOURSLEVBQUVHLE1BQU1DLFlBQVksVUFDcEJKLEVBQUVHLE1BQU1NLFFBQVEsU0FBU0MsS0FBSyxPQUFPTixZQUFZLGFBSW5ESixFQUFFLDRDQUE0Q0UsR0FBRyxTQUFTLFNBQVVNLEdBQ2xFUixFQUFFRyxNQUFNQyxZQUFZLFVBQ3BCSixFQUFFRyxNQUFNUSxLQUFLLHVCQUF1QlAsWUFBWSxhQUlsREosRUFBRSxnQ0FBZ0NFLEdBQUcsU0FBUyxTQUFVTSxHQUN0RFIsRUFBRUcsTUFBTUMsWUFBWSxVQUNwQkosRUFBRUcsTUFBTU0sUUFBUSxjQUFjTCxZQUFZLFdBQzFDSixFQUFFRyxNQUFNUyxTQUFTLE1BQU1SLFlBQVksYUFJckNKLEVBQUUsc0JBQXNCRSxHQUFHLFNBQVMsU0FBVVcsR0FDNUNBLEVBQUVDLGlCQUVGLElBQUlDLEVBQVlmLEVBQUVHLE1BQU1NLFFBQVEsc0JBQzVCTyxFQUFZaEIsRUFBRWUsR0FBV0wsS0FBSyxrQkFDOUJPLEVBQVlqQixFQUFFZSxHQUFXTCxLQUFLLFlBRTlCUSxFQUFPQyxTQUFTbkIsRUFBRUcsTUFBTWlCLEtBQUssY0FDN0JDLEVBQVFyQixFQUFFZSxHQUFXSyxLQUFLLGNBQzFCRCxTQUFTbkIsRUFBRWUsR0FBV0ssS0FBSyxlQUMzQixLQUNBRSxFQUFTdEIsRUFBRWUsR0FBV0ssS0FBSyxjQUMzQkQsU0FBU25CLEVBQUVlLEdBQVdLLEtBQUssZUFDM0IsS0FDQUcsRUFBaUJKLFNBQVNuQixFQUFFZSxHQUFXSyxLQUFLLHdCQUM1Q0ksRUFBV3hCLEVBQUVlLEdBQVdLLEtBQUssZ0JBQzdCcEIsRUFBRWUsR0FBV0ssS0FBSyxnQkFDbEIsTUFDQUssRUFBUXpCLEVBQUVlLEdBQVdLLEtBQUssY0FDMUJwQixFQUFFZSxHQUFXSyxLQUFLLGNBQ2xCLE9BRUFNLEVBQWUsQ0FDakJDLFNBQVVDLFlBQVlDLFdBQ3RCQyxPQUFRLG9CQUNSWixLQUFNQSxFQUNOYSxJQUFLVCxFQUNMQyxlQUFnQkEsRUFDaEJTLFlBQWEsVUFDYkMsUUFBU1QsRUFDVEMsTUFBT0EsRUFDUFMsT0FBUWhCLEVBQU9LLEVBQWlCQSxHQUlsQ3ZCLEVBQUVtQyxLQUFLLENBQ0xDLElBQUtSLFlBQVlTLFNBQ2pCQyxLQUFNWixFQUNOYSxRQUFTdkMsRUFBRUcsTUFDWHFDLFdBQVksV0FFVnhDLEVBQUVnQixHQUFXeUIsWUFBWSxtQkFHekJ6QyxFQUFFZ0IsR0FBVzBCLFNBQVMsb0JBR3RCMUMsRUFBRWlCLEdBQVd3QixZQUFZLDJCQUN6QnpDLEVBQUVpQixHQU
4460FXeUIsU0FBUyw0QkFFeEJDLFFBQVMsU0FBVUMsR0FFakI1QyxFQUFFZ0IsR0FBVzZCLEtBQUtELEdBRWxCNUMsRUFBRWdCLEdBQVd5QixZQUFZLG9CQUd6QnpDLEVBQUVpQixHQUFXd0IsWUFBWSwyQkFDekJ6QyxFQUFFaUIsR0FBV3lCLFNBQVMsNEJBRXhCSSxTQUFVLFdBQ1I5QyxFQUFFZ0IsR0FBVzBCLFNBQVMsbUJBRXRCMUMsRUFBRWUsR0FBV0ssS0FBSyxZQUFhRixHQUcvQmxCLEVBQUVlLEdBQ0NMLEtBQUssZUFDTFUsS0FBSyxZQUFhRixFQUFPLEdBQzVCbEIsRUFBRWUsR0FDQ0wsS0FBSyxtQkFDTFUsS0FBSyxZQUFhRixFQUFPLEdBRzVCbEIsRUFBRWUsR0FBV0wsS0FBSyxVQUFVcUMsSUFBSTdCLEdBQU04QixTQUd6QixJQUFUOUIsSUFFRmxCLEVBQUVlLEdBQ0NMLEtBQUssbUJBQ0wrQixZQUFZLFdBQ1pDLFNBQVMsVUFHWjFDLEVBQUVlLEdBQ0NMLEtBQUssZUFDTCtCLFlBQVksVUFDWkMsU0FBUyxZQUdWeEIsRUFBTyxJQUVUbEIsRUFBRWUsR0FDQ0wsS0FBSyxtQkFDTCtCLFlBQVksVUFDWkMsU0FBUyxXQUdaMUMsRUFBRWUsR0FDQ0wsS0FBSyxlQUNMK0IsWUFBWSxVQUNaQyxTQUFTLFlBR1Z4QixHQUFRRyxJQUVWckIsRUFBRWUsR0FDQ0wsS0FBSyxtQkFDTCtCLFlBQVksVUFDWkMsU0FBUyxXQUdaMUMsRUFBRWUsR0FDQ0wsS0FBSyxlQUNMK0IsWUFBWSxXQUNaQyxTQUFTLGlCQU9wQjFDLEVBQUUsc0JBQXNCRSxHQUFHLFVBQVUsU0FBVVcsR0FDN0NBLEVBQUVDLGlCQUVGLElBQUlDLEVBQVlmLEVBQUVHLE1BQU1NLFFBQVEsc0JBQzVCTyxFQUFZaEIsRUFBRWUsR0FBV0wsS0FBSyxrQkFDOUJPLEVBQVlqQixFQUFFZSxHQUFXTCxLQUFLLFlBRTlCUSxFQUFPQyxTQUFTbkIsRUFBRUcsTUFBTTRDLE9BQ3hCMUIsRUFBUXJCLEVBQUVlLEdBQVdLLEtBQUssY0FDMUJELFNBQVNuQixFQUFFZSxHQUFXSyxLQUFLLGVBQzNCLEtBQ0FFLEVBQVN0QixFQUFFZSxHQUFXSyxLQUFLLGNBQzNCRCxTQUFTbkIsRUFBRWUsR0FBV0ssS0FBSyxlQUMzQixLQUNBRyxFQUFpQkosU0FBU25CLEVBQUVlLEdBQVdLLEtBQUssd0JBQzVDSSxFQUFXeEIsRUFBRWUsR0FBV0ssS0FBSyxnQkFDN0JwQixFQUFFZSxHQUFXSyxLQUFLLGdCQUNsQixNQUNBSyxFQUFRekIsRUFBRWUsR0FBV0ssS0FBSyxjQUMxQnBCLEVBQUVlLEdBQVdLLEtBQUssY0FDbEIsT0FFQU0sRUFBZSxDQUNqQkMsU0FBVUMsWUFBWUMsV0FDdEJDLE9BQVEsb0JBQ1JaLEtBQU1BLEVBQ05hLElBQUtULEVBQ0xDLGVBQWdCQSxFQUNoQlMsWUFBYSxVQUNiQyxRQUFTVCxFQUNUQyxNQUFPQSxFQUNQUyxPQUFRaEIsRUFBT0ssRUFBaUJBLEdBSWxDdkIsRUFBRW1DLEtBQUssQ0FDTEMsSUFBS1IsWUFBWVMsU0FDakJDLEtBQU1aLEVBQ05jLFdBQVksV0FFVnhDLEVBQUVnQixHQUFXeUIsWUFBWSxtQkFDekJ6QyxFQUFFZ0IsR0FBVzBCLFNBQVMsb0JBRXRCMUMsRUFBRWlCLEdBQVd3QixZQUFZLDJCQUN6QnpDLEVBQUVpQixHQUFXeUIsU0FBUyw0QkFFeEJDLFFBQVMsU0FBVUMsR0FFakI1QyxFQUFFZ0IsR0FBVzZCLEtBQUtELEdBQ2xCNUMsRUFBRWdCLEdBQVd5QixZQUFZLG9CQUV6QnpDLEVBQUVpQixHQUFXd0IsWUFBWSwyQkFDekJ6QyxFQUFFaUIsR0FBV3lCLFNBQVMsNEJBRXhCSSxTQUFVLFdBQ1I5QyxFQUFFZ0IsR0FBVzBCLFNBQVMsbUJBR3RCMUMsRUFBRWUsR0FDQ0wsS0FBSyxlQUNMVSxLQUFLLFlBQWFGLEVBQU8sR0FDNUJsQixFQUFFZSxHQUNDTCxLQUFLLG1CQUNMVSxLQUFLLFlBQWFGLEVBQU8sR0FHZixJQUFUQSxJQUVGbEIsRUFBRWUsR0FDQ0wsS0FBSyxtQkFDTCtCLFlBQVksV0FDWkMsU0FBUyxVQUdaMUMsRUFBRWUsR0FDQ0wsS0FBSyxlQUNMK0IsWUFBWSxVQUNaQyxTQUFTLFlBR1Z4QixFQUFPLElBRVRsQixFQUFFZSxHQUNDTCxLQUFLLG1CQUNMK0IsWUFBWSxVQUNaQyxTQUFTLFdBR1oxQyxFQUFFZSxHQUNDTCxLQUFLLGVBQ0wrQixZQUFZLFVBQ1pDLFNBQVMsWUFHVnhCLEdBQVFHLElBRVZyQixFQUFFZSxHQUNDTCxLQUFLLG1CQUNMK0IsWUFBWSxVQUNaQyxTQUFTLFdBR1oxQyxFQUFFZSxHQUNDTCxLQUFLLGVBQ0wrQixZQUFZLFdBQ1pDLFNBQVMsaUJBT3BCMUMsRUFBRSw2QkFBNkJFLEdBQUcsU0FBUyxTQUFVVyxHQUNuREEsRUFBRUMsaUJBRUYsSUFBSW1DLEVBQWFqRCxFQUFFRyxNQUFNaUIsS0FBSyxhQUU5QjhCLE9BQU9DLFNBQVdGLEtBSXBCakQsRUFBRSw2QkFBNkJFLEdBQUcsVUFBVSxTQUFVVyxHQUNwREEsRUFBRUMsaUJBRUYsSUFBSW1DLEVBQWFqRCxFQUFFRyxNQUFNNEMsTUFFekJHLE9BQU9DLFNBQVdGLEtBSXBCakQsRUFBRSxhQUFhb0QsU0FBUyxDQUN0QkMsUUFBUSxJQUlWckQsRUFBRSxxQkFBcUJFLEdBQUcsU0FBUyxTQUFVVyxHQUUzQ2IsRUFBRUcsTUFDQ00sUUFBUSxnQkFDUkMsS0FBSyw0QkFDTCtCLFlBQVksVUFHVnpDLEVBQUVHLE1BQU1tRCxTQUFTLGFBR3BCdEQsRUFBRUcsTUFBTU0sUUFBUSxxQkFBcUJpQyxTQUFTLFVBRjlDMUMsRUFBRUcsTUFBTU0sUUFBUSxxQkFBcUJnQyxZQUFZLGFBUXJEekMsRUFBRSw2Q0FBNkN1RCxZQUFZLENBQ3pEQyxNQUFNLEVBQ05DLFVBQVUsRUFDVkMsb0JBQW9CLEVBQ3BCQyxnQkFBaUIsSUFDakJDLGNBQWUsdUNBQ2ZDLE9BQVEsR0FDUkMsV0FBWSxDQUNWQyxJQUFLLENBQ0hDLE1BQU8sR0FFVEMsSUFBSyxDQUNIRCxNQUFPLEdBRVRFLEVBQUcsQ0FDREYsTUFBTyxNQU1iaEUsRUFBRSw0Q0FBNEN1RCxZQUFZLENBQ3hEQyxNQUFNLEVBQ05DLFVBQVUsRUFDVkMsb0JBQW9CLEVBQ3BCQyxnQkFBaUIsSUFDakJFLE9BQVEsR0FDUkMsV0FBWSxDQUNWQyxJQUFLLENBQ0hDLE1BQU8sR0FFVEMsSUFBSyxDQUNIRCxNQUFPLEdBRVRFLEVBQUcsQ0FDREYsTUFBTyxNQU1iaEUsRUFBRSw2Q0FBNkN1RCxZQUFZLENBQ3pERSxVQUFVLEVBQ1ZDLG9CQUFvQixFQUNwQkMsZ0JBQWlCLElBQ2pCQyxjQUFlLHVDQUNmQyxPQUFRLEdBQ1JDLFdBQVksQ0FDVkMsSUFBSyxDQUNIQyxNQUFPLEdBRVRDLElBQUssQ0FDSEQsTUFBTyxHQUVURSxFQUFHLENBQ0RGLE1BQU8sTUFNYmhFLEVBQUUsMENBQTBDdUQsWUFBWSxDQUN0REMsTUFBTSxFQUNOUSxNQUFPLEVBQ1BQLFVBQVUsRUFDVkMsb0JBQW9CLEVBQ3BCQyxnQkFBaUIsSUFDakJFLE9BQVEsRUFDUkQsY0FBZSxzQ0FJakI1RCxFQUFFLDRDQUE0Q3VELFlBQVksQ0FDeERDLE1BQU0sRUFDTkMsVUFBVSxFQUNWQyxvQkFBb0IsRUFDcEJDLGdCQUFpQixJQUNqQkUsT0FBUSxFQUNSRCxjQUFlLHNDQUNmRSxXQUFZLENBQ1ZDLElBQUssQ0FDSEMsTUFBTyxHQUVUQyxJQUFLLENBQ0hELE1BQU8sR0FFVEUsRUFBRyxDQUNERixNQUFPIiwiZmlsZSI6ImJ1bmRsZS5qcyIsInNvdXJjZXNDb250ZW50IjpbIiBcdC8vIFRoZSBtb2R1bGUgY2FjaGVcbiBcdHZhciBpbnN0YWxsZWRNb2R1bGVzID0ge307XG5cbiBcdC8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG4gXHRmdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cbiBcdFx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG4gXHRcdGlmKGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdKSB7XG4gXHRcdFx0cmV0dXJuIGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdLmV4cG9ydHM7XG4gXHRcdH1cbiBcdFx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcbiBcdFx0dmFyIG1vZHVsZSA9IGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdID0ge1xuIFx0XHRcdGk6IG1vZHVsZUlkLFxuIFx0XHRcdGw6IGZhbHNlLFxuIFx0XHRcdGV4cG9ydHM6IHt9XG4gXHRcdH07XG5cbiBcdFx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG4gXHRcdG1vZHVsZXNbbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG4gXHRcdC8vIEZsYWcgdGhlIG1vZHVsZSBhcyBsb2FkZWRcbiBcdFx0bW9kdWxlLmwgPSB0cnVlO1xuXG4gXHRcdC8vIFJldHVybi
4460B0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG4gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbiBcdH1cblxuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tID0gbW9kdWxlcztcblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGUgY2FjaGVcbiBcdF9fd2VicGFja19yZXF1aXJlX18uYyA9IGluc3RhbGxlZE1vZHVsZXM7XG5cbiBcdC8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb24gZm9yIGhhcm1vbnkgZXhwb3J0c1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kID0gZnVuY3Rpb24oZXhwb3J0cywgbmFtZSwgZ2V0dGVyKSB7XG4gXHRcdGlmKCFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywgbmFtZSkpIHtcbiBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgbmFtZSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGdldHRlciB9KTtcbiBcdFx0fVxuIFx0fTtcblxuIFx0Ly8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0c1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5yID0gZnVuY3Rpb24oZXhwb3J0cykge1xuIFx0XHRpZih0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyAmJiBTeW1ib2wudG9TdHJpbmdUYWcpIHtcbiBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgU3ltYm9sLnRvU3RyaW5nVGFnLCB7IHZhbHVlOiAnTW9kdWxlJyB9KTtcbiBcdFx0fVxuIFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuIFx0fTtcblxuIFx0Ly8gY3JlYXRlIGEgZmFrZSBuYW1lc3BhY2Ugb2JqZWN0XG4gXHQvLyBtb2RlICYgMTogdmFsdWUgaXMgYSBtb2R1bGUgaWQsIHJlcXVpcmUgaXRcbiBcdC8vIG1vZGUgJiAyOiBtZXJnZSBhbGwgcHJvcGVydGllcyBvZiB2YWx1ZSBpbnRvIHRoZSBuc1xuIFx0Ly8gbW9kZSAmIDQ6IHJldHVybiB2YWx1ZSB3aGVuIGFscmVhZHkgbnMgb2JqZWN0XG4gXHQvLyBtb2RlICYgOHwxOiBiZWhhdmUgbGlrZSByZXF1aXJlXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnQgPSBmdW5jdGlvbih2YWx1ZSwgbW9kZSkge1xuIFx0XHRpZihtb2RlICYgMSkgdmFsdWUgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKHZhbHVlKTtcbiBcdFx0aWYobW9kZSAmIDgpIHJldHVybiB2YWx1ZTtcbiBcdFx0aWYoKG1vZGUgJiA0KSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICYmIHZhbHVlLl9fZXNNb2R1bGUpIHJldHVybiB2YWx1ZTtcbiBcdFx0dmFyIG5zID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5yKG5zKTtcbiBcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KG5zLCAnZGVmYXVsdCcsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHZhbHVlIH0pO1xuIFx0XHRpZihtb2RlICYgMiAmJiB0eXBlb2YgdmFsdWUgIT0gJ3N0cmluZycpIGZvcih2YXIga2V5IGluIHZhbHVlKSBfX3dlYnBhY2tfcmVxdWlyZV9fLmQobnMsIGtleSwgZnVuY3Rpb24oa2V5KSB7IHJldHVybiB2YWx1ZVtrZXldOyB9LmJpbmQobnVsbCwga2V5KSk7XG4gXHRcdHJldHVybiBucztcbiBcdH07XG5cbiBcdC8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSBmdW5jdGlvbihtb2R1bGUpIHtcbiBcdFx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0RGVmYXVsdCgpIHsgcmV0dXJuIG1vZHVsZVsnZGVmYXVsdCddOyB9IDpcbiBcdFx0XHRmdW5jdGlvbiBnZXRNb2R1bGVFeHBvcnRzKCkgeyByZXR1cm4gbW9kdWxlOyB9O1xuIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCAnYScsIGdldHRlcik7XG4gXHRcdHJldHVybiBnZXR0ZXI7XG4gXHR9O1xuXG4gXHQvLyBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGxcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubyA9IGZ1bmN0aW9uKG9iamVjdCwgcHJvcGVydHkpIHsgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIHByb3BlcnR5KTsgfTtcblxuIFx0Ly8gX193ZWJwYWNrX3B1YmxpY19wYXRoX19cbiBcdF9fd2VicGFja19yZXF1aXJlX18ucCA9IFwiXCI7XG5cblxuIFx0Ly8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzXG4gXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXyhfX3dlYnBhY2tfcmVxdWlyZV9fLnMgPSAwKTtcbiIsIi8qIGVzbGludC1kaXNhYmxlICovXG4vLyBXb3JrIGFyb3VuZCwgdG8gbWFrZSBqYXZhc2NyaXB0IHVuZGVyc3RhbmQgdGhlICQgY2hhcmFjdGVyIHdoZW4gaXQgcnVucy5cbmNvbnN0ICQgPSBqUXVlcnk7XG4vLyBDb21wb25lbnQgLSBIYW1idXJnZXJcbiQoXCIjbW9iaWxlLXRvZ2dsZS1jb250YWluZXIgLmhhbWJ1cmdlclwiKS5vbihcImNsaWNrXCIsIGZ1bmN0aW9uICgpIHtcbiAgLy8gQXNzaWduIGFjdGl2ZSBjbGFzcyB0byB0b2dnbGVyXG4gICQodGhpcykudG9nZ2xlQ2xhc3MoXCJpcy1hY3RpdmVcIik7XG5cbiAgLy8gQXNzaWduIGFjdGl2ZSBjbGFzcyB0byBjb250YWluZXIgKHNob3dzL2hpZGVzKVxuICAkKFwiLm1haW5uYXYtY29udGFpbmVyXCIpLnRvZ2dsZUNsYXNzKFwiYWN0aXZlXCIpO1xufSk7XG5cbi8vIENvbXBvbmVudCAtIFNlYXJjaCBUb2dnbGVcbiQoXCIjbW9iaWxlLXRvZ2dsZS1jb250YWluZXIgLnNlYXJjaFwiKS5vbihcImNsaWNrXCIsIGZ1bmN0aW9uICgpIHtcbiAgLy8gQXNzaWduIGFjdGl2ZSBjbGFzcyB0byBjb250YWluZXIgKHNob3dzL2hpZGVzKVxuICAkKFwiI21vYmlsZS1zZWFyY2gtY29udGFpbmVyXCIpLnRvZ2dsZUNsYXNzKFwiYWN0aXZlXCIpO1xuXG4gIC8vIFNldCBmb2N1cyB0byBzZWFyY2ggZm9ybVxuICAkKFwiI21vYmlsZS1zZWFyY2gtY29udGFpbmVyICNmb3JtLXNlYXJjaCBpbnB1dFwiKS5mb2N1cygpO1xuXG4gIC8vIERpc2FibGUgc2VhcmNoIHRvZ2dsZSBidXR0b24gKHRoaXMpXG4gICQodGhpcykucHJvcChcImRpc2FibGVkXCIsIGZ1bmN0aW9uIChpLCB2KSB7XG4gICAgcmV0dXJuICF2O1xuICB9KTtcbn0pO1xuXG4vLyBDb21wb25lbnQgLSBTZWFyY2ggQ2xvc2VcbiQoXCIjbW9iaWxlLXNlYXJjaC1jb250YWluZXIgLmNsb3NlclwiKS5vbihcImNsaWNrXCIsIGZ1bmN0aW9uICgpIHtcbiAgJChcIiNtb2JpbGUtc2VhcmNoLWNvbnRhaW5lclwiKS50b2dnbGVDbGFzcyhcImFjdGl2ZVwiKTtcbiAgJChcIiNtb2JpbGUtdG9nZ2xlLWNvbnRhaW5lciAuc2VhcmNoXCIpLnByb3AoXCJkaXNhYmxlZFwiLCBmdW5jdGlvbiAoaSwgdikge1xuICAgIHJldHVybiAhdjtcbiAgfSk7XG59KTtcblxuLy8gQ29tcG9uZW50IC0gTWVudSBmaWx0ZXIgdG9nZ2xlclxuJChcIi5tZW51LmZpbHRlciAubWVudS1oZWFkZXIgLmZpbHRlclwiKS5vbihcImNsaWNrXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAkKHRoaXMpLnRvZ2dsZUNsYXNzKFwiYWN0aXZlXCIpO1xuICAkKHRoaXMpLnBhcmVudHMoXCIubWVudVwiKS5maW5kKFwiPnVsXCIpLnRvZ2dsZUNsYXNzKFwiYWN0aXZlXCIpO1xufSk7XG5cbi8vIENvbXBvbmVudCAtIE1lbnUgc2Vjb25kYXJ5IHRvZ2dsZXJcbiQoXCIubWVudS5zZWNvbmRhcnkgLm1lbnUtaGVhZGVyIC50b2dnbGVcIikub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgJCh0aGlzKS50b2dnbGVDbGFzcyhcImFjdGl2ZVwiKTtcbiAgJCh0aGlzKS5wYXJlbnRzKFwiLm1lbnVcIikuZmluZChcIj51bFwiKS50b2dnbGVDbGFzcyhcImFjdGl2ZVwiKTtcbn0pO1xuXG4vLyBDb21wb25lbnQgLSBXb29Db21tZXJjZSBjYXRlZ29yeSB0b2dnbGVyXG4kKFwiLndpZGdldF9wcm9k
4460dWN0X2NhdGVnb3JpZXMgLndpZGdldC10aXRsZVwiKS5vbihcImNsaWNrXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAkKHRoaXMpLnRvZ2dsZUNsYXNzKFwiYWN0aXZlXCIpO1xuICAkKHRoaXMpLm5leHQoXCIucHJvZHVjdC1jYXRlZ29yaWVzXCIpLnRvZ2dsZUNsYXNzKFwiYWN0aXZlXCIpO1xufSk7XG5cbi8vIENvbXBvbmVudCAtIE1lbnUgc2Vjb25kYXJ5IGNoaWxkcmVuXG4kKFwiLm1lbnUuc2Vjb25kYXJ5ID4gdWwgLnRvZ2dsZVwiKS5vbihcImNsaWNrXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAkKHRoaXMpLnRvZ2dsZUNsYXNzKFwiYWN0aXZlXCIpO1xuICAkKHRoaXMpLnBhcmVudHMoXCIubWVudS1pdGVtXCIpLnRvZ2dsZUNsYXNzKFwidG9nZ2xlZFwiKTtcbiAgJCh0aGlzKS5zaWJsaW5ncyhcInVsXCIpLnRvZ2dsZUNsYXNzKFwiYWN0aXZlXCIpO1xufSk7XG5cbi8vIENvbXBvbmVudCAtIFBvc3QgU3RhY2sgQUpBWCAtIEJ1dHRvblxuJChcIi5mb3JtLXBhZ2VyIGJ1dHRvblwiKS5vbihcImNsaWNrXCIsIGZ1bmN0aW9uIChlKSB7XG4gIGUucHJldmVudERlZmF1bHQoKTtcblxuICB2YXIgcGFyZW50X2VsID0gJCh0aGlzKS5wYXJlbnRzKFwiLmMtY2FyZHMtcG9zdHN0YWNrXCIpO1xuICB2YXIgdGFyZ2V0X2VsID0gJChwYXJlbnRfZWwpLmZpbmQoXCIuYy1jYXJkcy1pdGVtc1wiKTtcbiAgdmFyIGxvYWRlcl9lbCA9ICQocGFyZW50X2VsKS5maW5kKFwiLnNwaW5uZXJcIik7XG5cbiAgdmFyIHBhZ2UgPSBwYXJzZUludCgkKHRoaXMpLmF0dHIoXCJkYXRhLXBhZ2VcIikpO1xuICB2YXIgcGFn
4460ZXMgPSAkKHBhcmVudF9lbCkuYXR0cihcImRhdGEtcGFnZXNcIilcbiAgICA/IHBhcnNlSW50KCQocGFyZW50X2VsKS5hdHRyKFwiZGF0YS1wYWdlc1wiKSlcbiAgICA6IG51bGw7XG4gIHZhciBjYXRfaWQgPSAkKHBhcmVudF9lbCkuYXR0cihcImRhdGEtY2F0aWRcIilcbiAgICA/IHBhcnNlSW50KCQocGFyZW50X2VsKS5hdHRyKFwiZGF0YS1jYXRpZFwiKSlcbiAgICA6IG51bGw7XG4gIHZhciBwb3N0c19wZXJfcGFnZSA9IHBhcnNlSW50KCQocGFyZW50X2VsKS5hdHRyKFwiZGF0YS1wb3N0cy1wZXItcGFnZVwiKSk7XG4gIHZhciBvcmRlcl9ieSA9ICQocGFyZW50X2VsKS5hdHRyKFwiZGF0YS1vcmRlcmJ5XCIpXG4gICAgPyAkKHBhcmVudF9lbCkuYXR0cihcImRhdGEtb3JkZXJieVwiKVxuICAgIDogXCJBU0NcIjtcbiAgdmFyIG9yZGVyID0gJChwYXJlbnRfZWwpLmF0dHIoXCJkYXRhLW9yZGVyXCIpXG4gICAgPyAkKHBhcmVudF9lbCkuYXR0cihcImRhdGEtb3JkZXJcIilcbiAgICA6IFwiZGF0ZVwiO1xuXG4gIHZhciBxdWVyeV9wYXJhbXMgPSB7XG4gICAgX3dwbm9uY2U6IGFqYXhfb2JqZWN0LmFqYXhfbm9uY2UsXG4gICAgYWN0aW9uOiBcInBhYW1fYWpheF9oYW5kbGVyXCIsXG4gICAgcGFnZTogcGFnZSxcbiAgICBjYXQ6IGNhdF9pZCxcbiAgICBwb3N0c19wZXJfcGFnZTogcG9zdHNfcGVyX3BhZ2UsXG4gICAgcG9zdF9zdGF0dXM6IFwicHVibGlzaFwiLFxuICAgIG9yZGVyYnk6IG9yZGVyX2J5LFxuICAgIG9yZGVyOiBvcmRlcixcbiAgICBvZmZzZXQ6IHBhZ2UgKiBwb3N0c19wZXJfcGFnZSAtIHBvc3RzX3Blcl9wYWdlLFxuICB9O1xuXG4gIC8vIEZpcmUgb2ZmIGFqYXggcG9zdCBmdW5jdGlvblxuICAkLmFqYXgoe1xuICAgIHVybDogYWpheF9vYmplY3QuYWpheF91cmwsXG4gICAgZGF0YTogcXVlcnlfcGFyYW1zLFxuICAgIGNvbnRleHQ6ICQodGhpcyksXG4gICAgYmVmb3JlU2VuZDogZnVuY3Rpb24gKCkge1xuICAgICAgLy8gUmVtb3ZlIGFuaW1hdGlvbiBjbGFzc2VzIG9uIGl0ZW1zIChpZiBpdCdzIHRoZXJlKVxuICAgICAgJCh0YXJnZXRfZWwpLnJlbW92ZUNsYXNzKFwiYW5pbWF0ZV9fZmFkZUluXCIpO1xuXG4gICAgICAvLyBBZGQgRmFkZSBvdXQgY2xhc3NcbiAgICAgICQodGFyZ2V0X2VsKS5hZGRDbGFzcyhcImFuaW1hdGVfX2ZhZGVPdXRcIik7XG5cbiAgICAgIC8vIFNob3cgLyBoaWRlIGxvYWRlciBhbmltYXRpb25cbiAgICAgICQobG9hZGVyX2VsKS5yZW1vdmVDbGFzcyhcImFuaW1hdGVfX2ZhZGVPdXQgZC1ub25lXCIpO1xuICAgICAgJChsb2FkZXJfZWwpLmFkZENsYXNzKFwiYW5pbWF0ZV9fZmFkZUluIGQtYmxvY2tcIik7XG4gICAgfSxcbiAgICBzdWNjZXNzOiBmdW5jdGlvbiAocmVzcG9uc2UpIHtcbiAgICAgIC8vIEFwcGVuZCBuZXcgSFRNTFxuICAgICAgJCh0YXJnZXRfZWwpLmh0bWwocmVzcG9uc2UpO1xuXG4gICAgICAkKHRhcmdldF9lbCkucmVtb3ZlQ2xhc3MoXCJhbmltYXRlX19mYWRlT3V0XCIpO1xuXG4gICAgICAvLyBTaG93IC8gaGlkZSBsb2FkZXIgYW5pbWF0aW9uXG4gICAgICAkKGxvYWRlcl9lbCkucmVtb3ZlQ2xhc3MoXCJhbmltYXRlX19mYWRlSW4gZC1ibG9ja1wiKTtcbiAgICAgICQobG9hZGVyX2VsKS5hZGRDbGFzcyhcImFuaW1hdGVfX2ZhZGVPdXQgZC1ub25lXCIpO1xuICAgIH0sXG4gICAgY29tcGxldGU6IGZ1bmN0aW9uICgpIHtcbiAgICAgICQodGFyZ2V0X2VsKS5hZGRDbGFzcyhcImFuaW1hdGVfX2ZhZGVJblwiKTtcblxuICAgICAgJChwYXJlbnRfZWwpLmF0dHIoXCJkYXRhLXBhZ2VcIiwgcGFnZSk7XG5cbiAgICAgIC8vIFVwZGF0ZSBidXR0b24gcGFnZSBhdHRyaWJ1dGVzIG9uIGJ1dHRvbnNcbiAgICAgICQocGFyZW50X2VsKVxuICAgICAgICAuZmluZChcImJ1dHRvbi5uZXh0XCIpXG4gICAgICAgIC5hdHRyKFwiZGF0YS1wYWdlXCIsIHBhZ2UgKyAxKTtcbiAgICAgICQocGFyZW50X2VsKVxuICAgICAgICAuZmluZChcImJ1dHRvbi5wcmV2aW91c1wiKVxuICAgICAgICAuYXR0cihcImRhdGEtcGFnZVwiLCBwYWdlIC0gMSk7XG5cbiAgICAgIC8vIFVwZGF0ZSBzZWxlY3RlZCBpbiBkcm9wIGRvd25cbiAgICAgICQocGFyZW50X2VsKS5maW5kKFwic2VsZWN0XCIpLnZhbChwYWdlKS5jaGFuZ2UoKTtcblxuICAgICAgLy8gU2hvdyAvIGhpZGUgYnV0dG9uc1xuICAgICAgaWYgKHBhZ2UgPT09IDEpIHtcbiAgICAgICAgLy8gUHJldmlvdXMgYnV0dG9uXG4gICAgICAgICQocGFyZW50X2VsKVxuICAgICAgICAgIC5maW5kKFwiYnV0dG9uLnByZXZpb3VzXCIpXG4gICAgICAgICAgLnJlbW92ZUNsYXNzKFwiZC1ibG9ja1wiKVxuICAgICAgICAgIC5hZGRDbGFzcyhcImQtbm9uZVwiKTtcblxuICAgICAgICAvLyBOZXh0IGJ1dHRvblxuICAgICAgICAkKHBhcmVudF9lbClcbiAgICAgICAgICAuZmluZChcImJ1dHRvbi5uZXh0XCIpXG4gICAgICAgICAgLnJlbW92ZUNsYXNzKFwiZC1ub25lXCIpXG4gICAgICAgICAgLmFkZENsYXNzKFwiZC1ibG9ja1wiKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHBhZ2UgPiAxKSB7XG4gICAgICAgIC8vIFByZXZpb3VzIGJ1dHRvblxuICAgICAgICAkKHBhcmVudF9lbClcbiAgICAgICAgICAuZmluZChcImJ1dHRvbi5wcmV2aW91c1wiKVxuICAgICAgICAgIC5yZW1vdmVDbGFzcyhcImQtbm9uZVwiKVxuICAgICAgICAgIC5hZGRDbGFzcyhcImQtYmxvY2tcIik7XG5cbiAgICAgICAgLy8gTmV4dCBidXR0b25cbiAgICAgICAgJChwYXJlbnRfZWwpXG4gICAgICAgICAgLmZpbmQoXCJidXR0b24ubmV4dFwiKVxuICAgICAgICAgIC5yZW1vdmVDbGFzcyhcImQtbm9uZVwiKVxuICAgICAgICAgIC5hZGRDbGFzcyhcImQtYmxvY2tcIik7XG4gICAgICB9XG5cbiAgICAgIGlmIChwYWdlID49IHBhZ2VzKSB7XG4gICAgICAgIC8vIFByZXZpb3VzIGJ1dHRvblxuICAgICAgICAkKHBhcmVudF9lbClcbiAgICAgICAgICAuZmluZChcImJ1dHRvbi5wcmV2aW91c1wiKVxuICAgICAgICAgIC5yZW1vdmVDbGFzcyhcImQtbm9uZVwiKVxuICAgICAgICAgIC5hZGRDbGFzcyhcImQtYmxvY2tcIik7XG5cbiAgICAgICAgLy8gTmV4dCBidXR0b25cbiAgICAgICAgJChwYXJlbnRfZWwpXG4gICAgICAgICAgLmZpbmQoXCJidXR0b24ubmV4dFwiKVxuICAgICAgICAgIC5yZW1vdmVDbGFzcyhcImQtYmxvY2tcIilcbiAgICAgICAgICAuYWRkQ2xhc3MoXCJkLW5vbmVcIik7XG4gICAgICB9XG4gICAgfSxcbiAgfSk7XG59KTtcblxuLy8gQ29tcG9uZW50IC0gUG9zdCBTdGFjayBBSkFYIC0gU2VsZWN0XG4kKFwiLmZvcm0tcGFn
4460ZXIgc2VsZWN0XCIpLm9uKFwiY2hhbmdlXCIsIGZ1bmN0aW9uIChlKSB7XG4gIGUucHJldmVudERlZmF1bHQoKTtcblxuICB2YXIgcGFyZW50X2VsID0gJCh0aGlzKS5wYXJlbnRzKFwiLmMtY2FyZHMtcG9zdHN0YWNrXCIpO1xuICB2YXIgdGFyZ2V0X2VsID0gJChwYXJlbnRfZWwpLmZpbmQoXCIuYy1jYXJkcy1pdGVtc1wiKTtcbiAgdmFyIGxvYWRlcl9lbCA9ICQocGFyZW50X2VsKS5maW5kKFwiLnNwaW5uZXJcIik7XG5cbiAgdmFyIHBhZ2UgPSBwYXJzZUludCgkKHRoaXMpLnZhbCgpKTtcbiAgdmFyIHBhZ2VzID0gJChwYXJlbnRfZWwpLmF0dHIoXCJkYXRhLXBhZ2VzXCIpXG4gICAgPyBwYXJzZUludCgkKHBhcmVudF9lbCkuYXR0cihcImRhdGEtcGFnZXNcIikpXG4gICAgOiBudWxsO1xuICB2YXIgY2F0X2lkID0gJChwYXJlbnRfZWwpLmF0dHIoXCJkYXRhLWNhdGlkXCIpXG4gICAgPyBwYXJzZUludCgkKHBhcmVudF9lbCkuYXR0cihcImRhdGEtY2F0aWRcIikpXG4gICAgOiBudWxsO1xuICB2YXIgcG9zdHNfcGVyX3BhZ2UgPSBwYXJzZUludCgkKHBhcmVudF9lbCkuYXR0cihcImRhdGEtcG9zdHMtcGVyLXBhZ2VcIikpO1xuICB2YXIgb3JkZXJfYnkgPSAkKHBhcmVudF9lbCkuYXR0cihcImRhdGEtb3JkZXJieVwiKVxuICAgID8gJChwYXJlbnRfZWwpLmF0dHIoXCJkYXRhLW9yZGVyYnlcIilcbiAgICA6IFwiQVNDXCI7XG4gIHZhciBvcmRlciA9ICQocGFyZW50X2VsKS5hdHRyKFwiZGF0YS1vcmRlclwiKVxuICAgID8gJChwYXJlbnRfZWwpLmF0dHIoXCJkYXRhLW9yZGVyXCIpXG4gICAgOiBcImRhdGVcIjtcblxuICB2YXIgcXVlcnlfcGFyYW1zID0ge1xuICAgIF93cG5vbmNlOiBhamF4X29iamVjdC5hamF4X25vbmNlLFxuICAgIGFjdGlvbjogXCJwYWFtX2FqYXhfaGFuZGxlclwiLFxuICAgIHBhZ2U6IHBhZ2UsXG4gICAgY2F0OiBjYXRfaWQsXG4gICAgcG9zdHNfcGVyX3BhZ2U6IHBvc3RzX3Blcl9wYWdlLFxuICAgIHBvc3Rfc3RhdHVzOiBcInB1Ymxpc2hcIixcbiAgICBvcmRlcmJ5OiBvcmRlcl9ieSxcbiAgICBvcmRlcjogb3JkZXIsXG4gICAgb2Zmc2V0OiBwYWdlICogcG9zdHNfcGVyX3BhZ2UgLSBwb3N0c19wZXJfcGFnZSxcbiAgfTtcblxuICAvLyBGaXJlIG9mZiBhamF4IHBvc3QgZnVuY3Rpb25cbiAgJC5hamF4KHtcbiAgICB1cmw6IGFqYXhfb2JqZWN0LmFqYXhfdXJsLFxuICAgIGRhdGE6IHF1ZXJ5X3BhcmFtcyxcbiAgICBiZWZvcmVTZW5kOiBmdW5jdGlvbiAoKSB7XG4gICAgICAvLyBSZW1vdmUgYW5pbWF0aW9uIGNsYXNzZXMgb24gaXRlbXNcbiAgICAgICQodGFyZ2V0X2VsKS5yZW1vdmVDbGFzcyhcImFuaW1hdGVfX2ZhZGVJblwiKTtcbiAgICAgICQodGFyZ2V0X2VsKS5hZGRDbGFzcyhcImFuaW1hdGVfX2ZhZGVPdXRcIik7XG5cbiAgICAgICQobG9hZGVyX2VsKS5yZW1vdmVDbGFzcyhcImFuaW1hdGVfX2ZhZGVPdXQgZC1ub25lXCIpO1xuICAgICAgJChsb2FkZXJfZWwpLmFkZENsYXNzKFwiYW5pbWF0ZV9fZmFkZUluIGQtYmxvY2tcIik7XG4gICAgfSxcbiAgICBzdWNjZXNzOiBmdW5jdGlvbiAocmVzcG9uc2UpIHtcbiAgICAgIC8vIEFwcGVuZCBuZXcgSFRNTFxuICAgICAgJCh0YXJnZXRfZWwpLmh0bWwocmVzcG9uc2UpO1xuICAgICAgJCh0YXJnZXRfZWwpLnJlbW92ZUNsYXNzKFwiYW5pbWF0ZV9fZmFkZU91dFwiKTtcblxuICAgICAgJChsb2FkZXJfZWwpLnJlbW92ZUNsYXNzKFwiYW5pbWF0ZV9fZmFkZUluIGQtYmxvY2tcIik7XG4gICAgICAkKGxvYWRlcl9lbCkuYWRkQ2xhc3MoXCJhbmltYXRlX19mYWRlT3V0IGQtbm9uZVwiKTtcbiAgICB9LFxuICAgIGNvbXBsZXRlOiBmdW5jdGlvbiAoKSB7XG4gICAgICAkKHRhcmdldF9lbCkuYWRkQ2xhc3MoXCJhbmltYXRlX19mYWRlSW5cIik7XG5cbiAgICAgIC8vIHVwZGF0ZSB0aGUgZGF0YS1wYWdlIGF0dHJpYnV0ZSBvbiBidXR0b25zXG4gICAgICAkKHBhcmVudF9lbClcbiAgICAgICAgLmZpbmQoXCJidXR0b24ubmV4dFwiKVxuICAgICAgICAuYXR0cihcImRhdGEtcGFnZVwiLCBwYWdlICsgMSk7XG4gICAgICAkKHBhcmVudF9lbClcbiAgICAgICAgLmZpbmQoXCJidXR0b24ucHJldmlvdXNcIilcbiAgICAgICAgLmF0dHIoXCJkYXRhLXBhZ2VcIiwgcGFnZSAtIDEpO1xuXG4gICAgICAvLyBTaG93IC8gaGlkZSBidXR0b25zXG4gICAgICBpZiAocGFnZSA9PT0gMSkge1xuICAgICAgICAvLyBQcmV2aW91cyBidXR0b25cbiAgICAgICAgJChwYXJlbnRfZWwpXG4gICAgICAgICAgLmZpbmQoXCJidXR0b24ucHJldmlvdXNcIilcbiAgICAgICAgICAucmVtb3ZlQ2xhc3MoXCJkLWJsb2NrXCIpXG4gICAgICAgICAgLmFkZENsYXNzKFwiZC1ub25lXCIpO1xuXG4gICAgICAgIC8vIE5leHQgYnV0dG9uXG4gICAgICAgICQocGFyZW50X2VsKVxuICAgICAgICAgIC5maW5kKFwiYnV0dG9uLm5leHRcIilcbiAgICAgICAgICAucmVtb3ZlQ2xhc3MoXCJkLW5vbmVcIilcbiAgICAgICAgICAuYWRkQ2xhc3MoXCJkLWJsb2NrXCIpO1xuICAgICAgfVxuXG4gICAgICBpZiAocGFnZSA+IDEpIHtcbiAgICAgICAgLy8gUHJldmlvdXMgYnV0dG9uXG4gICAgICAgICQocGFyZW50X2VsKVxuICAgICAgICAgIC5maW5kKFwiYnV0dG9uLnByZXZpb3VzXCIpXG4gICAgICAgICAgLnJlbW92ZUNsYXNzKFwiZC1ub25lXCIpXG4gICAgICAgICAgLmFkZENsYXNzKFwiZC1ibG9ja1wiKTtcblxuICAgICAgICAvLyBOZXh0IGJ1dHRvblxuICAgICAgICAkKHBhcmVudF9lbClcbiAgICAgICAgICAuZmluZChcImJ1dHRvbi5uZXh0XCIpXG4gICAgICAgICAgLnJlbW92ZUNsYXNzKFwiZC1ub25lXCIpXG4gICAgICAgICAgLmFkZENsYXNzKFwiZC1ibG9ja1wiKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHBhZ2UgPj0gcGFnZXMpIHtcbiAgICAgICAgLy8gUHJldmlvdXMgYnV0dG9uXG4gICAgICAgICQocGFyZW50X2VsKVxuICAgICAgICAgIC5maW5kKFwiYnV0dG9uLnByZXZpb3VzXCIpXG4gICAgICAgICAgLnJlbW92ZUNsYXNzKFwiZC1ub25lXCIpXG4gICAgICAgICAgLmFkZENsYXNzKFwiZC1ibG9ja1wiKTtcblxuICAgICAgICAvLyBOZXh0IGJ1dHRvblxuICAgICAgICAkKHBhcmVudF9lbClcbiAgICAgICAgICAuZmluZChcImJ1dHRvbi5uZXh0XCIpXG4gICAgICAgICAgLnJlbW92ZUNsYXNzKFwiZC1ibG9ja1wiKVxuICAgICAgICAgIC5hZGRDbGFzcyhcImQtbm9uZVwiKTtcbiAgICAgIH1cbiAgICB9LFxuICB9KTtcbn0pO1xuXG4vLyBDb21wb25lbnQgLSBTZWFyY2ggUGFnZXIgLSBCdXR0b25zXG4kKFwiLmZvcm0tcGFn
4460ZXItc2VhcmNoIGJ1dHRvblwiKS5vbihcImNsaWNrXCIsIGZ1bmN0aW9uIChlKSB7XG4gIGUucHJldmVudERlZmF1bHQoKTtcblxuICB2YXIgc3VibWl0X3ZhbCA9ICQodGhpcykuYXR0cihcImRhdGEtcGFnZVwiKTtcblxuICB3aW5kb3cubG9jYXRpb24gPSBzdWJtaXRfdmFsO1xufSk7XG5cbi8vIENvbXBvbmVudCAtIFNlYXJjaCBQYWdlciAtIFNlbGVjdFxuJChcIi5mb3JtLXBhZ2VyLXNlYXJjaCBzZWxlY3RcIikub24oXCJjaGFuZ2VcIiwgZnVuY3Rpb24gKGUpIHtcbiAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gIHZhciBzdWJtaXRfdmFsID0gJCh0aGlzKS52YWwoKTtcblxuICB3aW5kb3cubG9jYXRpb24gPSBzdWJtaXRfdmFsO1xufSk7XG5cbi8vIENvbXBvbmVudCAtIEFjY29yZGlvblxuJChcIi5jb2xsYXBzZVwiKS5jb2xsYXBzZSh7XG4gIHRvZ2dsZTogZmFsc2UsXG59KTtcblxuLy8gQ29tcG9uZW50IC0gQWNjb3JkaW9uXG4kKFwiLmMtYWNjb3JkaW9uIC5idG5cIikub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoZSkge1xuICAvLyBGaW5kIGV4aXN0aW5nIGFjdGl2ZSBpdGVtIGFuZCByZW1vdmUgYWN0aXZlIGNsYXNzXG4gICQodGhpcylcbiAgICAucGFyZW50cyhcIi5jLWFjY29yZGlvblwiKVxuICAgIC5maW5kKFwiLmMtYWNjb3JkaW9uLWl0ZW0uYWN0aXZlXCIpXG4gICAgLnJlbW92ZUNsYXNzKFwiYWN0aXZlXCIpO1xuXG4gIC8vIElmIHRoZSBlbGVtZW50IGNsaWNrZWQgaXMgdGhlIGN1cnJlbnQgaXRlbSAoY29sbGFwc2VkKSwgcmVtb3ZlIGFjdGl2ZVxuICBpZiAoISQodGhpcykuaGFzQ2xhc3MoXCJjb2xsYXBzZWRcIikpIHtcbiAgICAkKHRoaXMpLnBhcmVudHMoXCIuYy1hY2NvcmRpb24taXRlbVwiKS5yZW1vdmVDbGFzcyhcImFjdGl2ZVwiKTtcbiAgfSBlbHNlIHtcbiAgICAkKHRoaXMpLnBhcmVudHMoXCIuYy1hY2NvcmRpb24taXRlbVwiKS5hZGRDbGFzcyhcImFjdGl2ZVwiKTtcbiAgfVxufSk7XG5cbi8vIE93bCBDYXJvdXNlbFxuLy8gQ2Fyb3VzZWwgLSBTcG9uc29yc1xuJChcIi5jLWNhcm91c2VsLXNwb25zb3IgLmMtY2Fyb3VzZWwtY29udGFpbmVyXCIpLm93bENhcm91c2VsKHtcbiAgbG9vcDogdHJ1ZSxcbiAgYXV0b3BsYXk6IHRydWUsXG4gIGF1dG9wbGF5SG92ZXJQYXVzZTogdHJ1ZSxcbiAgYXV0b3BsYXlUaW1lb3V0OiAyMDAwLFxuICBkb3RzQ29udGFpbmVyOiBcIi5jLWNhcm91c2VsLXNwb25zb3IgLmMtY2Fyb3VzZWwtZG90c1wiLFxuICBtYXJnaW46IDMwLFxuICByZXNwb25zaXZlOiB7XG4gICAgOTYwOiB7XG4gICAgICBpdGVtczogNCxcbiAgICB9LFxuICAgIDU0MDoge1xuICAgICAgaXRlbXM6IDIsXG4gICAgfSxcbiAgICAwOiB7XG4gICAgICBpdGVtczogMSxcbiAgICB9LFxuICB9LFxufSk7XG5cbi8vIENhcm91c2VsIC0gRm9vdGVyXG4kKFwiLmMtY2Fyb3VzZWwtZm9vdGVyIC5jLWNhcm91c2VsLWNvbnRhaW5lclwiKS5vd2xDYXJvdXNlbCh7XG4gIGxvb3A6IHRydWUsXG4gIGF1dG9wbGF5OiB0cnVlLFxuICBhdXRvcGxheUhvdmVyUGF1c2U6IHRydWUsXG4gIGF1dG9wbGF5VGltZW91dDogMjAwMCxcbiAgbWFyZ2luOiAzMCxcbiAgcmVzcG9uc2l2ZToge1xuICAgIDk2MDoge1xuICAgICAgaXRlbXM6IDYsXG4gICAgfSxcbiAgICA1NDA6IHtcbiAgICAgIGl0ZW1zOiA0LFxuICAgIH0sXG4gICAgMDoge1xuICAgICAgaXRlbXM6IDEsXG4gICAgfSxcbiAgfSxcbn0pO1xuXG4vLyBDYXJvdXNlbCAtIEdhbGxlcnlcbiQoXCIuYy1jYXJvdXNlbC1nYWxsZXJ5IC5jLWNhcm91c2VsLWNvbnRhaW5lclwiKS5vd2xDYXJvdXNlbCh7XG4gIGF1dG9wbGF5OiB0cnVlLFxuICBhdXRvcGxheUhvdmVyUGF1c2U6IHRydWUsXG4gIGF1dG9wbGF5VGltZW91dDogNTAwMCxcbiAgZG90c0NvbnRhaW5lcjogXCIuYy1jYXJvdXNlbC1nYWxsZXJ5IC5jLWNhcm91c2VsLWRvdHNcIixcbiAgbWFyZ2luOiAzMCxcbiAgcmVzcG9uc2l2ZToge1xuICAgIDk2MDoge1xuICAgICAgaXRlbXM6IDQsXG4gICAgfSxcbiAgICA1NDA6IHtcbiAgICAgIGl0ZW1zOiAyLFxuICAgIH0sXG4gICAgMDoge1xuICAgICAgaXRlbXM6IDEsXG4gICAgfSxcbiAgfSxcbn0pO1xuXG4vLyBDYXJvdXNlbCAtIE1haW5cbiQoXCIuYy1jYXJvdXNlbC1tYWluIC5jLWNhcm91c2VsLWNvbnRhaW5lclwiKS5vd2xDYXJvdXNlbCh7XG4gIGxvb3A6IHRydWUsXG4gIGl0ZW1zOiAxLFxuICBhdXRvcGxheTogdHJ1ZSxcbiAgYXV0b3BsYXlIb3ZlclBhdXNlOiB0cnVlLFxuICBhdXRvcGxheVRpbWVvdXQ6IDUwMDAsXG4gIG1hcmdpbjogMCxcbiAgZG90c0NvbnRhaW5lcjogXCIuYy1jYXJvdXNlbC1tYWluIC5jLWNhcm91c2VsLWRvdHNcIixcbn0pO1xuXG4vLyBDYXJvdXNlbCAtIEV2ZW50c1xuJChcIi5jLWNhcm91c2VsLWV2ZW50cyAuYy1jYXJvdXNlbC1jb250YWluZXJcIikub3dsQ2Fyb3VzZWwoe1xuICBsb29wOiBmYWxzZSxcbiAgYXV0b3BsYXk6IGZhbHNlLFxuICBhdXRvcGxheUhvdmVyUGF1c2U6IHRydWUsXG4gIGF1dG9wbGF5VGltZW91dDogNTAwMCxcbiAgbWFyZ2luOiAwLFxuICBkb3RzQ29udGFpbmVyOiBcIi5jLWNhcm91c2VsLWV2ZW50cyAuYy1jYXJvdXNlbC1kb3RzXCIsXG4gIHJlc3BvbnNpdmU6IHtcbiAgICA5NjA6IHtcbiAgICAgIGl0ZW1zOiA0LFxuICAgIH0sXG4gICAgNTQwOiB7XG4gICAgICBpdGVtczogMixcbiAgICB9LFxuICAgIDA6IHtcbiAgICAgIGl0ZW1zOiAxLFxuICAgIH0sXG4gIH0sXG59KTtcbiJdLCJzb3VyY2VSb290IjoiIn0=

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.