PageSourceSearch

https://celona.io/assets/js/main.min.js?mt=1786505257

js celona.io collected 2026-09-24 09:37:03 UTC 1,444,850 bytes, 31,593 lines download raw bytes

vendor: 1,601 bytes, lines 1-32
1(() => {
2  var __create = Object.create;
3  var __defProp = Object.defineProperty;
4  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5  var __getOwnPropNames = Object.getOwnPropertyNames;
6  var __getProtoOf = Object.getPrototypeOf;
7  var __hasOwnProp = Object.prototype.hasOwnProperty;
8  var __esm = (fn, res) => function __init() {
9    return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
10  };
11  var __commonJS = (cb, mod) => function __require() {
12    return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
13  };
14  var __copyProps = (to, from, except, desc) => {
15    if (from && typeof from === "object" || typeof from === "function") {
16      for (let key of __getOwnPropNames(from))
17        if (!__hasOwnProp.call(to, key) && key !== except)
18          __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
19    }
20    return to;
21  };
22  var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
23    // If the importer is in node compatibility mode or this is not an ESM
24    // file that has been converted to a CommonJS file using a Babel-
25    // compatible transform (i.e. "__esModule" has not been set), then set
26    // "default" to the CommonJS "module.exports" for node compatibility.
27    isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
28    mod
29  ));
30  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
31
32  
vendor: 60,437 bytes, lines 32-1406
32// node_modules/@popperjs/core/dist/cjs/popper.js
33  var require_popper = __commonJS({
34    "node_modules/@popperjs/core/dist/cjs/popper.js"(exports) {
35      "use strict";
36      Object.defineProperty(exports, "__esModule", { value: true });
37      function getWindow(node) {
38        if (node == null) {
39          return window;
40        }
41        if (node.toString() !== "[object Window]") {
42          var ownerDocument = node.ownerDocument;
43          return ownerDocument ? ownerDocument.defaultView || window : window;
44        }
45        return node;
46      }
47      function isElement(node) {
48        var OwnElement = getWindow(node).Element;
49        return node instanceof OwnElement || node instanceof Element;
50      }
51      function isHTMLElement(node) {
52        var OwnElement = getWindow(node).HTMLElement;
53        return node instanceof OwnElement || node instanceof HTMLElement;
54      }
55      function isShadowRoot(node) {
56        if (typeof ShadowRoot === "undefined") {
57          return false;
58        }
59        var OwnElement = getWindow(node).ShadowRoot;
60        return node instanceof OwnElement || node instanceof ShadowRoot;
61      }
62      var max = Math.max;
63      var min = Math.min;
64      var round = Math.round;
65      function getUAString() {
66        var uaData = navigator.userAgentData;
67        if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) {
68          return uaData.brands.map(function(item) {
69            return item.brand + "/" + item.version;
70          }).join(" ");
71        }
72        return navigator.userAgent;
73      }
74      function isLayoutViewport() {
75        return !/^((?!chrome|android).)*safari/i.test(getUAString());
76      }
77      function getBoundingClientRect(element, includeScale, isFixedStrategy) {
78        if (includeScale === void 0) {
79          includeScale = false;
80        }
81        if (isFixedStrategy === void 0) {
82          isFixedStrategy = false;
83        }
84        var clientRect = element.getBoundingClientRect();
85        var scaleX = 1;
86        var scaleY = 1;
87        if (includeScale && isHTMLElement(element)) {
88          scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;
89          scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;
90        }
91        var _ref = isElement(element) ? getWindow(element) : window, visualViewport = _ref.visualViewport;
92        var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;
93        var x2 = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;
94        var y3 = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;
95        var width = clientRect.width / scaleX;
96        var height = clientRect.height / scaleY;
97        return {
98          width,
99          height,
100          top: y3,
101          right: x2 + width,
102          bottom: y3 + height,
103          left: x2,
104          x: x2,
105          y: y3
106        };
107      }
108      function getWindowScroll(node) {
109        var win = getWindow(node);
110        var scrollLeft = win.pageXOffset;
111        var scrollTop = win.pageYOffset;
112        return {
113          scrollLeft,
114          scrollTop
115        };
116      }
117      function getHTMLElementScroll(element) {
118        return {
119          scrollLeft: element.scrollLeft,
120          scrollTop: element.scrollTop
121        };
122      }
123      function getNodeScroll(node) {
124        if (node === getWindow(node) || !isHTMLElement(node)) {
125          return getWindowScroll(node);
126        } else {
127          return getHTMLElementScroll(node);
128        }
129      }
130      function getNodeName(element) {
131        return element ? (element.nodeName || "").toLowerCase() : null;
132      }
133      function getDocumentElement(element) {
134        return ((isElement(element) ? element.ownerDocument : (
135          // $FlowFixMe[prop-missing]
136          element.document
137        )) || window.document).documentElement;
138      }
139      function getWindowScrollBarX(element) {
140        return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;
141      }
142      function getComputedStyle2(element) {
143        return getWindow(element).getComputedStyle(element);
144      }
145      function isScrollParent(element) {
146        var _getComputedStyle3 = getComputedStyle2(element), overflow = _getComputedStyle3.overflow, overflowX = _getComputedStyle3.overflowX, overflowY = _getComputedStyle3.overflowY;
147        return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);
148      }
149      function isElementScaled(element) {
150        var rect = element.getBoundingClientRect();
151        var scaleX = round(rect.width) / element.offsetWidth || 1;
152        var scaleY = round(rect.height) / element.offsetHeight || 1;
153        return scaleX !== 1 || scaleY !== 1;
154      }
155      function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {
156        if (isFixed === void 0) {
157          isFixed = false;
158        }
159        var isOffsetParentAnElement = isHTMLElement(offsetParent);
160        var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);
161        var documentElement = getDocumentElement(offsetParent);
162        var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);
163        var scroll = {
164          scrollLeft: 0,
165          scrollTop: 0
166        };
167        var offsets = {
168          x: 0,
169          y: 0
170        };
171        if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {
172          if (getNodeName(offsetParent) !== "body" || // https://github.com/popperjs/popper-core/issues/1078
173          isScrollParent(documentElement)) {
174            scroll = getNodeScroll(offsetParent);
175          }
176          if (isHTMLElement(offsetParent)) {
177            offsets = getBoundingClientRect(offsetParent, true);
178            offsets.x += offsetParent.clientLeft;
179            offsets.y += offsetParent.clientTop;
180          } else if (documentElement) {
181            offsets.x = getWindowScrollBarX(documentElement);
182          }
183        }
184        return {
185          x: rect.left + scroll.scrollLeft - offsets.x,
186          y: rect.top + scroll.scrollTop - offsets.y,
187          width: rect.width,
188          height: rect.height
189        };
190      }
191      function getLayoutRect(element) {
192        var clientRect = getBoundingClientRect(element);
193        var width = element.offsetWidth;
194        var height = element.offsetHeight;
195        if (Math.abs(clientRect.width - width) <= 1) {
196          width = clientRect.width;
197        }
198        if (Math.abs(clientRect.height - height) <= 1) {
199          height = clientRect.height;
200        }
201        return {
202          x: element.offsetLeft,
203          y: element.offsetTop,
204          width,
205          height
206        };
207      }
208      function getParentNode(element) {
209        if (getNodeName(element) === "html") {
210          return element;
211        }
212        return (
213          // this is a quicker (but less type safe) way to save quite some bytes from the bundle
214          // $FlowFixMe[incompatible-return]
215          // $FlowFixMe[prop-missing]
216          element.assignedSlot || // step into the shadow DOM of the parent of a slotted node
217          element.parentNode || // DOM Element detected
218          (isShadowRoot(element) ? element.host : null) || // ShadowRoot detected
219          // $FlowFixMe[incompatible-call]: HTMLElement is a Node
220          getDocumentElement(element)
221        );
222      }
223      function getScrollParent(node) {
224        if (["html", "body", "#document"].indexOf(getNodeName(node)) >= 0) {
225          return node.ownerDocument.body;
226        }
227        if (isHTMLElement(node) && isScrollParent(node)) {
228          return node;
229        }
230        return getScrollParent(getParentNode(node));
231      }
232      function listScrollParents(element, list) {
233        var _element$ownerDocumen;
234        if (list === void 0) {
235          list = [];
236        }
237        var scrollParent = getScrollParent(element);
238        var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);
239        var win = getWindow(scrollParent);
240        var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;
241        var updatedList = list.concat(target);
242        return isBody ? updatedList : (
243          // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here
244          updatedList.concat(listScrollParents(getParentNode(target)))
245        );
246      }
247      function isTableElement(element) {
248        return ["table", "td", "th"].indexOf(getNodeName(element)) >= 0;
249      }
250      function getTrueOffsetParent(element) {
251        if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837
252        getComputedStyle2(element).position === "fixed") {
253          return null;
254        }
255        return element.offsetParent;
256      }
257      function getContainingBlock(element) {
258        var isFirefox = /firefox/i.test(getUAString());
259        var isIE = /Trident/i.test(getUAString());
260        if (isIE && isHTMLElement(element)) {
261          var elementCss = getComputedStyle2(element);
262          if (elementCss.position === "fixed") {
263            return null;
264          }
265        }
266        var currentNode = getParentNode(element);
267        if (isShadowRoot(currentNode)) {
268          currentNode = currentNode.host;
269        }
270        while (isHTMLElement(currentNode) && ["html", "body"].indexOf(getNodeName(currentNode)) < 0) {
271          var css = getComputedStyle2(currentNode);
272          if (css.transform !== "none" || css.perspective !== "none" || css.contain === "paint" || ["transform", "perspective"].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === "filter" || isFirefox && css.filter && css.filter !== "none") {
273            return currentNode;
274          } else {
275            currentNode = currentNode.parentNode;
276          }
277        }
278        return null;
279      }
280      function getOffsetParent(element) {
281        var window2 = getWindow(element);
282        var offsetParent = getTrueOffsetParent(element);
283        while (offsetParent && isTableElement(offsetParent) && getComputedStyle2(offsetParent).position === "static") {
284          offsetParent = getTrueOffsetParent(offsetParent);
285        }
286        if (offsetParent && (getNodeName(offsetParent) === "html" || getNodeName(offsetParent) === "body" && getComputedStyle2(offsetParent).position === "static")) {
287          return window2;
288        }
289        return offsetParent || getContainingBlock(element) || window2;
290      }
291      var top = "top";
292      var bottom = "bottom";
293      var right = "right";
294      var left = "left";
295      var auto = "auto";
296      var basePlacements = [top, bottom, right, left];
297      var start = "start";
298      var end = "end";
299      var clippingParents = "clippingParents";
300      var viewport = "viewport";
301      var popper = "popper";
302      var reference = "reference";
303      var variationPlacements = /* @__PURE__ */ basePlacements.reduce(function(acc, placement) {
304        return acc.concat([placement + "-" + start, placement + "-" + end]);
305      }, []);
306      var placements = /* @__PURE__ */ [].concat(basePlacements, [auto]).reduce(function(acc, placement) {
307        return acc.concat([placement, placement + "-" + start, placement + "-" + end]);
308      }, []);
309      var beforeRead = "beforeRead";
310      var read = "read";
311      var afterRead = "afterRead";
312      var beforeMain = "beforeMain";
313      var main = "main";
314      var afterMain = "afterMain";
315      var beforeWrite = "beforeWrite";
316      var write = "write";
317      var afterWrite = "afterWrite";
318      var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];
319      function order(modifiers) {
320        var map = /* @__PURE__ */ new Map();
321        var visited = /* @__PURE__ */ new Set();
322        var result = [];
323        modifiers.forEach(function(modifier) {
324          map.set(modifier.name, modifier);
325        });
326        function sort(modifier) {
327          visited.add(modifier.name);
328          var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);
329          requires.forEach(function(dep) {
330            if (!visited.has(dep)) {
331              var depModifier = map.get(dep);
332              if (depModifier) {
333                sort(depModifier);
334              }
335            }
336          });
337          result.push(modifier);
338        }
339        modifiers.forEach(function(modifier) {
340          if (!visited.has(modifier.name)) {
341            sort(modifier);
342          }
343        });
344        return result;
345      }
346      function orderModifiers(modifiers) {
347        var orderedModifiers = order(modifiers);
348        return modifierPhases.reduce(function(acc, phase) {
349          return acc.concat(orderedModifiers.filter(function(modifier) {
350            return modifier.phase === phase;
351          }));
352        }, []);
353      }
354      function debounce(fn) {
355        var pending;
356        return function() {
357          if (!pending) {
358            pending = new Promise(function(resolve) {
359              Promise.resolve().then(function() {
360                pending = void 0;
361                resolve(fn());
362              });
363            });
364          }
365          return pending;
366        };
367      }
368      function mergeByName(modifiers) {
369        var merged = modifiers.reduce(function(merged2, current) {
370          var existing = merged2[current.name];
371          merged2[current.name] = existing ? Object.assign({}, existing, current, {
372            options: Object.assign({}, existing.options, current.options),
373            data: Object.assign({}, existing.data, current.data)
374          }) : current;
375          return merged2;
376        }, {});
377        return Object.keys(merged).map(function(key) {
378          return merged[key];
379        });
380      }
381      function getViewportRect(element, strategy) {
382        var win = getWindow(element);
383        var html = getDocumentElement(element);
384        var visualViewport = win.visualViewport;
385        var width = html.clientWidth;
386        var height = html.clientHeight;
387        var x2 = 0;
388        var y3 = 0;
389        if (visualViewport) {
390          width = visualViewport.width;
391          height = visualViewport.height;
392          var layoutViewport = isLayoutViewport();
393          if (layoutViewport || !layoutViewport && strategy === "fixed") {
394            x2 = visualViewport.offsetLeft;
395            y3 = visualViewport.offsetTop;
396          }
397        }
398        return {
399          width,
400          height,
401          x: x2 + getWindowScrollBarX(element),
402          y: y3
403        };
404      }
405      function getDocumentRect(element) {
406        var _element$ownerDocumen;
407        var html = getDocumentElement(element);
408        var winScroll = getWindowScroll(element);
409        var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;
410        var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);
411        var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);
412        var x2 = -winScroll.scrollLeft + getWindowScrollBarX(element);
413        var y3 = -winScroll.scrollTop;
414        if (getComputedStyle2(body || html).direction === "rtl") {
415          x2 += max(html.clientWidth, body ? body.clientWidth : 0) - width;
416        }
417        return {
418          width,
419          height,
420          x: x2,
421          y: y3
422        };
423      }
424      function contains(parent, child) {
425        var rootNode = child.getRootNode && child.getRootNode();
426        if (parent.contains(child)) {
427          return true;
428        } else if (rootNode && isShadowRoot(rootNode)) {
429          var next = child;
430          do {
431            if (next && parent.isSameNode(next)) {
432              return true;
433            }
434            next = next.parentNode || next.host;
435          } while (next);
436        }
437        return false;
438      }
439      function rectToClientRect(rect) {
440        return Object.assign({}, rect, {
441          left: rect.x,
442          top: rect.y,
443          right: rect.x + rect.width,
444          bottom: rect.y + rect.height
445        });
446      }
447      function getInnerBoundingClientRect(element, strategy) {
448        var rect = getBoundingClientRect(element, false, strategy === "fixed");
449        rect.top = rect.top + element.clientTop;
450        rect.left = rect.left + element.clientLeft;
451        rect.bottom = rect.top + element.clientHeight;
452        rect.right = rect.left + element.clientWidth;
453        rect.width = element.clientWidth;
454        rect.height = element.clientHeight;
455        rect.x = rect.left;
456        rect.y = rect.top;
457        return rect;
458      }
459      function getClientRectFromMixedType(element, clippingParent, strategy) {
460        return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));
461      }
462      function getClippingParents(element) {
463        var clippingParents2 = listScrollParents(getParentNode(element));
464        var canEscapeClipping = ["absolute", "fixed"].indexOf(getComputedStyle2(element).position) >= 0;
465        var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;
466        if (!isElement(clipperElement)) {
467          return [];
468        }
469        return clippingParents2.filter(function(clippingParent) {
470          return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== "body";
471        });
472      }
473      function getClippingRect(element, boundary, rootBoundary, strategy) {
474        var mainClippingParents = boundary === "clippingParents" ? getClippingParents(element) : [].concat(boundary);
475        var clippingParents2 = [].concat(mainClippingParents, [rootBoundary]);
476        var firstClippingParent = clippingParents2[0];
477        var clippingRect = clippingParents2.reduce(function(accRect, clippingParent) {
478          var rect = getClientRectFromMixedType(element, clippingParent, strategy);
479          accRect.top = max(rect.top, accRect.top);
480          accRect.right = min(rect.right, accRect.right);
481          accRect.bottom = min(rect.bottom, accRect.bottom);
482          accRect.left = max(rect.left, accRect.left);
483          return accRect;
484        }, getClientRectFromMixedType(element, firstClippingParent, strategy));
485        clippingRect.width = clippingRect.right - clippingRect.left;
486        clippingRect.height = clippingRect.bottom - clippingRect.top;
487        clippingRect.x = clippingRect.left;
488        clippingRect.y = clippingRect.top;
489        return clippingRect;
490      }
491      function getBasePlacement(placement) {
492        return placement.split("-")[0];
493      }
494      function getVariation(placement) {
495        return placement.split("-")[1];
496      }
497      function getMainAxisFromPlacement(placement) {
498        return ["top", "bottom"].indexOf(placement) >= 0 ? "x" : "y";
499      }
500      function computeOffsets(_ref) {
501        var reference2 = _ref.reference, element = _ref.element, placement = _ref.placement;
502        var basePlacement = placement ? getBasePlacement(placement) : null;
503        var variation = placement ? getVariation(placement) : null;
504        var commonX = reference2.x + reference2.width / 2 - element.width / 2;
505        var commonY = reference2.y + reference2.height / 2 - element.height / 2;
506        var offsets;
507        switch (basePlacement) {
508          case top:
509            offsets = {
510              x: commonX,
511              y: reference2.y - element.height
512            };
513            break;
514          case bottom:
515            offsets = {
516              x: commonX,
517              y: reference2.y + reference2.height
518            };
519            break;
520          case right:
521            offsets = {
522              x: reference2.x + reference2.width,
523              y: commonY
524            };
525            break;
526          case left:
527            offsets = {
528              x: reference2.x - element.width,
529              y: commonY
530            };
531            break;
532          default:
533            offsets = {
534              x: reference2.x,
535              y: reference2.y
536            };
537        }
538        var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;
539        if (mainAxis != null) {
540          var len = mainAxis === "y" ? "height" : "width";
541          switch (variation) {
542            case start:
543              offsets[mainAxis] = offsets[mainAxis] - (reference2[len] / 2 - element[len] / 2);
544              break;
545            case end:
546              offsets[mainAxis] = offsets[mainAxis] + (reference2[len] / 2 - element[len] / 2);
547              break;
548          }
549        }
550        return offsets;
551      }
552      function getFreshSideObject() {
553        return {
554          top: 0,
555          right: 0,
556          bottom: 0,
557          left: 0
558        };
559      }
560      function mergePaddingObject(paddingObject) {
561        return Object.assign({}, getFreshSideObject(), paddingObject);
562      }
563      function expandToHashMap(value, keys) {
564        return keys.reduce(function(hashMap, key) {
565          hashMap[key] = value;
566          return hashMap;
567        }, {});
568      }
569      function detectOverflow(state, options) {
570        if (options === void 0) {
571          options = {};
572        }
573        var _options = options, _options$placement = _options.placement, placement = _options$placement === void 0 ? state.placement : _options$placement, _options$strategy = _options.strategy, strategy = _options$strategy === void 0 ? state.strategy : _options$strategy, _options$boundary = _options.boundary, boundary = _options$boundary === void 0 ? clippingParents : _options$boundary, _options$rootBoundary = _options.rootBoundary, rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary, _options$elementConte = _options.elementContext, elementContext = _options$elementConte === void 0 ? popper : _options$elementConte, _options$altBoundary = _options.altBoundary, altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary, _options$padding = _options.padding, padding = _options$padding === void 0 ? 0 : _options$padding;
574        var paddingObject = mergePaddingObject(typeof padding !== "number" ? padding : expandToHashMap(padding, basePlacements));
575        var altContext = elementContext === popper ? reference : popper;
576        var popperRect = state.rects.popper;
577        var element = state.elements[altBoundary ? altContext : elementContext];
578        var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);
579        var referenceClientRect = getBoundingClientRect(state.elements.reference);
580        var popperOffsets2 = computeOffsets({
581          reference: referenceClientRect,
582          element: popperRect,
583          strategy: "absolute",
584          placement
585        });
586        var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets2));
587        var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect;
588        var overflowOffsets = {
589          top: clippingClientRect.top - elementClientRect.top + paddingObject.top,
590          bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,
591          left: clippingClientRect.left - elementClientRect.left + paddingObject.left,
592          right: elementClientRect.right - clippingClientRect.right + paddingObject.right
593        };
594        var offsetData = state.modifiersData.offset;
595        if (elementContext === popper && offsetData) {
596          var offset2 = offsetData[placement];
597          Object.keys(overflowOffsets).forEach(function(key) {
598            var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;
599            var axis = [top, bottom].indexOf(key) >= 0 ? "y" : "x";
600            overflowOffsets[key] += offset2[axis] * multiply;
601          });
602        }
603        return overflowOffsets;
604      }
605      var DEFAULT_OPTIONS2 = {
606        placement: "bottom",
607        modifiers: [],
608        strategy: "absolute"
609      };
610      function areValidElements() {
611        for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
612          args[_key] = arguments[_key];
613        }
614        return !args.some(function(element) {
615          return !(element && typeof element.getBoundingClientRect === "function");
616        });
617      }
618      function popperGenerator(generatorOptions) {
619        if (generatorOptions === void 0) {
620          generatorOptions = {};
621        }
622        var _generatorOptions = generatorOptions, _generatorOptions$def = _generatorOptions.defaultModifiers, defaultModifiers2 = _generatorOptions$def === void 0 ? [] : _generatorOptions$def, _generatorOptions$def2 = _generatorOptions.defaultOptions, defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS2 : _generatorOptions$def2;
623        return function createPopper2(reference2, popper2, options) {
624          if (options === void 0) {
625            options = defaultOptions;
626          }
627          var state = {
628            placement: "bottom",
629            orderedModifiers: [],
630            options: Object.assign({}, DEFAULT_OPTIONS2, defaultOptions),
631            modifiersData: {},
632            elements: {
633              reference: reference2,
634              popper: popper2
635            },
636            attributes: {},
637            styles: {}
638          };
639          var effectCleanupFns = [];
640          var isDestroyed = false;
641          var instance = {
642            state,
643            setOptions: function setOptions(setOptionsAction) {
644              var options2 = typeof setOptionsAction === "function" ? setOptionsAction(state.options) : setOptionsAction;
645              cleanupModifierEffects();
646              state.options = Object.assign({}, defaultOptions, state.options, options2);
647              state.scrollParents = {
648                reference: isElement(reference2) ? listScrollParents(reference2) : reference2.contextElement ? listScrollParents(reference2.contextElement) : [],
649                popper: listScrollParents(popper2)
650              };
651              var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers2, state.options.modifiers)));
652              state.orderedModifiers = orderedModifiers.filter(function(m3) {
653                return m3.enabled;
654              });
655              runModifierEffects();
656              return instance.update();
657            },
658            // Sync update – it will always be executed, even if not necessary. This
659            // is useful for low frequency updates where sync behavior simplifies the
660            // logic.
661            // For high frequency updates (e.g. `resize` and `scroll` events), always
662            // prefer the async Popper#update method
663            forceUpdate: function forceUpdate() {
664              if (isDestroyed) {
665                return;
666              }
667              var _state$elements = state.elements, reference3 = _state$elements.reference, popper3 = _state$elements.popper;
668              if (!areValidElements(reference3, popper3)) {
669                return;
670              }
671              state.rects = {
672                reference: getCompositeRect(reference3, getOffsetParent(popper3), state.options.strategy === "fixed"),
673                popper: getLayoutRect(popper3)
674              };
675              state.reset = false;
676              state.placement = state.options.placement;
677              state.orderedModifiers.forEach(function(modifier) {
678                return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);
679              });
680              for (var index = 0; index < state.orderedModifiers.length; index++) {
681                if (state.reset === true) {
682                  state.reset = false;
683                  index = -1;
684                  continue;
685                }
686                var _state$orderedModifie = state.orderedModifiers[index], fn = _state$orderedModifie.fn, _state$orderedModifie2 = _state$orderedModifie.options, _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2, name = _state$orderedModifie.name;
687                if (typeof fn === "function") {
688                  state = fn({
689                    state,
690                    options: _options,
691                    name,
692                    instance
693                  }) || state;
694                }
695              }
696            },
697            // Async and optimistically optimized update – it will not be executed if
698            // not necessary (debounced to run at most once-per-tick)
699            update: debounce(function() {
700              return new Promise(function(resolve) {
701                instance.forceUpdate();
702                resolve(state);
703              });
704            }),
705            destroy: function destroy() {
706              cleanupModifierEffects();
707              isDestroyed = true;
708            }
709          };
710          if (!areValidElements(reference2, popper2)) {
711            return instance;
712          }
713          instance.setOptions(options).then(function(state2) {
714            if (!isDestroyed && options.onFirstUpdate) {
715              options.onFirstUpdate(state2);
716            }
717          });
718          function runModifierEffects() {
719            state.orderedModifiers.forEach(function(_ref) {
720              var name = _ref.name, _ref$options = _ref.options, options2 = _ref$options === void 0 ? {} : _ref$options, effect2 = _ref.effect;
721              if (typeof effect2 === "function") {
722                var cleanupFn = effect2({
723                  state,
724                  name,
725                  instance,
726                  options: options2
727                });
728                var noopFn = function noopFn2() {
729                };
730                effectCleanupFns.push(cleanupFn || noopFn);
731              }
732            });
733          }
734          function cleanupModifierEffects() {
735            effectCleanupFns.forEach(function(fn) {
736              return fn();
737            });
738            effectCleanupFns = [];
739          }
740          return instance;
741        };
742      }
743      var passive = {
744        passive: true
745      };
746      function effect$2(_ref) {
747        var state = _ref.state, instance = _ref.instance, options = _ref.options;
748        var _options$scroll = options.scroll, scroll = _options$scroll === void 0 ? true : _options$scroll, _options$resize = options.resize, resize = _options$resize === void 0 ? true : _options$resize;
749        var window2 = getWindow(state.elements.popper);
750        var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);
751        if (scroll) {
752          scrollParents.forEach(function(scrollParent) {
753            scrollParent.addEventListener("scroll", instance.update, passive);
754          });
755        }
756        if (resize) {
757          window2.addEventListener("resize", instance.update, passive);
758        }
759        return function() {
760          if (scroll) {
761            scrollParents.forEach(function(scrollParent) {
762              scrollParent.removeEventListener("scroll", instance.update, passive);
763            });
764          }
765          if (resize) {
766            window2.removeEventListener("resize", instance.update, passive);
767          }
768        };
769      }
770      var eventListeners = {
771        name: "eventListeners",
772        enabled: true,
773        phase: "write",
774        fn: function fn() {
775        },
776        effect: effect$2,
777        data: {}
778      };
779      function popperOffsets(_ref) {
780        var state = _ref.state, name = _ref.name;
781        state.modifiersData[name] = computeOffsets({
782          reference: state.rects.reference,
783          element: state.rects.popper,
784          strategy: "absolute",
785          placement: state.placement
786        });
787      }
788      var popperOffsets$1 = {
789        name: "popperOffsets",
790        enabled: true,
791        phase: "read",
792        fn: popperOffsets,
793        data: {}
794      };
795      var unsetSides = {
796        top: "auto",
797        right: "auto",
798        bottom: "auto",
799        left: "auto"
800      };
801      function roundOffsetsByDPR(_ref, win) {
802        var x2 = _ref.x, y3 = _ref.y;
803        var dpr = win.devicePixelRatio || 1;
804        return {
805          x: round(x2 * dpr) / dpr || 0,
806          y: round(y3 * dpr) / dpr || 0
807        };
808      }
809      function mapToStyles(_ref2) {
810        var _Object$assign2;
811        var popper2 = _ref2.popper, popperRect = _ref2.popperRect, placement = _ref2.placement, variation = _ref2.variation, offsets = _ref2.offsets, position = _ref2.position, gpuAcceleration = _ref2.gpuAcceleration, adaptive = _ref2.adaptive, roundOffsets = _ref2.roundOffsets, isFixed = _ref2.isFixed;
812        var _offsets$x = offsets.x, x2 = _offsets$x === void 0 ? 0 : _offsets$x, _offsets$y = offsets.y, y3 = _offsets$y === void 0 ? 0 : _offsets$y;
813        var _ref3 = typeof roundOffsets === "function" ? roundOffsets({
814          x: x2,
815          y: y3
816        }) : {
817          x: x2,
818          y: y3
819        };
820        x2 = _ref3.x;
821        y3 = _ref3.y;
822        var hasX = offsets.hasOwnProperty("x");
823        var hasY = offsets.hasOwnProperty("y");
824        var sideX = left;
825        var sideY = top;
826        var win = window;
827        if (adaptive) {
828          var offsetParent = getOffsetParent(popper2);
829          var heightProp = "clientHeight";
830          var widthProp = "clientWidth";
831          if (offsetParent === getWindow(popper2)) {
832            offsetParent = getDocumentElement(popper2);
833            if (getComputedStyle2(offsetParent).position !== "static" && position === "absolute") {
834              heightProp = "scrollHeight";
835              widthProp = "scrollWidth";
836            }
837          }
838          offsetParent = offsetParent;
839          if (placement === top || (placement === left || placement === right) && variation === end) {
840            sideY = bottom;
841            var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : (
842              // $FlowFixMe[prop-missing]
843              offsetParent[heightProp]
844            );
845            y3 -= offsetY - popperRect.height;
846            y3 *= gpuAcceleration ? 1 : -1;
847          }
848          if (placement === left || (placement === top || placement === bottom) && variation === end) {
849            sideX = right;
850            var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : (
851              // $FlowFixMe[prop-missing]
852              offsetParent[widthProp]
853            );
854            x2 -= offsetX - popperRect.width;
855            x2 *= gpuAcceleration ? 1 : -1;
856          }
857        }
858        var commonStyles = Object.assign({
859          position
860        }, adaptive && unsetSides);
861        var _ref4 = roundOffsets === true ? roundOffsetsByDPR({
862          x: x2,
863          y: y3
864        }, getWindow(popper2)) : {
865          x: x2,
866          y: y3
867        };
868        x2 = _ref4.x;
869        y3 = _ref4.y;
870        if (gpuAcceleration) {
871          var _Object$assign;
872          return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? "0" : "", _Object$assign[sideX] = hasX ? "0" : "", _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? "translate(" + x2 + "px, " + y3 + "px)" : "translate3d(" + x2 + "px, " + y3 + "px, 0)", _Object$assign));
873        }
874        return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y3 + "px" : "", _Object$assign2[sideX] = hasX ? x2 + "px" : "", _Object$assign2.transform = "", _Object$assign2));
875      }
876      function computeStyles(_ref5) {
877        var state = _ref5.state, options = _ref5.options;
878        var _options$gpuAccelerat = options.gpuAcceleration, gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat, _options$adaptive = options.adaptive, adaptive = _options$adaptive === void 0 ? true : _options$adaptive, _options$roundOffsets = options.roundOffsets, roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;
879        var commonStyles = {
880          placement: getBasePlacement(state.placement),
881          variation: getVariation(state.placement),
882          popper: state.elements.popper,
883          popperRect: state.rects.popper,
884          gpuAcceleration,
885          isFixed: state.options.strategy === "fixed"
886        };
887        if (state.modifiersData.popperOffsets != null) {
888          state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {
889            offsets: state.modifiersData.popperOffsets,
890            position: state.options.strategy,
891            adaptive,
892            roundOffsets
893          })));
894        }
895        if (state.modifiersData.arrow != null) {
896          state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {
897            offsets: state.modifiersData.arrow,
898            position: "absolute",
899            adaptive: false,
900            roundOffsets
901          })));
902        }
903        state.attributes.popper = Object.assign({}, state.attributes.popper, {
904          "data-popper-placement": state.placement
905        });
906      }
907      var computeStyles$1 = {
908        name: "computeStyles",
909        enabled: true,
910        phase: "beforeWrite",
911        fn: computeStyles,
912        data: {}
913      };
914      function applyStyles(_ref) {
915        var state = _ref.state;
916        Object.keys(state.elements).forEach(function(name) {
917          var style = state.styles[name] || {};
918          var attributes = state.attributes[name] || {};
919          var element = state.elements[name];
920          if (!isHTMLElement(element) || !getNodeName(element)) {
921            return;
922          }
923          Object.assign(element.style, style);
924          Object.keys(attributes).forEach(function(name2) {
925            var value = attributes[name2];
926            if (value === false) {
927              element.removeAttribute(name2);
928            } else {
929              element.setAttribute(name2, value === true ? "" : value);
930            }
931          });
932        });
933      }
934      function effect$1(_ref2) {
935        var state = _ref2.state;
936        var initialStyles = {
937          popper: {
938            position: state.options.strategy,
939            left: "0",
940            top: "0",
941            margin: "0"
942          },
943          arrow: {
944            position: "absolute"
945          },
946          reference: {}
947        };
948        Object.assign(state.elements.popper.style, initialStyles.popper);
949        state.styles = initialStyles;
950        if (state.elements.arrow) {
951          Object.assign(state.elements.arrow.style, initialStyles.arrow);
952        }
953        return function() {
954          Object.keys(state.elements).forEach(function(name) {
955            var element = state.elements[name];
956            var attributes = state.attributes[name] || {};
957            var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]);
958            var style = styleProperties.reduce(function(style2, property) {
959              style2[property] = "";
960              return style2;
961            }, {});
962            if (!isHTMLElement(element) || !getNodeName(element)) {
963              return;
964            }
965            Object.assign(element.style, style);
966            Object.keys(attributes).forEach(function(attribute) {
967              element.removeAttribute(attribute);
968            });
969          });
970        };
971      }
972      var applyStyles$1 = {
973        name: "applyStyles",
974        enabled: true,
975        phase: "write",
976        fn: applyStyles,
977        effect: effect$1,
978        requires: ["computeStyles"]
979      };
980      function distanceAndSkiddingToXY(placement, rects, offset2) {
981        var basePlacement = getBasePlacement(placement);
982        var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;
983        var _ref = typeof offset2 === "function" ? offset2(Object.assign({}, rects, {
984          placement
985        })) : offset2, skidding = _ref[0], distance = _ref[1];
986        skidding = skidding || 0;
987        distance = (distance || 0) * invertDistance;
988        return [left, right].indexOf(basePlacement) >= 0 ? {
989          x: distance,
990          y: skidding
991        } : {
992          x: skidding,
993          y: distance
994        };
995      }
996      function offset(_ref2) {
997        var state = _ref2.state, options = _ref2.options, name = _ref2.name;
998        var _options$offset = options.offset, offset2 = _options$offset === void 0 ? [0, 0] : _options$offset;
999        var data = placements.reduce(function(acc, placement) {
1000          acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset2);
1001          return acc;
1002        }, {});
1003        var _data$state$placement = data[state.placement], x2 = _data$state$placement.x, y3 = _data$state$placement.y;
1004        if (state.modifiersData.popperOffsets != null) {
1005          state.modifiersData.popperOffsets.x += x2;
1006          state.modifiersData.popperOffsets.y += y3;
1007        }
1008        state.modifiersData[name] = data;
1009      }
1010      var offset$1 = {
1011        name: "offset",
1012        enabled: true,
1013        phase: "main",
1014        requires: ["popperOffsets"],
1015        fn: offset
1016      };
1017      var hash$1 = {
1018        left: "right",
1019        right: "left",
1020        bottom: "top",
1021        top: "bottom"
1022      };
1023      function getOppositePlacement(placement) {
1024        return placement.replace(/left|right|bottom|top/g, function(matched) {
1025          return hash$1[matched];
1026        });
1027      }
1028      var hash = {
1029        start: "end",
1030        end: "start"
1031      };
1032      function getOppositeVariationPlacement(placement) {
1033        return placement.replace(/start|end/g, function(matched) {
1034          return hash[matched];
1035        });
1036      }
1037      function computeAutoPlacement(state, options) {
1038        if (options === void 0) {
1039          options = {};
1040        }
1041        var _options = options, placement = _options.placement, boundary = _options.boundary, rootBoundary = _options.rootBoundary, padding = _options.padding, flipVariations = _options.flipVariations, _options$allowedAutoP = _options.allowedAutoPlacements, allowedAutoPlacements = _options$allowedAutoP === void 0 ? placements : _options$allowedAutoP;
1042        var variation = getVariation(placement);
1043        var placements$1 = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function(placement2) {
1044          return getVariation(placement2) === variation;
1045        }) : basePlacements;
1046        var allowedPlacements = placements$1.filter(function(placement2) {
1047          return allowedAutoPlacements.indexOf(placement2) >= 0;
1048        });
1049        if (allowedPlacements.length === 0) {
1050          allowedPlacements = placements$1;
1051        }
1052        var overflows = allowedPlacements.reduce(function(acc, placement2) {
1053          acc[placement2] = detectOverflow(state, {
1054            placement: placement2,
1055            boundary,
1056            rootBoundary,
1057            padding
1058          })[getBasePlacement(placement2)];
1059          return acc;
1060        }, {});
1061        return Object.keys(overflows).sort(function(a8, b3) {
1062          return overflows[a8] - overflows[b3];
1063        });
1064      }
1065      function getExpandedFallbackPlacements(placement) {
1066        if (getBasePlacement(placement) === auto) {
1067          return [];
1068        }
1069        var oppositePlacement = getOppositePlacement(placement);
1070        return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];
1071      }
1072      function flip(_ref) {
1073        var state = _ref.state, options = _ref.options, name = _ref.name;
1074        if (state.modifiersData[name]._skip) {
1075          return;
1076        }
1077        var _options$mainAxis = options.mainAxis, checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis, _options$altAxis = options.altAxis, checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis, specifiedFallbackPlacements = options.fallbackPlacements, padding = options.padding, boundary = options.boundary, rootBoundary = options.rootBoundary, altBoundary = options.altBoundary, _options$flipVariatio = options.flipVariations, flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio, allowedAutoPlacements = options.allowedAutoPlacements;
1078        var preferredPlacement = state.options.placement;
1079        var basePlacement = getBasePlacement(preferredPlacement);
1080        var isBasePlacement = basePlacement === preferredPlacement;
1081        var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));
1082        var placements2 = [preferredPlacement].concat(fallbackPlacements).reduce(function(acc, placement2) {
1083          return acc.concat(getBasePlacement(placement2) === auto ? computeAutoPlacement(state, {
1084            placement: placement2,
1085            boundary,
1086            rootBoundary,
1087            padding,
1088            flipVariations,
1089            allowedAutoPlacements
1090          }) : placement2);
1091        }, []);
1092        var referenceRect = state.rects.reference;
1093        var popperRect = state.rects.popper;
1094        var checksMap = /* @__PURE__ */ new Map();
1095        var makeFallbackChecks = true;
1096        var firstFittingPlacement = placements2[0];
1097        for (var i10 = 0; i10 < placements2.length; i10++) {
1098          var placement = placements2[i10];
1099          var _basePlacement = getBasePlacement(placement);
1100          var isStartVariation = getVariation(placement) === start;
1101          var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;
1102          var len = isVertical ? "width" : "height";
1103          var overflow = detectOverflow(state, {
1104            placement,
1105            boundary,
1106            rootBoundary,
1107            altBoundary,
1108            padding
1109          });
1110          var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;
1111          if (referenceRect[len] > popperRect[len]) {
1112            mainVariationSide = getOppositePlacement(mainVariationSide);
1113          }
1114          var altVariationSide = getOppositePlacement(mainVariationSide);
1115          var checks = [];
1116          if (checkMainAxis) {
1117            checks.push(overflow[_basePlacement] <= 0);
1118          }
1119          if (checkAltAxis) {
1120            checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);
1121          }
1122          if (checks.every(function(check) {
1123            return check;
1124          })) {
1125            firstFittingPlacement = placement;
1126            makeFallbackChecks = false;
1127            break;
1128          }
1129          checksMap.set(placement, checks);
1130        }
1131        if (makeFallbackChecks) {
1132          var numberOfChecks = flipVariations ? 3 : 1;
1133          var _loop = function _loop2(_i3) {
1134            var fittingPlacement = placements2.find(function(placement2) {
1135              var checks2 = checksMap.get(placement2);
1136              if (checks2) {
1137                return checks2.slice(0, _i3).every(function(check) {
1138                  return check;
1139                });
1140              }
1141            });
1142            if (fittingPlacement) {
1143              firstFittingPlacement = fittingPlacement;
1144              return "break";
1145            }
1146          };
1147          for (var _i2 = numberOfChecks; _i2 > 0; _i2--) {
1148            var _ret = _loop(_i2);
1149            if (_ret === "break") break;
1150          }
1151        }
1152        if (state.placement !== firstFittingPlacement) {
1153          state.modifiersData[name]._skip = true;
1154          state.placement = firstFittingPlacement;
1155          state.reset = true;
1156        }
1157      }
1158      var flip$1 = {
1159        name: "flip",
1160        enabled: true,
1161        phase: "main",
1162        fn: flip,
1163        requiresIfExists: ["offset"],
1164        data: {
1165          _skip: false
1166        }
1167      };
1168      function getAltAxis(axis) {
1169        return axis === "x" ? "y" : "x";
1170      }
1171      function within(min$1, value, max$1) {
1172        return max(min$1, min(value, max$1));
1173      }
1174      function withinMaxClamp(min2, value, max2) {
1175        var v3 = within(min2, value, max2);
1176        return v3 > max2 ? max2 : v3;
1177      }
1178      function preventOverflow(_ref) {
1179        var state = _ref.state, options = _ref.options, name = _ref.name;
1180        var _options$mainAxis = options.mainAxis, checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis, _options$altAxis = options.altAxis, checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis, boundary = options.boundary, rootBoundary = options.rootBoundary, altBoundary = options.altBoundary, padding = options.padding, _options$tether = options.tether, tether = _options$tether === void 0 ? true : _options$tether, _options$tetherOffset = options.tetherOffset, tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;
1181        var overflow = detectOverflow(state, {
1182          boundary,
1183          rootBoundary,
1184          padding,
1185          altBoundary
1186        });
1187        var basePlacement = getBasePlacement(state.placement);
1188        var variation = getVariation(state.placement);
1189        var isBasePlacement = !variation;
1190        var mainAxis = getMainAxisFromPlacement(basePlacement);
1191        var altAxis = getAltAxis(mainAxis);
1192        var popperOffsets2 = state.modifiersData.popperOffsets;
1193        var referenceRect = state.rects.reference;
1194        var popperRect = state.rects.popper;
1195        var tetherOffsetValue = typeof tetherOffset === "function" ? tetherOffset(Object.assign({}, state.rects, {
1196          placement: state.placement
1197        })) : tetherOffset;
1198        var normalizedTetherOffsetValue = typeof tetherOffsetValue === "number" ? {
1199          mainAxis: tetherOffsetValue,
1200          altAxis: tetherOffsetValue
1201        } : Object.assign({
1202          mainAxis: 0,
1203          altAxis: 0
1204        }, tetherOffsetValue);
1205        var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;
1206        var data = {
1207          x: 0,
1208          y: 0
1209        };
1210        if (!popperOffsets2) {
1211          return;
1212        }
1213        if (checkMainAxis) {
1214          var _offsetModifierState$;
1215          var mainSide = mainAxis === "y" ? top : left;
1216          var altSide = mainAxis === "y" ? bottom : right;
1217          var len = mainAxis === "y" ? "height" : "width";
1218          var offset2 = popperOffsets2[mainAxis];
1219          var min$1 = offset2 + overflow[mainSide];
1220          var max$1 = offset2 - overflow[altSide];
1221          var additive = tether ? -popperRect[len] / 2 : 0;
1222          var minLen = variation === start ? referenceRect[len] : popperRect[len];
1223          var maxLen = variation === start ? -popperRect[len] : -referenceRect[len];
1224          var arrowElement = state.elements.arrow;
1225          var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {
1226            width: 0,
1227            height: 0
1228          };
1229          var arrowPaddingObject = state.modifiersData["arrow#persistent"] ? state.modifiersData["arrow#persistent"].padding : getFreshSideObject();
1230          var arrowPaddingMin = arrowPaddingObject[mainSide];
1231          var arrowPaddingMax = arrowPaddingObject[altSide];
1232          var arrowLen = within(0, referenceRect[len], arrowRect[len]);
1233          var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;
1234          var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;
1235          var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);
1236          var clientOffset = arrowOffsetParent ? mainAxis === "y" ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;
1237          var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;
1238          var tetherMin = offset2 + minOffset - offsetModifierValue - clientOffset;
1239          var tetherMax = offset2 + maxOffset - offsetModifierValue;
1240          var preventedOffset = within(tether ? min(min$1, tetherMin) : min$1, offset2, tether ? max(max$1, tetherMax) : max$1);
1241          popperOffsets2[mainAxis] = preventedOffset;
1242          data[mainAxis] = preventedOffset - offset2;
1243        }
1244        if (checkAltAxis) {
1245          var _offsetModifierState$2;
1246          var _mainSide = mainAxis === "x" ? top : left;
1247          var _altSide = mainAxis === "x" ? bottom : right;
1248          var _offset = popperOffsets2[altAxis];
1249          var _len = altAxis === "y" ? "height" : "width";
1250          var _min = _offset + overflow[_mainSide];
1251          var _max = _offset - overflow[_altSide];
1252          var isOriginSide = [top, left].indexOf(basePlacement) !== -1;
1253          var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;
1254          var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;
1255          var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;
1256          var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);
1257          popperOffsets2[altAxis] = _preventedOffset;
1258          data[altAxis] = _preventedOffset - _offset;
1259        }
1260        state.modifiersData[name] = data;
1261      }
1262      var preventOverflow$1 = {
1263        name: "preventOverflow",
1264        enabled: true,
1265        phase: "main",
1266        fn: preventOverflow,
1267        requiresIfExists: ["offset"]
1268      };
1269      var toPaddingObject = function toPaddingObject2(padding, state) {
1270        padding = typeof padding === "function" ? padding(Object.assign({}, state.rects, {
1271          placement: state.placement
1272        })) : padding;
1273        return mergePaddingObject(typeof padding !== "number" ? padding : expandToHashMap(padding, basePlacements));
1274      };
1275      function arrow(_ref) {
1276        var _state$modifiersData$;
1277        var state = _ref.state, name = _ref.name, options = _ref.options;
1278        var arrowElement = state.elements.arrow;
1279        var popperOffsets2 = state.modifiersData.popperOffsets;
1280        var basePlacement = getBasePlacement(state.placement);
1281        var axis = getMainAxisFromPlacement(basePlacement);
1282        var isVertical = [left, right].indexOf(basePlacement) >= 0;
1283        var len = isVertical ? "height" : "width";
1284        if (!arrowElement || !popperOffsets2) {
1285          return;
1286        }
1287        var paddingObject = toPaddingObject(options.padding, state);
1288        var arrowRect = getLayoutRect(arrowElement);
1289        var minProp = axis === "y" ? top : left;
1290        var maxProp = axis === "y" ? bottom : right;
1291        var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets2[axis] - state.rects.popper[len];
1292        var startDiff = popperOffsets2[axis] - state.rects.reference[axis];
1293        var arrowOffsetParent = getOffsetParent(arrowElement);
1294        var clientSize = arrowOffsetParent ? axis === "y" ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;
1295        var centerToReference = endDiff / 2 - startDiff / 2;
1296        var min2 = paddingObject[minProp];
1297        var max2 = clientSize - arrowRect[len] - paddingObject[maxProp];
1298        var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;
1299        var offset2 = within(min2, center, max2);
1300        var axisProp = axis;
1301        state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset2, _state$modifiersData$.centerOffset = offset2 - center, _state$modifiersData$);
1302      }
1303      function effect(_ref2) {
1304        var state = _ref2.state, options = _ref2.options;
1305        var _options$element = options.element, arrowElement = _options$element === void 0 ? "[data-popper-arrow]" : _options$element;
1306        if (arrowElement == null) {
1307          return;
1308        }
1309        if (typeof arrowElement === "string") {
1310          arrowElement = state.elements.popper.querySelector(arrowElement);
1311          if (!arrowElement) {
1312            return;
1313          }
1314        }
1315        if (!contains(state.elements.popper, arrowElement)) {
1316          return;
1317        }
1318        state.elements.arrow = arrowElement;
1319      }
1320      var arrow$1 = {
1321        name: "arrow",
1322        enabled: true,
1323        phase: "main",
1324        fn: arrow,
1325        effect,
1326        requires: ["popperOffsets"],
1327        requiresIfExists: ["preventOverflow"]
1328      };
1329      function getSideOffsets(overflow, rect, preventedOffsets) {
1330        if (preventedOffsets === void 0) {
1331          preventedOffsets = {
1332            x: 0,
1333            y: 0
1334          };
1335        }
1336        return {
1337          top: overflow.top - rect.height - preventedOffsets.y,
1338          right: overflow.right - rect.width + preventedOffsets.x,
1339          bottom: overflow.bottom - rect.height + preventedOffsets.y,
1340          left: overflow.left - rect.width - preventedOffsets.x
1341        };
1342      }
1343      function isAnySideFullyClipped(overflow) {
1344        return [top, right, bottom, left].some(function(side) {
1345          return overflow[side] >= 0;
1346        });
1347      }
1348      function hide(_ref) {
1349        var state = _ref.state, name = _ref.name;
1350        var referenceRect = state.rects.reference;
1351        var popperRect = state.rects.popper;
1352        var preventedOffsets = state.modifiersData.preventOverflow;
1353        var referenceOverflow = detectOverflow(state, {
1354          elementContext: "reference"
1355        });
1356        var popperAltOverflow = detectOverflow(state, {
1357          altBoundary: true
1358        });
1359        var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);
1360        var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);
1361        var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);
1362        var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);
1363        state.modifiersData[name] = {
1364          referenceClippingOffsets,
1365          popperEscapeOffsets,
1366          isReferenceHidden,
1367          hasPopperEscaped
1368        };
1369        state.attributes.popper = Object.assign({}, state.attributes.popper, {
1370          "data-popper-reference-hidden": isReferenceHidden,
1371          "data-popper-escaped": hasPopperEscaped
1372        });
1373      }
1374      var hide$1 = {
1375        name: "hide",
1376        enabled: true,
1377        phase: "main",
1378        requiresIfExists: ["preventOverflow"],
1379        fn: hide
1380      };
1381      var defaultModifiers$1 = [eventListeners, popperOffsets$1, computeStyles$1, applyStyles$1];
1382      var createPopper$1 = /* @__PURE__ */ popperGenerator({
1383        defaultModifiers: defaultModifiers$1
1384      });
1385      var defaultModifiers = [eventListeners, popperOffsets$1, computeStyles$1, applyStyles$1, offset$1, flip$1, preventOverflow$1, arrow$1, hide$1];
1386      var createPopper = /* @__PURE__ */ popperGenerator({
1387        defaultModifiers
1388      });
1389      exports.applyStyles = applyStyles$1;
1390      exports.arrow = arrow$1;
1391      exports.computeStyles = computeStyles$1;
1392      exports.createPopper = createPopper;
1393      exports.createPopperLite = createPopper$1;
1394      exports.defaultModifiers = defaultModifiers;
1395      exports.detectOverflow = detectOverflow;
1396      exports.eventListeners = eventListeners;
1397      exports.flip = flip$1;
1398      exports.hide = hide$1;
1399      exports.offset = offset$1;
1400      exports.popperGenerator = popperGenerator;
1401      exports.popperOffsets = popperOffsets$1;
1402      exports.preventOverflow = preventOverflow$1;
1403    }
1404  });
1405
1406  
vendor: 148,673 bytes, lines 1406-5099
1406// node_modules/bootstrap/dist/js/bootstrap.js
1407  var require_bootstrap = __commonJS({
1408    "node_modules/bootstrap/dist/js/bootstrap.js"(exports, module) {
1409      (function(global, factory) {
1410        typeof exports === "object" && typeof module !== "undefined" ? module.exports = factory(require_popper()) : typeof define === "function" && define.amd ? define(["@popperjs/core"], factory) : (global = typeof globalThis !== "undefined" ? globalThis : global || self, global.bootstrap = factory(global.Popper));
1411      })(exports, (function(Popper) {
1412        "use strict";
1413        function _interopNamespaceDefault(e11) {
1414          const n10 = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
1415          if (e11) {
1416            for (const k3 in e11) {
1417              if (k3 !== "default") {
1418                const d3 = Object.getOwnPropertyDescriptor(e11, k3);
1419                Object.defineProperty(n10, k3, d3.get ? d3 : {
1420                  enumerable: true,
1421                  get: () => e11[k3]
1422                });
1423              }
1424            }
1425          }
1426          n10.default = e11;
1427          return Object.freeze(n10);
1428        }
1429        const Popper__namespace = /* @__PURE__ */ _interopNamespaceDefault(Popper);
1430        const elementMap = /* @__PURE__ */ new Map();
1431        const Data = {
1432          set(element, key, instance) {
1433            if (!elementMap.has(element)) {
1434              elementMap.set(element, /* @__PURE__ */ new Map());
1435            }
1436            const instanceMap = elementMap.get(element);
1437            if (!instanceMap.has(key) && instanceMap.size !== 0) {
1438              console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`);
1439              return;
1440            }
1441            instanceMap.set(key, instance);
1442          },
1443          get(element, key) {
1444            if (elementMap.has(element)) {
1445              return elementMap.get(element).get(key) || null;
1446            }
1447            return null;
1448          },
1449          remove(element, key) {
1450            if (!elementMap.has(element)) {
1451              return;
1452            }
1453            const instanceMap = elementMap.get(element);
1454            instanceMap.delete(key);
1455            if (instanceMap.size === 0) {
1456              elementMap.delete(element);
1457            }
1458          }
1459        };
1460        const MAX_UID = 1e6;
1461        const MILLISECONDS_MULTIPLIER = 1e3;
1462        const TRANSITION_END = "transitionend";
1463        const parseSelector = (selector3) => {
1464          if (selector3 && window.CSS && window.CSS.escape) {
1465            selector3 = selector3.replace(/#([^\s"#']+)/g, (match, id) => `#${CSS.escape(id)}`);
1466          }
1467          return selector3;
1468        };
1469        const toType = (object) => {
1470          if (object === null || object === void 0) {
1471            return `${object}`;
1472          }
1473          return Object.prototype.toString.call(object).match(/\s([a-z]+)/i)[1].toLowerCase();
1474        };
1475        const getUID = (prefix) => {
1476          do {
1477            prefix += Math.floor(Math.random() * MAX_UID);
1478          } while (document.getElementById(prefix));
1479          return prefix;
1480        };
1481        const getTransitionDurationFromElement = (element) => {
1482          if (!element) {
1483            return 0;
1484          }
1485          let {
1486            transitionDuration,
1487            transitionDelay
1488          } = window.getComputedStyle(element);
1489          const floatTransitionDuration = Number.parseFloat(transitionDuration);
1490          const floatTransitionDelay = Number.parseFloat(transitionDelay);
1491          if (!floatTransitionDuration && !floatTransitionDelay) {
1492            return 0;
1493          }
1494          transitionDuration = transitionDuration.split(",")[0];
1495          transitionDelay = transitionDelay.split(",")[0];
1496          return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
1497        };
1498        const triggerTransitionEnd = (element) => {
1499          element.dispatchEvent(new Event(TRANSITION_END));
1500        };
1501        const isElement = (object) => {
1502          if (!object || typeof object !== "object") {
1503            return false;
1504          }
1505          if (typeof object.jquery !== "undefined") {
1506            object = object[0];
1507          }
1508          return typeof object.nodeType !== "undefined";
1509        };
1510        const getElement = (object) => {
1511          if (isElement(object)) {
1512            return object.jquery ? object[0] : object;
1513          }
1514          if (typeof object === "string" && object.length > 0) {
1515            return document.querySelector(parseSelector(object));
1516          }
1517          return null;
1518        };
1519        const isVisible = (element) => {
1520          if (!isElement(element) || element.getClientRects().length === 0) {
1521            return false;
1522          }
1523          const elementIsVisible = getComputedStyle(element).getPropertyValue("visibility") === "visible";
1524          const closedDetails = element.closest("details:not([open])");
1525          if (!closedDetails) {
1526            return elementIsVisible;
1527          }
1528          if (closedDetails !== element) {
1529            const summary = element.closest("summary");
1530            if (summary && summary.parentNode !== closedDetails) {
1531              return false;
1532            }
1533            if (summary === null) {
1534              return false;
1535            }
1536          }
1537          return elementIsVisible;
1538        };
1539        const isDisabled = (element) => {
1540          if (!element || element.nodeType !== Node.ELEMENT_NODE) {
1541            return true;
1542          }
1543          if (element.classList.contains("disabled")) {
1544            return true;
1545          }
1546          if (typeof element.disabled !== "undefined") {
1547            return element.disabled;
1548          }
1549          return element.hasAttribute("disabled") && element.getAttribute("disabled") !== "false";
1550        };
1551        const findShadowRoot = (element) => {
1552          if (!document.documentElement.attachShadow) {
1553            return null;
1554          }
1555          if (typeof element.getRootNode === "function") {
1556            const root = element.getRootNode();
1557            return root instanceof ShadowRoot ? root : null;
1558          }
1559          if (element instanceof ShadowRoot) {
1560            return element;
1561          }
1562          if (!element.parentNode) {
1563            return null;
1564          }
1565          return findShadowRoot(element.parentNode);
1566        };
1567        const noop = () => {
1568        };
1569        const reflow = (element) => {
1570          element.offsetHeight;
1571        };
1572        const getjQuery = () => {
1573          if (window.jQuery && !document.body.hasAttribute("data-bs-no-jquery")) {
1574            return window.jQuery;
1575          }
1576          return null;
1577        };
1578        const DOMContentLoadedCallbacks = [];
1579        const onDOMContentLoaded = (callback) => {
1580          if (document.readyState === "loading") {
1581            if (!DOMContentLoadedCallbacks.length) {
1582              document.addEventListener("DOMContentLoaded", () => {
1583                for (const callback2 of DOMContentLoadedCallbacks) {
1584                  callback2();
1585                }
1586              });
1587            }
1588            DOMContentLoadedCallbacks.push(callback);
1589          } else {
1590            callback();
1591          }
1592        };
1593        const isRTL = () => document.documentElement.dir === "rtl";
1594        const defineJQueryPlugin = (plugin) => {
1595          onDOMContentLoaded(() => {
1596            const $4 = getjQuery();
1597            if ($4) {
1598              const name = plugin.NAME;
1599              const JQUERY_NO_CONFLICT = $4.fn[name];
1600              $4.fn[name] = plugin.jQueryInterface;
1601              $4.fn[name].Constructor = plugin;
1602              $4.fn[name].noConflict = () => {
1603                $4.fn[name] = JQUERY_NO_CONFLICT;
1604                return plugin.jQueryInterface;
1605              };
1606            }
1607          });
1608        };
1609        const execute2 = (possibleCallback, args = [], defaultValue = possibleCallback) => {
1610          return typeof possibleCallback === "function" ? possibleCallback.call(...args) : defaultValue;
1611        };
1612        const executeAfterTransition = (callback, transitionElement, waitForTransition = true) => {
1613          if (!waitForTransition) {
1614            execute2(callback);
1615            return;
1616          }
1617          const durationPadding = 5;
1618          const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding;
1619          let called = false;
1620          const handler = ({
1621            target
1622          }) => {
1623            if (target !== transitionElement) {
1624              return;
1625            }
1626            called = true;
1627            transitionElement.removeEventListener(TRANSITION_END, handler);
1628            execute2(callback);
1629          };
1630          transitionElement.addEventListener(TRANSITION_END, handler);
1631          setTimeout(() => {
1632            if (!called) {
1633              triggerTransitionEnd(transitionElement);
1634            }
1635          }, emulatedDuration);
1636        };
1637        const getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => {
1638          const listLength = list.length;
1639          let index = list.indexOf(activeElement);
1640          if (index === -1) {
1641            return !shouldGetNext && isCycleAllowed ? list[listLength - 1] : list[0];
1642          }
1643          index += shouldGetNext ? 1 : -1;
1644          if (isCycleAllowed) {
1645            index = (index + listLength) % listLength;
1646          }
1647          return list[Math.max(0, Math.min(index, listLength - 1))];
1648        };
1649        const namespaceRegex = /[^.]*(?=\..*)\.|.*/;
1650        const stripNameRegex = /\..*/;
1651        const stripUidRegex = /::\d+$/;
1652        const eventRegistry = {};
1653        let uidEvent = 1;
1654        const customEvents = {
1655          mouseenter: "mouseover",
1656          mouseleave: "mouseout"
1657        };
1658        const nativeEvents = /* @__PURE__ */ new Set(["click", "dblclick", "mouseup", "mousedown", "contextmenu", "mousewheel", "DOMMouseScroll", "mouseover", "mouseout", "mousemove", "selectstart", "selectend", "keydown", "keypress", "keyup", "orientationchange", "touchstart", "touchmove", "touchend", "touchcancel", "pointerdown", "pointermove", "pointerup", "pointerleave", "pointercancel", "gesturestart", "gesturechange", "gestureend", "focus", "blur", "change", "reset", "select", "submit", "focusin", "focusout", "load", "unload", "beforeunload", "resize", "move", "DOMContentLoaded", "readystatechange", "error", "abort", "scroll"]);
1659        function makeEventUid(element, uid) {
1660          return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++;
1661        }
1662        function getElementEvents(element) {
1663          const uid = makeEventUid(element);
1664          element.uidEvent = uid;
1665          eventRegistry[uid] = eventRegistry[uid] || {};
1666          return eventRegistry[uid];
1667        }
1668        function bootstrapHandler(element, fn) {
1669          return function handler(event) {
1670            hydrateObj(event, {
1671              delegateTarget: element
1672            });
1673            if (handler.oneOff) {
1674              EventHandler.off(element, event.type, fn);
1675            }
1676            return fn.apply(element, [event]);
1677          };
1678        }
1679        function bootstrapDelegationHandler(element, selector3, fn) {
1680          return function handler(event) {
1681            const domElements = element.querySelectorAll(selector3);
1682            for (let {
1683              target
1684            } = event; target && target !== this; target = target.parentNode) {
1685              for (const domElement of domElements) {
1686                if (domElement !== target) {
1687                  continue;
1688                }
1689                hydrateObj(event, {
1690                  delegateTarget: target
1691                });
1692                if (handler.oneOff) {
1693                  EventHandler.off(element, event.type, selector3, fn);
1694                }
1695                return fn.apply(target, [event]);
1696              }
1697            }
1698          };
1699        }
1700        function findHandler(events, callable, delegationSelector = null) {
1701          return Object.values(events).find((event) => event.callable === callable && event.delegationSelector === delegationSelector);
1702        }
1703        function normalizeParameters(originalTypeEvent, handler, delegationFunction) {
1704          const isDelegated = typeof handler === "string";
1705          const callable = isDelegated ? delegationFunction : handler || delegationFunction;
1706          let typeEvent = getTypeEvent(originalTypeEvent);
1707          if (!nativeEvents.has(typeEvent)) {
1708            typeEvent = originalTypeEvent;
1709          }
1710          return [isDelegated, callable, typeEvent];
1711        }
1712        function addHandler(element, originalTypeEvent, handler, delegationFunction, oneOff) {
1713          if (typeof originalTypeEvent !== "string" || !element) {
1714            return;
1715          }
1716          let [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction);
1717          if (originalTypeEvent in customEvents) {
1718            const wrapFunction = (fn2) => {
1719              return function(event) {
1720                if (!event.relatedTarget || event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget)) {
1721                  return fn2.call(this, event);
1722                }
1723              };
1724            };
1725            callable = wrapFunction(callable);
1726          }
1727          const events = getElementEvents(element);
1728          const handlers = events[typeEvent] || (events[typeEvent] = {});
1729          const previousFunction = findHandler(handlers, callable, isDelegated ? handler : null);
1730          if (previousFunction) {
1731            previousFunction.oneOff = previousFunction.oneOff && oneOff;
1732            return;
1733          }
1734          const uid = makeEventUid(callable, originalTypeEvent.replace(namespaceRegex, ""));
1735          const fn = isDelegated ? bootstrapDelegationHandler(element, handler, callable) : bootstrapHandler(element, callable);
1736          fn.delegationSelector = isDelegated ? handler : null;
1737          fn.callable = callable;
1738          fn.oneOff = oneOff;
1739          fn.uidEvent = uid;
1740          handlers[uid] = fn;
1741          element.addEventListener(typeEvent, fn, isDelegated);
1742        }
1743        function removeHandler(element, events, typeEvent, handler, delegationSelector) {
1744          const fn = findHandler(events[typeEvent], handler, delegationSelector);
1745          if (!fn) {
1746            return;
1747          }
1748          element.removeEventListener(typeEvent, fn, Boolean(delegationSelector));
1749          delete events[typeEvent][fn.uidEvent];
1750        }
1751        function removeNamespacedHandlers(element, events, typeEvent, namespace) {
1752          const storeElementEvent = events[typeEvent] || {};
1753          for (const [handlerKey, event] of Object.entries(storeElementEvent)) {
1754            if (handlerKey.includes(namespace)) {
1755              removeHandler(element, events, typeEvent, event.callable, event.delegationSelector);
1756            }
1757          }
1758        }
1759        function getTypeEvent(event) {
1760          event = event.replace(stripNameRegex, "");
1761          return customEvents[event] || event;
1762        }
1763        const EventHandler = {
1764          on(element, event, handler, delegationFunction) {
1765            addHandler(element, event, handler, delegationFunction, false);
1766          },
1767          one(element, event, handler, delegationFunction) {
1768            addHandler(element, event, handler, delegationFunction, true);
1769          },
1770          off(element, originalTypeEvent, handler, delegationFunction) {
1771            if (typeof originalTypeEvent !== "string" || !element) {
1772              return;
1773            }
1774            const [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction);
1775            const inNamespace = typeEvent !== originalTypeEvent;
1776            const events = getElementEvents(element);
1777            const storeElementEvent = events[typeEvent] || {};
1778            const isNamespace = originalTypeEvent.startsWith(".");
1779            if (typeof callable !== "undefined") {
1780              if (!Object.keys(storeElementEvent).length) {
1781                return;
1782              }
1783              removeHandler(element, events, typeEvent, callable, isDelegated ? handler : null);
1784              return;
1785            }
1786            if (isNamespace) {
1787              for (const elementEvent of Object.keys(events)) {
1788                removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1));
1789              }
1790            }
1791            for (const [keyHandlers, event] of Object.entries(storeElementEvent)) {
1792              const handlerKey = keyHandlers.replace(stripUidRegex, "");
1793              if (!inNamespace || originalTypeEvent.includes(handlerKey)) {
1794                removeHandler(element, events, typeEvent, event.callable, event.delegationSelector);
1795              }
1796            }
1797          },
1798          trigger(element, event, args) {
1799            if (typeof event !== "string" || !element) {
1800              return null;
1801            }
1802            const $4 = getjQuery();
1803            const typeEvent = getTypeEvent(event);
1804            const inNamespace = event !== typeEvent;
1805            let jQueryEvent = null;
1806            let bubbles = true;
1807            let nativeDispatch = true;
1808            let defaultPrevented = false;
1809            if (inNamespace && $4) {
1810              jQueryEvent = $4.Event(event, args);
1811              $4(element).trigger(jQueryEvent);
1812              bubbles = !jQueryEvent.isPropagationStopped();
1813              nativeDispatch = !jQueryEvent.isImmediatePropagationStopped();
1814              defaultPrevented = jQueryEvent.isDefaultPrevented();
1815            }
1816            const evt = hydrateObj(new Event(event, {
1817              bubbles,
1818              cancelable: true
1819            }), args);
1820            if (defaultPrevented) {
1821              evt.preventDefault();
1822            }
1823            if (nativeDispatch) {
1824              element.dispatchEvent(evt);
1825            }
1826            if (evt.defaultPrevented && jQueryEvent) {
1827              jQueryEvent.preventDefault();
1828            }
1829            return evt;
1830          }
1831        };
1832        function hydrateObj(obj, meta = {}) {
1833          for (const [key, value] of Object.entries(meta)) {
1834            try {
1835              obj[key] = value;
1836            } catch (_unused) {
1837              Object.defineProperty(obj, key, {
1838                configurable: true,
1839                get() {
1840                  return value;
1841                }
1842              });
1843            }
1844          }
1845          return obj;
1846        }
1847        function normalizeData(value) {
1848          if (value === "true") {
1849            return true;
1850          }
1851          if (value === "false") {
1852            return false;
1853          }
1854          if (value === Number(value).toString()) {
1855            return Number(value);
1856          }
1857          if (value === "" || value === "null") {
1858            return null;
1859          }
1860          if (typeof value !== "string") {
1861            return value;
1862          }
1863          try {
1864            return JSON.parse(decodeURIComponent(value));
1865          } catch (_unused) {
1866            return value;
1867          }
1868        }
1869        function normalizeDataKey(key) {
1870          return key.replace(/[A-Z]/g, (chr) => `-${chr.toLowerCase()}`);
1871        }
1872        const Manipulator = {
1873          setDataAttribute(element, key, value) {
1874            element.setAttribute(`data-bs-${normalizeDataKey(key)}`, value);
1875          },
1876          removeDataAttribute(element, key) {
1877            element.removeAttribute(`data-bs-${normalizeDataKey(key)}`);
1878          },
1879          getDataAttributes(element) {
1880            if (!element) {
1881              return {};
1882            }
1883            const attributes = {};
1884            const bsKeys = Object.keys(element.dataset).filter((key) => key.startsWith("bs") && !key.startsWith("bsConfig"));
1885            for (const key of bsKeys) {
1886              let pureKey = key.replace(/^bs/, "");
1887              pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1);
1888              attributes[pureKey] = normalizeData(element.dataset[key]);
1889            }
1890            return attributes;
1891          },
1892          getDataAttribute(element, key) {
1893            return normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`));
1894          }
1895        };
1896        class Config {
1897          // Getters
1898          static get Default() {
1899            return {};
1900          }
1901          static get DefaultType() {
1902            return {};
1903          }
1904          static get NAME() {
1905            throw new Error('You have to implement the static method "NAME", for each component!');
1906          }
1907          _getConfig(config3) {
1908            config3 = this._mergeConfigObj(config3);
1909            config3 = this._configAfterMerge(config3);
1910            this._typeCheckConfig(config3);
1911            return config3;
1912          }
1913          _configAfterMerge(config3) {
1914            return config3;
1915          }
1916          _mergeConfigObj(config3, element) {
1917            const jsonConfig = isElement(element) ? Manipulator.getDataAttribute(element, "config") : {};
1918            return {
1919              ...this.constructor.Default,
1920              ...typeof jsonConfig === "object" ? jsonConfig : {},
1921              ...isElement(element) ? Manipulator.getDataAttributes(element) : {},
1922              ...typeof config3 === "object" ? config3 : {}
1923            };
1924          }
1925          _typeCheckConfig(config3, configTypes = this.constructor.DefaultType) {
1926            for (const [property, expectedTypes] of Object.entries(configTypes)) {
1927              const value = config3[property];
1928              const valueType = isElement(value) ? "element" : toType(value);
1929              if (!new RegExp(expectedTypes).test(valueType)) {
1930                throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${property}" provided type "${valueType}" but expected type "${expectedTypes}".`);
1931              }
1932            }
1933          }
1934        }
1935        const VERSION = "5.3.8";
1936        class BaseComponent extends Config {
1937          constructor(element, config3) {
1938            super();
1939            element = getElement(element);
1940            if (!element) {
1941              return;
1942            }
1943            this._element = element;
1944            this._config = this._getConfig(config3);
1945            Data.set(this._element, this.constructor.DATA_KEY, this);
1946          }
1947          // Public
1948          dispose() {
1949            Data.remove(this._element, this.constructor.DATA_KEY);
1950            EventHandler.off(this._element, this.constructor.EVENT_KEY);
1951            for (const propertyName of Object.getOwnPropertyNames(this)) {
1952              this[propertyName] = null;
1953            }
1954          }
1955          // Private
1956          _queueCallback(callback, element, isAnimated = true) {
1957            executeAfterTransition(callback, element, isAnimated);
1958          }
1959          _getConfig(config3) {
1960            config3 = this._mergeConfigObj(config3, this._element);
1961            config3 = this._configAfterMerge(config3);
1962            this._typeCheckConfig(config3);
1963            return config3;
1964          }
1965          // Static
1966          static getInstance(element) {
1967            return Data.get(getElement(element), this.DATA_KEY);
1968          }
1969          static getOrCreateInstance(element, config3 = {}) {
1970            return this.getInstance(element) || new this(element, typeof config3 === "object" ? config3 : null);
1971          }
1972          static get VERSION() {
1973            return VERSION;
1974          }
1975          static get DATA_KEY() {
1976            return `bs.${this.NAME}`;
1977          }
1978          static get EVENT_KEY() {
1979            return `.${this.DATA_KEY}`;
1980          }
1981          static eventName(name) {
1982            return `${name}${this.EVENT_KEY}`;
1983          }
1984        }
1985        const getSelector = (element) => {
1986          let selector3 = element.getAttribute("data-bs-target");
1987          if (!selector3 || selector3 === "#") {
1988            let hrefAttribute = element.getAttribute("href");
1989            if (!hrefAttribute || !hrefAttribute.includes("#") && !hrefAttribute.startsWith(".")) {
1990              return null;
1991            }
1992            if (hrefAttribute.includes("#") && !hrefAttribute.startsWith("#")) {
1993              hrefAttribute = `#${hrefAttribute.split("#")[1]}`;
1994            }
1995            selector3 = hrefAttribute && hrefAttribute !== "#" ? hrefAttribute.trim() : null;
1996          }
1997          return selector3 ? selector3.split(",").map((sel) => parseSelector(sel)).join(",") : null;
1998        };
1999        const SelectorEngine = {
2000          find(selector3, element = document.documentElement) {
2001            return [].concat(...Element.prototype.querySelectorAll.call(element, selector3));
2002          },
2003          findOne(selector3, element = document.documentElement) {
2004            return Element.prototype.querySelector.call(element, selector3);
2005          },
2006          children(element, selector3) {
2007            return [].concat(...element.children).filter((child) => child.matches(selector3));
2008          },
2009          parents(element, selector3) {
2010            const parents = [];
2011            let ancestor = element.parentNode.closest(selector3);
2012            while (ancestor) {
2013              parents.push(ancestor);
2014              ancestor = ancestor.parentNode.closest(selector3);
2015            }
2016            return parents;
2017          },
2018          prev(element, selector3) {
2019            let previous = element.previousElementSibling;
2020            while (previous) {
2021              if (previous.matches(selector3)) {
2022                return [previous];
2023              }
2024              previous = previous.previousElementSibling;
2025            }
2026            return [];
2027          },
2028          // TODO: this is now unused; remove later along with prev()
2029          next(element, selector3) {
2030            let next = element.nextElementSibling;
2031            while (next) {
2032              if (next.matches(selector3)) {
2033                return [next];
2034              }
2035              next = next.nextElementSibling;
2036            }
2037            return [];
2038          },
2039          focusableChildren(element) {
2040            const focusables = ["a", "button", "input", "textarea", "select", "details", "[tabindex]", '[contenteditable="true"]'].map((selector3) => `${selector3}:not([tabindex^="-"])`).join(",");
2041            return this.find(focusables, element).filter((el) => !isDisabled(el) && isVisible(el));
2042          },
2043          getSelectorFromElement(element) {
2044            const selector3 = getSelector(element);
2045            if (selector3) {
2046              return SelectorEngine.findOne(selector3) ? selector3 : null;
2047            }
2048            return null;
2049          },
2050          getElementFromSelector(element) {
2051            const selector3 = getSelector(element);
2052            return selector3 ? SelectorEngine.findOne(selector3) : null;
2053          },
2054          getMultipleElementsFromSelector(element) {
2055            const selector3 = getSelector(element);
2056            return selector3 ? SelectorEngine.find(selector3) : [];
2057          }
2058        };
2059        const enableDismissTrigger = (component, method = "hide") => {
2060          const clickEvent = `click.dismiss${component.EVENT_KEY}`;
2061          const name = component.NAME;
2062          EventHandler.on(document, clickEvent, `[data-bs-dismiss="${name}"]`, function(event) {
2063            if (["A", "AREA"].includes(this.tagName)) {
2064              event.preventDefault();
2065            }
2066            if (isDisabled(this)) {
2067              return;
2068            }
2069            const target = SelectorEngine.getElementFromSelector(this) || this.closest(`.${name}`);
2070            const instance = component.getOrCreateInstance(target);
2071            instance[method]();
2072          });
2073        };
2074        const NAME$f = "alert";
2075        const DATA_KEY$a = "bs.alert";
2076        const EVENT_KEY$b = `.${DATA_KEY$a}`;
2077        const EVENT_CLOSE = `close${EVENT_KEY$b}`;
2078        const EVENT_CLOSED = `closed${EVENT_KEY$b}`;
2079        const CLASS_NAME_FADE$5 = "fade";
2080        const CLASS_NAME_SHOW$8 = "show";
2081        class Alert extends BaseComponent {
2082          // Getters
2083          static get NAME() {
2084            return NAME$f;
2085          }
2086          // Public
2087          close() {
2088            const closeEvent = EventHandler.trigger(this._element, EVENT_CLOSE);
2089            if (closeEvent.defaultPrevented) {
2090              return;
2091            }
2092            this._element.classList.remove(CLASS_NAME_SHOW$8);
2093            const isAnimated = this._element.classList.contains(CLASS_NAME_FADE$5);
2094            this._queueCallback(() => this._destroyElement(), this._element, isAnimated);
2095          }
2096          // Private
2097          _destroyElement() {
2098            this._element.remove();
2099            EventHandler.trigger(this._element, EVENT_CLOSED);
2100            this.dispose();
2101          }
2102          // Static
2103          static jQueryInterface(config3) {
2104            return this.each(function() {
2105              const data = Alert.getOrCreateInstance(this);
2106              if (typeof config3 !== "string") {
2107                return;
2108              }
2109              if (data[config3] === void 0 || config3.startsWith("_") || config3 === "constructor") {
2110                throw new TypeError(`No method named "${config3}"`);
2111              }
2112              data[config3](this);
2113            });
2114          }
2115        }
2116        enableDismissTrigger(Alert, "close");
2117        defineJQueryPlugin(Alert);
2118        const NAME$e = "button";
2119        const DATA_KEY$9 = "bs.button";
2120        const EVENT_KEY$a = `.${DATA_KEY$9}`;
2121        const DATA_API_KEY$6 = ".data-api";
2122        const CLASS_NAME_ACTIVE$3 = "active";
2123        const SELECTOR_DATA_TOGGLE$5 = '[data-bs-toggle="button"]';
2124        const EVENT_CLICK_DATA_API$6 = `click${EVENT_KEY$a}${DATA_API_KEY$6}`;
2125        class Button extends BaseComponent {
2126          // Getters
2127          static get NAME() {
2128            return NAME$e;
2129          }
2130          // Public
2131          toggle() {
2132            this._element.setAttribute("aria-pressed", this._element.classList.toggle(CLASS_NAME_ACTIVE$3));
2133          }
2134          // Static
2135          static jQueryInterface(config3) {
2136            return this.each(function() {
2137              const data = Button.getOrCreateInstance(this);
2138              if (config3 === "toggle") {
2139                data[config3]();
2140              }
2141            });
2142          }
2143        }
2144        EventHandler.on(document, EVENT_CLICK_DATA_API$6, SELECTOR_DATA_TOGGLE$5, (event) => {
2145          event.preventDefault();
2146          const button = event.target.closest(SELECTOR_DATA_TOGGLE$5);
2147          const data = Button.getOrCreateInstance(button);
2148          data.toggle();
2149        });
2150        defineJQueryPlugin(Button);
2151        const NAME$d = "swipe";
2152        const EVENT_KEY$9 = ".bs.swipe";
2153        const EVENT_TOUCHSTART = `touchstart${EVENT_KEY$9}`;
2154        const EVENT_TOUCHMOVE = `touchmove${EVENT_KEY$9}`;
2155        const EVENT_TOUCHEND = `touchend${EVENT_KEY$9}`;
2156        const EVENT_POINTERDOWN = `pointerdown${EVENT_KEY$9}`;
2157        const EVENT_POINTERUP = `pointerup${EVENT_KEY$9}`;
2158        const POINTER_TYPE_TOUCH = "touch";
2159        const POINTER_TYPE_PEN = "pen";
2160        const CLASS_NAME_POINTER_EVENT = "pointer-event";
2161        const SWIPE_THRESHOLD = 40;
2162        const Default$c = {
2163          endCallback: null,
2164          leftCallback: null,
2165          rightCallback: null
2166        };
2167        const DefaultType$c = {
2168          endCallback: "(function|null)",
2169          leftCallback: "(function|null)",
2170          rightCallback: "(function|null)"
2171        };
2172        class Swipe extends Config {
2173          constructor(element, config3) {
2174            super();
2175            this._element = element;
2176            if (!element || !Swipe.isSupported()) {
2177              return;
2178            }
2179            this._config = this._getConfig(config3);
2180            this._deltaX = 0;
2181            this._supportPointerEvents = Boolean(window.PointerEvent);
2182            this._initEvents();
2183          }
2184          // Getters
2185          static get Default() {
2186            return Default$c;
2187          }
2188          static get DefaultType() {
2189            return DefaultType$c;
2190          }
2191          static get NAME() {
2192            return NAME$d;
2193          }
2194          // Public
2195          dispose() {
2196            EventHandler.off(this._element, EVENT_KEY$9);
2197          }
2198          // Private
2199          _start(event) {
2200            if (!this._supportPointerEvents) {
2201              this._deltaX = event.touches[0].clientX;
2202              return;
2203            }
2204            if (this._eventIsPointerPenTouch(event)) {
2205              this._deltaX = event.clientX;
2206            }
2207          }
2208          _end(event) {
2209            if (this._eventIsPointerPenTouch(event)) {
2210              this._deltaX = event.clientX - this._deltaX;
2211            }
2212            this._handleSwipe();
2213            execute2(this._config.endCallback);
2214          }
2215          _move(event) {
2216            this._deltaX = event.touches && event.touches.length > 1 ? 0 : event.touches[0].clientX - this._deltaX;
2217          }
2218          _handleSwipe() {
2219            const absDeltaX = Math.abs(this._deltaX);
2220            if (absDeltaX <= SWIPE_THRESHOLD) {
2221              return;
2222            }
2223            const direction = absDeltaX / this._deltaX;
2224            this._deltaX = 0;
2225            if (!direction) {
2226              return;
2227            }
2228            execute2(direction > 0 ? this._config.rightCallback : this._config.leftCallback);
2229          }
2230          _initEvents() {
2231            if (this._supportPointerEvents) {
2232              EventHandler.on(this._element, EVENT_POINTERDOWN, (event) => this._start(event));
2233              EventHandler.on(this._element, EVENT_POINTERUP, (event) => this._end(event));
2234              this._element.classList.add(CLASS_NAME_POINTER_EVENT);
2235            } else {
2236              EventHandler.on(this._element, EVENT_TOUCHSTART, (event) => this._start(event));
2237              EventHandler.on(this._element, EVENT_TOUCHMOVE, (event) => this._move(event));
2238              EventHandler.on(this._element, EVENT_TOUCHEND, (event) => this._end(event));
2239            }
2240          }
2241          _eventIsPointerPenTouch(event) {
2242            return this._supportPointerEvents && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH);
2243          }
2244          // Static
2245          static isSupported() {
2246            return "ontouchstart" in document.documentElement || navigator.maxTouchPoints > 0;
2247          }
2248        }
2249        const NAME$c = "carousel";
2250        const DATA_KEY$8 = "bs.carousel";
2251        const EVENT_KEY$8 = `.${DATA_KEY$8}`;
2252        const DATA_API_KEY$5 = ".data-api";
2253        const ARROW_LEFT_KEY$1 = "ArrowLeft";
2254        const ARROW_RIGHT_KEY$1 = "ArrowRight";
2255        const TOUCHEVENT_COMPAT_WAIT = 500;
2256        const ORDER_NEXT = "next";
2257        const ORDER_PREV = "prev";
2258        const DIRECTION_LEFT = "left";
2259        const DIRECTION_RIGHT = "right";
2260        const EVENT_SLIDE = `slide${EVENT_KEY$8}`;
2261        const EVENT_SLID = `slid${EVENT_KEY$8}`;
2262        const EVENT_KEYDOWN$1 = `keydown${EVENT_KEY$8}`;
2263        const EVENT_MOUSEENTER$1 = `mouseenter${EVENT_KEY$8}`;
2264        const EVENT_MOUSELEAVE$1 = `mouseleave${EVENT_KEY$8}`;
2265        const EVENT_DRAG_START = `dragstart${EVENT_KEY$8}`;
2266        const EVENT_LOAD_DATA_API$3 = `load${EVENT_KEY$8}${DATA_API_KEY$5}`;
2267        const EVENT_CLICK_DATA_API$5 = `click${EVENT_KEY$8}${DATA_API_KEY$5}`;
2268        const CLASS_NAME_CAROUSEL = "carousel";
2269        const CLASS_NAME_ACTIVE$2 = "active";
2270        const CLASS_NAME_SLIDE = "slide";
2271        const CLASS_NAME_END = "carousel-item-end";
2272        const CLASS_NAME_START = "carousel-item-start";
2273        const CLASS_NAME_NEXT = "carousel-item-next";
2274        const CLASS_NAME_PREV = "carousel-item-prev";
2275        const SELECTOR_ACTIVE = ".active";
2276        const SELECTOR_ITEM = ".carousel-item";
2277        const SELECTOR_ACTIVE_ITEM = SELECTOR_ACTIVE + SELECTOR_ITEM;
2278        const SELECTOR_ITEM_IMG = ".carousel-item img";
2279        const SELECTOR_INDICATORS = ".carousel-indicators";
2280        const SELECTOR_DATA_SLIDE = "[data-bs-slide], [data-bs-slide-to]";
2281        const SELECTOR_DATA_RIDE = '[data-bs-ride="carousel"]';
2282        const KEY_TO_DIRECTION = {
2283          [ARROW_LEFT_KEY$1]: DIRECTION_RIGHT,
2284          [ARROW_RIGHT_KEY$1]: DIRECTION_LEFT
2285        };
2286        const Default$b = {
2287          interval: 5e3,
2288          keyboard: true,
2289          pause: "hover",
2290          ride: false,
2291          touch: true,
2292          wrap: true
2293        };
2294        const DefaultType$b = {
2295          interval: "(number|boolean)",
2296          // TODO:v6 remove boolean support
2297          keyboard: "boolean",
2298          pause: "(string|boolean)",
2299          ride: "(boolean|string)",
2300          touch: "boolean",
2301          wrap: "boolean"
2302        };
2303        class Carousel extends BaseComponent {
2304          constructor(element, config3) {
2305            super(element, config3);
2306            this._interval = null;
2307            this._activeElement = null;
2308            this._isSliding = false;
2309            this.touchTimeout = null;
2310            this._swipeHelper = null;
2311            this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element);
2312            this._addEventListeners();
2313            if (this._config.ride === CLASS_NAME_CAROUSEL) {
2314              this.cycle();
2315            }
2316          }
2317          // Getters
2318          static get Default() {
2319            return Default$b;
2320          }
2321          static get DefaultType() {
2322            return DefaultType$b;
2323          }
2324          static get NAME() {
2325            return NAME$c;
2326          }
2327          // Public
2328          next() {
2329            this._slide(ORDER_NEXT);
2330          }
2331          nextWhenVisible() {
2332            if (!document.hidden && isVisible(this._element)) {
2333              this.next();
2334            }
2335          }
2336          prev() {
2337            this._slide(ORDER_PREV);
2338          }
2339          pause() {
2340            if (this._isSliding) {
2341              triggerTransitionEnd(this._element);
2342            }
2343            this._clearInterval();
2344          }
2345          cycle() {
2346            this._clearInterval();
2347            this._updateInterval();
2348            this._interval = setInterval(() => this.nextWhenVisible(), this._config.interval);
2349          }
2350          _maybeEnableCycle() {
2351            if (!this._config.ride) {
2352              return;
2353            }
2354            if (this._isSliding) {
2355              EventHandler.one(this._element, EVENT_SLID, () => this.cycle());
2356              return;
2357            }
2358            this.cycle();
2359          }
2360          to(index) {
2361            const items = this._getItems();
2362            if (index > items.length - 1 || index < 0) {
2363              return;
2364            }
2365            if (this._isSliding) {
2366              EventHandler.one(this._element, EVENT_SLID, () => this.to(index));
2367              return;
2368            }
2369            const activeIndex = this._getItemIndex(this._getActive());
2370            if (activeIndex === index) {
2371              return;
2372            }
2373            const order = index > activeIndex ? ORDER_NEXT : ORDER_PREV;
2374            this._slide(order, items[index]);
2375          }
2376          dispose() {
2377            if (this._swipeHelper) {
2378              this._swipeHelper.dispose();
2379            }
2380            super.dispose();
2381          }
2382          // Private
2383          _configAfterMerge(config3) {
2384            config3.defaultInterval = config3.interval;
2385            return config3;
2386          }
2387          _addEventListeners() {
2388            if (this._config.keyboard) {
2389              EventHandler.on(this._element, EVENT_KEYDOWN$1, (event) => this._keydown(event));
2390            }
2391            if (this._config.pause === "hover") {
2392              EventHandler.on(this._element, EVENT_MOUSEENTER$1, () => this.pause());
2393              EventHandler.on(this._element, EVENT_MOUSELEAVE$1, () => this._maybeEnableCycle());
2394            }
2395            if (this._config.touch && Swipe.isSupported()) {
2396              this._addTouchEventListeners();
2397            }
2398          }
2399          _addTouchEventListeners() {
2400            for (const img of SelectorEngine.find(SELECTOR_ITEM_IMG, this._element)) {
2401              EventHandler.on(img, EVENT_DRAG_START, (event) => event.preventDefault());
2402            }
2403            const endCallBack = () => {
2404              if (this._config.pause !== "hover") {
2405                return;
2406              }
2407              this.pause();
2408              if (this.touchTimeout) {
2409                clearTimeout(this.touchTimeout);
2410              }
2411              this.touchTimeout = setTimeout(() => this._maybeEnableCycle(), TOUCHEVENT_COMPAT_WAIT + this._config.interval);
2412            };
2413            const swipeConfig = {
2414              leftCallback: () => this._slide(this._directionToOrder(DIRECTION_LEFT)),
2415              rightCallback: () => this._slide(this._directionToOrder(DIRECTION_RIGHT)),
2416              endCallback: endCallBack
2417            };
2418            this._swipeHelper = new Swipe(this._element, swipeConfig);
2419          }
2420          _keydown(event) {
2421            if (/input|textarea/i.test(event.target.tagName)) {
2422              return;
2423            }
2424            const direction = KEY_TO_DIRECTION[event.key];
2425            if (direction) {
2426              event.preventDefault();
2427              this._slide(this._directionToOrder(direction));
2428            }
2429          }
2430          _getItemIndex(element) {
2431            return this._getItems().indexOf(element);
2432          }
2433          _setActiveIndicatorElement(index) {
2434            if (!this._indicatorsElement) {
2435              return;
2436            }
2437            const activeIndicator = SelectorEngine.findOne(SELECTOR_ACTIVE, this._indicatorsElement);
2438            activeIndicator.classList.remove(CLASS_NAME_ACTIVE$2);
2439            activeIndicator.removeAttribute("aria-current");
2440            const newActiveIndicator = SelectorEngine.findOne(`[data-bs-slide-to="${index}"]`, this._indicatorsElement);
2441            if (newActiveIndicator) {
2442              newActiveIndicator.classList.add(CLASS_NAME_ACTIVE$2);
2443              newActiveIndicator.setAttribute("aria-current", "true");
2444            }
2445          }
2446          _updateInterval() {
2447            const element = this._activeElement || this._getActive();
2448            if (!element) {
2449              return;
2450            }
2451            const elementInterval = Number.parseInt(element.getAttribute("data-bs-interval"), 10);
2452            this._config.interval = elementInterval || this._config.defaultInterval;
2453          }
2454          _slide(order, element = null) {
2455            if (this._isSliding) {
2456              return;
2457            }
2458            const activeElement = this._getActive();
2459            const isNext = order === ORDER_NEXT;
2460            const nextElement = element || getNextActiveElement(this._getItems(), activeElement, isNext, this._config.wrap);
2461            if (nextElement === activeElement) {
2462              return;
2463            }
2464            const nextElementIndex = this._getItemIndex(nextElement);
2465            const triggerEvent = (eventName) => {
2466              return EventHandler.trigger(this._element, eventName, {
2467                relatedTarget: nextElement,
2468                direction: this._orderToDirection(order),
2469                from: this._getItemIndex(activeElement),
2470                to: nextElementIndex
2471              });
2472            };
2473            const slideEvent = triggerEvent(EVENT_SLIDE);
2474            if (slideEvent.defaultPrevented) {
2475              return;
2476            }
2477            if (!activeElement || !nextElement) {
2478              return;
2479            }
2480            const isCycling = Boolean(this._interval);
2481            this.pause();
2482            this._isSliding = true;
2483            this._setActiveIndicatorElement(nextElementIndex);
2484            this._activeElement = nextElement;
2485            const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END;
2486            const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV;
2487            nextElement.classList.add(orderClassName);
2488            reflow(nextElement);
2489            activeElement.classList.add(directionalClassName);
2490            nextElement.classList.add(directionalClassName);
2491            const completeCallBack = () => {
2492              nextElement.classList.remove(directionalClassName, orderClassName);
2493              nextElement.classList.add(CLASS_NAME_ACTIVE$2);
2494              activeElement.classList.remove(CLASS_NAME_ACTIVE$2, orderClassName, directionalClassName);
2495              this._isSliding = false;
2496              triggerEvent(EVENT_SLID);
2497            };
2498            this._queueCallback(completeCallBack, activeElement, this._isAnimated());
2499            if (isCycling) {
2500              this.cycle();
2501            }
2502          }
2503          _isAnimated() {
2504            return this._element.classList.contains(CLASS_NAME_SLIDE);
2505          }
2506          _getActive() {
2507            return SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element);
2508          }
2509          _getItems() {
2510            return SelectorEngine.find(SELECTOR_ITEM, this._element);
2511          }
2512          _clearInterval() {
2513            if (this._interval) {
2514              clearInterval(this._interval);
2515              this._interval = null;
2516            }
2517          }
2518          _directionToOrder(direction) {
2519            if (isRTL()) {
2520              return direction === DIRECTION_LEFT ? ORDER_PREV : ORDER_NEXT;
2521            }
2522            return direction === DIRECTION_LEFT ? ORDER_NEXT : ORDER_PREV;
2523          }
2524          _orderToDirection(order) {
2525            if (isRTL()) {
2526              return order === ORDER_PREV ? DIRECTION_LEFT : DIRECTION_RIGHT;
2527            }
2528            return order === ORDER_PREV ? DIRECTION_RIGHT : DIRECTION_LEFT;
2529          }
2530          // Static
2531          static jQueryInterface(config3) {
2532            return this.each(function() {
2533              const data = Carousel.getOrCreateInstance(this, config3);
2534              if (typeof config3 === "number") {
2535                data.to(config3);
2536                return;
2537              }
2538              if (typeof config3 === "string") {
2539                if (data[config3] === void 0 || config3.startsWith("_") || config3 === "constructor") {
2540                  throw new TypeError(`No method named "${config3}"`);
2541                }
2542                data[config3]();
2543              }
2544            });
2545          }
2546        }
2547        EventHandler.on(document, EVENT_CLICK_DATA_API$5, SELECTOR_DATA_SLIDE, function(event) {
2548          const target = SelectorEngine.getElementFromSelector(this);
2549          if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {
2550            return;
2551          }
2552          event.preventDefault();
2553          const carousel = Carousel.getOrCreateInstance(target);
2554          const slideIndex = this.getAttribute("data-bs-slide-to");
2555          if (slideIndex) {
2556            carousel.to(slideIndex);
2557            carousel._maybeEnableCycle();
2558            return;
2559          }
2560          if (Manipulator.getDataAttribute(this, "slide") === "next") {
2561            carousel.next();
2562            carousel._maybeEnableCycle();
2563            return;
2564          }
2565          carousel.prev();
2566          carousel._maybeEnableCycle();
2567        });
2568        EventHandler.on(window, EVENT_LOAD_DATA_API$3, () => {
2569          const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE);
2570          for (const carousel of carousels) {
2571            Carousel.getOrCreateInstance(carousel);
2572          }
2573        });
2574        defineJQueryPlugin(Carousel);
2575        const NAME$b = "collapse";
2576        const DATA_KEY$7 = "bs.collapse";
2577        const EVENT_KEY$7 = `.${DATA_KEY$7}`;
2578        const DATA_API_KEY$4 = ".data-api";
2579        const EVENT_SHOW$6 = `show${EVENT_KEY$7}`;
2580        const EVENT_SHOWN$6 = `shown${EVENT_KEY$7}`;
2581        const EVENT_HIDE$6 = `hide${EVENT_KEY$7}`;
2582        const EVENT_HIDDEN$6 = `hidden${EVENT_KEY$7}`;
2583        const EVENT_CLICK_DATA_API$4 = `click${EVENT_KEY$7}${DATA_API_KEY$4}`;
2584        const CLASS_NAME_SHOW$7 = "show";
2585        const CLASS_NAME_COLLAPSE = "collapse";
2586        const CLASS_NAME_COLLAPSING = "collapsing";
2587        const CLASS_NAME_COLLAPSED = "collapsed";
2588        const CLASS_NAME_DEEPER_CHILDREN = `:scope .${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`;
2589        const CLASS_NAME_HORIZONTAL = "collapse-horizontal";
2590        const WIDTH = "width";
2591        const HEIGHT = "height";
2592        const SELECTOR_ACTIVES = ".collapse.show, .collapse.collapsing";
2593        const SELECTOR_DATA_TOGGLE$4 = '[data-bs-toggle="collapse"]';
2594        const Default$a = {
2595          parent: null,
2596          toggle: true
2597        };
2598        const DefaultType$a = {
2599          parent: "(null|element)",
2600          toggle: "boolean"
2601        };
2602        class Collapse extends BaseComponent {
2603          constructor(element, config3) {
2604            super(element, config3);
2605            this._isTransitioning = false;
2606            this._triggerArray = [];
2607            const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE$4);
2608            for (const elem of toggleList) {
2609              const selector3 = SelectorEngine.getSelectorFromElement(elem);
2610              const filterElement = SelectorEngine.find(selector3).filter((foundElement) => foundElement === this._element);
2611              if (selector3 !== null && filterElement.length) {
2612                this._triggerArray.push(elem);
2613              }
2614            }
2615            this._initializeChildren();
2616            if (!this._config.parent) {
2617              this._addAriaAndCollapsedClass(this._triggerArray, this._isShown());
2618            }
2619            if (this._config.toggle) {
2620              this.toggle();
2621            }
2622          }
2623          // Getters
2624          static get Default() {
2625            return Default$a;
2626          }
2627          static get DefaultType() {
2628            return DefaultType$a;
2629          }
2630          static get NAME() {
2631            return NAME$b;
2632          }
2633          // Public
2634          toggle() {
2635            if (this._isShown()) {
2636              this.hide();
2637            } else {
2638              this.show();
2639            }
2640          }
2641          show() {
2642            if (this._isTransitioning || this._isShown()) {
2643              return;
2644            }
2645            let activeChildren = [];
2646            if (this._config.parent) {
2647              activeChildren = this._getFirstLevelChildren(SELECTOR_ACTIVES).filter((element) => element !== this._element).map((element) => Collapse.getOrCreateInstance(element, {
2648                toggle: false
2649              }));
2650            }
2651            if (activeChildren.length && activeChildren[0]._isTransitioning) {
2652              return;
2653            }
2654            const startEvent = EventHandler.trigger(this._element, EVENT_SHOW$6);
2655            if (startEvent.defaultPrevented) {
2656              return;
2657            }
2658            for (const activeInstance of activeChildren) {
2659              activeInstance.hide();
2660            }
2661            const dimension = this._getDimension();
2662            this._element.classList.remove(CLASS_NAME_COLLAPSE);
2663            this._element.classList.add(CLASS_NAME_COLLAPSING);
2664            this._element.style[dimension] = 0;
2665            this._addAriaAndCollapsedClass(this._triggerArray, true);
2666            this._isTransitioning = true;
2667            const complete = () => {
2668              this._isTransitioning = false;
2669              this._element.classList.remove(CLASS_NAME_COLLAPSING);
2670              this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7);
2671              this._element.style[dimension] = "";
2672              EventHandler.trigger(this._element, EVENT_SHOWN$6);
2673            };
2674            const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
2675            const scrollSize = `scroll${capitalizedDimension}`;
2676            this._queueCallback(complete, this._element, true);
2677            this._element.style[dimension] = `${this._element[scrollSize]}px`;
2678          }
2679          hide() {
2680            if (this._isTransitioning || !this._isShown()) {
2681              return;
2682            }
2683            const startEvent = EventHandler.trigger(this._element, EVENT_HIDE$6);
2684            if (startEvent.defaultPrevented) {
2685              return;
2686            }
2687            const dimension = this._getDimension();
2688            this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`;
2689            reflow(this._element);
2690            this._element.classList.add(CLASS_NAME_COLLAPSING);
2691            this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7);
2692            for (const trigger of this._triggerArray) {
2693              const element = SelectorEngine.getElementFromSelector(trigger);
2694              if (element && !this._isShown(element)) {
2695                this._addAriaAndCollapsedClass([trigger], false);
2696              }
2697            }
2698            this._isTransitioning = true;
2699            const complete = () => {
2700              this._isTransitioning = false;
2701              this._element.classList.remove(CLASS_NAME_COLLAPSING);
2702              this._element.classList.add(CLASS_NAME_COLLAPSE);
2703              EventHandler.trigger(this._element, EVENT_HIDDEN$6);
2704            };
2705            this._element.style[dimension] = "";
2706            this._queueCallback(complete, this._element, true);
2707          }
2708          // Private
2709          _isShown(element = this._element) {
2710            return element.classList.contains(CLASS_NAME_SHOW$7);
2711          }
2712          _configAfterMerge(config3) {
2713            config3.toggle = Boolean(config3.toggle);
2714            config3.parent = getElement(config3.parent);
2715            return config3;
2716          }
2717          _getDimension() {
2718            return this._element.classList.contains(CLASS_NAME_HORIZONTAL) ? WIDTH : HEIGHT;
2719          }
2720          _initializeChildren() {
2721            if (!this._config.parent) {
2722              return;
2723            }
2724            const children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE$4);
2725            for (const element of children) {
2726              const selected = SelectorEngine.getElementFromSelector(element);
2727              if (selected) {
2728                this._addAriaAndCollapsedClass([element], this._isShown(selected));
2729              }
2730            }
2731          }
2732          _getFirstLevelChildren(selector3) {
2733            const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent);
2734            return SelectorEngine.find(selector3, this._config.parent).filter((element) => !children.includes(element));
2735          }
2736          _addAriaAndCollapsedClass(triggerArray, isOpen) {
2737            if (!triggerArray.length) {
2738              return;
2739            }
2740            for (const element of triggerArray) {
2741              element.classList.toggle(CLASS_NAME_COLLAPSED, !isOpen);
2742              element.setAttribute("aria-expanded", isOpen);
2743            }
2744          }
2745          // Static
2746          static jQueryInterface(config3) {
2747            const _config2 = {};
2748            if (typeof config3 === "string" && /show|hide/.test(config3)) {
2749              _config2.toggle = false;
2750            }
2751            return this.each(function() {
2752              const data = Collapse.getOrCreateInstance(this, _config2);
2753              if (typeof config3 === "string") {
2754                if (typeof data[config3] === "undefined") {
2755                  throw new TypeError(`No method named "${config3}"`);
2756                }
2757                data[config3]();
2758              }
2759            });
2760          }
2761        }
2762        EventHandler.on(document, EVENT_CLICK_DATA_API$4, SELECTOR_DATA_TOGGLE$4, function(event) {
2763          if (event.target.tagName === "A" || event.delegateTarget && event.delegateTarget.tagName === "A") {
2764            event.preventDefault();
2765          }
2766          for (const element of SelectorEngine.getMultipleElementsFromSelector(this)) {
2767            Collapse.getOrCreateInstance(element, {
2768              toggle: false
2769            }).toggle();
2770          }
2771        });
2772        defineJQueryPlugin(Collapse);
2773        const NAME$a = "dropdown";
2774        const DATA_KEY$6 = "bs.dropdown";
2775        const EVENT_KEY$6 = `.${DATA_KEY$6}`;
2776        const DATA_API_KEY$3 = ".data-api";
2777        const ESCAPE_KEY$2 = "Escape";
2778        const TAB_KEY$1 = "Tab";
2779        const ARROW_UP_KEY$1 = "ArrowUp";
2780        const ARROW_DOWN_KEY$1 = "ArrowDown";
2781        const RIGHT_MOUSE_BUTTON = 2;
2782        const EVENT_HIDE$5 = `hide${EVENT_KEY$6}`;
2783        const EVENT_HIDDEN$5 = `hidden${EVENT_KEY$6}`;
2784        const EVENT_SHOW$5 = `show${EVENT_KEY$6}`;
2785        const EVENT_SHOWN$5 = `shown${EVENT_KEY$6}`;
2786        const EVENT_CLICK_DATA_API$3 = `click${EVENT_KEY$6}${DATA_API_KEY$3}`;
2787        const EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY$6}${DATA_API_KEY$3}`;
2788        const EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY$6}${DATA_API_KEY$3}`;
2789        const CLASS_NAME_SHOW$6 = "show";
2790        const CLASS_NAME_DROPUP = "dropup";
2791        const CLASS_NAME_DROPEND = "dropend";
2792        const CLASS_NAME_DROPSTART = "dropstart";
2793        const CLASS_NAME_DROPUP_CENTER = "dropup-center";
2794        const CLASS_NAME_DROPDOWN_CENTER = "dropdown-center";
2795        const SELECTOR_DATA_TOGGLE$3 = '[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)';
2796        const SELECTOR_DATA_TOGGLE_SHOWN = `${SELECTOR_DATA_TOGGLE$3}.${CLASS_NAME_SHOW$6}`;
2797        const SELECTOR_MENU = ".dropdown-menu";
2798        const SELECTOR_NAVBAR = ".navbar";
2799        const SELECTOR_NAVBAR_NAV = ".navbar-nav";
2800        const SELECTOR_VISIBLE_ITEMS = ".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)";
2801        const PLACEMENT_TOP = isRTL() ? "top-end" : "top-start";
2802        const PLACEMENT_TOPEND = isRTL() ? "top-start" : "top-end";
2803        const PLACEMENT_BOTTOM = isRTL() ? "bottom-end" : "bottom-start";
2804        const PLACEMENT_BOTTOMEND = isRTL() ? "bottom-start" : "bottom-end";
2805        const PLACEMENT_RIGHT = isRTL() ? "left-start" : "right-start";
2806        const PLACEMENT_LEFT = isRTL() ? "right-start" : "left-start";
2807        const PLACEMENT_TOPCENTER = "top";
2808        const PLACEMENT_BOTTOMCENTER = "bottom";
2809        const Default$9 = {
2810          autoClose: true,
2811          boundary: "clippingParents",
2812          display: "dynamic",
2813          offset: [0, 2],
2814          popperConfig: null,
2815          reference: "toggle"
2816        };
2817        const DefaultType$9 = {
2818          autoClose: "(boolean|string)",
2819          boundary: "(string|element)",
2820          display: "string",
2821          offset: "(array|string|function)",
2822          popperConfig: "(null|object|function)",
2823          reference: "(string|element|object)"
2824        };
2825        class Dropdown extends BaseComponent {
2826          constructor(element, config3) {
2827            super(element, config3);
2828            this._popper = null;
2829            this._parent = this._element.parentNode;
2830            this._menu = SelectorEngine.next(this._element, SELECTOR_MENU)[0] || SelectorEngine.prev(this._element, SELECTOR_MENU)[0] || SelectorEngine.findOne(SELECTOR_MENU, this._parent);
2831            this._inNavbar = this._detectNavbar();
2832          }
2833          // Getters
2834          static get Default() {
2835            return Default$9;
2836          }
2837          static get DefaultType() {
2838            return DefaultType$9;
2839          }
2840          static get NAME() {
2841            return NAME$a;
2842          }
2843          // Public
2844          toggle() {
2845            return this._isShown() ? this.hide() : this.show();
2846          }
2847          show() {
2848            if (isDisabled(this._element) || this._isShown()) {
2849              return;
2850            }
2851            const relatedTarget = {
2852              relatedTarget: this._element
2853            };
2854            const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$5, relatedTarget);
2855            if (showEvent.defaultPrevented) {
2856              return;
2857            }
2858            this._createPopper();
2859            if ("ontouchstart" in document.documentElement && !this._parent.closest(SELECTOR_NAVBAR_NAV)) {
2860              for (const element of [].concat(...document.body.children)) {
2861                EventHandler.on(element, "mouseover", noop);
2862              }
2863            }
2864            this._element.focus();
2865            this._element.setAttribute("aria-expanded", true);
2866            this._menu.classList.add(CLASS_NAME_SHOW$6);
2867            this._element.classList.add(CLASS_NAME_SHOW$6);
2868            EventHandler.trigger(this._element, EVENT_SHOWN$5, relatedTarget);
2869          }
2870          hide() {
2871            if (isDisabled(this._element) || !this._isShown()) {
2872              return;
2873            }
2874            const relatedTarget = {
2875              relatedTarget: this._element
2876            };
2877            this._completeHide(relatedTarget);
2878          }
2879          dispose() {
2880            if (this._popper) {
2881              this._popper.destroy();
2882            }
2883            super.dispose();
2884          }
2885          update() {
2886            this._inNavbar = this._detectNavbar();
2887            if (this._popper) {
2888              this._popper.update();
2889            }
2890          }
2891          // Private
2892          _completeHide(relatedTarget) {
2893            const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$5, relatedTarget);
2894            if (hideEvent.defaultPrevented) {
2895              return;
2896            }
2897            if ("ontouchstart" in document.documentElement) {
2898              for (const element of [].concat(...document.body.children)) {
2899                EventHandler.off(element, "mouseover", noop);
2900              }
2901            }
2902            if (this._popper) {
2903              this._popper.destroy();
2904            }
2905            this._menu.classList.remove(CLASS_NAME_SHOW$6);
2906            this._element.classList.remove(CLASS_NAME_SHOW$6);
2907            this._element.setAttribute("aria-expanded", "false");
2908            Manipulator.removeDataAttribute(this._menu, "popper");
2909            EventHandler.trigger(this._element, EVENT_HIDDEN$5, relatedTarget);
2910          }
2911          _getConfig(config3) {
2912            config3 = super._getConfig(config3);
2913            if (typeof config3.reference === "object" && !isElement(config3.reference) && typeof config3.reference.getBoundingClientRect !== "function") {
2914              throw new TypeError(`${NAME$a.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);
2915            }
2916            return config3;
2917          }
2918          _createPopper() {
2919            if (typeof Popper__namespace === "undefined") {
2920              throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org/docs/v2/)");
2921            }
2922            let referenceElement = this._element;
2923            if (this._config.reference === "parent") {
2924              referenceElement = this._parent;
2925            } else if (isElement(this._config.reference)) {
2926              referenceElement = getElement(this._config.reference);
2927            } else if (typeof this._config.reference === "object") {
2928              referenceElement = this._config.reference;
2929            }
2930            const popperConfig = this._getPopperConfig();
2931            this._popper = Popper__namespace.createPopper(referenceElement, this._menu, popperConfig);
2932          }
2933          _isShown() {
2934            return this._menu.classList.contains(CLASS_NAME_SHOW$6);
2935          }
2936          _getPlacement() {
2937            const parentDropdown = this._parent;
2938            if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) {
2939              return PLACEMENT_RIGHT;
2940            }
2941            if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) {
2942              return PLACEMENT_LEFT;
2943            }
2944            if (parentDropdown.classList.contains(CLASS_NAME_DROPUP_CENTER)) {
2945              return PLACEMENT_TOPCENTER;
2946            }
2947            if (parentDropdown.classList.contains(CLASS_NAME_DROPDOWN_CENTER)) {
2948              return PLACEMENT_BOTTOMCENTER;
2949            }
2950            const isEnd = getComputedStyle(this._menu).getPropertyValue("--bs-position").trim() === "end";
2951            if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {
2952              return isEnd ? PLACEMENT_TOPEND : PLACEMENT_TOP;
2953            }
2954            return isEnd ? PLACEMENT_BOTTOMEND : PLACEMENT_BOTTOM;
2955          }
2956          _detectNavbar() {
2957            return this._element.closest(SELECTOR_NAVBAR) !== null;
2958          }
2959          _getOffset() {
2960            const {
2961              offset
2962            } = this._config;
2963            if (typeof offset === "string") {
2964              return offset.split(",").map((value) => Number.parseInt(value, 10));
2965            }
2966            if (typeof offset === "function") {
2967              return (popperData) => offset(popperData, this._element);
2968            }
2969            return offset;
2970          }
2971          _getPopperConfig() {
2972            const defaultBsPopperConfig = {
2973              placement: this._getPlacement(),
2974              modifiers: [{
2975                name: "preventOverflow",
2976                options: {
2977                  boundary: this._config.boundary
2978                }
2979              }, {
2980                name: "offset",
2981                options: {
2982                  offset: this._getOffset()
2983                }
2984              }]
2985            };
2986            if (this._inNavbar || this._config.display === "static") {
2987              Manipulator.setDataAttribute(this._menu, "popper", "static");
2988              defaultBsPopperConfig.modifiers = [{
2989                name: "applyStyles",
2990                enabled: false
2991              }];
2992            }
2993            return {
2994              ...defaultBsPopperConfig,
2995              ...execute2(this._config.popperConfig, [void 0, defaultBsPopperConfig])
2996            };
2997          }
2998          _selectMenuItem({
2999            key,
3000            target
3001          }) {
3002            const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, this._menu).filter((element) => isVisible(element));
3003            if (!items.length) {
3004              return;
3005            }
3006            getNextActiveElement(items, target, key === ARROW_DOWN_KEY$1, !items.includes(target)).focus();
3007          }
3008          // Static
3009          static jQueryInterface(config3) {
3010            return this.each(function() {
3011              const data = Dropdown.getOrCreateInstance(this, config3);
3012              if (typeof config3 !== "string") {
3013                return;
3014              }
3015              if (typeof data[config3] === "undefined") {
3016                throw new TypeError(`No method named "${config3}"`);
3017              }
3018              data[config3]();
3019            });
3020          }
3021          static clearMenus(event) {
3022            if (event.button === RIGHT_MOUSE_BUTTON || event.type === "keyup" && event.key !== TAB_KEY$1) {
3023              return;
3024            }
3025            const openToggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE_SHOWN);
3026            for (const toggle of openToggles) {
3027              const context3 = Dropdown.getInstance(toggle);
3028              if (!context3 || context3._config.autoClose === false) {
3029                continue;
3030              }
3031              const composedPath = event.composedPath();
3032              const isMenuTarget = composedPath.includes(context3._menu);
3033              if (composedPath.includes(context3._element) || context3._config.autoClose === "inside" && !isMenuTarget || context3._config.autoClose === "outside" && isMenuTarget) {
3034                continue;
3035              }
3036              if (context3._menu.contains(event.target) && (event.type === "keyup" && event.key === TAB_KEY$1 || /input|select|option|textarea|form/i.test(event.target.tagName))) {
3037                continue;
3038              }
3039              const relatedTarget = {
3040                relatedTarget: context3._element
3041              };
3042              if (event.type === "click") {
3043                relatedTarget.clickEvent = event;
3044              }
3045              context3._completeHide(relatedTarget);
3046            }
3047          }
3048          static dataApiKeydownHandler(event) {
3049            const isInput2 = /input|textarea/i.test(event.target.tagName);
3050            const isEscapeEvent = event.key === ESCAPE_KEY$2;
3051            const isUpOrDownEvent = [ARROW_UP_KEY$1, ARROW_DOWN_KEY$1].includes(event.key);
3052            if (!isUpOrDownEvent && !isEscapeEvent) {
3053              return;
3054            }
3055            if (isInput2 && !isEscapeEvent) {
3056              return;
3057            }
3058            event.preventDefault();
3059            const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE$3) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.next(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.findOne(SELECTOR_DATA_TOGGLE$3, event.delegateTarget.parentNode);
3060            const instance = Dropdown.getOrCreateInstance(getToggleButton);
3061            if (isUpOrDownEvent) {
3062              event.stopPropagation();
3063              instance.show();
3064              instance._selectMenuItem(event);
3065              return;
3066            }
3067            if (instance._isShown()) {
3068              event.stopPropagation();
3069              instance.hide();
3070              getToggleButton.focus();
3071            }
3072          }
3073        }
3074        EventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE$3, Dropdown.dataApiKeydownHandler);
3075        EventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown.dataApiKeydownHandler);
3076        EventHandler.on(document, EVENT_CLICK_DATA_API$3, Dropdown.clearMenus);
3077        EventHandler.on(document, EVENT_KEYUP_DATA_API, Dropdown.clearMenus);
3078        EventHandler.on(document, EVENT_CLICK_DATA_API$3, SELECTOR_DATA_TOGGLE$3, function(event) {
3079          event.preventDefault();
3080          Dropdown.getOrCreateInstance(this).toggle();
3081        });
3082        defineJQueryPlugin(Dropdown);
3083        const NAME$9 = "backdrop";
3084        const CLASS_NAME_FADE$4 = "fade";
3085        const CLASS_NAME_SHOW$5 = "show";
3086        const EVENT_MOUSEDOWN = `mousedown.bs.${NAME$9}`;
3087        const Default$8 = {
3088          className: "modal-backdrop",
3089          clickCallback: null,
3090          isAnimated: false,
3091          isVisible: true,
3092          // if false, we use the backdrop helper without adding any element to the dom
3093          rootElement: "body"
3094          // give the choice to place backdrop under different elements
3095        };
3096        const DefaultType$8 = {
3097          className: "string",
3098          clickCallback: "(function|null)",
3099          isAnimated: "boolean",
3100          isVisible: "boolean",
3101          rootElement: "(element|string)"
3102        };
3103        class Backdrop extends Config {
3104          constructor(config3) {
3105            super();
3106            this._config = this._getConfig(config3);
3107            this._isAppended = false;
3108            this._element = null;
3109          }
3110          // Getters
3111          static get Default() {
3112            return Default$8;
3113          }
3114          static get DefaultType() {
3115            return DefaultType$8;
3116          }
3117          static get NAME() {
3118            return NAME$9;
3119          }
3120          // Public
3121          show(callback) {
3122            if (!this._config.isVisible) {
3123              execute2(callback);
3124              return;
3125            }
3126            this._append();
3127            const element = this._getElement();
3128            if (this._config.isAnimated) {
3129              reflow(element);
3130            }
3131            element.classList.add(CLASS_NAME_SHOW$5);
3132            this._emulateAnimation(() => {
3133              execute2(callback);
3134            });
3135          }
3136          hide(callback) {
3137            if (!this._config.isVisible) {
3138              execute2(callback);
3139              return;
3140            }
3141            this._getElement().classList.remove(CLASS_NAME_SHOW$5);
3142            this._emulateAnimation(() => {
3143              this.dispose();
3144              execute2(callback);
3145            });
3146          }
3147          dispose() {
3148            if (!this._isAppended) {
3149              return;
3150            }
3151            EventHandler.off(this._element, EVENT_MOUSEDOWN);
3152            this._element.remove();
3153            this._isAppended = false;
3154          }
3155          // Private
3156          _getElement() {
3157            if (!this._element) {
3158              const backdrop = document.createElement("div");
3159              backdrop.className = this._config.className;
3160              if (this._config.isAnimated) {
3161                backdrop.classList.add(CLASS_NAME_FADE$4);
3162              }
3163              this._element = backdrop;
3164            }
3165            return this._element;
3166          }
3167          _configAfterMerge(config3) {
3168            config3.rootElement = getElement(config3.rootElement);
3169            return config3;
3170          }
3171          _append() {
3172            if (this._isAppended) {
3173              return;
3174            }
3175            const element = this._getElement();
3176            this._config.rootElement.append(element);
3177            EventHandler.on(element, EVENT_MOUSEDOWN, () => {
3178              execute2(this._config.clickCallback);
3179            });
3180            this._isAppended = true;
3181          }
3182          _emulateAnimation(callback) {
3183            executeAfterTransition(callback, this._getElement(), this._config.isAnimated);
3184          }
3185        }
3186        const NAME$8 = "focustrap";
3187        const DATA_KEY$5 = "bs.focustrap";
3188        const EVENT_KEY$5 = `.${DATA_KEY$5}`;
3189        const EVENT_FOCUSIN$2 = `focusin${EVENT_KEY$5}`;
3190        const EVENT_KEYDOWN_TAB = `keydown.tab${EVENT_KEY$5}`;
3191        const TAB_KEY = "Tab";
3192        const TAB_NAV_FORWARD = "forward";
3193        const TAB_NAV_BACKWARD = "backward";
3194        const Default$7 = {
3195          autofocus: true,
3196          trapElement: null
3197          // The element to trap focus inside of
3198        };
3199        const DefaultType$7 = {
3200          autofocus: "boolean",
3201          trapElement: "element"
3202        };
3203        class FocusTrap extends Config {
3204          constructor(config3) {
3205            super();
3206            this._config = this._getConfig(config3);
3207            this._isActive = false;
3208            this._lastTabNavDirection = null;
3209          }
3210          // Getters
3211          static get Default() {
3212            return Default$7;
3213          }
3214          static get DefaultType() {
3215            return DefaultType$7;
3216          }
3217          static get NAME() {
3218            return NAME$8;
3219          }
3220          // Public
3221          activate() {
3222            if (this._isActive) {
3223              return;
3224            }
3225            if (this._config.autofocus) {
3226              this._config.trapElement.focus();
3227            }
3228            EventHandler.off(document, EVENT_KEY$5);
3229            EventHandler.on(document, EVENT_FOCUSIN$2, (event) => this._handleFocusin(event));
3230            EventHandler.on(document, EVENT_KEYDOWN_TAB, (event) => this._handleKeydown(event));
3231            this._isActive = true;
3232          }
3233          deactivate() {
3234            if (!this._isActive) {
3235              return;
3236            }
3237            this._isActive = false;
3238            EventHandler.off(document, EVENT_KEY$5);
3239          }
3240          // Private
3241          _handleFocusin(event) {
3242            const {
3243              trapElement
3244            } = this._config;
3245            if (event.target === document || event.target === trapElement || trapElement.contains(event.target)) {
3246              return;
3247            }
3248            const elements = SelectorEngine.focusableChildren(trapElement);
3249            if (elements.length === 0) {
3250              trapElement.focus();
3251            } else if (this._lastTabNavDirection === TAB_NAV_BACKWARD) {
3252              elements[elements.length - 1].focus();
3253            } else {
3254              elements[0].focus();
3255            }
3256          }
3257          _handleKeydown(event) {
3258            if (event.key !== TAB_KEY) {
3259              return;
3260            }
3261            this._lastTabNavDirection = event.shiftKey ? TAB_NAV_BACKWARD : TAB_NAV_FORWARD;
3262          }
3263        }
3264        const SELECTOR_FIXED_CONTENT = ".fixed-top, .fixed-bottom, .is-fixed, .sticky-top";
3265        const SELECTOR_STICKY_CONTENT = ".sticky-top";
3266        const PROPERTY_PADDING = "padding-right";
3267        const PROPERTY_MARGIN = "margin-right";
3268        class ScrollBarHelper {
3269          constructor() {
3270            this._element = document.body;
3271          }
3272          // Public
3273          getWidth() {
3274            const documentWidth = document.documentElement.clientWidth;
3275            return Math.abs(window.innerWidth - documentWidth);
3276          }
3277          hide() {
3278            const width = this.getWidth();
3279            this._disableOverFlow();
3280            this._setElementAttributes(this._element, PROPERTY_PADDING, (calculatedValue) => calculatedValue + width);
3281            this._setElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING, (calculatedValue) => calculatedValue + width);
3282            this._setElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN, (calculatedValue) => calculatedValue - width);
3283          }
3284          reset() {
3285            this._resetElementAttributes(this._element, "overflow");
3286            this._resetElementAttributes(this._element, PROPERTY_PADDING);
3287            this._resetElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING);
3288            this._resetElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN);
3289          }
3290          isOverflowing() {
3291            return this.getWidth() > 0;
3292          }
3293          // Private
3294          _disableOverFlow() {
3295            this._saveInitialAttribute(this._element, "overflow");
3296            this._element.style.overflow = "hidden";
3297          }
3298          _setElementAttributes(selector3, styleProperty, callback) {
3299            const scrollbarWidth = this.getWidth();
3300            const manipulationCallBack = (element) => {
3301              if (element !== this._element && window.innerWidth > element.clientWidth + scrollbarWidth) {
3302                return;
3303              }
3304              this._saveInitialAttribute(element, styleProperty);
3305              const calculatedValue = window.getComputedStyle(element).getPropertyValue(styleProperty);
3306              element.style.setProperty(styleProperty, `${callback(Number.parseFloat(calculatedValue))}px`);
3307            };
3308            this._applyManipulationCallback(selector3, manipulationCallBack);
3309          }
3310          _saveInitialAttribute(element, styleProperty) {
3311            const actualValue = element.style.getPropertyValue(styleProperty);
3312            if (actualValue) {
3313              Manipulator.setDataAttribute(element, styleProperty, actualValue);
3314            }
3315          }
3316          _resetElementAttributes(selector3, styleProperty) {
3317            const manipulationCallBack = (element) => {
3318              const value = Manipulator.getDataAttribute(element, styleProperty);
3319              if (value === null) {
3320                element.style.removeProperty(styleProperty);
3321                return;
3322              }
3323              Manipulator.removeDataAttribute(element, styleProperty);
3324              element.style.setProperty(styleProperty, value);
3325            };
3326            this._applyManipulationCallback(selector3, manipulationCallBack);
3327          }
3328          _applyManipulationCallback(selector3, callBack) {
3329            if (isElement(selector3)) {
3330              callBack(selector3);
3331              return;
3332            }
3333            for (const sel of SelectorEngine.find(selector3, this._element)) {
3334              callBack(sel);
3335            }
3336          }
3337        }
3338        const NAME$7 = "modal";
3339        const DATA_KEY$4 = "bs.modal";
3340        const EVENT_KEY$4 = `.${DATA_KEY$4}`;
3341        const DATA_API_KEY$2 = ".data-api";
3342        const ESCAPE_KEY$1 = "Escape";
3343        const EVENT_HIDE$4 = `hide${EVENT_KEY$4}`;
3344        const EVENT_HIDE_PREVENTED$1 = `hidePrevented${EVENT_KEY$4}`;
3345        const EVENT_HIDDEN$4 = `hidden${EVENT_KEY$4}`;
3346        const EVENT_SHOW$4 = `show${EVENT_KEY$4}`;
3347        const EVENT_SHOWN$4 = `shown${EVENT_KEY$4}`;
3348        const EVENT_RESIZE$1 = `resize${EVENT_KEY$4}`;
3349        const EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY$4}`;
3350        const EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY$4}`;
3351        const EVENT_KEYDOWN_DISMISS$1 = `keydown.dismiss${EVENT_KEY$4}`;
3352        const EVENT_CLICK_DATA_API$2 = `click${EVENT_KEY$4}${DATA_API_KEY$2}`;
3353        const CLASS_NAME_OPEN = "modal-open";
3354        const CLASS_NAME_FADE$3 = "fade";
3355        const CLASS_NAME_SHOW$4 = "show";
3356        const CLASS_NAME_STATIC = "modal-static";
3357        const OPEN_SELECTOR$1 = ".modal.show";
3358        const SELECTOR_DIALOG = ".modal-dialog";
3359        const SELECTOR_MODAL_BODY = ".modal-body";
3360        const SELECTOR_DATA_TOGGLE$2 = '[data-bs-toggle="modal"]';
3361        const Default$6 = {
3362          backdrop: true,
3363          focus: true,
3364          keyboard: true
3365        };
3366        const DefaultType$6 = {
3367          backdrop: "(boolean|string)",
3368          focus: "boolean",
3369          keyboard: "boolean"
3370        };
3371        class Modal extends BaseComponent {
3372          constructor(element, config3) {
3373            super(element, config3);
3374            this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, this._element);
3375            this._backdrop = this._initializeBackDrop();
3376            this._focustrap = this._initializeFocusTrap();
3377            this._isShown = false;
3378            this._isTransitioning = false;
3379            this._scrollBar = new ScrollBarHelper();
3380            this._addEventListeners();
3381          }
3382          // Getters
3383          static get Default() {
3384            return Default$6;
3385          }
3386          static get DefaultType() {
3387            return DefaultType$6;
3388          }
3389          static get NAME() {
3390            return NAME$7;
3391          }
3392          // Public
3393          toggle(relatedTarget) {
3394            return this._isShown ? this.hide() : this.show(relatedTarget);
3395          }
3396          show(relatedTarget) {
3397            if (this._isShown || this._isTransitioning) {
3398              return;
3399            }
3400            const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$4, {
3401              relatedTarget
3402            });
3403            if (showEvent.defaultPrevented) {
3404              return;
3405            }
3406            this._isShown = true;
3407            this._isTransitioning = true;
3408            this._scrollBar.hide();
3409            document.body.classList.add(CLASS_NAME_OPEN);
3410            this._adjustDialog();
3411            this._backdrop.show(() => this._showElement(relatedTarget));
3412          }
3413          hide() {
3414            if (!this._isShown || this._isTransitioning) {
3415              return;
3416            }
3417            const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$4);
3418            if (hideEvent.defaultPrevented) {
3419              return;
3420            }
3421            this._isShown = false;
3422            this._isTransitioning = true;
3423            this._focustrap.deactivate();
3424            this._element.classList.remove(CLASS_NAME_SHOW$4);
3425            this._queueCallback(() => this._hideModal(), this._element, this._isAnimated());
3426          }
3427          dispose() {
3428            EventHandler.off(window, EVENT_KEY$4);
3429            EventHandler.off(this._dialog, EVENT_KEY$4);
3430            this._backdrop.dispose();
3431            this._focustrap.deactivate();
3432            super.dispose();
3433          }
3434          handleUpdate() {
3435            this._adjustDialog();
3436          }
3437          // Private
3438          _initializeBackDrop() {
3439            return new Backdrop({
3440              isVisible: Boolean(this._config.backdrop),
3441              // 'static' option will be translated to true, and booleans will keep their value,
3442              isAnimated: this._isAnimated()
3443            });
3444          }
3445          _initializeFocusTrap() {
3446            return new FocusTrap({
3447              trapElement: this._element
3448            });
3449          }
3450          _showElement(relatedTarget) {
3451            if (!document.body.contains(this._element)) {
3452              document.body.append(this._element);
3453            }
3454            this._element.style.display = "block";
3455            this._element.removeAttribute("aria-hidden");
3456            this._element.setAttribute("aria-modal", true);
3457            this._element.setAttribute("role", "dialog");
3458            this._element.scrollTop = 0;
3459            const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog);
3460            if (modalBody) {
3461              modalBody.scrollTop = 0;
3462            }
3463            reflow(this._element);
3464            this._element.classList.add(CLASS_NAME_SHOW$4);
3465            const transitionComplete = () => {
3466              if (this._config.focus) {
3467                this._focustrap.activate();
3468              }
3469              this._isTransitioning = false;
3470              EventHandler.trigger(this._element, EVENT_SHOWN$4, {
3471                relatedTarget
3472              });
3473            };
3474            this._queueCallback(transitionComplete, this._dialog, this._isAnimated());
3475          }
3476          _addEventListeners() {
3477            EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS$1, (event) => {
3478              if (event.key !== ESCAPE_KEY$1) {
3479                return;
3480              }
3481              if (this._config.keyboard) {
3482                this.hide();
3483                return;
3484              }
3485              this._triggerBackdropTransition();
3486            });
3487            EventHandler.on(window, EVENT_RESIZE$1, () => {
3488              if (this._isShown && !this._isTransitioning) {
3489                this._adjustDialog();
3490              }
3491            });
3492            EventHandler.on(this._element, EVENT_MOUSEDOWN_DISMISS, (event) => {
3493              EventHandler.one(this._element, EVENT_CLICK_DISMISS, (event2) => {
3494                if (this._element !== event.target || this._element !== event2.target) {
3495                  return;
3496                }
3497                if (this._config.backdrop === "static") {
3498                  this._triggerBackdropTransition();
3499                  return;
3500                }
3501                if (this._config.backdrop) {
3502                  this.hide();
3503                }
3504              });
3505            });
3506          }
3507          _hideModal() {
3508            this._element.style.display = "none";
3509            this._element.setAttribute("aria-hidden", true);
3510            this._element.removeAttribute("aria-modal");
3511            this._element.removeAttribute("role");
3512            this._isTransitioning = false;
3513            this._backdrop.hide(() => {
3514              document.body.classList.remove(CLASS_NAME_OPEN);
3515              this._resetAdjustments();
3516              this._scrollBar.reset();
3517              EventHandler.trigger(this._element, EVENT_HIDDEN$4);
3518            });
3519          }
3520          _isAnimated() {
3521            return this._element.classList.contains(CLASS_NAME_FADE$3);
3522          }
3523          _triggerBackdropTransition() {
3524            const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED$1);
3525            if (hideEvent.defaultPrevented) {
3526              return;
3527            }
3528            const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
3529            const initialOverflowY = this._element.style.overflowY;
3530            if (initialOverflowY === "hidden" || this._element.classList.contains(CLASS_NAME_STATIC)) {
3531              return;
3532            }
3533            if (!isModalOverflowing) {
3534              this._element.style.overflowY = "hidden";
3535            }
3536            this._element.classList.add(CLASS_NAME_STATIC);
3537            this._queueCallback(() => {
3538              this._element.classList.remove(CLASS_NAME_STATIC);
3539              this._queueCallback(() => {
3540                this._element.style.overflowY = initialOverflowY;
3541              }, this._dialog);
3542            }, this._dialog);
3543            this._element.focus();
3544          }
3545          /**
3546           * The following methods are used to handle overflowing modals
3547           */
3548          _adjustDialog() {
3549            const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
3550            const scrollbarWidth = this._scrollBar.getWidth();
3551            const isBodyOverflowing = scrollbarWidth > 0;
3552            if (isBodyOverflowing && !isModalOverflowing) {
3553              const property = isRTL() ? "paddingLeft" : "paddingRight";
3554              this._element.style[property] = `${scrollbarWidth}px`;
3555            }
3556            if (!isBodyOverflowing && isModalOverflowing) {
3557              const property = isRTL() ? "paddingRight" : "paddingLeft";
3558              this._element.style[property] = `${scrollbarWidth}px`;
3559            }
3560          }
3561          _resetAdjustments() {
3562            this._element.style.paddingLeft = "";
3563            this._element.style.paddingRight = "";
3564          }
3565          // Static
3566          static jQueryInterface(config3, relatedTarget) {
3567            return this.each(function() {
3568              const data = Modal.getOrCreateInstance(this, config3);
3569              if (typeof config3 !== "string") {
3570                return;
3571              }
3572              if (typeof data[config3] === "undefined") {
3573                throw new TypeError(`No method named "${config3}"`);
3574              }
3575              data[config3](relatedTarget);
3576            });
3577          }
3578        }
3579        EventHandler.on(document, EVENT_CLICK_DATA_API$2, SELECTOR_DATA_TOGGLE$2, function(event) {
3580          const target = SelectorEngine.getElementFromSelector(this);
3581          if (["A", "AREA"].includes(this.tagName)) {
3582            event.preventDefault();
3583          }
3584          EventHandler.one(target, EVENT_SHOW$4, (showEvent) => {
3585            if (showEvent.defaultPrevented) {
3586              return;
3587            }
3588            EventHandler.one(target, EVENT_HIDDEN$4, () => {
3589              if (isVisible(this)) {
3590                this.focus();
3591              }
3592            });
3593          });
3594          const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR$1);
3595          if (alreadyOpen) {
3596            Modal.getInstance(alreadyOpen).hide();
3597          }
3598          const data = Modal.getOrCreateInstance(target);
3599          data.toggle(this);
3600        });
3601        enableDismissTrigger(Modal);
3602        defineJQueryPlugin(Modal);
3603        const NAME$6 = "offcanvas";
3604        const DATA_KEY$3 = "bs.offcanvas";
3605        const EVENT_KEY$3 = `.${DATA_KEY$3}`;
3606        const DATA_API_KEY$1 = ".data-api";
3607        const EVENT_LOAD_DATA_API$2 = `load${EVENT_KEY$3}${DATA_API_KEY$1}`;
3608        const ESCAPE_KEY = "Escape";
3609        const CLASS_NAME_SHOW$3 = "show";
3610        const CLASS_NAME_SHOWING$1 = "showing";
3611        const CLASS_NAME_HIDING = "hiding";
3612        const CLASS_NAME_BACKDROP = "offcanvas-backdrop";
3613        const OPEN_SELECTOR = ".offcanvas.show";
3614        const EVENT_SHOW$3 = `show${EVENT_KEY$3}`;
3615        const EVENT_SHOWN$3 = `shown${EVENT_KEY$3}`;
3616        const EVENT_HIDE$3 = `hide${EVENT_KEY$3}`;
3617        const EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY$3}`;
3618        const EVENT_HIDDEN$3 = `hidden${EVENT_KEY$3}`;
3619        const EVENT_RESIZE = `resize${EVENT_KEY$3}`;
3620        const EVENT_CLICK_DATA_API$1 = `click${EVENT_KEY$3}${DATA_API_KEY$1}`;
3621        const EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY$3}`;
3622        const SELECTOR_DATA_TOGGLE$1 = '[data-bs-toggle="offcanvas"]';
3623        const Default$5 = {
3624          backdrop: true,
3625          keyboard: true,
3626          scroll: false
3627        };
3628        const DefaultType$5 = {
3629          backdrop: "(boolean|string)",
3630          keyboard: "boolean",
3631          scroll: "boolean"
3632        };
3633        class Offcanvas extends BaseComponent {
3634          constructor(element, config3) {
3635            super(element, config3);
3636            this._isShown = false;
3637            this._backdrop = this._initializeBackDrop();
3638            this._focustrap = this._initializeFocusTrap();
3639            this._addEventListeners();
3640          }
3641          // Getters
3642          static get Default() {
3643            return Default$5;
3644          }
3645          static get DefaultType() {
3646            return DefaultType$5;
3647          }
3648          static get NAME() {
3649            return NAME$6;
3650          }
3651          // Public
3652          toggle(relatedTarget) {
3653            return this._isShown ? this.hide() : this.show(relatedTarget);
3654          }
3655          show(relatedTarget) {
3656            if (this._isShown) {
3657              return;
3658            }
3659            const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$3, {
3660              relatedTarget
3661            });
3662            if (showEvent.defaultPrevented) {
3663              return;
3664            }
3665            this._isShown = true;
3666            this._backdrop.show();
3667            if (!this._config.scroll) {
3668              new ScrollBarHelper().hide();
3669            }
3670            this._element.setAttribute("aria-modal", true);
3671            this._element.setAttribute("role", "dialog");
3672            this._element.classList.add(CLASS_NAME_SHOWING$1);
3673            const completeCallBack = () => {
3674              if (!this._config.scroll || this._config.backdrop) {
3675                this._focustrap.activate();
3676              }
3677              this._element.classList.add(CLASS_NAME_SHOW$3);
3678              this._element.classList.remove(CLASS_NAME_SHOWING$1);
3679              EventHandler.trigger(this._element, EVENT_SHOWN$3, {
3680                relatedTarget
3681              });
3682            };
3683            this._queueCallback(completeCallBack, this._element, true);
3684          }
3685          hide() {
3686            if (!this._isShown) {
3687              return;
3688            }
3689            const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$3);
3690            if (hideEvent.defaultPrevented) {
3691              return;
3692            }
3693            this._focustrap.deactivate();
3694            this._element.blur();
3695            this._isShown = false;
3696            this._element.classList.add(CLASS_NAME_HIDING);
3697            this._backdrop.hide();
3698            const completeCallback = () => {
3699              this._element.classList.remove(CLASS_NAME_SHOW$3, CLASS_NAME_HIDING);
3700              this._element.removeAttribute("aria-modal");
3701              this._element.removeAttribute("role");
3702              if (!this._config.scroll) {
3703                new ScrollBarHelper().reset();
3704              }
3705              EventHandler.trigger(this._element, EVENT_HIDDEN$3);
3706            };
3707            this._queueCallback(completeCallback, this._element, true);
3708          }
3709          dispose() {
3710            this._backdrop.dispose();
3711            this._focustrap.deactivate();
3712            super.dispose();
3713          }
3714          // Private
3715          _initializeBackDrop() {
3716            const clickCallback = () => {
3717              if (this._config.backdrop === "static") {
3718                EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED);
3719                return;
3720              }
3721              this.hide();
3722            };
3723            const isVisible2 = Boolean(this._config.backdrop);
3724            return new Backdrop({
3725              className: CLASS_NAME_BACKDROP,
3726              isVisible: isVisible2,
3727              isAnimated: true,
3728              rootElement: this._element.parentNode,
3729              clickCallback: isVisible2 ? clickCallback : null
3730            });
3731          }
3732          _initializeFocusTrap() {
3733            return new FocusTrap({
3734              trapElement: this._element
3735            });
3736          }
3737          _addEventListeners() {
3738            EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, (event) => {
3739              if (event.key !== ESCAPE_KEY) {
3740                return;
3741              }
3742              if (this._config.keyboard) {
3743                this.hide();
3744                return;
3745              }
3746              EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED);
3747            });
3748          }
3749          // Static
3750          static jQueryInterface(config3) {
3751            return this.each(function() {
3752              const data = Offcanvas.getOrCreateInstance(this, config3);
3753              if (typeof config3 !== "string") {
3754                return;
3755              }
3756              if (data[config3] === void 0 || config3.startsWith("_") || config3 === "constructor") {
3757                throw new TypeError(`No method named "${config3}"`);
3758              }
3759              data[config3](this);
3760            });
3761          }
3762        }
3763        EventHandler.on(document, EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE$1, function(event) {
3764          const target = SelectorEngine.getElementFromSelector(this);
3765          if (["A", "AREA"].includes(this.tagName)) {
3766            event.preventDefault();
3767          }
3768          if (isDisabled(this)) {
3769            return;
3770          }
3771          EventHandler.one(target, EVENT_HIDDEN$3, () => {
3772            if (isVisible(this)) {
3773              this.focus();
3774            }
3775          });
3776          const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR);
3777          if (alreadyOpen && alreadyOpen !== target) {
3778            Offcanvas.getInstance(alreadyOpen).hide();
3779          }
3780          const data = Offcanvas.getOrCreateInstance(target);
3781          data.toggle(this);
3782        });
3783        EventHandler.on(window, EVENT_LOAD_DATA_API$2, () => {
3784          for (const selector3 of SelectorEngine.find(OPEN_SELECTOR)) {
3785            Offcanvas.getOrCreateInstance(selector3).show();
3786          }
3787        });
3788        EventHandler.on(window, EVENT_RESIZE, () => {
3789          for (const element of SelectorEngine.find("[aria-modal][class*=show][class*=offcanvas-]")) {
3790            if (getComputedStyle(element).position !== "fixed") {
3791              Offcanvas.getOrCreateInstance(element).hide();
3792            }
3793          }
3794        });
3795        enableDismissTrigger(Offcanvas);
3796        defineJQueryPlugin(Offcanvas);
3797        const ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i;
3798        const DefaultAllowlist = {
3799          // Global attributes allowed on any supplied element below.
3800          "*": ["class", "dir", "id", "lang", "role", ARIA_ATTRIBUTE_PATTERN],
3801          a: ["target", "href", "title", "rel"],
3802          area: [],
3803          b: [],
3804          br: [],
3805          col: [],
3806          code: [],
3807          dd: [],
3808          div: [],
3809          dl: [],
3810          dt: [],
3811          em: [],
3812          hr: [],
3813          h1: [],
3814          h2: [],
3815          h3: [],
3816          h4: [],
3817          h5: [],
3818          h6: [],
3819          i: [],
3820          img: ["src", "srcset", "alt", "title", "width", "height"],
3821          li: [],
3822          ol: [],
3823          p: [],
3824          pre: [],
3825          s: [],
3826          small: [],
3827          span: [],
3828          sub: [],
3829          sup: [],
3830          strong: [],
3831          u: [],
3832          ul: []
3833        };
3834        const uriAttributes = /* @__PURE__ */ new Set(["background", "cite", "href", "itemtype", "longdesc", "poster", "src", "xlink:href"]);
3835        const SAFE_URL_PATTERN = /^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i;
3836        const allowedAttribute = (attribute, allowedAttributeList) => {
3837          const attributeName = attribute.nodeName.toLowerCase();
3838          if (allowedAttributeList.includes(attributeName)) {
3839            if (uriAttributes.has(attributeName)) {
3840              return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue));
3841            }
3842            return true;
3843          }
3844          return allowedAttributeList.filter((attributeRegex) => attributeRegex instanceof RegExp).some((regex) => regex.test(attributeName));
3845        };
3846        function sanitizeHtml(unsafeHtml, allowList, sanitizeFunction) {
3847          if (!unsafeHtml.length) {
3848            return unsafeHtml;
3849          }
3850          if (sanitizeFunction && typeof sanitizeFunction === "function") {
3851            return sanitizeFunction(unsafeHtml);
3852          }
3853          const domParser = new window.DOMParser();
3854          const createdDocument = domParser.parseFromString(unsafeHtml, "text/html");
3855          const elements = [].concat(...createdDocument.body.querySelectorAll("*"));
3856          for (const element of elements) {
3857            const elementName = element.nodeName.toLowerCase();
3858            if (!Object.keys(allowList).includes(elementName)) {
3859              element.remove();
3860              continue;
3861            }
3862            const attributeList = [].concat(...element.attributes);
3863            const allowedAttributes = [].concat(allowList["*"] || [], allowList[elementName] || []);
3864            for (const attribute of attributeList) {
3865              if (!allowedAttribute(attribute, allowedAttributes)) {
3866                element.removeAttribute(attribute.nodeName);
3867              }
3868            }
3869          }
3870          return createdDocument.body.innerHTML;
3871        }
3872        const NAME$5 = "TemplateFactory";
3873        const Default$4 = {
3874          allowList: DefaultAllowlist,
3875          content: {},
3876          // { selector : text ,  selector2 : text2 , }
3877          extraClass: "",
3878          html: false,
3879          sanitize: true,
3880          sanitizeFn: null,
3881          template: "<div></div>"
3882        };
3883        const DefaultType$4 = {
3884          allowList: "object",
3885          content: "object",
3886          extraClass: "(string|function)",
3887          html: "boolean",
3888          sanitize: "boolean",
3889          sanitizeFn: "(null|function)",
3890          template: "string"
3891        };
3892        const DefaultContentType = {
3893          entry: "(string|element|function|null)",
3894          selector: "(string|element)"
3895        };
3896        class TemplateFactory extends Config {
3897          constructor(config3) {
3898            super();
3899            this._config = this._getConfig(config3);
3900          }
3901          // Getters
3902          static get Default() {
3903            return Default$4;
3904          }
3905          static get DefaultType() {
3906            return DefaultType$4;
3907          }
3908          static get NAME() {
3909            return NAME$5;
3910          }
3911          // Public
3912          getContent() {
3913            return Object.values(this._config.content).map((config3) => this._resolvePossibleFunction(config3)).filter(Boolean);
3914          }
3915          hasContent() {
3916            return this.getContent().length > 0;
3917          }
3918          changeContent(content) {
3919            this._checkContent(content);
3920            this._config.content = {
3921              ...this._config.content,
3922              ...content
3923            };
3924            return this;
3925          }
3926          toHtml() {
3927            const templateWrapper = document.createElement("div");
3928            templateWrapper.innerHTML = this._maybeSanitize(this._config.template);
3929            for (const [selector3, text] of Object.entries(this._config.content)) {
3930              this._setContent(templateWrapper, text, selector3);
3931            }
3932            const template = templateWrapper.children[0];
3933            const extraClass = this._resolvePossibleFunction(this._config.extraClass);
3934            if (extraClass) {
3935              template.classList.add(...extraClass.split(" "));
3936            }
3937            return template;
3938          }
3939          // Private
3940          _typeCheckConfig(config3) {
3941            super._typeCheckConfig(config3);
3942            this._checkContent(config3.content);
3943          }
3944          _checkContent(arg) {
3945            for (const [selector3, content] of Object.entries(arg)) {
3946              super._typeCheckConfig({
3947                selector: selector3,
3948                entry: content
3949              }, DefaultContentType);
3950            }
3951          }
3952          _setContent(template, content, selector3) {
3953            const templateElement = SelectorEngine.findOne(selector3, template);
3954            if (!templateElement) {
3955              return;
3956            }
3957            content = this._resolvePossibleFunction(content);
3958            if (!content) {
3959              templateElement.remove();
3960              return;
3961            }
3962            if (isElement(content)) {
3963              this._putElementInTemplate(getElement(content), templateElement);
3964              return;
3965            }
3966            if (this._config.html) {
3967              templateElement.innerHTML = this._maybeSanitize(content);
3968              return;
3969            }
3970            templateElement.textContent = content;
3971          }
3972          _maybeSanitize(arg) {
3973            return this._config.sanitize ? sanitizeHtml(arg, this._config.allowList, this._config.sanitizeFn) : arg;
3974          }
3975          _resolvePossibleFunction(arg) {
3976            return execute2(arg, [void 0, this]);
3977          }
3978          _putElementInTemplate(element, templateElement) {
3979            if (this._config.html) {
3980              templateElement.innerHTML = "";
3981              templateElement.append(element);
3982              return;
3983            }
3984            templateElement.textContent = element.textContent;
3985          }
3986        }
3987        const NAME$4 = "tooltip";
3988        const DISALLOWED_ATTRIBUTES = /* @__PURE__ */ new Set(["sanitize", "allowList", "sanitizeFn"]);
3989        const CLASS_NAME_FADE$2 = "fade";
3990        const CLASS_NAME_MODAL = "modal";
3991        const CLASS_NAME_SHOW$2 = "show";
3992        const SELECTOR_TOOLTIP_INNER = ".tooltip-inner";
3993        const SELECTOR_MODAL = `.${CLASS_NAME_MODAL}`;
3994        const EVENT_MODAL_HIDE = "hide.bs.modal";
3995        const TRIGGER_HOVER = "hover";
3996        const TRIGGER_FOCUS = "focus";
3997        const TRIGGER_CLICK = "click";
3998        const TRIGGER_MANUAL = "manual";
3999        const EVENT_HIDE$2 = "hide";
4000        const EVENT_HIDDEN$2 = "hidden";
4001        const EVENT_SHOW$2 = "show";
4002        const EVENT_SHOWN$2 = "shown";
4003        const EVENT_INSERTED = "inserted";
4004        const EVENT_CLICK$1 = "click";
4005        const EVENT_FOCUSIN$1 = "focusin";
4006        const EVENT_FOCUSOUT$1 = "focusout";
4007        const EVENT_MOUSEENTER = "mouseenter";
4008        const EVENT_MOUSELEAVE = "mouseleave";
4009        const AttachmentMap = {
4010          AUTO: "auto",
4011          TOP: "top",
4012          RIGHT: isRTL() ? "left" : "right",
4013          BOTTOM: "bottom",
4014          LEFT: isRTL() ? "right" : "left"
4015        };
4016        const Default$3 = {
4017          allowList: DefaultAllowlist,
4018          animation: true,
4019          boundary: "clippingParents",
4020          container: false,
4021          customClass: "",
4022          delay: 0,
4023          fallbackPlacements: ["top", "right", "bottom", "left"],
4024          html: false,
4025          offset: [0, 6],
4026          placement: "top",
4027          popperConfig: null,
4028          sanitize: true,
4029          sanitizeFn: null,
4030          selector: false,
4031          template: '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
4032          title: "",
4033          trigger: "hover focus"
4034        };
4035        const DefaultType$3 = {
4036          allowList: "object",
4037          animation: "boolean",
4038          boundary: "(string|element)",
4039          container: "(string|element|boolean)",
4040          customClass: "(string|function)",
4041          delay: "(number|object)",
4042          fallbackPlacements: "array",
4043          html: "boolean",
4044          offset: "(array|string|function)",
4045          placement: "(string|function)",
4046          popperConfig: "(null|object|function)",
4047          sanitize: "boolean",
4048          sanitizeFn: "(null|function)",
4049          selector: "(string|boolean)",
4050          template: "string",
4051          title: "(string|element|function)",
4052          trigger: "string"
4053        };
4054        class Tooltip2 extends BaseComponent {
4055          constructor(element, config3) {
4056            if (typeof Popper__namespace === "undefined") {
4057              throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org/docs/v2/)");
4058            }
4059            super(element, config3);
4060            this._isEnabled = true;
4061            this._timeout = 0;
4062            this._isHovered = null;
4063            this._activeTrigger = {};
4064            this._popper = null;
4065            this._templateFactory = null;
4066            this._newContent = null;
4067            this.tip = null;
4068            this._setListeners();
4069            if (!this._config.selector) {
4070              this._fixTitle();
4071            }
4072          }
4073          // Getters
4074          static get Default() {
4075            return Default$3;
4076          }
4077          static get DefaultType() {
4078            return DefaultType$3;
4079          }
4080          static get NAME() {
4081            return NAME$4;
4082          }
4083          // Public
4084          enable() {
4085            this._isEnabled = true;
4086          }
4087          disable() {
4088            this._isEnabled = false;
4089          }
4090          toggleEnabled() {
4091            this._isEnabled = !this._isEnabled;
4092          }
4093          toggle() {
4094            if (!this._isEnabled) {
4095              return;
4096            }
4097            if (this._isShown()) {
4098              this._leave();
4099              return;
4100            }
4101            this._enter();
4102          }
4103          dispose() {
4104            clearTimeout(this._timeout);
4105            EventHandler.off(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler);
4106            if (this._element.getAttribute("data-bs-original-title")) {
4107              this._element.setAttribute("title", this._element.getAttribute("data-bs-original-title"));
4108            }
4109            this._disposePopper();
4110            super.dispose();
4111          }
4112          show() {
4113            if (this._element.style.display === "none") {
4114              throw new Error("Please use show on visible elements");
4115            }
4116            if (!(this._isWithContent() && this._isEnabled)) {
4117              return;
4118            }
4119            const showEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOW$2));
4120            const shadowRoot = findShadowRoot(this._element);
4121            const isInTheDom = (shadowRoot || this._element.ownerDocument.documentElement).contains(this._element);
4122            if (showEvent.defaultPrevented || !isInTheDom) {
4123              return;
4124            }
4125            this._disposePopper();
4126            const tip = this._getTipElement();
4127            this._element.setAttribute("aria-describedby", tip.getAttribute("id"));
4128            const {
4129              container
4130            } = this._config;
4131            if (!this._element.ownerDocument.documentElement.contains(this.tip)) {
4132              container.append(tip);
4133              EventHandler.trigger(this._element, this.constructor.eventName(EVENT_INSERTED));
4134            }
4135            this._popper = this._createPopper(tip);
4136            tip.classList.add(CLASS_NAME_SHOW$2);
4137            if ("ontouchstart" in document.documentElement) {
4138              for (const element of [].concat(...document.body.children)) {
4139                EventHandler.on(element, "mouseover", noop);
4140              }
4141            }
4142            const complete = () => {
4143              EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOWN$2));
4144              if (this._isHovered === false) {
4145                this._leave();
4146              }
4147              this._isHovered = false;
4148            };
4149            this._queueCallback(complete, this.tip, this._isAnimated());
4150          }
4151          hide() {
4152            if (!this._isShown()) {
4153              return;
4154            }
4155            const hideEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDE$2));
4156            if (hideEvent.defaultPrevented) {
4157              return;
4158            }
4159            const tip = this._getTipElement();
4160            tip.classList.remove(CLASS_NAME_SHOW$2);
4161            if ("ontouchstart" in document.documentElement) {
4162              for (const element of [].concat(...document.body.children)) {
4163                EventHandler.off(element, "mouseover", noop);
4164              }
4165            }
4166            this._activeTrigger[TRIGGER_CLICK] = false;
4167            this._activeTrigger[TRIGGER_FOCUS] = false;
4168            this._activeTrigger[TRIGGER_HOVER] = false;
4169            this._isHovered = null;
4170            const complete = () => {
4171              if (this._isWithActiveTrigger()) {
4172                return;
4173              }
4174              if (!this._isHovered) {
4175                this._disposePopper();
4176              }
4177              this._element.removeAttribute("aria-describedby");
4178              EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDDEN$2));
4179            };
4180            this._queueCallback(complete, this.tip, this._isAnimated());
4181          }
4182          update() {
4183            if (this._popper) {
4184              this._popper.update();
4185            }
4186          }
4187          // Protected
4188          _isWithContent() {
4189            return Boolean(this._getTitle());
4190          }
4191          _getTipElement() {
4192            if (!this.tip) {
4193              this.tip = this._createTipElement(this._newContent || this._getContentForTemplate());
4194            }
4195            return this.tip;
4196          }
4197          _createTipElement(content) {
4198            const tip = this._getTemplateFactory(content).toHtml();
4199            if (!tip) {
4200              return null;
4201            }
4202            tip.classList.remove(CLASS_NAME_FADE$2, CLASS_NAME_SHOW$2);
4203            tip.classList.add(`bs-${this.constructor.NAME}-auto`);
4204            const tipId = getUID(this.constructor.NAME).toString();
4205            tip.setAttribute("id", tipId);
4206            if (this._isAnimated()) {
4207              tip.classList.add(CLASS_NAME_FADE$2);
4208            }
4209            return tip;
4210          }
4211          setContent(content) {
4212            this._newContent = content;
4213            if (this._isShown()) {
4214              this._disposePopper();
4215              this.show();
4216            }
4217          }
4218          _getTemplateFactory(content) {
4219            if (this._templateFactory) {
4220              this._templateFactory.changeContent(content);
4221            } else {
4222              this._templateFactory = new TemplateFactory({
4223                ...this._config,
4224                // the `content` var has to be after `this._config`
4225                // to override config.content in case of popover
4226                content,
4227                extraClass: this._resolvePossibleFunction(this._config.customClass)
4228              });
4229            }
4230            return this._templateFactory;
4231          }
4232          _getContentForTemplate() {
4233            return {
4234              [SELECTOR_TOOLTIP_INNER]: this._getTitle()
4235            };
4236          }
4237          _getTitle() {
4238            return this._resolvePossibleFunction(this._config.title) || this._element.getAttribute("data-bs-original-title");
4239          }
4240          // Private
4241          _initializeOnDelegatedTarget(event) {
4242            return this.constructor.getOrCreateInstance(event.delegateTarget, this._getDelegateConfig());
4243          }
4244          _isAnimated() {
4245            return this._config.animation || this.tip && this.tip.classList.contains(CLASS_NAME_FADE$2);
4246          }
4247          _isShown() {
4248            return this.tip && this.tip.classList.contains(CLASS_NAME_SHOW$2);
4249          }
4250          _createPopper(tip) {
4251            const placement = execute2(this._config.placement, [this, tip, this._element]);
4252            const attachment = AttachmentMap[placement.toUpperCase()];
4253            return Popper__namespace.createPopper(this._element, tip, this._getPopperConfig(attachment));
4254          }
4255          _getOffset() {
4256            const {
4257              offset
4258            } = this._config;
4259            if (typeof offset === "string") {
4260              return offset.split(",").map((value) => Number.parseInt(value, 10));
4261            }
4262            if (typeof offset === "function") {
4263              return (popperData) => offset(popperData, this._element);
4264            }
4265            return offset;
4266          }
4267          _resolvePossibleFunction(arg) {
4268            return execute2(arg, [this._element, this._element]);
4269          }
4270          _getPopperConfig(attachment) {
4271            const defaultBsPopperConfig = {
4272              placement: attachment,
4273              modifiers: [{
4274                name: "flip",
4275                options: {
4276                  fallbackPlacements: this._config.fallbackPlacements
4277                }
4278              }, {
4279                name: "offset",
4280                options: {
4281                  offset: this._getOffset()
4282                }
4283              }, {
4284                name: "preventOverflow",
4285                options: {
4286                  boundary: this._config.boundary
4287                }
4288              }, {
4289                name: "arrow",
4290                options: {
4291                  element: `.${this.constructor.NAME}-arrow`
4292                }
4293              }, {
4294                name: "preSetPlacement",
4295                enabled: true,
4296                phase: "beforeMain",
4297                fn: (data) => {
4298                  this._getTipElement().setAttribute("data-popper-placement", data.state.placement);
4299                }
4300              }]
4301            };
4302            return {
4303              ...defaultBsPopperConfig,
4304              ...execute2(this._config.popperConfig, [void 0, defaultBsPopperConfig])
4305            };
4306          }
4307          _setListeners() {
4308            const triggers = this._config.trigger.split(" ");
4309            for (const trigger of triggers) {
4310              if (trigger === "click") {
4311                EventHandler.on(this._element, this.constructor.eventName(EVENT_CLICK$1), this._config.selector, (event) => {
4312                  const context3 = this._initializeOnDelegatedTarget(event);
4313                  context3._activeTrigger[TRIGGER_CLICK] = !(context3._isShown() && context3._activeTrigger[TRIGGER_CLICK]);
4314                  context3.toggle();
4315                });
4316              } else if (trigger !== TRIGGER_MANUAL) {
4317                const eventIn = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSEENTER) : this.constructor.eventName(EVENT_FOCUSIN$1);
4318                const eventOut = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSELEAVE) : this.constructor.eventName(EVENT_FOCUSOUT$1);
4319                EventHandler.on(this._element, eventIn, this._config.selector, (event) => {
4320                  const context3 = this._initializeOnDelegatedTarget(event);
4321                  context3._activeTrigger[event.type === "focusin" ? TRIGGER_FOCUS : TRIGGER_HOVER] = true;
4322                  context3._enter();
4323                });
4324                EventHandler.on(this._element, eventOut, this._config.selector, (event) => {
4325                  const context3 = this._initializeOnDelegatedTarget(event);
4326                  context3._activeTrigger[event.type === "focusout" ? TRIGGER_FOCUS : TRIGGER_HOVER] = context3._element.contains(event.relatedTarget);
4327                  context3._leave();
4328                });
4329              }
4330            }
4331            this._hideModalHandler = () => {
4332              if (this._element) {
4333                this.hide();
4334              }
4335            };
4336            EventHandler.on(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler);
4337          }
4338          _fixTitle() {
4339            const title = this._element.getAttribute("title");
4340            if (!title) {
4341              return;
4342            }
4343            if (!this._element.getAttribute("aria-label") && !this._element.textContent.trim()) {
4344              this._element.setAttribute("aria-label", title);
4345            }
4346            this._element.setAttribute("data-bs-original-title", title);
4347            this._element.removeAttribute("title");
4348          }
4349          _enter() {
4350            if (this._isShown() || this._isHovered) {
4351              this._isHovered = true;
4352              return;
4353            }
4354            this._isHovered = true;
4355            this._setTimeout(() => {
4356              if (this._isHovered) {
4357                this.show();
4358              }
4359            }, this._config.delay.show);
4360          }
4361          _leave() {
4362            if (this._isWithActiveTrigger()) {
4363              return;
4364            }
4365            this._isHovered = false;
4366            this._setTimeout(() => {
4367              if (!this._isHovered) {
4368                this.hide();
4369              }
4370            }, this._config.delay.hide);
4371          }
4372          _setTimeout(handler, timeout) {
4373            clearTimeout(this._timeout);
4374            this._timeout = setTimeout(handler, timeout);
4375          }
4376          _isWithActiveTrigger() {
4377            return Object.values(this._activeTrigger).includes(true);
4378          }
4379          _getConfig(config3) {
4380            const dataAttributes = Manipulator.getDataAttributes(this._element);
4381            for (const dataAttribute of Object.keys(dataAttributes)) {
4382              if (DISALLOWED_ATTRIBUTES.has(dataAttribute)) {
4383                delete dataAttributes[dataAttribute];
4384              }
4385            }
4386            config3 = {
4387              ...dataAttributes,
4388              ...typeof config3 === "object" && config3 ? config3 : {}
4389            };
4390            config3 = this._mergeConfigObj(config3);
4391            config3 = this._configAfterMerge(config3);
4392            this._typeCheckConfig(config3);
4393            return config3;
4394          }
4395          _configAfterMerge(config3) {
4396            config3.container = config3.container === false ? document.body : getElement(config3.container);
4397            if (typeof config3.delay === "number") {
4398              config3.delay = {
4399                show: config3.delay,
4400                hide: config3.delay
4401              };
4402            }
4403            if (typeof config3.title === "number") {
4404              config3.title = config3.title.toString();
4405            }
4406            if (typeof config3.content === "number") {
4407              config3.content = config3.content.toString();
4408            }
4409            return config3;
4410          }
4411          _getDelegateConfig() {
4412            const config3 = {};
4413            for (const [key, value] of Object.entries(this._config)) {
4414              if (this.constructor.Default[key] !== value) {
4415                config3[key] = value;
4416              }
4417            }
4418            config3.selector = false;
4419            config3.trigger = "manual";
4420            return config3;
4421          }
4422          _disposePopper() {
4423            if (this._popper) {
4424              this._popper.destroy();
4425              this._popper = null;
4426            }
4427            if (this.tip) {
4428              this.tip.remove();
4429              this.tip = null;
4430            }
4431          }
4432          // Static
4433          static jQueryInterface(config3) {
4434            return this.each(function() {
4435              const data = Tooltip2.getOrCreateInstance(this, config3);
4436              if (typeof config3 !== "string") {
4437                return;
4438              }
4439              if (typeof data[config3] === "undefined") {
4440                throw new TypeError(`No method named "${config3}"`);
4441              }
4442              data[config3]();
4443            });
4444          }
4445        }
4446        defineJQueryPlugin(Tooltip2);
4447        const NAME$3 = "popover";
4448        const SELECTOR_TITLE = ".popover-header";
4449        const SELECTOR_CONTENT = ".popover-body";
4450        const Default$2 = {
4451          ...Tooltip2.Default,
4452          content: "",
4453          offset: [0, 8],
4454          placement: "right",
4455          template: '<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>',
4456          trigger: "click"
4457        };
4458        const DefaultType$2 = {
4459          ...Tooltip2.DefaultType,
4460          content: "(null|string|element|function)"
4461        };
4462        class Popover extends Tooltip2 {
4463          // Getters
4464          static get Default() {
4465            return Default$2;
4466          }
4467          static get DefaultType() {
4468            return DefaultType$2;
4469          }
4470          static get NAME() {
4471            return NAME$3;
4472          }
4473          // Overrides
4474          _isWithContent() {
4475            return this._getTitle() || this._getContent();
4476          }
4477          // Private
4478          _getContentForTemplate() {
4479            return {
4480              [SELECTOR_TITLE]: this._getTitle(),
4481              [SELECTOR_CONTENT]: this._getContent()
4482            };
4483          }
4484          _getContent() {
4485            return this._resolvePossibleFunction(this._config.content);
4486          }
4487          // Static
4488          static jQueryInterface(config3) {
4489            return this.each(function() {
4490              const data = Popover.getOrCreateInstance(this, config3);
4491              if (typeof config3 !== "string") {
4492                return;
4493              }
4494              if (typeof data[config3] === "undefined") {
4495                throw new TypeError(`No method named "${config3}"`);
4496              }
4497              data[config3]();
4498            });
4499          }
4500        }
4501        defineJQueryPlugin(Popover);
4502        const NAME$2 = "scrollspy";
4503        const DATA_KEY$2 = "bs.scrollspy";
4504        const EVENT_KEY$2 = `.${DATA_KEY$2}`;
4505        const DATA_API_KEY = ".data-api";
4506        const EVENT_ACTIVATE = `activate${EVENT_KEY$2}`;
4507        const EVENT_CLICK = `click${EVENT_KEY$2}`;
4508        const EVENT_LOAD_DATA_API$1 = `load${EVENT_KEY$2}${DATA_API_KEY}`;
4509        const CLASS_NAME_DROPDOWN_ITEM = "dropdown-item";
4510        const CLASS_NAME_ACTIVE$1 = "active";
4511        const SELECTOR_DATA_SPY = '[data-bs-spy="scroll"]';
4512        const SELECTOR_TARGET_LINKS = "[href]";
4513        const SELECTOR_NAV_LIST_GROUP = ".nav, .list-group";
4514        const SELECTOR_NAV_LINKS = ".nav-link";
4515        const SELECTOR_NAV_ITEMS = ".nav-item";
4516        const SELECTOR_LIST_ITEMS = ".list-group-item";
4517        const SELECTOR_LINK_ITEMS = `${SELECTOR_NAV_LINKS}, ${SELECTOR_NAV_ITEMS} > ${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`;
4518        const SELECTOR_DROPDOWN = ".dropdown";
4519        const SELECTOR_DROPDOWN_TOGGLE$1 = ".dropdown-toggle";
4520        const Default$1 = {
4521          offset: null,
4522          // TODO: v6 @deprecated, keep it for backwards compatibility reasons
4523          rootMargin: "0px 0px -25%",
4524          smoothScroll: false,
4525          target: null,
4526          threshold: [0.1, 0.5, 1]
4527        };
4528        const DefaultType$1 = {
4529          offset: "(number|null)",
4530          // TODO v6 @deprecated, keep it for backwards compatibility reasons
4531          rootMargin: "string",
4532          smoothScroll: "boolean",
4533          target: "element",
4534          threshold: "array"
4535        };
4536        class ScrollSpy extends BaseComponent {
4537          constructor(element, config3) {
4538            super(element, config3);
4539            this._targetLinks = /* @__PURE__ */ new Map();
4540            this._observableSections = /* @__PURE__ */ new Map();
4541            this._rootElement = getComputedStyle(this._element).overflowY === "visible" ? null : this._element;
4542            this._activeTarget = null;
4543            this._observer = null;
4544            this._previousScrollData = {
4545              visibleEntryTop: 0,
4546              parentScrollTop: 0
4547            };
4548            this.refresh();
4549          }
4550          // Getters
4551          static get Default() {
4552            return Default$1;
4553          }
4554          static get DefaultType() {
4555            return DefaultType$1;
4556          }
4557          static get NAME() {
4558            return NAME$2;
4559          }
4560          // Public
4561          refresh() {
4562            this._initializeTargetsAndObservables();
4563            this._maybeEnableSmoothScroll();
4564            if (this._observer) {
4565              this._observer.disconnect();
4566            } else {
4567              this._observer = this._getNewObserver();
4568            }
4569            for (const section of this._observableSections.values()) {
4570              this._observer.observe(section);
4571            }
4572          }
4573          dispose() {
4574            this._observer.disconnect();
4575            super.dispose();
4576          }
4577          // Private
4578          _configAfterMerge(config3) {
4579            config3.target = getElement(config3.target) || document.body;
4580            config3.rootMargin = config3.offset ? `${config3.offset}px 0px -30%` : config3.rootMargin;
4581            if (typeof config3.threshold === "string") {
4582              config3.threshold = config3.threshold.split(",").map((value) => Number.parseFloat(value));
4583            }
4584            return config3;
4585          }
4586          _maybeEnableSmoothScroll() {
4587            if (!this._config.smoothScroll) {
4588              return;
4589            }
4590            EventHandler.off(this._config.target, EVENT_CLICK);
4591            EventHandler.on(this._config.target, EVENT_CLICK, SELECTOR_TARGET_LINKS, (event) => {
4592              const observableSection = this._observableSections.get(event.target.hash);
4593              if (observableSection) {
4594                event.preventDefault();
4595                const root = this._rootElement || window;
4596                const height = observableSection.offsetTop - this._element.offsetTop;
4597                if (root.scrollTo) {
4598                  root.scrollTo({
4599                    top: height,
4600                    behavior: "smooth"
4601                  });
4602                  return;
4603                }
4604                root.scrollTop = height;
4605              }
4606            });
4607          }
4608          _getNewObserver() {
4609            const options = {
4610              root: this._rootElement,
4611              threshold: this._config.threshold,
4612              rootMargin: this._config.rootMargin
4613            };
4614            return new IntersectionObserver((entries) => this._observerCallback(entries), options);
4615          }
4616          // The logic of selection
4617          _observerCallback(entries) {
4618            const targetElement = (entry) => this._targetLinks.get(`#${entry.target.id}`);
4619            const activate = (entry) => {
4620              this._previousScrollData.visibleEntryTop = entry.target.offsetTop;
4621              this._process(targetElement(entry));
4622            };
4623            const parentScrollTop = (this._rootElement || document.documentElement).scrollTop;
4624            const userScrollsDown = parentScrollTop >= this._previousScrollData.parentScrollTop;
4625            this._previousScrollData.parentScrollTop = parentScrollTop;
4626            for (const entry of entries) {
4627              if (!entry.isIntersecting) {
4628                this._activeTarget = null;
4629                this._clearActiveClass(targetElement(entry));
4630                continue;
4631              }
4632              const entryIsLowerThanPrevious = entry.target.offsetTop >= this._previousScrollData.visibleEntryTop;
4633              if (userScrollsDown && entryIsLowerThanPrevious) {
4634                activate(entry);
4635                if (!parentScrollTop) {
4636                  return;
4637                }
4638                continue;
4639              }
4640              if (!userScrollsDown && !entryIsLowerThanPrevious) {
4641                activate(entry);
4642              }
4643            }
4644          }
4645          _initializeTargetsAndObservables() {
4646            this._targetLinks = /* @__PURE__ */ new Map();
4647            this._observableSections = /* @__PURE__ */ new Map();
4648            const targetLinks = SelectorEngine.find(SELECTOR_TARGET_LINKS, this._config.target);
4649            for (const anchor of targetLinks) {
4650              if (!anchor.hash || isDisabled(anchor)) {
4651                continue;
4652              }
4653              const observableSection = SelectorEngine.findOne(decodeURI(anchor.hash), this._element);
4654              if (isVisible(observableSection)) {
4655                this._targetLinks.set(decodeURI(anchor.hash), anchor);
4656                this._observableSections.set(anchor.hash, observableSection);
4657              }
4658            }
4659          }
4660          _process(target) {
4661            if (this._activeTarget === target) {
4662              return;
4663            }
4664            this._clearActiveClass(this._config.target);
4665            this._activeTarget = target;
4666            target.classList.add(CLASS_NAME_ACTIVE$1);
4667            this._activateParents(target);
4668            EventHandler.trigger(this._element, EVENT_ACTIVATE, {
4669              relatedTarget: target
4670            });
4671          }
4672          _activateParents(target) {
4673            if (target.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {
4674              SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE$1, target.closest(SELECTOR_DROPDOWN)).classList.add(CLASS_NAME_ACTIVE$1);
4675              return;
4676            }
4677            for (const listGroup of SelectorEngine.parents(target, SELECTOR_NAV_LIST_GROUP)) {
4678              for (const item of SelectorEngine.prev(listGroup, SELECTOR_LINK_ITEMS)) {
4679                item.classList.add(CLASS_NAME_ACTIVE$1);
4680              }
4681            }
4682          }
4683          _clearActiveClass(parent) {
4684            parent.classList.remove(CLASS_NAME_ACTIVE$1);
4685            const activeNodes = SelectorEngine.find(`${SELECTOR_TARGET_LINKS}.${CLASS_NAME_ACTIVE$1}`, parent);
4686            for (const node of activeNodes) {
4687              node.classList.remove(CLASS_NAME_ACTIVE$1);
4688            }
4689          }
4690          // Static
4691          static jQueryInterface(config3) {
4692            return this.each(function() {
4693              const data = ScrollSpy.getOrCreateInstance(this, config3);
4694              if (typeof config3 !== "string") {
4695                return;
4696              }
4697              if (data[config3] === void 0 || config3.startsWith("_") || config3 === "constructor") {
4698                throw new TypeError(`No method named "${config3}"`);
4699              }
4700              data[config3]();
4701            });
4702          }
4703        }
4704        EventHandler.on(window, EVENT_LOAD_DATA_API$1, () => {
4705          for (const spy of SelectorEngine.find(SELECTOR_DATA_SPY)) {
4706            ScrollSpy.getOrCreateInstance(spy);
4707          }
4708        });
4709        defineJQueryPlugin(ScrollSpy);
4710        const NAME$1 = "tab";
4711        const DATA_KEY$1 = "bs.tab";
4712        const EVENT_KEY$1 = `.${DATA_KEY$1}`;
4713        const EVENT_HIDE$1 = `hide${EVENT_KEY$1}`;
4714        const EVENT_HIDDEN$1 = `hidden${EVENT_KEY$1}`;
4715        const EVENT_SHOW$1 = `show${EVENT_KEY$1}`;
4716        const EVENT_SHOWN$1 = `shown${EVENT_KEY$1}`;
4717        const EVENT_CLICK_DATA_API = `click${EVENT_KEY$1}`;
4718        const EVENT_KEYDOWN = `keydown${EVENT_KEY$1}`;
4719        const EVENT_LOAD_DATA_API = `load${EVENT_KEY$1}`;
4720        const ARROW_LEFT_KEY = "ArrowLeft";
4721        const ARROW_RIGHT_KEY = "ArrowRight";
4722        const ARROW_UP_KEY = "ArrowUp";
4723        const ARROW_DOWN_KEY = "ArrowDown";
4724        const HOME_KEY = "Home";
4725        const END_KEY = "End";
4726        const CLASS_NAME_ACTIVE = "active";
4727        const CLASS_NAME_FADE$1 = "fade";
4728        const CLASS_NAME_SHOW$1 = "show";
4729        const CLASS_DROPDOWN = "dropdown";
4730        const SELECTOR_DROPDOWN_TOGGLE = ".dropdown-toggle";
4731        const SELECTOR_DROPDOWN_MENU = ".dropdown-menu";
4732        const NOT_SELECTOR_DROPDOWN_TOGGLE = `:not(${SELECTOR_DROPDOWN_TOGGLE})`;
4733        const SELECTOR_TAB_PANEL = '.list-group, .nav, [role="tablist"]';
4734        const SELECTOR_OUTER = ".nav-item, .list-group-item";
4735        const SELECTOR_INNER = `.nav-link${NOT_SELECTOR_DROPDOWN_TOGGLE}, .list-group-item${NOT_SELECTOR_DROPDOWN_TOGGLE}, [role="tab"]${NOT_SELECTOR_DROPDOWN_TOGGLE}`;
4736        const SELECTOR_DATA_TOGGLE = '[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]';
4737        const SELECTOR_INNER_ELEM = `${SELECTOR_INNER}, ${SELECTOR_DATA_TOGGLE}`;
4738        const SELECTOR_DATA_TOGGLE_ACTIVE = `.${CLASS_NAME_ACTIVE}[data-bs-toggle="tab"], .${CLASS_NAME_ACTIVE}[data-bs-toggle="pill"], .${CLASS_NAME_ACTIVE}[data-bs-toggle="list"]`;
4739        class Tab extends BaseComponent {
4740          constructor(element) {
4741            super(element);
4742            this._parent = this._element.closest(SELECTOR_TAB_PANEL);
4743            if (!this._parent) {
4744              return;
4745            }
4746            this._setInitialAttributes(this._parent, this._getChildren());
4747            EventHandler.on(this._element, EVENT_KEYDOWN, (event) => this._keydown(event));
4748          }
4749          // Getters
4750          static get NAME() {
4751            return NAME$1;
4752          }
4753          // Public
4754          show() {
4755            const innerElem = this._element;
4756            if (this._elemIsActive(innerElem)) {
4757              return;
4758            }
4759            const active = this._getActiveElem();
4760            const hideEvent = active ? EventHandler.trigger(active, EVENT_HIDE$1, {
4761              relatedTarget: innerElem
4762            }) : null;
4763            const showEvent = EventHandler.trigger(innerElem, EVENT_SHOW$1, {
4764              relatedTarget: active
4765            });
4766            if (showEvent.defaultPrevented || hideEvent && hideEvent.defaultPrevented) {
4767              return;
4768            }
4769            this._deactivate(active, innerElem);
4770            this._activate(innerElem, active);
4771          }
4772          // Private
4773          _activate(element, relatedElem) {
4774            if (!element) {
4775              return;
4776            }
4777            element.classList.add(CLASS_NAME_ACTIVE);
4778            this._activate(SelectorEngine.getElementFromSelector(element));
4779            const complete = () => {
4780              if (element.getAttribute("role") !== "tab") {
4781                element.classList.add(CLASS_NAME_SHOW$1);
4782                return;
4783              }
4784              element.removeAttribute("tabindex");
4785              element.setAttribute("aria-selected", true);
4786              this._toggleDropDown(element, true);
4787              EventHandler.trigger(element, EVENT_SHOWN$1, {
4788                relatedTarget: relatedElem
4789              });
4790            };
4791            this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE$1));
4792          }
4793          _deactivate(element, relatedElem) {
4794            if (!element) {
4795              return;
4796            }
4797            element.classList.remove(CLASS_NAME_ACTIVE);
4798            element.blur();
4799            this._deactivate(SelectorEngine.getElementFromSelector(element));
4800            const complete = () => {
4801              if (element.getAttribute("role") !== "tab") {
4802                element.classList.remove(CLASS_NAME_SHOW$1);
4803                return;
4804              }
4805              element.setAttribute("aria-selected", false);
4806              element.setAttribute("tabindex", "-1");
4807              this._toggleDropDown(element, false);
4808              EventHandler.trigger(element, EVENT_HIDDEN$1, {
4809                relatedTarget: relatedElem
4810              });
4811            };
4812            this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE$1));
4813          }
4814          _keydown(event) {
4815            if (![ARROW_LEFT_KEY, ARROW_RIGHT_KEY, ARROW_UP_KEY, ARROW_DOWN_KEY, HOME_KEY, END_KEY].includes(event.key)) {
4816              return;
4817            }
4818            event.stopPropagation();
4819            event.preventDefault();
4820            const children = this._getChildren().filter((element) => !isDisabled(element));
4821            let nextActiveElement;
4822            if ([HOME_KEY, END_KEY].includes(event.key)) {
4823              nextActiveElement = children[event.key === HOME_KEY ? 0 : children.length - 1];
4824            } else {
4825              const isNext = [ARROW_RIGHT_KEY, ARROW_DOWN_KEY].includes(event.key);
4826              nextActiveElement = getNextActiveElement(children, event.target, isNext, true);
4827            }
4828            if (nextActiveElement) {
4829              nextActiveElement.focus({
4830                preventScroll: true
4831              });
4832              Tab.getOrCreateInstance(nextActiveElement).show();
4833            }
4834          }
4835          _getChildren() {
4836            return SelectorEngine.find(SELECTOR_INNER_ELEM, this._parent);
4837          }
4838          _getActiveElem() {
4839            return this._getChildren().find((child) => this._elemIsActive(child)) || null;
4840          }
4841          _setInitialAttributes(parent, children) {
4842            this._setAttributeIfNotExists(parent, "role", "tablist");
4843            for (const child of children) {
4844              this._setInitialAttributesOnChild(child);
4845            }
4846          }
4847          _setInitialAttributesOnChild(child) {
4848            child = this._getInnerElement(child);
4849            const isActive = this._elemIsActive(child);
4850            const outerElem = this._getOuterElement(child);
4851            child.setAttribute("aria-selected", isActive);
4852            if (outerElem !== child) {
4853              this._setAttributeIfNotExists(outerElem, "role", "presentation");
4854            }
4855            if (!isActive) {
4856              child.setAttribute("tabindex", "-1");
4857            }
4858            this._setAttributeIfNotExists(child, "role", "tab");
4859            this._setInitialAttributesOnTargetPanel(child);
4860          }
4861          _setInitialAttributesOnTargetPanel(child) {
4862            const target = SelectorEngine.getElementFromSelector(child);
4863            if (!target) {
4864              return;
4865            }
4866            this._setAttributeIfNotExists(target, "role", "tabpanel");
4867            if (child.id) {
4868              this._setAttributeIfNotExists(target, "aria-labelledby", `${child.id}`);
4869            }
4870          }
4871          _toggleDropDown(element, open) {
4872            const outerElem = this._getOuterElement(element);
4873            if (!outerElem.classList.contains(CLASS_DROPDOWN)) {
4874              return;
4875            }
4876            const toggle = (selector3, className) => {
4877              const element2 = SelectorEngine.findOne(selector3, outerElem);
4878              if (element2) {
4879                element2.classList.toggle(className, open);
4880              }
4881            };
4882            toggle(SELECTOR_DROPDOWN_TOGGLE, CLASS_NAME_ACTIVE);
4883            toggle(SELECTOR_DROPDOWN_MENU, CLASS_NAME_SHOW$1);
4884            outerElem.setAttribute("aria-expanded", open);
4885          }
4886          _setAttributeIfNotExists(element, attribute, value) {
4887            if (!element.hasAttribute(attribute)) {
4888              element.setAttribute(attribute, value);
4889            }
4890          }
4891          _elemIsActive(elem) {
4892            return elem.classList.contains(CLASS_NAME_ACTIVE);
4893          }
4894          // Try to get the inner element (usually the .nav-link)
4895          _getInnerElement(elem) {
4896            return elem.matches(SELECTOR_INNER_ELEM) ? elem : SelectorEngine.findOne(SELECTOR_INNER_ELEM, elem);
4897          }
4898          // Try to get the outer element (usually the .nav-item)
4899          _getOuterElement(elem) {
4900            return elem.closest(SELECTOR_OUTER) || elem;
4901          }
4902          // Static
4903          static jQueryInterface(config3) {
4904            return this.each(function() {
4905              const data = Tab.getOrCreateInstance(this);
4906              if (typeof config3 !== "string") {
4907                return;
4908              }
4909              if (data[config3] === void 0 || config3.startsWith("_") || config3 === "constructor") {
4910                throw new TypeError(`No method named "${config3}"`);
4911              }
4912              data[config3]();
4913            });
4914          }
4915        }
4916        EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function(event) {
4917          if (["A", "AREA"].includes(this.tagName)) {
4918            event.preventDefault();
4919          }
4920          if (isDisabled(this)) {
4921            return;
4922          }
4923          Tab.getOrCreateInstance(this).show();
4924        });
4925        EventHandler.on(window, EVENT_LOAD_DATA_API, () => {
4926          for (const element of SelectorEngine.find(SELECTOR_DATA_TOGGLE_ACTIVE)) {
4927            Tab.getOrCreateInstance(element);
4928          }
4929        });
4930        defineJQueryPlugin(Tab);
4931        const NAME = "toast";
4932        const DATA_KEY = "bs.toast";
4933        const EVENT_KEY = `.${DATA_KEY}`;
4934        const EVENT_MOUSEOVER = `mouseover${EVENT_KEY}`;
4935        const EVENT_MOUSEOUT = `mouseout${EVENT_KEY}`;
4936        const EVENT_FOCUSIN = `focusin${EVENT_KEY}`;
4937        const EVENT_FOCUSOUT = `focusout${EVENT_KEY}`;
4938        const EVENT_HIDE = `hide${EVENT_KEY}`;
4939        const EVENT_HIDDEN = `hidden${EVENT_KEY}`;
4940        const EVENT_SHOW = `show${EVENT_KEY}`;
4941        const EVENT_SHOWN = `shown${EVENT_KEY}`;
4942        const CLASS_NAME_FADE = "fade";
4943        const CLASS_NAME_HIDE = "hide";
4944        const CLASS_NAME_SHOW = "show";
4945        const CLASS_NAME_SHOWING = "showing";
4946        const DefaultType = {
4947          animation: "boolean",
4948          autohide: "boolean",
4949          delay: "number"
4950        };
4951        const Default = {
4952          animation: true,
4953          autohide: true,
4954          delay: 5e3
4955        };
4956        class Toast extends BaseComponent {
4957          constructor(element, config3) {
4958            super(element, config3);
4959            this._timeout = null;
4960            this._hasMouseInteraction = false;
4961            this._hasKeyboardInteraction = false;
4962            this._setListeners();
4963          }
4964          // Getters
4965          static get Default() {
4966            return Default;
4967          }
4968          static get DefaultType() {
4969            return DefaultType;
4970          }
4971          static get NAME() {
4972            return NAME;
4973          }
4974          // Public
4975          show() {
4976            const showEvent = EventHandler.trigger(this._element, EVENT_SHOW);
4977            if (showEvent.defaultPrevented) {
4978              return;
4979            }
4980            this._clearTimeout();
4981            if (this._config.animation) {
4982              this._element.classList.add(CLASS_NAME_FADE);
4983            }
4984            const complete = () => {
4985              this._element.classList.remove(CLASS_NAME_SHOWING);
4986              EventHandler.trigger(this._element, EVENT_SHOWN);
4987              this._maybeScheduleHide();
4988            };
4989            this._element.classList.remove(CLASS_NAME_HIDE);
4990            reflow(this._element);
4991            this._element.classList.add(CLASS_NAME_SHOW, CLASS_NAME_SHOWING);
4992            this._queueCallback(complete, this._element, this._config.animation);
4993          }
4994          hide() {
4995            if (!this.isShown()) {
4996              return;
4997            }
4998            const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE);
4999            if (hideEvent.defaultPrevented) {
5000              return;
5001            }
5002            const complete = () => {
5003              this._element.classList.add(CLASS_NAME_HIDE);
5004              this._element.classList.remove(CLASS_NAME_SHOWING, CLASS_NAME_SHOW);
5005              EventHandler.trigger(this._element, EVENT_HIDDEN);
5006            };
5007            this._element.classList.add(CLASS_NAME_SHOWING);
5008            this._queueCallback(complete, this._element, this._config.animation);
5009          }
5010          dispose() {
5011            this._clearTimeout();
5012            if (this.isShown()) {
5013              this._element.classList.remove(CLASS_NAME_SHOW);
5014            }
5015            super.dispose();
5016          }
5017          isShown() {
5018            return this._element.classList.contains(CLASS_NAME_SHOW);
5019          }
5020          // Private
5021          _maybeScheduleHide() {
5022            if (!this._config.autohide) {
5023              return;
5024            }
5025            if (this._hasMouseInteraction || this._hasKeyboardInteraction) {
5026              return;
5027            }
5028            this._timeout = setTimeout(() => {
5029              this.hide();
5030            }, this._config.delay);
5031          }
5032          _onInteraction(event, isInteracting) {
5033            switch (event.type) {
5034              case "mouseover":
5035              case "mouseout": {
5036                this._hasMouseInteraction = isInteracting;
5037                break;
5038              }
5039              case "focusin":
5040              case "focusout": {
5041                this._hasKeyboardInteraction = isInteracting;
5042                break;
5043              }
5044            }
5045            if (isInteracting) {
5046              this._clearTimeout();
5047              return;
5048            }
5049            const nextElement = event.relatedTarget;
5050            if (this._element === nextElement || this._element.contains(nextElement)) {
5051              return;
5052            }
5053            this._maybeScheduleHide();
5054          }
5055          _setListeners() {
5056            EventHandler.on(this._element, EVENT_MOUSEOVER, (event) => this._onInteraction(event, true));
5057            EventHandler.on(this._element, EVENT_MOUSEOUT, (event) => this._onInteraction(event, false));
5058            EventHandler.on(this._element, EVENT_FOCUSIN, (event) => this._onInteraction(event, true));
5059            EventHandler.on(this._element, EVENT_FOCUSOUT, (event) => this._onInteraction(event, false));
5060          }
5061          _clearTimeout() {
5062            clearTimeout(this._timeout);
5063            this._timeout = null;
5064          }
5065          // Static
5066          static jQueryInterface(config3) {
5067            return this.each(function() {
5068              const data = Toast.getOrCreateInstance(this, config3);
5069              if (typeof config3 === "string") {
5070                if (typeof data[config3] === "undefined") {
5071                  throw new TypeError(`No method named "${config3}"`);
5072                }
5073                data[config3](this);
5074              }
5075            });
5076          }
5077        }
5078        enableDismissTrigger(Toast);
5079        defineJQueryPlugin(Toast);
5080        const index_umd = {
5081          Alert,
5082          Button,
5083          Carousel,
5084          Collapse,
5085          Dropdown,
5086          Modal,
5087          Offcanvas,
5088          Popover,
5089          ScrollSpy,
5090          Tab,
5091          Toast,
5092          Tooltip: Tooltip2
5093        };
5094        return index_umd;
5095      }));
5096    }
5097  });
5098
5099  
vendor: 2,424 bytes, lines 5099-5164
5099// node_modules/ev-emitter/ev-emitter.js
5100  var require_ev_emitter = __commonJS({
5101    "node_modules/ev-emitter/ev-emitter.js"(exports, module) {
5102      (function(global, factory) {
5103        if (typeof module == "object" && module.exports) {
5104          module.exports = factory();
5105        } else {
5106          global.EvEmitter = factory();
5107        }
5108      })(typeof window != "undefined" ? window : exports, function() {
5109        function EvEmitter() {
5110        }
5111        let proto = EvEmitter.prototype;
5112        proto.on = function(eventName, listener) {
5113          if (!eventName || !listener) return this;
5114          let events = this._events = this._events || {};
5115          let listeners = events[eventName] = events[eventName] || [];
5116          if (!listeners.includes(listener)) {
5117            listeners.push(listener);
5118          }
5119          return this;
5120        };
5121        proto.once = function(eventName, listener) {
5122          if (!eventName || !listener) return this;
5123          this.on(eventName, listener);
5124          let onceEvents = this._onceEvents = this._onceEvents || {};
5125          let onceListeners = onceEvents[eventName] = onceEvents[eventName] || {};
5126          onceListeners[listener] = true;
5127          return this;
5128        };
5129        proto.off = function(eventName, listener) {
5130          let listeners = this._events && this._events[eventName];
5131          if (!listeners || !listeners.length) return this;
5132          let index = listeners.indexOf(listener);
5133          if (index != -1) {
5134            listeners.splice(index, 1);
5135          }
5136          return this;
5137        };
5138        proto.emitEvent = function(eventName, args) {
5139          let listeners = this._events && this._events[eventName];
5140          if (!listeners || !listeners.length) return this;
5141          listeners = listeners.slice(0);
5142          args = args || [];
5143          let onceListeners = this._onceEvents && this._onceEvents[eventName];
5144          for (let listener of listeners) {
5145            let isOnce = onceListeners && onceListeners[listener];
5146            if (isOnce) {
5147              this.off(eventName, listener);
5148              delete onceListeners[listener];
5149            }
5150            listener.apply(this, args);
5151          }
5152          return this;
5153        };
5154        proto.allOff = function() {
5155          delete this._events;
5156          delete this._onceEvents;
5157          return this;
5158        };
5159        return EvEmitter;
5160      });
5161    }
5162  });
5163
5164  
vendor: 3,367 bytes, lines 5164-5250
5164// node_modules/flickity/node_modules/get-size/get-size.js
5165  var require_get_size = __commonJS({
5166    "node_modules/flickity/node_modules/get-size/get-size.js"(exports, module) {
5167      (function(window2, factory) {
5168        if (typeof module == "object" && module.exports) {
5169          module.exports = factory();
5170        } else {
5171          window2.getSize = factory();
5172        }
5173      })(window, function factory() {
5174        function getStyleSize(value) {
5175          let num = parseFloat(value);
5176          let isValid = value.indexOf("%") == -1 && !isNaN(num);
5177          return isValid && num;
5178        }
5179        let measurements = [
5180          "paddingLeft",
5181          "paddingRight",
5182          "paddingTop",
5183          "paddingBottom",
5184          "marginLeft",
5185          "marginRight",
5186          "marginTop",
5187          "marginBottom",
5188          "borderLeftWidth",
5189          "borderRightWidth",
5190          "borderTopWidth",
5191          "borderBottomWidth"
5192        ];
5193        let measurementsLength = measurements.length;
5194        function getZeroSize() {
5195          let size = {
5196            width: 0,
5197            height: 0,
5198            innerWidth: 0,
5199            innerHeight: 0,
5200            outerWidth: 0,
5201            outerHeight: 0
5202          };
5203          measurements.forEach((measurement) => {
5204            size[measurement] = 0;
5205          });
5206          return size;
5207        }
5208        function getSize(elem) {
5209          if (typeof elem == "string") elem = document.querySelector(elem);
5210          let isElement = elem && typeof elem == "object" && elem.nodeType;
5211          if (!isElement) return;
5212          let style = getComputedStyle(elem);
5213          if (style.display == "none") return getZeroSize();
5214          let size = {};
5215          size.width = elem.offsetWidth;
5216          size.height = elem.offsetHeight;
5217          let isBorderBox = size.isBorderBox = style.boxSizing == "border-box";
5218          measurements.forEach((measurement) => {
5219            let value = style[measurement];
5220            let num = parseFloat(value);
5221            size[measurement] = !isNaN(num) ? num : 0;
5222          });
5223          let paddingWidth = size.paddingLeft + size.paddingRight;
5224          let paddingHeight = size.paddingTop + size.paddingBottom;
5225          let marginWidth = size.marginLeft + size.marginRight;
5226          let marginHeight = size.marginTop + size.marginBottom;
5227          let borderWidth = size.borderLeftWidth + size.borderRightWidth;
5228          let borderHeight = size.borderTopWidth + size.borderBottomWidth;
5229          let styleWidth = getStyleSize(style.width);
5230          if (styleWidth !== false) {
5231            size.width = styleWidth + // add padding and border unless it's already including it
5232            (isBorderBox ? 0 : paddingWidth + borderWidth);
5233          }
5234          let styleHeight = getStyleSize(style.height);
5235          if (styleHeight !== false) {
5236            size.height = styleHeight + // add padding and border unless it's already including it
5237            (isBorderBox ? 0 : paddingHeight + borderHeight);
5238          }
5239          size.innerWidth = size.width - (paddingWidth + borderWidth);
5240          size.innerHeight = size.height - (paddingHeight + borderHeight);
5241          size.outerWidth = size.width + marginWidth;
5242          size.outerHeight = size.height + marginHeight;
5243          return size;
5244        }
5245        return getSize;
5246      });
5247    }
5248  });
5249
5250  
vendor: 4,376 bytes, lines 5250-5369
5250// node_modules/flickity/node_modules/fizzy-ui-utils/utils.js
5251  var require_utils = __commonJS({
5252    "node_modules/flickity/node_modules/fizzy-ui-utils/utils.js"(exports, module) {
5253      (function(global, factory) {
5254        if (typeof module == "object" && module.exports) {
5255          module.exports = factory(global);
5256        } else {
5257          global.fizzyUIUtils = factory(global);
5258        }
5259      })(exports, function factory(global) {
5260        let utils = {};
5261        utils.extend = function(a8, b3) {
5262          return Object.assign(a8, b3);
5263        };
5264        utils.modulo = function(num, div) {
5265          return (num % div + div) % div;
5266        };
5267        utils.makeArray = function(obj) {
5268          if (Array.isArray(obj)) return obj;
5269          if (obj === null || obj === void 0) return [];
5270          let isArrayLike = typeof obj == "object" && typeof obj.length == "number";
5271          if (isArrayLike) return [...obj];
5272          return [obj];
5273        };
5274        utils.removeFrom = function(ary, obj) {
5275          let index = ary.indexOf(obj);
5276          if (index != -1) {
5277            ary.splice(index, 1);
5278          }
5279        };
5280        utils.getParent = function(elem, selector3) {
5281          while (elem.parentNode && elem != document.body) {
5282            elem = elem.parentNode;
5283            if (elem.matches(selector3)) return elem;
5284          }
5285        };
5286        utils.getQueryElement = function(elem) {
5287          if (typeof elem == "string") {
5288            return document.querySelector(elem);
5289          }
5290          return elem;
5291        };
5292        utils.handleEvent = function(event) {
5293          let method = "on" + event.type;
5294          if (this[method]) {
5295            this[method](event);
5296          }
5297        };
5298        utils.filterFindElements = function(elems, selector3) {
5299          elems = utils.makeArray(elems);
5300          return elems.filter((elem) => elem instanceof HTMLElement).reduce((ffElems, elem) => {
5301            if (!selector3) {
5302              ffElems.push(elem);
5303              return ffElems;
5304            }
5305            if (elem.matches(selector3)) {
5306              ffElems.push(elem);
5307            }
5308            let childElems = elem.querySelectorAll(selector3);
5309            ffElems = ffElems.concat(...childElems);
5310            return ffElems;
5311          }, []);
5312        };
5313        utils.debounceMethod = function(_class, methodName, threshold) {
5314          threshold = threshold || 100;
5315          let method = _class.prototype[methodName];
5316          let timeoutName = methodName + "Timeout";
5317          _class.prototype[methodName] = function() {
5318            clearTimeout(this[timeoutName]);
5319            let args = arguments;
5320            this[timeoutName] = setTimeout(() => {
5321              method.apply(this, args);
5322              delete this[timeoutName];
5323            }, threshold);
5324          };
5325        };
5326        utils.docReady = function(onDocReady) {
5327          let readyState = document.readyState;
5328          if (readyState == "complete" || readyState == "interactive") {
5329            setTimeout(onDocReady);
5330          } else {
5331            document.addEventListener("DOMContentLoaded", onDocReady);
5332          }
5333        };
5334        utils.toDashed = function(str) {
5335          return str.replace(/(.)([A-Z])/g, function(match, $1, $22) {
5336            return $1 + "-" + $22;
5337          }).toLowerCase();
5338        };
5339        let console2 = global.console;
5340        utils.htmlInit = function(WidgetClass, namespace) {
5341          utils.docReady(function() {
5342            let dashedNamespace = utils.toDashed(namespace);
5343            let dataAttr = "data-" + dashedNamespace;
5344            let dataAttrElems = document.querySelectorAll(`[${dataAttr}]`);
5345            let jQuery2 = global.jQuery;
5346            [...dataAttrElems].forEach((elem) => {
5347              let attr = elem.getAttribute(dataAttr);
5348              let options;
5349              try {
5350                options = attr && JSON.parse(attr);
5351              } catch (error) {
5352                if (console2) {
5353                  console2.error(`Error parsing ${dataAttr} on ${elem.className}: ${error}`);
5354                }
5355                return;
5356              }
5357              let instance = new WidgetClass(elem, options);
5358              if (jQuery2) {
5359                jQuery2.data(elem, namespace, instance);
5360              }
5361            });
5362          });
5363        };
5364        return utils;
5365      });
5366    }
5367  });
5368
5369  
vendor: 1,531 bytes, lines 5369-5413
5369// node_modules/flickity/js/cell.js
5370  var require_cell = __commonJS({
5371    "node_modules/flickity/js/cell.js"(exports, module) {
5372      (function(window2, factory) {
5373        if (typeof module == "object" && module.exports) {
5374          module.exports = factory(require_get_size());
5375        } else {
5376          window2.Flickity = window2.Flickity || {};
5377          window2.Flickity.Cell = factory(window2.getSize);
5378        }
5379      })(typeof window != "undefined" ? window : exports, function factory(getSize) {
5380        const cellClassName = "flickity-cell";
5381        function Cell(elem) {
5382          this.element = elem;
5383          this.element.classList.add(cellClassName);
5384          this.x = 0;
5385          this.unselect();
5386        }
5387        let proto = Cell.prototype;
5388        proto.destroy = function() {
5389          this.unselect();
5390          this.element.classList.remove(cellClassName);
5391          this.element.style.transform = "";
5392          this.element.removeAttribute("aria-hidden");
5393        };
5394        proto.getSize = function() {
5395          this.size = getSize(this.element);
5396        };
5397        proto.select = function() {
5398          this.element.classList.add("is-selected");
5399          this.element.removeAttribute("aria-hidden");
5400        };
5401        proto.unselect = function() {
5402          this.element.classList.remove("is-selected");
5403          this.element.setAttribute("aria-hidden", "true");
5404        };
5405        proto.remove = function() {
5406          this.element.remove();
5407        };
5408        return Cell;
5409      });
5410    }
5411  });
5412
5413  
vendor: 1,929 bytes, lines 5413-5465
5413// node_modules/flickity/js/slide.js
5414  var require_slide = __commonJS({
5415    "node_modules/flickity/js/slide.js"(exports, module) {
5416      (function(window2, factory) {
5417        if (typeof module == "object" && module.exports) {
5418          module.exports = factory();
5419        } else {
5420          window2.Flickity = window2.Flickity || {};
5421          window2.Flickity.Slide = factory();
5422        }
5423      })(typeof window != "undefined" ? window : exports, function factory() {
5424        function Slide(beginMargin, endMargin, cellAlign) {
5425          this.beginMargin = beginMargin;
5426          this.endMargin = endMargin;
5427          this.cellAlign = cellAlign;
5428          this.cells = [];
5429          this.outerWidth = 0;
5430          this.height = 0;
5431        }
5432        let proto = Slide.prototype;
5433        proto.addCell = function(cell) {
5434          this.cells.push(cell);
5435          this.outerWidth += cell.size.outerWidth;
5436          this.height = Math.max(cell.size.outerHeight, this.height);
5437          if (this.cells.length === 1) {
5438            this.x = cell.x;
5439            this.firstMargin = cell.size[this.beginMargin];
5440          }
5441        };
5442        proto.updateTarget = function() {
5443          let lastCell = this.getLastCell();
5444          let lastMargin = lastCell ? lastCell.size[this.endMargin] : 0;
5445          let slideWidth = this.outerWidth - (this.firstMargin + lastMargin);
5446          this.target = this.x + this.firstMargin + slideWidth * this.cellAlign;
5447        };
5448        proto.getLastCell = function() {
5449          return this.cells[this.cells.length - 1];
5450        };
5451        proto.select = function() {
5452          this.cells.forEach((cell) => cell.select());
5453        };
5454        proto.unselect = function() {
5455          this.cells.forEach((cell) => cell.unselect());
5456        };
5457        proto.getCellElements = function() {
5458          return this.cells.map((cell) => cell.element);
5459        };
5460        return Slide;
5461      });
5462    }
5463  });
5464
5465  
vendor: 5,089 bytes, lines 5465-5588
5465// node_modules/flickity/js/animate.js
5466  var require_animate = __commonJS({
5467    "node_modules/flickity/js/animate.js"(exports, module) {
5468      (function(window2, factory) {
5469        if (typeof module == "object" && module.exports) {
5470          module.exports = factory(require_utils());
5471        } else {
5472          window2.Flickity = window2.Flickity || {};
5473          window2.Flickity.animatePrototype = factory(window2.fizzyUIUtils);
5474        }
5475      })(typeof window != "undefined" ? window : exports, function factory(utils) {
5476        let proto = {};
5477        proto.startAnimation = function() {
5478          if (this.isAnimating) return;
5479          this.isAnimating = true;
5480          this.restingFrames = 0;
5481          this.animate();
5482        };
5483        proto.animate = function() {
5484          this.applyDragForce();
5485          this.applySelectedAttraction();
5486          let previousX = this.x;
5487          this.integratePhysics();
5488          this.positionSlider();
5489          this.settle(previousX);
5490          if (this.isAnimating) requestAnimationFrame(() => this.animate());
5491        };
5492        proto.positionSlider = function() {
5493          let x2 = this.x;
5494          if (this.isWrapping) {
5495            x2 = utils.modulo(x2, this.slideableWidth) - this.slideableWidth;
5496            this.shiftWrapCells(x2);
5497          }
5498          this.setTranslateX(x2, this.isAnimating);
5499          this.dispatchScrollEvent();
5500        };
5501        proto.setTranslateX = function(x2, is3d) {
5502          x2 += this.cursorPosition;
5503          if (this.options.rightToLeft) x2 = -x2;
5504          let translateX = this.getPositionValue(x2);
5505          this.slider.style.transform = is3d ? `translate3d(${translateX},0,0)` : `translateX(${translateX})`;
5506        };
5507        proto.dispatchScrollEvent = function() {
5508          let firstSlide = this.slides[0];
5509          if (!firstSlide) return;
5510          let positionX = -this.x - firstSlide.target;
5511          let progress = positionX / this.slidesWidth;
5512          this.dispatchEvent("scroll", null, [progress, positionX]);
5513        };
5514        proto.positionSliderAtSelected = function() {
5515          if (!this.cells.length) return;
5516          this.x = -this.selectedSlide.target;
5517          this.velocity = 0;
5518          this.positionSlider();
5519        };
5520        proto.getPositionValue = function(position) {
5521          if (this.options.percentPosition) {
5522            return Math.round(position / this.size.innerWidth * 1e4) * 0.01 + "%";
5523          } else {
5524            return Math.round(position) + "px";
5525          }
5526        };
5527        proto.settle = function(previousX) {
5528          let isResting = !this.isPointerDown && Math.round(this.x * 100) === Math.round(previousX * 100);
5529          if (isResting) this.restingFrames++;
5530          if (this.restingFrames > 2) {
5531            this.isAnimating = false;
5532            delete this.isFreeScrolling;
5533            this.positionSlider();
5534            this.dispatchEvent("settle", null, [this.selectedIndex]);
5535          }
5536        };
5537        proto.shiftWrapCells = function(x2) {
5538          let beforeGap = this.cursorPosition + x2;
5539          this._shiftCells(this.beforeShiftCells, beforeGap, -1);
5540          let afterGap = this.size.innerWidth - (x2 + this.slideableWidth + this.cursorPosition);
5541          this._shiftCells(this.afterShiftCells, afterGap, 1);
5542        };
5543        proto._shiftCells = function(cells, gap, shift) {
5544          cells.forEach((cell) => {
5545            let cellShift = gap > 0 ? shift : 0;
5546            this._wrapShiftCell(cell, cellShift);
5547            gap -= cell.size.outerWidth;
5548          });
5549        };
5550        proto._unshiftCells = function(cells) {
5551          if (!cells || !cells.length) return;
5552          cells.forEach((cell) => this._wrapShiftCell(cell, 0));
5553        };
5554        proto._wrapShiftCell = function(cell, shift) {
5555          this._renderCellPosition(cell, cell.x + this.slideableWidth * shift);
5556        };
5557        proto.integratePhysics = function() {
5558          this.x += this.velocity;
5559          this.velocity *= this.getFrictionFactor();
5560        };
5561        proto.applyForce = function(force) {
5562          this.velocity += force;
5563        };
5564        proto.getFrictionFactor = function() {
5565          return 1 - this.options[this.isFreeScrolling ? "freeScrollFriction" : "friction"];
5566        };
5567        proto.getRestingPosition = function() {
5568          return this.x + this.velocity / (1 - this.getFrictionFactor());
5569        };
5570        proto.applyDragForce = function() {
5571          if (!this.isDraggable || !this.isPointerDown) return;
5572          let dragVelocity = this.dragX - this.x;
5573          let dragForce = dragVelocity - this.velocity;
5574          this.applyForce(dragForce);
5575        };
5576        proto.applySelectedAttraction = function() {
5577          let dragDown = this.isDraggable && this.isPointerDown;
5578          if (dragDown || this.isFreeScrolling || !this.slides.length) return;
5579          let distance = this.selectedSlide.target * -1 - this.x;
5580          let force = distance * this.options.selectedAttraction;
5581          this.applyForce(force);
5582        };
5583        return proto;
5584      });
5585    }
5586  });
5587
5588  
vendor: 23,883 bytes, lines 5588-6166
5588// node_modules/flickity/js/core.js
5589  var require_core = __commonJS({
5590    "node_modules/flickity/js/core.js"(exports, module) {
5591      (function(window2, factory) {
5592        if (typeof module == "object" && module.exports) {
5593          module.exports = factory(
5594            window2,
5595            require_ev_emitter(),
5596            require_get_size(),
5597            require_utils(),
5598            require_cell(),
5599            require_slide(),
5600            require_animate()
5601          );
5602        } else {
5603          let _Flickity = window2.Flickity;
5604          window2.Flickity = factory(
5605            window2,
5606            window2.EvEmitter,
5607            window2.getSize,
5608            window2.fizzyUIUtils,
5609            _Flickity.Cell,
5610            _Flickity.Slide,
5611            _Flickity.animatePrototype
5612          );
5613        }
5614      })(
5615        typeof window != "undefined" ? window : exports,
5616        function factory(window2, EvEmitter, getSize, utils, Cell, Slide, animatePrototype) {
5617          const { getComputedStyle: getComputedStyle2, console: console2 } = window2;
5618          let { jQuery: jQuery2 } = window2;
5619          let GUID = 0;
5620          let instances = {};
5621          function Flickity2(element, options) {
5622            let queryElement = utils.getQueryElement(element);
5623            if (!queryElement) {
5624              if (console2) console2.error(`Bad element for Flickity: ${queryElement || element}`);
5625              return;
5626            }
5627            this.element = queryElement;
5628            if (this.element.flickityGUID) {
5629              let instance = instances[this.element.flickityGUID];
5630              if (instance) instance.option(options);
5631              return instance;
5632            }
5633            if (jQuery2) {
5634              this.$element = jQuery2(this.element);
5635            }
5636            this.options = { ...this.constructor.defaults };
5637            this.option(options);
5638            this._create();
5639          }
5640          Flickity2.defaults = {
5641            accessibility: true,
5642            // adaptiveHeight: false,
5643            cellAlign: "center",
5644            // cellSelector: undefined,
5645            // contain: false,
5646            freeScrollFriction: 0.075,
5647            // friction when free-scrolling
5648            friction: 0.28,
5649            // friction when selecting
5650            namespaceJQueryEvents: true,
5651            // initialIndex: 0,
5652            percentPosition: true,
5653            resize: true,
5654            selectedAttraction: 0.025,
5655            setGallerySize: true
5656            // watchCSS: false,
5657            // wrapAround: false
5658          };
5659          Flickity2.create = {};
5660          let proto = Flickity2.prototype;
5661          Object.assign(proto, EvEmitter.prototype);
5662          proto._create = function() {
5663            let { resize, watchCSS, rightToLeft } = this.options;
5664            let id = this.guid = ++GUID;
5665            this.element.flickityGUID = id;
5666            instances[id] = this;
5667            this.selectedIndex = 0;
5668            this.restingFrames = 0;
5669            this.x = 0;
5670            this.velocity = 0;
5671            this.beginMargin = rightToLeft ? "marginRight" : "marginLeft";
5672            this.endMargin = rightToLeft ? "marginLeft" : "marginRight";
5673            this.viewport = document.createElement("div");
5674            this.viewport.className = "flickity-viewport";
5675            this._createSlider();
5676            this.focusableElems = [this.element];
5677            if (resize || watchCSS) {
5678              window2.addEventListener("resize", this);
5679            }
5680            for (let eventName in this.options.on) {
5681              let listener = this.options.on[eventName];
5682              this.on(eventName, listener);
5683            }
5684            for (let method in Flickity2.create) {
5685              Flickity2.create[method].call(this);
5686            }
5687            if (watchCSS) {
5688              this.watchCSS();
5689            } else {
5690              this.activate();
5691            }
5692          };
5693          proto.option = function(opts) {
5694            Object.assign(this.options, opts);
5695          };
5696          proto.activate = function() {
5697            if (this.isActive) return;
5698            this.isActive = true;
5699            this.element.classList.add("flickity-enabled");
5700            if (this.options.rightToLeft) {
5701              this.element.classList.add("flickity-rtl");
5702            }
5703            this.getSize();
5704            let cellElems = this._filterFindCellElements(this.element.children);
5705            this.slider.append(...cellElems);
5706            this.viewport.append(this.slider);
5707            this.element.append(this.viewport);
5708            this.reloadCells();
5709            if (this.options.accessibility) {
5710              this.element.tabIndex = 0;
5711              this.element.addEventListener("keydown", this);
5712            }
5713            this.emitEvent("activate");
5714            this.selectInitialIndex();
5715            this.isInitActivated = true;
5716            this.dispatchEvent("ready");
5717          };
5718          proto._createSlider = function() {
5719            let slider = document.createElement("div");
5720            slider.className = "flickity-slider";
5721            this.slider = slider;
5722          };
5723          proto._filterFindCellElements = function(elems) {
5724            return utils.filterFindElements(elems, this.options.cellSelector);
5725          };
5726          proto.reloadCells = function() {
5727            this.cells = this._makeCells(this.slider.children);
5728            this.positionCells();
5729            this._updateWrapShiftCells();
5730            this.setGallerySize();
5731          };
5732          proto._makeCells = function(elems) {
5733            let cellElems = this._filterFindCellElements(elems);
5734            return cellElems.map((cellElem) => new Cell(cellElem));
5735          };
5736          proto.getLastCell = function() {
5737            return this.cells[this.cells.length - 1];
5738          };
5739          proto.getLastSlide = function() {
5740            return this.slides[this.slides.length - 1];
5741          };
5742          proto.positionCells = function() {
5743            this._sizeCells(this.cells);
5744            this._positionCells(0);
5745          };
5746          proto._positionCells = function(index) {
5747            index = index || 0;
5748            this.maxCellHeight = index ? this.maxCellHeight || 0 : 0;
5749            let cellX = 0;
5750            if (index > 0) {
5751              let startCell = this.cells[index - 1];
5752              cellX = startCell.x + startCell.size.outerWidth;
5753            }
5754            this.cells.slice(index).forEach((cell) => {
5755              cell.x = cellX;
5756              this._renderCellPosition(cell, cellX);
5757              cellX += cell.size.outerWidth;
5758              this.maxCellHeight = Math.max(cell.size.outerHeight, this.maxCellHeight);
5759            });
5760            this.slideableWidth = cellX;
5761            this.updateSlides();
5762            this._containSlides();
5763            this.slidesWidth = this.cells.length ? this.getLastSlide().target - this.slides[0].target : 0;
5764          };
5765          proto._renderCellPosition = function(cell, x2) {
5766            let sideOffset = this.options.rightToLeft ? -1 : 1;
5767            let renderX = x2 * sideOffset;
5768            if (this.options.percentPosition) renderX *= this.size.innerWidth / cell.size.width;
5769            let positionValue = this.getPositionValue(renderX);
5770            cell.element.style.transform = `translateX( ${positionValue} )`;
5771          };
5772          proto._sizeCells = function(cells) {
5773            cells.forEach((cell) => cell.getSize());
5774          };
5775          proto.updateSlides = function() {
5776            this.slides = [];
5777            if (!this.cells.length) return;
5778            let { beginMargin, endMargin } = this;
5779            let slide = new Slide(beginMargin, endMargin, this.cellAlign);
5780            this.slides.push(slide);
5781            let canCellFit = this._getCanCellFit();
5782            this.cells.forEach((cell, i10) => {
5783              if (!slide.cells.length) {
5784                slide.addCell(cell);
5785                return;
5786              }
5787              let slideWidth = slide.outerWidth - slide.firstMargin + (cell.size.outerWidth - cell.size[endMargin]);
5788              if (canCellFit(i10, slideWidth)) {
5789                slide.addCell(cell);
5790              } else {
5791                slide.updateTarget();
5792                slide = new Slide(beginMargin, endMargin, this.cellAlign);
5793                this.slides.push(slide);
5794                slide.addCell(cell);
5795              }
5796            });
5797            slide.updateTarget();
5798            this.updateSelectedSlide();
5799          };
5800          proto._getCanCellFit = function() {
5801            let { groupCells } = this.options;
5802            if (!groupCells) return () => false;
5803            if (typeof groupCells == "number") {
5804              let number = parseInt(groupCells, 10);
5805              return (i10) => i10 % number !== 0;
5806            }
5807            let percent = 1;
5808            let percentMatch = typeof groupCells == "string" && groupCells.match(/^(\d+)%$/);
5809            if (percentMatch) percent = parseInt(percentMatch[1], 10) / 100;
5810            let groupWidth = (this.size.innerWidth + 1) * percent;
5811            return (i10, slideWidth) => slideWidth <= groupWidth;
5812          };
5813          proto._init = proto.reposition = function() {
5814            this.positionCells();
5815            this.positionSliderAtSelected();
5816          };
5817          proto.getSize = function() {
5818            this.size = getSize(this.element);
5819            this.setCellAlign();
5820            this.cursorPosition = this.size.innerWidth * this.cellAlign;
5821          };
5822          let cellAlignShorthands = {
5823            left: 0,
5824            center: 0.5,
5825            right: 1
5826          };
5827          proto.setCellAlign = function() {
5828            let { cellAlign, rightToLeft } = this.options;
5829            let shorthand = cellAlignShorthands[cellAlign];
5830            this.cellAlign = shorthand !== void 0 ? shorthand : cellAlign;
5831            if (rightToLeft) this.cellAlign = 1 - this.cellAlign;
5832          };
5833          proto.setGallerySize = function() {
5834            if (!this.options.setGallerySize) return;
5835            let height = this.options.adaptiveHeight && this.selectedSlide ? this.selectedSlide.height : this.maxCellHeight;
5836            this.viewport.style.height = `${height}px`;
5837          };
5838          proto._updateWrapShiftCells = function() {
5839            this.isWrapping = this.getIsWrapping();
5840            if (!this.isWrapping) return;
5841            this._unshiftCells(this.beforeShiftCells);
5842            this._unshiftCells(this.afterShiftCells);
5843            let beforeGapX = this.cursorPosition;
5844            let lastIndex = this.cells.length - 1;
5845            this.beforeShiftCells = this._getGapCells(beforeGapX, lastIndex, -1);
5846            let afterGapX = this.size.innerWidth - this.cursorPosition;
5847            this.afterShiftCells = this._getGapCells(afterGapX, 0, 1);
5848          };
5849          proto.getIsWrapping = function() {
5850            let { wrapAround } = this.options;
5851            if (!wrapAround || this.slides.length < 2) return false;
5852            if (wrapAround !== "fill") return true;
5853            let gapWidth = this.slideableWidth - this.size.innerWidth;
5854            if (gapWidth > this.size.innerWidth) return true;
5855            for (let cell of this.cells) {
5856              if (cell.size.outerWidth > gapWidth) return false;
5857            }
5858            return true;
5859          };
5860          proto._getGapCells = function(gapX, cellIndex, increment) {
5861            let cells = [];
5862            while (gapX > 0) {
5863              let cell = this.cells[cellIndex];
5864              if (!cell) break;
5865              cells.push(cell);
5866              cellIndex += increment;
5867              gapX -= cell.size.outerWidth;
5868            }
5869            return cells;
5870          };
5871          proto._containSlides = function() {
5872            let isContaining = this.options.contain && !this.isWrapping && this.cells.length;
5873            if (!isContaining) return;
5874            let contentWidth = this.slideableWidth - this.getLastCell().size[this.endMargin];
5875            let isContentSmaller = contentWidth < this.size.innerWidth;
5876            if (isContentSmaller) {
5877              this.slides.forEach((slide) => {
5878                slide.target = contentWidth * this.cellAlign;
5879              });
5880            } else {
5881              let beginBound = this.cursorPosition + this.cells[0].size[this.beginMargin];
5882              let endBound = contentWidth - this.size.innerWidth * (1 - this.cellAlign);
5883              this.slides.forEach((slide) => {
5884                slide.target = Math.max(slide.target, beginBound);
5885                slide.target = Math.min(slide.target, endBound);
5886              });
5887            }
5888          };
5889          proto.dispatchEvent = function(type, event, args) {
5890            let emitArgs = event ? [event].concat(args) : args;
5891            this.emitEvent(type, emitArgs);
5892            if (jQuery2 && this.$element) {
5893              type += this.options.namespaceJQueryEvents ? ".flickity" : "";
5894              let $event = type;
5895              if (event) {
5896                let jQEvent = new jQuery2.Event(event);
5897                jQEvent.type = type;
5898                $event = jQEvent;
5899              }
5900              this.$element.trigger($event, args);
5901            }
5902          };
5903          const unidraggerEvents = [
5904            "dragStart",
5905            "dragMove",
5906            "dragEnd",
5907            "pointerDown",
5908            "pointerMove",
5909            "pointerEnd",
5910            "staticClick"
5911          ];
5912          let _emitEvent = proto.emitEvent;
5913          proto.emitEvent = function(eventName, args) {
5914            if (eventName === "staticClick") {
5915              let clickedCell = this.getParentCell(args[0].target);
5916              let cellElem = clickedCell && clickedCell.element;
5917              let cellIndex = clickedCell && this.cells.indexOf(clickedCell);
5918              args = args.concat(cellElem, cellIndex);
5919            }
5920            _emitEvent.call(this, eventName, args);
5921            let isUnidraggerEvent = unidraggerEvents.includes(eventName);
5922            if (!isUnidraggerEvent || !jQuery2 || !this.$element) return;
5923            eventName += this.options.namespaceJQueryEvents ? ".flickity" : "";
5924            let event = args.shift(0);
5925            let jQEvent = new jQuery2.Event(event);
5926            jQEvent.type = eventName;
5927            this.$element.trigger(jQEvent, args);
5928          };
5929          proto.select = function(index, isWrap, isInstant) {
5930            if (!this.isActive) return;
5931            index = parseInt(index, 10);
5932            this._wrapSelect(index);
5933            if (this.isWrapping || isWrap) {
5934              index = utils.modulo(index, this.slides.length);
5935            }
5936            if (!this.slides[index]) return;
5937            let prevIndex = this.selectedIndex;
5938            this.selectedIndex = index;
5939            this.updateSelectedSlide();
5940            if (isInstant) {
5941              this.positionSliderAtSelected();
5942            } else {
5943              this.startAnimation();
5944            }
5945            if (this.options.adaptiveHeight) {
5946              this.setGallerySize();
5947            }
5948            this.dispatchEvent("select", null, [index]);
5949            if (index !== prevIndex) {
5950              this.dispatchEvent("change", null, [index]);
5951            }
5952          };
5953          proto._wrapSelect = function(index) {
5954            if (!this.isWrapping) return;
5955            const { selectedIndex, slideableWidth, slides: { length } } = this;
5956            if (!this.isDragSelect) {
5957              let wrapIndex = utils.modulo(index, length);
5958              let delta = Math.abs(wrapIndex - selectedIndex);
5959              let backWrapDelta = Math.abs(wrapIndex + length - selectedIndex);
5960              let forewardWrapDelta = Math.abs(wrapIndex - length - selectedIndex);
5961              if (backWrapDelta < delta) {
5962                index += length;
5963              } else if (forewardWrapDelta < delta) {
5964                index -= length;
5965              }
5966            }
5967            if (index < 0) {
5968              this.x -= slideableWidth;
5969            } else if (index >= length) {
5970              this.x += slideableWidth;
5971            }
5972          };
5973          proto.previous = function(isWrap, isInstant) {
5974            this.select(this.selectedIndex - 1, isWrap, isInstant);
5975          };
5976          proto.next = function(isWrap, isInstant) {
5977            this.select(this.selectedIndex + 1, isWrap, isInstant);
5978          };
5979          proto.updateSelectedSlide = function() {
5980            let slide = this.slides[this.selectedIndex];
5981            if (!slide) return;
5982            this.unselectSelectedSlide();
5983            this.selectedSlide = slide;
5984            slide.select();
5985            this.selectedCells = slide.cells;
5986            this.selectedElements = slide.getCellElements();
5987            this.selectedCell = slide.cells[0];
5988            this.selectedElement = this.selectedElements[0];
5989          };
5990          proto.unselectSelectedSlide = function() {
5991            if (this.selectedSlide) this.selectedSlide.unselect();
5992          };
5993          proto.selectInitialIndex = function() {
5994            let initialIndex = this.options.initialIndex;
5995            if (this.isInitActivated) {
5996              this.select(this.selectedIndex, false, true);
5997              return;
5998            }
5999            if (initialIndex && typeof initialIndex == "string") {
6000              let cell = this.queryCell(initialIndex);
6001              if (cell) {
6002                this.selectCell(initialIndex, false, true);
6003                return;
6004              }
6005            }
6006            let index = 0;
6007            if (initialIndex && this.slides[initialIndex]) {
6008              index = initialIndex;
6009            }
6010            this.select(index, false, true);
6011          };
6012          proto.selectCell = function(value, isWrap, isInstant) {
6013            let cell = this.queryCell(value);
6014            if (!cell) return;
6015            let index = this.getCellSlideIndex(cell);
6016            this.select(index, isWrap, isInstant);
6017          };
6018          proto.getCellSlideIndex = function(cell) {
6019            let cellSlide = this.slides.find((slide) => slide.cells.includes(cell));
6020            return this.slides.indexOf(cellSlide);
6021          };
6022          proto.getCell = function(elem) {
6023            for (let cell of this.cells) {
6024              if (cell.element === elem) return cell;
6025            }
6026          };
6027          proto.getCells = function(elems) {
6028            elems = utils.makeArray(elems);
6029            return elems.map((elem) => this.getCell(elem)).filter(Boolean);
6030          };
6031          proto.getCellElements = function() {
6032            return this.cells.map((cell) => cell.element);
6033          };
6034          proto.getParentCell = function(elem) {
6035            let cell = this.getCell(elem);
6036            if (cell) return cell;
6037            let closest = elem.closest(".flickity-slider > *");
6038            return this.getCell(closest);
6039          };
6040          proto.getAdjacentCellElements = function(adjCount, index) {
6041            if (!adjCount) return this.selectedSlide.getCellElements();
6042            index = index === void 0 ? this.selectedIndex : index;
6043            let len = this.slides.length;
6044            if (1 + adjCount * 2 >= len) {
6045              return this.getCellElements();
6046            }
6047            let cellElems = [];
6048            for (let i10 = index - adjCount; i10 <= index + adjCount; i10++) {
6049              let slideIndex = this.isWrapping ? utils.modulo(i10, len) : i10;
6050              let slide = this.slides[slideIndex];
6051              if (slide) {
6052                cellElems = cellElems.concat(slide.getCellElements());
6053              }
6054            }
6055            return cellElems;
6056          };
6057          proto.queryCell = function(selector3) {
6058            if (typeof selector3 == "number") {
6059              return this.cells[selector3];
6060            }
6061            let isSelectorString = typeof selector3 == "string" && !selector3.match(/^[#.]?[\d/]/);
6062            if (isSelectorString) {
6063              selector3 = this.element.querySelector(selector3);
6064            }
6065            return this.getCell(selector3);
6066          };
6067          proto.uiChange = function() {
6068            this.emitEvent("uiChange");
6069          };
6070          proto.onresize = function() {
6071            this.watchCSS();
6072            this.resize();
6073          };
6074          utils.debounceMethod(Flickity2, "onresize", 150);
6075          proto.resize = function() {
6076            if (!this.isActive || this.isAnimating || this.isDragging) return;
6077            this.getSize();
6078            if (this.isWrapping) {
6079              this.x = utils.modulo(this.x, this.slideableWidth);
6080            }
6081            this.positionCells();
6082            this._updateWrapShiftCells();
6083            this.setGallerySize();
6084            this.emitEvent("resize");
6085            let selectedElement = this.selectedElements && this.selectedElements[0];
6086            this.selectCell(selectedElement, false, true);
6087          };
6088          proto.watchCSS = function() {
6089            if (!this.options.watchCSS) return;
6090            let afterContent = getComputedStyle2(this.element, ":after").content;
6091            if (afterContent.includes("flickity")) {
6092              this.activate();
6093            } else {
6094              this.deactivate();
6095            }
6096          };
6097          proto.onkeydown = function(event) {
6098            let { activeElement } = document;
6099            let handler = Flickity2.keyboardHandlers[event.key];
6100            if (!this.options.accessibility || !activeElement || !handler) return;
6101            let isFocused = this.focusableElems.some((elem) => activeElement === elem);
6102            if (isFocused) handler.call(this);
6103          };
6104          Flickity2.keyboardHandlers = {
6105            ArrowLeft: function() {
6106              this.uiChange();
6107              let leftMethod = this.options.rightToLeft ? "next" : "previous";
6108              this[leftMethod]();
6109            },
6110            ArrowRight: function() {
6111              this.uiChange();
6112              let rightMethod = this.options.rightToLeft ? "previous" : "next";
6113              this[rightMethod]();
6114            }
6115          };
6116          proto.focus = function() {
6117            this.element.focus({ preventScroll: true });
6118          };
6119          proto.deactivate = function() {
6120            if (!this.isActive) return;
6121            this.element.classList.remove("flickity-enabled");
6122            this.element.classList.remove("flickity-rtl");
6123            this.unselectSelectedSlide();
6124            this.cells.forEach((cell) => cell.destroy());
6125            this.viewport.remove();
6126            this.element.append(...this.slider.children);
6127            if (this.options.accessibility) {
6128              this.element.removeAttribute("tabIndex");
6129              this.element.removeEventListener("keydown", this);
6130            }
6131            this.isActive = false;
6132            this.emitEvent("deactivate");
6133          };
6134          proto.destroy = function() {
6135            this.deactivate();
6136            window2.removeEventListener("resize", this);
6137            this.allOff();
6138            this.emitEvent("destroy");
6139            if (jQuery2 && this.$element) {
6140              jQuery2.removeData(this.element, "flickity");
6141            }
6142            delete this.element.flickityGUID;
6143            delete instances[this.guid];
6144          };
6145          Object.assign(proto, animatePrototype);
6146          Flickity2.data = function(elem) {
6147            elem = utils.getQueryElement(elem);
6148            if (elem) return instances[elem.flickityGUID];
6149          };
6150          utils.htmlInit(Flickity2, "flickity");
6151          let { jQueryBridget: jQueryBridget2 } = window2;
6152          if (jQuery2 && jQueryBridget2) {
6153            jQueryBridget2("flickity", Flickity2, jQuery2);
6154          }
6155          Flickity2.setJQuery = function(jq) {
6156            jQuery2 = jq;
6157          };
6158          Flickity2.Cell = Cell;
6159          Flickity2.Slide = Slide;
6160          return Flickity2;
6161        }
6162      );
6163    }
6164  });
6165
6166  
vendor: 7,417 bytes, lines 6166-6357
6166// node_modules/unidragger/unidragger.js
6167  var require_unidragger = __commonJS({
6168    "node_modules/unidragger/unidragger.js"(exports, module) {
6169      (function(window2, factory) {
6170        if (typeof module == "object" && module.exports) {
6171          module.exports = factory(
6172            window2,
6173            require_ev_emitter()
6174          );
6175        } else {
6176          window2.Unidragger = factory(
6177            window2,
6178            window2.EvEmitter
6179          );
6180        }
6181      })(typeof window != "undefined" ? window : exports, function factory(window2, EvEmitter) {
6182        function Unidragger() {
6183        }
6184        let proto = Unidragger.prototype = Object.create(EvEmitter.prototype);
6185        proto.handleEvent = function(event) {
6186          let method = "on" + event.type;
6187          if (this[method]) {
6188            this[method](event);
6189          }
6190        };
6191        let startEvent, activeEvents;
6192        if ("ontouchstart" in window2) {
6193          startEvent = "touchstart";
6194          activeEvents = ["touchmove", "touchend", "touchcancel"];
6195        } else if (window2.PointerEvent) {
6196          startEvent = "pointerdown";
6197          activeEvents = ["pointermove", "pointerup", "pointercancel"];
6198        } else {
6199          startEvent = "mousedown";
6200          activeEvents = ["mousemove", "mouseup"];
6201        }
6202        proto.touchActionValue = "none";
6203        proto.bindHandles = function() {
6204          this._bindHandles("addEventListener", this.touchActionValue);
6205        };
6206        proto.unbindHandles = function() {
6207          this._bindHandles("removeEventListener", "");
6208        };
6209        proto._bindHandles = function(bindMethod, touchAction) {
6210          this.handles.forEach((handle) => {
6211            handle[bindMethod](startEvent, this);
6212            handle[bindMethod]("click", this);
6213            if (window2.PointerEvent) handle.style.touchAction = touchAction;
6214          });
6215        };
6216        proto.bindActivePointerEvents = function() {
6217          activeEvents.forEach((eventName) => {
6218            window2.addEventListener(eventName, this);
6219          });
6220        };
6221        proto.unbindActivePointerEvents = function() {
6222          activeEvents.forEach((eventName) => {
6223            window2.removeEventListener(eventName, this);
6224          });
6225        };
6226        proto.withPointer = function(methodName, event) {
6227          if (event.pointerId === this.pointerIdentifier) {
6228            this[methodName](event, event);
6229          }
6230        };
6231        proto.withTouch = function(methodName, event) {
6232          let touch;
6233          for (let changedTouch of event.changedTouches) {
6234            if (changedTouch.identifier === this.pointerIdentifier) {
6235              touch = changedTouch;
6236            }
6237          }
6238          if (touch) this[methodName](event, touch);
6239        };
6240        proto.onmousedown = function(event) {
6241          this.pointerDown(event, event);
6242        };
6243        proto.ontouchstart = function(event) {
6244          this.pointerDown(event, event.changedTouches[0]);
6245        };
6246        proto.onpointerdown = function(event) {
6247          this.pointerDown(event, event);
6248        };
6249        const cursorNodes = ["TEXTAREA", "INPUT", "SELECT", "OPTION"];
6250        const clickTypes = ["radio", "checkbox", "button", "submit", "image", "file"];
6251        proto.pointerDown = function(event, pointer) {
6252          let isCursorNode = cursorNodes.includes(event.target.nodeName);
6253          let isClickType = clickTypes.includes(event.target.type);
6254          let isOkayElement = !isCursorNode || isClickType;
6255          let isOkay = !this.isPointerDown && !event.button && isOkayElement;
6256          if (!isOkay) return;
6257          this.isPointerDown = true;
6258          this.pointerIdentifier = pointer.pointerId !== void 0 ? (
6259            // pointerId for pointer events, touch.indentifier for touch events
6260            pointer.pointerId
6261          ) : pointer.identifier;
6262          this.pointerDownPointer = {
6263            pageX: pointer.pageX,
6264            pageY: pointer.pageY
6265          };
6266          this.bindActivePointerEvents();
6267          this.emitEvent("pointerDown", [event, pointer]);
6268        };
6269        proto.onmousemove = function(event) {
6270          this.pointerMove(event, event);
6271        };
6272        proto.onpointermove = function(event) {
6273          this.withPointer("pointerMove", event);
6274        };
6275        proto.ontouchmove = function(event) {
6276          this.withTouch("pointerMove", event);
6277        };
6278        proto.pointerMove = function(event, pointer) {
6279          let moveVector = {
6280            x: pointer.pageX - this.pointerDownPointer.pageX,
6281            y: pointer.pageY - this.pointerDownPointer.pageY
6282          };
6283          this.emitEvent("pointerMove", [event, pointer, moveVector]);
6284          let isDragStarting = !this.isDragging && this.hasDragStarted(moveVector);
6285          if (isDragStarting) this.dragStart(event, pointer);
6286          if (this.isDragging) this.dragMove(event, pointer, moveVector);
6287        };
6288        proto.hasDragStarted = function(moveVector) {
6289          return Math.abs(moveVector.x) > 3 || Math.abs(moveVector.y) > 3;
6290        };
6291        proto.dragStart = function(event, pointer) {
6292          this.isDragging = true;
6293          this.isPreventingClicks = true;
6294          this.emitEvent("dragStart", [event, pointer]);
6295        };
6296        proto.dragMove = function(event, pointer, moveVector) {
6297          this.emitEvent("dragMove", [event, pointer, moveVector]);
6298        };
6299        proto.onmouseup = function(event) {
6300          this.pointerUp(event, event);
6301        };
6302        proto.onpointerup = function(event) {
6303          this.withPointer("pointerUp", event);
6304        };
6305        proto.ontouchend = function(event) {
6306          this.withTouch("pointerUp", event);
6307        };
6308        proto.pointerUp = function(event, pointer) {
6309          this.pointerDone();
6310          this.emitEvent("pointerUp", [event, pointer]);
6311          if (this.isDragging) {
6312            this.dragEnd(event, pointer);
6313          } else {
6314            this.staticClick(event, pointer);
6315          }
6316        };
6317        proto.dragEnd = function(event, pointer) {
6318          this.isDragging = false;
6319          setTimeout(() => delete this.isPreventingClicks);
6320          this.emitEvent("dragEnd", [event, pointer]);
6321        };
6322        proto.pointerDone = function() {
6323          this.isPointerDown = false;
6324          delete this.pointerIdentifier;
6325          this.unbindActivePointerEvents();
6326          this.emitEvent("pointerDone");
6327        };
6328        proto.onpointercancel = function(event) {
6329          this.withPointer("pointerCancel", event);
6330        };
6331        proto.ontouchcancel = function(event) {
6332          this.withTouch("pointerCancel", event);
6333        };
6334        proto.pointerCancel = function(event, pointer) {
6335          this.pointerDone();
6336          this.emitEvent("pointerCancel", [event, pointer]);
6337        };
6338        proto.onclick = function(event) {
6339          if (this.isPreventingClicks) event.preventDefault();
6340        };
6341        proto.staticClick = function(event, pointer) {
6342          let isMouseup = event.type === "mouseup";
6343          if (isMouseup && this.isIgnoringMouseUp) return;
6344          this.emitEvent("staticClick", [event, pointer]);
6345          if (isMouseup) {
6346            this.isIgnoringMouseUp = true;
6347            setTimeout(() => {
6348              delete this.isIgnoringMouseUp;
6349            }, 400);
6350          }
6351        };
6352        return Unidragger;
6353      });
6354    }
6355  });
6356
6357  
vendor: 8,684 bytes, lines 6357-6555
6357// node_modules/flickity/js/drag.js
6358  var require_drag = __commonJS({
6359    "node_modules/flickity/js/drag.js"(exports, module) {
6360      (function(window2, factory) {
6361        if (typeof module == "object" && module.exports) {
6362          module.exports = factory(
6363            window2,
6364            require_core(),
6365            require_unidragger(),
6366            require_utils()
6367          );
6368        } else {
6369          window2.Flickity = factory(
6370            window2,
6371            window2.Flickity,
6372            window2.Unidragger,
6373            window2.fizzyUIUtils
6374          );
6375        }
6376      })(
6377        typeof window != "undefined" ? window : exports,
6378        function factory(window2, Flickity2, Unidragger, utils) {
6379          Object.assign(Flickity2.defaults, {
6380            draggable: ">1",
6381            dragThreshold: 3
6382          });
6383          let proto = Flickity2.prototype;
6384          Object.assign(proto, Unidragger.prototype);
6385          proto.touchActionValue = "";
6386          Flickity2.create.drag = function() {
6387            this.on("activate", this.onActivateDrag);
6388            this.on("uiChange", this._uiChangeDrag);
6389            this.on("deactivate", this.onDeactivateDrag);
6390            this.on("cellChange", this.updateDraggable);
6391            this.on("pointerDown", this.handlePointerDown);
6392            this.on("pointerUp", this.handlePointerUp);
6393            this.on("pointerDown", this.handlePointerDone);
6394            this.on("dragStart", this.handleDragStart);
6395            this.on("dragMove", this.handleDragMove);
6396            this.on("dragEnd", this.handleDragEnd);
6397            this.on("staticClick", this.handleStaticClick);
6398          };
6399          proto.onActivateDrag = function() {
6400            this.handles = [this.viewport];
6401            this.bindHandles();
6402            this.updateDraggable();
6403          };
6404          proto.onDeactivateDrag = function() {
6405            this.unbindHandles();
6406            this.element.classList.remove("is-draggable");
6407          };
6408          proto.updateDraggable = function() {
6409            if (this.options.draggable === ">1") {
6410              this.isDraggable = this.slides.length > 1;
6411            } else {
6412              this.isDraggable = this.options.draggable;
6413            }
6414            this.element.classList.toggle("is-draggable", this.isDraggable);
6415          };
6416          proto._uiChangeDrag = function() {
6417            delete this.isFreeScrolling;
6418          };
6419          proto.handlePointerDown = function(event) {
6420            if (!this.isDraggable) {
6421              this.bindActivePointerEvents(event);
6422              return;
6423            }
6424            let isTouchStart = event.type === "touchstart";
6425            let isTouchPointer = event.pointerType === "touch";
6426            let isFocusNode = event.target.matches("input, textarea, select");
6427            if (!isTouchStart && !isTouchPointer && !isFocusNode) event.preventDefault();
6428            if (!isFocusNode) this.focus();
6429            if (document.activeElement !== this.element) document.activeElement.blur();
6430            this.dragX = this.x;
6431            this.viewport.classList.add("is-pointer-down");
6432            this.pointerDownScroll = getScrollPosition();
6433            window2.addEventListener("scroll", this);
6434            this.bindActivePointerEvents(event);
6435          };
6436          proto.hasDragStarted = function(moveVector) {
6437            return Math.abs(moveVector.x) > this.options.dragThreshold;
6438          };
6439          proto.handlePointerUp = function() {
6440            delete this.isTouchScrolling;
6441            this.viewport.classList.remove("is-pointer-down");
6442          };
6443          proto.handlePointerDone = function() {
6444            window2.removeEventListener("scroll", this);
6445            delete this.pointerDownScroll;
6446          };
6447          proto.handleDragStart = function() {
6448            if (!this.isDraggable) return;
6449            this.dragStartPosition = this.x;
6450            this.startAnimation();
6451            window2.removeEventListener("scroll", this);
6452          };
6453          proto.handleDragMove = function(event, pointer, moveVector) {
6454            if (!this.isDraggable) return;
6455            event.preventDefault();
6456            this.previousDragX = this.dragX;
6457            let direction = this.options.rightToLeft ? -1 : 1;
6458            if (this.isWrapping) moveVector.x %= this.slideableWidth;
6459            let dragX = this.dragStartPosition + moveVector.x * direction;
6460            if (!this.isWrapping) {
6461              let originBound = Math.max(-this.slides[0].target, this.dragStartPosition);
6462              dragX = dragX > originBound ? (dragX + originBound) * 0.5 : dragX;
6463              let endBound = Math.min(-this.getLastSlide().target, this.dragStartPosition);
6464              dragX = dragX < endBound ? (dragX + endBound) * 0.5 : dragX;
6465            }
6466            this.dragX = dragX;
6467            this.dragMoveTime = /* @__PURE__ */ new Date();
6468          };
6469          proto.handleDragEnd = function() {
6470            if (!this.isDraggable) return;
6471            let { freeScroll } = this.options;
6472            if (freeScroll) this.isFreeScrolling = true;
6473            let index = this.dragEndRestingSelect();
6474            if (freeScroll && !this.isWrapping) {
6475              let restingX = this.getRestingPosition();
6476              this.isFreeScrolling = -restingX > this.slides[0].target && -restingX < this.getLastSlide().target;
6477            } else if (!freeScroll && index === this.selectedIndex) {
6478              index += this.dragEndBoostSelect();
6479            }
6480            delete this.previousDragX;
6481            this.isDragSelect = this.isWrapping;
6482            this.select(index);
6483            delete this.isDragSelect;
6484          };
6485          proto.dragEndRestingSelect = function() {
6486            let restingX = this.getRestingPosition();
6487            let distance = Math.abs(this.getSlideDistance(-restingX, this.selectedIndex));
6488            let positiveResting = this._getClosestResting(restingX, distance, 1);
6489            let negativeResting = this._getClosestResting(restingX, distance, -1);
6490            return positiveResting.distance < negativeResting.distance ? positiveResting.index : negativeResting.index;
6491          };
6492          proto._getClosestResting = function(restingX, distance, increment) {
6493            let index = this.selectedIndex;
6494            let minDistance = Infinity;
6495            let condition = this.options.contain && !this.isWrapping ? (
6496              // if containing, keep going if distance is equal to minDistance
6497              (dist, minDist) => dist <= minDist
6498            ) : (dist, minDist) => dist < minDist;
6499            while (condition(distance, minDistance)) {
6500              index += increment;
6501              minDistance = distance;
6502              distance = this.getSlideDistance(-restingX, index);
6503              if (distance === null) break;
6504              distance = Math.abs(distance);
6505            }
6506            return {
6507              distance: minDistance,
6508              // selected was previous index
6509              index: index - increment
6510            };
6511          };
6512          proto.getSlideDistance = function(x2, index) {
6513            let len = this.slides.length;
6514            let isWrapAround = this.options.wrapAround && len > 1;
6515            let slideIndex = isWrapAround ? utils.modulo(index, len) : index;
6516            let slide = this.slides[slideIndex];
6517            if (!slide) return null;
6518            let wrap3 = isWrapAround ? this.slideableWidth * Math.floor(index / len) : 0;
6519            return x2 - (slide.target + wrap3);
6520          };
6521          proto.dragEndBoostSelect = function() {
6522            if (this.previousDragX === void 0 || !this.dragMoveTime || // or if drag was held for 100 ms
6523            /* @__PURE__ */ new Date() - this.dragMoveTime > 100) {
6524              return 0;
6525            }
6526            let distance = this.getSlideDistance(-this.dragX, this.selectedIndex);
6527            let delta = this.previousDragX - this.dragX;
6528            if (distance > 0 && delta > 0) {
6529              return 1;
6530            } else if (distance < 0 && delta < 0) {
6531              return -1;
6532            }
6533            return 0;
6534          };
6535          proto.onscroll = function() {
6536            let scroll = getScrollPosition();
6537            let scrollMoveX = this.pointerDownScroll.x - scroll.x;
6538            let scrollMoveY = this.pointerDownScroll.y - scroll.y;
6539            if (Math.abs(scrollMoveX) > 3 || Math.abs(scrollMoveY) > 3) {
6540              this.pointerDone();
6541            }
6542          };
6543          function getScrollPosition() {
6544            return {
6545              x: window2.pageXOffset,
6546              y: window2.pageYOffset
6547            };
6548          }
6549          return Flickity2;
6550        }
6551      );
6552    }
6553  });
6554
6555  
vendor: 5,476 bytes, lines 6555-6682
6555// node_modules/flickity/js/prev-next-button.js
6556  var require_prev_next_button = __commonJS({
6557    "node_modules/flickity/js/prev-next-button.js"(exports, module) {
6558      (function(window2, factory) {
6559        if (typeof module == "object" && module.exports) {
6560          module.exports = factory(require_core());
6561        } else {
6562          factory(window2.Flickity);
6563        }
6564      })(typeof window != "undefined" ? window : exports, function factory(Flickity2) {
6565        const svgURI = "http://www.w3.org/2000/svg";
6566        function PrevNextButton(increment, direction, arrowShape) {
6567          this.increment = increment;
6568          this.direction = direction;
6569          this.isPrevious = increment === "previous";
6570          this.isLeft = direction === "left";
6571          this._create(arrowShape);
6572        }
6573        PrevNextButton.prototype._create = function(arrowShape) {
6574          let element = this.element = document.createElement("button");
6575          element.className = `flickity-button flickity-prev-next-button ${this.increment}`;
6576          let label = this.isPrevious ? "Previous" : "Next";
6577          element.setAttribute("type", "button");
6578          element.setAttribute("aria-label", label);
6579          this.disable();
6580          let svg = this.createSVG(label, arrowShape);
6581          element.append(svg);
6582        };
6583        PrevNextButton.prototype.createSVG = function(label, arrowShape) {
6584          let svg = document.createElementNS(svgURI, "svg");
6585          svg.setAttribute("class", "flickity-button-icon");
6586          svg.setAttribute("viewBox", "0 0 100 100");
6587          let title = document.createElementNS(svgURI, "title");
6588          title.append(label);
6589          let path = document.createElementNS(svgURI, "path");
6590          let pathMovements = getArrowMovements(arrowShape);
6591          path.setAttribute("d", pathMovements);
6592          path.setAttribute("class", "arrow");
6593          if (!this.isLeft) {
6594            path.setAttribute("transform", "translate(100, 100) rotate(180)");
6595          }
6596          svg.append(title, path);
6597          return svg;
6598        };
6599        function getArrowMovements(shape) {
6600          if (typeof shape == "string") return shape;
6601          let { x0, x1, x2, x3, y1, y2: y22 } = shape;
6602          return `M ${x0}, 50
6603    L ${x1}, ${y1 + 50}
6604    L ${x2}, ${y22 + 50}
6605    L ${x3}, 50
6606    L ${x2}, ${50 - y22}
6607    L ${x1}, ${50 - y1}
6608    Z`;
6609        }
6610        PrevNextButton.prototype.enable = function() {
6611          this.element.removeAttribute("disabled");
6612        };
6613        PrevNextButton.prototype.disable = function() {
6614          this.element.setAttribute("disabled", true);
6615        };
6616        Object.assign(Flickity2.defaults, {
6617          prevNextButtons: true,
6618          arrowShape: {
6619            x0: 10,
6620            x1: 60,
6621            y1: 50,
6622            x2: 70,
6623            y2: 40,
6624            x3: 30
6625          }
6626        });
6627        Flickity2.create.prevNextButtons = function() {
6628          if (!this.options.prevNextButtons) return;
6629          let { rightToLeft, arrowShape } = this.options;
6630          let prevDirection = rightToLeft ? "right" : "left";
6631          let nextDirection = rightToLeft ? "left" : "right";
6632          this.prevButton = new PrevNextButton("previous", prevDirection, arrowShape);
6633          this.nextButton = new PrevNextButton("next", nextDirection, arrowShape);
6634          this.focusableElems.push(this.prevButton.element);
6635          this.focusableElems.push(this.nextButton.element);
6636          this.handlePrevButtonClick = () => {
6637            this.uiChange();
6638            this.previous();
6639          };
6640          this.handleNextButtonClick = () => {
6641            this.uiChange();
6642            this.next();
6643          };
6644          this.on("activate", this.activatePrevNextButtons);
6645          this.on("select", this.updatePrevNextButtons);
6646        };
6647        let proto = Flickity2.prototype;
6648        proto.updatePrevNextButtons = function() {
6649          let lastIndex = this.slides.length ? this.slides.length - 1 : 0;
6650          this.updatePrevNextButton(this.prevButton, 0);
6651          this.updatePrevNextButton(this.nextButton, lastIndex);
6652        };
6653        proto.updatePrevNextButton = function(button, disabledIndex) {
6654          if (this.isWrapping && this.slides.length > 1) {
6655            button.enable();
6656            return;
6657          }
6658          let isEnabled = this.selectedIndex !== disabledIndex;
6659          button[isEnabled ? "enable" : "disable"]();
6660          let isDisabledFocused = !isEnabled && document.activeElement === button.element;
6661          if (isDisabledFocused) this.focus();
6662        };
6663        proto.activatePrevNextButtons = function() {
6664          this.prevButton.element.addEventListener("click", this.handlePrevButtonClick);
6665          this.nextButton.element.addEventListener("click", this.handleNextButtonClick);
6666          this.element.append(this.prevButton.element, this.nextButton.element);
6667          this.on("deactivate", this.deactivatePrevNextButtons);
6668        };
6669        proto.deactivatePrevNextButtons = function() {
6670          this.prevButton.element.remove();
6671          this.nextButton.element.remove();
6672          this.prevButton.element.removeEventListener("click", this.handlePrevButtonClick);
6673          this.nextButton.element.removeEventListener("click", this.handleNextButtonClick);
6674          this.off("deactivate", this.deactivatePrevNextButtons);
6675        };
6676        Flickity2.PrevNextButton = PrevNextButton;
6677        return Flickity2;
6678      });
6679    }
6680  });
6681
6682  
vendor: 4,041 bytes, lines 6682-6784
6682// node_modules/flickity/js/page-dots.js
6683  var require_page_dots = __commonJS({
6684    "node_modules/flickity/js/page-dots.js"(exports, module) {
6685      (function(window2, factory) {
6686        if (typeof module == "object" && module.exports) {
6687          module.exports = factory(
6688            require_core(),
6689            require_utils()
6690          );
6691        } else {
6692          factory(
6693            window2.Flickity,
6694            window2.fizzyUIUtils
6695          );
6696        }
6697      })(typeof window != "undefined" ? window : exports, function factory(Flickity2, utils) {
6698        function PageDots() {
6699          this.holder = document.createElement("div");
6700          this.holder.className = "flickity-page-dots";
6701          this.dots = [];
6702        }
6703        PageDots.prototype.setDots = function(slidesLength) {
6704          let delta = slidesLength - this.dots.length;
6705          if (delta > 0) {
6706            this.addDots(delta);
6707          } else if (delta < 0) {
6708            this.removeDots(-delta);
6709          }
6710        };
6711        PageDots.prototype.addDots = function(count) {
6712          let newDots = new Array(count).fill().map((item, i10) => {
6713            let dot = document.createElement("button");
6714            dot.setAttribute("type", "button");
6715            let num = i10 + 1 + this.dots.length;
6716            dot.className = "flickity-page-dot";
6717            dot.textContent = `View slide ${num}`;
6718            return dot;
6719          });
6720          this.holder.append(...newDots);
6721          this.dots = this.dots.concat(newDots);
6722        };
6723        PageDots.prototype.removeDots = function(count) {
6724          let removeDots = this.dots.splice(this.dots.length - count, count);
6725          removeDots.forEach((dot) => dot.remove());
6726        };
6727        PageDots.prototype.updateSelected = function(index) {
6728          if (this.selectedDot) {
6729            this.selectedDot.classList.remove("is-selected");
6730            this.selectedDot.removeAttribute("aria-current");
6731          }
6732          if (!this.dots.length) return;
6733          this.selectedDot = this.dots[index];
6734          this.selectedDot.classList.add("is-selected");
6735          this.selectedDot.setAttribute("aria-current", "step");
6736        };
6737        Flickity2.PageDots = PageDots;
6738        Object.assign(Flickity2.defaults, {
6739          pageDots: true
6740        });
6741        Flickity2.create.pageDots = function() {
6742          if (!this.options.pageDots) return;
6743          this.pageDots = new PageDots();
6744          this.handlePageDotsClick = this.onPageDotsClick.bind(this);
6745          this.on("activate", this.activatePageDots);
6746          this.on("select", this.updateSelectedPageDots);
6747          this.on("cellChange", this.updatePageDots);
6748          this.on("resize", this.updatePageDots);
6749          this.on("deactivate", this.deactivatePageDots);
6750        };
6751        let proto = Flickity2.prototype;
6752        proto.activatePageDots = function() {
6753          this.pageDots.setDots(this.slides.length);
6754          this.focusableElems.push(...this.pageDots.dots);
6755          this.pageDots.holder.addEventListener("click", this.handlePageDotsClick);
6756          this.element.append(this.pageDots.holder);
6757        };
6758        proto.onPageDotsClick = function(event) {
6759          let index = this.pageDots.dots.indexOf(event.target);
6760          if (index === -1) return;
6761          this.uiChange();
6762          this.select(index);
6763        };
6764        proto.updateSelectedPageDots = function() {
6765          this.pageDots.updateSelected(this.selectedIndex);
6766        };
6767        proto.updatePageDots = function() {
6768          this.pageDots.dots.forEach((dot) => {
6769            utils.removeFrom(this.focusableElems, dot);
6770          });
6771          this.pageDots.setDots(this.slides.length);
6772          this.focusableElems.push(...this.pageDots.dots);
6773        };
6774        proto.deactivatePageDots = function() {
6775          this.pageDots.holder.remove();
6776          this.pageDots.holder.removeEventListener("click", this.handlePageDotsClick);
6777        };
6778        Flickity2.PageDots = PageDots;
6779        return Flickity2;
6780      });
6781    }
6782  });
6783
6784  
vendor: 4,018 bytes, lines 6784-6895
6784// node_modules/flickity/js/player.js
6785  var require_player = __commonJS({
6786    "node_modules/flickity/js/player.js"(exports, module) {
6787      (function(window2, factory) {
6788        if (typeof module == "object" && module.exports) {
6789          module.exports = factory(require_core());
6790        } else {
6791          factory(window2.Flickity);
6792        }
6793      })(typeof window != "undefined" ? window : exports, function factory(Flickity2) {
6794        function Player(autoPlay, onTick) {
6795          this.autoPlay = autoPlay;
6796          this.onTick = onTick;
6797          this.state = "stopped";
6798          this.onVisibilityChange = this.visibilityChange.bind(this);
6799          this.onVisibilityPlay = this.visibilityPlay.bind(this);
6800        }
6801        Player.prototype.play = function() {
6802          if (this.state === "playing") return;
6803          let isPageHidden = document.hidden;
6804          if (isPageHidden) {
6805            document.addEventListener("visibilitychange", this.onVisibilityPlay);
6806            return;
6807          }
6808          this.state = "playing";
6809          document.addEventListener("visibilitychange", this.onVisibilityChange);
6810          this.tick();
6811        };
6812        Player.prototype.tick = function() {
6813          if (this.state !== "playing") return;
6814          let time = typeof this.autoPlay == "number" ? this.autoPlay : 3e3;
6815          this.clear();
6816          this.timeout = setTimeout(() => {
6817            this.onTick();
6818            this.tick();
6819          }, time);
6820        };
6821        Player.prototype.stop = function() {
6822          this.state = "stopped";
6823          this.clear();
6824          document.removeEventListener("visibilitychange", this.onVisibilityChange);
6825        };
6826        Player.prototype.clear = function() {
6827          clearTimeout(this.timeout);
6828        };
6829        Player.prototype.pause = function() {
6830          if (this.state === "playing") {
6831            this.state = "paused";
6832            this.clear();
6833          }
6834        };
6835        Player.prototype.unpause = function() {
6836          if (this.state === "paused") this.play();
6837        };
6838        Player.prototype.visibilityChange = function() {
6839          let isPageHidden = document.hidden;
6840          this[isPageHidden ? "pause" : "unpause"]();
6841        };
6842        Player.prototype.visibilityPlay = function() {
6843          this.play();
6844          document.removeEventListener("visibilitychange", this.onVisibilityPlay);
6845        };
6846        Object.assign(Flickity2.defaults, {
6847          pauseAutoPlayOnHover: true
6848        });
6849        Flickity2.create.player = function() {
6850          this.player = new Player(this.options.autoPlay, () => {
6851            this.next(true);
6852          });
6853          this.on("activate", this.activatePlayer);
6854          this.on("uiChange", this.stopPlayer);
6855          this.on("pointerDown", this.stopPlayer);
6856          this.on("deactivate", this.deactivatePlayer);
6857        };
6858        let proto = Flickity2.prototype;
6859        proto.activatePlayer = function() {
6860          if (!this.options.autoPlay) return;
6861          this.player.play();
6862          this.element.addEventListener("mouseenter", this);
6863        };
6864        proto.playPlayer = function() {
6865          this.player.play();
6866        };
6867        proto.stopPlayer = function() {
6868          this.player.stop();
6869        };
6870        proto.pausePlayer = function() {
6871          this.player.pause();
6872        };
6873        proto.unpausePlayer = function() {
6874          this.player.unpause();
6875        };
6876        proto.deactivatePlayer = function() {
6877          this.player.stop();
6878          this.element.removeEventListener("mouseenter", this);
6879        };
6880        proto.onmouseenter = function() {
6881          if (!this.options.pauseAutoPlayOnHover) return;
6882          this.player.pause();
6883          this.element.addEventListener("mouseleave", this);
6884        };
6885        proto.onmouseleave = function() {
6886          this.player.unpause();
6887          this.element.removeEventListener("mouseleave", this);
6888        };
6889        Flickity2.Player = Player;
6890        return Flickity2;
6891      });
6892    }
6893  });
6894
6895  
vendor: 3,378 bytes, lines 6895-6984
6895// node_modules/flickity/js/add-remove-cell.js
6896  var require_add_remove_cell = __commonJS({
6897    "node_modules/flickity/js/add-remove-cell.js"(exports, module) {
6898      (function(window2, factory) {
6899        if (typeof module == "object" && module.exports) {
6900          module.exports = factory(
6901            require_core(),
6902            require_utils()
6903          );
6904        } else {
6905          factory(
6906            window2.Flickity,
6907            window2.fizzyUIUtils
6908          );
6909        }
6910      })(typeof window != "undefined" ? window : exports, function factory(Flickity2, utils) {
6911        function getCellsFragment(cells) {
6912          let fragment = document.createDocumentFragment();
6913          cells.forEach((cell) => fragment.appendChild(cell.element));
6914          return fragment;
6915        }
6916        let proto = Flickity2.prototype;
6917        proto.insert = function(elems, index) {
6918          let cells = this._makeCells(elems);
6919          if (!cells || !cells.length) return;
6920          let len = this.cells.length;
6921          index = index === void 0 ? len : index;
6922          let fragment = getCellsFragment(cells);
6923          let isAppend = index === len;
6924          if (isAppend) {
6925            this.slider.appendChild(fragment);
6926          } else {
6927            let insertCellElement = this.cells[index].element;
6928            this.slider.insertBefore(fragment, insertCellElement);
6929          }
6930          if (index === 0) {
6931            this.cells = cells.concat(this.cells);
6932          } else if (isAppend) {
6933            this.cells = this.cells.concat(cells);
6934          } else {
6935            let endCells = this.cells.splice(index, len - index);
6936            this.cells = this.cells.concat(cells).concat(endCells);
6937          }
6938          this._sizeCells(cells);
6939          this.cellChange(index);
6940          this.positionSliderAtSelected();
6941        };
6942        proto.append = function(elems) {
6943          this.insert(elems, this.cells.length);
6944        };
6945        proto.prepend = function(elems) {
6946          this.insert(elems, 0);
6947        };
6948        proto.remove = function(elems) {
6949          let cells = this.getCells(elems);
6950          if (!cells || !cells.length) return;
6951          let minCellIndex = this.cells.length - 1;
6952          cells.forEach((cell) => {
6953            cell.remove();
6954            let index = this.cells.indexOf(cell);
6955            minCellIndex = Math.min(index, minCellIndex);
6956            utils.removeFrom(this.cells, cell);
6957          });
6958          this.cellChange(minCellIndex);
6959          this.positionSliderAtSelected();
6960        };
6961        proto.cellSizeChange = function(elem) {
6962          let cell = this.getCell(elem);
6963          if (!cell) return;
6964          cell.getSize();
6965          let index = this.cells.indexOf(cell);
6966          this.cellChange(index);
6967        };
6968        proto.cellChange = function(changedCellIndex) {
6969          let prevSelectedElem = this.selectedElement;
6970          this._positionCells(changedCellIndex);
6971          this._updateWrapShiftCells();
6972          this.setGallerySize();
6973          let cell = this.getCell(prevSelectedElem);
6974          if (cell) this.selectedIndex = this.getCellSlideIndex(cell);
6975          this.selectedIndex = Math.min(this.slides.length - 1, this.selectedIndex);
6976          this.emitEvent("cellChange", [changedCellIndex]);
6977          this.select(this.selectedIndex);
6978        };
6979        return Flickity2;
6980      });
6981    }
6982  });
6983
6984  
vendor: 3,608 bytes, lines 6984-7068
6984// node_modules/flickity/js/lazyload.js
6985  var require_lazyload = __commonJS({
6986    "node_modules/flickity/js/lazyload.js"(exports, module) {
6987      (function(window2, factory) {
6988        if (typeof module == "object" && module.exports) {
6989          module.exports = factory(
6990            require_core(),
6991            require_utils()
6992          );
6993        } else {
6994          factory(
6995            window2.Flickity,
6996            window2.fizzyUIUtils
6997          );
6998        }
6999      })(typeof window != "undefined" ? window : exports, function factory(Flickity2, utils) {
7000        const lazyAttr = "data-flickity-lazyload";
7001        const lazySrcAttr = `${lazyAttr}-src`;
7002        const lazySrcsetAttr = `${lazyAttr}-srcset`;
7003        const imgSelector = `img[${lazyAttr}], img[${lazySrcAttr}], img[${lazySrcsetAttr}], source[${lazySrcsetAttr}]`;
7004        Flickity2.create.lazyLoad = function() {
7005          this.on("select", this.lazyLoad);
7006          this.handleLazyLoadComplete = this.onLazyLoadComplete.bind(this);
7007        };
7008        let proto = Flickity2.prototype;
7009        proto.lazyLoad = function() {
7010          let { lazyLoad } = this.options;
7011          if (!lazyLoad) return;
7012          let adjCount = typeof lazyLoad == "number" ? lazyLoad : 0;
7013          this.getAdjacentCellElements(adjCount).map(getCellLazyImages).flat().forEach((img) => new LazyLoader(img, this.handleLazyLoadComplete));
7014        };
7015        function getCellLazyImages(cellElem) {
7016          if (cellElem.matches("img")) {
7017            let cellAttr = cellElem.getAttribute(lazyAttr);
7018            let cellSrcAttr = cellElem.getAttribute(lazySrcAttr);
7019            let cellSrcsetAttr = cellElem.getAttribute(lazySrcsetAttr);
7020            if (cellAttr || cellSrcAttr || cellSrcsetAttr) {
7021              return cellElem;
7022            }
7023          }
7024          return [...cellElem.querySelectorAll(imgSelector)];
7025        }
7026        proto.onLazyLoadComplete = function(img, event) {
7027          let cell = this.getParentCell(img);
7028          let cellElem = cell && cell.element;
7029          this.cellSizeChange(cellElem);
7030          this.dispatchEvent("lazyLoad", event, cellElem);
7031        };
7032        function LazyLoader(img, onComplete) {
7033          this.img = img;
7034          this.onComplete = onComplete;
7035          this.load();
7036        }
7037        LazyLoader.prototype.handleEvent = utils.handleEvent;
7038        LazyLoader.prototype.load = function() {
7039          this.img.addEventListener("load", this);
7040          this.img.addEventListener("error", this);
7041          let src = this.img.getAttribute(lazyAttr) || this.img.getAttribute(lazySrcAttr);
7042          let srcset = this.img.getAttribute(lazySrcsetAttr);
7043          this.img.src = src;
7044          if (srcset) this.img.setAttribute("srcset", srcset);
7045          this.img.removeAttribute(lazyAttr);
7046          this.img.removeAttribute(lazySrcAttr);
7047          this.img.removeAttribute(lazySrcsetAttr);
7048        };
7049        LazyLoader.prototype.onload = function(event) {
7050          this.complete(event, "flickity-lazyloaded");
7051        };
7052        LazyLoader.prototype.onerror = function(event) {
7053          this.complete(event, "flickity-lazyerror");
7054        };
7055        LazyLoader.prototype.complete = function(event, className) {
7056          this.img.removeEventListener("load", this);
7057          this.img.removeEventListener("error", this);
7058          let mediaElem = this.img.parentNode.matches("picture") ? this.img.parentNode : this.img;
7059          mediaElem.classList.add(className);
7060          this.onComplete(this.img, event);
7061        };
7062        Flickity2.LazyLoader = LazyLoader;
7063        return Flickity2;
7064      });
7065    }
7066  });
7067
7068  
vendor: 9,091 bytes, lines 7068-7289
7068// node_modules/imagesloaded/imagesloaded.js
7069  var require_imagesloaded = __commonJS({
7070    "node_modules/imagesloaded/imagesloaded.js"(exports, module) {
7071      (function(window2, factory) {
7072        if (typeof module == "object" && module.exports) {
7073          module.exports = factory(window2, require_ev_emitter());
7074        } else {
7075          window2.imagesLoaded = factory(window2, window2.EvEmitter);
7076        }
7077      })(
7078        typeof window !== "undefined" ? window : exports,
7079        function factory(window2, EvEmitter) {
7080          let $4 = window2.jQuery;
7081          let console2 = window2.console;
7082          function makeArray(obj) {
7083            if (Array.isArray(obj)) return obj;
7084            let isArrayLike = typeof obj == "object" && typeof obj.length == "number";
7085            if (isArrayLike) return [...obj];
7086            return [obj];
7087          }
7088          function ImagesLoaded(elem, options, onAlways) {
7089            if (!(this instanceof ImagesLoaded)) {
7090              return new ImagesLoaded(elem, options, onAlways);
7091            }
7092            let queryElem = elem;
7093            if (typeof elem == "string") {
7094              queryElem = document.querySelectorAll(elem);
7095            }
7096            if (!queryElem) {
7097              console2.error(`Bad element for imagesLoaded ${queryElem || elem}`);
7098              return;
7099            }
7100            this.elements = makeArray(queryElem);
7101            this.options = {};
7102            if (typeof options == "function") {
7103              onAlways = options;
7104            } else {
7105              Object.assign(this.options, options);
7106            }
7107            if (onAlways) this.on("always", onAlways);
7108            this.getImages();
7109            if ($4) this.jqDeferred = new $4.Deferred();
7110            setTimeout(this.check.bind(this));
7111          }
7112          ImagesLoaded.prototype = Object.create(EvEmitter.prototype);
7113          ImagesLoaded.prototype.getImages = function() {
7114            this.images = [];
7115            this.elements.forEach(this.addElementImages, this);
7116          };
7117          const elementNodeTypes = [1, 9, 11];
7118          ImagesLoaded.prototype.addElementImages = function(elem) {
7119            if (elem.nodeName === "IMG") {
7120              this.addImage(elem);
7121            }
7122            if (this.options.background === true) {
7123              this.addElementBackgroundImages(elem);
7124            }
7125            let { nodeType } = elem;
7126            if (!nodeType || !elementNodeTypes.includes(nodeType)) return;
7127            let childImgs = elem.querySelectorAll("img");
7128            for (let img of childImgs) {
7129              this.addImage(img);
7130            }
7131            if (typeof this.options.background == "string") {
7132              let children = elem.querySelectorAll(this.options.background);
7133              for (let child of children) {
7134                this.addElementBackgroundImages(child);
7135              }
7136            }
7137          };
7138          const reURL = /url\((['"])?(.*?)\1\)/gi;
7139          ImagesLoaded.prototype.addElementBackgroundImages = function(elem) {
7140            let style = getComputedStyle(elem);
7141            if (!style) return;
7142            let matches = reURL.exec(style.backgroundImage);
7143            while (matches !== null) {
7144              let url = matches && matches[2];
7145              if (url) {
7146                this.addBackground(url, elem);
7147              }
7148              matches = reURL.exec(style.backgroundImage);
7149            }
7150          };
7151          ImagesLoaded.prototype.addImage = function(img) {
7152            let loadingImage = new LoadingImage(img);
7153            this.images.push(loadingImage);
7154          };
7155          ImagesLoaded.prototype.addBackground = function(url, elem) {
7156            let background = new Background(url, elem);
7157            this.images.push(background);
7158          };
7159          ImagesLoaded.prototype.check = function() {
7160            this.progressedCount = 0;
7161            this.hasAnyBroken = false;
7162            if (!this.images.length) {
7163              this.complete();
7164              return;
7165            }
7166            let onProgress = (image, elem, message) => {
7167              setTimeout(() => {
7168                this.progress(image, elem, message);
7169              });
7170            };
7171            this.images.forEach(function(loadingImage) {
7172              loadingImage.once("progress", onProgress);
7173              loadingImage.check();
7174            });
7175          };
7176          ImagesLoaded.prototype.progress = function(image, elem, message) {
7177            this.progressedCount++;
7178            this.hasAnyBroken = this.hasAnyBroken || !image.isLoaded;
7179            this.emitEvent("progress", [this, image, elem]);
7180            if (this.jqDeferred && this.jqDeferred.notify) {
7181              this.jqDeferred.notify(this, image);
7182            }
7183            if (this.progressedCount === this.images.length) {
7184              this.complete();
7185            }
7186            if (this.options.debug && console2) {
7187              console2.log(`progress: ${message}`, image, elem);
7188            }
7189          };
7190          ImagesLoaded.prototype.complete = function() {
7191            let eventName = this.hasAnyBroken ? "fail" : "done";
7192            this.isComplete = true;
7193            this.emitEvent(eventName, [this]);
7194            this.emitEvent("always", [this]);
7195            if (this.jqDeferred) {
7196              let jqMethod = this.hasAnyBroken ? "reject" : "resolve";
7197              this.jqDeferred[jqMethod](this);
7198            }
7199          };
7200          function LoadingImage(img) {
7201            this.img = img;
7202          }
7203          LoadingImage.prototype = Object.create(EvEmitter.prototype);
7204          LoadingImage.prototype.check = function() {
7205            let isComplete = this.getIsImageComplete();
7206            if (isComplete) {
7207              this.confirm(this.img.naturalWidth !== 0, "naturalWidth");
7208              return;
7209            }
7210            this.proxyImage = new Image();
7211            if (this.img.crossOrigin) {
7212              this.proxyImage.crossOrigin = this.img.crossOrigin;
7213            }
7214            this.proxyImage.addEventListener("load", this);
7215            this.proxyImage.addEventListener("error", this);
7216            this.img.addEventListener("load", this);
7217            this.img.addEventListener("error", this);
7218            this.proxyImage.src = this.img.currentSrc || this.img.src;
7219          };
7220          LoadingImage.prototype.getIsImageComplete = function() {
7221            return this.img.complete && this.img.naturalWidth;
7222          };
7223          LoadingImage.prototype.confirm = function(isLoaded, message) {
7224            this.isLoaded = isLoaded;
7225            let { parentNode } = this.img;
7226            let elem = parentNode.nodeName === "PICTURE" ? parentNode : this.img;
7227            this.emitEvent("progress", [this, elem, message]);
7228          };
7229          LoadingImage.prototype.handleEvent = function(event) {
7230            let method = "on" + event.type;
7231            if (this[method]) {
7232              this[method](event);
7233            }
7234          };
7235          LoadingImage.prototype.onload = function() {
7236            this.confirm(true, "onload");
7237            this.unbindEvents();
7238          };
7239          LoadingImage.prototype.onerror = function() {
7240            this.confirm(false, "onerror");
7241            this.unbindEvents();
7242          };
7243          LoadingImage.prototype.unbindEvents = function() {
7244            this.proxyImage.removeEventListener("load", this);
7245            this.proxyImage.removeEventListener("error", this);
7246            this.img.removeEventListener("load", this);
7247            this.img.removeEventListener("error", this);
7248          };
7249          function Background(url, element) {
7250            this.url = url;
7251            this.element = element;
7252            this.img = new Image();
7253          }
7254          Background.prototype = Object.create(LoadingImage.prototype);
7255          Background.prototype.check = function() {
7256            this.img.addEventListener("load", this);
7257            this.img.addEventListener("error", this);
7258            this.img.src = this.url;
7259            let isComplete = this.getIsImageComplete();
7260            if (isComplete) {
7261              this.confirm(this.img.naturalWidth !== 0, "naturalWidth");
7262              this.unbindEvents();
7263            }
7264          };
7265          Background.prototype.unbindEvents = function() {
7266            this.img.removeEventListener("load", this);
7267            this.img.removeEventListener("error", this);
7268          };
7269          Background.prototype.confirm = function(isLoaded, message) {
7270            this.isLoaded = isLoaded;
7271            this.emitEvent("progress", [this, this.element, message]);
7272          };
7273          ImagesLoaded.makeJQueryPlugin = function(jQuery2) {
7274            jQuery2 = jQuery2 || window2.jQuery;
7275            if (!jQuery2) return;
7276            $4 = jQuery2;
7277            $4.fn.imagesLoaded = function(options, onAlways) {
7278              let instance = new ImagesLoaded(this, options, onAlways);
7279              return instance.jqDeferred.promise($4(this));
7280            };
7281          };
7282          ImagesLoaded.makeJQueryPlugin();
7283          return ImagesLoaded;
7284        }
7285      );
7286    }
7287  });
7288
7289  
vendor: 1,255 bytes, lines 7289-7325
7289// node_modules/flickity/js/imagesloaded.js
7290  var require_imagesloaded2 = __commonJS({
7291    "node_modules/flickity/js/imagesloaded.js"(exports, module) {
7292      (function(window2, factory) {
7293        if (typeof module == "object" && module.exports) {
7294          module.exports = factory(
7295            require_core(),
7296            require_imagesloaded()
7297          );
7298        } else {
7299          factory(
7300            window2.Flickity,
7301            window2.imagesLoaded
7302          );
7303        }
7304      })(
7305        typeof window != "undefined" ? window : exports,
7306        function factory(Flickity2, imagesLoaded2) {
7307          Flickity2.create.imagesLoaded = function() {
7308            this.on("activate", this.imagesLoaded);
7309          };
7310          Flickity2.prototype.imagesLoaded = function() {
7311            if (!this.options.imagesLoaded) return;
7312            let onImagesLoadedProgress = (instance, image) => {
7313              let cell = this.getParentCell(image.img);
7314              this.cellSizeChange(cell && cell.element);
7315              if (!this.options.freeScroll) this.positionSliderAtSelected();
7316            };
7317            imagesLoaded2(this.slider).on("progress", onImagesLoadedProgress);
7318          };
7319          return Flickity2;
7320        }
7321      );
7322    }
7323  });
7324
7325  
vendor: 497 bytes, lines 7325-7342
7325// node_modules/flickity/js/index.js
7326  var require_js = __commonJS({
7327    "node_modules/flickity/js/index.js"(exports, module) {
7328      if (typeof module == "object" && module.exports) {
7329        const Flickity2 = require_core();
7330        require_drag();
7331        require_prev_next_button();
7332        require_page_dots();
7333        require_player();
7334        require_add_remove_cell();
7335        require_lazyload();
7336        require_imagesloaded2();
7337        module.exports = Flickity2;
7338      }
7339    }
7340  });
7341
7342  
vendor: 138 bytes, lines 7342-7348
7342// node_modules/flickity/dist/flickity.css
7343  var init_flickity = __esm({
7344    "node_modules/flickity/dist/flickity.css"() {
7345    }
7346  });
7347
7348  
7348// js/flickity.js
7349  var flickity_exports = {};
7350  var import_flickity;
7351  var init_flickity2 = __esm({
7352    "js/flickity.js"() {
7353      import_flickity = __toESM(require_js());
7354      init_flickity();
7355      document.addEventListener("DOMContentLoaded", () => {
7356        const options = {
7357          cellAlign: "center",
7358          // contain: true,
7359          prevNextButtons: true,
7360          wrapAround: true,
7361          groupCells: 1,
7362          selectedAttraction: 0.075,
7363          friction: 0.75,
7364          autoPlay: 3e3
7365        };
7366        document.querySelectorAll(".flickity-carousel").forEach((el) => {
7367          new import_flickity.default(el, options);
7368        });
7369      });
7370    }
7371  });
7372
7373  
vendor: 142,758 bytes, lines 7373-9447
7373// node_modules/jquery/dist/jquery.min.js
7374  var require_jquery_min = __commonJS({
7375    "node_modules/jquery/dist/jquery.min.js"(exports, module) {
7376      !(function(e11, t11) {
7377        "use strict";
7378        "object" == typeof module && "object" == typeof module.exports ? module.exports = e11.document ? t11(e11, true) : function(e12) {
7379          if (!e12.document) throw new Error("jQuery requires a window with a document");
7380          return t11(e12);
7381        } : t11(e11);
7382      })("undefined" != typeof window ? window : exports, function(ie, e11) {
7383        "use strict";
7384        var oe = [], r7 = Object.getPrototypeOf, ae = oe.slice, g2 = oe.flat ? function(e12) {
7385          return oe.flat.call(e12);
7386        } : function(e12) {
7387          return oe.concat.apply([], e12);
7388        }, s13 = oe.push, se = oe.indexOf, n10 = {}, i10 = n10.toString, ue = n10.hasOwnProperty, o11 = ue.toString, a8 = o11.call(Object), le = {}, v3 = function(e12) {
7389          return "function" == typeof e12 && "number" != typeof e12.nodeType && "function" != typeof e12.item;
7390        }, y3 = function(e12) {
7391          return null != e12 && e12 === e12.window;
7392        }, C = ie.document, u5 = { type: true, src: true, nonce: true, noModule: true };
7393        function m3(e12, t12, n11) {
7394          var r8, i11, o12 = (n11 = n11 || C).createElement("script");
7395          if (o12.text = e12, t12) for (r8 in u5) (i11 = t12[r8] || t12.getAttribute && t12.getAttribute(r8)) && o12.setAttribute(r8, i11);
7396          n11.head.appendChild(o12).parentNode.removeChild(o12);
7397        }
7398        function x2(e12) {
7399          return null == e12 ? e12 + "" : "object" == typeof e12 || "function" == typeof e12 ? n10[i10.call(e12)] || "object" : typeof e12;
7400        }
7401        var t11 = "3.7.1", l10 = /HTML$/i, ce = function(e12, t12) {
7402          return new ce.fn.init(e12, t12);
7403        };
7404        function c5(e12) {
7405          var t12 = !!e12 && "length" in e12 && e12.length, n11 = x2(e12);
7406          return !v3(e12) && !y3(e12) && ("array" === n11 || 0 === t12 || "number" == typeof t12 && 0 < t12 && t12 - 1 in e12);
7407        }
7408        function fe(e12, t12) {
7409          return e12.nodeName && e12.nodeName.toLowerCase() === t12.toLowerCase();
7410        }
7411        ce.fn = ce.prototype = { jquery: t11, constructor: ce, length: 0, toArray: function() {
7412          return ae.call(this);
7413        }, get: function(e12) {
7414          return null == e12 ? ae.call(this) : e12 < 0 ? this[e12 + this.length] : this[e12];
7415        }, pushStack: function(e12) {
7416          var t12 = ce.merge(this.constructor(), e12);
7417          return t12.prevObject = this, t12;
7418        }, each: function(e12) {
7419          return ce.each(this, e12);
7420        }, map: function(n11) {
7421          return this.pushStack(ce.map(this, function(e12, t12) {
7422            return n11.call(e12, t12, e12);
7423          }));
7424        }, slice: function() {
7425          return this.pushStack(ae.apply(this, arguments));
7426        }, first: function() {
7427          return this.eq(0);
7428        }, last: function() {
7429          return this.eq(-1);
7430        }, even: function() {
7431          return this.pushStack(ce.grep(this, function(e12, t12) {
7432            return (t12 + 1) % 2;
7433          }));
7434        }, odd: function() {
7435          return this.pushStack(ce.grep(this, function(e12, t12) {
7436            return t12 % 2;
7437          }));
7438        }, eq: function(e12) {
7439          var t12 = this.length, n11 = +e12 + (e12 < 0 ? t12 : 0);
7440          return this.pushStack(0 <= n11 && n11 < t12 ? [this[n11]] : []);
7441        }, end: function() {
7442          return this.prevObject || this.constructor();
7443        }, push: s13, sort: oe.sort, splice: oe.splice }, ce.extend = ce.fn.extend = function() {
7444          var e12, t12, n11, r8, i11, o12, a9 = arguments[0] || {}, s14 = 1, u6 = arguments.length, l11 = false;
7445          for ("boolean" == typeof a9 && (l11 = a9, a9 = arguments[s14] || {}, s14++), "object" == typeof a9 || v3(a9) || (a9 = {}), s14 === u6 && (a9 = this, s14--); s14 < u6; s14++) if (null != (e12 = arguments[s14])) for (t12 in e12) r8 = e12[t12], "__proto__" !== t12 && a9 !== r8 && (l11 && r8 && (ce.isPlainObject(r8) || (i11 = Array.isArray(r8))) ? (n11 = a9[t12], o12 = i11 && !Array.isArray(n11) ? [] : i11 || ce.isPlainObject(n11) ? n11 : {}, i11 = false, a9[t12] = ce.extend(l11, o12, r8)) : void 0 !== r8 && (a9[t12] = r8));
7446          return a9;
7447        }, ce.extend({ expando: "jQuery" + (t11 + Math.random()).replace(/\D/g, ""), isReady: true, error: function(e12) {
7448          throw new Error(e12);
7449        }, noop: function() {
7450        }, isPlainObject: function(e12) {
7451          var t12, n11;
7452          return !(!e12 || "[object Object]" !== i10.call(e12)) && (!(t12 = r7(e12)) || "function" == typeof (n11 = ue.call(t12, "constructor") && t12.constructor) && o11.call(n11) === a8);
7453        }, isEmptyObject: function(e12) {
7454          var t12;
7455          for (t12 in e12) return false;
7456          return true;
7457        }, globalEval: function(e12, t12, n11) {
7458          m3(e12, { nonce: t12 && t12.nonce }, n11);
7459        }, each: function(e12, t12) {
7460          var n11, r8 = 0;
7461          if (c5(e12)) {
7462            for (n11 = e12.length; r8 < n11; r8++) if (false === t12.call(e12[r8], r8, e12[r8])) break;
7463          } else for (r8 in e12) if (false === t12.call(e12[r8], r8, e12[r8])) break;
7464          return e12;
7465        }, text: function(e12) {
7466          var t12, n11 = "", r8 = 0, i11 = e12.nodeType;
7467          if (!i11) while (t12 = e12[r8++]) n11 += ce.text(t12);
7468          return 1 === i11 || 11 === i11 ? e12.textContent : 9 === i11 ? e12.documentElement.textContent : 3 === i11 || 4 === i11 ? e12.nodeValue : n11;
7469        }, makeArray: function(e12, t12) {
7470          var n11 = t12 || [];
7471          return null != e12 && (c5(Object(e12)) ? ce.merge(n11, "string" == typeof e12 ? [e12] : e12) : s13.call(n11, e12)), n11;
7472        }, inArray: function(e12, t12, n11) {
7473          return null == t12 ? -1 : se.call(t12, e12, n11);
7474        }, isXMLDoc: function(e12) {
7475          var t12 = e12 && e12.namespaceURI, n11 = e12 && (e12.ownerDocument || e12).documentElement;
7476          return !l10.test(t12 || n11 && n11.nodeName || "HTML");
7477        }, merge: function(e12, t12) {
7478          for (var n11 = +t12.length, r8 = 0, i11 = e12.length; r8 < n11; r8++) e12[i11++] = t12[r8];
7479          return e12.length = i11, e12;
7480        }, grep: function(e12, t12, n11) {
7481          for (var r8 = [], i11 = 0, o12 = e12.length, a9 = !n11; i11 < o12; i11++) !t12(e12[i11], i11) !== a9 && r8.push(e12[i11]);
7482          return r8;
7483        }, map: function(e12, t12, n11) {
7484          var r8, i11, o12 = 0, a9 = [];
7485          if (c5(e12)) for (r8 = e12.length; o12 < r8; o12++) null != (i11 = t12(e12[o12], o12, n11)) && a9.push(i11);
7486          else for (o12 in e12) null != (i11 = t12(e12[o12], o12, n11)) && a9.push(i11);
7487          return g2(a9);
7488        }, guid: 1, support: le }), "function" == typeof Symbol && (ce.fn[Symbol.iterator] = oe[Symbol.iterator]), ce.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), function(e12, t12) {
7489          n10["[object " + t12 + "]"] = t12.toLowerCase();
7490        });
7491        var pe = oe.pop, de = oe.sort, he = oe.splice, ge = "[\\x20\\t\\r\\n\\f]", ve = new RegExp("^" + ge + "+|((?:^|[^\\\\])(?:\\\\.)*)" + ge + "+$", "g");
7492        ce.contains = function(e12, t12) {
7493          var n11 = t12 && t12.parentNode;
7494          return e12 === n11 || !(!n11 || 1 !== n11.nodeType || !(e12.contains ? e12.contains(n11) : e12.compareDocumentPosition && 16 & e12.compareDocumentPosition(n11)));
7495        };
7496        var f3 = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g;
7497        function p2(e12, t12) {
7498          return t12 ? "\0" === e12 ? "\uFFFD" : e12.slice(0, -1) + "\\" + e12.charCodeAt(e12.length - 1).toString(16) + " " : "\\" + e12;
7499        }
7500        ce.escapeSelector = function(e12) {
7501          return (e12 + "").replace(f3, p2);
7502        };
7503        var ye = C, me = s13;
7504        !(function() {
7505          var e12, b4, w4, o12, a9, T2, r8, C2, d4, i11, k4 = me, S2 = ce.expando, E4 = 0, n11 = 0, s14 = W2(), c6 = W2(), u6 = W2(), h5 = W2(), l11 = function(e13, t13) {
7506            return e13 === t13 && (a9 = true), 0;
7507          }, f4 = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", t12 = "(?:\\\\[\\da-fA-F]{1,6}" + ge + "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+", p3 = "\\[" + ge + "*(" + t12 + ")(?:" + ge + "*([*^$|!~]?=)" + ge + `*(?:'((?:\\\\.|[^\\\\'])*)'|"((?:\\\\.|[^\\\\"])*)"|(` + t12 + "))|)" + ge + "*\\]", g3 = ":(" + t12 + `)(?:\\((('((?:\\\\.|[^\\\\'])*)'|"((?:\\\\.|[^\\\\"])*)")|((?:\\\\.|[^\\\\()[\\]]|` + p3 + ")*)|.*)\\)|)", v4 = new RegExp(ge + "+", "g"), y4 = new RegExp("^" + ge + "*," + ge + "*"), m4 = new RegExp("^" + ge + "*([>+~]|" + ge + ")" + ge + "*"), x3 = new RegExp(ge + "|>"), j3 = new RegExp(g3), A3 = new RegExp("^" + t12 + "$"), D3 = { ID: new RegExp("^#(" + t12 + ")"), CLASS: new RegExp("^\\.(" + t12 + ")"), TAG: new RegExp("^(" + t12 + "|[*])"), ATTR: new RegExp("^" + p3), PSEUDO: new RegExp("^" + g3), CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + ge + "*(even|odd|(([+-]|)(\\d*)n|)" + ge + "*(?:([+-]|)" + ge + "*(\\d+)|))" + ge + "*\\)|)", "i"), bool: new RegExp("^(?:" + f4 + ")$", "i"), needsContext: new RegExp("^" + ge + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + ge + "*((?:-\\d)?\\d*)" + ge + "*\\)|)(?=[^-]|$)", "i") }, N3 = /^(?:input|select|textarea|button)$/i, q3 = /^h\d$/i, L2 = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, H3 = /[+~]/, O3 = new RegExp("\\\\[\\da-fA-F]{1,6}" + ge + "?|\\\\([^\\r\\n\\f])", "g"), P2 = function(e13, t13) {
7508            var n12 = "0x" + e13.slice(1) - 65536;
7509            return t13 || (n12 < 0 ? String.fromCharCode(n12 + 65536) : String.fromCharCode(n12 >> 10 | 55296, 1023 & n12 | 56320));
7510          }, M4 = function() {
7511            V2();
7512          }, R3 = J2(function(e13) {
7513            return true === e13.disabled && fe(e13, "fieldset");
7514          }, { dir: "parentNode", next: "legend" });
7515          try {
7516            k4.apply(oe = ae.call(ye.childNodes), ye.childNodes), oe[ye.childNodes.length].nodeType;
7517          } catch (e13) {
7518            k4 = { apply: function(e14, t13) {
7519              me.apply(e14, ae.call(t13));
7520            }, call: function(e14) {
7521              me.apply(e14, ae.call(arguments, 1));
7522            } };
7523          }
7524          function I3(t13, e13, n12, r9) {
7525            var i12, o13, a10, s15, u7, l12, c7, f5 = e13 && e13.ownerDocument, p4 = e13 ? e13.nodeType : 9;
7526            if (n12 = n12 || [], "string" != typeof t13 || !t13 || 1 !== p4 && 9 !== p4 && 11 !== p4) return n12;
7527            if (!r9 && (V2(e13), e13 = e13 || T2, C2)) {
7528              if (11 !== p4 && (u7 = L2.exec(t13))) if (i12 = u7[1]) {
7529                if (9 === p4) {
7530                  if (!(a10 = e13.getElementById(i12))) return n12;
7531                  if (a10.id === i12) return k4.call(n12, a10), n12;
7532                } else if (f5 && (a10 = f5.getElementById(i12)) && I3.contains(e13, a10) && a10.id === i12) return k4.call(n12, a10), n12;
7533              } else {
7534                if (u7[2]) return k4.apply(n12, e13.getElementsByTagName(t13)), n12;
7535                if ((i12 = u7[3]) && e13.getElementsByClassName) return k4.apply(n12, e13.getElementsByClassName(i12)), n12;
7536              }
7537              if (!(h5[t13 + " "] || d4 && d4.test(t13))) {
7538                if (c7 = t13, f5 = e13, 1 === p4 && (x3.test(t13) || m4.test(t13))) {
7539                  (f5 = H3.test(t13) && U2(e13.parentNode) || e13) == e13 && le.scope || ((s15 = e13.getAttribute("id")) ? s15 = ce.escapeSelector(s15) : e13.setAttribute("id", s15 = S2)), o13 = (l12 = Y2(t13)).length;
7540                  while (o13--) l12[o13] = (s15 ? "#" + s15 : ":scope") + " " + Q2(l12[o13]);
7541                  c7 = l12.join(",");
7542                }
7543                try {
7544                  return k4.apply(n12, f5.querySelectorAll(c7)), n12;
7545                } catch (e14) {
7546                  h5(t13, true);
7547                } finally {
7548                  s15 === S2 && e13.removeAttribute("id");
7549                }
7550              }
7551            }
7552            return re2(t13.replace(ve, "$1"), e13, n12, r9);
7553          }
7554          function W2() {
7555            var r9 = [];
7556            return function e13(t13, n12) {
7557              return r9.push(t13 + " ") > b4.cacheLength && delete e13[r9.shift()], e13[t13 + " "] = n12;
7558            };
7559          }
7560          function F2(e13) {
7561            return e13[S2] = true, e13;
7562          }
7563          function $5(e13) {
7564            var t13 = T2.createElement("fieldset");
7565            try {
7566              return !!e13(t13);
7567            } catch (e14) {
7568              return false;
7569            } finally {
7570              t13.parentNode && t13.parentNode.removeChild(t13), t13 = null;
7571            }
7572          }
7573          function B3(t13) {
7574            return function(e13) {
7575              return fe(e13, "input") && e13.type === t13;
7576            };
7577          }
7578          function _3(t13) {
7579            return function(e13) {
7580              return (fe(e13, "input") || fe(e13, "button")) && e13.type === t13;
7581            };
7582          }
7583          function z3(t13) {
7584            return function(e13) {
7585              return "form" in e13 ? e13.parentNode && false === e13.disabled ? "label" in e13 ? "label" in e13.parentNode ? e13.parentNode.disabled === t13 : e13.disabled === t13 : e13.isDisabled === t13 || e13.isDisabled !== !t13 && R3(e13) === t13 : e13.disabled === t13 : "label" in e13 && e13.disabled === t13;
7586            };
7587          }
7588          function X2(a10) {
7589            return F2(function(o13) {
7590              return o13 = +o13, F2(function(e13, t13) {
7591                var n12, r9 = a10([], e13.length, o13), i12 = r9.length;
7592                while (i12--) e13[n12 = r9[i12]] && (e13[n12] = !(t13[n12] = e13[n12]));
7593              });
7594            });
7595          }
7596          function U2(e13) {
7597            return e13 && "undefined" != typeof e13.getElementsByTagName && e13;
7598          }
7599          function V2(e13) {
7600            var t13, n12 = e13 ? e13.ownerDocument || e13 : ye;
7601            return n12 != T2 && 9 === n12.nodeType && n12.documentElement && (r8 = (T2 = n12).documentElement, C2 = !ce.isXMLDoc(T2), i11 = r8.matches || r8.webkitMatchesSelector || r8.msMatchesSelector, r8.msMatchesSelector && ye != T2 && (t13 = T2.defaultView) && t13.top !== t13 && t13.addEventListener("unload", M4), le.getById = $5(function(e14) {
7602              return r8.appendChild(e14).id = ce.expando, !T2.getElementsByName || !T2.getElementsByName(ce.expando).length;
7603            }), le.disconnectedMatch = $5(function(e14) {
7604              return i11.call(e14, "*");
7605            }), le.scope = $5(function() {
7606              return T2.querySelectorAll(":scope");
7607            }), le.cssHas = $5(function() {
7608              try {
7609                return T2.querySelector(":has(*,:jqfake)"), false;
7610              } catch (e14) {
7611                return true;
7612              }
7613            }), le.getById ? (b4.filter.ID = function(e14) {
7614              var t14 = e14.replace(O3, P2);
7615              return function(e15) {
7616                return e15.getAttribute("id") === t14;
7617              };
7618            }, b4.find.ID = function(e14, t14) {
7619              if ("undefined" != typeof t14.getElementById && C2) {
7620                var n13 = t14.getElementById(e14);
7621                return n13 ? [n13] : [];
7622              }
7623            }) : (b4.filter.ID = function(e14) {
7624              var n13 = e14.replace(O3, P2);
7625              return function(e15) {
7626                var t14 = "undefined" != typeof e15.getAttributeNode && e15.getAttributeNode("id");
7627                return t14 && t14.value === n13;
7628              };
7629            }, b4.find.ID = function(e14, t14) {
7630              if ("undefined" != typeof t14.getElementById && C2) {
7631                var n13, r9, i12, o13 = t14.getElementById(e14);
7632                if (o13) {
7633                  if ((n13 = o13.getAttributeNode("id")) && n13.value === e14) return [o13];
7634                  i12 = t14.getElementsByName(e14), r9 = 0;
7635                  while (o13 = i12[r9++]) if ((n13 = o13.getAttributeNode("id")) && n13.value === e14) return [o13];
7636                }
7637                return [];
7638              }
7639            }), b4.find.TAG = function(e14, t14) {
7640              return "undefined" != typeof t14.getElementsByTagName ? t14.getElementsByTagName(e14) : t14.querySelectorAll(e14);
7641            }, b4.find.CLASS = function(e14, t14) {
7642              if ("undefined" != typeof t14.getElementsByClassName && C2) return t14.getElementsByClassName(e14);
7643            }, d4 = [], $5(function(e14) {
7644              var t14;
7645              r8.appendChild(e14).innerHTML = "<a id='" + S2 + "' href='' disabled='disabled'></a><select id='" + S2 + "-\r\\' disabled='disabled'><option selected=''></option></select>", e14.querySelectorAll("[selected]").length || d4.push("\\[" + ge + "*(?:value|" + f4 + ")"), e14.querySelectorAll("[id~=" + S2 + "-]").length || d4.push("~="), e14.querySelectorAll("a#" + S2 + "+*").length || d4.push(".#.+[+~]"), e14.querySelectorAll(":checked").length || d4.push(":checked"), (t14 = T2.createElement("input")).setAttribute("type", "hidden"), e14.appendChild(t14).setAttribute("name", "D"), r8.appendChild(e14).disabled = true, 2 !== e14.querySelectorAll(":disabled").length && d4.push(":enabled", ":disabled"), (t14 = T2.createElement("input")).setAttribute("name", ""), e14.appendChild(t14), e14.querySelectorAll("[name='']").length || d4.push("\\[" + ge + "*name" + ge + "*=" + ge + `*(?:''|"")`);
7646            }), le.cssHas || d4.push(":has"), d4 = d4.length && new RegExp(d4.join("|")), l11 = function(e14, t14) {
7647              if (e14 === t14) return a9 = true, 0;
7648              var n13 = !e14.compareDocumentPosition - !t14.compareDocumentPosition;
7649              return n13 || (1 & (n13 = (e14.ownerDocument || e14) == (t14.ownerDocument || t14) ? e14.compareDocumentPosition(t14) : 1) || !le.sortDetached && t14.compareDocumentPosition(e14) === n13 ? e14 === T2 || e14.ownerDocument == ye && I3.contains(ye, e14) ? -1 : t14 === T2 || t14.ownerDocument == ye && I3.contains(ye, t14) ? 1 : o12 ? se.call(o12, e14) - se.call(o12, t14) : 0 : 4 & n13 ? -1 : 1);
7650            }), T2;
7651          }
7652          for (e12 in I3.matches = function(e13, t13) {
7653            return I3(e13, null, null, t13);
7654          }, I3.matchesSelector = function(e13, t13) {
7655            if (V2(e13), C2 && !h5[t13 + " "] && (!d4 || !d4.test(t13))) try {
7656              var n12 = i11.call(e13, t13);
7657              if (n12 || le.disconnectedMatch || e13.document && 11 !== e13.document.nodeType) return n12;
7658            } catch (e14) {
7659              h5(t13, true);
7660            }
7661            return 0 < I3(t13, T2, null, [e13]).length;
7662          }, I3.contains = function(e13, t13) {
7663            return (e13.ownerDocument || e13) != T2 && V2(e13), ce.contains(e13, t13);
7664          }, I3.attr = function(e13, t13) {
7665            (e13.ownerDocument || e13) != T2 && V2(e13);
7666            var n12 = b4.attrHandle[t13.toLowerCase()], r9 = n12 && ue.call(b4.attrHandle, t13.toLowerCase()) ? n12(e13, t13, !C2) : void 0;
7667            return void 0 !== r9 ? r9 : e13.getAttribute(t13);
7668          }, I3.error = function(e13) {
7669            throw new Error("Syntax error, unrecognized expression: " + e13);
7670          }, ce.uniqueSort = function(e13) {
7671            var t13, n12 = [], r9 = 0, i12 = 0;
7672            if (a9 = !le.sortStable, o12 = !le.sortStable && ae.call(e13, 0), de.call(e13, l11), a9) {
7673              while (t13 = e13[i12++]) t13 === e13[i12] && (r9 = n12.push(i12));
7674              while (r9--) he.call(e13, n12[r9], 1);
7675            }
7676            return o12 = null, e13;
7677          }, ce.fn.uniqueSort = function() {
7678            return this.pushStack(ce.uniqueSort(ae.apply(this)));
7679          }, (b4 = ce.expr = { cacheLength: 50, createPseudo: F2, match: D3, attrHandle: {}, find: {}, relative: { ">": { dir: "parentNode", first: true }, " ": { dir: "parentNode" }, "+": { dir: "previousSibling", first: true }, "~": { dir: "previousSibling" } }, preFilter: { ATTR: function(e13) {
7680            return e13[1] = e13[1].replace(O3, P2), e13[3] = (e13[3] || e13[4] || e13[5] || "").replace(O3, P2), "~=" === e13[2] && (e13[3] = " " + e13[3] + " "), e13.slice(0, 4);
7681          }, CHILD: function(e13) {
7682            return e13[1] = e13[1].toLowerCase(), "nth" === e13[1].slice(0, 3) ? (e13[3] || I3.error(e13[0]), e13[4] = +(e13[4] ? e13[5] + (e13[6] || 1) : 2 * ("even" === e13[3] || "odd" === e13[3])), e13[5] = +(e13[7] + e13[8] || "odd" === e13[3])) : e13[3] && I3.error(e13[0]), e13;
7683          }, PSEUDO: function(e13) {
7684            var t13, n12 = !e13[6] && e13[2];
7685            return D3.CHILD.test(e13[0]) ? null : (e13[3] ? e13[2] = e13[4] || e13[5] || "" : n12 && j3.test(n12) && (t13 = Y2(n12, true)) && (t13 = n12.indexOf(")", n12.length - t13) - n12.length) && (e13[0] = e13[0].slice(0, t13), e13[2] = n12.slice(0, t13)), e13.slice(0, 3));
7686          } }, filter: { TAG: function(e13) {
7687            var t13 = e13.replace(O3, P2).toLowerCase();
7688            return "*" === e13 ? function() {
7689              return true;
7690            } : function(e14) {
7691              return fe(e14, t13);
7692            };
7693          }, CLASS: function(e13) {
7694            var t13 = s14[e13 + " "];
7695            return t13 || (t13 = new RegExp("(^|" + ge + ")" + e13 + "(" + ge + "|$)")) && s14(e13, function(e14) {
7696              return t13.test("string" == typeof e14.className && e14.className || "undefined" != typeof e14.getAttribute && e14.getAttribute("class") || "");
7697            });
7698          }, ATTR: function(n12, r9, i12) {
7699            return function(e13) {
7700              var t13 = I3.attr(e13, n12);
7701              return null == t13 ? "!=" === r9 : !r9 || (t13 += "", "=" === r9 ? t13 === i12 : "!=" === r9 ? t13 !== i12 : "^=" === r9 ? i12 && 0 === t13.indexOf(i12) : "*=" === r9 ? i12 && -1 < t13.indexOf(i12) : "$=" === r9 ? i12 && t13.slice(-i12.length) === i12 : "~=" === r9 ? -1 < (" " + t13.replace(v4, " ") + " ").indexOf(i12) : "|=" === r9 && (t13 === i12 || t13.slice(0, i12.length + 1) === i12 + "-"));
7702            };
7703          }, CHILD: function(d5, e13, t13, h6, g4) {
7704            var v5 = "nth" !== d5.slice(0, 3), y5 = "last" !== d5.slice(-4), m5 = "of-type" === e13;
7705            return 1 === h6 && 0 === g4 ? function(e14) {
7706              return !!e14.parentNode;
7707            } : function(e14, t14, n12) {
7708              var r9, i12, o13, a10, s15, u7 = v5 !== y5 ? "nextSibling" : "previousSibling", l12 = e14.parentNode, c7 = m5 && e14.nodeName.toLowerCase(), f5 = !n12 && !m5, p4 = false;
7709              if (l12) {
7710                if (v5) {
7711                  while (u7) {
7712                    o13 = e14;
7713                    while (o13 = o13[u7]) if (m5 ? fe(o13, c7) : 1 === o13.nodeType) return false;
7714                    s15 = u7 = "only" === d5 && !s15 && "nextSibling";
7715                  }
7716                  return true;
7717                }
7718                if (s15 = [y5 ? l12.firstChild : l12.lastChild], y5 && f5) {
7719                  p4 = (a10 = (r9 = (i12 = l12[S2] || (l12[S2] = {}))[d5] || [])[0] === E4 && r9[1]) && r9[2], o13 = a10 && l12.childNodes[a10];
7720                  while (o13 = ++a10 && o13 && o13[u7] || (p4 = a10 = 0) || s15.pop()) if (1 === o13.nodeType && ++p4 && o13 === e14) {
7721                    i12[d5] = [E4, a10, p4];
7722                    break;
7723                  }
7724                } else if (f5 && (p4 = a10 = (r9 = (i12 = e14[S2] || (e14[S2] = {}))[d5] || [])[0] === E4 && r9[1]), false === p4) {
7725                  while (o13 = ++a10 && o13 && o13[u7] || (p4 = a10 = 0) || s15.pop()) if ((m5 ? fe(o13, c7) : 1 === o13.nodeType) && ++p4 && (f5 && ((i12 = o13[S2] || (o13[S2] = {}))[d5] = [E4, p4]), o13 === e14)) break;
7726                }
7727                return (p4 -= g4) === h6 || p4 % h6 == 0 && 0 <= p4 / h6;
7728              }
7729            };
7730          }, PSEUDO: function(e13, o13) {
7731            var t13, a10 = b4.pseudos[e13] || b4.setFilters[e13.toLowerCase()] || I3.error("unsupported pseudo: " + e13);
7732            return a10[S2] ? a10(o13) : 1 < a10.length ? (t13 = [e13, e13, "", o13], b4.setFilters.hasOwnProperty(e13.toLowerCase()) ? F2(function(e14, t14) {
7733              var n12, r9 = a10(e14, o13), i12 = r9.length;
7734              while (i12--) e14[n12 = se.call(e14, r9[i12])] = !(t14[n12] = r9[i12]);
7735            }) : function(e14) {
7736              return a10(e14, 0, t13);
7737            }) : a10;
7738          } }, pseudos: { not: F2(function(e13) {
7739            var r9 = [], i12 = [], s15 = ne2(e13.replace(ve, "$1"));
7740            return s15[S2] ? F2(function(e14, t13, n12, r10) {
7741              var i13, o13 = s15(e14, null, r10, []), a10 = e14.length;
7742              while (a10--) (i13 = o13[a10]) && (e14[a10] = !(t13[a10] = i13));
7743            }) : function(e14, t13, n12) {
7744              return r9[0] = e14, s15(r9, null, n12, i12), r9[0] = null, !i12.pop();
7745            };
7746          }), has: F2(function(t13) {
7747            return function(e13) {
7748              return 0 < I3(t13, e13).length;
7749            };
7750          }), contains: F2(function(t13) {
7751            return t13 = t13.replace(O3, P2), function(e13) {
7752              return -1 < (e13.textContent || ce.text(e13)).indexOf(t13);
7753            };
7754          }), lang: F2(function(n12) {
7755            return A3.test(n12 || "") || I3.error("unsupported lang: " + n12), n12 = n12.replace(O3, P2).toLowerCase(), function(e13) {
7756              var t13;
7757              do {
7758                if (t13 = C2 ? e13.lang : e13.getAttribute("xml:lang") || e13.getAttribute("lang")) return (t13 = t13.toLowerCase()) === n12 || 0 === t13.indexOf(n12 + "-");
7759              } while ((e13 = e13.parentNode) && 1 === e13.nodeType);
7760              return false;
7761            };
7762          }), target: function(e13) {
7763            var t13 = ie.location && ie.location.hash;
7764            return t13 && t13.slice(1) === e13.id;
7765          }, root: function(e13) {
7766            return e13 === r8;
7767          }, focus: function(e13) {
7768            return e13 === (function() {
7769              try {
7770                return T2.activeElement;
7771              } catch (e14) {
7772              }
7773            })() && T2.hasFocus() && !!(e13.type || e13.href || ~e13.tabIndex);
7774          }, enabled: z3(false), disabled: z3(true), checked: function(e13) {
7775            return fe(e13, "input") && !!e13.checked || fe(e13, "option") && !!e13.selected;
7776          }, selected: function(e13) {
7777            return e13.parentNode && e13.parentNode.selectedIndex, true === e13.selected;
7778          }, empty: function(e13) {
7779            for (e13 = e13.firstChild; e13; e13 = e13.nextSibling) if (e13.nodeType < 6) return false;
7780            return true;
7781          }, parent: function(e13) {
7782            return !b4.pseudos.empty(e13);
7783          }, header: function(e13) {
7784            return q3.test(e13.nodeName);
7785          }, input: function(e13) {
7786            return N3.test(e13.nodeName);
7787          }, button: function(e13) {
7788            return fe(e13, "input") && "button" === e13.type || fe(e13, "button");
7789          }, text: function(e13) {
7790            var t13;
7791            return fe(e13, "input") && "text" === e13.type && (null == (t13 = e13.getAttribute("type")) || "text" === t13.toLowerCase());
7792          }, first: X2(function() {
7793            return [0];
7794          }), last: X2(function(e13, t13) {
7795            return [t13 - 1];
7796          }), eq: X2(function(e13, t13, n12) {
7797            return [n12 < 0 ? n12 + t13 : n12];
7798          }), even: X2(function(e13, t13) {
7799            for (var n12 = 0; n12 < t13; n12 += 2) e13.push(n12);
7800            return e13;
7801          }), odd: X2(function(e13, t13) {
7802            for (var n12 = 1; n12 < t13; n12 += 2) e13.push(n12);
7803            return e13;
7804          }), lt: X2(function(e13, t13, n12) {
7805            var r9;
7806            for (r9 = n12 < 0 ? n12 + t13 : t13 < n12 ? t13 : n12; 0 <= --r9; ) e13.push(r9);
7807            return e13;
7808          }), gt: X2(function(e13, t13, n12) {
7809            for (var r9 = n12 < 0 ? n12 + t13 : n12; ++r9 < t13; ) e13.push(r9);
7810            return e13;
7811          }) } }).pseudos.nth = b4.pseudos.eq, { radio: true, checkbox: true, file: true, password: true, image: true }) b4.pseudos[e12] = B3(e12);
7812          for (e12 in { submit: true, reset: true }) b4.pseudos[e12] = _3(e12);
7813          function G2() {
7814          }
7815          function Y2(e13, t13) {
7816            var n12, r9, i12, o13, a10, s15, u7, l12 = c6[e13 + " "];
7817            if (l12) return t13 ? 0 : l12.slice(0);
7818            a10 = e13, s15 = [], u7 = b4.preFilter;
7819            while (a10) {
7820              for (o13 in n12 && !(r9 = y4.exec(a10)) || (r9 && (a10 = a10.slice(r9[0].length) || a10), s15.push(i12 = [])), n12 = false, (r9 = m4.exec(a10)) && (n12 = r9.shift(), i12.push({ value: n12, type: r9[0].replace(ve, " ") }), a10 = a10.slice(n12.length)), b4.filter) !(r9 = D3[o13].exec(a10)) || u7[o13] && !(r9 = u7[o13](r9)) || (n12 = r9.shift(), i12.push({ value: n12, type: o13, matches: r9 }), a10 = a10.slice(n12.length));
7821              if (!n12) break;
7822            }
7823            return t13 ? a10.length : a10 ? I3.error(e13) : c6(e13, s15).slice(0);
7824          }
7825          function Q2(e13) {
7826            for (var t13 = 0, n12 = e13.length, r9 = ""; t13 < n12; t13++) r9 += e13[t13].value;
7827            return r9;
7828          }
7829          function J2(a10, e13, t13) {
7830            var s15 = e13.dir, u7 = e13.next, l12 = u7 || s15, c7 = t13 && "parentNode" === l12, f5 = n11++;
7831            return e13.first ? function(e14, t14, n12) {
7832              while (e14 = e14[s15]) if (1 === e14.nodeType || c7) return a10(e14, t14, n12);
7833              return false;
7834            } : function(e14, t14, n12) {
7835              var r9, i12, o13 = [E4, f5];
7836              if (n12) {
7837                while (e14 = e14[s15]) if ((1 === e14.nodeType || c7) && a10(e14, t14, n12)) return true;
7838              } else while (e14 = e14[s15]) if (1 === e14.nodeType || c7) if (i12 = e14[S2] || (e14[S2] = {}), u7 && fe(e14, u7)) e14 = e14[s15] || e14;
7839              else {
7840                if ((r9 = i12[l12]) && r9[0] === E4 && r9[1] === f5) return o13[2] = r9[2];
7841                if ((i12[l12] = o13)[2] = a10(e14, t14, n12)) return true;
7842              }
7843              return false;
7844            };
7845          }
7846          function K2(i12) {
7847            return 1 < i12.length ? function(e13, t13, n12) {
7848              var r9 = i12.length;
7849              while (r9--) if (!i12[r9](e13, t13, n12)) return false;
7850              return true;
7851            } : i12[0];
7852          }
7853          function Z2(e13, t13, n12, r9, i12) {
7854            for (var o13, a10 = [], s15 = 0, u7 = e13.length, l12 = null != t13; s15 < u7; s15++) (o13 = e13[s15]) && (n12 && !n12(o13, r9, i12) || (a10.push(o13), l12 && t13.push(s15)));
7855            return a10;
7856          }
7857          function ee2(d5, h6, g4, v5, y5, e13) {
7858            return v5 && !v5[S2] && (v5 = ee2(v5)), y5 && !y5[S2] && (y5 = ee2(y5, e13)), F2(function(e14, t13, n12, r9) {
7859              var i12, o13, a10, s15, u7 = [], l12 = [], c7 = t13.length, f5 = e14 || (function(e15, t14, n13) {
7860                for (var r10 = 0, i13 = t14.length; r10 < i13; r10++) I3(e15, t14[r10], n13);
7861                return n13;
7862              })(h6 || "*", n12.nodeType ? [n12] : n12, []), p4 = !d5 || !e14 && h6 ? f5 : Z2(f5, u7, d5, n12, r9);
7863              if (g4 ? g4(p4, s15 = y5 || (e14 ? d5 : c7 || v5) ? [] : t13, n12, r9) : s15 = p4, v5) {
7864                i12 = Z2(s15, l12), v5(i12, [], n12, r9), o13 = i12.length;
7865                while (o13--) (a10 = i12[o13]) && (s15[l12[o13]] = !(p4[l12[o13]] = a10));
7866              }
7867              if (e14) {
7868                if (y5 || d5) {
7869                  if (y5) {
7870                    i12 = [], o13 = s15.length;
7871                    while (o13--) (a10 = s15[o13]) && i12.push(p4[o13] = a10);
7872                    y5(null, s15 = [], i12, r9);
7873                  }
7874                  o13 = s15.length;
7875                  while (o13--) (a10 = s15[o13]) && -1 < (i12 = y5 ? se.call(e14, a10) : u7[o13]) && (e14[i12] = !(t13[i12] = a10));
7876                }
7877              } else s15 = Z2(s15 === t13 ? s15.splice(c7, s15.length) : s15), y5 ? y5(null, t13, s15, r9) : k4.apply(t13, s15);
7878            });
7879          }
7880          function te2(e13) {
7881            for (var i12, t13, n12, r9 = e13.length, o13 = b4.relative[e13[0].type], a10 = o13 || b4.relative[" "], s15 = o13 ? 1 : 0, u7 = J2(function(e14) {
7882              return e14 === i12;
7883            }, a10, true), l12 = J2(function(e14) {
7884              return -1 < se.call(i12, e14);
7885            }, a10, true), c7 = [function(e14, t14, n13) {
7886              var r10 = !o13 && (n13 || t14 != w4) || ((i12 = t14).nodeType ? u7(e14, t14, n13) : l12(e14, t14, n13));
7887              return i12 = null, r10;
7888            }]; s15 < r9; s15++) if (t13 = b4.relative[e13[s15].type]) c7 = [J2(K2(c7), t13)];
7889            else {
7890              if ((t13 = b4.filter[e13[s15].type].apply(null, e13[s15].matches))[S2]) {
7891                for (n12 = ++s15; n12 < r9; n12++) if (b4.relative[e13[n12].type]) break;
7892                return ee2(1 < s15 && K2(c7), 1 < s15 && Q2(e13.slice(0, s15 - 1).concat({ value: " " === e13[s15 - 2].type ? "*" : "" })).replace(ve, "$1"), t13, s15 < n12 && te2(e13.slice(s15, n12)), n12 < r9 && te2(e13 = e13.slice(n12)), n12 < r9 && Q2(e13));
7893              }
7894              c7.push(t13);
7895            }
7896            return K2(c7);
7897          }
7898          function ne2(e13, t13) {
7899            var n12, v5, y5, m5, x4, r9, i12 = [], o13 = [], a10 = u6[e13 + " "];
7900            if (!a10) {
7901              t13 || (t13 = Y2(e13)), n12 = t13.length;
7902              while (n12--) (a10 = te2(t13[n12]))[S2] ? i12.push(a10) : o13.push(a10);
7903              (a10 = u6(e13, (v5 = o13, m5 = 0 < (y5 = i12).length, x4 = 0 < v5.length, r9 = function(e14, t14, n13, r10, i13) {
7904                var o14, a11, s15, u7 = 0, l12 = "0", c7 = e14 && [], f5 = [], p4 = w4, d5 = e14 || x4 && b4.find.TAG("*", i13), h6 = E4 += null == p4 ? 1 : Math.random() || 0.1, g4 = d5.length;
7905                for (i13 && (w4 = t14 == T2 || t14 || i13); l12 !== g4 && null != (o14 = d5[l12]); l12++) {
7906                  if (x4 && o14) {
7907                    a11 = 0, t14 || o14.ownerDocument == T2 || (V2(o14), n13 = !C2);
7908                    while (s15 = v5[a11++]) if (s15(o14, t14 || T2, n13)) {
7909                      k4.call(r10, o14);
7910                      break;
7911                    }
7912                    i13 && (E4 = h6);
7913                  }
7914                  m5 && ((o14 = !s15 && o14) && u7--, e14 && c7.push(o14));
7915                }
7916                if (u7 += l12, m5 && l12 !== u7) {
7917                  a11 = 0;
7918                  while (s15 = y5[a11++]) s15(c7, f5, t14, n13);
7919                  if (e14) {
7920                    if (0 < u7) while (l12--) c7[l12] || f5[l12] || (f5[l12] = pe.call(r10));
7921                    f5 = Z2(f5);
7922                  }
7923                  k4.apply(r10, f5), i13 && !e14 && 0 < f5.length && 1 < u7 + y5.length && ce.uniqueSort(r10);
7924                }
7925                return i13 && (E4 = h6, w4 = p4), c7;
7926              }, m5 ? F2(r9) : r9))).selector = e13;
7927            }
7928            return a10;
7929          }
7930          function re2(e13, t13, n12, r9) {
7931            var i12, o13, a10, s15, u7, l12 = "function" == typeof e13 && e13, c7 = !r9 && Y2(e13 = l12.selector || e13);
7932            if (n12 = n12 || [], 1 === c7.length) {
7933              if (2 < (o13 = c7[0] = c7[0].slice(0)).length && "ID" === (a10 = o13[0]).type && 9 === t13.nodeType && C2 && b4.relative[o13[1].type]) {
7934                if (!(t13 = (b4.find.ID(a10.matches[0].replace(O3, P2), t13) || [])[0])) return n12;
7935                l12 && (t13 = t13.parentNode), e13 = e13.slice(o13.shift().value.length);
7936              }
7937              i12 = D3.needsContext.test(e13) ? 0 : o13.length;
7938              while (i12--) {
7939                if (a10 = o13[i12], b4.relative[s15 = a10.type]) break;
7940                if ((u7 = b4.find[s15]) && (r9 = u7(a10.matches[0].replace(O3, P2), H3.test(o13[0].type) && U2(t13.parentNode) || t13))) {
7941                  if (o13.splice(i12, 1), !(e13 = r9.length && Q2(o13))) return k4.apply(n12, r9), n12;
7942                  break;
7943                }
7944              }
7945            }
7946            return (l12 || ne2(e13, c7))(r9, t13, !C2, n12, !t13 || H3.test(e13) && U2(t13.parentNode) || t13), n12;
7947          }
7948          G2.prototype = b4.filters = b4.pseudos, b4.setFilters = new G2(), le.sortStable = S2.split("").sort(l11).join("") === S2, V2(), le.sortDetached = $5(function(e13) {
7949            return 1 & e13.compareDocumentPosition(T2.createElement("fieldset"));
7950          }), ce.find = I3, ce.expr[":"] = ce.expr.pseudos, ce.unique = ce.uniqueSort, I3.compile = ne2, I3.select = re2, I3.setDocument = V2, I3.tokenize = Y2, I3.escape = ce.escapeSelector, I3.getText = ce.text, I3.isXML = ce.isXMLDoc, I3.selectors = ce.expr, I3.support = ce.support, I3.uniqueSort = ce.uniqueSort;
7951        })();
7952        var d3 = function(e12, t12, n11) {
7953          var r8 = [], i11 = void 0 !== n11;
7954          while ((e12 = e12[t12]) && 9 !== e12.nodeType) if (1 === e12.nodeType) {
7955            if (i11 && ce(e12).is(n11)) break;
7956            r8.push(e12);
7957          }
7958          return r8;
7959        }, h4 = function(e12, t12) {
7960          for (var n11 = []; e12; e12 = e12.nextSibling) 1 === e12.nodeType && e12 !== t12 && n11.push(e12);
7961          return n11;
7962        }, b3 = ce.expr.match.needsContext, w3 = /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;
7963        function T(e12, n11, r8) {
7964          return v3(n11) ? ce.grep(e12, function(e13, t12) {
7965            return !!n11.call(e13, t12, e13) !== r8;
7966          }) : n11.nodeType ? ce.grep(e12, function(e13) {
7967            return e13 === n11 !== r8;
7968          }) : "string" != typeof n11 ? ce.grep(e12, function(e13) {
7969            return -1 < se.call(n11, e13) !== r8;
7970          }) : ce.filter(n11, e12, r8);
7971        }
7972        ce.filter = function(e12, t12, n11) {
7973          var r8 = t12[0];
7974          return n11 && (e12 = ":not(" + e12 + ")"), 1 === t12.length && 1 === r8.nodeType ? ce.find.matchesSelector(r8, e12) ? [r8] : [] : ce.find.matches(e12, ce.grep(t12, function(e13) {
7975            return 1 === e13.nodeType;
7976          }));
7977        }, ce.fn.extend({ find: function(e12) {
7978          var t12, n11, r8 = this.length, i11 = this;
7979          if ("string" != typeof e12) return this.pushStack(ce(e12).filter(function() {
7980            for (t12 = 0; t12 < r8; t12++) if (ce.contains(i11[t12], this)) return true;
7981          }));
7982          for (n11 = this.pushStack([]), t12 = 0; t12 < r8; t12++) ce.find(e12, i11[t12], n11);
7983          return 1 < r8 ? ce.uniqueSort(n11) : n11;
7984        }, filter: function(e12) {
7985          return this.pushStack(T(this, e12 || [], false));
7986        }, not: function(e12) {
7987          return this.pushStack(T(this, e12 || [], true));
7988        }, is: function(e12) {
7989          return !!T(this, "string" == typeof e12 && b3.test(e12) ? ce(e12) : e12 || [], false).length;
7990        } });
7991        var k3, S = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;
7992        (ce.fn.init = function(e12, t12, n11) {
7993          var r8, i11;
7994          if (!e12) return this;
7995          if (n11 = n11 || k3, "string" == typeof e12) {
7996            if (!(r8 = "<" === e12[0] && ">" === e12[e12.length - 1] && 3 <= e12.length ? [null, e12, null] : S.exec(e12)) || !r8[1] && t12) return !t12 || t12.jquery ? (t12 || n11).find(e12) : this.constructor(t12).find(e12);
7997            if (r8[1]) {
7998              if (t12 = t12 instanceof ce ? t12[0] : t12, ce.merge(this, ce.parseHTML(r8[1], t12 && t12.nodeType ? t12.ownerDocument || t12 : C, true)), w3.test(r8[1]) && ce.isPlainObject(t12)) for (r8 in t12) v3(this[r8]) ? this[r8](t12[r8]) : this.attr(r8, t12[r8]);
7999              return this;
8000            }
8001            return (i11 = C.getElementById(r8[2])) && (this[0] = i11, this.length = 1), this;
8002          }
8003          return e12.nodeType ? (this[0] = e12, this.length = 1, this) : v3(e12) ? void 0 !== n11.ready ? n11.ready(e12) : e12(ce) : ce.makeArray(e12, this);
8004        }).prototype = ce.fn, k3 = ce(C);
8005        var E3 = /^(?:parents|prev(?:Until|All))/, j2 = { children: true, contents: true, next: true, prev: true };
8006        function A2(e12, t12) {
8007          while ((e12 = e12[t12]) && 1 !== e12.nodeType) ;
8008          return e12;
8009        }
8010        ce.fn.extend({ has: function(e12) {
8011          var t12 = ce(e12, this), n11 = t12.length;
8012          return this.filter(function() {
8013            for (var e13 = 0; e13 < n11; e13++) if (ce.contains(this, t12[e13])) return true;
8014          });
8015        }, closest: function(e12, t12) {
8016          var n11, r8 = 0, i11 = this.length, o12 = [], a9 = "string" != typeof e12 && ce(e12);
8017          if (!b3.test(e12)) {
8018            for (; r8 < i11; r8++) for (n11 = this[r8]; n11 && n11 !== t12; n11 = n11.parentNode) if (n11.nodeType < 11 && (a9 ? -1 < a9.index(n11) : 1 === n11.nodeType && ce.find.matchesSelector(n11, e12))) {
8019              o12.push(n11);
8020              break;
8021            }
8022          }
8023          return this.pushStack(1 < o12.length ? ce.uniqueSort(o12) : o12);
8024        }, index: function(e12) {
8025          return e12 ? "string" == typeof e12 ? se.call(ce(e12), this[0]) : se.call(this, e12.jquery ? e12[0] : e12) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1;
8026        }, add: function(e12, t12) {
8027          return this.pushStack(ce.uniqueSort(ce.merge(this.get(), ce(e12, t12))));
8028        }, addBack: function(e12) {
8029          return this.add(null == e12 ? this.prevObject : this.prevObject.filter(e12));
8030        } }), ce.each({ parent: function(e12) {
8031          var t12 = e12.parentNode;
8032          return t12 && 11 !== t12.nodeType ? t12 : null;
8033        }, parents: function(e12) {
8034          return d3(e12, "parentNode");
8035        }, parentsUntil: function(e12, t12, n11) {
8036          return d3(e12, "parentNode", n11);
8037        }, next: function(e12) {
8038          return A2(e12, "nextSibling");
8039        }, prev: function(e12) {
8040          return A2(e12, "previousSibling");
8041        }, nextAll: function(e12) {
8042          return d3(e12, "nextSibling");
8043        }, prevAll: function(e12) {
8044          return d3(e12, "previousSibling");
8045        }, nextUntil: function(e12, t12, n11) {
8046          return d3(e12, "nextSibling", n11);
8047        }, prevUntil: function(e12, t12, n11) {
8048          return d3(e12, "previousSibling", n11);
8049        }, siblings: function(e12) {
8050          return h4((e12.parentNode || {}).firstChild, e12);
8051        }, children: function(e12) {
8052          return h4(e12.firstChild);
8053        }, contents: function(e12) {
8054          return null != e12.contentDocument && r7(e12.contentDocument) ? e12.contentDocument : (fe(e12, "template") && (e12 = e12.content || e12), ce.merge([], e12.childNodes));
8055        } }, function(r8, i11) {
8056          ce.fn[r8] = function(e12, t12) {
8057            var n11 = ce.map(this, i11, e12);
8058            return "Until" !== r8.slice(-5) && (t12 = e12), t12 && "string" == typeof t12 && (n11 = ce.filter(t12, n11)), 1 < this.length && (j2[r8] || ce.uniqueSort(n11), E3.test(r8) && n11.reverse()), this.pushStack(n11);
8059          };
8060        });
8061        var D2 = /[^\x20\t\r\n\f]+/g;
8062        function N2(e12) {
8063          return e12;
8064        }
8065        function q2(e12) {
8066          throw e12;
8067        }
8068        function L(e12, t12, n11, r8) {
8069          var i11;
8070          try {
8071            e12 && v3(i11 = e12.promise) ? i11.call(e12).done(t12).fail(n11) : e12 && v3(i11 = e12.then) ? i11.call(e12, t12, n11) : t12.apply(void 0, [e12].slice(r8));
8072          } catch (e13) {
8073            n11.apply(void 0, [e13]);
8074          }
8075        }
8076        ce.Callbacks = function(r8) {
8077          var e12, n11;
8078          r8 = "string" == typeof r8 ? (e12 = r8, n11 = {}, ce.each(e12.match(D2) || [], function(e13, t13) {
8079            n11[t13] = true;
8080          }), n11) : ce.extend({}, r8);
8081          var i11, t12, o12, a9, s14 = [], u6 = [], l11 = -1, c6 = function() {
8082            for (a9 = a9 || r8.once, o12 = i11 = true; u6.length; l11 = -1) {
8083              t12 = u6.shift();
8084              while (++l11 < s14.length) false === s14[l11].apply(t12[0], t12[1]) && r8.stopOnFalse && (l11 = s14.length, t12 = false);
8085            }
8086            r8.memory || (t12 = false), i11 = false, a9 && (s14 = t12 ? [] : "");
8087          }, f4 = { add: function() {
8088            return s14 && (t12 && !i11 && (l11 = s14.length - 1, u6.push(t12)), (function n12(e13) {
8089              ce.each(e13, function(e14, t13) {
8090                v3(t13) ? r8.unique && f4.has(t13) || s14.push(t13) : t13 && t13.length && "string" !== x2(t13) && n12(t13);
8091              });
8092            })(arguments), t12 && !i11 && c6()), this;
8093          }, remove: function() {
8094            return ce.each(arguments, function(e13, t13) {
8095              var n12;
8096              while (-1 < (n12 = ce.inArray(t13, s14, n12))) s14.splice(n12, 1), n12 <= l11 && l11--;
8097            }), this;
8098          }, has: function(e13) {
8099            return e13 ? -1 < ce.inArray(e13, s14) : 0 < s14.length;
8100          }, empty: function() {
8101            return s14 && (s14 = []), this;
8102          }, disable: function() {
8103            return a9 = u6 = [], s14 = t12 = "", this;
8104          }, disabled: function() {
8105            return !s14;
8106          }, lock: function() {
8107            return a9 = u6 = [], t12 || i11 || (s14 = t12 = ""), this;
8108          }, locked: function() {
8109            return !!a9;
8110          }, fireWith: function(e13, t13) {
8111            return a9 || (t13 = [e13, (t13 = t13 || []).slice ? t13.slice() : t13], u6.push(t13), i11 || c6()), this;
8112          }, fire: function() {
8113            return f4.fireWith(this, arguments), this;
8114          }, fired: function() {
8115            return !!o12;
8116          } };
8117          return f4;
8118        }, ce.extend({ Deferred: function(e12) {
8119          var o12 = [["notify", "progress", ce.Callbacks("memory"), ce.Callbacks("memory"), 2], ["resolve", "done", ce.Callbacks("once memory"), ce.Callbacks("once memory"), 0, "resolved"], ["reject", "fail", ce.Callbacks("once memory"), ce.Callbacks("once memory"), 1, "rejected"]], i11 = "pending", a9 = { state: function() {
8120            return i11;
8121          }, always: function() {
8122            return s14.done(arguments).fail(arguments), this;
8123          }, "catch": function(e13) {
8124            return a9.then(null, e13);
8125          }, pipe: function() {
8126            var i12 = arguments;
8127            return ce.Deferred(function(r8) {
8128              ce.each(o12, function(e13, t12) {
8129                var n11 = v3(i12[t12[4]]) && i12[t12[4]];
8130                s14[t12[1]](function() {
8131                  var e14 = n11 && n11.apply(this, arguments);
8132                  e14 && v3(e14.promise) ? e14.promise().progress(r8.notify).done(r8.resolve).fail(r8.reject) : r8[t12[0] + "With"](this, n11 ? [e14] : arguments);
8133                });
8134              }), i12 = null;
8135            }).promise();
8136          }, then: function(t12, n11, r8) {
8137            var u6 = 0;
8138            function l11(i12, o13, a10, s15) {
8139              return function() {
8140                var n12 = this, r9 = arguments, e13 = function() {
8141                  var e14, t14;
8142                  if (!(i12 < u6)) {
8143                    if ((e14 = a10.apply(n12, r9)) === o13.promise()) throw new TypeError("Thenable self-resolution");
8144                    t14 = e14 && ("object" == typeof e14 || "function" == typeof e14) && e14.then, v3(t14) ? s15 ? t14.call(e14, l11(u6, o13, N2, s15), l11(u6, o13, q2, s15)) : (u6++, t14.call(e14, l11(u6, o13, N2, s15), l11(u6, o13, q2, s15), l11(u6, o13, N2, o13.notifyWith))) : (a10 !== N2 && (n12 = void 0, r9 = [e14]), (s15 || o13.resolveWith)(n12, r9));
8145                  }
8146                }, t13 = s15 ? e13 : function() {
8147                  try {
8148                    e13();
8149                  } catch (e14) {
8150                    ce.Deferred.exceptionHook && ce.Deferred.exceptionHook(e14, t13.error), u6 <= i12 + 1 && (a10 !== q2 && (n12 = void 0, r9 = [e14]), o13.rejectWith(n12, r9));
8151                  }
8152                };
8153                i12 ? t13() : (ce.Deferred.getErrorHook ? t13.error = ce.Deferred.getErrorHook() : ce.Deferred.getStackHook && (t13.error = ce.Deferred.getStackHook()), ie.setTimeout(t13));
8154              };
8155            }
8156            return ce.Deferred(function(e13) {
8157              o12[0][3].add(l11(0, e13, v3(r8) ? r8 : N2, e13.notifyWith)), o12[1][3].add(l11(0, e13, v3(t12) ? t12 : N2)), o12[2][3].add(l11(0, e13, v3(n11) ? n11 : q2));
8158            }).promise();
8159          }, promise: function(e13) {
8160            return null != e13 ? ce.extend(e13, a9) : a9;
8161          } }, s14 = {};
8162          return ce.each(o12, function(e13, t12) {
8163            var n11 = t12[2], r8 = t12[5];
8164            a9[t12[1]] = n11.add, r8 && n11.add(function() {
8165              i11 = r8;
8166            }, o12[3 - e13][2].disable, o12[3 - e13][3].disable, o12[0][2].lock, o12[0][3].lock), n11.add(t12[3].fire), s14[t12[0]] = function() {
8167              return s14[t12[0] + "With"](this === s14 ? void 0 : this, arguments), this;
8168            }, s14[t12[0] + "With"] = n11.fireWith;
8169          }), a9.promise(s14), e12 && e12.call(s14, s14), s14;
8170        }, when: function(e12) {
8171          var n11 = arguments.length, t12 = n11, r8 = Array(t12), i11 = ae.call(arguments), o12 = ce.Deferred(), a9 = function(t13) {
8172            return function(e13) {
8173              r8[t13] = this, i11[t13] = 1 < arguments.length ? ae.call(arguments) : e13, --n11 || o12.resolveWith(r8, i11);
8174            };
8175          };
8176          if (n11 <= 1 && (L(e12, o12.done(a9(t12)).resolve, o12.reject, !n11), "pending" === o12.state() || v3(i11[t12] && i11[t12].then))) return o12.then();
8177          while (t12--) L(i11[t12], a9(t12), o12.reject);
8178          return o12.promise();
8179        } });
8180        var H2 = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;
8181        ce.Deferred.exceptionHook = function(e12, t12) {
8182          ie.console && ie.console.warn && e12 && H2.test(e12.name) && ie.console.warn("jQuery.Deferred exception: " + e12.message, e12.stack, t12);
8183        }, ce.readyException = function(e12) {
8184          ie.setTimeout(function() {
8185            throw e12;
8186          });
8187        };
8188        var O2 = ce.Deferred();
8189        function P() {
8190          C.removeEventListener("DOMContentLoaded", P), ie.removeEventListener("load", P), ce.ready();
8191        }
8192        ce.fn.ready = function(e12) {
8193          return O2.then(e12)["catch"](function(e13) {
8194            ce.readyException(e13);
8195          }), this;
8196        }, ce.extend({ isReady: false, readyWait: 1, ready: function(e12) {
8197          (true === e12 ? --ce.readyWait : ce.isReady) || (ce.isReady = true) !== e12 && 0 < --ce.readyWait || O2.resolveWith(C, [ce]);
8198        } }), ce.ready.then = O2.then, "complete" === C.readyState || "loading" !== C.readyState && !C.documentElement.doScroll ? ie.setTimeout(ce.ready) : (C.addEventListener("DOMContentLoaded", P), ie.addEventListener("load", P));
8199        var M3 = function(e12, t12, n11, r8, i11, o12, a9) {
8200          var s14 = 0, u6 = e12.length, l11 = null == n11;
8201          if ("object" === x2(n11)) for (s14 in i11 = true, n11) M3(e12, t12, s14, n11[s14], true, o12, a9);
8202          else if (void 0 !== r8 && (i11 = true, v3(r8) || (a9 = true), l11 && (a9 ? (t12.call(e12, r8), t12 = null) : (l11 = t12, t12 = function(e13, t13, n12) {
8203            return l11.call(ce(e13), n12);
8204          })), t12)) for (; s14 < u6; s14++) t12(e12[s14], n11, a9 ? r8 : r8.call(e12[s14], s14, t12(e12[s14], n11)));
8205          return i11 ? e12 : l11 ? t12.call(e12) : u6 ? t12(e12[0], n11) : o12;
8206        }, R2 = /^-ms-/, I2 = /-([a-z])/g;
8207        function W(e12, t12) {
8208          return t12.toUpperCase();
8209        }
8210        function F(e12) {
8211          return e12.replace(R2, "ms-").replace(I2, W);
8212        }
8213        var $4 = function(e12) {
8214          return 1 === e12.nodeType || 9 === e12.nodeType || !+e12.nodeType;
8215        };
8216        function B2() {
8217          this.expando = ce.expando + B2.uid++;
8218        }
8219        B2.uid = 1, B2.prototype = { cache: function(e12) {
8220          var t12 = e12[this.expando];
8221          return t12 || (t12 = {}, $4(e12) && (e12.nodeType ? e12[this.expando] = t12 : Object.defineProperty(e12, this.expando, { value: t12, configurable: true }))), t12;
8222        }, set: function(e12, t12, n11) {
8223          var r8, i11 = this.cache(e12);
8224          if ("string" == typeof t12) i11[F(t12)] = n11;
8225          else for (r8 in t12) i11[F(r8)] = t12[r8];
8226          return i11;
8227        }, get: function(e12, t12) {
8228          return void 0 === t12 ? this.cache(e12) : e12[this.expando] && e12[this.expando][F(t12)];
8229        }, access: function(e12, t12, n11) {
8230          return void 0 === t12 || t12 && "string" == typeof t12 && void 0 === n11 ? this.get(e12, t12) : (this.set(e12, t12, n11), void 0 !== n11 ? n11 : t12);
8231        }, remove: function(e12, t12) {
8232          var n11, r8 = e12[this.expando];
8233          if (void 0 !== r8) {
8234            if (void 0 !== t12) {
8235              n11 = (t12 = Array.isArray(t12) ? t12.map(F) : (t12 = F(t12)) in r8 ? [t12] : t12.match(D2) || []).length;
8236              while (n11--) delete r8[t12[n11]];
8237            }
8238            (void 0 === t12 || ce.isEmptyObject(r8)) && (e12.nodeType ? e12[this.expando] = void 0 : delete e12[this.expando]);
8239          }
8240        }, hasData: function(e12) {
8241          var t12 = e12[this.expando];
8242          return void 0 !== t12 && !ce.isEmptyObject(t12);
8243        } };
8244        var _2 = new B2(), z2 = new B2(), X = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, U = /[A-Z]/g;
8245        function V(e12, t12, n11) {
8246          var r8, i11;
8247          if (void 0 === n11 && 1 === e12.nodeType) if (r8 = "data-" + t12.replace(U, "-$&").toLowerCase(), "string" == typeof (n11 = e12.getAttribute(r8))) {
8248            try {
8249              n11 = "true" === (i11 = n11) || "false" !== i11 && ("null" === i11 ? null : i11 === +i11 + "" ? +i11 : X.test(i11) ? JSON.parse(i11) : i11);
8250            } catch (e13) {
8251            }
8252            z2.set(e12, t12, n11);
8253          } else n11 = void 0;
8254          return n11;
8255        }
8256        ce.extend({ hasData: function(e12) {
8257          return z2.hasData(e12) || _2.hasData(e12);
8258        }, data: function(e12, t12, n11) {
8259          return z2.access(e12, t12, n11);
8260        }, removeData: function(e12, t12) {
8261          z2.remove(e12, t12);
8262        }, _data: function(e12, t12, n11) {
8263          return _2.access(e12, t12, n11);
8264        }, _removeData: function(e12, t12) {
8265          _2.remove(e12, t12);
8266        } }), ce.fn.extend({ data: function(n11, e12) {
8267          var t12, r8, i11, o12 = this[0], a9 = o12 && o12.attributes;
8268          if (void 0 === n11) {
8269            if (this.length && (i11 = z2.get(o12), 1 === o12.nodeType && !_2.get(o12, "hasDataAttrs"))) {
8270              t12 = a9.length;
8271              while (t12--) a9[t12] && 0 === (r8 = a9[t12].name).indexOf("data-") && (r8 = F(r8.slice(5)), V(o12, r8, i11[r8]));
8272              _2.set(o12, "hasDataAttrs", true);
8273            }
8274            return i11;
8275          }
8276          return "object" == typeof n11 ? this.each(function() {
8277            z2.set(this, n11);
8278          }) : M3(this, function(e13) {
8279            var t13;
8280            if (o12 && void 0 === e13) return void 0 !== (t13 = z2.get(o12, n11)) ? t13 : void 0 !== (t13 = V(o12, n11)) ? t13 : void 0;
8281            this.each(function() {
8282              z2.set(this, n11, e13);
8283            });
8284          }, null, e12, 1 < arguments.length, null, true);
8285        }, removeData: function(e12) {
8286          return this.each(function() {
8287            z2.remove(this, e12);
8288          });
8289        } }), ce.extend({ queue: function(e12, t12, n11) {
8290          var r8;
8291          if (e12) return t12 = (t12 || "fx") + "queue", r8 = _2.get(e12, t12), n11 && (!r8 || Array.isArray(n11) ? r8 = _2.access(e12, t12, ce.makeArray(n11)) : r8.push(n11)), r8 || [];
8292        }, dequeue: function(e12, t12) {
8293          t12 = t12 || "fx";
8294          var n11 = ce.queue(e12, t12), r8 = n11.length, i11 = n11.shift(), o12 = ce._queueHooks(e12, t12);
8295          "inprogress" === i11 && (i11 = n11.shift(), r8--), i11 && ("fx" === t12 && n11.unshift("inprogress"), delete o12.stop, i11.call(e12, function() {
8296            ce.dequeue(e12, t12);
8297          }, o12)), !r8 && o12 && o12.empty.fire();
8298        }, _queueHooks: function(e12, t12) {
8299          var n11 = t12 + "queueHooks";
8300          return _2.get(e12, n11) || _2.access(e12, n11, { empty: ce.Callbacks("once memory").add(function() {
8301            _2.remove(e12, [t12 + "queue", n11]);
8302          }) });
8303        } }), ce.fn.extend({ queue: function(t12, n11) {
8304          var e12 = 2;
8305          return "string" != typeof t12 && (n11 = t12, t12 = "fx", e12--), arguments.length < e12 ? ce.queue(this[0], t12) : void 0 === n11 ? this : this.each(function() {
8306            var e13 = ce.queue(this, t12, n11);
8307            ce._queueHooks(this, t12), "fx" === t12 && "inprogress" !== e13[0] && ce.dequeue(this, t12);
8308          });
8309        }, dequeue: function(e12) {
8310          return this.each(function() {
8311            ce.dequeue(this, e12);
8312          });
8313        }, clearQueue: function(e12) {
8314          return this.queue(e12 || "fx", []);
8315        }, promise: function(e12, t12) {
8316          var n11, r8 = 1, i11 = ce.Deferred(), o12 = this, a9 = this.length, s14 = function() {
8317            --r8 || i11.resolveWith(o12, [o12]);
8318          };
8319          "string" != typeof e12 && (t12 = e12, e12 = void 0), e12 = e12 || "fx";
8320          while (a9--) (n11 = _2.get(o12[a9], e12 + "queueHooks")) && n11.empty && (r8++, n11.empty.add(s14));
8321          return s14(), i11.promise(t12);
8322        } });
8323        var G = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source, Y = new RegExp("^(?:([+-])=|)(" + G + ")([a-z%]*)$", "i"), Q = ["Top", "Right", "Bottom", "Left"], J = C.documentElement, K = function(e12) {
8324          return ce.contains(e12.ownerDocument, e12);
8325        }, Z = { composed: true };
8326        J.getRootNode && (K = function(e12) {
8327          return ce.contains(e12.ownerDocument, e12) || e12.getRootNode(Z) === e12.ownerDocument;
8328        });
8329        var ee = function(e12, t12) {
8330          return "none" === (e12 = t12 || e12).style.display || "" === e12.style.display && K(e12) && "none" === ce.css(e12, "display");
8331        };
8332        function te(e12, t12, n11, r8) {
8333          var i11, o12, a9 = 20, s14 = r8 ? function() {
8334            return r8.cur();
8335          } : function() {
8336            return ce.css(e12, t12, "");
8337          }, u6 = s14(), l11 = n11 && n11[3] || (ce.cssNumber[t12] ? "" : "px"), c6 = e12.nodeType && (ce.cssNumber[t12] || "px" !== l11 && +u6) && Y.exec(ce.css(e12, t12));
8338          if (c6 && c6[3] !== l11) {
8339            u6 /= 2, l11 = l11 || c6[3], c6 = +u6 || 1;
8340            while (a9--) ce.style(e12, t12, c6 + l11), (1 - o12) * (1 - (o12 = s14() / u6 || 0.5)) <= 0 && (a9 = 0), c6 /= o12;
8341            c6 *= 2, ce.style(e12, t12, c6 + l11), n11 = n11 || [];
8342          }
8343          return n11 && (c6 = +c6 || +u6 || 0, i11 = n11[1] ? c6 + (n11[1] + 1) * n11[2] : +n11[2], r8 && (r8.unit = l11, r8.start = c6, r8.end = i11)), i11;
8344        }
8345        var ne = {};
8346        function re(e12, t12) {
8347          for (var n11, r8, i11, o12, a9, s14, u6, l11 = [], c6 = 0, f4 = e12.length; c6 < f4; c6++) (r8 = e12[c6]).style && (n11 = r8.style.display, t12 ? ("none" === n11 && (l11[c6] = _2.get(r8, "display") || null, l11[c6] || (r8.style.display = "")), "" === r8.style.display && ee(r8) && (l11[c6] = (u6 = a9 = o12 = void 0, a9 = (i11 = r8).ownerDocument, s14 = i11.nodeName, (u6 = ne[s14]) || (o12 = a9.body.appendChild(a9.createElement(s14)), u6 = ce.css(o12, "display"), o12.parentNode.removeChild(o12), "none" === u6 && (u6 = "block"), ne[s14] = u6)))) : "none" !== n11 && (l11[c6] = "none", _2.set(r8, "display", n11)));
8348          for (c6 = 0; c6 < f4; c6++) null != l11[c6] && (e12[c6].style.display = l11[c6]);
8349          return e12;
8350        }
8351        ce.fn.extend({ show: function() {
8352          return re(this, true);
8353        }, hide: function() {
8354          return re(this);
8355        }, toggle: function(e12) {
8356          return "boolean" == typeof e12 ? e12 ? this.show() : this.hide() : this.each(function() {
8357            ee(this) ? ce(this).show() : ce(this).hide();
8358          });
8359        } });
8360        var xe, be, we = /^(?:checkbox|radio)$/i, Te = /<([a-z][^\/\0>\x20\t\r\n\f]*)/i, Ce = /^$|^module$|\/(?:java|ecma)script/i;
8361        xe = C.createDocumentFragment().appendChild(C.createElement("div")), (be = C.createElement("input")).setAttribute("type", "radio"), be.setAttribute("checked", "checked"), be.setAttribute("name", "t"), xe.appendChild(be), le.checkClone = xe.cloneNode(true).cloneNode(true).lastChild.checked, xe.innerHTML = "<textarea>x</textarea>", le.noCloneChecked = !!xe.cloneNode(true).lastChild.defaultValue, xe.innerHTML = "<option></option>", le.option = !!xe.lastChild;
8362        var ke = { thead: [1, "<table>", "</table>"], col: [2, "<table><colgroup>", "</colgroup></table>"], tr: [2, "<table><tbody>", "</tbody></table>"], td: [3, "<table><tbody><tr>", "</tr></tbody></table>"], _default: [0, "", ""] };
8363        function Se(e12, t12) {
8364          var n11;
8365          return n11 = "undefined" != typeof e12.getElementsByTagName ? e12.getElementsByTagName(t12 || "*") : "undefined" != typeof e12.querySelectorAll ? e12.querySelectorAll(t12 || "*") : [], void 0 === t12 || t12 && fe(e12, t12) ? ce.merge([e12], n11) : n11;
8366        }
8367        function Ee(e12, t12) {
8368          for (var n11 = 0, r8 = e12.length; n11 < r8; n11++) _2.set(e12[n11], "globalEval", !t12 || _2.get(t12[n11], "globalEval"));
8369        }
8370        ke.tbody = ke.tfoot = ke.colgroup = ke.caption = ke.thead, ke.th = ke.td, le.option || (ke.optgroup = ke.option = [1, "<select multiple='multiple'>", "</select>"]);
8371        var je = /<|&#?\w+;/;
8372        function Ae(e12, t12, n11, r8, i11) {
8373          for (var o12, a9, s14, u6, l11, c6, f4 = t12.createDocumentFragment(), p3 = [], d4 = 0, h5 = e12.length; d4 < h5; d4++) if ((o12 = e12[d4]) || 0 === o12) if ("object" === x2(o12)) ce.merge(p3, o12.nodeType ? [o12] : o12);
8374          else if (je.test(o12)) {
8375            a9 = a9 || f4.appendChild(t12.createElement("div")), s14 = (Te.exec(o12) || ["", ""])[1].toLowerCase(), u6 = ke[s14] || ke._default, a9.innerHTML = u6[1] + ce.htmlPrefilter(o12) + u6[2], c6 = u6[0];
8376            while (c6--) a9 = a9.lastChild;
8377            ce.merge(p3, a9.childNodes), (a9 = f4.firstChild).textContent = "";
8378          } else p3.push(t12.createTextNode(o12));
8379          f4.textContent = "", d4 = 0;
8380          while (o12 = p3[d4++]) if (r8 && -1 < ce.inArray(o12, r8)) i11 && i11.push(o12);
8381          else if (l11 = K(o12), a9 = Se(f4.appendChild(o12), "script"), l11 && Ee(a9), n11) {
8382            c6 = 0;
8383            while (o12 = a9[c6++]) Ce.test(o12.type || "") && n11.push(o12);
8384          }
8385          return f4;
8386        }
8387        var De = /^([^.]*)(?:\.(.+)|)/;
8388        function Ne() {
8389          return true;
8390        }
8391        function qe() {
8392          return false;
8393        }
8394        function Le(e12, t12, n11, r8, i11, o12) {
8395          var a9, s14;
8396          if ("object" == typeof t12) {
8397            for (s14 in "string" != typeof n11 && (r8 = r8 || n11, n11 = void 0), t12) Le(e12, s14, n11, r8, t12[s14], o12);
8398            return e12;
8399          }
8400          if (null == r8 && null == i11 ? (i11 = n11, r8 = n11 = void 0) : null == i11 && ("string" == typeof n11 ? (i11 = r8, r8 = void 0) : (i11 = r8, r8 = n11, n11 = void 0)), false === i11) i11 = qe;
8401          else if (!i11) return e12;
8402          return 1 === o12 && (a9 = i11, (i11 = function(e13) {
8403            return ce().off(e13), a9.apply(this, arguments);
8404          }).guid = a9.guid || (a9.guid = ce.guid++)), e12.each(function() {
8405            ce.event.add(this, t12, i11, r8, n11);
8406          });
8407        }
8408        function He(e12, r8, t12) {
8409          t12 ? (_2.set(e12, r8, false), ce.event.add(e12, r8, { namespace: false, handler: function(e13) {
8410            var t13, n11 = _2.get(this, r8);
8411            if (1 & e13.isTrigger && this[r8]) {
8412              if (n11) (ce.event.special[r8] || {}).delegateType && e13.stopPropagation();
8413              else if (n11 = ae.call(arguments), _2.set(this, r8, n11), this[r8](), t13 = _2.get(this, r8), _2.set(this, r8, false), n11 !== t13) return e13.stopImmediatePropagation(), e13.preventDefault(), t13;
8414            } else n11 && (_2.set(this, r8, ce.event.trigger(n11[0], n11.slice(1), this)), e13.stopPropagation(), e13.isImmediatePropagationStopped = Ne);
8415          } })) : void 0 === _2.get(e12, r8) && ce.event.add(e12, r8, Ne);
8416        }
8417        ce.event = { global: {}, add: function(t12, e12, n11, r8, i11) {
8418          var o12, a9, s14, u6, l11, c6, f4, p3, d4, h5, g3, v4 = _2.get(t12);
8419          if ($4(t12)) {
8420            n11.handler && (n11 = (o12 = n11).handler, i11 = o12.selector), i11 && ce.find.matchesSelector(J, i11), n11.guid || (n11.guid = ce.guid++), (u6 = v4.events) || (u6 = v4.events = /* @__PURE__ */ Object.create(null)), (a9 = v4.handle) || (a9 = v4.handle = function(e13) {
8421              return "undefined" != typeof ce && ce.event.triggered !== e13.type ? ce.event.dispatch.apply(t12, arguments) : void 0;
8422            }), l11 = (e12 = (e12 || "").match(D2) || [""]).length;
8423            while (l11--) d4 = g3 = (s14 = De.exec(e12[l11]) || [])[1], h5 = (s14[2] || "").split(".").sort(), d4 && (f4 = ce.event.special[d4] || {}, d4 = (i11 ? f4.delegateType : f4.bindType) || d4, f4 = ce.event.special[d4] || {}, c6 = ce.extend({ type: d4, origType: g3, data: r8, handler: n11, guid: n11.guid, selector: i11, needsContext: i11 && ce.expr.match.needsContext.test(i11), namespace: h5.join(".") }, o12), (p3 = u6[d4]) || ((p3 = u6[d4] = []).delegateCount = 0, f4.setup && false !== f4.setup.call(t12, r8, h5, a9) || t12.addEventListener && t12.addEventListener(d4, a9)), f4.add && (f4.add.call(t12, c6), c6.handler.guid || (c6.handler.guid = n11.guid)), i11 ? p3.splice(p3.delegateCount++, 0, c6) : p3.push(c6), ce.event.global[d4] = true);
8424          }
8425        }, remove: function(e12, t12, n11, r8, i11) {
8426          var o12, a9, s14, u6, l11, c6, f4, p3, d4, h5, g3, v4 = _2.hasData(e12) && _2.get(e12);
8427          if (v4 && (u6 = v4.events)) {
8428            l11 = (t12 = (t12 || "").match(D2) || [""]).length;
8429            while (l11--) if (d4 = g3 = (s14 = De.exec(t12[l11]) || [])[1], h5 = (s14[2] || "").split(".").sort(), d4) {
8430              f4 = ce.event.special[d4] || {}, p3 = u6[d4 = (r8 ? f4.delegateType : f4.bindType) || d4] || [], s14 = s14[2] && new RegExp("(^|\\.)" + h5.join("\\.(?:.*\\.|)") + "(\\.|$)"), a9 = o12 = p3.length;
8431              while (o12--) c6 = p3[o12], !i11 && g3 !== c6.origType || n11 && n11.guid !== c6.guid || s14 && !s14.test(c6.namespace) || r8 && r8 !== c6.selector && ("**" !== r8 || !c6.selector) || (p3.splice(o12, 1), c6.selector && p3.delegateCount--, f4.remove && f4.remove.call(e12, c6));
8432              a9 && !p3.length && (f4.teardown && false !== f4.teardown.call(e12, h5, v4.handle) || ce.removeEvent(e12, d4, v4.handle), delete u6[d4]);
8433            } else for (d4 in u6) ce.event.remove(e12, d4 + t12[l11], n11, r8, true);
8434            ce.isEmptyObject(u6) && _2.remove(e12, "handle events");
8435          }
8436        }, dispatch: function(e12) {
8437          var t12, n11, r8, i11, o12, a9, s14 = new Array(arguments.length), u6 = ce.event.fix(e12), l11 = (_2.get(this, "events") || /* @__PURE__ */ Object.create(null))[u6.type] || [], c6 = ce.event.special[u6.type] || {};
8438          for (s14[0] = u6, t12 = 1; t12 < arguments.length; t12++) s14[t12] = arguments[t12];
8439          if (u6.delegateTarget = this, !c6.preDispatch || false !== c6.preDispatch.call(this, u6)) {
8440            a9 = ce.event.handlers.call(this, u6, l11), t12 = 0;
8441            while ((i11 = a9[t12++]) && !u6.isPropagationStopped()) {
8442              u6.currentTarget = i11.elem, n11 = 0;
8443              while ((o12 = i11.handlers[n11++]) && !u6.isImmediatePropagationStopped()) u6.rnamespace && false !== o12.namespace && !u6.rnamespace.test(o12.namespace) || (u6.handleObj = o12, u6.data = o12.data, void 0 !== (r8 = ((ce.event.special[o12.origType] || {}).handle || o12.handler).apply(i11.elem, s14)) && false === (u6.result = r8) && (u6.preventDefault(), u6.stopPropagation()));
8444            }
8445            return c6.postDispatch && c6.postDispatch.call(this, u6), u6.result;
8446          }
8447        }, handlers: function(e12, t12) {
8448          var n11, r8, i11, o12, a9, s14 = [], u6 = t12.delegateCount, l11 = e12.target;
8449          if (u6 && l11.nodeType && !("click" === e12.type && 1 <= e12.button)) {
8450            for (; l11 !== this; l11 = l11.parentNode || this) if (1 === l11.nodeType && ("click" !== e12.type || true !== l11.disabled)) {
8451              for (o12 = [], a9 = {}, n11 = 0; n11 < u6; n11++) void 0 === a9[i11 = (r8 = t12[n11]).selector + " "] && (a9[i11] = r8.needsContext ? -1 < ce(i11, this).index(l11) : ce.find(i11, this, null, [l11]).length), a9[i11] && o12.push(r8);
8452              o12.length && s14.push({ elem: l11, handlers: o12 });
8453            }
8454          }
8455          return l11 = this, u6 < t12.length && s14.push({ elem: l11, handlers: t12.slice(u6) }), s14;
8456        }, addProp: function(t12, e12) {
8457          Object.defineProperty(ce.Event.prototype, t12, { enumerable: true, configurable: true, get: v3(e12) ? function() {
8458            if (this.originalEvent) return e12(this.originalEvent);
8459          } : function() {
8460            if (this.originalEvent) return this.originalEvent[t12];
8461          }, set: function(e13) {
8462            Object.defineProperty(this, t12, { enumerable: true, configurable: true, writable: true, value: e13 });
8463          } });
8464        }, fix: function(e12) {
8465          return e12[ce.expando] ? e12 : new ce.Event(e12);
8466        }, special: { load: { noBubble: true }, click: { setup: function(e12) {
8467          var t12 = this || e12;
8468          return we.test(t12.type) && t12.click && fe(t12, "input") && He(t12, "click", true), false;
8469        }, trigger: function(e12) {
8470          var t12 = this || e12;
8471          return we.test(t12.type) && t12.click && fe(t12, "input") && He(t12, "click"), true;
8472        }, _default: function(e12) {
8473          var t12 = e12.target;
8474          return we.test(t12.type) && t12.click && fe(t12, "input") && _2.get(t12, "click") || fe(t12, "a");
8475        } }, beforeunload: { postDispatch: function(e12) {
8476          void 0 !== e12.result && e12.originalEvent && (e12.originalEvent.returnValue = e12.result);
8477        } } } }, ce.removeEvent = function(e12, t12, n11) {
8478          e12.removeEventListener && e12.removeEventListener(t12, n11);
8479        }, ce.Event = function(e12, t12) {
8480          if (!(this instanceof ce.Event)) return new ce.Event(e12, t12);
8481          e12 && e12.type ? (this.originalEvent = e12, this.type = e12.type, this.isDefaultPrevented = e12.defaultPrevented || void 0 === e12.defaultPrevented && false === e12.returnValue ? Ne : qe, this.target = e12.target && 3 === e12.target.nodeType ? e12.target.parentNode : e12.target, this.currentTarget = e12.currentTarget, this.relatedTarget = e12.relatedTarget) : this.type = e12, t12 && ce.extend(this, t12), this.timeStamp = e12 && e12.timeStamp || Date.now(), this[ce.expando] = true;
8482        }, ce.Event.prototype = { constructor: ce.Event, isDefaultPrevented: qe, isPropagationStopped: qe, isImmediatePropagationStopped: qe, isSimulated: false, preventDefault: function() {
8483          var e12 = this.originalEvent;
8484          this.isDefaultPrevented = Ne, e12 && !this.isSimulated && e12.preventDefault();
8485        }, stopPropagation: function() {
8486          var e12 = this.originalEvent;
8487          this.isPropagationStopped = Ne, e12 && !this.isSimulated && e12.stopPropagation();
8488        }, stopImmediatePropagation: function() {
8489          var e12 = this.originalEvent;
8490          this.isImmediatePropagationStopped = Ne, e12 && !this.isSimulated && e12.stopImmediatePropagation(), this.stopPropagation();
8491        } }, ce.each({ altKey: true, bubbles: true, cancelable: true, changedTouches: true, ctrlKey: true, detail: true, eventPhase: true, metaKey: true, pageX: true, pageY: true, shiftKey: true, view: true, "char": true, code: true, charCode: true, key: true, keyCode: true, button: true, buttons: true, clientX: true, clientY: true, offsetX: true, offsetY: true, pointerId: true, pointerType: true, screenX: true, screenY: true, targetTouches: true, toElement: true, touches: true, which: true }, ce.event.addProp), ce.each({ focus: "focusin", blur: "focusout" }, function(r8, i11) {
8492          function o12(e12) {
8493            if (C.documentMode) {
8494              var t12 = _2.get(this, "handle"), n11 = ce.event.fix(e12);
8495              n11.type = "focusin" === e12.type ? "focus" : "blur", n11.isSimulated = true, t12(e12), n11.target === n11.currentTarget && t12(n11);
8496            } else ce.event.simulate(i11, e12.target, ce.event.fix(e12));
8497          }
8498          ce.event.special[r8] = { setup: function() {
8499            var e12;
8500            if (He(this, r8, true), !C.documentMode) return false;
8501            (e12 = _2.get(this, i11)) || this.addEventListener(i11, o12), _2.set(this, i11, (e12 || 0) + 1);
8502          }, trigger: function() {
8503            return He(this, r8), true;
8504          }, teardown: function() {
8505            var e12;
8506            if (!C.documentMode) return false;
8507            (e12 = _2.get(this, i11) - 1) ? _2.set(this, i11, e12) : (this.removeEventListener(i11, o12), _2.remove(this, i11));
8508          }, _default: function(e12) {
8509            return _2.get(e12.target, r8);
8510          }, delegateType: i11 }, ce.event.special[i11] = { setup: function() {
8511            var e12 = this.ownerDocument || this.document || this, t12 = C.documentMode ? this : e12, n11 = _2.get(t12, i11);
8512            n11 || (C.documentMode ? this.addEventListener(i11, o12) : e12.addEventListener(r8, o12, true)), _2.set(t12, i11, (n11 || 0) + 1);
8513          }, teardown: function() {
8514            var e12 = this.ownerDocument || this.document || this, t12 = C.documentMode ? this : e12, n11 = _2.get(t12, i11) - 1;
8515            n11 ? _2.set(t12, i11, n11) : (C.documentMode ? this.removeEventListener(i11, o12) : e12.removeEventListener(r8, o12, true), _2.remove(t12, i11));
8516          } };
8517        }), ce.each({ mouseenter: "mouseover", mouseleave: "mouseout", pointerenter: "pointerover", pointerleave: "pointerout" }, function(e12, i11) {
8518          ce.event.special[e12] = { delegateType: i11, bindType: i11, handle: function(e13) {
8519            var t12, n11 = e13.relatedTarget, r8 = e13.handleObj;
8520            return n11 && (n11 === this || ce.contains(this, n11)) || (e13.type = r8.origType, t12 = r8.handler.apply(this, arguments), e13.type = i11), t12;
8521          } };
8522        }), ce.fn.extend({ on: function(e12, t12, n11, r8) {
8523          return Le(this, e12, t12, n11, r8);
8524        }, one: function(e12, t12, n11, r8) {
8525          return Le(this, e12, t12, n11, r8, 1);
8526        }, off: function(e12, t12, n11) {
8527          var r8, i11;
8528          if (e12 && e12.preventDefault && e12.handleObj) return r8 = e12.handleObj, ce(e12.delegateTarget).off(r8.namespace ? r8.origType + "." + r8.namespace : r8.origType, r8.selector, r8.handler), this;
8529          if ("object" == typeof e12) {
8530            for (i11 in e12) this.off(i11, t12, e12[i11]);
8531            return this;
8532          }
8533          return false !== t12 && "function" != typeof t12 || (n11 = t12, t12 = void 0), false === n11 && (n11 = qe), this.each(function() {
8534            ce.event.remove(this, e12, n11, t12);
8535          });
8536        } });
8537        var Oe = /<script|<style|<link/i, Pe = /checked\s*(?:[^=]|=\s*.checked.)/i, Me = /^\s*<!\[CDATA\[|\]\]>\s*$/g;
8538        function Re(e12, t12) {
8539          return fe(e12, "table") && fe(11 !== t12.nodeType ? t12 : t12.firstChild, "tr") && ce(e12).children("tbody")[0] || e12;
8540        }
8541        function Ie(e12) {
8542          return e12.type = (null !== e12.getAttribute("type")) + "/" + e12.type, e12;
8543        }
8544        function We(e12) {
8545          return "true/" === (e12.type || "").slice(0, 5) ? e12.type = e12.type.slice(5) : e12.removeAttribute("type"), e12;
8546        }
8547        function Fe(e12, t12) {
8548          var n11, r8, i11, o12, a9, s14;
8549          if (1 === t12.nodeType) {
8550            if (_2.hasData(e12) && (s14 = _2.get(e12).events)) for (i11 in _2.remove(t12, "handle events"), s14) for (n11 = 0, r8 = s14[i11].length; n11 < r8; n11++) ce.event.add(t12, i11, s14[i11][n11]);
8551            z2.hasData(e12) && (o12 = z2.access(e12), a9 = ce.extend({}, o12), z2.set(t12, a9));
8552          }
8553        }
8554        function $e(n11, r8, i11, o12) {
8555          r8 = g2(r8);
8556          var e12, t12, a9, s14, u6, l11, c6 = 0, f4 = n11.length, p3 = f4 - 1, d4 = r8[0], h5 = v3(d4);
8557          if (h5 || 1 < f4 && "string" == typeof d4 && !le.checkClone && Pe.test(d4)) return n11.each(function(e13) {
8558            var t13 = n11.eq(e13);
8559            h5 && (r8[0] = d4.call(this, e13, t13.html())), $e(t13, r8, i11, o12);
8560          });
8561          if (f4 && (t12 = (e12 = Ae(r8, n11[0].ownerDocument, false, n11, o12)).firstChild, 1 === e12.childNodes.length && (e12 = t12), t12 || o12)) {
8562            for (s14 = (a9 = ce.map(Se(e12, "script"), Ie)).length; c6 < f4; c6++) u6 = e12, c6 !== p3 && (u6 = ce.clone(u6, true, true), s14 && ce.merge(a9, Se(u6, "script"))), i11.call(n11[c6], u6, c6);
8563            if (s14) for (l11 = a9[a9.length - 1].ownerDocument, ce.map(a9, We), c6 = 0; c6 < s14; c6++) u6 = a9[c6], Ce.test(u6.type || "") && !_2.access(u6, "globalEval") && ce.contains(l11, u6) && (u6.src && "module" !== (u6.type || "").toLowerCase() ? ce._evalUrl && !u6.noModule && ce._evalUrl(u6.src, { nonce: u6.nonce || u6.getAttribute("nonce") }, l11) : m3(u6.textContent.replace(Me, ""), u6, l11));
8564          }
8565          return n11;
8566        }
8567        function Be(e12, t12, n11) {
8568          for (var r8, i11 = t12 ? ce.filter(t12, e12) : e12, o12 = 0; null != (r8 = i11[o12]); o12++) n11 || 1 !== r8.nodeType || ce.cleanData(Se(r8)), r8.parentNode && (n11 && K(r8) && Ee(Se(r8, "script")), r8.parentNode.removeChild(r8));
8569          return e12;
8570        }
8571        ce.extend({ htmlPrefilter: function(e12) {
8572          return e12;
8573        }, clone: function(e12, t12, n11) {
8574          var r8, i11, o12, a9, s14, u6, l11, c6 = e12.cloneNode(true), f4 = K(e12);
8575          if (!(le.noCloneChecked || 1 !== e12.nodeType && 11 !== e12.nodeType || ce.isXMLDoc(e12))) for (a9 = Se(c6), r8 = 0, i11 = (o12 = Se(e12)).length; r8 < i11; r8++) s14 = o12[r8], u6 = a9[r8], void 0, "input" === (l11 = u6.nodeName.toLowerCase()) && we.test(s14.type) ? u6.checked = s14.checked : "input" !== l11 && "textarea" !== l11 || (u6.defaultValue = s14.defaultValue);
8576          if (t12) if (n11) for (o12 = o12 || Se(e12), a9 = a9 || Se(c6), r8 = 0, i11 = o12.length; r8 < i11; r8++) Fe(o12[r8], a9[r8]);
8577          else Fe(e12, c6);
8578          return 0 < (a9 = Se(c6, "script")).length && Ee(a9, !f4 && Se(e12, "script")), c6;
8579        }, cleanData: function(e12) {
8580          for (var t12, n11, r8, i11 = ce.event.special, o12 = 0; void 0 !== (n11 = e12[o12]); o12++) if ($4(n11)) {
8581            if (t12 = n11[_2.expando]) {
8582              if (t12.events) for (r8 in t12.events) i11[r8] ? ce.event.remove(n11, r8) : ce.removeEvent(n11, r8, t12.handle);
8583              n11[_2.expando] = void 0;
8584            }
8585            n11[z2.expando] && (n11[z2.expando] = void 0);
8586          }
8587        } }), ce.fn.extend({ detach: function(e12) {
8588          return Be(this, e12, true);
8589        }, remove: function(e12) {
8590          return Be(this, e12);
8591        }, text: function(e12) {
8592          return M3(this, function(e13) {
8593            return void 0 === e13 ? ce.text(this) : this.empty().each(function() {
8594              1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || (this.textContent = e13);
8595            });
8596          }, null, e12, arguments.length);
8597        }, append: function() {
8598          return $e(this, arguments, function(e12) {
8599            1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || Re(this, e12).appendChild(e12);
8600          });
8601        }, prepend: function() {
8602          return $e(this, arguments, function(e12) {
8603            if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
8604              var t12 = Re(this, e12);
8605              t12.insertBefore(e12, t12.firstChild);
8606            }
8607          });
8608        }, before: function() {
8609          return $e(this, arguments, function(e12) {
8610            this.parentNode && this.parentNode.insertBefore(e12, this);
8611          });
8612        }, after: function() {
8613          return $e(this, arguments, function(e12) {
8614            this.parentNode && this.parentNode.insertBefore(e12, this.nextSibling);
8615          });
8616        }, empty: function() {
8617          for (var e12, t12 = 0; null != (e12 = this[t12]); t12++) 1 === e12.nodeType && (ce.cleanData(Se(e12, false)), e12.textContent = "");
8618          return this;
8619        }, clone: function(e12, t12) {
8620          return e12 = null != e12 && e12, t12 = null == t12 ? e12 : t12, this.map(function() {
8621            return ce.clone(this, e12, t12);
8622          });
8623        }, html: function(e12) {
8624          return M3(this, function(e13) {
8625            var t12 = this[0] || {}, n11 = 0, r8 = this.length;
8626            if (void 0 === e13 && 1 === t12.nodeType) return t12.innerHTML;
8627            if ("string" == typeof e13 && !Oe.test(e13) && !ke[(Te.exec(e13) || ["", ""])[1].toLowerCase()]) {
8628              e13 = ce.htmlPrefilter(e13);
8629              try {
8630                for (; n11 < r8; n11++) 1 === (t12 = this[n11] || {}).nodeType && (ce.cleanData(Se(t12, false)), t12.innerHTML = e13);
8631                t12 = 0;
8632              } catch (e14) {
8633              }
8634            }
8635            t12 && this.empty().append(e13);
8636          }, null, e12, arguments.length);
8637        }, replaceWith: function() {
8638          var n11 = [];
8639          return $e(this, arguments, function(e12) {
8640            var t12 = this.parentNode;
8641            ce.inArray(this, n11) < 0 && (ce.cleanData(Se(this)), t12 && t12.replaceChild(e12, this));
8642          }, n11);
8643        } }), ce.each({ appendTo: "append", prependTo: "prepend", insertBefore: "before", insertAfter: "after", replaceAll: "replaceWith" }, function(e12, a9) {
8644          ce.fn[e12] = function(e13) {
8645            for (var t12, n11 = [], r8 = ce(e13), i11 = r8.length - 1, o12 = 0; o12 <= i11; o12++) t12 = o12 === i11 ? this : this.clone(true), ce(r8[o12])[a9](t12), s13.apply(n11, t12.get());
8646            return this.pushStack(n11);
8647          };
8648        });
8649        var _e = new RegExp("^(" + G + ")(?!px)[a-z%]+$", "i"), ze = /^--/, Xe = function(e12) {
8650          var t12 = e12.ownerDocument.defaultView;
8651          return t12 && t12.opener || (t12 = ie), t12.getComputedStyle(e12);
8652        }, Ue = function(e12, t12, n11) {
8653          var r8, i11, o12 = {};
8654          for (i11 in t12) o12[i11] = e12.style[i11], e12.style[i11] = t12[i11];
8655          for (i11 in r8 = n11.call(e12), t12) e12.style[i11] = o12[i11];
8656          return r8;
8657        }, Ve = new RegExp(Q.join("|"), "i");
8658        function Ge(e12, t12, n11) {
8659          var r8, i11, o12, a9, s14 = ze.test(t12), u6 = e12.style;
8660          return (n11 = n11 || Xe(e12)) && (a9 = n11.getPropertyValue(t12) || n11[t12], s14 && a9 && (a9 = a9.replace(ve, "$1") || void 0), "" !== a9 || K(e12) || (a9 = ce.style(e12, t12)), !le.pixelBoxStyles() && _e.test(a9) && Ve.test(t12) && (r8 = u6.width, i11 = u6.minWidth, o12 = u6.maxWidth, u6.minWidth = u6.maxWidth = u6.width = a9, a9 = n11.width, u6.width = r8, u6.minWidth = i11, u6.maxWidth = o12)), void 0 !== a9 ? a9 + "" : a9;
8661        }
8662        function Ye(e12, t12) {
8663          return { get: function() {
8664            if (!e12()) return (this.get = t12).apply(this, arguments);
8665            delete this.get;
8666          } };
8667        }
8668        !(function() {
8669          function e12() {
8670            if (l11) {
8671              u6.style.cssText = "position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0", l11.style.cssText = "position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%", J.appendChild(u6).appendChild(l11);
8672              var e13 = ie.getComputedStyle(l11);
8673              n11 = "1%" !== e13.top, s14 = 12 === t12(e13.marginLeft), l11.style.right = "60%", o12 = 36 === t12(e13.right), r8 = 36 === t12(e13.width), l11.style.position = "absolute", i11 = 12 === t12(l11.offsetWidth / 3), J.removeChild(u6), l11 = null;
8674            }
8675          }
8676          function t12(e13) {
8677            return Math.round(parseFloat(e13));
8678          }
8679          var n11, r8, i11, o12, a9, s14, u6 = C.createElement("div"), l11 = C.createElement("div");
8680          l11.style && (l11.style.backgroundClip = "content-box", l11.cloneNode(true).style.backgroundClip = "", le.clearCloneStyle = "content-box" === l11.style.backgroundClip, ce.extend(le, { boxSizingReliable: function() {
8681            return e12(), r8;
8682          }, pixelBoxStyles: function() {
8683            return e12(), o12;
8684          }, pixelPosition: function() {
8685            return e12(), n11;
8686          }, reliableMarginLeft: function() {
8687            return e12(), s14;
8688          }, scrollboxSize: function() {
8689            return e12(), i11;
8690          }, reliableTrDimensions: function() {
8691            var e13, t13, n12, r9;
8692            return null == a9 && (e13 = C.createElement("table"), t13 = C.createElement("tr"), n12 = C.createElement("div"), e13.style.cssText = "position:absolute;left:-11111px;border-collapse:separate", t13.style.cssText = "box-sizing:content-box;border:1px solid", t13.style.height = "1px", n12.style.height = "9px", n12.style.display = "block", J.appendChild(e13).appendChild(t13).appendChild(n12), r9 = ie.getComputedStyle(t13), a9 = parseInt(r9.height, 10) + parseInt(r9.borderTopWidth, 10) + parseInt(r9.borderBottomWidth, 10) === t13.offsetHeight, J.removeChild(e13)), a9;
8693          } }));
8694        })();
8695        var Qe = ["Webkit", "Moz", "ms"], Je = C.createElement("div").style, Ke = {};
8696        function Ze(e12) {
8697          var t12 = ce.cssProps[e12] || Ke[e12];
8698          return t12 || (e12 in Je ? e12 : Ke[e12] = (function(e13) {
8699            var t13 = e13[0].toUpperCase() + e13.slice(1), n11 = Qe.length;
8700            while (n11--) if ((e13 = Qe[n11] + t13) in Je) return e13;
8701          })(e12) || e12);
8702        }
8703        var et = /^(none|table(?!-c[ea]).+)/, tt = { position: "absolute", visibility: "hidden", display: "block" }, nt = { letterSpacing: "0", fontWeight: "400" };
8704        function rt(e12, t12, n11) {
8705          var r8 = Y.exec(t12);
8706          return r8 ? Math.max(0, r8[2] - (n11 || 0)) + (r8[3] || "px") : t12;
8707        }
8708        function it(e12, t12, n11, r8, i11, o12) {
8709          var a9 = "width" === t12 ? 1 : 0, s14 = 0, u6 = 0, l11 = 0;
8710          if (n11 === (r8 ? "border" : "content")) return 0;
8711          for (; a9 < 4; a9 += 2) "margin" === n11 && (l11 += ce.css(e12, n11 + Q[a9], true, i11)), r8 ? ("content" === n11 && (u6 -= ce.css(e12, "padding" + Q[a9], true, i11)), "margin" !== n11 && (u6 -= ce.css(e12, "border" + Q[a9] + "Width", true, i11))) : (u6 += ce.css(e12, "padding" + Q[a9], true, i11), "padding" !== n11 ? u6 += ce.css(e12, "border" + Q[a9] + "Width", true, i11) : s14 += ce.css(e12, "border" + Q[a9] + "Width", true, i11));
8712          return !r8 && 0 <= o12 && (u6 += Math.max(0, Math.ceil(e12["offset" + t12[0].toUpperCase() + t12.slice(1)] - o12 - u6 - s14 - 0.5)) || 0), u6 + l11;
8713        }
8714        function ot(e12, t12, n11) {
8715          var r8 = Xe(e12), i11 = (!le.boxSizingReliable() || n11) && "border-box" === ce.css(e12, "boxSizing", false, r8), o12 = i11, a9 = Ge(e12, t12, r8), s14 = "offset" + t12[0].toUpperCase() + t12.slice(1);
8716          if (_e.test(a9)) {
8717            if (!n11) return a9;
8718            a9 = "auto";
8719          }
8720          return (!le.boxSizingReliable() && i11 || !le.reliableTrDimensions() && fe(e12, "tr") || "auto" === a9 || !parseFloat(a9) && "inline" === ce.css(e12, "display", false, r8)) && e12.getClientRects().length && (i11 = "border-box" === ce.css(e12, "boxSizing", false, r8), (o12 = s14 in e12) && (a9 = e12[s14])), (a9 = parseFloat(a9) || 0) + it(e12, t12, n11 || (i11 ? "border" : "content"), o12, r8, a9) + "px";
8721        }
8722        function at(e12, t12, n11, r8, i11) {
8723          return new at.prototype.init(e12, t12, n11, r8, i11);
8724        }
8725        ce.extend({ cssHooks: { opacity: { get: function(e12, t12) {
8726          if (t12) {
8727            var n11 = Ge(e12, "opacity");
8728            return "" === n11 ? "1" : n11;
8729          }
8730        } } }, cssNumber: { animationIterationCount: true, aspectRatio: true, borderImageSlice: true, columnCount: true, flexGrow: true, flexShrink: true, fontWeight: true, gridArea: true, gridColumn: true, gridColumnEnd: true, gridColumnStart: true, gridRow: true, gridRowEnd: true, gridRowStart: true, lineHeight: true, opacity: true, order: true, orphans: true, scale: true, widows: true, zIndex: true, zoom: true, fillOpacity: true, floodOpacity: true, stopOpacity: true, strokeMiterlimit: true, strokeOpacity: true }, cssProps: {}, style: function(e12, t12, n11, r8) {
8731          if (e12 && 3 !== e12.nodeType && 8 !== e12.nodeType && e12.style) {
8732            var i11, o12, a9, s14 = F(t12), u6 = ze.test(t12), l11 = e12.style;
8733            if (u6 || (t12 = Ze(s14)), a9 = ce.cssHooks[t12] || ce.cssHooks[s14], void 0 === n11) return a9 && "get" in a9 && void 0 !== (i11 = a9.get(e12, false, r8)) ? i11 : l11[t12];
8734            "string" === (o12 = typeof n11) && (i11 = Y.exec(n11)) && i11[1] && (n11 = te(e12, t12, i11), o12 = "number"), null != n11 && n11 == n11 && ("number" !== o12 || u6 || (n11 += i11 && i11[3] || (ce.cssNumber[s14] ? "" : "px")), le.clearCloneStyle || "" !== n11 || 0 !== t12.indexOf("background") || (l11[t12] = "inherit"), a9 && "set" in a9 && void 0 === (n11 = a9.set(e12, n11, r8)) || (u6 ? l11.setProperty(t12, n11) : l11[t12] = n11));
8735          }
8736        }, css: function(e12, t12, n11, r8) {
8737          var i11, o12, a9, s14 = F(t12);
8738          return ze.test(t12) || (t12 = Ze(s14)), (a9 = ce.cssHooks[t12] || ce.cssHooks[s14]) && "get" in a9 && (i11 = a9.get(e12, true, n11)), void 0 === i11 && (i11 = Ge(e12, t12, r8)), "normal" === i11 && t12 in nt && (i11 = nt[t12]), "" === n11 || n11 ? (o12 = parseFloat(i11), true === n11 || isFinite(o12) ? o12 || 0 : i11) : i11;
8739        } }), ce.each(["height", "width"], function(e12, u6) {
8740          ce.cssHooks[u6] = { get: function(e13, t12, n11) {
8741            if (t12) return !et.test(ce.css(e13, "display")) || e13.getClientRects().length && e13.getBoundingClientRect().width ? ot(e13, u6, n11) : Ue(e13, tt, function() {
8742              return ot(e13, u6, n11);
8743            });
8744          }, set: function(e13, t12, n11) {
8745            var r8, i11 = Xe(e13), o12 = !le.scrollboxSize() && "absolute" === i11.position, a9 = (o12 || n11) && "border-box" === ce.css(e13, "boxSizing", false, i11), s14 = n11 ? it(e13, u6, n11, a9, i11) : 0;
8746            return a9 && o12 && (s14 -= Math.ceil(e13["offset" + u6[0].toUpperCase() + u6.slice(1)] - parseFloat(i11[u6]) - it(e13, u6, "border", false, i11) - 0.5)), s14 && (r8 = Y.exec(t12)) && "px" !== (r8[3] || "px") && (e13.style[u6] = t12, t12 = ce.css(e13, u6)), rt(0, t12, s14);
8747          } };
8748        }), ce.cssHooks.marginLeft = Ye(le.reliableMarginLeft, function(e12, t12) {
8749          if (t12) return (parseFloat(Ge(e12, "marginLeft")) || e12.getBoundingClientRect().left - Ue(e12, { marginLeft: 0 }, function() {
8750            return e12.getBoundingClientRect().left;
8751          })) + "px";
8752        }), ce.each({ margin: "", padding: "", border: "Width" }, function(i11, o12) {
8753          ce.cssHooks[i11 + o12] = { expand: function(e12) {
8754            for (var t12 = 0, n11 = {}, r8 = "string" == typeof e12 ? e12.split(" ") : [e12]; t12 < 4; t12++) n11[i11 + Q[t12] + o12] = r8[t12] || r8[t12 - 2] || r8[0];
8755            return n11;
8756          } }, "margin" !== i11 && (ce.cssHooks[i11 + o12].set = rt);
8757        }), ce.fn.extend({ css: function(e12, t12) {
8758          return M3(this, function(e13, t13, n11) {
8759            var r8, i11, o12 = {}, a9 = 0;
8760            if (Array.isArray(t13)) {
8761              for (r8 = Xe(e13), i11 = t13.length; a9 < i11; a9++) o12[t13[a9]] = ce.css(e13, t13[a9], false, r8);
8762              return o12;
8763            }
8764            return void 0 !== n11 ? ce.style(e13, t13, n11) : ce.css(e13, t13);
8765          }, e12, t12, 1 < arguments.length);
8766        } }), ((ce.Tween = at).prototype = { constructor: at, init: function(e12, t12, n11, r8, i11, o12) {
8767          this.elem = e12, this.prop = n11, this.easing = i11 || ce.easing._default, this.options = t12, this.start = this.now = this.cur(), this.end = r8, this.unit = o12 || (ce.cssNumber[n11] ? "" : "px");
8768        }, cur: function() {
8769          var e12 = at.propHooks[this.prop];
8770          return e12 && e12.get ? e12.get(this) : at.propHooks._default.get(this);
8771        }, run: function(e12) {
8772          var t12, n11 = at.propHooks[this.prop];
8773          return this.options.duration ? this.pos = t12 = ce.easing[this.easing](e12, this.options.duration * e12, 0, 1, this.options.duration) : this.pos = t12 = e12, this.now = (this.end - this.start) * t12 + this.start, this.options.step && this.options.step.call(this.elem, this.now, this), n11 && n11.set ? n11.set(this) : at.propHooks._default.set(this), this;
8774        } }).init.prototype = at.prototype, (at.propHooks = { _default: { get: function(e12) {
8775          var t12;
8776          return 1 !== e12.elem.nodeType || null != e12.elem[e12.prop] && null == e12.elem.style[e12.prop] ? e12.elem[e12.prop] : (t12 = ce.css(e12.elem, e12.prop, "")) && "auto" !== t12 ? t12 : 0;
8777        }, set: function(e12) {
8778          ce.fx.step[e12.prop] ? ce.fx.step[e12.prop](e12) : 1 !== e12.elem.nodeType || !ce.cssHooks[e12.prop] && null == e12.elem.style[Ze(e12.prop)] ? e12.elem[e12.prop] = e12.now : ce.style(e12.elem, e12.prop, e12.now + e12.unit);
8779        } } }).scrollTop = at.propHooks.scrollLeft = { set: function(e12) {
8780          e12.elem.nodeType && e12.elem.parentNode && (e12.elem[e12.prop] = e12.now);
8781        } }, ce.easing = { linear: function(e12) {
8782          return e12;
8783        }, swing: function(e12) {
8784          return 0.5 - Math.cos(e12 * Math.PI) / 2;
8785        }, _default: "swing" }, ce.fx = at.prototype.init, ce.fx.step = {};
8786        var st, ut, lt, ct, ft = /^(?:toggle|show|hide)$/, pt = /queueHooks$/;
8787        function dt() {
8788          ut && (false === C.hidden && ie.requestAnimationFrame ? ie.requestAnimationFrame(dt) : ie.setTimeout(dt, ce.fx.interval), ce.fx.tick());
8789        }
8790        function ht() {
8791          return ie.setTimeout(function() {
8792            st = void 0;
8793          }), st = Date.now();
8794        }
8795        function gt(e12, t12) {
8796          var n11, r8 = 0, i11 = { height: e12 };
8797          for (t12 = t12 ? 1 : 0; r8 < 4; r8 += 2 - t12) i11["margin" + (n11 = Q[r8])] = i11["padding" + n11] = e12;
8798          return t12 && (i11.opacity = i11.width = e12), i11;
8799        }
8800        function vt(e12, t12, n11) {
8801          for (var r8, i11 = (yt.tweeners[t12] || []).concat(yt.tweeners["*"]), o12 = 0, a9 = i11.length; o12 < a9; o12++) if (r8 = i11[o12].call(n11, t12, e12)) return r8;
8802        }
8803        function yt(o12, e12, t12) {
8804          var n11, a9, r8 = 0, i11 = yt.prefilters.length, s14 = ce.Deferred().always(function() {
8805            delete u6.elem;
8806          }), u6 = function() {
8807            if (a9) return false;
8808            for (var e13 = st || ht(), t13 = Math.max(0, l11.startTime + l11.duration - e13), n12 = 1 - (t13 / l11.duration || 0), r9 = 0, i12 = l11.tweens.length; r9 < i12; r9++) l11.tweens[r9].run(n12);
8809            return s14.notifyWith(o12, [l11, n12, t13]), n12 < 1 && i12 ? t13 : (i12 || s14.notifyWith(o12, [l11, 1, 0]), s14.resolveWith(o12, [l11]), false);
8810          }, l11 = s14.promise({ elem: o12, props: ce.extend({}, e12), opts: ce.extend(true, { specialEasing: {}, easing: ce.easing._default }, t12), originalProperties: e12, originalOptions: t12, startTime: st || ht(), duration: t12.duration, tweens: [], createTween: function(e13, t13) {
8811            var n12 = ce.Tween(o12, l11.opts, e13, t13, l11.opts.specialEasing[e13] || l11.opts.easing);
8812            return l11.tweens.push(n12), n12;
8813          }, stop: function(e13) {
8814            var t13 = 0, n12 = e13 ? l11.tweens.length : 0;
8815            if (a9) return this;
8816            for (a9 = true; t13 < n12; t13++) l11.tweens[t13].run(1);
8817            return e13 ? (s14.notifyWith(o12, [l11, 1, 0]), s14.resolveWith(o12, [l11, e13])) : s14.rejectWith(o12, [l11, e13]), this;
8818          } }), c6 = l11.props;
8819          for (!(function(e13, t13) {
8820            var n12, r9, i12, o13, a10;
8821            for (n12 in e13) if (i12 = t13[r9 = F(n12)], o13 = e13[n12], Array.isArray(o13) && (i12 = o13[1], o13 = e13[n12] = o13[0]), n12 !== r9 && (e13[r9] = o13, delete e13[n12]), (a10 = ce.cssHooks[r9]) && "expand" in a10) for (n12 in o13 = a10.expand(o13), delete e13[r9], o13) n12 in e13 || (e13[n12] = o13[n12], t13[n12] = i12);
8822            else t13[r9] = i12;
8823          })(c6, l11.opts.specialEasing); r8 < i11; r8++) if (n11 = yt.prefilters[r8].call(l11, o12, c6, l11.opts)) return v3(n11.stop) && (ce._queueHooks(l11.elem, l11.opts.queue).stop = n11.stop.bind(n11)), n11;
8824          return ce.map(c6, vt, l11), v3(l11.opts.start) && l11.opts.start.call(o12, l11), l11.progress(l11.opts.progress).done(l11.opts.done, l11.opts.complete).fail(l11.opts.fail).always(l11.opts.always), ce.fx.timer(ce.extend(u6, { elem: o12, anim: l11, queue: l11.opts.queue })), l11;
8825        }
8826        ce.Animation = ce.extend(yt, { tweeners: { "*": [function(e12, t12) {
8827          var n11 = this.createTween(e12, t12);
8828          return te(n11.elem, e12, Y.exec(t12), n11), n11;
8829        }] }, tweener: function(e12, t12) {
8830          v3(e12) ? (t12 = e12, e12 = ["*"]) : e12 = e12.match(D2);
8831          for (var n11, r8 = 0, i11 = e12.length; r8 < i11; r8++) n11 = e12[r8], yt.tweeners[n11] = yt.tweeners[n11] || [], yt.tweeners[n11].unshift(t12);
8832        }, prefilters: [function(e12, t12, n11) {
8833          var r8, i11, o12, a9, s14, u6, l11, c6, f4 = "width" in t12 || "height" in t12, p3 = this, d4 = {}, h5 = e12.style, g3 = e12.nodeType && ee(e12), v4 = _2.get(e12, "fxshow");
8834          for (r8 in n11.queue || (null == (a9 = ce._queueHooks(e12, "fx")).unqueued && (a9.unqueued = 0, s14 = a9.empty.fire, a9.empty.fire = function() {
8835            a9.unqueued || s14();
8836          }), a9.unqueued++, p3.always(function() {
8837            p3.always(function() {
8838              a9.unqueued--, ce.queue(e12, "fx").length || a9.empty.fire();
8839            });
8840          })), t12) if (i11 = t12[r8], ft.test(i11)) {
8841            if (delete t12[r8], o12 = o12 || "toggle" === i11, i11 === (g3 ? "hide" : "show")) {
8842              if ("show" !== i11 || !v4 || void 0 === v4[r8]) continue;
8843              g3 = true;
8844            }
8845            d4[r8] = v4 && v4[r8] || ce.style(e12, r8);
8846          }
8847          if ((u6 = !ce.isEmptyObject(t12)) || !ce.isEmptyObject(d4)) for (r8 in f4 && 1 === e12.nodeType && (n11.overflow = [h5.overflow, h5.overflowX, h5.overflowY], null == (l11 = v4 && v4.display) && (l11 = _2.get(e12, "display")), "none" === (c6 = ce.css(e12, "display")) && (l11 ? c6 = l11 : (re([e12], true), l11 = e12.style.display || l11, c6 = ce.css(e12, "display"), re([e12]))), ("inline" === c6 || "inline-block" === c6 && null != l11) && "none" === ce.css(e12, "float") && (u6 || (p3.done(function() {
8848            h5.display = l11;
8849          }), null == l11 && (c6 = h5.display, l11 = "none" === c6 ? "" : c6)), h5.display = "inline-block")), n11.overflow && (h5.overflow = "hidden", p3.always(function() {
8850            h5.overflow = n11.overflow[0], h5.overflowX = n11.overflow[1], h5.overflowY = n11.overflow[2];
8851          })), u6 = false, d4) u6 || (v4 ? "hidden" in v4 && (g3 = v4.hidden) : v4 = _2.access(e12, "fxshow", { display: l11 }), o12 && (v4.hidden = !g3), g3 && re([e12], true), p3.done(function() {
8852            for (r8 in g3 || re([e12]), _2.remove(e12, "fxshow"), d4) ce.style(e12, r8, d4[r8]);
8853          })), u6 = vt(g3 ? v4[r8] : 0, r8, p3), r8 in v4 || (v4[r8] = u6.start, g3 && (u6.end = u6.start, u6.start = 0));
8854        }], prefilter: function(e12, t12) {
8855          t12 ? yt.prefilters.unshift(e12) : yt.prefilters.push(e12);
8856        } }), ce.speed = function(e12, t12, n11) {
8857          var r8 = e12 && "object" == typeof e12 ? ce.extend({}, e12) : { complete: n11 || !n11 && t12 || v3(e12) && e12, duration: e12, easing: n11 && t12 || t12 && !v3(t12) && t12 };
8858          return ce.fx.off ? r8.duration = 0 : "number" != typeof r8.duration && (r8.duration in ce.fx.speeds ? r8.duration = ce.fx.speeds[r8.duration] : r8.duration = ce.fx.speeds._default), null != r8.queue && true !== r8.queue || (r8.queue = "fx"), r8.old = r8.complete, r8.complete = function() {
8859            v3(r8.old) && r8.old.call(this), r8.queue && ce.dequeue(this, r8.queue);
8860          }, r8;
8861        }, ce.fn.extend({ fadeTo: function(e12, t12, n11, r8) {
8862          return this.filter(ee).css("opacity", 0).show().end().animate({ opacity: t12 }, e12, n11, r8);
8863        }, animate: function(t12, e12, n11, r8) {
8864          var i11 = ce.isEmptyObject(t12), o12 = ce.speed(e12, n11, r8), a9 = function() {
8865            var e13 = yt(this, ce.extend({}, t12), o12);
8866            (i11 || _2.get(this, "finish")) && e13.stop(true);
8867          };
8868          return a9.finish = a9, i11 || false === o12.queue ? this.each(a9) : this.queue(o12.queue, a9);
8869        }, stop: function(i11, e12, o12) {
8870          var a9 = function(e13) {
8871            var t12 = e13.stop;
8872            delete e13.stop, t12(o12);
8873          };
8874          return "string" != typeof i11 && (o12 = e12, e12 = i11, i11 = void 0), e12 && this.queue(i11 || "fx", []), this.each(function() {
8875            var e13 = true, t12 = null != i11 && i11 + "queueHooks", n11 = ce.timers, r8 = _2.get(this);
8876            if (t12) r8[t12] && r8[t12].stop && a9(r8[t12]);
8877            else for (t12 in r8) r8[t12] && r8[t12].stop && pt.test(t12) && a9(r8[t12]);
8878            for (t12 = n11.length; t12--; ) n11[t12].elem !== this || null != i11 && n11[t12].queue !== i11 || (n11[t12].anim.stop(o12), e13 = false, n11.splice(t12, 1));
8879            !e13 && o12 || ce.dequeue(this, i11);
8880          });
8881        }, finish: function(a9) {
8882          return false !== a9 && (a9 = a9 || "fx"), this.each(function() {
8883            var e12, t12 = _2.get(this), n11 = t12[a9 + "queue"], r8 = t12[a9 + "queueHooks"], i11 = ce.timers, o12 = n11 ? n11.length : 0;
8884            for (t12.finish = true, ce.queue(this, a9, []), r8 && r8.stop && r8.stop.call(this, true), e12 = i11.length; e12--; ) i11[e12].elem === this && i11[e12].queue === a9 && (i11[e12].anim.stop(true), i11.splice(e12, 1));
8885            for (e12 = 0; e12 < o12; e12++) n11[e12] && n11[e12].finish && n11[e12].finish.call(this);
8886            delete t12.finish;
8887          });
8888        } }), ce.each(["toggle", "show", "hide"], function(e12, r8) {
8889          var i11 = ce.fn[r8];
8890          ce.fn[r8] = function(e13, t12, n11) {
8891            return null == e13 || "boolean" == typeof e13 ? i11.apply(this, arguments) : this.animate(gt(r8, true), e13, t12, n11);
8892          };
8893        }), ce.each({ slideDown: gt("show"), slideUp: gt("hide"), slideToggle: gt("toggle"), fadeIn: { opacity: "show" }, fadeOut: { opacity: "hide" }, fadeToggle: { opacity: "toggle" } }, function(e12, r8) {
8894          ce.fn[e12] = function(e13, t12, n11) {
8895            return this.animate(r8, e13, t12, n11);
8896          };
8897        }), ce.timers = [], ce.fx.tick = function() {
8898          var e12, t12 = 0, n11 = ce.timers;
8899          for (st = Date.now(); t12 < n11.length; t12++) (e12 = n11[t12])() || n11[t12] !== e12 || n11.splice(t12--, 1);
8900          n11.length || ce.fx.stop(), st = void 0;
8901        }, ce.fx.timer = function(e12) {
8902          ce.timers.push(e12), ce.fx.start();
8903        }, ce.fx.interval = 13, ce.fx.start = function() {
8904          ut || (ut = true, dt());
8905        }, ce.fx.stop = function() {
8906          ut = null;
8907        }, ce.fx.speeds = { slow: 600, fast: 200, _default: 400 }, ce.fn.delay = function(r8, e12) {
8908          return r8 = ce.fx && ce.fx.speeds[r8] || r8, e12 = e12 || "fx", this.queue(e12, function(e13, t12) {
8909            var n11 = ie.setTimeout(e13, r8);
8910            t12.stop = function() {
8911              ie.clearTimeout(n11);
8912            };
8913          });
8914        }, lt = C.createElement("input"), ct = C.createElement("select").appendChild(C.createElement("option")), lt.type = "checkbox", le.checkOn = "" !== lt.value, le.optSelected = ct.selected, (lt = C.createElement("input")).value = "t", lt.type = "radio", le.radioValue = "t" === lt.value;
8915        var mt, xt = ce.expr.attrHandle;
8916        ce.fn.extend({ attr: function(e12, t12) {
8917          return M3(this, ce.attr, e12, t12, 1 < arguments.length);
8918        }, removeAttr: function(e12) {
8919          return this.each(function() {
8920            ce.removeAttr(this, e12);
8921          });
8922        } }), ce.extend({ attr: function(e12, t12, n11) {
8923          var r8, i11, o12 = e12.nodeType;
8924          if (3 !== o12 && 8 !== o12 && 2 !== o12) return "undefined" == typeof e12.getAttribute ? ce.prop(e12, t12, n11) : (1 === o12 && ce.isXMLDoc(e12) || (i11 = ce.attrHooks[t12.toLowerCase()] || (ce.expr.match.bool.test(t12) ? mt : void 0)), void 0 !== n11 ? null === n11 ? void ce.removeAttr(e12, t12) : i11 && "set" in i11 && void 0 !== (r8 = i11.set(e12, n11, t12)) ? r8 : (e12.setAttribute(t12, n11 + ""), n11) : i11 && "get" in i11 && null !== (r8 = i11.get(e12, t12)) ? r8 : null == (r8 = ce.find.attr(e12, t12)) ? void 0 : r8);
8925        }, attrHooks: { type: { set: function(e12, t12) {
8926          if (!le.radioValue && "radio" === t12 && fe(e12, "input")) {
8927            var n11 = e12.value;
8928            return e12.setAttribute("type", t12), n11 && (e12.value = n11), t12;
8929          }
8930        } } }, removeAttr: function(e12, t12) {
8931          var n11, r8 = 0, i11 = t12 && t12.match(D2);
8932          if (i11 && 1 === e12.nodeType) while (n11 = i11[r8++]) e12.removeAttribute(n11);
8933        } }), mt = { set: function(e12, t12, n11) {
8934          return false === t12 ? ce.removeAttr(e12, n11) : e12.setAttribute(n11, n11), n11;
8935        } }, ce.each(ce.expr.match.bool.source.match(/\w+/g), function(e12, t12) {
8936          var a9 = xt[t12] || ce.find.attr;
8937          xt[t12] = function(e13, t13, n11) {
8938            var r8, i11, o12 = t13.toLowerCase();
8939            return n11 || (i11 = xt[o12], xt[o12] = r8, r8 = null != a9(e13, t13, n11) ? o12 : null, xt[o12] = i11), r8;
8940          };
8941        });
8942        var bt = /^(?:input|select|textarea|button)$/i, wt = /^(?:a|area)$/i;
8943        function Tt(e12) {
8944          return (e12.match(D2) || []).join(" ");
8945        }
8946        function Ct(e12) {
8947          return e12.getAttribute && e12.getAttribute("class") || "";
8948        }
8949        function kt(e12) {
8950          return Array.isArray(e12) ? e12 : "string" == typeof e12 && e12.match(D2) || [];
8951        }
8952        ce.fn.extend({ prop: function(e12, t12) {
8953          return M3(this, ce.prop, e12, t12, 1 < arguments.length);
8954        }, removeProp: function(e12) {
8955          return this.each(function() {
8956            delete this[ce.propFix[e12] || e12];
8957          });
8958        } }), ce.extend({ prop: function(e12, t12, n11) {
8959          var r8, i11, o12 = e12.nodeType;
8960          if (3 !== o12 && 8 !== o12 && 2 !== o12) return 1 === o12 && ce.isXMLDoc(e12) || (t12 = ce.propFix[t12] || t12, i11 = ce.propHooks[t12]), void 0 !== n11 ? i11 && "set" in i11 && void 0 !== (r8 = i11.set(e12, n11, t12)) ? r8 : e12[t12] = n11 : i11 && "get" in i11 && null !== (r8 = i11.get(e12, t12)) ? r8 : e12[t12];
8961        }, propHooks: { tabIndex: { get: function(e12) {
8962          var t12 = ce.find.attr(e12, "tabindex");
8963          return t12 ? parseInt(t12, 10) : bt.test(e12.nodeName) || wt.test(e12.nodeName) && e12.href ? 0 : -1;
8964        } } }, propFix: { "for": "htmlFor", "class": "className" } }), le.optSelected || (ce.propHooks.selected = { get: function(e12) {
8965          var t12 = e12.parentNode;
8966          return t12 && t12.parentNode && t12.parentNode.selectedIndex, null;
8967        }, set: function(e12) {
8968          var t12 = e12.parentNode;
8969          t12 && (t12.selectedIndex, t12.parentNode && t12.parentNode.selectedIndex);
8970        } }), ce.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function() {
8971          ce.propFix[this.toLowerCase()] = this;
8972        }), ce.fn.extend({ addClass: function(t12) {
8973          var e12, n11, r8, i11, o12, a9;
8974          return v3(t12) ? this.each(function(e13) {
8975            ce(this).addClass(t12.call(this, e13, Ct(this)));
8976          }) : (e12 = kt(t12)).length ? this.each(function() {
8977            if (r8 = Ct(this), n11 = 1 === this.nodeType && " " + Tt(r8) + " ") {
8978              for (o12 = 0; o12 < e12.length; o12++) i11 = e12[o12], n11.indexOf(" " + i11 + " ") < 0 && (n11 += i11 + " ");
8979              a9 = Tt(n11), r8 !== a9 && this.setAttribute("class", a9);
8980            }
8981          }) : this;
8982        }, removeClass: function(t12) {
8983          var e12, n11, r8, i11, o12, a9;
8984          return v3(t12) ? this.each(function(e13) {
8985            ce(this).removeClass(t12.call(this, e13, Ct(this)));
8986          }) : arguments.length ? (e12 = kt(t12)).length ? this.each(function() {
8987            if (r8 = Ct(this), n11 = 1 === this.nodeType && " " + Tt(r8) + " ") {
8988              for (o12 = 0; o12 < e12.length; o12++) {
8989                i11 = e12[o12];
8990                while (-1 < n11.indexOf(" " + i11 + " ")) n11 = n11.replace(" " + i11 + " ", " ");
8991              }
8992              a9 = Tt(n11), r8 !== a9 && this.setAttribute("class", a9);
8993            }
8994          }) : this : this.attr("class", "");
8995        }, toggleClass: function(t12, n11) {
8996          var e12, r8, i11, o12, a9 = typeof t12, s14 = "string" === a9 || Array.isArray(t12);
8997          return v3(t12) ? this.each(function(e13) {
8998            ce(this).toggleClass(t12.call(this, e13, Ct(this), n11), n11);
8999          }) : "boolean" == typeof n11 && s14 ? n11 ? this.addClass(t12) : this.removeClass(t12) : (e12 = kt(t12), this.each(function() {
9000            if (s14) for (o12 = ce(this), i11 = 0; i11 < e12.length; i11++) r8 = e12[i11], o12.hasClass(r8) ? o12.removeClass(r8) : o12.addClass(r8);
9001            else void 0 !== t12 && "boolean" !== a9 || ((r8 = Ct(this)) && _2.set(this, "__className__", r8), this.setAttribute && this.setAttribute("class", r8 || false === t12 ? "" : _2.get(this, "__className__") || ""));
9002          }));
9003        }, hasClass: function(e12) {
9004          var t12, n11, r8 = 0;
9005          t12 = " " + e12 + " ";
9006          while (n11 = this[r8++]) if (1 === n11.nodeType && -1 < (" " + Tt(Ct(n11)) + " ").indexOf(t12)) return true;
9007          return false;
9008        } });
9009        var St = /\r/g;
9010        ce.fn.extend({ val: function(n11) {
9011          var r8, e12, i11, t12 = this[0];
9012          return arguments.length ? (i11 = v3(n11), this.each(function(e13) {
9013            var t13;
9014            1 === this.nodeType && (null == (t13 = i11 ? n11.call(this, e13, ce(this).val()) : n11) ? t13 = "" : "number" == typeof t13 ? t13 += "" : Array.isArray(t13) && (t13 = ce.map(t13, function(e14) {
9015              return null == e14 ? "" : e14 + "";
9016            })), (r8 = ce.valHooks[this.type] || ce.valHooks[this.nodeName.toLowerCase()]) && "set" in r8 && void 0 !== r8.set(this, t13, "value") || (this.value = t13));
9017          })) : t12 ? (r8 = ce.valHooks[t12.type] || ce.valHooks[t12.nodeName.toLowerCase()]) && "get" in r8 && void 0 !== (e12 = r8.get(t12, "value")) ? e12 : "string" == typeof (e12 = t12.value) ? e12.replace(St, "") : null == e12 ? "" : e12 : void 0;
9018        } }), ce.extend({ valHooks: { option: { get: function(e12) {
9019          var t12 = ce.find.attr(e12, "value");
9020          return null != t12 ? t12 : Tt(ce.text(e12));
9021        } }, select: { get: function(e12) {
9022          var t12, n11, r8, i11 = e12.options, o12 = e12.selectedIndex, a9 = "select-one" === e12.type, s14 = a9 ? null : [], u6 = a9 ? o12 + 1 : i11.length;
9023          for (r8 = o12 < 0 ? u6 : a9 ? o12 : 0; r8 < u6; r8++) if (((n11 = i11[r8]).selected || r8 === o12) && !n11.disabled && (!n11.parentNode.disabled || !fe(n11.parentNode, "optgroup"))) {
9024            if (t12 = ce(n11).val(), a9) return t12;
9025            s14.push(t12);
9026          }
9027          return s14;
9028        }, set: function(e12, t12) {
9029          var n11, r8, i11 = e12.options, o12 = ce.makeArray(t12), a9 = i11.length;
9030          while (a9--) ((r8 = i11[a9]).selected = -1 < ce.inArray(ce.valHooks.option.get(r8), o12)) && (n11 = true);
9031          return n11 || (e12.selectedIndex = -1), o12;
9032        } } } }), ce.each(["radio", "checkbox"], function() {
9033          ce.valHooks[this] = { set: function(e12, t12) {
9034            if (Array.isArray(t12)) return e12.checked = -1 < ce.inArray(ce(e12).val(), t12);
9035          } }, le.checkOn || (ce.valHooks[this].get = function(e12) {
9036            return null === e12.getAttribute("value") ? "on" : e12.value;
9037          });
9038        });
9039        var Et = ie.location, jt = { guid: Date.now() }, At = /\?/;
9040        ce.parseXML = function(e12) {
9041          var t12, n11;
9042          if (!e12 || "string" != typeof e12) return null;
9043          try {
9044            t12 = new ie.DOMParser().parseFromString(e12, "text/xml");
9045          } catch (e13) {
9046          }
9047          return n11 = t12 && t12.getElementsByTagName("parsererror")[0], t12 && !n11 || ce.error("Invalid XML: " + (n11 ? ce.map(n11.childNodes, function(e13) {
9048            return e13.textContent;
9049          }).join("\n") : e12)), t12;
9050        };
9051        var Dt = /^(?:focusinfocus|focusoutblur)$/, Nt = function(e12) {
9052          e12.stopPropagation();
9053        };
9054        ce.extend(ce.event, { trigger: function(e12, t12, n11, r8) {
9055          var i11, o12, a9, s14, u6, l11, c6, f4, p3 = [n11 || C], d4 = ue.call(e12, "type") ? e12.type : e12, h5 = ue.call(e12, "namespace") ? e12.namespace.split(".") : [];
9056          if (o12 = f4 = a9 = n11 = n11 || C, 3 !== n11.nodeType && 8 !== n11.nodeType && !Dt.test(d4 + ce.event.triggered) && (-1 < d4.indexOf(".") && (d4 = (h5 = d4.split(".")).shift(), h5.sort()), u6 = d4.indexOf(":") < 0 && "on" + d4, (e12 = e12[ce.expando] ? e12 : new ce.Event(d4, "object" == typeof e12 && e12)).isTrigger = r8 ? 2 : 3, e12.namespace = h5.join("."), e12.rnamespace = e12.namespace ? new RegExp("(^|\\.)" + h5.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, e12.result = void 0, e12.target || (e12.target = n11), t12 = null == t12 ? [e12] : ce.makeArray(t12, [e12]), c6 = ce.event.special[d4] || {}, r8 || !c6.trigger || false !== c6.trigger.apply(n11, t12))) {
9057            if (!r8 && !c6.noBubble && !y3(n11)) {
9058              for (s14 = c6.delegateType || d4, Dt.test(s14 + d4) || (o12 = o12.parentNode); o12; o12 = o12.parentNode) p3.push(o12), a9 = o12;
9059              a9 === (n11.ownerDocument || C) && p3.push(a9.defaultView || a9.parentWindow || ie);
9060            }
9061            i11 = 0;
9062            while ((o12 = p3[i11++]) && !e12.isPropagationStopped()) f4 = o12, e12.type = 1 < i11 ? s14 : c6.bindType || d4, (l11 = (_2.get(o12, "events") || /* @__PURE__ */ Object.create(null))[e12.type] && _2.get(o12, "handle")) && l11.apply(o12, t12), (l11 = u6 && o12[u6]) && l11.apply && $4(o12) && (e12.result = l11.apply(o12, t12), false === e12.result && e12.preventDefault());
9063            return e12.type = d4, r8 || e12.isDefaultPrevented() || c6._default && false !== c6._default.apply(p3.pop(), t12) || !$4(n11) || u6 && v3(n11[d4]) && !y3(n11) && ((a9 = n11[u6]) && (n11[u6] = null), ce.event.triggered = d4, e12.isPropagationStopped() && f4.addEventListener(d4, Nt), n11[d4](), e12.isPropagationStopped() && f4.removeEventListener(d4, Nt), ce.event.triggered = void 0, a9 && (n11[u6] = a9)), e12.result;
9064          }
9065        }, simulate: function(e12, t12, n11) {
9066          var r8 = ce.extend(new ce.Event(), n11, { type: e12, isSimulated: true });
9067          ce.event.trigger(r8, null, t12);
9068        } }), ce.fn.extend({ trigger: function(e12, t12) {
9069          return this.each(function() {
9070            ce.event.trigger(e12, t12, this);
9071          });
9072        }, triggerHandler: function(e12, t12) {
9073          var n11 = this[0];
9074          if (n11) return ce.event.trigger(e12, t12, n11, true);
9075        } });
9076        var qt = /\[\]$/, Lt = /\r?\n/g, Ht = /^(?:submit|button|image|reset|file)$/i, Ot = /^(?:input|select|textarea|keygen)/i;
9077        function Pt(n11, e12, r8, i11) {
9078          var t12;
9079          if (Array.isArray(e12)) ce.each(e12, function(e13, t13) {
9080            r8 || qt.test(n11) ? i11(n11, t13) : Pt(n11 + "[" + ("object" == typeof t13 && null != t13 ? e13 : "") + "]", t13, r8, i11);
9081          });
9082          else if (r8 || "object" !== x2(e12)) i11(n11, e12);
9083          else for (t12 in e12) Pt(n11 + "[" + t12 + "]", e12[t12], r8, i11);
9084        }
9085        ce.param = function(e12, t12) {
9086          var n11, r8 = [], i11 = function(e13, t13) {
9087            var n12 = v3(t13) ? t13() : t13;
9088            r8[r8.length] = encodeURIComponent(e13) + "=" + encodeURIComponent(null == n12 ? "" : n12);
9089          };
9090          if (null == e12) return "";
9091          if (Array.isArray(e12) || e12.jquery && !ce.isPlainObject(e12)) ce.each(e12, function() {
9092            i11(this.name, this.value);
9093          });
9094          else for (n11 in e12) Pt(n11, e12[n11], t12, i11);
9095          return r8.join("&");
9096        }, ce.fn.extend({ serialize: function() {
9097          return ce.param(this.serializeArray());
9098        }, serializeArray: function() {
9099          return this.map(function() {
9100            var e12 = ce.prop(this, "elements");
9101            return e12 ? ce.makeArray(e12) : this;
9102          }).filter(function() {
9103            var e12 = this.type;
9104            return this.name && !ce(this).is(":disabled") && Ot.test(this.nodeName) && !Ht.test(e12) && (this.checked || !we.test(e12));
9105          }).map(function(e12, t12) {
9106            var n11 = ce(this).val();
9107            return null == n11 ? null : Array.isArray(n11) ? ce.map(n11, function(e13) {
9108              return { name: t12.name, value: e13.replace(Lt, "\r\n") };
9109            }) : { name: t12.name, value: n11.replace(Lt, "\r\n") };
9110          }).get();
9111        } });
9112        var Mt = /%20/g, Rt = /#.*$/, It = /([?&])_=[^&]*/, Wt = /^(.*?):[ \t]*([^\r\n]*)$/gm, Ft = /^(?:GET|HEAD)$/, $t = /^\/\//, Bt = {}, _t = {}, zt = "*/".concat("*"), Xt = C.createElement("a");
9113        function Ut(o12) {
9114          return function(e12, t12) {
9115            "string" != typeof e12 && (t12 = e12, e12 = "*");
9116            var n11, r8 = 0, i11 = e12.toLowerCase().match(D2) || [];
9117            if (v3(t12)) while (n11 = i11[r8++]) "+" === n11[0] ? (n11 = n11.slice(1) || "*", (o12[n11] = o12[n11] || []).unshift(t12)) : (o12[n11] = o12[n11] || []).push(t12);
9118          };
9119        }
9120        function Vt(t12, i11, o12, a9) {
9121          var s14 = {}, u6 = t12 === _t;
9122          function l11(e12) {
9123            var r8;
9124            return s14[e12] = true, ce.each(t12[e12] || [], function(e13, t13) {
9125              var n11 = t13(i11, o12, a9);
9126              return "string" != typeof n11 || u6 || s14[n11] ? u6 ? !(r8 = n11) : void 0 : (i11.dataTypes.unshift(n11), l11(n11), false);
9127            }), r8;
9128          }
9129          return l11(i11.dataTypes[0]) || !s14["*"] && l11("*");
9130        }
9131        function Gt(e12, t12) {
9132          var n11, r8, i11 = ce.ajaxSettings.flatOptions || {};
9133          for (n11 in t12) void 0 !== t12[n11] && ((i11[n11] ? e12 : r8 || (r8 = {}))[n11] = t12[n11]);
9134          return r8 && ce.extend(true, e12, r8), e12;
9135        }
9136        Xt.href = Et.href, ce.extend({ active: 0, lastModified: {}, etag: {}, ajaxSettings: { url: Et.href, type: "GET", isLocal: /^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Et.protocol), global: true, processData: true, async: true, contentType: "application/x-www-form-urlencoded; charset=UTF-8", accepts: { "*": zt, text: "text/plain", html: "text/html", xml: "application/xml, text/xml", json: "application/json, text/javascript" }, contents: { xml: /\bxml\b/, html: /\bhtml/, json: /\bjson\b/ }, responseFields: { xml: "responseXML", text: "responseText", json: "responseJSON" }, converters: { "* text": String, "text html": true, "text json": JSON.parse, "text xml": ce.parseXML }, flatOptions: { url: true, context: true } }, ajaxSetup: function(e12, t12) {
9137          return t12 ? Gt(Gt(e12, ce.ajaxSettings), t12) : Gt(ce.ajaxSettings, e12);
9138        }, ajaxPrefilter: Ut(Bt), ajaxTransport: Ut(_t), ajax: function(e12, t12) {
9139          "object" == typeof e12 && (t12 = e12, e12 = void 0), t12 = t12 || {};
9140          var c6, f4, p3, n11, d4, r8, h5, g3, i11, o12, v4 = ce.ajaxSetup({}, t12), y4 = v4.context || v4, m4 = v4.context && (y4.nodeType || y4.jquery) ? ce(y4) : ce.event, x3 = ce.Deferred(), b4 = ce.Callbacks("once memory"), w4 = v4.statusCode || {}, a9 = {}, s14 = {}, u6 = "canceled", T2 = { readyState: 0, getResponseHeader: function(e13) {
9141            var t13;
9142            if (h5) {
9143              if (!n11) {
9144                n11 = {};
9145                while (t13 = Wt.exec(p3)) n11[t13[1].toLowerCase() + " "] = (n11[t13[1].toLowerCase() + " "] || []).concat(t13[2]);
9146              }
9147              t13 = n11[e13.toLowerCase() + " "];
9148            }
9149            return null == t13 ? null : t13.join(", ");
9150          }, getAllResponseHeaders: function() {
9151            return h5 ? p3 : null;
9152          }, setRequestHeader: function(e13, t13) {
9153            return null == h5 && (e13 = s14[e13.toLowerCase()] = s14[e13.toLowerCase()] || e13, a9[e13] = t13), this;
9154          }, overrideMimeType: function(e13) {
9155            return null == h5 && (v4.mimeType = e13), this;
9156          }, statusCode: function(e13) {
9157            var t13;
9158            if (e13) if (h5) T2.always(e13[T2.status]);
9159            else for (t13 in e13) w4[t13] = [w4[t13], e13[t13]];
9160            return this;
9161          }, abort: function(e13) {
9162            var t13 = e13 || u6;
9163            return c6 && c6.abort(t13), l11(0, t13), this;
9164          } };
9165          if (x3.promise(T2), v4.url = ((e12 || v4.url || Et.href) + "").replace($t, Et.protocol + "//"), v4.type = t12.method || t12.type || v4.method || v4.type, v4.dataTypes = (v4.dataType || "*").toLowerCase().match(D2) || [""], null == v4.crossDomain) {
9166            r8 = C.createElement("a");
9167            try {
9168              r8.href = v4.url, r8.href = r8.href, v4.crossDomain = Xt.protocol + "//" + Xt.host != r8.protocol + "//" + r8.host;
9169            } catch (e13) {
9170              v4.crossDomain = true;
9171            }
9172          }
9173          if (v4.data && v4.processData && "string" != typeof v4.data && (v4.data = ce.param(v4.data, v4.traditional)), Vt(Bt, v4, t12, T2), h5) return T2;
9174          for (i11 in (g3 = ce.event && v4.global) && 0 == ce.active++ && ce.event.trigger("ajaxStart"), v4.type = v4.type.toUpperCase(), v4.hasContent = !Ft.test(v4.type), f4 = v4.url.replace(Rt, ""), v4.hasContent ? v4.data && v4.processData && 0 === (v4.contentType || "").indexOf("application/x-www-form-urlencoded") && (v4.data = v4.data.replace(Mt, "+")) : (o12 = v4.url.slice(f4.length), v4.data && (v4.processData || "string" == typeof v4.data) && (f4 += (At.test(f4) ? "&" : "?") + v4.data, delete v4.data), false === v4.cache && (f4 = f4.replace(It, "$1"), o12 = (At.test(f4) ? "&" : "?") + "_=" + jt.guid++ + o12), v4.url = f4 + o12), v4.ifModified && (ce.lastModified[f4] && T2.setRequestHeader("If-Modified-Since", ce.lastModified[f4]), ce.etag[f4] && T2.setRequestHeader("If-None-Match", ce.etag[f4])), (v4.data && v4.hasContent && false !== v4.contentType || t12.contentType) && T2.setRequestHeader("Content-Type", v4.contentType), T2.setRequestHeader("Accept", v4.dataTypes[0] && v4.accepts[v4.dataTypes[0]] ? v4.accepts[v4.dataTypes[0]] + ("*" !== v4.dataTypes[0] ? ", " + zt + "; q=0.01" : "") : v4.accepts["*"]), v4.headers) T2.setRequestHeader(i11, v4.headers[i11]);
9175          if (v4.beforeSend && (false === v4.beforeSend.call(y4, T2, v4) || h5)) return T2.abort();
9176          if (u6 = "abort", b4.add(v4.complete), T2.done(v4.success), T2.fail(v4.error), c6 = Vt(_t, v4, t12, T2)) {
9177            if (T2.readyState = 1, g3 && m4.trigger("ajaxSend", [T2, v4]), h5) return T2;
9178            v4.async && 0 < v4.timeout && (d4 = ie.setTimeout(function() {
9179              T2.abort("timeout");
9180            }, v4.timeout));
9181            try {
9182              h5 = false, c6.send(a9, l11);
9183            } catch (e13) {
9184              if (h5) throw e13;
9185              l11(-1, e13);
9186            }
9187          } else l11(-1, "No Transport");
9188          function l11(e13, t13, n12, r9) {
9189            var i12, o13, a10, s15, u7, l12 = t13;
9190            h5 || (h5 = true, d4 && ie.clearTimeout(d4), c6 = void 0, p3 = r9 || "", T2.readyState = 0 < e13 ? 4 : 0, i12 = 200 <= e13 && e13 < 300 || 304 === e13, n12 && (s15 = (function(e14, t14, n13) {
9191              var r10, i13, o14, a11, s16 = e14.contents, u8 = e14.dataTypes;
9192              while ("*" === u8[0]) u8.shift(), void 0 === r10 && (r10 = e14.mimeType || t14.getResponseHeader("Content-Type"));
9193              if (r10) {
9194                for (i13 in s16) if (s16[i13] && s16[i13].test(r10)) {
9195                  u8.unshift(i13);
9196                  break;
9197                }
9198              }
9199              if (u8[0] in n13) o14 = u8[0];
9200              else {
9201                for (i13 in n13) {
9202                  if (!u8[0] || e14.converters[i13 + " " + u8[0]]) {
9203                    o14 = i13;
9204                    break;
9205                  }
9206                  a11 || (a11 = i13);
9207                }
9208                o14 = o14 || a11;
9209              }
9210              if (o14) return o14 !== u8[0] && u8.unshift(o14), n13[o14];
9211            })(v4, T2, n12)), !i12 && -1 < ce.inArray("script", v4.dataTypes) && ce.inArray("json", v4.dataTypes) < 0 && (v4.converters["text script"] = function() {
9212            }), s15 = (function(e14, t14, n13, r10) {
9213              var i13, o14, a11, s16, u8, l13 = {}, c7 = e14.dataTypes.slice();
9214              if (c7[1]) for (a11 in e14.converters) l13[a11.toLowerCase()] = e14.converters[a11];
9215              o14 = c7.shift();
9216              while (o14) if (e14.responseFields[o14] && (n13[e14.responseFields[o14]] = t14), !u8 && r10 && e14.dataFilter && (t14 = e14.dataFilter(t14, e14.dataType)), u8 = o14, o14 = c7.shift()) {
9217                if ("*" === o14) o14 = u8;
9218                else if ("*" !== u8 && u8 !== o14) {
9219                  if (!(a11 = l13[u8 + " " + o14] || l13["* " + o14])) {
9220                    for (i13 in l13) if ((s16 = i13.split(" "))[1] === o14 && (a11 = l13[u8 + " " + s16[0]] || l13["* " + s16[0]])) {
9221                      true === a11 ? a11 = l13[i13] : true !== l13[i13] && (o14 = s16[0], c7.unshift(s16[1]));
9222                      break;
9223                    }
9224                  }
9225                  if (true !== a11) if (a11 && e14["throws"]) t14 = a11(t14);
9226                  else try {
9227                    t14 = a11(t14);
9228                  } catch (e15) {
9229                    return { state: "parsererror", error: a11 ? e15 : "No conversion from " + u8 + " to " + o14 };
9230                  }
9231                }
9232              }
9233              return { state: "success", data: t14 };
9234            })(v4, s15, T2, i12), i12 ? (v4.ifModified && ((u7 = T2.getResponseHeader("Last-Modified")) && (ce.lastModified[f4] = u7), (u7 = T2.getResponseHeader("etag")) && (ce.etag[f4] = u7)), 204 === e13 || "HEAD" === v4.type ? l12 = "nocontent" : 304 === e13 ? l12 = "notmodified" : (l12 = s15.state, o13 = s15.data, i12 = !(a10 = s15.error))) : (a10 = l12, !e13 && l12 || (l12 = "error", e13 < 0 && (e13 = 0))), T2.status = e13, T2.statusText = (t13 || l12) + "", i12 ? x3.resolveWith(y4, [o13, l12, T2]) : x3.rejectWith(y4, [T2, l12, a10]), T2.statusCode(w4), w4 = void 0, g3 && m4.trigger(i12 ? "ajaxSuccess" : "ajaxError", [T2, v4, i12 ? o13 : a10]), b4.fireWith(y4, [T2, l12]), g3 && (m4.trigger("ajaxComplete", [T2, v4]), --ce.active || ce.event.trigger("ajaxStop")));
9235          }
9236          return T2;
9237        }, getJSON: function(e12, t12, n11) {
9238          return ce.get(e12, t12, n11, "json");
9239        }, getScript: function(e12, t12) {
9240          return ce.get(e12, void 0, t12, "script");
9241        } }), ce.each(["get", "post"], function(e12, i11) {
9242          ce[i11] = function(e13, t12, n11, r8) {
9243            return v3(t12) && (r8 = r8 || n11, n11 = t12, t12 = void 0), ce.ajax(ce.extend({ url: e13, type: i11, dataType: r8, data: t12, success: n11 }, ce.isPlainObject(e13) && e13));
9244          };
9245        }), ce.ajaxPrefilter(function(e12) {
9246          var t12;
9247          for (t12 in e12.headers) "content-type" === t12.toLowerCase() && (e12.contentType = e12.headers[t12] || "");
9248        }), ce._evalUrl = function(e12, t12, n11) {
9249          return ce.ajax({ url: e12, type: "GET", dataType: "script", cache: true, async: false, global: false, converters: { "text script": function() {
9250          } }, dataFilter: function(e13) {
9251            ce.globalEval(e13, t12, n11);
9252          } });
9253        }, ce.fn.extend({ wrapAll: function(e12) {
9254          var t12;
9255          return this[0] && (v3(e12) && (e12 = e12.call(this[0])), t12 = ce(e12, this[0].ownerDocument).eq(0).clone(true), this[0].parentNode && t12.insertBefore(this[0]), t12.map(function() {
9256            var e13 = this;
9257            while (e13.firstElementChild) e13 = e13.firstElementChild;
9258            return e13;
9259          }).append(this)), this;
9260        }, wrapInner: function(n11) {
9261          return v3(n11) ? this.each(function(e12) {
9262            ce(this).wrapInner(n11.call(this, e12));
9263          }) : this.each(function() {
9264            var e12 = ce(this), t12 = e12.contents();
9265            t12.length ? t12.wrapAll(n11) : e12.append(n11);
9266          });
9267        }, wrap: function(t12) {
9268          var n11 = v3(t12);
9269          return this.each(function(e12) {
9270            ce(this).wrapAll(n11 ? t12.call(this, e12) : t12);
9271          });
9272        }, unwrap: function(e12) {
9273          return this.parent(e12).not("body").each(function() {
9274            ce(this).replaceWith(this.childNodes);
9275          }), this;
9276        } }), ce.expr.pseudos.hidden = function(e12) {
9277          return !ce.expr.pseudos.visible(e12);
9278        }, ce.expr.pseudos.visible = function(e12) {
9279          return !!(e12.offsetWidth || e12.offsetHeight || e12.getClientRects().length);
9280        }, ce.ajaxSettings.xhr = function() {
9281          try {
9282            return new ie.XMLHttpRequest();
9283          } catch (e12) {
9284          }
9285        };
9286        var Yt = { 0: 200, 1223: 204 }, Qt = ce.ajaxSettings.xhr();
9287        le.cors = !!Qt && "withCredentials" in Qt, le.ajax = Qt = !!Qt, ce.ajaxTransport(function(i11) {
9288          var o12, a9;
9289          if (le.cors || Qt && !i11.crossDomain) return { send: function(e12, t12) {
9290            var n11, r8 = i11.xhr();
9291            if (r8.open(i11.type, i11.url, i11.async, i11.username, i11.password), i11.xhrFields) for (n11 in i11.xhrFields) r8[n11] = i11.xhrFields[n11];
9292            for (n11 in i11.mimeType && r8.overrideMimeType && r8.overrideMimeType(i11.mimeType), i11.crossDomain || e12["X-Requested-With"] || (e12["X-Requested-With"] = "XMLHttpRequest"), e12) r8.setRequestHeader(n11, e12[n11]);
9293            o12 = function(e13) {
9294              return function() {
9295                o12 && (o12 = a9 = r8.onload = r8.onerror = r8.onabort = r8.ontimeout = r8.onreadystatechange = null, "abort" === e13 ? r8.abort() : "error" === e13 ? "number" != typeof r8.status ? t12(0, "error") : t12(r8.status, r8.statusText) : t12(Yt[r8.status] || r8.status, r8.statusText, "text" !== (r8.responseType || "text") || "string" != typeof r8.responseText ? { binary: r8.response } : { text: r8.responseText }, r8.getAllResponseHeaders()));
9296              };
9297            }, r8.onload = o12(), a9 = r8.onerror = r8.ontimeout = o12("error"), void 0 !== r8.onabort ? r8.onabort = a9 : r8.onreadystatechange = function() {
9298              4 === r8.readyState && ie.setTimeout(function() {
9299                o12 && a9();
9300              });
9301            }, o12 = o12("abort");
9302            try {
9303              r8.send(i11.hasContent && i11.data || null);
9304            } catch (e13) {
9305              if (o12) throw e13;
9306            }
9307          }, abort: function() {
9308            o12 && o12();
9309          } };
9310        }), ce.ajaxPrefilter(function(e12) {
9311          e12.crossDomain && (e12.contents.script = false);
9312        }), ce.ajaxSetup({ accepts: { script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" }, contents: { script: /\b(?:java|ecma)script\b/ }, converters: { "text script": function(e12) {
9313          return ce.globalEval(e12), e12;
9314        } } }), ce.ajaxPrefilter("script", function(e12) {
9315          void 0 === e12.cache && (e12.cache = false), e12.crossDomain && (e12.type = "GET");
9316        }), ce.ajaxTransport("script", function(n11) {
9317          var r8, i11;
9318          if (n11.crossDomain || n11.scriptAttrs) return { send: function(e12, t12) {
9319            r8 = ce("<script>").attr(n11.scriptAttrs || {}).prop({ charset: n11.scriptCharset, src: n11.url }).on("load error", i11 = function(e13) {
9320              r8.remove(), i11 = null, e13 && t12("error" === e13.type ? 404 : 200, e13.type);
9321            }), C.head.appendChild(r8[0]);
9322          }, abort: function() {
9323            i11 && i11();
9324          } };
9325        });
9326        var Jt, Kt = [], Zt = /(=)\?(?=&|$)|\?\?/;
9327        ce.ajaxSetup({ jsonp: "callback", jsonpCallback: function() {
9328          var e12 = Kt.pop() || ce.expando + "_" + jt.guid++;
9329          return this[e12] = true, e12;
9330        } }), ce.ajaxPrefilter("json jsonp", function(e12, t12, n11) {
9331          var r8, i11, o12, a9 = false !== e12.jsonp && (Zt.test(e12.url) ? "url" : "string" == typeof e12.data && 0 === (e12.contentType || "").indexOf("application/x-www-form-urlencoded") && Zt.test(e12.data) && "data");
9332          if (a9 || "jsonp" === e12.dataTypes[0]) return r8 = e12.jsonpCallback = v3(e12.jsonpCallback) ? e12.jsonpCallback() : e12.jsonpCallback, a9 ? e12[a9] = e12[a9].replace(Zt, "$1" + r8) : false !== e12.jsonp && (e12.url += (At.test(e12.url) ? "&" : "?") + e12.jsonp + "=" + r8), e12.converters["script json"] = function() {
9333            return o12 || ce.error(r8 + " was not called"), o12[0];
9334          }, e12.dataTypes[0] = "json", i11 = ie[r8], ie[r8] = function() {
9335            o12 = arguments;
9336          }, n11.always(function() {
9337            void 0 === i11 ? ce(ie).removeProp(r8) : ie[r8] = i11, e12[r8] && (e12.jsonpCallback = t12.jsonpCallback, Kt.push(r8)), o12 && v3(i11) && i11(o12[0]), o12 = i11 = void 0;
9338          }), "script";
9339        }), le.createHTMLDocument = ((Jt = C.implementation.createHTMLDocument("").body).innerHTML = "<form></form><form></form>", 2 === Jt.childNodes.length), ce.parseHTML = function(e12, t12, n11) {
9340          return "string" != typeof e12 ? [] : ("boolean" == typeof t12 && (n11 = t12, t12 = false), t12 || (le.createHTMLDocument ? ((r8 = (t12 = C.implementation.createHTMLDocument("")).createElement("base")).href = C.location.href, t12.head.appendChild(r8)) : t12 = C), o12 = !n11 && [], (i11 = w3.exec(e12)) ? [t12.createElement(i11[1])] : (i11 = Ae([e12], t12, o12), o12 && o12.length && ce(o12).remove(), ce.merge([], i11.childNodes)));
9341          var r8, i11, o12;
9342        }, ce.fn.load = function(e12, t12, n11) {
9343          var r8, i11, o12, a9 = this, s14 = e12.indexOf(" ");
9344          return -1 < s14 && (r8 = Tt(e12.slice(s14)), e12 = e12.slice(0, s14)), v3(t12) ? (n11 = t12, t12 = void 0) : t12 && "object" == typeof t12 && (i11 = "POST"), 0 < a9.length && ce.ajax({ url: e12, type: i11 || "GET", dataType: "html", data: t12 }).done(function(e13) {
9345            o12 = arguments, a9.html(r8 ? ce("<div>").append(ce.parseHTML(e13)).find(r8) : e13);
9346          }).always(n11 && function(e13, t13) {
9347            a9.each(function() {
9348              n11.apply(this, o12 || [e13.responseText, t13, e13]);
9349            });
9350          }), this;
9351        }, ce.expr.pseudos.animated = function(t12) {
9352          return ce.grep(ce.timers, function(e12) {
9353            return t12 === e12.elem;
9354          }).length;
9355        }, ce.offset = { setOffset: function(e12, t12, n11) {
9356          var r8, i11, o12, a9, s14, u6, l11 = ce.css(e12, "position"), c6 = ce(e12), f4 = {};
9357          "static" === l11 && (e12.style.position = "relative"), s14 = c6.offset(), o12 = ce.css(e12, "top"), u6 = ce.css(e12, "left"), ("absolute" === l11 || "fixed" === l11) && -1 < (o12 + u6).indexOf("auto") ? (a9 = (r8 = c6.position()).top, i11 = r8.left) : (a9 = parseFloat(o12) || 0, i11 = parseFloat(u6) || 0), v3(t12) && (t12 = t12.call(e12, n11, ce.extend({}, s14))), null != t12.top && (f4.top = t12.top - s14.top + a9), null != t12.left && (f4.left = t12.left - s14.left + i11), "using" in t12 ? t12.using.call(e12, f4) : c6.css(f4);
9358        } }, ce.fn.extend({ offset: function(t12) {
9359          if (arguments.length) return void 0 === t12 ? this : this.each(function(e13) {
9360            ce.offset.setOffset(this, t12, e13);
9361          });
9362          var e12, n11, r8 = this[0];
9363          return r8 ? r8.getClientRects().length ? (e12 = r8.getBoundingClientRect(), n11 = r8.ownerDocument.defaultView, { top: e12.top + n11.pageYOffset, left: e12.left + n11.pageXOffset }) : { top: 0, left: 0 } : void 0;
9364        }, position: function() {
9365          if (this[0]) {
9366            var e12, t12, n11, r8 = this[0], i11 = { top: 0, left: 0 };
9367            if ("fixed" === ce.css(r8, "position")) t12 = r8.getBoundingClientRect();
9368            else {
9369              t12 = this.offset(), n11 = r8.ownerDocument, e12 = r8.offsetParent || n11.documentElement;
9370              while (e12 && (e12 === n11.body || e12 === n11.documentElement) && "static" === ce.css(e12, "position")) e12 = e12.parentNode;
9371              e12 && e12 !== r8 && 1 === e12.nodeType && ((i11 = ce(e12).offset()).top += ce.css(e12, "borderTopWidth", true), i11.left += ce.css(e12, "borderLeftWidth", true));
9372            }
9373            return { top: t12.top - i11.top - ce.css(r8, "marginTop", true), left: t12.left - i11.left - ce.css(r8, "marginLeft", true) };
9374          }
9375        }, offsetParent: function() {
9376          return this.map(function() {
9377            var e12 = this.offsetParent;
9378            while (e12 && "static" === ce.css(e12, "position")) e12 = e12.offsetParent;
9379            return e12 || J;
9380          });
9381        } }), ce.each({ scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function(t12, i11) {
9382          var o12 = "pageYOffset" === i11;
9383          ce.fn[t12] = function(e12) {
9384            return M3(this, function(e13, t13, n11) {
9385              var r8;
9386              if (y3(e13) ? r8 = e13 : 9 === e13.nodeType && (r8 = e13.defaultView), void 0 === n11) return r8 ? r8[i11] : e13[t13];
9387              r8 ? r8.scrollTo(o12 ? r8.pageXOffset : n11, o12 ? n11 : r8.pageYOffset) : e13[t13] = n11;
9388            }, t12, e12, arguments.length);
9389          };
9390        }), ce.each(["top", "left"], function(e12, n11) {
9391          ce.cssHooks[n11] = Ye(le.pixelPosition, function(e13, t12) {
9392            if (t12) return t12 = Ge(e13, n11), _e.test(t12) ? ce(e13).position()[n11] + "px" : t12;
9393          });
9394        }), ce.each({ Height: "height", Width: "width" }, function(a9, s14) {
9395          ce.each({ padding: "inner" + a9, content: s14, "": "outer" + a9 }, function(r8, o12) {
9396            ce.fn[o12] = function(e12, t12) {
9397              var n11 = arguments.length && (r8 || "boolean" != typeof e12), i11 = r8 || (true === e12 || true === t12 ? "margin" : "border");
9398              return M3(this, function(e13, t13, n12) {
9399                var r9;
9400                return y3(e13) ? 0 === o12.indexOf("outer") ? e13["inner" + a9] : e13.document.documentElement["client" + a9] : 9 === e13.nodeType ? (r9 = e13.documentElement, Math.max(e13.body["scroll" + a9], r9["scroll" + a9], e13.body["offset" + a9], r9["offset" + a9], r9["client" + a9])) : void 0 === n12 ? ce.css(e13, t13, i11) : ce.style(e13, t13, n12, i11);
9401              }, s14, n11 ? e12 : void 0, n11);
9402            };
9403          });
9404        }), ce.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], function(e12, t12) {
9405          ce.fn[t12] = function(e13) {
9406            return this.on(t12, e13);
9407          };
9408        }), ce.fn.extend({ bind: function(e12, t12, n11) {
9409          return this.on(e12, null, t12, n11);
9410        }, unbind: function(e12, t12) {
9411          return this.off(e12, null, t12);
9412        }, delegate: function(e12, t12, n11, r8) {
9413          return this.on(t12, e12, n11, r8);
9414        }, undelegate: function(e12, t12, n11) {
9415          return 1 === arguments.length ? this.off(e12, "**") : this.off(t12, e12 || "**", n11);
9416        }, hover: function(e12, t12) {
9417          return this.on("mouseenter", e12).on("mouseleave", t12 || e12);
9418        } }), ce.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "), function(e12, n11) {
9419          ce.fn[n11] = function(e13, t12) {
9420            return 0 < arguments.length ? this.on(n11, null, e13, t12) : this.trigger(n11);
9421          };
9422        });
9423        var en = /^[\s\uFEFF\xA0]+|([^\s\uFEFF\xA0])[\s\uFEFF\xA0]+$/g;
9424        ce.proxy = function(e12, t12) {
9425          var n11, r8, i11;
9426          if ("string" == typeof t12 && (n11 = e12[t12], t12 = e12, e12 = n11), v3(e12)) return r8 = ae.call(arguments, 2), (i11 = function() {
9427            return e12.apply(t12 || this, r8.concat(ae.call(arguments)));
9428          }).guid = e12.guid = e12.guid || ce.guid++, i11;
9429        }, ce.holdReady = function(e12) {
9430          e12 ? ce.readyWait++ : ce.ready(true);
9431        }, ce.isArray = Array.isArray, ce.parseJSON = JSON.parse, ce.nodeName = fe, ce.isFunction = v3, ce.isWindow = y3, ce.camelCase = F, ce.type = x2, ce.now = Date.now, ce.isNumeric = function(e12) {
9432          var t12 = ce.type(e12);
9433          return ("number" === t12 || "string" === t12) && !isNaN(e12 - parseFloat(e12));
9434        }, ce.trim = function(e12) {
9435          return null == e12 ? "" : (e12 + "").replace(en, "$1");
9436        }, "function" == typeof define && define.amd && define("jquery", [], function() {
9437          return ce;
9438        });
9439        var tn = ie.jQuery, nn = ie.$;
9440        return ce.noConflict = function(e12) {
9441          return ie.$ === ce && (ie.$ = nn), e12 && ie.jQuery === ce && (ie.jQuery = tn), ce;
9442        }, "undefined" == typeof e11 && (ie.jQuery = ie.$ = ce), ce;
9443      });
9444    }
9445  });
9446
9447  
vendor: 210 bytes, lines 9447-9455
9447// node_modules/@fancyapps/ui/dist/utils/isString.js
9448  var t;
9449  var init_isString = __esm({
9450    "node_modules/@fancyapps/ui/dist/utils/isString.js"() {
9451      t = (t11) => "string" == typeof t11;
9452    }
9453  });
9454
9455  
vendor: 248 bytes, lines 9455-9463
9455// node_modules/@fancyapps/ui/dist/utils/isNode.js
9456  var n;
9457  var init_isNode = __esm({
9458    "node_modules/@fancyapps/ui/dist/utils/isNode.js"() {
9459      n = (n10) => n10 && null !== n10 && n10 instanceof Element && "nodeType" in n10;
9460    }
9461  });
9462
9463  
vendor: 1,083 bytes, lines 9463-9486
9463// node_modules/@fancyapps/ui/dist/utils/getScrollableParent.js
9464  var e, n2;
9465  var init_getScrollableParent = __esm({
9466    "node_modules/@fancyapps/ui/dist/utils/getScrollableParent.js"() {
9467      e = function(e11) {
9468        if (!(e11 && e11 instanceof Element && e11.offsetParent)) return false;
9469        let n10 = false, i10 = false;
9470        if (e11.scrollWidth > e11.clientWidth) {
9471          const i11 = window.getComputedStyle(e11).overflowX, t11 = -1 !== i11.indexOf("hidden"), o11 = -1 !== i11.indexOf("clip"), d3 = -1 !== i11.indexOf("visible");
9472          n10 = !t11 && !o11 && !d3;
9473        }
9474        if (e11.scrollHeight > e11.clientHeight) {
9475          const n11 = window.getComputedStyle(e11).overflowY, t11 = -1 !== n11.indexOf("hidden"), o11 = -1 !== n11.indexOf("clip"), d3 = -1 !== n11.indexOf("visible");
9476          i10 = !t11 && !o11 && !d3;
9477        }
9478        return n10 || i10;
9479      };
9480      n2 = function(i10, t11 = void 0) {
9481        return !i10 || i10 === document.body || t11 && i10 === t11 ? null : e(i10) ? i10 : n2(i10.parentElement, t11);
9482      };
9483    }
9484  });
9485
9486  
vendor: 611 bytes, lines 9486-9502
9486// node_modules/@fancyapps/ui/dist/utils/strToHtml.js
9487  var e2;
9488  var init_strToHtml = __esm({
9489    "node_modules/@fancyapps/ui/dist/utils/strToHtml.js"() {
9490      e2 = function(e11) {
9491        var t11 = new DOMParser().parseFromString(e11, "text/html").body;
9492        if (t11.childElementCount > 1) {
9493          for (var n10 = document.createElement("div"); t11.firstChild; ) n10.appendChild(t11.firstChild);
9494          return n10;
9495        }
9496        let r7 = t11.firstChild;
9497        return !r7 || r7 instanceof HTMLElement ? r7 : ((n10 = document.createElement("div")).appendChild(r7), n10);
9498      };
9499    }
9500  });
9501
9502  
vendor: 265 bytes, lines 9502-9512
9502// node_modules/@fancyapps/ui/dist/utils/clamp.js
9503  var t2;
9504  var init_clamp = __esm({
9505    "node_modules/@fancyapps/ui/dist/utils/clamp.js"() {
9506      t2 = function(t11 = 0, n10 = 0, a8 = 0) {
9507        return Math.max(Math.min(n10, a8), t11);
9508      };
9509    }
9510  });
9511
9512  
vendor: 334 bytes, lines 9512-9520
9512// node_modules/@fancyapps/ui/dist/utils/isPlainObject.js
9513  var t3;
9514  var init_isPlainObject = __esm({
9515    "node_modules/@fancyapps/ui/dist/utils/isPlainObject.js"() {
9516      t3 = (t11) => "object" == typeof t11 && null !== t11 && t11.constructor === Object && "[object Object]" === Object.prototype.toString.call(t11);
9517    }
9518  });
9519
9520  
vendor: 552 bytes, lines 9520-9537
9520// node_modules/@fancyapps/ui/dist/utils/isEqual.js
9521  function e3(e11) {
9522    return t3(e11) || Array.isArray(e11);
9523  }
9524  function n3(t11, r7) {
9525    const o11 = Object.keys(t11), c5 = Object.keys(r7);
9526    return o11.length === c5.length && o11.every((o12) => {
9527      const c6 = t11[o12], i10 = r7[o12];
9528      return "function" == typeof c6 ? `${c6}` == `${i10}` : e3(c6) && e3(i10) ? n3(c6, i10) : c6 === i10;
9529    });
9530  }
9531  var init_isEqual = __esm({
9532    "node_modules/@fancyapps/ui/dist/utils/isEqual.js"() {
9533      init_isPlainObject();
9534    }
9535  });
9536
9537  
vendor: 5,889 bytes, lines 9537-9672
9537// node_modules/@fancyapps/ui/dist/libs/tween.js
9538  function c() {
9539    let a8 = i.Initializing, f3 = o.Ease, l10 = 0, g2 = 0, p2 = c.Easings.Linear, m3 = 500, d3 = 0, b3 = 0, S = 0, h4 = 0, y3 = 1 / 0, E3 = 0.01, R2 = 0.01, M3 = false, j2 = {}, w3 = null, v3 = {}, O2 = {}, C = {}, L = 0, I2 = 0, D2 = r.Loop, z2 = c.Easings.Linear;
9540    const N2 = /* @__PURE__ */ new Map();
9541    function V(n10, ...t11) {
9542      for (const e11 of N2.get(n10) || []) e11(...t11);
9543    }
9544    function q2(n10) {
9545      return g2 = 0, n10 ? w3 = setTimeout(() => {
9546        x2();
9547      }, n10) : x2(), F;
9548    }
9549    function x2() {
9550      a8 = i.Running, V("start", v3, O2);
9551    }
9552    function A2() {
9553      if (a8 = i.Completed, C = {}, V("end", v3), a8 === i.Completed) if (l10 < L) {
9554        if (l10++, D2 === r.Reverse) {
9555          const n10 = Object.assign({}, j2);
9556          j2 = Object.assign({}, O2), O2 = n10;
9557        }
9558        q2(I2);
9559      } else l10 = 0;
9560      return F;
9561    }
9562    const F = { getState: function() {
9563      return a8;
9564    }, easing: function(n10) {
9565      return p2 = n10, f3 = o.Ease, C = {}, F;
9566    }, duration: function(n10) {
9567      return m3 = n10, F;
9568    }, spring: function(n10 = {}) {
9569      f3 = o.Spring;
9570      const t11 = { velocity: 0, mass: 1, tension: 170, friction: 26, restDelta: 0.1, restSpeed: 0.1, maxSpeed: 1 / 0, clamp: true }, { velocity: e11, mass: i10, tension: r7, friction: s13, restDelta: u5, restSpeed: a9, maxSpeed: c5, clamp: l11 } = Object.assign(Object.assign({}, t11), n10);
9571      return d3 = e11, b3 = i10, S = r7, h4 = s13, R2 = u5, E3 = a9, y3 = c5, M3 = l11, C = {}, F;
9572    }, isRunning: function() {
9573      return a8 === i.Running;
9574    }, isSpring: function() {
9575      return f3 === o.Spring;
9576    }, from: function(n10) {
9577      return v3 = Object.assign({}, n10), F;
9578    }, to: function(n10) {
9579      return O2 = n10, F;
9580    }, repeat: function(n10, t11 = 0, e11 = r.Loop, i10) {
9581      return L = n10, I2 = t11, D2 = e11, z2 = i10 || p2, F;
9582    }, on: function(n10, t11) {
9583      var e11, i10;
9584      return e11 = n10, i10 = t11, N2.set(e11, [...N2.get(e11) || [], i10]), F;
9585    }, off: function(n10, t11) {
9586      var e11, i10;
9587      return e11 = n10, i10 = t11, N2.has(e11) && N2.set(e11, N2.get(e11).filter((n11) => n11 !== i10)), F;
9588    }, start: function(n10) {
9589      return n3(v3, O2) || (a8 = i.Initializing, j2 = Object.assign({}, v3), s.add(this), u || (u = window.requestAnimationFrame(e4)), q2(n10)), F;
9590    }, pause: function() {
9591      return w3 && (clearTimeout(w3), w3 = null), a8 === i.Running && (a8 = i.Paused, V("pause", v3)), F;
9592    }, end: A2, tick: function(e11) {
9593      e11 > 50 && (e11 = 50), g2 += e11;
9594      let s13 = 0, u5 = false;
9595      if (a8 !== i.Running) return F;
9596      if (f3 === o.Ease) {
9597        s13 = t2(0, g2 / m3, 1), u5 = 1 === s13;
9598        const t11 = D2 === r.Reverse ? z2 : p2;
9599        for (const n10 in v3) v3[n10] = j2[n10] + (O2[n10] - j2[n10]) * t11(s13);
9600      }
9601      if (f3 === o.Spring) {
9602        const t11 = 1e-3 * e11;
9603        let i10 = 0;
9604        for (const e12 in v3) {
9605          const o11 = O2[e12];
9606          let r7 = v3[e12];
9607          if ("number" != typeof o11 || isNaN(o11) || "number" != typeof r7 || isNaN(r7)) continue;
9608          if (Math.abs(o11 - r7) <= R2) {
9609            v3[e12] = o11, C[e12] = 0;
9610            continue;
9611          }
9612          C[e12] || ("object" == typeof d3 && "number" == typeof d3[e12] ? C[e12] = d3[e12] : C[e12] = "number" == typeof d3 ? d3 : 0);
9613          let s14 = C[e12];
9614          s14 = t2(-1 * Math.abs(y3), s14, Math.abs(y3));
9615          const u6 = s14 * b3 * h4;
9616          s14 += ((r7 > o11 ? -1 : 1) * (Math.abs(o11 - r7) * S) - u6) / b3 * t11, r7 += s14 * t11;
9617          const a9 = v3[e12] > o11 ? r7 < o11 : r7 > o11;
9618          let c6 = Math.abs(s14) < E3 && Math.abs(o11 - r7) <= R2;
9619          M3 && a9 && (c6 = true), c6 ? (r7 = o11, s14 = 0) : i10++, v3[e12] = r7, C[e12] = s14;
9620        }
9621        u5 = !i10;
9622      }
9623      const c5 = Object.assign({}, O2);
9624      return V("step", v3, j2, O2, s13), u5 && a8 === i.Running && n3(O2, c5) && (a8 = i.Completed, A2()), F;
9625    }, getStartValues: function() {
9626      return j2;
9627    }, getCurrentValues: function() {
9628      return v3;
9629    }, getCurrentVelocities: function() {
9630      return C;
9631    }, getEndValues: function() {
9632      return O2;
9633    }, destroy: function() {
9634      a8 = i.Destroyed, w3 && (clearTimeout(w3), w3 = null), j2 = v3 = O2 = {}, s.delete(this);
9635    } };
9636    return F;
9637  }
9638  var e4, i, o, r, s, u, a;
9639  var init_tween = __esm({
9640    "node_modules/@fancyapps/ui/dist/libs/tween.js"() {
9641      init_clamp();
9642      init_isEqual();
9643      e4 = function(n10) {
9644        for (const t11 of s) t11.getState() === i.Running && t11.tick(a ? n10 - a : 0);
9645        a = n10, u = window.requestAnimationFrame(e4);
9646      };
9647      !(function(n10) {
9648        n10[n10.Initializing = 0] = "Initializing", n10[n10.Running = 1] = "Running", n10[n10.Paused = 2] = "Paused", n10[n10.Completed = 3] = "Completed", n10[n10.Destroyed = 4] = "Destroyed";
9649      })(i || (i = {})), (function(n10) {
9650        n10[n10.Spring = 0] = "Spring", n10[n10.Ease = 1] = "Ease";
9651      })(o || (o = {})), (function(n10) {
9652        n10[n10.Loop = 0] = "Loop", n10[n10.Reverse = 1] = "Reverse";
9653      })(r || (r = {}));
9654      s = /* @__PURE__ */ new Set();
9655      u = null;
9656      a = 0;
9657      c.destroy = () => {
9658        for (const n10 of s) n10.destroy();
9659        u && (cancelAnimationFrame(u), u = null);
9660      }, c.Easings = { Linear: function(n10) {
9661        return n10;
9662      }, EaseIn: function(n10) {
9663        return 0 === n10 ? 0 : Math.pow(2, 10 * n10 - 10);
9664      }, EaseOut: function(n10) {
9665        return 1 === n10 ? 1 : 1 - Math.pow(2, -10 * n10);
9666      }, EaseInOut: function(n10) {
9667        return 0 === n10 ? 0 : 1 === n10 ? 1 : n10 < 0.5 ? Math.pow(2, 20 * n10 - 10) / 2 : (2 - Math.pow(2, -20 * n10 + 10)) / 2;
9668      } };
9669    }
9670  });
9671
9672  
vendor: 7,232 bytes, lines 9672-9799
9672// node_modules/@fancyapps/ui/dist/libs/gestures.js
9673  function e5(e11) {
9674    return "undefined" != typeof TouchEvent && e11 instanceof TouchEvent;
9675  }
9676  function t4(t11, n10) {
9677    const o11 = [], s13 = e5(t11) ? t11[n10] : t11 instanceof MouseEvent && ("changedTouches" === n10 || "mouseup" !== t11.type) ? [t11] : [];
9678    for (const e11 of s13) o11.push({ x: e11.clientX, y: e11.clientY, ts: Date.now() });
9679    return o11;
9680  }
9681  function n4(e11) {
9682    return t4(e11, "touches");
9683  }
9684  function o2(e11) {
9685    return t4(e11, "targetTouches");
9686  }
9687  function s2(e11) {
9688    return t4(e11, "changedTouches");
9689  }
9690  function i2(e11) {
9691    const t11 = e11[0], n10 = e11[1] || t11;
9692    return { x: (t11.x + n10.x) / 2, y: (t11.y + n10.y) / 2, ts: n10.ts };
9693  }
9694  function r2(e11) {
9695    const t11 = e11[0], n10 = e11[1] || e11[0];
9696    return t11 && n10 ? -1 * Math.sqrt((n10.x - t11.x) * (n10.x - t11.x) + (n10.y - t11.y) * (n10.y - t11.y)) : 0;
9697  }
9698  var c2, a2, u2, l, d, f;
9699  var init_gestures = __esm({
9700    "node_modules/@fancyapps/ui/dist/libs/gestures.js"() {
9701      c2 = (e11) => {
9702        e11.cancelable && e11.preventDefault();
9703      };
9704      a2 = { passive: false };
9705      u2 = { panThreshold: 5, swipeThreshold: 3, ignore: ["textarea", "input", "select", "[contenteditable]", "[data-selectable]", "[data-draggable]"] };
9706      l = false;
9707      d = true;
9708      f = (e11, t11) => {
9709        let f3, h4, v3, g2 = Object.assign(Object.assign({}, u2), t11), p2 = [], m3 = [], E3 = [], w3 = false, y3 = false, T = false, b3 = false, M3 = 0, L = 0, x2 = 0, P = 0, D2 = 0, X = 0, Y = 0, j2 = 0, k3 = 0, R2 = [], z2 = 0, A2 = 0;
9710        const O2 = /* @__PURE__ */ new Map();
9711        function S(e12) {
9712          const t12 = r2(m3), n10 = r2(E3), o11 = t12 && n10 ? t12 / n10 : 0, s13 = Math.abs(Y) > Math.abs(j2) ? Y : j2, i10 = { srcEvent: f3, isPanRecognized: w3, isSwipeRecognized: y3, firstTouch: p2, previousTouch: E3, currentTouch: m3, deltaX: x2, deltaY: P, offsetX: D2, offsetY: X, velocityX: Y, velocityY: j2, velocity: s13, angle: k3, axis: v3, scale: o11, center: h4 };
9713          for (const t13 of O2.get(e12) || []) t13(i10);
9714        }
9715        function q2(e12) {
9716          const t12 = e12.target, n10 = e12.composedPath()[0], o11 = g2.ignore.join(","), s13 = (e13) => e13 && e13 instanceof HTMLElement && (e13.matches(o11) || e13.closest(o11));
9717          if (s13(t12) || s13(n10)) return false;
9718        }
9719        function C(e12) {
9720          const t12 = Date.now();
9721          if (R2 = R2.filter((e13) => !e13.ts || e13.ts > t12 - 100), e12 && R2.push(e12), Y = 0, j2 = 0, R2.length > 3) {
9722            const e13 = R2[0], t13 = R2[R2.length - 1];
9723            if (e13 && t13) {
9724              const n10 = t13.x - e13.x, o11 = t13.y - e13.y, s13 = e13.ts && t13.ts ? t13.ts - e13.ts : 0;
9725              s13 > 0 && (Y = Math.abs(n10) > 3 ? n10 / (s13 / 30) : 0, j2 = Math.abs(o11) > 3 ? o11 / (s13 / 30) : 0);
9726            }
9727          }
9728        }
9729        function H2(e12) {
9730          if (false === q2(e12)) return;
9731          if ("undefined" != typeof MouseEvent && e12 instanceof MouseEvent) {
9732            if (l) return;
9733          } else l = true;
9734          if ("undefined" != typeof MouseEvent && e12 instanceof MouseEvent) {
9735            if (!e12.buttons || 0 !== e12.button) return;
9736            c2(e12);
9737          }
9738          e12 instanceof MouseEvent && (window.addEventListener("mousemove", I2), window.addEventListener("mouseup", B2)), window.addEventListener("blur", F), f3 = e12, m3 = o2(e12), p2 = [...m3], E3 = [], L = m3.length, h4 = i2(m3), 1 === L && (w3 = false, y3 = false, T = false), L && C(i2(m3));
9739          const t12 = Date.now(), n10 = t12 - (M3 || t12);
9740          b3 = n10 > 0 && n10 <= 250 && 1 === L, M3 = t12, clearTimeout(z2), S("start");
9741        }
9742        function I2(e12) {
9743          var t12;
9744          if (!p2.length) return;
9745          if (e12.defaultPrevented) return;
9746          if (false === q2(e12)) return;
9747          f3 = e12, E3 = [...m3], m3 = n4(e12);
9748          const o11 = i2(E3), s13 = i2(n4(e12));
9749          if (C(s13), L = m3.length, h4 = s13, E3.length === m3.length ? (x2 = s13.x - o11.x, P = s13.y - o11.y) : (x2 = 0, P = 0), p2.length) {
9750            const e13 = i2(p2);
9751            D2 = s13.x - e13.x, X = s13.y - e13.y;
9752          }
9753          if (m3.length > 1) {
9754            const e13 = r2(m3), t13 = r2(E3);
9755            Math.abs(e13 - t13) >= 0.1 && (T = true, S("pinch"));
9756          }
9757          w3 || (w3 = Math.abs(D2) > g2.panThreshold || Math.abs(X) > g2.panThreshold, w3 && (d = false, clearTimeout(A2), A2 = 0, k3 = Math.abs(180 * Math.atan2(X, D2) / Math.PI), v3 = k3 > 45 && k3 < 135 ? "y" : "x", p2 = [...m3], E3 = [...m3], D2 = 0, X = 0, x2 = 0, P = 0, null === (t12 = window.getSelection()) || void 0 === t12 || t12.removeAllRanges(), S("panstart"))), w3 && (x2 || P) && S("pan"), S("move");
9758        }
9759        function B2(e12) {
9760          if (f3 = e12, !p2.length) return;
9761          const t12 = o2(e12), n10 = s2(e12);
9762          if (L = t12.length, h4 = i2(n10), n10.length && C(i2(n10)), E3 = [...m3], m3 = [...t12], p2 = [...t12], L > 0) S("end"), w3 = false, y3 = false, R2 = [];
9763          else {
9764            const e13 = g2.swipeThreshold;
9765            (Math.abs(Y) > e13 || Math.abs(j2) > e13) && (y3 = true), w3 && S("panend"), y3 && S("swipe"), w3 || y3 || T || (S("tap"), b3 ? S("doubleTap") : z2 = setTimeout(function() {
9766              S("singleTap");
9767            }, 250)), S("end"), G();
9768          }
9769        }
9770        function F() {
9771          clearTimeout(z2), G(), w3 && S("panend"), S("end");
9772        }
9773        function G() {
9774          l = false, w3 = false, y3 = false, b3 = false, L = 0, R2 = [], m3 = [], E3 = [], p2 = [], x2 = 0, P = 0, D2 = 0, X = 0, Y = 0, j2 = 0, k3 = 0, v3 = void 0, window.removeEventListener("mousemove", I2), window.removeEventListener("mouseup", B2), window.removeEventListener("blur", F), d || A2 || (A2 = setTimeout(() => {
9775            d = true, A2 = 0;
9776          }, 100));
9777        }
9778        function J(e12) {
9779          const t12 = e12.target;
9780          l = false, t12 && !e12.defaultPrevented && (d || (c2(e12), e12.stopPropagation()));
9781        }
9782        const K = { init: function() {
9783          return e11 && (e11.addEventListener("click", J, a2), e11.addEventListener("mousedown", H2, a2), e11.addEventListener("touchstart", H2, a2), e11.addEventListener("touchmove", I2, a2), e11.addEventListener("touchend", B2), e11.addEventListener("touchcancel", B2)), K;
9784        }, on: function(e12, t12) {
9785          return (function(e13, t13) {
9786            O2.set(e13, [...O2.get(e13) || [], t13]);
9787          })(e12, t12), K;
9788        }, off: function(e12, t12) {
9789          return O2.has(e12) && O2.set(e12, O2.get(e12).filter((e13) => e13 !== t12)), K;
9790        }, isPointerDown: () => L > 0, destroy: function() {
9791          clearTimeout(z2), clearTimeout(A2), A2 = 0, e11 && (e11.removeEventListener("click", J, a2), e11.removeEventListener("mousedown", H2, a2), e11.removeEventListener("touchstart", H2, a2), e11.removeEventListener("touchmove", I2, a2), e11.removeEventListener("touchend", B2), e11.removeEventListener("touchcancel", B2)), e11 = null, G();
9792        } };
9793        return K;
9794      };
9795      f.isClickAllowed = () => d;
9796    }
9797  });
9798
9799  
vendor: 679 bytes, lines 9799-9807
9799// node_modules/@fancyapps/ui/dist/panzoom/l10n/en_EN.js
9800  var e6;
9801  var init_en_EN = __esm({
9802    "node_modules/@fancyapps/ui/dist/panzoom/l10n/en_EN.js"() {
9803      e6 = { IMAGE_ERROR: "This image couldn't be loaded. <br /> Please try again later.", MOVE_UP: "Move up", MOVE_DOWN: "Move down", MOVE_LEFT: "Move left", MOVE_RIGHT: "Move right", ZOOM_IN: "Zoom in", ZOOM_OUT: "Zoom out", TOGGLE_FULL: "Toggle zoom level", TOGGLE_1TO1: "Toggle zoom level", ITERATE_ZOOM: "Toggle zoom level", ROTATE_CCW: "Rotate counterclockwise", ROTATE_CW: "Rotate clockwise", FLIP_X: "Flip horizontally", FLIP_Y: "Flip vertically", RESET: "Reset", TOGGLE_FS: "Toggle fullscreen" };
9804    }
9805  });
9806
9807  
vendor: 328 bytes, lines 9807-9819
9807// node_modules/@fancyapps/ui/dist/utils/addClass.js
9808  var s3;
9809  var init_addClass = __esm({
9810    "node_modules/@fancyapps/ui/dist/utils/addClass.js"() {
9811      s3 = (s13, t11 = "") => {
9812        s13 && s13.classList && t11.split(" ").forEach((t12) => {
9813          t12 && s13.classList.add(t12);
9814        });
9815      };
9816    }
9817  });
9818
9819  
vendor: 340 bytes, lines 9819-9831
9819// node_modules/@fancyapps/ui/dist/utils/removeClass.js
9820  var s4;
9821  var init_removeClass = __esm({
9822    "node_modules/@fancyapps/ui/dist/utils/removeClass.js"() {
9823      s4 = (s13, t11 = "") => {
9824        s13 && s13.classList && t11.split(" ").forEach((t12) => {
9825          t12 && s13.classList.remove(t12);
9826        });
9827      };
9828    }
9829  });
9830
9831  
vendor: 357 bytes, lines 9831-9843
9831// node_modules/@fancyapps/ui/dist/utils/toggleClass.js
9832  var s5;
9833  var init_toggleClass = __esm({
9834    "node_modules/@fancyapps/ui/dist/utils/toggleClass.js"() {
9835      s5 = (s13, t11 = "", c5) => {
9836        s13 && s13.classList && t11.split(" ").forEach((t12) => {
9837          t12 && s13.classList.toggle(t12, c5 || false);
9838        });
9839      };
9840    }
9841  });
9842
9843  
vendor: 34,126 bytes, lines 9843-10489
9843// node_modules/@fancyapps/ui/dist/panzoom/panzoom.js
9844  var h, m, p, v, b, y, x, w, M, k, j, E;
9845  var init_panzoom = __esm({
9846    "node_modules/@fancyapps/ui/dist/panzoom/panzoom.js"() {
9847      init_isString();
9848      init_isNode();
9849      init_getScrollableParent();
9850      init_strToHtml();
9851      init_clamp();
9852      init_tween();
9853      init_gestures();
9854      init_en_EN();
9855      init_addClass();
9856      init_removeClass();
9857      init_toggleClass();
9858      init_isEqual();
9859      h = (e11) => {
9860        e11.cancelable && e11.preventDefault();
9861      };
9862      m = (e11, t11 = 1e4) => (e11 = parseFloat(e11 + "") || 0, Math.round((e11 + Number.EPSILON) * t11) / t11);
9863      p = (e11) => e11 instanceof HTMLImageElement;
9864      !(function(e11) {
9865        e11.Reset = "reset", e11.Zoom = "zoom", e11.ZoomIn = "zoomIn", e11.ZoomOut = "zoomOut", e11.ZoomTo = "zoomTo", e11.ToggleCover = "toggleCover", e11.ToggleFull = "toggleFull", e11.ToggleMax = "toggleMax", e11.IterateZoom = "iterateZoom", e11.Pan = "pan", e11.Swipe = "swipe", e11.Move = "move", e11.MoveLeft = "moveLeft", e11.MoveRight = "moveRight", e11.MoveUp = "moveUp", e11.MoveDown = "moveDown", e11.RotateCCW = "rotateCCW", e11.RotateCW = "rotateCW", e11.FlipX = "flipX", e11.FlipY = "flipY", e11.ToggleFS = "toggleFS";
9866      })(v || (v = {})), (function(e11) {
9867        e11.Cover = "cover", e11.Full = "full", e11.Max = "max";
9868      })(b || (b = {}));
9869      y = { x: 0, y: 0, scale: 1, angle: 0, flipX: 1, flipY: 1 };
9870      x = { bounds: true, classes: { container: "f-panzoom", wrapper: "f-panzoom__wrapper", content: "f-panzoom__content", viewport: "f-panzoom__viewport" }, clickAction: v.ToggleFull, dblClickAction: false, gestures: {}, height: "auto", l10n: e6, maxScale: 4, minScale: 1, mouseMoveFactor: 1, panMode: "drag", protected: false, singleClickAction: false, spinnerTpl: '<div class="f-spinner"></div>', wheelAction: v.Zoom, width: "auto" };
9871      M = 0;
9872      k = 0;
9873      j = 0;
9874      E = (c5, b3 = {}, E3 = {}) => {
9875        let S, O2, A2, C, T, F, Z, L, P = 0, X = Object.assign(Object.assign({}, x), b3), Y = {}, R2 = Object.assign({}, y), z2 = Object.assign({}, y);
9876        const D2 = [];
9877        function I2(e11) {
9878          let t11 = X[e11];
9879          return t11 && "function" == typeof t11 ? t11(je) : t11;
9880        }
9881        function W() {
9882          return c5 && c5.parentElement && S && 3 === P;
9883        }
9884        const q2 = /* @__PURE__ */ new Map();
9885        function H2(e11, ...t11) {
9886          const n10 = [...q2.get(e11) || []];
9887          X.on && n10.push(X.on[e11]);
9888          for (const e12 of n10) e12 && e12 instanceof Function && e12(je, ...t11);
9889          "*" !== e11 && H2("*", e11, ...t11);
9890        }
9891        function $4(e11) {
9892          if (!W()) return;
9893          const t11 = e11.target;
9894          if (n2(t11)) return;
9895          const o11 = Date.now(), a8 = [-e11.deltaX || 0, -e11.deltaY || 0, -e11.detail || 0].reduce(function(e12, t12) {
9896            return Math.abs(t12) > Math.abs(e12) ? t12 : e12;
9897          }), s13 = t2(-1, a8, 1);
9898          H2("wheel", e11, s13);
9899          const r7 = I2("wheelAction");
9900          if (!r7) return;
9901          if (e11.defaultPrevented) return;
9902          const l10 = z2.scale;
9903          let c6 = l10 * (s13 > 0 ? 1.5 : 0.5);
9904          if (r7 === v.Zoom) {
9905            const t12 = Math.abs(e11.deltaY) < 100 && Math.abs(e11.deltaX) < 100;
9906            if (o11 - k < (t12 ? 200 : 45)) return void h(e11);
9907            k = o11;
9908            const n10 = ne(), a9 = se();
9909            if (m(c6) < m(n10) && m(l10) <= m(n10) ? (j += Math.abs(s13), c6 = n10) : m(c6) > m(a9) && m(l10) >= m(a9) ? (j += Math.abs(s13), c6 = a9) : (j = 0, c6 = t2(n10, c6, a9)), j > 7) return;
9910          }
9911          switch (h(e11), r7) {
9912            case v.Pan:
9913              ue(r7, { srcEvent: e11, deltaX: 2 * -e11.deltaX, deltaY: 2 * -e11.deltaY });
9914              break;
9915            case v.Zoom:
9916              ue(v.ZoomTo, { srcEvent: e11, scale: c6, center: { x: e11.clientX, y: e11.clientY } });
9917              break;
9918            default:
9919              ue(r7, { srcEvent: e11 });
9920          }
9921        }
9922        function _2(e11) {
9923          var n10, o11;
9924          const i10 = e11.composedPath()[0];
9925          if (!f.isClickAllowed()) return;
9926          if (!n(i10) || e11.defaultPrevented) return;
9927          if (!(null == c5 ? void 0 : c5.contains(i10))) return;
9928          if (i10.hasAttribute("disabled") || i10.hasAttribute("aria-disabled") || i10.hasAttribute("data-carousel-go-prev") || i10.hasAttribute("data-carousel-go-next")) return;
9929          const a8 = i10.closest("[data-panzoom-action]"), s13 = null === (n10 = null == a8 ? void 0 : a8.dataset) || void 0 === n10 ? void 0 : n10.panzoomAction, r7 = (null === (o11 = null == a8 ? void 0 : a8.dataset) || void 0 === o11 ? void 0 : o11.panzoomValue) || "";
9930          if (s13) {
9931            switch (h(e11), s13) {
9932              case v.ZoomTo:
9933              case v.ZoomIn:
9934              case v.ZoomOut:
9935                ue(s13, { scale: parseFloat(r7 || "") || void 0 });
9936                break;
9937              case v.MoveLeft:
9938              case v.MoveRight:
9939                ue(s13, { deltaX: parseFloat(r7 || "") || void 0 });
9940                break;
9941              case v.MoveUp:
9942              case v.MoveDown:
9943                ue(s13, { deltaY: parseFloat(r7 || "") || void 0 });
9944                break;
9945              case v.ToggleFS:
9946                Me();
9947                break;
9948              default:
9949                ue(s13);
9950            }
9951            return;
9952          }
9953          if (!(null == S ? void 0 : S.contains(i10))) return;
9954          const u5 = { srcEvent: e11 };
9955          if (ue(I2("clickAction"), u5), I2("dblClickAction")) {
9956            const e12 = Date.now(), t11 = e12 - (M || e12);
9957            M = e12, t11 > 0 && t11 <= 250 ? (w && (clearTimeout(w), w = void 0), ue(I2("dblClickAction"), u5)) : w = setTimeout(() => {
9958              ue(I2("singleClickAction"), u5);
9959            }, 250);
9960          }
9961        }
9962        function B2(e11) {
9963          if (L = e11, !W() || !Q()) return;
9964          if (R2.scale <= 1 || z2.scale <= 1) return;
9965          if (((null == S ? void 0 : S.dataset.animationName) || "").indexOf("zoom") > -1) return;
9966          const t11 = ee(z2.scale);
9967          if (!t11) return;
9968          const { x: n10, y: o11 } = t11;
9969          ue(v.Pan, { deltaX: n10 - z2.x, deltaY: o11 - z2.y });
9970        }
9971        function N2() {
9972          var e11;
9973          c5 && (s4(c5, "is-loading"), null === (e11 = c5.querySelector(".f-spinner")) || void 0 === e11 || e11.remove());
9974        }
9975        function V() {
9976          if (!c5 || !O2) return;
9977          if (N2(), p(O2) && (!O2.complete || !O2.naturalWidth)) return P = 2, null == S || S.classList.add("has-error"), void H2("error");
9978          H2("loaded");
9979          const { width: e11, height: t11 } = J();
9980          p(O2) && (O2.setAttribute("width", e11 + ""), O2.setAttribute("height", t11 + "")), S && (s4(S, "has-error"), p(O2) && (S.setAttribute("width", e11 + ""), S.setAttribute("height", t11 + ""), S.style.aspectRatio = `${e11 / t11 || ""}`)), F = c().on("start", (e12, t12) => {
9981            void 0 !== t12.angle && (t12.angle = 90 * Math.round(t12.angle / 90)), void 0 !== t12.flipX && (t12.flipX = t12.flipX > 0 ? 1 : -1), void 0 !== t12.flipY && (t12.flipY = t12.flipY > 0 ? 1 : -1), z2 = Object.assign(Object.assign({}, y), t12), ce(), H2("animationStart");
9982          }).on("pause", (e12) => {
9983            z2 = Object.assign(Object.assign({}, y), e12);
9984          }).on("step", (e12) => {
9985            if (!W()) return void (null == F || F.end());
9986            if (R2 = Object.assign(Object.assign({}, y), e12), Q() || !I2("bounds") || ye() || z2.scale > R2.scale || z2.scale < oe()) return void de();
9987            const t12 = re(z2.scale);
9988            let n11 = false, o11 = false, a8 = false, s13 = false;
9989            R2.x < t12.x[0] && (n11 = true), R2.x > t12.x[1] && (o11 = true), R2.y < t12.y[0] && (s13 = true), R2.y > t12.y[1] && (a8 = true);
9990            let r7 = false, l10 = false, c6 = false, u5 = false;
9991            z2.x < t12.x[0] && (r7 = true), z2.x > t12.x[1] && (l10 = true), z2.y < t12.y[0] && (u5 = true), z2.y > t12.y[1] && (c6 = true);
9992            let d3 = false;
9993            (o11 && l10 || n11 && r7) && (z2.x = t2(t12.x[0], z2.x, t12.x[1]), d3 = true), (a8 && c6 || s13 && u5) && (z2.y = t2(t12.y[0], z2.y, t12.y[1]), d3 = true), d3 && F && F.spring({ tension: 94, friction: 17, maxSpeed: 555 * z2.scale, restDelta: 0.1, restSpeed: 0.1, velocity: F.getCurrentVelocities() }).from(R2).to(z2).start(), de();
9994          }).on("end", () => {
9995            (null == T ? void 0 : T.isPointerDown()) || le(), (null == F ? void 0 : F.isRunning()) || (ce(), H2("animationEnd"));
9996          }), (function() {
9997            const e12 = I2("gestures");
9998            if (!e12) return;
9999            if (!C || !O2) return;
10000            let t12 = false;
10001            T = f(C, e12).on("start", (e13) => {
10002              if (!I2("gestures")) return;
10003              if (!F) return;
10004              if (!W() || Q()) return;
10005              const n11 = e13.srcEvent;
10006              (R2.scale > 1 || e13.currentTouch.length > 1) && (null == n11 || n11.stopPropagation(), F.pause(), t12 = true), 1 === e13.currentTouch.length && H2("touchStart");
10007            }).on("move", (e13) => {
10008              var n11;
10009              t12 && (1 !== z2.scale || e13.currentTouch.length > 1) && (h(e13.srcEvent), null === (n11 = e13.srcEvent) || void 0 === n11 || n11.stopPropagation());
10010            }).on("pan", (e13) => {
10011              if (!t12) return;
10012              const n11 = e13.srcEvent;
10013              (1 !== z2.scale || e13.currentTouch.length > 1) && (h(n11), ue(v.Pan, e13));
10014            }).on("swipe", (e13) => {
10015              t12 && z2.scale > 1 && ue(v.Swipe, e13);
10016            }).on("tap", (e13) => {
10017              H2("click", e13);
10018            }).on("singleTap", (e13) => {
10019              H2("singleClick", e13);
10020            }).on("doubleTap", (e13) => {
10021              H2("dblClick", e13);
10022            }).on("pinch", (e13) => {
10023              t12 && (e13.scale > oe() ? ue(v.ZoomIn, e13) : e13.scale < oe() ? ue(v.ZoomOut, e13) : ue(v.Pan, e13));
10024            }).on("end", (e13) => {
10025              t12 && (e13.currentTouch.length ? (e13.srcEvent.stopPropagation(), h(e13.srcEvent), null == F || F.end()) : (t12 = false, ce(), le(), H2("touchEnd")));
10026            }).init();
10027          })(), C && (C.addEventListener("wheel", $4, { passive: false }), D2.push(() => {
10028            null == C || C.removeEventListener("wheel", $4, { passive: false });
10029          })), null == c5 || c5.addEventListener("click", _2), null === document || void 0 === document || document.addEventListener("mousemove", B2), D2.push(() => {
10030            null == c5 || c5.removeEventListener("click", _2), null === document || void 0 === document || document.removeEventListener("mousemove", B2);
10031          });
10032          const n10 = U();
10033          R2 = Object.assign({}, n10), z2 = Object.assign({}, n10), P = 3, de(), ce(), H2("ready"), requestAnimationFrame(() => {
10034            3 === P && (N2(), C && (C.style.visibility = ""));
10035          });
10036        }
10037        function U() {
10038          const e11 = Object.assign({}, I2("startPos") || {});
10039          let t11 = e11.scale, n10 = 1;
10040          n10 = "string" == typeof t11 ? te(t11) : "number" == typeof t11 ? t11 : oe();
10041          const o11 = Object.assign(Object.assign(Object.assign({}, y), e11), { scale: n10 }), i10 = Q() ? ee(n10) : void 0;
10042          if (i10) {
10043            const { x: e12, y: t12 } = i10;
10044            o11.x = e12, o11.y = t12;
10045          }
10046          return o11;
10047        }
10048        function G() {
10049          const e11 = { top: 0, left: 0, width: 0, height: 0 };
10050          if (S) {
10051            const t11 = S.getBoundingClientRect();
10052            z2.angle % 180 == 90 ? (e11.top = t11.top + 0.5 * t11.height - 0.5 * t11.width, e11.left = t11.left + 0.5 * t11.width - 0.5 * t11.height, e11.width = t11.height, e11.height = t11.width) : (e11.top = t11.top, e11.left = t11.left, e11.width = t11.width, e11.height = t11.height);
10053          }
10054          return e11;
10055        }
10056        function J() {
10057          let t11 = I2("width"), n10 = I2("height");
10058          if (O2 && "auto" === t11) {
10059            const e11 = O2.getAttribute("width");
10060            t11 = e11 ? parseFloat(e11 + "") : void 0 !== O2.dataset.width ? parseFloat(O2.dataset.width + "") : p(C) ? C.naturalWidth : p(O2) ? O2.naturalWidth : (null == S ? void 0 : S.getBoundingClientRect().width) || 0;
10061          } else t11 = t(t11) ? parseFloat(t11) : t11;
10062          if (O2 && "auto" === n10) {
10063            const e11 = O2.getAttribute("height");
10064            n10 = e11 ? parseFloat(e11 + "") : void 0 !== O2.dataset.height ? parseFloat(O2.dataset.height + "") : p(C) ? C.naturalHeight : p(O2) ? O2.naturalHeight : (null == S ? void 0 : S.getBoundingClientRect().height) || 0;
10065          } else n10 = t(n10) ? parseFloat(n10) : n10;
10066          return { width: t11, height: n10 };
10067        }
10068        function K() {
10069          const e11 = G();
10070          return { width: e11.width, height: e11.height };
10071        }
10072        function Q() {
10073          return "mousemove" === I2("panMode") && matchMedia("(hover: hover)").matches;
10074        }
10075        function ee(e11) {
10076          const t11 = L || I2("event"), n10 = null == S ? void 0 : S.getBoundingClientRect();
10077          if (!t11 || !n10 || e11 <= 1) return { x: 0, y: 0 };
10078          const o11 = (t11.clientX || 0) - n10.left, a8 = (t11.clientY || 0) - n10.top, { width: s13, height: r7 } = K(), l10 = re(e11);
10079          if (e11 > 1) {
10080            const t12 = I2("mouseMoveFactor");
10081            t12 > 1 && (e11 *= t12);
10082          }
10083          let c6 = s13 * e11, u5 = r7 * e11, d3 = 0.5 * (c6 - s13) - o11 / s13 * 100 / 100 * (c6 - s13), f3 = 0.5 * (u5 - r7) - a8 / r7 * 100 / 100 * (u5 - r7);
10084          return d3 = t2(l10.x[0], d3, l10.x[1]), f3 = t2(l10.y[0], f3, l10.y[1]), { x: d3, y: f3 };
10085        }
10086        function te(e11 = "base") {
10087          if (!c5) return 1;
10088          const t11 = c5.getBoundingClientRect(), n10 = G(), { width: o11, height: a8 } = J(), s13 = (e12) => {
10089            if ("number" == typeof e12) return e12;
10090            switch (e12) {
10091              case "min":
10092              case "base":
10093                return 1;
10094              case "cover":
10095                return Math.max(t11.height / n10.height, t11.width / n10.width) || 1;
10096              case "full":
10097              case "max": {
10098                const e13 = z2.angle % 180 == 90 ? a8 : o11;
10099                return e13 && n10.width ? e13 / n10.width : 1;
10100              }
10101            }
10102          }, r7 = I2("minScale"), l10 = I2("maxScale"), u5 = Math.min(s13("full"), s13(r7)), d3 = "number" == typeof l10 ? s13("full") * l10 : Math.min(s13("full"), s13(l10));
10103          switch (e11) {
10104            case "min":
10105              return u5;
10106            case "base":
10107              return t2(u5, 1, d3);
10108            case "cover":
10109              return s13("cover");
10110            case "full":
10111              return Math.min(d3, s13("full"));
10112            case "max":
10113              return d3;
10114          }
10115        }
10116        function ne() {
10117          return te("min");
10118        }
10119        function oe() {
10120          return te("base");
10121        }
10122        function ie() {
10123          return te("cover");
10124        }
10125        function ae() {
10126          return te("full");
10127        }
10128        function se() {
10129          return te("max");
10130        }
10131        function re(e11) {
10132          const t11 = { x: [0, 0], y: [0, 0] }, n10 = null == c5 ? void 0 : c5.getBoundingClientRect();
10133          if (!n10) return t11;
10134          const o11 = G(), i10 = n10.width, a8 = n10.height;
10135          let s13 = o11.width, r7 = o11.height, l10 = e11 = void 0 === e11 ? z2.scale : e11, u5 = e11;
10136          if (Q() && e11 > 1) {
10137            const t12 = I2("mouseMoveFactor");
10138            t12 > 1 && (s13 * e11 > i10 + 0.01 && (l10 *= t12), r7 * e11 > a8 + 0.01 && (u5 *= t12));
10139          }
10140          return s13 *= l10, r7 *= u5, e11 > 1 && (s13 > i10 && (t11.x[0] = 0.5 * (i10 - s13), t11.x[1] = 0.5 * (s13 - i10)), t11.x[0] -= 0.5 * (o11.left - n10.left), t11.x[1] -= 0.5 * (o11.left - n10.left), t11.x[0] -= 0.5 * (o11.left + o11.width - n10.right), t11.x[1] -= 0.5 * (o11.left + o11.width - n10.right), r7 > a8 && (t11.y[0] = 0.5 * (a8 - r7), t11.y[1] = 0.5 * (r7 - a8)), t11.y[0] -= 0.5 * (o11.top - n10.top), t11.y[1] -= 0.5 * (o11.top - n10.top), t11.y[0] -= 0.5 * (o11.top + o11.height - n10.bottom), t11.y[1] -= 0.5 * (o11.top + o11.height - n10.bottom)), t11;
10141        }
10142        function le() {
10143          if (!W()) return;
10144          if (!I2("bounds")) return;
10145          if (!F) return;
10146          const e11 = ne(), t11 = se(), n10 = t2(e11, z2.scale, t11);
10147          if (z2.scale < e11 - 0.01 || z2.scale > t11 + 0.01) return void ue(v.ZoomTo, { scale: n10 });
10148          if (F.isRunning()) return;
10149          if (ye()) return;
10150          const o11 = re(n10);
10151          z2.x < o11.x[0] || z2.x > o11.x[1] || z2.y < o11.y[0] || z2.y > o11.y[1] ? (z2.x = t2(o11.x[0], z2.x, o11.x[1]), z2.y = t2(o11.y[0], z2.y, o11.y[1]), F.spring({ tension: 170, friction: 17, restDelta: 1e-3, restSpeed: 1e-3, maxSpeed: 1 / 0, velocity: F.getCurrentVelocities() }), F.from(R2).to(z2).start()) : de();
10152        }
10153        function ce(e11) {
10154          var t11;
10155          if (!W()) return;
10156          const n10 = be(), o11 = ye(), i10 = xe(), a8 = we(), s13 = ge(), r7 = he();
10157          s5(S, "is-fullsize", a8), s5(S, "is-expanded", i10), s5(S, "is-dragging", o11), s5(S, "can-drag", n10), s5(S, "will-zoom-in", s13), s5(S, "will-zoom-out", r7);
10158          const l10 = pe(), u5 = ve(), d3 = me(), g2 = !W();
10159          for (const n11 of (null === (t11 = e11 || c5) || void 0 === t11 ? void 0 : t11.querySelectorAll("[data-panzoom-action]")) || []) {
10160            const e12 = n11.dataset.panzoomAction;
10161            let t12 = false;
10162            if (g2) t12 = true;
10163            else switch (e12) {
10164              case v.ZoomIn:
10165                l10 || (t12 = true);
10166                break;
10167              case v.ZoomOut:
10168                d3 || (t12 = true);
10169                break;
10170              case v.ToggleFull: {
10171                u5 || d3 || (t12 = true);
10172                const e13 = n11.querySelector("g");
10173                e13 && (e13.style.display = a8 && !t12 ? "none" : "");
10174                break;
10175              }
10176              case v.IterateZoom: {
10177                l10 || d3 || (t12 = true);
10178                const e13 = n11.querySelector("g");
10179                e13 && (e13.style.display = l10 || t12 ? "" : "none");
10180                break;
10181              }
10182              case v.ToggleCover:
10183              case v.ToggleMax:
10184                l10 || d3 || (t12 = true);
10185            }
10186            t12 ? (n11.setAttribute("aria-disabled", ""), n11.setAttribute("tabindex", "-1")) : (n11.removeAttribute("aria-disabled"), n11.removeAttribute("tabindex"));
10187          }
10188        }
10189        function ue(e11, t11) {
10190          var n10;
10191          if (!(e11 && c5 && O2 && F && W())) return;
10192          if (e11 === v.Swipe && Math.abs(F.getCurrentVelocities().scale) > 0.01) return;
10193          const o11 = Object.assign({}, z2);
10194          let a8 = Object.assign({}, z2), l10 = re(Q() ? o11.scale : R2.scale);
10195          const u5 = F.getCurrentVelocities(), d3 = G(), f3 = ((null === (n10 = (t11 = t11 || {}).currentTouch) || void 0 === n10 ? void 0 : n10.length) || 0) > 1, h4 = t11.velocityX || 0, m3 = t11.velocityY || 0;
10196          let p2 = t11.center;
10197          t11.srcEvent && (p2 = i2(s2(t11.srcEvent)));
10198          let b4 = t11.deltaX || 0, x2 = t11.deltaY || 0;
10199          switch (e11) {
10200            case v.MoveRight:
10201              b4 = t11.deltaX || 100;
10202              break;
10203            case v.MoveLeft:
10204              b4 = t11.deltaX || -100;
10205              break;
10206            case v.MoveUp:
10207              x2 = t11.deltaY || -100;
10208              break;
10209            case v.MoveDown:
10210              x2 = t11.deltaY || 100;
10211          }
10212          let w3 = [];
10213          switch (e11) {
10214            case v.Reset:
10215              a8 = Object.assign({}, y), a8.scale = oe();
10216              break;
10217            case v.Pan:
10218            case v.Move:
10219            case v.MoveLeft:
10220            case v.MoveRight:
10221            case v.MoveUp:
10222            case v.MoveDown:
10223              if (ye()) {
10224                let e13 = 1, t12 = 1;
10225                a8.x <= l10.x[0] && h4 <= 0 && (e13 = Math.max(0.01, 1 - Math.abs(1 / d3.width * Math.abs(a8.x - l10.x[0]))), e13 *= 0.2), a8.x >= l10.x[1] && h4 >= 0 && (e13 = Math.max(0.01, 1 - Math.abs(1 / d3.width * Math.abs(a8.x - l10.x[1]))), e13 *= 0.2), a8.y <= l10.y[0] && m3 <= 0 && (t12 = Math.max(0.01, 1 - Math.abs(1 / d3.height * Math.abs(a8.y - l10.y[0]))), t12 *= 0.2), a8.y >= l10.y[1] && m3 >= 0 && (t12 = Math.max(0.01, 1 - Math.abs(1 / d3.height * Math.abs(a8.y - l10.y[1]))), t12 *= 0.2), a8.x += b4 * e13, a8.y += x2 * t12;
10226              } else a8.x = t2(l10.x[0], a8.x + b4, l10.x[1]), a8.y = t2(l10.y[0], a8.y + x2, l10.y[1]);
10227              break;
10228            case v.Swipe:
10229              const e12 = (e13 = 0) => Math.sign(e13) * Math.pow(Math.abs(e13), 1.5);
10230              a8.x += t2(-1e3, e12(h4), 1e3), a8.y += t2(-1e3, e12(m3), 1e3), m3 && !h4 && (a8.x = t2(l10.x[0], a8.x, l10.x[1])), !m3 && h4 && (a8.y = t2(l10.y[0], a8.y, l10.y[1])), u5.x = h4, u5.y = m3;
10231              break;
10232            case v.ZoomTo:
10233              a8.scale = t11.scale || 1;
10234              break;
10235            case v.ZoomIn:
10236              a8.scale = a8.scale * (t11.scale || 2), f3 || (a8.scale = Math.min(a8.scale, se()));
10237              break;
10238            case v.ZoomOut:
10239              a8.scale = a8.scale * (t11.scale || 0.5), f3 || (a8.scale = Math.max(a8.scale, ne()));
10240              break;
10241            case v.ToggleCover:
10242              w3 = [oe(), ie()];
10243              break;
10244            case v.ToggleFull:
10245              w3 = [oe(), ae()];
10246              break;
10247            case v.ToggleMax:
10248              w3 = [oe(), se()];
10249              break;
10250            case v.IterateZoom:
10251              w3 = [oe(), ae(), se()];
10252              break;
10253            case v.Zoom:
10254              const n11 = ae();
10255              a8.scale >= n11 - 0.05 ? a8.scale = oe() : a8.scale = Math.min(n11, a8.scale * (t11.scale || 2));
10256              break;
10257            case v.RotateCW:
10258              a8.angle += 90;
10259              break;
10260            case v.RotateCCW:
10261              a8.angle -= 90;
10262              break;
10263            case v.FlipX:
10264              a8.flipX *= -1;
10265              break;
10266            case v.FlipY:
10267              a8.flipY *= -1;
10268          }
10269          if (void 0 !== R2.angle && Math.abs(R2.angle) >= 360 && (a8.angle -= 360 * Math.floor(R2.angle / 360), R2.angle -= 360 * Math.floor(R2.angle / 360)), w3.length) {
10270            const e12 = w3.findIndex((e13) => e13 > a8.scale + 1e-4);
10271            a8.scale = w3[e12] || w3[0];
10272          }
10273          if (f3 && (a8.scale = t2(ne() * (f3 ? 0.8 : 1), a8.scale, se() * (f3 ? 1.6 : 1))), Q()) {
10274            const e12 = ee(a8.scale);
10275            if (e12) {
10276              const { x: t12, y: n11 } = e12;
10277              a8.x = t12, a8.y = n11;
10278            }
10279          } else if (Math.abs(a8.scale - o11.scale) > 1e-4) {
10280            let e12 = 0, t12 = 0;
10281            if (p2) e12 = p2.x, t12 = p2.y;
10282            else {
10283              const n12 = c5.getBoundingClientRect();
10284              e12 = n12.x + 0.5 * n12.width, t12 = n12.y + 0.5 * n12.height;
10285            }
10286            let n11 = e12 - d3.left, s13 = t12 - d3.top;
10287            n11 -= 0.5 * d3.width, s13 -= 0.5 * d3.height;
10288            const r7 = (n11 - o11.x) / o11.scale, u6 = (s13 - o11.y) / o11.scale;
10289            a8.x = n11 - r7 * a8.scale, a8.y = s13 - u6 * a8.scale, !f3 && I2("bounds") && (l10 = re(a8.scale), a8.x = t2(l10.x[0], a8.x, l10.x[1]), a8.y = t2(l10.y[0], a8.y, l10.y[1]));
10290          }
10291          if (e11 === v.Swipe) {
10292            let e12 = 94, t12 = 17, n11 = 500 * a8.scale, o12 = u5;
10293            F.spring({ tension: e12, friction: t12, maxSpeed: n11, restDelta: 0.1, restSpeed: 0.1, velocity: o12 });
10294          } else e11 === v.Pan || f3 ? F.spring({ tension: 900, friction: 17, restDelta: 0.01, restSpeed: 0.01, maxSpeed: 1 }) : F.spring({ tension: 170, friction: 17, restDelta: 1e-3, restSpeed: 1e-3, maxSpeed: 1 / 0, velocity: u5 });
10295          if (0 === t11.velocity || n3(R2, a8)) R2 = Object.assign({}, a8), z2 = Object.assign({}, a8), F.end(), de(), ce();
10296          else {
10297            if (n3(z2, a8)) return;
10298            F.from(R2).to(a8).start();
10299          }
10300          H2("action", e11);
10301        }
10302        function de() {
10303          if (!O2 || !S || !C) return;
10304          const { width: e11, height: t11 } = J();
10305          Object.assign(S.style, { maxWidth: `min(${e11}px, 100%)`, maxHeight: `min(${t11}px, 100%)` });
10306          const n10 = (function() {
10307            const { width: e12, height: t12 } = J(), { width: n11, height: o12 } = K();
10308            if (!c5) return { x: 0, y: 0, width: 0, height: 0, scale: 0, flipX: 0, flipY: 0, angle: 0, fitWidth: n11, fitHeight: o12, fullWidth: e12, fullHeight: t12 };
10309            let { x: i11, y: a9, scale: s14, angle: r8, flipX: l11, flipY: u6 } = R2, d4 = 1 / ae(), f4 = e12, g2 = t12, h4 = R2.scale * d4, m3 = z2.scale * d4;
10310            const p2 = Math.max(n11, o12), v3 = Math.min(n11, o12);
10311            e12 > t12 ? (f4 = p2, g2 = v3) : (f4 = v3, g2 = p2);
10312            h4 = e12 > t12 ? p2 * s14 / e12 || 1 : p2 * s14 / t12 || 1;
10313            let b4 = f4 ? e12 * m3 : 0, y3 = g2 ? t12 * m3 : 0, x2 = f4 && g2 ? e12 * h4 / b4 : 0;
10314            return i11 = i11 + 0.5 * f4 - 0.5 * b4, a9 = a9 + 0.5 * g2 - 0.5 * y3, { x: i11, y: a9, width: b4, height: y3, scale: x2, flipX: l11, flipY: u6, angle: r8, fitWidth: n11, fitHeight: o12, fullWidth: e12, fullHeight: t12 };
10315          })(), { x: o11, y: i10, width: a8, height: s13, scale: r7, angle: l10, flipX: u5, flipY: d3 } = n10;
10316          let f3 = `translate(${m(o11)}px, ${m(i10)}px)`;
10317          f3 += 1 !== u5 || 1 !== d3 ? ` scaleX(${m(r7 * u5)}) scaleY(${m(r7 * d3)})` : ` scale(${m(r7)})`, 0 !== l10 && (f3 += ` rotate(${l10}deg)`), C.style.width = `${m(a8)}px`, C.style.height = `${m(s13)}px`, C.style.transform = `${f3}`, H2("render");
10318        }
10319        function fe() {
10320          let e11 = z2.scale;
10321          const t11 = I2("clickAction");
10322          let n10 = oe();
10323          if (t11) {
10324            let o11 = [];
10325            switch (t11) {
10326              case v.ZoomIn:
10327                n10 = 2 * e11;
10328                break;
10329              case v.ZoomOut:
10330                n10 = 0.5 * e11;
10331                break;
10332              case v.ToggleCover:
10333                o11 = [oe(), ie()];
10334                break;
10335              case v.ToggleFull:
10336                o11 = [oe(), ae()];
10337                break;
10338              case v.ToggleMax:
10339                o11 = [oe(), se()];
10340                break;
10341              case v.IterateZoom:
10342                o11 = [oe(), ae(), se()];
10343                break;
10344              case v.Zoom:
10345                const t12 = ae();
10346                n10 = e11 >= t12 - 0.05 ? oe() : Math.min(t12, 2 * e11);
10347            }
10348            if (o11.length) {
10349              const t12 = o11.findIndex((t13) => t13 > e11 + 1e-4);
10350              n10 = o11[t12] || oe();
10351            }
10352          }
10353          return n10 = t2(ne(), n10, se()), n10;
10354        }
10355        function ge() {
10356          return !!(W() && fe() > z2.scale);
10357        }
10358        function he() {
10359          return !!(W() && fe() < z2.scale);
10360        }
10361        function me() {
10362          return !!(W() && z2.scale > ne());
10363        }
10364        function pe() {
10365          return !!(W() && z2.scale < se());
10366        }
10367        function ve() {
10368          return !!(W() && z2.scale < ae());
10369        }
10370        function be() {
10371          return !(!(W() && xe() && T) || Q());
10372        }
10373        function ye() {
10374          return !(!W() || !(null == T ? void 0 : T.isPointerDown()) || Q());
10375        }
10376        function xe() {
10377          return !!(W() && z2.scale > oe());
10378        }
10379        function we() {
10380          return !!(W() && z2.scale >= ae());
10381        }
10382        function Me() {
10383          const e11 = "in-fullscreen", t11 = "with-panzoom-in-fullscreen";
10384          null == c5 || c5.classList.toggle(e11);
10385          const n10 = null == c5 ? void 0 : c5.classList.contains(e11);
10386          n10 ? (document.documentElement.classList.add(t11), document.addEventListener("keydown", ke, true)) : (document.documentElement.classList.remove(t11), document.removeEventListener("keydown", ke, true)), de(), H2(n10 ? "enterFS" : "exitFS");
10387        }
10388        function ke(e11) {
10389          "Escape" !== e11.key || e11.defaultPrevented || Me();
10390        }
10391        const je = { canDrag: be, canZoomIn: pe, canZoomOut: me, canZoomToFull: ve, destroy: function() {
10392          H2("destroy");
10393          for (const e11 of Object.values(Y)) null == e11 || e11.destroy(je);
10394          for (const e11 of D2) e11();
10395          return S && (S.style.aspectRatio = "", S.style.maxWidth = "", S.style.maxHeight = ""), C && (C.style.width = "", C.style.height = "", C.style.transform = ""), S = void 0, O2 = void 0, C = void 0, R2 = Object.assign({}, y), z2 = Object.assign({}, y), null == F || F.destroy(), F = void 0, null == T || T.destroy(), T = void 0, P = 4, je;
10396        }, emit: H2, execute: ue, getBoundaries: re, getContainer: function() {
10397          return c5;
10398        }, getContent: function() {
10399          return O2;
10400        }, getFullDim: J, getGestures: function() {
10401          return T;
10402        }, getMousemovePos: ee, getOptions: function() {
10403          return X;
10404        }, getPlugins: function() {
10405          return Y;
10406        }, getScale: te, getStartPosition: U, getState: function() {
10407          return P;
10408        }, getTransform: function(e11) {
10409          return true === e11 ? z2 : R2;
10410        }, getTween: function() {
10411          return F;
10412        }, getViewport: function() {
10413          return C;
10414        }, getWrapper: function() {
10415          return S;
10416        }, init: function() {
10417          return P = 0, H2("init"), (function() {
10418            for (const [e11, t11] of Object.entries(Object.assign(Object.assign({}, E3), X.plugins || {}))) if (e11 && !Y[e11] && t11 instanceof Function) {
10419              const n10 = t11();
10420              n10.init(je), Y[e11] = n10;
10421            }
10422            H2("initPlugins");
10423          })(), (function() {
10424            const e11 = Object.assign(Object.assign({}, x.classes), I2("classes"));
10425            if (!c5) return;
10426            if (s3(c5, e11.container), O2 = c5.querySelector("." + e11.content), !O2) return;
10427            O2.setAttribute("draggable", "false"), S = c5.querySelector("." + e11.wrapper), S || (S = document.createElement("div"), s3(S, e11.wrapper), O2.insertAdjacentElement("beforebegin", S), S.insertAdjacentElement("afterbegin", O2));
10428            C = c5.querySelector("." + e11.viewport), C || (C = document.createElement("div"), s3(C, e11.viewport), C.insertAdjacentElement("afterbegin", O2), S.insertAdjacentElement("beforeend", C));
10429            A2 = O2.cloneNode(true), A2.removeAttribute("id"), S.insertAdjacentElement("afterbegin", A2), O2 instanceof HTMLPictureElement && (O2 = O2.querySelector("img"));
10430            A2 instanceof HTMLPictureElement && (A2 = A2.querySelector("img"));
10431            C instanceof HTMLPictureElement && (C = C.querySelector("img"));
10432            if (C && (C.style.visibility = "hidden", I2("protected"))) {
10433              C.addEventListener("contextmenu", (e13) => {
10434                h(e13);
10435              });
10436              const e12 = document.createElement("div");
10437              s3(e12, "f-panzoom__protected"), C.appendChild(e12);
10438            }
10439            H2("initLayout");
10440          })(), (function() {
10441            if (c5 && S && !Z) {
10442              let e11 = null;
10443              Z = new ResizeObserver(() => {
10444                W() && (e11 = e11 || requestAnimationFrame(() => {
10445                  W() && (ce(), le(), H2("refresh")), e11 = null;
10446                }));
10447              }), Z.observe(S), D2.push(() => {
10448                null == Z || Z.disconnect(), Z = void 0, e11 && (cancelAnimationFrame(e11), e11 = null);
10449              });
10450            }
10451          })(), (function() {
10452            if (!c5 || !O2) return;
10453            if (!p(O2) || !p(A2)) return void V();
10454            const e11 = () => {
10455              O2 && p(O2) && O2.decode().then(() => {
10456                V();
10457              }).catch(() => {
10458                V();
10459              });
10460            };
10461            if (P = 1, c5.classList.add("is-loading"), H2("loading"), A2.src && A2.complete) return void e11();
10462            (function() {
10463              if (!c5) return;
10464              if (null == c5 ? void 0 : c5.querySelector(".f-spinner")) return;
10465              const e12 = I2("spinnerTpl"), t11 = e2(e12);
10466              t11 && (t11.classList.add("f-spinner"), c5.classList.add("is-loading"), null == S || S.insertAdjacentElement("afterbegin", t11));
10467            })(), A2.addEventListener("load", e11, false), A2.addEventListener("error", e11, false), D2.push(() => {
10468              null == A2 || A2.removeEventListener("load", e11, false), null == A2 || A2.removeEventListener("error", e11, false);
10469            });
10470          })(), je;
10471        }, isDragging: ye, isExpanded: xe, isFullsize: we, isMousemoveMode: Q, localize: function(e11, t11 = []) {
10472          const n10 = I2("l10n") || {};
10473          e11 = String(e11).replace(/\{\{(\w+)\}\}/g, (e12, t12) => n10[t12] || e12);
10474          for (let n11 = 0; n11 < t11.length; n11++) e11 = e11.split(t11[n11][0]).join(t11[n11][1]);
10475          return e11 = e11.replace(/\{\{(.*?)\}\}/g, (e12, t12) => t12);
10476        }, off: function(e11, t11) {
10477          for (const n10 of e11 instanceof Array ? e11 : [e11]) q2.has(n10) && q2.set(n10, q2.get(n10).filter((e12) => e12 !== t11));
10478          return je;
10479        }, on: function(e11, t11) {
10480          for (const n10 of e11 instanceof Array ? e11 : [e11]) q2.set(n10, [...q2.get(n10) || [], t11]);
10481          return je;
10482        }, toggleFS: Me, updateControls: ce, version: "6.1.10", willZoomIn: ge, willZoomOut: he };
10483        return je;
10484      };
10485      E.l10n = { en_EN: e6 }, E.getDefaults = () => x;
10486    }
10487  });
10488
10489  
vendor: 410 bytes, lines 10489-10502
10489// node_modules/@fancyapps/ui/dist/utils/getDirectChildren.js
10490  var e7;
10491  var init_getDirectChildren = __esm({
10492    "node_modules/@fancyapps/ui/dist/utils/getDirectChildren.js"() {
10493      e7 = (e11, o11) => {
10494        let t11 = [];
10495        return e11.childNodes.forEach((e12) => {
10496          e12.nodeType !== Node.ELEMENT_NODE || o11 && !e12.matches(o11) || t11.push(e12);
10497        }), t11;
10498      };
10499    }
10500  });
10501
10502  
vendor: 707 bytes, lines 10502-10521
10502// node_modules/@fancyapps/ui/dist/utils/extend.js
10503  var r3;
10504  var init_extend = __esm({
10505    "node_modules/@fancyapps/ui/dist/utils/extend.js"() {
10506      init_isPlainObject();
10507      r3 = (t11, ...e11) => {
10508        const n10 = e11.length;
10509        for (let c5 = 0; c5 < n10; c5++) {
10510          const n11 = e11[c5] || {};
10511          Object.entries(n11).forEach(([e12, n12]) => {
10512            const c6 = Array.isArray(n12) ? [] : {};
10513            t11[e12] || Object.assign(t11, { [e12]: c6 }), t3(n12) ? Object.assign(t11[e12], r3(t11[e12], n12)) : Array.isArray(n12) ? Object.assign(t11, { [e12]: [...n12] }) : Object.assign(t11, { [e12]: n12 });
10514          });
10515        }
10516        return t11;
10517      };
10518    }
10519  });
10520
10521  
vendor: 392 bytes, lines 10521-10533
10521// node_modules/@fancyapps/ui/dist/utils/map.js
10522  var t5;
10523  var init_map = __esm({
10524    "node_modules/@fancyapps/ui/dist/utils/map.js"() {
10525      init_clamp();
10526      t5 = function(t11 = 0, n10 = 0, r7 = 0, c5 = 0, m3 = 0, p2 = false) {
10527        const s13 = (t11 - n10) / (r7 - n10) * (m3 - c5) + c5;
10528        return p2 ? c5 < m3 ? t2(c5, s13, m3) : t2(m3, s13, c5) : s13;
10529      };
10530    }
10531  });
10532
10533  
vendor: 559 bytes, lines 10533-10542
10533// node_modules/@fancyapps/ui/dist/carousel/l10n/en_EN.js
10534  var o3;
10535  var init_en_EN2 = __esm({
10536    "node_modules/@fancyapps/ui/dist/carousel/l10n/en_EN.js"() {
10537      init_en_EN();
10538      o3 = Object.assign(Object.assign({}, e6), { ERROR: "Something went wrong. <br /> Please try again later.", NEXT: "Next page", PREV: "Previous page", GOTO: "Go to page #%d", DOWNLOAD: "Download", TOGGLE_FULLSCREEN: "Toggle full-screen mode", TOGGLE_EXPAND: "Toggle full-size mode", TOGGLE_THUMBS: "Toggle thumbnails", TOGGLE_AUTOPLAY: "Toggle slideshow" });
10539    }
10540  });
10541
10542  
vendor: 37,764 bytes, lines 10542-11186
10542// node_modules/@fancyapps/ui/dist/carousel/carousel.js
10543  var m2, h2, b2, y2, E2;
10544  var init_carousel = __esm({
10545    "node_modules/@fancyapps/ui/dist/carousel/carousel.js"() {
10546      init_isPlainObject();
10547      init_isNode();
10548      init_isString();
10549      init_getScrollableParent();
10550      init_getDirectChildren();
10551      init_extend();
10552      init_map();
10553      init_strToHtml();
10554      init_clamp();
10555      init_addClass();
10556      init_removeClass();
10557      init_toggleClass();
10558      init_tween();
10559      init_gestures();
10560      init_en_EN2();
10561      m2 = (t11) => {
10562        t11.cancelable && t11.preventDefault();
10563      };
10564      h2 = { adaptiveHeight: false, center: true, classes: { container: "f-carousel", isEnabled: "is-enabled", isLTR: "is-ltr", isRTL: "is-rtl", isHorizontal: "is-horizontal", isVertical: "is-vertical", hasAdaptiveHeight: "has-adaptive-height", viewport: "f-carousel__viewport", slide: "f-carousel__slide", isSelected: "is-selected" }, dragFree: false, enabled: true, errorTpl: '<div class="f-html">{{ERROR}}</div>', fill: false, infinite: true, initialPage: 0, l10n: o3, rtl: false, slides: [], slidesPerPage: "auto", spinnerTpl: '<div class="f-spinner"></div>', transition: "fade", tween: { clamp: true, mass: 1, tension: 160, friction: 25, restDelta: 1, restSpeed: 1, velocity: 0 }, vertical: false };
10565      y2 = 0;
10566      E2 = (g2, x2 = {}, M3 = {}) => {
10567        y2++;
10568        let w3, S, j2, A2, L, P = 0, T = Object.assign({}, h2), O2 = Object.assign({}, h2), R2 = {}, H2 = null, V = null, C = 0, D2 = 0, $4 = 0, q2 = false, I2 = false, F = false, z2 = "height", k3 = 0, N2 = true, B2 = 0, _2 = 0, G = 0, X = 0, Y = "*", W = [], J = [];
10569        const K = /* @__PURE__ */ new Set();
10570        let Q = [], U = [], Z = 0, tt = 0, et = 0;
10571        function nt(t11, ...e11) {
10572          let n10 = O2[t11];
10573          return n10 && n10 instanceof Function ? n10(It, ...e11) : n10;
10574        }
10575        function it(t11, e11 = []) {
10576          const n10 = nt("l10n") || {};
10577          t11 = String(t11).replace(/\{\{(\w+)\}\}/g, (t12, e12) => n10[e12] || t12);
10578          for (let n11 = 0; n11 < e11.length; n11++) t11 = t11.split(e11[n11][0]).join(e11[n11][1]);
10579          return t11 = t11.replace(/\{\{(.*?)\}\}/g, (t12, e12) => e12);
10580        }
10581        const ot = /* @__PURE__ */ new Map();
10582        function st(t11, ...e11) {
10583          const n10 = [...ot.get(t11) || []];
10584          O2.on && n10.push(O2.on[t11]);
10585          for (const t12 of n10) t12 && t12 instanceof Function && t12(It, ...e11);
10586          "*" !== t11 && st("*", t11, ...e11);
10587        }
10588        function rt() {
10589          var e11, n10;
10590          const i10 = r3({}, h2, T);
10591          r3(i10, h2, T);
10592          let r7 = "";
10593          const l10 = T.breakpoints || {};
10594          if (l10) for (const [t11, e12] of Object.entries(l10)) window.matchMedia(t11).matches && (r7 += t11, r3(i10, e12));
10595          if (void 0 === L || r7 !== L) {
10596            if (L = r7, 0 !== P) {
10597              let t11 = null === (n10 = null === (e11 = U[B2]) || void 0 === e11 ? void 0 : e11.slides[0]) || void 0 === n10 ? void 0 : n10.index;
10598              void 0 === t11 && (t11 = O2.initialSlide), i10.initialSlide = t11, i10.slides = [];
10599              for (const t12 of W) t12.isVirtual && i10.slides.push(t12);
10600            }
10601            Dt(), O2 = i10, false !== nt("enabled") && (P = 0, st("init"), (function() {
10602              for (const [t11, e12] of Object.entries(Object.assign(Object.assign({}, M3), O2.plugins || {}))) if (t11 && !R2[t11] && e12 instanceof Function) {
10603                const n11 = e12();
10604                n11.init(It, E2), R2[t11] = n11;
10605              }
10606              st("initPlugins");
10607            })(), (function() {
10608              if (!H2) return;
10609              const e12 = nt("classes") || {};
10610              s3(H2, e12.container);
10611              const n11 = nt("style");
10612              if (n11 && t3(n11)) for (const [t11, e13] of Object.entries(n11)) H2.style.setProperty(t11, e13);
10613              V = H2.querySelector(`.${e12.viewport}`), V || (V = document.createElement("div"), s3(V, e12.viewport), V.append(...e7(H2, `.${e12.slide}`)), H2.insertAdjacentElement("afterbegin", V)), H2.carousel = It, st("initLayout");
10614            })(), (function() {
10615              if (!V) return;
10616              const t11 = nt("classes") || {};
10617              W = [], [...e7(V, `.${t11.slide}`)].forEach((t12) => {
10618                if (t12.parentElement) {
10619                  const e12 = yt(Object.assign({ el: t12, isVirtual: false }, t12.dataset || {}));
10620                  st("createSlide", e12), W.push(e12);
10621                }
10622              }), wt();
10623              for (const t12 of W) st("addSlide", t12);
10624              bt(nt("slides"));
10625              for (const t12 of W) {
10626                const e12 = t12.el;
10627                (null == e12 ? void 0 : e12.parentElement) === V && (s3(e12, O2.classes.slide), s3(e12, t12.class), Rt(t12), st("attachSlideEl", t12));
10628              }
10629              st("initSlides");
10630            })(), St(), P = 1, s3(H2, (nt("classes") || {}).isEnabled || ""), Ct(), ut(), S = c().on("start", () => {
10631              w3 && w3.isPointerDown() || (dt(), Ct());
10632            }).on("step", (t11) => {
10633              const e12 = k3;
10634              k3 = t11.pos, k3 !== e12 && (N2 = false, Ct());
10635            }).on("end", (t11) => {
10636              (null == w3 ? void 0 : w3.isPointerDown()) || (k3 = t11.pos, S && !q2 && (k3 < G || k3 > X) ? S.spring({ clamp: true, mass: 1, tension: 200, friction: 25, velocity: 0, restDelta: 1, restSpeed: 1 }).from({ pos: k3 }).to({ pos: t2(G, k3, X) }).start() : N2 || (N2 = true, st("settle")));
10637            }), at(), (function() {
10638              if (!H2 || !V) return;
10639              H2.addEventListener("click", Pt), document.addEventListener("mousemove", lt);
10640              const t11 = V.getBoundingClientRect();
10641              if (Z = t11.height, tt = t11.width, !j2) {
10642                let t12 = null;
10643                j2 = new ResizeObserver(() => {
10644                  t12 || (t12 = requestAnimationFrame(() => {
10645                    !(function() {
10646                      if (1 !== P || !V) return;
10647                      const t13 = U.length, e12 = V.getBoundingClientRect(), n11 = e12.height, i11 = e12.width;
10648                      t13 > 1 && (F && Math.abs(n11 - Z) < 0.5 || !F && Math.abs(i11 - tt) < 0.5) || (St(), at(), Z = n11, tt = i11, F && !Z || !F && !tt || H2 && V && (t13 === U.length && (null == w3 ? void 0 : w3.isPointerDown()) || (nt("dragFree") && (q2 || k3 > G && k3 < X) ? (dt(), Ct()) : Ht(B2, { transition: false }))));
10649                    })(), t12 = null;
10650                  }));
10651                }), j2.observe(V);
10652              }
10653            })(), st("ready"));
10654          }
10655        }
10656        function lt(t11) {
10657          b2 = t11;
10658        }
10659        function at() {
10660          false === nt("gestures") ? w3 && (w3.destroy(), w3 = void 0) : w3 || (function() {
10661            const t11 = nt("gestures");
10662            !w3 && false !== t11 && V && (w3 = f(V, t11).on("start", (t12) => {
10663              var e11, n10;
10664              if (!S) return;
10665              if (false === nt("gestures", t12)) return;
10666              const { srcEvent: o11 } = t12;
10667              F && e5(o11) && !n2(o11.target) && m2(o11), S.pause(), S.getCurrentVelocities().pos = 0;
10668              const s13 = null === (e11 = U[B2]) || void 0 === e11 ? void 0 : e11.slides[0], r7 = null == s13 ? void 0 : s13.el;
10669              s13 && K.has(s13.index) && r7 && (k3 = s13.offset || 0, k3 += ((function(t13) {
10670                const e12 = window.getComputedStyle(t13), n11 = new DOMMatrixReadOnly(e12.transform);
10671                return { width: n11.m41 || 0, height: n11.m42 || 0 };
10672              })(r7)[z2] || 0) * (I2 && !F ? 1 : -1)), At(), q2 || (k3 < G || k3 > X) && S.spring({ clamp: true, mass: 1, tension: 500, friction: 25, velocity: (null === (n10 = S.getCurrentVelocities()) || void 0 === n10 ? void 0 : n10.pos) || 0, restDelta: 1, restSpeed: 1 }).from({ pos: k3 }).to({ pos: t2(G, k3, X) }).start();
10673            }).on("move", (t12) => {
10674              var e11, n10;
10675              if (false === nt("gestures", t12)) return;
10676              const { srcEvent: o11, axis: s13, deltaX: r7, deltaY: l10 } = t12;
10677              if (e5(o11) && (null === (e11 = o11.touches) || void 0 === e11 ? void 0 : e11.length) > 1) return;
10678              const a8 = o11.target, c5 = n2(a8), d3 = c5 ? c5.scrollHeight > c5.clientHeight ? "y" : "x" : void 0;
10679              if (c5 && c5 !== V && (!s13 || s13 === d3)) return;
10680              if (!s13) return m2(o11), o11.stopPropagation(), void o11.stopImmediatePropagation();
10681              if ("y" === s13 && !F || "x" === s13 && F) return;
10682              if (m2(o11), o11.stopPropagation(), !S) return;
10683              const u5 = I2 && !F ? 1 : -1, f3 = F ? l10 : r7;
10684              let v3 = (null == S ? void 0 : S.isRunning()) ? S.getEndValues().pos : k3, g3 = 1;
10685              q2 || (v3 <= G && f3 * u5 < 0 ? (g3 = Math.max(0.01, 1 - (Math.abs(1 / gt() * Math.abs(v3 - G)) || 0)), g3 *= 0.2) : v3 >= X && f3 * u5 > 0 && (g3 = Math.max(0.01, 1 - (Math.abs(1 / gt() * Math.abs(v3 - X)) || 0)), g3 *= 0.2)), v3 += f3 * g3 * u5, S.spring({ clamp: true, mass: 1, tension: 700, friction: 25, velocity: (null === (n10 = S.getCurrentVelocities()) || void 0 === n10 ? void 0 : n10.pos) || 0, restDelta: 1, restSpeed: 1 }).from({ pos: k3 }).to({ pos: v3 }).start();
10686            }).on("panstart", (t12) => {
10687              false !== nt("gestures", t12) && (null == t12 ? void 0 : t12.axis) === (F ? "y" : "x") && s3(V, "is-dragging");
10688            }).on("panend", (t12) => {
10689              false !== nt("gestures", t12) && s4(V, "is-dragging");
10690            }).on("end", (t12) => {
10691              var e11, n10;
10692              if (false === nt("gestures", t12)) return;
10693              const { srcEvent: o11, axis: s13, velocityX: r7, velocityY: l10, currentTouch: c5 } = t12;
10694              if (c5.length > 0 || !S) return;
10695              const d3 = o11.target, u5 = n2(d3), f3 = u5 ? u5.scrollHeight > u5.clientHeight ? "y" : "x" : void 0, v3 = u5 && (!s13 || s13 === f3);
10696              F && e5(o11) && !s13 && Pt(o11);
10697              const g3 = U.length, m3 = nt("dragFree");
10698              if (!g3) return;
10699              let h4 = v3 ? 0 : nt("vertical") ? l10 : r7;
10700              s13 !== (F ? "y" : "x") && (h4 = 0);
10701              let b3 = (null == S ? void 0 : S.isRunning()) ? S.getEndValues().pos : k3;
10702              const y3 = I2 && !F ? 1 : -1;
10703              if (v3 || (b3 += h4 * (m3 ? 5 : 1) * y3), !q2 && (h4 * y3 <= 0 && b3 < G || h4 * y3 >= 0 && b3 > X)) {
10704                let t13 = 0;
10705                return Math.abs(h4) > 0 && (t13 = 2 * Math.abs(h4), t13 = Math.min(0.3 * gt(), t13)), b3 = t2(G + -1 * t13, b3, X + t13), void S.spring({ clamp: true, mass: 1, tension: 380, friction: 25, velocity: -1 * h4, restDelta: 1, restSpeed: 1 }).from({ pos: k3 }).to({ pos: b3 }).start();
10706              }
10707              if (m3 || (null === (e11 = R2.Autoscroll) || void 0 === e11 ? void 0 : e11.isEnabled())) return void (Math.abs(h4) > 10 ? S.spring({ clamp: true, mass: 1, tension: 150, friction: 25, velocity: -1 * h4, restDelta: 1, restSpeed: 1 }).from({ pos: k3 }).to({ pos: b3 }).start() : S.isRunning() || N2 || (N2 = true, st("settle")));
10708              if (!m3 && !(null === (n10 = R2.Autoscroll) || void 0 === n10 ? void 0 : n10.isEnabled()) && (!t12.offsetX && !t12.offsetY || "y" === s13 && !F || "x" === s13 && F)) return void Ht(B2, { transition: "tween" });
10709              let E3 = vt(b3);
10710              Math.abs(h4) > 10 && E3 === B2 && (E3 += h4 > 0 ? I2 && !F ? 1 : -1 : I2 && !F ? -1 : 1), Ht(E3, { transition: "tween", tween: { velocity: -1 * h4 } });
10711            }).init());
10712          })(), s5(V, "is-draggable", !!w3 && U.length > 0);
10713        }
10714        function ct(t11 = "*") {
10715          var e11;
10716          const n10 = [];
10717          for (const i10 of W) ("*" === t11 || i10.class && i10.class.includes(t11) || i10.el && (null === (e11 = i10.el) || void 0 === e11 ? void 0 : e11.classList.contains(t11))) && n10.push(i10);
10718          A2 = void 0, Y = t11, J = [...n10];
10719        }
10720        function dt() {
10721          if (!S) return;
10722          const t11 = vt((null == S ? void 0 : S.isRunning()) ? S.getEndValues().pos : k3);
10723          t11 !== B2 && (A2 = B2, B2 = t11, Rt(), ut(), ft(), st("change", B2, A2));
10724        }
10725        function ut() {
10726          var t11, e11;
10727          if (!H2) return;
10728          for (const t12 of H2.querySelectorAll("[data-carousel-index]")) t12.innerHTML = B2 + "";
10729          for (const t12 of H2.querySelectorAll("[data-carousel-page]")) t12.innerHTML = B2 + 1 + "";
10730          for (const t12 of H2.querySelectorAll("[data-carousel-pages]")) t12.innerHTML = U.length + "";
10731          for (const e12 of H2.querySelectorAll("[data-carousel-go-to]")) {
10732            parseInt((null === (t11 = e12.dataset) || void 0 === t11 ? void 0 : t11.carouselGoTo) || "-1", 10) === B2 ? e12.setAttribute("aria-current", "true") : e12.removeAttribute("aria-current");
10733          }
10734          for (const t12 of H2.querySelectorAll("[data-carousel-go-prev]")) t12.toggleAttribute("aria-disabled", !$t()), $t() ? t12.removeAttribute("tabindex") : t12.setAttribute("tabindex", "-1");
10735          for (const t12 of H2.querySelectorAll("[data-carousel-go-next]")) t12.toggleAttribute("aria-disabled", !qt()), qt() ? t12.removeAttribute("tabindex") : t12.setAttribute("tabindex", "-1");
10736          let n10 = false;
10737          const i10 = null === (e11 = U[B2]) || void 0 === e11 ? void 0 : e11.slides[0];
10738          i10 && (i10.downloadSrc || "image" === i10.type && i10.src) && (n10 = true);
10739          for (const t12 of H2.querySelectorAll("[data-carousel-download]")) t12.toggleAttribute("aria-disabled", !n10);
10740        }
10741        function ft(t11) {
10742          var e11;
10743          t11 || (t11 = null === (e11 = U[B2]) || void 0 === e11 ? void 0 : e11.slides[0]);
10744          const n10 = null == t11 ? void 0 : t11.el;
10745          if (n10) for (const e12 of n10.querySelectorAll("[data-slide-index]")) e12.innerHTML = t11.index + 1 + "";
10746        }
10747        function vt(t11) {
10748          var e11, n10, i10;
10749          if (!U.length) return 0;
10750          const o11 = mt();
10751          let s13 = t11;
10752          q2 ? s13 -= Math.floor((t11 - (null === (e11 = U[0]) || void 0 === e11 ? void 0 : e11.pos)) / o11) * o11 || 0 : s13 = t2(null === (n10 = U[0]) || void 0 === n10 ? void 0 : n10.pos, t11, null === (i10 = U[U.length - 1]) || void 0 === i10 ? void 0 : i10.pos);
10753          const r7 = /* @__PURE__ */ new Map();
10754          let l10 = 0;
10755          for (const t12 of U) {
10756            const e12 = Math.abs(t12.pos - s13), n11 = Math.abs(t12.pos - s13 - o11), i11 = Math.abs(t12.pos - s13 + o11), a8 = Math.min(e12, n11, i11);
10757            r7.set(l10, a8), l10++;
10758          }
10759          const c5 = r7.size > 0 ? [...r7.entries()].reduce((t12, e12) => e12[1] < t12[1] ? e12 : t12) : [B2, 0];
10760          return parseInt(c5[0]);
10761        }
10762        function pt() {
10763          return et;
10764        }
10765        function gt() {
10766          return C;
10767        }
10768        function mt(t11 = true) {
10769          return J.length ? J.reduce((t12, e11) => t12 + e11.dim, 0) + (J.length - (q2 && t11 ? 0 : 1)) * et : 0;
10770        }
10771        function ht(t11) {
10772          const e11 = mt(), n10 = gt();
10773          if (!e11 || !V || !n10) return [];
10774          const i10 = [];
10775          t11 = void 0 === t11 ? k3 : t11, q2 && (t11 -= Math.floor(t11 / e11) * e11 || 0);
10776          let o11 = 0;
10777          for (let s13 of J) {
10778            const r7 = (e12 = 0) => {
10779              i10.indexOf(s13) > -1 || (s13.pos = o11 - t11 + e12 || 0, s13.offset + e12 > t11 - s13.dim - D2 + 0.51 && s13.offset + e12 < t11 + n10 + $4 - 0.51 && i10.push(s13));
10780            };
10781            s13.offset = o11, q2 && (r7(e11), r7(-1 * e11)), r7(), o11 += s13.dim + et;
10782          }
10783          return i10;
10784        }
10785        function bt(t11, e11) {
10786          const n10 = [];
10787          for (const e12 of Array.isArray(t11) ? t11 : [t11]) {
10788            const t12 = yt(Object.assign(Object.assign({}, e12), { isVirtual: true }));
10789            t12.el || (t12.el = document.createElement("div")), st("createSlide", t12), n10.push(t12);
10790          }
10791          W.splice(void 0 === e11 ? W.length : e11, 0, ...n10), wt();
10792          for (const t12 of n10) st("addSlide", t12), Et(t12);
10793          return ct(Y), n10;
10794        }
10795        function yt(t11) {
10796          return (t(t11) || t11 instanceof HTMLElement) && (t11 = { html: t11 }), Object.assign({ index: -1, el: void 0, class: "", isVirtual: true, dim: 0, pos: 0, offset: 0, html: "", src: "" }, t11);
10797        }
10798        function Et(t11) {
10799          let e11 = t11.el;
10800          if (!t11 || !e11) return;
10801          const n10 = t11.html ? t11.html instanceof HTMLElement ? t11.html : e2(t11.html) : void 0;
10802          n10 && (s3(n10, "f-html"), t11.htmlEl = n10, s3(e11, "has-html"), e11.append(n10), st("contentReady", t11));
10803        }
10804        function xt(t11) {
10805          if (!V || !t11) return;
10806          let e11 = t11.el;
10807          if (e11) {
10808            if (e11.setAttribute("index", t11.index + ""), e11.parentElement !== V) {
10809              let n10;
10810              s3(e11, O2.classes.slide), s3(e11, t11.class), Rt(t11);
10811              for (const e12 of W) if (e12.index > t11.index) {
10812                n10 = e12.el;
10813                break;
10814              }
10815              V.insertBefore(e11, n10 && V.contains(n10) ? n10 : null), st("attachSlideEl", t11);
10816            }
10817            return ft(t11), e11;
10818          }
10819        }
10820        function Mt(t11) {
10821          const e11 = null == t11 ? void 0 : t11.el;
10822          e11 && (e11.remove(), jt(e11), st("detachSlideEl", t11));
10823        }
10824        function wt() {
10825          for (let t11 = 0; t11 < W.length; t11++) {
10826            const e11 = W[t11], n10 = e11.el;
10827            n10 && (e11.index !== t11 && jt(n10), n10.setAttribute("index", `${t11}`)), e11.index = t11;
10828          }
10829        }
10830        function St() {
10831          var t11, n10, i10, o11, s13;
10832          if (!H2 || !V) return;
10833          I2 = nt("rtl"), F = nt("vertical"), z2 = F ? "height" : "width";
10834          const r7 = nt("classes");
10835          if (s5(H2, r7.isLTR, !I2), s5(H2, r7.isRTL, I2), s5(H2, r7.isHorizontal, !F), s5(H2, r7.isVertical, F), s5(H2, r7.hasAdaptiveHeight, nt("adaptiveHeight")), C = 0, D2 = 0, $4 = 0, et = 0, V) {
10836            V.childElementCount || (V.style.display = "grid");
10837            const t12 = V.getBoundingClientRect();
10838            C = V.getBoundingClientRect()[z2] || 0;
10839            const e11 = window.getComputedStyle(V);
10840            et = parseFloat(e11.getPropertyValue("--f-carousel-gap")) || 0;
10841            "visible" === e11.getPropertyValue("overflow-" + (F ? "y" : "x")) && (D2 = Math.abs(t12[F ? "top" : "left"]), $4 = Math.abs(window[F ? "innerHeight" : "innerWidth"] - t12[F ? "bottom" : "right"])), V.style.display = "";
10842          }
10843          if (!C) return;
10844          const l10 = (function() {
10845            let t12 = 0;
10846            if (V) {
10847              let e11 = document.createElement("div");
10848              e11.style.display = "block", s3(e11, O2.classes.slide), V.appendChild(e11), t12 = e11.getBoundingClientRect()[z2], e11.remove(), e11 = void 0;
10849            }
10850            return t12;
10851          })();
10852          for (const n11 of J) {
10853            const i11 = n11.el;
10854            let o12 = 0;
10855            if (!n11.isVirtual && i11 && n(i11)) {
10856              let e11 = false;
10857              i11.parentElement && i11.parentElement === V || (V.appendChild(i11), e11 = true), o12 = i11.getBoundingClientRect()[z2], e11 && (null === (t11 = i11.parentElement) || void 0 === t11 || t11.removeChild(i11));
10858            } else o12 = l10;
10859            n11.dim = o12;
10860          }
10861          if (q2 = false, nt("infinite")) {
10862            q2 = true;
10863            const t12 = mt();
10864            let e11 = C + D2 + $4;
10865            for (let i11 = 0; i11 < J.length; i11++) {
10866              const o12 = (null === (n10 = J[i11]) || void 0 === n10 ? void 0 : n10.dim) + et;
10867              if (t12 - o12 < e11 && t12 - o12 - e11 < o12) {
10868                q2 = false;
10869                break;
10870              }
10871            }
10872          }
10873          !(function() {
10874            var t12;
10875            if (!H2) return;
10876            const e11 = gt(), n11 = mt(false);
10877            let i11 = nt("slidesPerPage");
10878            i11 = "auto" === i11 ? 1 / 0 : parseFloat(i11 + ""), U = [];
10879            let o12 = 0, s14 = 0;
10880            for (const n12 of J) (!U.length || o12 + n12.dim - e11 > 0.05 || s14 >= i11) && (U.push({ index: U.length, slides: [], dim: 0, offset: 0, pos: 0 }), o12 = 0, s14 = 0), null === (t12 = U[U.length - 1]) || void 0 === t12 || t12.slides.push(n12), o12 += n12.dim + et, s14++;
10881            const r8 = nt("center"), l11 = nt("fill");
10882            let c5 = 0;
10883            for (const t13 of U) {
10884              t13.dim = (t13.slides.length - 1) * et;
10885              for (const e12 of t13.slides) t13.dim += e12.dim;
10886              t13.offset = c5, t13.pos = c5, false !== r8 && (t13.pos -= 0.5 * (e11 - t13.dim)), l11 && !q2 && n11 > e11 && (t13.pos = t2(0, t13.pos, n11 - e11)), c5 += t13.dim + et;
10887            }
10888            const d3 = [];
10889            let u5;
10890            for (const t13 of U) {
10891              const e12 = Object.assign({}, t13);
10892              u5 && Math.abs(e12.pos - u5.pos) < 0.1 ? (u5.dim += e12.dim, u5.slides = [...u5.slides, ...e12.slides]) : (u5 = e12, e12.index = d3.length, d3.push(e12));
10893            }
10894            U = d3, B2 = t2(0, B2, U.length - 1);
10895          })(), G = (null === (i10 = U[0]) || void 0 === i10 ? void 0 : i10.pos) || 0, X = (null === (o11 = U[U.length - 1]) || void 0 === o11 ? void 0 : o11.pos) || 0, 0 === P ? (function() {
10896            var t12;
10897            A2 = void 0, B2 = nt("initialPage");
10898            const e11 = nt("initialSlide") || void 0;
10899            void 0 !== e11 && (B2 = It.getPageIndex(e11) || 0), B2 = t2(0, B2, U.length - 1), k3 = (null === (t12 = U[B2]) || void 0 === t12 ? void 0 : t12.pos) || 0, _2 = k3;
10900          })() : _2 = (null === (s13 = U[B2 || 0]) || void 0 === s13 ? void 0 : s13.pos) || 0, st("refresh"), ut();
10901        }
10902        function jt(t11) {
10903          if (!t11 || !n(t11)) return;
10904          const n10 = parseInt(t11.getAttribute("index") || "-1");
10905          let i10 = "";
10906          for (const e11 of Array.from(t11.classList)) {
10907            const t12 = e11.match(/^f-(\w+)(Out|In)$/);
10908            t12 && t12[1] && (i10 = t12[1] + "");
10909          }
10910          if (!t11 || !i10) return;
10911          const o11 = [`f-${i10}Out`, `f-${i10}In`, "to-prev", "to-next", "from-prev", "from-next"];
10912          t11.removeEventListener("animationend", Lt), s4(t11, o11.join(" ")), K.delete(n10);
10913        }
10914        function At() {
10915          if (!V) return;
10916          const t11 = K.size > 0;
10917          for (const t12 of J) jt(t12.el);
10918          K.clear(), t11 && Ct();
10919        }
10920        function Lt(t11) {
10921          var e11;
10922          "f-" === (null === (e11 = t11.animationName) || void 0 === e11 ? void 0 : e11.substring(0, 2)) && (jt(t11.target), K.size || (s4(H2, "in-transition"), !N2 && Math.abs(It.getPosition(true) - _2) < 0.5 && (N2 = true, st("settle"))), Ct());
10923        }
10924        function Pt(t11) {
10925          var e11;
10926          if (t11.defaultPrevented) return;
10927          const n10 = t11.composedPath()[0];
10928          if (n10.closest("[data-carousel-go-prev]")) return m2(t11), void It.prev();
10929          if (n10.closest("[data-carousel-go-next]")) return m2(t11), void It.next();
10930          const i10 = n10.closest("[data-carousel-go-to]");
10931          if (i10) return m2(t11), void It.goTo(parseFloat(i10.dataset.carouselGoTo || "") || 0);
10932          if (n10.closest("[data-carousel-download]")) {
10933            m2(t11);
10934            const n11 = null === (e11 = U[B2]) || void 0 === e11 ? void 0 : e11.slides[0];
10935            if (n11 && (n11.downloadSrc || "image" === n11.type && n11.src)) {
10936              const t12 = n11.downloadFilename, e12 = document.createElement("a"), i11 = n11.downloadSrc || n11.src || "";
10937              e12.href = i11, e12.target = "_blank", e12.download = t12 || i11, e12.click();
10938            }
10939            return;
10940          }
10941          st("click", t11);
10942        }
10943        function Tt(t11) {
10944          var e11;
10945          const n10 = t11.el;
10946          n10 && (null === (e11 = n10.querySelector(".f-spinner")) || void 0 === e11 || e11.remove());
10947        }
10948        function Ot(t11) {
10949          var e11;
10950          const n10 = t11.el;
10951          n10 && (null === (e11 = n10.querySelector(".f-html.is-error")) || void 0 === e11 || e11.remove(), s4(n10, "has-error"));
10952        }
10953        function Rt(t11) {
10954          var e11;
10955          t11 || (t11 = null === (e11 = U[B2]) || void 0 === e11 ? void 0 : e11.slides[0]);
10956          const i10 = null == t11 ? void 0 : t11.el;
10957          if (!i10) return;
10958          let o11 = nt("formatCaption", t11);
10959          void 0 === o11 && (o11 = t11.caption), o11 = o11 || "";
10960          const s13 = nt("captionEl");
10961          if (s13 && s13 instanceof HTMLElement) {
10962            if (t11.index !== B2) return;
10963            if (t(o11) && (s13.innerHTML = it(o11 + "")), o11 instanceof HTMLElement) {
10964              if (o11.parentElement === s13) return;
10965              s13.innerHTML = "", o11.parentElement && (o11 = o11.cloneNode(true)), s13.append(o11);
10966            }
10967            return;
10968          }
10969          if (!o11) return;
10970          let r7 = t11.captionEl || i10.querySelector(".f-caption");
10971          !r7 && o11 instanceof HTMLElement && o11.classList.contains("f-caption") && (r7 = o11), r7 || (r7 = document.createElement("div"), s3(r7, "f-caption"), t(o11) ? r7.innerHTML = it(o11 + "") : o11 instanceof HTMLElement && (o11.parentElement && (o11 = o11.cloneNode(true)), r7.append(o11)));
10972          const l10 = `f-caption-${y2}_${t11.index}`;
10973          r7.setAttribute("id", l10), r7.dataset.selectable = "true", s3(i10, "has-caption"), i10.setAttribute("aria-labelledby", l10), t11.captionEl = r7, i10.insertAdjacentElement("beforeend", r7);
10974        }
10975        function Ht(e11, i10 = {}) {
10976          var o11, r7;
10977          let { transition: l10, tween: u5 } = Object.assign({ transition: O2.transition, tween: O2.tween }, i10 || {});
10978          if (!H2 || !S) return;
10979          const f3 = U.length;
10980          if (!f3) return;
10981          if ((function(t11, e12) {
10982            var i11, o12, s13;
10983            if (!(H2 && C && S && e12 && t(e12) && "tween" !== e12)) return false;
10984            for (const t12 of Q) if (C - t12.dim > 0.5) return false;
10985            if (D2 > 0.5 || $4 > 0.5) return;
10986            const r8 = U.length;
10987            let l11 = t11 > B2 ? 1 : -1;
10988            t11 = q2 ? (t11 % r8 + r8) % r8 : t2(0, t11, r8 - 1), I2 && (l11 *= -1);
10989            const u6 = null === (i11 = U[B2]) || void 0 === i11 ? void 0 : i11.slides[0], f4 = null == u6 ? void 0 : u6.index, v4 = null === (o12 = U[t11]) || void 0 === o12 ? void 0 : o12.slides[0], p3 = null == v4 ? void 0 : v4.index, g3 = null === (s13 = U[t11]) || void 0 === s13 ? void 0 : s13.pos;
10990            if (void 0 === p3 || void 0 === f4 || f4 === p3 || k3 === g3 || Math.abs(C - ((null == v4 ? void 0 : v4.dim) || 0)) > 1) return false;
10991            N2 = false, S.pause(), At(), s3(H2, "in-transition"), k3 = _2 = g3;
10992            const m3 = xt(u6), h4 = xt(v4);
10993            return dt(), m3 && (K.add(f4), m3.style.transform = "", m3.addEventListener("animationend", Lt), s4(m3, O2.classes.isSelected), m3.inert = false, s3(m3, `f-${e12}Out to-${l11 > 0 ? "next" : "prev"}`)), h4 && (K.add(p3), h4.style.transform = "", h4.addEventListener("animationend", Lt), s3(h4, O2.classes.isSelected), h4.inert = false, s3(h4, `f-${e12}In from-${l11 > 0 ? "prev" : "next"}`)), Ct(), true;
10994          })(e11, l10)) return;
10995          e11 = q2 ? (e11 % f3 + f3) % f3 : t2(0, e11, f3 - 1);
10996          const v3 = (null === (o11 = U[e11 || 0]) || void 0 === o11 ? void 0 : o11.pos) || 0;
10997          _2 = v3;
10998          const p2 = S.isRunning() ? S.getEndValues().pos : k3;
10999          if (Math.abs(_2 - p2) < 1) return k3 = _2, B2 !== e11 && (Rt(), A2 = B2, B2 = e11, ut(), ft(), st("change", B2, A2)), Ct(), void (N2 || (N2 = true, st("settle")));
11000          if (S.pause(), At(), q2) {
11001            const t11 = mt(), e12 = Math.floor((p2 - (null === (r7 = U[0]) || void 0 === r7 ? void 0 : r7.pos)) / t11) || 0, n10 = _2 + e12 * t11;
11002            _2 = [n10 + t11, n10, n10 - t11].reduce(function(t12, e13) {
11003              return Math.abs(e13 - p2) < Math.abs(t12 - p2) ? e13 : t12;
11004            });
11005          }
11006          false !== l10 && t3(u5) ? S.spring(r3({}, O2.tween, u5)).from({ pos: k3 }).to({ pos: _2 }).start() : (k3 = _2, dt(), Ct(), N2 || (N2 = true, st("settle")));
11007        }
11008        function Vt(t11) {
11009          var e11;
11010          let n10 = k3;
11011          if (q2 && true !== t11) {
11012            const t12 = mt();
11013            n10 -= (Math.floor((k3 - (null === (e11 = U[0]) || void 0 === e11 ? void 0 : e11.pos) || 0) / t12) || 0) * t12;
11014          }
11015          return n10;
11016        }
11017        function Ct() {
11018          var t11;
11019          if (!H2 || !V) return;
11020          Q = ht();
11021          const e11 = /* @__PURE__ */ new Set(), n10 = [], i10 = U[B2], s13 = O2.setTransform;
11022          let l10;
11023          for (const o11 of J) {
11024            const s14 = K.has(o11.index), r7 = Q.indexOf(o11) > -1, a8 = (null === (t11 = null == i10 ? void 0 : i10.slides) || void 0 === t11 ? void 0 : t11.indexOf(o11)) > -1;
11025            if (o11.isVirtual && !s14 && !r7) continue;
11026            let c5 = xt(o11);
11027            if (c5 && (n10.push(o11), a8 && e11.add(c5), nt("adaptiveHeight") && a8)) {
11028              const t12 = (c5.firstElementChild || c5).getBoundingClientRect().height;
11029              l10 = null == l10 ? t12 : Math.max(l10, t12);
11030            }
11031          }
11032          V && l10 && (V.style.height = `${l10}px`), [...e7(V, `.${O2.classes.slide}`)].forEach((t12) => {
11033            s5(t12, O2.classes.isSelected, e11.has(t12));
11034            const n11 = W[parseInt(t12.getAttribute("index") || "-1")];
11035            if (!n11) return t12.remove(), void jt(t12);
11036            const i11 = K.has(n11.index), o11 = Q.indexOf(n11) > -1;
11037            if (n11.isVirtual && !i11 && !o11) return void Mt(n11);
11038            if (t12.inert = !o11, false === s13) return;
11039            let l11 = n11.pos ? Math.round(1e4 * n11.pos) / 1e4 : 0, a8 = 0, c5 = 0, d3 = 0, f3 = 0;
11040            i11 || (a8 = F ? 0 : I2 ? -1 * l11 : l11, c5 = F ? l11 : 0, d3 = t5(a8, 0, n11.dim, 0, 100), f3 = t5(c5, 0, n11.dim, 0, 100)), s13 instanceof Function && !i11 ? s13(It, n11, { x: a8, y: c5, xPercent: d3, yPercent: f3 }) : t12.style.transform = a8 || c5 ? `translate3d(${d3}%, ${f3}%,0)` : "";
11041          }), st("render", n10);
11042        }
11043        function Dt() {
11044          null == H2 || H2.removeEventListener("click", Pt), document.removeEventListener("mousemove", lt), K.clear(), null == j2 || j2.disconnect(), j2 = void 0;
11045          for (const t11 of W) {
11046            let n10 = t11.el;
11047            n10 && n(n10) && (t11.state = void 0, Tt(t11), Ot(t11), t11.isVirtual ? (Mt(t11), t11.el = void 0) : (jt(n10), n10.style.transform = "", V && !V.contains(n10) && V.appendChild(n10)));
11048          }
11049          for (const t11 of Object.values(R2)) null == t11 || t11.destroy();
11050          R2 = {}, null == w3 || w3.destroy(), w3 = void 0, null == S || S.destroy(), S = void 0;
11051          for (const [t11, e11] of Object.entries(O2.classes || {})) "container" !== t11 && s4(H2, e11);
11052          s4(V, "is-draggable");
11053        }
11054        function $t() {
11055          return q2 || B2 > 0;
11056        }
11057        function qt() {
11058          return q2 || B2 < U.length - 1;
11059        }
11060        const It = { add: function(t11, e11) {
11061          var n10;
11062          let i10 = k3;
11063          const o11 = B2, s13 = mt(), r7 = (null == S ? void 0 : S.isRunning()) ? S.getEndValues().pos : k3, l10 = s13 && Math.floor((r7 - ((null === (n10 = U[0]) || void 0 === n10 ? void 0 : n10.pos) || 0)) / s13) || 0;
11064          return bt(t11, e11), ct(Y), St(), S && s13 && (o11 === B2 && (i10 -= l10 * s13), i10 === _2 ? k3 = _2 : S.spring({ clamp: true, mass: 1, tension: 300, friction: 25, restDelta: 1, restSpeed: 1 }).from({ pos: i10 }).to({ pos: _2 }).start()), Ct(), It;
11065        }, canGoPrev: $t, canGoNext: qt, destroy: function() {
11066          return st("destroy"), window.removeEventListener("resize", rt), Dt(), ot.clear(), H2 = null, U = [], W = [], O2 = Object.assign({}, h2), R2 = {}, J = [], L = void 0, Y = "*", P = 2, It;
11067        }, emit: st, filter: function(t11 = "*") {
11068          return ct(t11), St(), k3 = t2(G, k3, X), Ct(), st("filter", t11), It;
11069        }, getContainer: function() {
11070          return H2;
11071        }, getGapDim: pt, getGestures: function() {
11072          return w3;
11073        }, getLastMouseMove: function() {
11074          return b2;
11075        }, getOption: function(t11) {
11076          return nt(t11);
11077        }, getOptions: function() {
11078          return O2;
11079        }, getPage: function() {
11080          return U[B2];
11081        }, getPageIndex: function(t11) {
11082          if (void 0 !== t11) {
11083            for (const e11 of U || []) for (const n10 of e11.slides) if (n10.index === t11) return e11.index;
11084            return -1;
11085          }
11086          return B2;
11087        }, getPageIndexFromPosition: vt, getPageProgress: function(t11, e11) {
11088          var n10;
11089          void 0 === t11 && (t11 = B2);
11090          const i10 = U[t11];
11091          if (!i10) return t11 > B2 ? -1 : 1;
11092          const o11 = mt(), s13 = pt();
11093          let r7 = i10.pos, l10 = Vt();
11094          if (q2 && true !== e11) {
11095            const t12 = Math.floor((l10 - (null === (n10 = U[0]) || void 0 === n10 ? void 0 : n10.pos)) / o11) || 0;
11096            l10 -= t12 * o11, r7 = [r7 + o11, r7, r7 - o11].reduce(function(t13, e12) {
11097              return Math.abs(e12 - l10) < Math.abs(t13 - l10) ? e12 : t13;
11098            });
11099          }
11100          return (l10 - r7) / (i10.dim + s13) || 0;
11101        }, getPageVisibility: function(t11) {
11102          var e11;
11103          void 0 === t11 && (t11 = B2);
11104          const n10 = U[t11];
11105          if (!n10) return t11 > B2 ? -1 : 1;
11106          const i10 = Vt(), o11 = gt();
11107          let s13 = n10.pos;
11108          if (q2) {
11109            const t12 = mt(), n11 = s13 + (Math.floor((i10 - (null === (e11 = U[0]) || void 0 === e11 ? void 0 : e11.pos)) / t12) || 0) * t12;
11110            s13 = [n11 + t12, n11, n11 - t12].reduce(function(t13, e12) {
11111              return Math.abs(e12 - i10) < Math.abs(t13 - i10) ? e12 : t13;
11112            });
11113          }
11114          return s13 > i10 && s13 + n10.dim < i10 + o11 ? 1 : s13 < i10 ? (s13 + n10.dim - i10) / n10.dim || 0 : s13 + n10.dim > i10 + o11 && (i10 + o11 - s13) / n10.dim || 0;
11115        }, getPages: function() {
11116          return U;
11117        }, getPlugins: function() {
11118          return R2;
11119        }, getPosition: Vt, getSlides: function() {
11120          return W;
11121        }, getState: function() {
11122          return P;
11123        }, getTotalSlideDim: mt, getTween: function() {
11124          return S;
11125        }, getViewport: function() {
11126          return V;
11127        }, getViewportDim: gt, getVisibleSlides: function(t11) {
11128          return void 0 === t11 ? Q : ht(t11);
11129        }, goTo: Ht, hasNavigated: function() {
11130          return void 0 !== A2;
11131        }, hideError: Ot, hideLoading: Tt, init: function() {
11132          if (!g2 || !n(g2)) throw new Error("No Element found");
11133          return 0 !== P && (Dt(), P = 0), H2 = g2, T = x2, window.removeEventListener("resize", rt), T.breakpoints && window.addEventListener("resize", rt), rt(), It;
11134        }, isInfinite: function() {
11135          return q2;
11136        }, isInTransition: function() {
11137          return K.size > 0;
11138        }, isRTL: function() {
11139          return I2;
11140        }, isSettled: function() {
11141          return N2;
11142        }, isVertical: function() {
11143          return F;
11144        }, localize: function(t11, e11 = []) {
11145          return it(t11, e11);
11146        }, next: function(t11 = {}) {
11147          return Ht(B2 + 1, t11), It;
11148        }, off: function(t11, e11) {
11149          for (const n10 of t11 instanceof Array ? t11 : [t11]) ot.has(n10) && ot.set(n10, ot.get(n10).filter((t12) => t12 !== e11));
11150          return It;
11151        }, on: function(t11, e11) {
11152          for (const n10 of t11 instanceof Array ? t11 : [t11]) ot.set(n10, [...ot.get(n10) || [], e11]);
11153          return It;
11154        }, prev: function(t11 = {}) {
11155          return Ht(B2 - 1, t11), It;
11156        }, reInit: function(e11 = {}, n10) {
11157          return Dt(), P = 0, L = void 0, Y = "*", x2 = e11, T = e11, t3(n10) && (M3 = n10), rt(), It;
11158        }, remove: function(t11) {
11159          void 0 === t11 && (t11 = W.length - 1);
11160          const e11 = W[t11];
11161          return e11 && (st("removeSlide", e11), e11.el && (jt(e11.el), e11.el.remove(), e11.el = void 0), W.splice(t11, 1), ct(Y), St(), k3 = t2(G, k3, X), Ct()), It;
11162        }, setPosition: function(t11) {
11163          k3 = t11, dt(), Ct();
11164        }, showError: function(t11, e11) {
11165          if (1 === P) {
11166            Tt(t11), Ot(t11);
11167            const n10 = t11.el;
11168            if (n10) {
11169              const i10 = document.createElement("div");
11170              s3(i10, "f-html"), s3(i10, "is-error"), i10.innerHTML = it(e11 || "<p>{{ERROR}}</p>"), t11.htmlEl = i10, s3(n10, "has-html has-error"), n10.insertAdjacentElement("afterbegin", i10), st("contentReady", t11);
11171            }
11172          }
11173          return It;
11174        }, showLoading: function(t11) {
11175          const e11 = t11.el, n10 = null == e11 ? void 0 : e11.querySelector(".f-spinner");
11176          if (!e11 || n10) return It;
11177          const i10 = nt("spinnerTpl"), o11 = e2(i10);
11178          return o11 && (s3(o11, "f-spinner"), e11.insertAdjacentElement("beforeend", o11)), It;
11179        }, version: "6.1.10" };
11180        return It;
11181      };
11182      E2.l10n = { en_EN: o3 }, E2.getDefaults = () => h2;
11183    }
11184  });
11185
11186  
vendor: 857 bytes, lines 11186-11203
11186// node_modules/@fancyapps/ui/dist/utils/scrollLock.js
11187  var t6;
11188  var init_scrollLock = __esm({
11189    "node_modules/@fancyapps/ui/dist/utils/scrollLock.js"() {
11190      t6 = (t11 = true, e11 = "--f-scrollbar-compensate", s13 = "--f-body-margin", o11 = "hide-scrollbar") => {
11191        const n10 = document, r7 = n10.body, l10 = n10.documentElement;
11192        if (t11) {
11193          if (r7.classList.contains(o11)) return;
11194          let t12 = window.innerWidth - l10.getBoundingClientRect().width;
11195          t12 < 0 && (t12 = 0), l10.style.setProperty(e11, `${t12}px`);
11196          const n11 = parseFloat(window.getComputedStyle(r7).marginRight);
11197          n11 && r7.style.setProperty(s13, `${n11}px`), r7.classList.add(o11);
11198        } else r7.classList.remove(o11), r7.style.setProperty(s13, ""), n10.documentElement.style.setProperty(e11, "");
11199      };
11200    }
11201  });
11202
11203  
vendor: 281 bytes, lines 11203-11212
11203// node_modules/@fancyapps/ui/dist/utils/canUseDOM.js
11204  function e8() {
11205    return !("undefined" == typeof window || !window.document || !window.document.createElement);
11206  }
11207  var init_canUseDOM = __esm({
11208    "node_modules/@fancyapps/ui/dist/utils/canUseDOM.js"() {
11209    }
11210  });
11211
11212  
vendor: 276 bytes, lines 11212-11222
11212// node_modules/@fancyapps/ui/dist/utils/replaceAll.js
11213  var n5;
11214  var init_replaceAll = __esm({
11215    "node_modules/@fancyapps/ui/dist/utils/replaceAll.js"() {
11216      n5 = function(n10 = "", t11 = "", o11 = "") {
11217        return n10.split(t11).join(o11);
11218      };
11219    }
11220  });
11221
11222  
vendor: 5,044 bytes, lines 11222-11309
11222// node_modules/@fancyapps/ui/dist/carousel/carousel.zoomable.js
11223  var a3, s6;
11224  var init_carousel_zoomable = __esm({
11225    "node_modules/@fancyapps/ui/dist/carousel/carousel.zoomable.js"() {
11226      init_isPlainObject();
11227      init_isString();
11228      init_replaceAll();
11229      init_panzoom();
11230      a3 = { tpl: (t11) => `<img class="f-panzoom__content" 
11231    ${t11.srcset ? 'data-lazy-srcset="{{srcset}}"' : ""} 
11232    ${t11.sizes ? 'data-lazy-sizes="{{sizes}}"' : ""} 
11233    data-lazy-src="{{src}}" alt="{{alt}}" />` };
11234      s6 = () => {
11235        let s13;
11236        function l10(e11, o11) {
11237          const n10 = null == s13 ? void 0 : s13.getOptions().Zoomable;
11238          let i10 = (t3(n10) ? Object.assign(Object.assign({}, a3), n10) : a3)[e11];
11239          return i10 && "function" == typeof i10 && o11 ? i10(o11) : i10;
11240        }
11241        function c5() {
11242          s13 && false !== s13.getOptions().Zoomable && (s13.on("addSlide", f3), s13.on("removeSlide", u5), s13.on("attachSlideEl", g2), s13.on("click", d3), s13.on("change", r7), s13.on("ready", r7));
11243        }
11244        function r7() {
11245          m3();
11246          const t11 = (null == s13 ? void 0 : s13.getVisibleSlides()) || [];
11247          if (t11.length > 1 || "slide" === (null == s13 ? void 0 : s13.getOption("transition"))) for (const e11 of t11) {
11248            const t12 = e11.panzoomRef;
11249            t12 && ((null == s13 ? void 0 : s13.getPage().slides) || []).indexOf(e11) < 0 && t12.execute(v.ZoomTo, Object.assign({}, t12.getStartPosition()));
11250          }
11251        }
11252        function d3(t11, e11) {
11253          const o11 = e11.target;
11254          o11 && !e11.defaultPrevented && o11.dataset.panzoomAction && p2(o11.dataset.panzoomAction);
11255        }
11256        function f3(t11, i10) {
11257          const a8 = i10.el;
11258          if (!s13 || !a8 || i10.panzoomRef) return;
11259          const c6 = i10.src || i10.lazySrc || "", r8 = i10.alt || i10.caption || `Image #${i10.index}`, d4 = i10.srcset || i10.lazySrcset || "", f4 = i10.sizes || i10.lazySizes || "";
11260          if (c6 && t(c6) && !i10.html && (!i10.type || "image" === i10.type)) {
11261            i10.type = "image", i10.thumbSrc = i10.thumbSrc || c6;
11262            let t12 = l10("tpl", i10);
11263            t12 = n5(t12, "{{src}}", c6 + ""), t12 = n5(t12, "{{srcset}}", d4 + ""), t12 = n5(t12, "{{sizes}}", f4 + ""), a8.insertAdjacentHTML("afterbegin", t12);
11264          }
11265          const u6 = a8.querySelector(".f-panzoom__content");
11266          if (!u6) return;
11267          u6.setAttribute("alt", r8 + "");
11268          const g3 = i10.width && "auto" !== i10.width ? parseFloat(i10.width + "") : "auto", p3 = i10.height && "auto" !== i10.height ? parseFloat(i10.height + "") : "auto", z2 = E(a8, Object.assign({ width: g3, height: p3, classes: { container: "f-zoomable" }, event: () => null == s13 ? void 0 : s13.getLastMouseMove(), spinnerTpl: () => (null == s13 ? void 0 : s13.getOption("spinnerTpl")) || "" }, l10("Panzoom")));
11269          z2.on("*", (t12, e11, ...o11) => {
11270            s13 && ("loading" === e11 && (i10.state = 0), "loaded" === e11 && (i10.state = 1), "error" === e11 && (i10.state = 2, null == s13 || s13.showError(i10, "{{IMAGE_ERROR}}")), s13.emit(`panzoom:${e11}`, i10, ...o11), "loading" === e11 && s13.emit("contentLoading", i10), "ready" === e11 && s13.emit("contentReady", i10), i10.index === (null == s13 ? void 0 : s13.getPageIndex()) && m3());
11271          }), i10.panzoomRef = z2;
11272        }
11273        function u5(t11, e11) {
11274          e11.panzoomRef && (e11.panzoomRef.destroy(), e11.panzoomRef = void 0);
11275        }
11276        function g2(t11, e11) {
11277          const o11 = e11.panzoomRef;
11278          if (o11) switch (o11.getState()) {
11279            case 0:
11280              o11.init();
11281              break;
11282            case 3:
11283              o11.execute(v.ZoomTo, Object.assign(Object.assign({}, o11.getStartPosition()), { velocity: 0 }));
11284          }
11285        }
11286        function m3() {
11287          var t11, e11;
11288          const o11 = (null == s13 ? void 0 : s13.getContainer()) || void 0, n10 = null === (e11 = null === (t11 = null == s13 ? void 0 : s13.getPage()) || void 0 === t11 ? void 0 : t11.slides[0]) || void 0 === e11 ? void 0 : e11.panzoomRef;
11289          if (o11) if (n10) n10.updateControls(o11);
11290          else for (const t12 of o11.querySelectorAll("[data-panzoom-action]") || []) t12.setAttribute("aria-disabled", ""), t12.setAttribute("tabindex", "-1");
11291        }
11292        function p2(t11, ...e11) {
11293          var o11;
11294          null === (o11 = null == s13 ? void 0 : s13.getPage().slides[0].panzoomRef) || void 0 === o11 || o11.execute(t11, ...e11);
11295        }
11296        return { init: function(t11) {
11297          s13 = t11, s13.on("initPlugins", c5);
11298        }, destroy: function() {
11299          if (s13) {
11300            s13.off("initPlugins", c5), s13.off("addSlide", f3), s13.off("removeSlide", u5), s13.off("attachSlideEl", g2), s13.off("click", d3), s13.off("change", r7), s13.off("ready", r7);
11301            for (const t11 of s13.getSlides()) u5(0, t11);
11302          }
11303          s13 = void 0;
11304        }, execute: p2 };
11305      };
11306    }
11307  });
11308
11309  
vendor: 4,176 bytes, lines 11309-11392
11309// node_modules/@fancyapps/ui/dist/carousel/carousel.sync.js
11310  var e9, i3;
11311  var init_carousel_sync = __esm({
11312    "node_modules/@fancyapps/ui/dist/carousel/carousel.sync.js"() {
11313      init_isPlainObject();
11314      e9 = { syncOnChange: false, syncOnClick: true, syncOnHover: false };
11315      i3 = () => {
11316        let i10, t11;
11317        function o11() {
11318          const t12 = null == i10 ? void 0 : i10.getOptions().Sync;
11319          return t3(t12) ? Object.assign(Object.assign({}, e9), t12) : e9;
11320        }
11321        function s13(n10) {
11322          var e11, s14, l11;
11323          i10 && n10 && (t11 = n10, i10.getOptions().classes = Object.assign(Object.assign({}, i10.getOptions().classes), { isSelected: "" }), i10.getOptions().initialSlide = (null === (s14 = null === (e11 = t11.getPage()) || void 0 === e11 ? void 0 : e11.slides[0]) || void 0 === s14 ? void 0 : s14.index) || 0, o11().syncOnChange && i10.on("change", c5), o11().syncOnClick && i10.on("click", g2), o11().syncOnHover && (null === (l11 = i10.getViewport()) || void 0 === l11 || l11.addEventListener("mouseover", u5)), (function() {
11324            if (!i10 || !t11) return;
11325            i10.on("ready", d3), i10.on("refresh", a8), t11.on("change", r7), t11.on("filter", f3);
11326          })());
11327        }
11328        function l10() {
11329          const n10 = o11().target;
11330          i10 && n10 && s13(n10);
11331        }
11332        function d3() {
11333          v3();
11334        }
11335        function c5() {
11336          var n10;
11337          if (i10 && t11) {
11338            const e11 = (null === (n10 = i10.getPage()) || void 0 === n10 ? void 0 : n10.slides) || [], o12 = t11.getPageIndex(e11[0].index || 0);
11339            o12 > -1 && t11.goTo(o12, i10.hasNavigated() ? void 0 : { tween: false, transition: false }), v3();
11340          }
11341        }
11342        function r7() {
11343          var n10;
11344          if (i10 && t11) {
11345            const e11 = i10.getPageIndex((null === (n10 = t11.getPage()) || void 0 === n10 ? void 0 : n10.slides[0].index) || 0);
11346            e11 > -1 && i10.goTo(e11, t11.hasNavigated() ? void 0 : { tween: false, transition: false }), v3();
11347          }
11348        }
11349        function g2(n10, e11) {
11350          var o12;
11351          if (!i10 || !t11) return;
11352          if (null === (o12 = i10.getTween()) || void 0 === o12 ? void 0 : o12.isRunning()) return;
11353          const s14 = null == i10 ? void 0 : i10.getOptions().classes.slide;
11354          if (!s14) return;
11355          const l11 = s14 ? e11.target.closest(`.${s14}`) : null;
11356          if (l11) {
11357            const n11 = parseInt(l11.getAttribute("index") || "") || 0, e12 = t11.getPageIndex(n11);
11358            t11.goTo(e12);
11359          }
11360        }
11361        function u5(n10) {
11362          i10 && g2(0, n10);
11363        }
11364        function a8() {
11365          var n10;
11366          if (i10 && t11) {
11367            const e11 = i10.getPageIndex((null === (n10 = t11.getPage()) || void 0 === n10 ? void 0 : n10.slides[0].index) || 0);
11368            e11 > -1 && i10.goTo(e11, { tween: false, transition: false }), v3();
11369          }
11370        }
11371        function f3(n10, e11) {
11372          i10 && t11 && (i10.filter(e11), r7());
11373        }
11374        function v3() {
11375          var n10, e11, o12;
11376          if (!t11) return;
11377          const s14 = (null === (e11 = null === (n10 = t11.getPage()) || void 0 === n10 ? void 0 : n10.slides[0]) || void 0 === e11 ? void 0 : e11.index) || 0;
11378          for (const n11 of (null == i10 ? void 0 : i10.getSlides()) || []) null === (o12 = n11.el) || void 0 === o12 || o12.classList.toggle("is-selected", n11.index === s14);
11379        }
11380        return { init: function(n10) {
11381          i10 = n10, i10.on("initSlides", l10);
11382        }, destroy: function() {
11383          var n10;
11384          null == i10 || i10.off("ready", d3), null == i10 || i10.off("refresh", a8), null == i10 || i10.off("change", c5), null == i10 || i10.off("click", g2), null === (n10 = null == i10 ? void 0 : i10.getViewport()) || void 0 === n10 || n10.removeEventListener("mouseover", u5), null == t11 || t11.off("change", r7), null == t11 || t11.off("filter", f3), t11 = void 0, null == i10 || i10.off("initSlides", l10), i10 = void 0;
11385        }, getTarget: function() {
11386          return t11;
11387        } };
11388      };
11389    }
11390  });
11391
11392  
vendor: 3,299 bytes, lines 11392-11459
11392// node_modules/@fancyapps/ui/dist/carousel/carousel.lazyload.js
11393  var s7, n6, o4, l2, i4;
11394  var init_carousel_lazyload = __esm({
11395    "node_modules/@fancyapps/ui/dist/carousel/carousel.lazyload.js"() {
11396      init_addClass();
11397      init_isPlainObject();
11398      init_removeClass();
11399      s7 = { showLoading: true, preload: 1 };
11400      n6 = "is-lazyloading";
11401      o4 = "is-lazyloaded";
11402      l2 = "has-lazyerror";
11403      i4 = () => {
11404        let i10;
11405        function d3() {
11406          const e11 = null == i10 ? void 0 : i10.getOptions().Lazyload;
11407          return t3(e11) ? Object.assign(Object.assign({}, s7), e11) : s7;
11408        }
11409        function r7(t11) {
11410          var s13;
11411          const r8 = t11.el;
11412          if (!r8) return;
11413          const c6 = "[data-lazy-src],[data-lazy-srcset],[data-lazy-bg]", u5 = Array.from(r8.querySelectorAll(c6));
11414          r8.matches(c6) && u5.push(r8);
11415          for (const r9 of u5) {
11416            const c7 = r9.dataset.lazySrc, u6 = r9.dataset.lazySrcset, f3 = r9.dataset.lazySizes, m3 = r9.dataset.lazyBg, y3 = (r9 instanceof HTMLImageElement || r9 instanceof HTMLSourceElement) && (c7 || u6), z2 = r9 instanceof HTMLElement && m3;
11417            if (!y3 && !z2) continue;
11418            const g2 = c7 || u6 || m3;
11419            if (g2) {
11420              if (y3 && g2) {
11421                const m4 = null === (s13 = r9.parentElement) || void 0 === s13 ? void 0 : s13.classList.contains("f-panzoom__wrapper");
11422                d3().showLoading && (null == i10 || i10.showLoading(t11)), r9.addEventListener("load", () => {
11423                  null == i10 || i10.hideLoading(t11), s4(r9, l2), r9 instanceof HTMLImageElement ? r9.decode().then(() => {
11424                    s4(r9, n6), s3(r9, o4);
11425                  }).catch(() => {
11426                    s4(r9, n6), s3(r9, o4);
11427                  }) : (s4(r9, n6), s3(r9, o4)), m4 || null == i10 || i10.emit("lazyLoad:loaded", t11, r9, g2);
11428                }), r9.addEventListener("error", () => {
11429                  null == i10 || i10.hideLoading(t11), s4(r9, n6), s3(r9, l2), m4 || null == i10 || i10.emit("lazyLoad:error", t11, r9, g2);
11430                }), r9.classList.add("f-lazyload"), r9.classList.add(n6), m4 || null == i10 || i10.emit("lazyLoad:load", t11, r9, g2), c7 && (r9.src = c7), u6 && (r9.srcset = u6), f3 && (r9.sizes = f3);
11431              } else if (z2) {
11432                if (!document.body.contains(r9)) {
11433                  document.createElement("img").src = m3;
11434                }
11435                r9.style.backgroundImage = `url('${m3}')`;
11436              }
11437              delete r9.dataset.lazySrc, delete r9.dataset.lazySrcset, delete r9.dataset.lazySizes, delete r9.dataset.lazyBg;
11438            }
11439          }
11440        }
11441        function c5() {
11442          if (!i10) return;
11443          const e11 = [...i10.getVisibleSlides()], t11 = d3().preload;
11444          if (t11 > 0) {
11445            const a8 = i10.getPosition(), s13 = i10.getViewportDim();
11446            e11.push(...i10.getVisibleSlides(a8 + s13 * t11), ...i10.getVisibleSlides(a8 - s13 * t11));
11447          }
11448          for (const t12 of e11) r7(t12);
11449        }
11450        return { init: function(e11) {
11451          i10 = e11, i10.on("render", c5);
11452        }, destroy: function() {
11453          null == i10 || i10.off("render", c5), i10 = void 0;
11454        } };
11455      };
11456    }
11457  });
11458
11459  
vendor: 2,176 bytes, lines 11459-11501
11459// node_modules/@fancyapps/ui/dist/carousel/carousel.arrows.js
11460  var r4, i5, s8, l3;
11461  var init_carousel_arrows = __esm({
11462    "node_modules/@fancyapps/ui/dist/carousel/carousel.arrows.js"() {
11463      init_addClass();
11464      init_isPlainObject();
11465      init_strToHtml();
11466      init_toggleClass();
11467      r4 = '<svg width="24" height="24" viewBox="0 0 24 24" tabindex="-1">';
11468      i5 = "</svg>";
11469      s8 = { prevTpl: r4 + '<path d="M15 3l-9 9 9 9"></path>' + i5, nextTpl: r4 + '<path d="M9 3l9 9-9 9"></path>' + i5 };
11470      l3 = () => {
11471        let r7, i10, l10;
11472        function a8() {
11473          const t11 = null == r7 ? void 0 : r7.getOptions().Arrows;
11474          return t3(t11) ? Object.assign(Object.assign({}, s8), t11) : s8;
11475        }
11476        function u5(e11) {
11477          if (!r7) return;
11478          const o11 = `<button data-carousel-go-${e11} tabindex="0" class="f-button is-arrow is-${e11}" title="{{${e11.toUpperCase()}}}">` + a8()[`${e11}Tpl`] + "</button", i11 = e2(r7.localize(o11)) || void 0;
11479          return i11 && s3(i11, a8()[`${e11}Class`]), i11;
11480        }
11481        function c5() {
11482          var t11;
11483          null == i10 || i10.remove(), i10 = void 0, null == l10 || l10.remove(), l10 = void 0, null === (t11 = null == r7 ? void 0 : r7.getContainer()) || void 0 === t11 || t11.classList.remove("has-arrows");
11484        }
11485        function d3() {
11486          r7 && false !== r7.getOptions().Arrows && r7.getPages().length > 1 ? (!(function() {
11487            if (!r7) return;
11488            const t11 = r7.getViewport();
11489            t11 && (i10 || (i10 = u5("prev"), i10 && t11.insertAdjacentElement("beforebegin", i10)), l10 || (l10 = u5("next"), l10 && t11.insertAdjacentElement("afterend", l10)), s5(r7.getContainer(), "has-arrows", !(!i10 && !l10)));
11490          })(), r7 && (null == i10 || i10.toggleAttribute("aria-disabled", !r7.canGoPrev()), null == l10 || l10.toggleAttribute("aria-disabled", !r7.canGoNext()))) : c5();
11491        }
11492        return { init: function(t11) {
11493          r7 = t11.on(["change", "refresh"], d3);
11494        }, destroy: function() {
11495          c5(), null == r7 || r7.off(["change", "refresh"], d3), r7 = void 0;
11496        } };
11497      };
11498    }
11499  });
11500
11501  
vendor: 2,156 bytes, lines 11501-11513
11501// node_modules/@fancyapps/ui/dist/shared/buttons.js
11502  var t7, M2, o5, v2;
11503  var init_buttons = __esm({
11504    "node_modules/@fancyapps/ui/dist/shared/buttons.js"() {
11505      t7 = '<circle cx="11" cy="11" r="7.5"/><path d="m21 21-4.35-4.35M8 11h6"/>';
11506      M2 = '<g><line x1="11" y1="8" x2="11" y2="14"></line></g>' + t7;
11507      o5 = { moveLeft: ["moveLeft", "MOVE_LEFT", '<path d="M5 12h14M5 12l6 6M5 12l6-6"/>'], moveRight: ["moveRight", "MOVE_RIGHT", '<path d="M5 12h14M13 18l6-6M13 6l6 6"/>'], moveUp: ["moveUp", "MOVE_UP", '<path d="M12 5v14M18 11l-6-6M6 11l6-6"/>'], moveDown: ["moveDown", "MOVE_DOWN", '<path d="M12 5v14M18 13l-6 6M6 13l6 6"/>'], zoomOut: ["zoomOut", "ZOOM_OUT", t7], zoomIn: ["zoomIn", "ZOOM_IN", M2], toggleFull: ["toggleFull", "TOGGLE_FULL", M2], iterateZoom: ["iterateZoom", "ITERATE_ZOOM", M2], toggle1to1: ["toggleFull", "TOGGLE_FULL", '<path d="M3.51 3.07c5.74.02 11.48-.02 17.22.02 1.37.1 2.34 1.64 2.18 3.13 0 4.08.02 8.16 0 12.23-.1 1.54-1.47 2.64-2.79 2.46-5.61-.01-11.24.02-16.86-.01-1.36-.12-2.33-1.65-2.17-3.14 0-4.07-.02-8.16 0-12.23.1-1.36 1.22-2.48 2.42-2.46Z"/><path d="M5.65 8.54h1.49v6.92m8.94-6.92h1.49v6.92M11.5 9.4v.02m0 5.18v0"/>'], rotateCCW: ["rotateCCW", "ROTATE_CCW", '<path d="M15 4.55a8 8 0 0 0-6 14.9M9 15v5H4M18.37 7.16v.01M13 19.94v.01M16.84 18.37v.01M19.37 15.1v.01M19.94 11v.01"/>'], rotateCW: ["rotateCW", "ROTATE_CW", '<path d="M9 4.55a8 8 0 0 1 6 14.9M15 15v5h5M5.63 7.16v.01M4.06 11v.01M4.63 15.1v.01M7.16 18.37v.01M11 19.94v.01"/>'], flipX: ["flipX", "FLIP_X", '<path d="M12 3v18M16 7v10h5L16 7M8 7v10H3L8 7"/>'], flipY: ["flipY", "FLIP_Y", '<path d="M3 12h18M7 16h10L7 21v-5M7 8h10L7 3v5"/>'], reset: ["reset", "RESET", '<path d="M20 11A8.1 8.1 0 0 0 4.5 9M4 5v4h4M4 13a8.1 8.1 0 0 0 15.5 2m.5 4v-4h-4"/>'], toggleFS: ["toggleFS", "TOGGLE_FS", '<g><path d="M14.5 9.5 21 3m0 0h-6m6 0v6M3 21l6.5-6.5M3 21v-6m0 6h6"/></g><g><path d="m14 10 7-7m-7 7h6m-6 0V4M3 21l7-7m0 0v6m0-6H4"/></g>'] };
11508      v2 = {};
11509      for (const [t11, M3] of Object.entries(o5)) v2[t11] = { tpl: `<button data-panzoom-action="${M3[0]}" class="f-button" title="{{${M3[1]}}}"><svg>${M3[2]}</svg></button>` };
11510    }
11511  });
11512
11513  
vendor: 4,981 bytes, lines 11513-11596
11513// node_modules/@fancyapps/ui/dist/carousel/carousel.toolbar.js
11514  var l4, s9, a4, r5;
11515  var init_carousel_toolbar = __esm({
11516    "node_modules/@fancyapps/ui/dist/carousel/carousel.toolbar.js"() {
11517      init_isPlainObject();
11518      init_isString();
11519      init_strToHtml();
11520      init_buttons();
11521      init_extend();
11522      !(function(t11) {
11523        t11.Left = "left", t11.middle = "middle", t11.right = "right";
11524      })(l4 || (l4 = {}));
11525      s9 = Object.assign({ counter: { tpl: '<div class="f-counter"><span data-carousel-page></span>/<span data-carousel-pages></span></div>' }, download: { tpl: '<button data-carousel-download class="f-button" title="{{DOWNLOAD}}"><svg><path d="M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2M7 11l5 5 5-5M12 4v12"/></svg></button>' }, autoplay: { tpl: '<button data-autoplay-action="toggle" class="f-button" title="{{TOGGLE_AUTOPLAY}}"><svg><g><path d="M5 3.5 19 12 5 20.5Z"/></g><g><path d="M8 4v15M17 4v15"/></g></svg></button>' }, thumbs: { tpl: '<button data-thumbs-action="toggle" class="f-button" title="{{TOGGLE_THUMBS}}"><svg><rect width="18" height="14" x="3" y="3" rx="2"/><path d="M4 21h1M9 21h1M14 21h1M19 21h1"/></svg></button>' } }, v2);
11526      a4 = { absolute: false, display: { left: [], middle: ["zoomIn", "zoomOut", "toggle1to1", "rotateCCW", "rotateCW", "flipX", "flipY", "reset"], right: [] }, enabled: "auto", items: {} };
11527      r5 = () => {
11528        let l10, r7;
11529        function u5(e11) {
11530          const o11 = null == l10 ? void 0 : l10.getOptions().Toolbar;
11531          let n10 = (t3(o11) ? Object.assign(Object.assign({}, a4), o11) : a4)[e11];
11532          return n10 && "function" == typeof n10 && l10 ? n10(l10) : n10;
11533        }
11534        function c5() {
11535          var a8, c6;
11536          if (!(null == l10 ? void 0 : l10.getOptions().Toolbar)) return;
11537          if (!l10 || r7) return;
11538          const d3 = l10.getContainer();
11539          if (!d3) return;
11540          let f3 = u5("enabled");
11541          if (!f3) return;
11542          const g2 = u5("absolute"), p2 = l10.getSlides().length > 1;
11543          let b3 = false, m3 = false;
11544          for (const t11 of l10.getSlides()) t11.panzoomRef && (b3 = true), (t11.downloadSrc || "image" === t11.type && t11.src) && (m3 = true);
11545          const v3 = (null === (a8 = l10.getPlugins().Thumbs) || void 0 === a8 ? void 0 : a8.isEnabled()) || false, h4 = p2 && l10.getPlugins().Autoplay || false, E3 = l10.getPlugins().Fullscreen && (document.fullscreenEnabled || document.webkitFullscreenEnabled);
11546          if ("auto" === f3 && (f3 = b3), !f3) return;
11547          r7 = d3.querySelector(".f-carousel__toolbar") || void 0, r7 || (r7 = document.createElement("div"), r7.classList.add("f-carousel__toolbar"));
11548          const y3 = u5("display"), j2 = r3({}, s9, u5("items"));
11549          for (const i10 of ["left", "middle", "right"]) {
11550            const s13 = y3[i10] || [], a9 = document.createElement("div");
11551            a9.classList.add("f-carousel__toolbar__column"), a9.classList.add(`is-${i10}`);
11552            for (const i11 of s13) {
11553              let s14;
11554              if (t(i11)) {
11555                if ("counter" === i11 && !p2) continue;
11556                if ("autoplay" === i11 && !h4) continue;
11557                if (v2[i11] && !b3) continue;
11558                if ("fullscreen" === i11 && !E3) continue;
11559                if ("thumbs" === i11 && !v3) continue;
11560                if ("download" === i11 && !m3) continue;
11561                s14 = j2[i11];
11562              }
11563              if (t3(i11) && (s14 = i11), s14 && s14.tpl) {
11564                let t11 = l10.localize(s14.tpl);
11565                t11 = t11.split("<svg>").join('<svg tabindex="-1" width="24" height="24" viewBox="0 0 24 24">');
11566                const e11 = e2(t11);
11567                e11 && ("function" == typeof s14.click && l10 && e11.addEventListener("click", (t12) => {
11568                  t12.preventDefault(), t12.stopPropagation(), "function" == typeof s14.click && l10 && s14.click(l10, t12);
11569                }), a9.append(e11));
11570              }
11571            }
11572            r7.append(a9);
11573          }
11574          if (r7.childElementCount) {
11575            if (g2 && r7.classList.add("is-absolute"), !r7.parentElement) {
11576              const t11 = u5("parentEl");
11577              t11 ? t11.insertAdjacentElement("afterbegin", r7) : null === (c6 = l10.getViewport()) || void 0 === c6 || c6.insertAdjacentElement("beforebegin", r7);
11578            }
11579            d3.contains(r7) && d3.classList.add("has-toolbar");
11580          }
11581        }
11582        return { init: function(t11) {
11583          l10 = t11, null == l10 || l10.on("initSlides", c5);
11584        }, destroy: function() {
11585          var t11;
11586          null == l10 || l10.off("initSlides", c5), null === (t11 = null == l10 ? void 0 : l10.getContainer()) || void 0 === t11 || t11.classList.remove("has-toolbar"), null == r7 || r7.remove(), r7 = void 0;
11587        }, add: function(t11, e11) {
11588          s9[t11] = e11;
11589        }, isEnabled: function() {
11590          return !!r7;
11591        } };
11592      };
11593    }
11594  });
11595
11596  
vendor: 5,235 bytes, lines 11596-11709
11596// node_modules/@fancyapps/ui/dist/carousel/carousel.autoplay.js
11597  var n7, o6;
11598  var init_carousel_autoplay = __esm({
11599    "node_modules/@fancyapps/ui/dist/carousel/carousel.autoplay.js"() {
11600      init_isPlainObject();
11601      init_addClass();
11602      n7 = { autoStart: true, pauseOnHover: true, showProgressbar: true, timeout: 2e3 };
11603      o6 = () => {
11604        let o11, i10, a8 = false, s13 = false, l10 = false, r7 = null;
11605        function u5(e11) {
11606          const i11 = null == o11 ? void 0 : o11.getOptions().Autoplay;
11607          let a9 = (t3(i11) ? Object.assign(Object.assign({}, n7), i11) : n7)[e11];
11608          return a9 && "function" == typeof a9 && o11 ? a9(o11) : a9;
11609        }
11610        function f3() {
11611          clearTimeout(i10), i10 = void 0;
11612        }
11613        function g2() {
11614          if (!o11 || !a8 || l10 || s13 || i10 || !o11.isSettled() || (function() {
11615            var t12;
11616            const e11 = (null === (t12 = null == o11 ? void 0 : o11.getPage()) || void 0 === t12 ? void 0 : t12.slides) || [];
11617            for (const t13 of e11) if (0 === t13.state) return true;
11618            return false;
11619          })()) return;
11620          !(function() {
11621            var t12, n10, i11, a9;
11622            if (!o11) return;
11623            if (v3(), !u5("showProgressbar")) return;
11624            let s14 = u5("progressbarParentEl");
11625            !s14 && (null === (t12 = o11.getPlugins().Toolbar) || void 0 === t12 ? void 0 : t12.isEnabled()) && (s14 = o11.getContainer());
11626            if (!s14 && true !== (null === (n10 = o11.getPlugins().Toolbar) || void 0 === n10 ? void 0 : n10.isEnabled())) {
11627              const t13 = (null === (i11 = o11.getPages()[0]) || void 0 === i11 ? void 0 : i11.slides) || [], e11 = (null === (a9 = o11.getPage()) || void 0 === a9 ? void 0 : a9.slides) || [];
11628              1 === t13.length && 1 === e11.length && (s14 = e11[0].el);
11629            }
11630            s14 || (s14 = o11.getViewport());
11631            if (!s14) return;
11632            r7 = document.createElement("div"), s3(r7, "f-progressbar"), s14.prepend(r7);
11633            const l11 = u5("timeout") || 1e3;
11634            r7.style.animationDuration = `${l11}ms`;
11635          })();
11636          const t11 = u5("timeout");
11637          i10 = setTimeout(() => {
11638            o11 && a8 && !s13 && (o11.isInfinite() || o11.getPageIndex() !== o11.getPages().length - 1 ? o11.next() : o11.goTo(0));
11639          }, t11);
11640        }
11641        function c5() {
11642          var t11;
11643          if (!o11 || o11.getPages().length < 2 || false === o11.getOptions().Autoplay) return;
11644          if (a8) return;
11645          a8 = true, o11.emit("autoplay:start", u5("timeout")), s3(o11.getContainer(), "has-autoplay"), null === (t11 = o11.getTween()) || void 0 === t11 || t11.on("start", b3);
11646          const n10 = null == o11 ? void 0 : o11.getContainer();
11647          n10 && u5("pauseOnHover") && matchMedia("(hover: hover)").matches && (n10.addEventListener("mouseenter", E3, false), n10.addEventListener("mouseleave", w3, false)), o11.on("change", P), o11.on("settle", y3), o11.on("contentReady", p2), o11.on("panzoom:touchStart", d3), o11.on("panzoom:wheel", d3), o11.isSettled() && g2();
11648        }
11649        function d3() {
11650          var t11;
11651          if (f3(), v3(), o11) {
11652            if (a8) {
11653              o11.emit("autoplay:end"), null === (t11 = o11.getTween()) || void 0 === t11 || t11.off("start", b3);
11654              const e11 = o11.getContainer();
11655              e11 && (e11.classList.remove("has-autoplay"), e11.removeEventListener("mouseenter", E3, false), e11.removeEventListener("mouseleave", w3, false));
11656            }
11657            o11.off("change", P), o11.off("settle", y3), o11.off("contentReady", p2), o11.off("panzoom:touchStart", d3), o11.off("panzoom:wheel", d3);
11658          }
11659          a8 = false, s13 = false;
11660        }
11661        function v3() {
11662          r7 && (r7.remove(), r7 = null);
11663        }
11664        function m3() {
11665          o11 && o11.getPages().length > 1 && u5("autoStart") && c5();
11666        }
11667        function p2() {
11668          g2();
11669        }
11670        function h4(t11, e11) {
11671          const n10 = e11.target;
11672          n10 && !e11.defaultPrevented && "toggle" === n10.dataset.autoplayAction && O2.toggle();
11673        }
11674        function P() {
11675          !o11 || !(null == o11 ? void 0 : o11.isInfinite()) && o11.getPageIndex() === o11.getPages().length - 1 ? d3() : (v3(), f3());
11676        }
11677        function y3() {
11678          g2();
11679        }
11680        function b3() {
11681          f3(), v3();
11682        }
11683        function E3() {
11684          l10 = true, a8 && (v3(), f3());
11685        }
11686        function w3() {
11687          l10 = false, a8 && !s13 && (null == o11 ? void 0 : o11.isSettled()) && g2();
11688        }
11689        const O2 = { init: function(t11) {
11690          o11 = t11, o11.on("ready", m3), o11.on("click", h4);
11691        }, destroy: function() {
11692          d3(), null == o11 || o11.off("ready", m3), null == o11 || o11.off("click", h4), o11 = void 0;
11693        }, isEnabled: () => a8, pause: function() {
11694          s13 = true, f3();
11695        }, resume: function() {
11696          s13 = false, a8 && !l10 && g2();
11697        }, start() {
11698          c5();
11699        }, stop() {
11700          d3();
11701        }, toggle() {
11702          a8 ? d3() : c5();
11703        } };
11704        return O2;
11705      };
11706    }
11707  });
11708
11709  
vendor: 11,173 bytes, lines 11709-11913
11709// node_modules/@fancyapps/ui/dist/carousel/carousel.thumbs.js
11710  var u3, a5, c3;
11711  var init_carousel_thumbs = __esm({
11712    "node_modules/@fancyapps/ui/dist/carousel/carousel.thumbs.js"() {
11713      init_isPlainObject();
11714      init_extend();
11715      init_replaceAll();
11716      init_clamp();
11717      init_strToHtml();
11718      init_carousel_sync();
11719      init_carousel_lazyload();
11720      init_addClass();
11721      u3 = { Carousel: { Lazyload: { showLoading: false } }, minCount: 2, showOnStart: true, thumbTpl: '<button aria-label="Slide to #{{page}}"><img draggable="false" alt="{{alt}}" data-lazy-src="{{src}}" /></button>', type: "modern" };
11722      c3 = () => {
11723        let c5, d3, f3, m3, g2, h4 = 0, v3 = 0, p2 = true;
11724        function b3(e11) {
11725          const n10 = null == c5 ? void 0 : c5.getOptions().Thumbs;
11726          let o11 = (t3(n10) ? Object.assign(Object.assign({}, u3), n10) : u3)[e11];
11727          return o11 && "function" == typeof o11 && c5 ? o11(c5) : o11;
11728        }
11729        function y3() {
11730          if (!c5) return false;
11731          if (false === (null == c5 ? void 0 : c5.getOptions().Thumbs)) return false;
11732          let t11 = 0;
11733          for (const e11 of c5.getSlides()) e11.thumbSrc && t11++;
11734          return t11 >= b3("minCount");
11735        }
11736        function x2() {
11737          return "modern" === b3("type");
11738        }
11739        function S() {
11740          return "scrollable" === b3("type");
11741        }
11742        function C() {
11743          const t11 = [], e11 = (null == c5 ? void 0 : c5.getSlides()) || [];
11744          for (const n10 of e11) t11.push({ index: n10.index, class: n10.thumbClass, html: T(n10) });
11745          return t11;
11746        }
11747        function T(t11) {
11748          const e11 = t11.thumb ? t11.thumb instanceof HTMLImageElement ? t11.thumb.src : t11.thumb : t11.thumbSrc || void 0, o11 = void 0 === t11.thumbAlt ? `Thumbnail #${(t11.index || 0) + 1}` : t11.thumbAlt + "";
11749          let i10 = b3("thumbTpl");
11750          return i10 = n5(i10, "{{alt}}", o11), i10 = n5(i10, "{{src}}", e11 + ""), i10 = n5(i10, "{{index}}", `${t11.index || 0}`), i10 = n5(i10, "{{page}}", `${(t11.index || 0) + 1}`), i10;
11751        }
11752        function L(t11) {
11753          return `<div index="${t11.index || 0}" class="f-thumbs__slide ${t11.class || ""}">${t11.html || ""}</div>`;
11754        }
11755        function E3(t11 = false) {
11756          var e11;
11757          const n10 = null == c5 ? void 0 : c5.getContainer();
11758          if (!c5 || !n10 || f3) return;
11759          if (!y3()) return;
11760          const o11 = (null === (e11 = b3("Carousel")) || void 0 === e11 ? void 0 : e11.classes) || {};
11761          if (o11.container = o11.container || "f-thumbs", !f3) {
11762            const t12 = n10.nextElementSibling;
11763            (null == t12 ? void 0 : t12.classList.contains(o11.container)) && (f3 = t12);
11764          }
11765          if (!f3) {
11766            f3 = document.createElement("div");
11767            const t12 = b3("parentEl");
11768            t12 ? t12.insertAdjacentElement("beforeend", f3) : n10.insertAdjacentElement("afterend", f3);
11769          }
11770          s3(f3, o11.container), s3(f3, "f-thumbs"), s3(f3, `is-${b3("type")}`), t11 && s3(f3, "is-hidden");
11771        }
11772        function P() {
11773          if (!f3 || !S()) return;
11774          m3 = document.createElement("div"), s3(m3, "f-thumbs__viewport");
11775          let t11 = "";
11776          for (const e11 of C()) {
11777            "string" == typeof (e11.html || "") && (t11 += L(e11));
11778          }
11779          m3.innerHTML = t11, f3.append(m3), f3.addEventListener("click", (t12) => {
11780            t12.preventDefault();
11781            const e11 = t12.target.closest("[index]"), n10 = parseInt((null == e11 ? void 0 : e11.getAttribute("index")) || "-1");
11782            c5 && n10 > -1 && c5.goTo(n10);
11783          }), g2 = new IntersectionObserver((t12) => {
11784            t12.forEach((t13) => {
11785              t13.isIntersecting && t13.target instanceof HTMLImageElement && (t13.target.src = t13.target.getAttribute("data-lazy-src") + "", t13.target.removeAttribute("data-lazy-src"), null == g2 || g2.unobserve(t13.target));
11786            });
11787          }, { root: m3, rootMargin: "100px" }), f3.querySelectorAll("[data-lazy-src]").forEach((t12) => {
11788            null == g2 || g2.observe(t12);
11789          }), null == c5 || c5.emit("thumbs:ready");
11790        }
11791        function w3() {
11792          var t11;
11793          if (!a5 || !c5 || !f3 || S() || d3) return;
11794          const n10 = C();
11795          if (!n10.length) return;
11796          const o11 = r3({}, { Sync: { target: c5 }, Lazyload: { preload: 1 }, slides: n10, classes: { container: "f-thumbs", viewport: "f-thumbs__viewport", slide: "f-thumbs__slide" }, center: true, fill: !x2(), infinite: false, dragFree: true, rtl: c5.getOptions().rtl || false, slidesPerPage: (t12) => {
11797            let e11 = 0;
11798            return x2() && (!(function() {
11799              if (!x2()) return;
11800              if (!f3) return;
11801              const t13 = (t14) => f3 && parseFloat(getComputedStyle(f3).getPropertyValue("--f-thumb-" + t14)) || 0;
11802              h4 = t13("width"), v3 = t13("clip-width");
11803            })(), e11 = 4 * (h4 - v3)), t12 && t12.getTotalSlideDim() <= t12.getViewportDim() - e11 ? 1 / 0 : 1;
11804          } }, u3.Carousel || {}, b3("Carousel") || {});
11805          d3 = a5(f3, o11, { Sync: i3, Lazyload: i4 }), d3.on("ready", () => {
11806            s3(f3, "is-syncing"), null == c5 || c5.emit("thumbs:ready"), x2() && (null == c5 || c5.on("render", $4));
11807          }), d3.on("destroy", () => {
11808            null == c5 || c5.emit("thumbs:destroy");
11809          }), d3.init(), null === (t11 = d3.getGestures()) || void 0 === t11 || t11.on("start", () => {
11810            p2 = false;
11811          }), d3.on("click", (t12, e11) => {
11812            const n11 = e11.target;
11813            if (n11) {
11814              const t13 = n11.matches("button") ? n11 : n11.firstElementChild;
11815              t13 && t13.matches("button") && (e11.preventDefault(), t13.focus({ preventScroll: true }));
11816            }
11817          }), s3(c5.getContainer(), "has-thumbs"), R2();
11818        }
11819        function j2() {
11820          y3() && b3("showOnStart") && (E3(), P());
11821        }
11822        function A2() {
11823          var t11;
11824          y3() && (w3(), null == c5 || c5.on("addSlide", z2), null == c5 || c5.on("removeSlide", _2), null == c5 || c5.on("click", I2), null == c5 || c5.on("refresh", q2), null === (t11 = null == c5 ? void 0 : c5.getGestures()) || void 0 === t11 || t11.on("start", M3), D2(true));
11825        }
11826        function M3() {
11827          var t11, e11;
11828          p2 = true;
11829          (null === (t11 = document.activeElement) || void 0 === t11 ? void 0 : t11.closest(".f-thumbs")) && (null === (e11 = document.activeElement) || void 0 === e11 || e11.blur());
11830        }
11831        function $4() {
11832          var t11, e11;
11833          null == f3 || f3.classList.toggle("is-syncing", false === (null == c5 ? void 0 : c5.hasNavigated()) || (null === (t11 = null == c5 ? void 0 : c5.getTween()) || void 0 === t11 ? void 0 : t11.isRunning())), R2(), (null === (e11 = null == c5 ? void 0 : c5.getGestures()) || void 0 === e11 ? void 0 : e11.isPointerDown()) && (function() {
11834            if (!x2()) return;
11835            if (!c5 || !d3) return;
11836            if (!p2) return;
11837            const t12 = d3.getTween(), e12 = d3.getPages(), n10 = c5.getPageIndex() || 0, i10 = c5.getPageProgress() || 0;
11838            if (!(c5 && e12 && e12[n10] && t12)) return;
11839            const l10 = t12.isRunning() ? t12.getCurrentValues().pos : d3.getPosition();
11840            if (void 0 === l10) return;
11841            let r7 = e12[n10].pos + i10 * (h4 - v3);
11842            r7 = t2(e12[0].pos, r7, e12[e12.length - 1].pos), t12.from({ pos: l10 }).to({ pos: r7 }).start();
11843          })();
11844        }
11845        function O2() {
11846          p2 = true, D2();
11847        }
11848        function z2(t11, e11) {
11849          const n10 = { html: T(e11) };
11850          if (d3) d3.add(n10, e11.index);
11851          else if (m3) {
11852            const t12 = e2(L(n10));
11853            if (t12) {
11854              m3.append(t12);
11855              const e12 = t12.querySelector("img");
11856              e12 && (null == g2 || g2.observe(e12));
11857            }
11858          }
11859        }
11860        function _2(t11, e11) {
11861          var n10;
11862          d3 ? d3.remove(e11.index) : m3 && (null === (n10 = m3.querySelector(`[index="${e11.index}"]`)) || void 0 === n10 || n10.remove());
11863        }
11864        function I2(t11, e11) {
11865          var n10;
11866          const o11 = e11.target;
11867          e11.defaultPrevented || "toggle" !== (null === (n10 = null == o11 ? void 0 : o11.dataset) || void 0 === n10 ? void 0 : n10.thumbsAction) || (f3 || (E3(true), P(), w3()), f3 && f3.classList.toggle("is-hidden"));
11868        }
11869        function q2() {
11870          D2();
11871        }
11872        function D2(t11 = false) {
11873          if (!c5 || !m3 || !S()) return;
11874          const e11 = c5.getPageIndex();
11875          m3.querySelectorAll(".is-selected").forEach((t12) => {
11876            t12.classList.remove("is-selected");
11877          });
11878          const n10 = m3.querySelector(`[index="${e11}"]`);
11879          if (n10) {
11880            n10.classList.add("is-selected");
11881            const e12 = m3.getBoundingClientRect(), o11 = n10.getBoundingClientRect(), i10 = n10.offsetTop - m3.offsetTop - 0.5 * e12.height + 0.5 * o11.height, l10 = n10.scrollLeft - m3.scrollLeft - 0.5 * e12.width + 0.5 * o11.width;
11882            m3.scrollTo({ top: i10, left: l10, behavior: t11 ? "instant" : "smooth" });
11883          }
11884        }
11885        function R2() {
11886          if (!x2()) return;
11887          if (!c5 || !d3) return;
11888          const t11 = (null == d3 ? void 0 : d3.getSlides()) || [];
11889          let e11 = -0.5 * h4;
11890          for (const n10 of t11) {
11891            const t12 = n10.el;
11892            if (!t12) continue;
11893            let o11 = c5.getPageProgress(n10.index) || 0;
11894            o11 = Math.max(-1, Math.min(1, o11)), o11 > -1 && o11 < 1 && (e11 += 0.5 * h4 * (1 - Math.abs(o11))), o11 = Math.round(1e4 * o11) / 1e4, e11 = Math.round(1e4 * e11) / 1e4, t12.style.setProperty("--progress", `${Math.abs(o11)}`), t12.style.setProperty("--shift", `${(null == c5 ? void 0 : c5.isRTL()) ? -1 * e11 : e11}px`), o11 > -1 && o11 < 1 && (e11 += 0.5 * h4 * (1 - Math.abs(o11)));
11895          }
11896        }
11897        return { init: function(t11, e11) {
11898          a5 = e11, c5 = t11, c5.on("ready", A2), c5.on("initSlides", j2), c5.on("change", O2);
11899        }, destroy: function() {
11900          var t11, e11;
11901          S() && (null == c5 || c5.emit("thumbs:destroy")), null == c5 || c5.off("ready", A2), null == c5 || c5.off("initSlides", j2), null == c5 || c5.off("change", O2), null == c5 || c5.off("render", $4), null == c5 || c5.off("addSlide", z2), null == c5 || c5.off("click", I2), null == c5 || c5.off("refresh", q2), null === (t11 = null == c5 ? void 0 : c5.getGestures()) || void 0 === t11 || t11.off("start", M3), null === (e11 = null == c5 ? void 0 : c5.getContainer()) || void 0 === e11 || e11.classList.remove("has-thumbs"), c5 = void 0, null == d3 || d3.destroy(), d3 = void 0, null == f3 || f3.remove(), f3 = void 0;
11902        }, getCarousel: function() {
11903          return d3;
11904        }, getContainer: function() {
11905          return f3;
11906        }, getType: function() {
11907          return b3("type");
11908        }, isEnabled: y3 };
11909      };
11910    }
11911  });
11912
11913  
vendor: 6,302 bytes, lines 11913-12012
11913// node_modules/@fancyapps/ui/dist/carousel/carousel.html.js
11914  var o7, l5;
11915  var init_carousel_html = __esm({
11916    "node_modules/@fancyapps/ui/dist/carousel/carousel.html.js"() {
11917      init_isPlainObject();
11918      init_isString();
11919      init_addClass();
11920      init_removeClass();
11921      o7 = { autosize: false, iframeAttr: { allow: "autoplay; fullscreen", scrolling: "auto" }, preload: false };
11922      l5 = () => {
11923        let l10;
11924        function n10() {
11925          const e11 = null == l10 ? void 0 : l10.getOptions().Html;
11926          return t3(e11) ? Object.assign(Object.assign({}, o7), e11) : o7;
11927        }
11928        function s13(t11, e11) {
11929          let i10 = t11[e11];
11930          return void 0 === i10 && (i10 = n10()[e11]), "true" === i10 || "false" !== i10 && i10;
11931        }
11932        function r7(t11, i10) {
11933          let a8 = i10.type, o11 = i10.src;
11934          if (!a8 && t(o11)) {
11935            if ("#" === o11.charAt(0) ? a8 = "inline" : o11.match(/(^data:image\/[a-z0-9+\/=]*,)|(\.((a)?png|avif|gif|jp(g|eg)|pjp(eg)?|jfif|svg|webp|bmp|ico|tif(f)?)((\?|#).*)?$)/i) ? a8 = "image" : o11.match(/\.(pdf)((\?|#).*)?$/i) ? a8 = "pdf" : o11.match(/\.(html|php)((\?|#).*)?$/i) && (a8 = "iframe"), !a8) {
11936              const t12 = o11.match(/(?:maps\.)?google\.([a-z]{2,3}(?:\.[a-z]{2})?)\/(?:(?:(?:maps\/(?:place\/(?:.*)\/)?\@(.*),(\d+.?\d+?)z))|(?:\?ll=))(.*)?/i);
11937              t12 && (o11 = `https://maps.google.${t12[1]}/?ll=${(t12[2] ? t12[2] + "&z=" + Math.floor(parseFloat(t12[3])) + (t12[4] ? t12[4].replace(/^\//, "&") : "") : t12[4] + "").replace(/\?/, "&")}&output=${t12[4] && t12[4].indexOf("layer=c") > 0 ? "svembed" : "embed"}`, a8 = "gmap");
11938            }
11939            if (!a8) {
11940              const t12 = o11.match(/(?:maps\.)?google\.([a-z]{2,3}(?:\.[a-z]{2})?)\/(?:maps\/search\/)(.*)/i);
11941              t12 && (o11 = `https://maps.google.${t12[1]}/maps?q=${t12[2].replace("query=", "q=").replace("api=1", "")}&output=embed`, a8 = "gmap");
11942            }
11943            a8 && (i10.src = o11, i10.type = a8);
11944          }
11945        }
11946        function d3(t11, e11) {
11947          "iframe" !== e11.type && "pdf" !== e11.type && "gmap" !== e11.type || (function(t12) {
11948            const e12 = t12.el, o11 = t12.src;
11949            if (!l10 || !e12 || !o11) return;
11950            const r8 = document.createElement("iframe");
11951            s3(r8, "f-iframe");
11952            for (const [t13, e13] of Object.entries(n10().iframeAttr || {})) r8.setAttribute(t13, e13);
11953            r8.onerror = () => {
11954              t12.state = 2, null == l10 || l10.showError(t12, "{{IFRAME_ERROR}}");
11955            };
11956            const d4 = document.createElement("div");
11957            if (s3(d4, "f-html"), d4.append(r8), t12.width) {
11958              let e13 = `${t12.width}`;
11959              e13.match(/^\d+$/) && (e13 += "px"), d4.style.maxWidth = `${e13}`;
11960            }
11961            if (t12.height) {
11962              let e13 = `${t12.height}`;
11963              e13.match(/^\d+$/) && (e13 += "px"), d4.style.maxHeight = `${e13}`;
11964            }
11965            if (t12.aspectRatio) {
11966              const i10 = e12.getBoundingClientRect();
11967              d4.style.aspectRatio = `${t12.aspectRatio}`, d4.style[i10.width > i10.height ? "width" : "height"] = "auto", d4.style[i10.width > i10.height ? "maxWidth" : "maxHeight"] = "none";
11968            }
11969            t12.htmlEl = d4, t12.contentEl = r8, s3(e12, `has-html has-iframe has-${t12.type}`), e12.prepend(d4);
11970            const c6 = s13(t12, "preload"), p2 = s13(t12, "autosize");
11971            "iframe" === t12.type && (c6 || p2) ? (t12.state = 0, l10.showLoading(t12), s3(e12, "is-loading"), r8.onload = () => {
11972              if (!l10 || 1 !== l10.getState() || !r8.src.length) return;
11973              t12.state = 1;
11974              const i10 = "true" !== r8.dataset.ready;
11975              r8.dataset.ready = "true", (function(t13) {
11976                const e13 = t13.contentEl, i11 = null == e13 ? void 0 : e13.parentElement, a8 = null == i11 ? void 0 : i11.style;
11977                let o12 = s13(t13, "autosize"), l11 = t13.width || 0, n11 = t13.height || 0;
11978                l11 && n11 && (o12 = false);
11979                if (!(e13 && i11 && a8 && o12)) return;
11980                try {
11981                  const t14 = window.getComputedStyle(i11), o13 = parseFloat(t14.paddingLeft) + parseFloat(t14.paddingRight), s14 = parseFloat(t14.paddingTop) + parseFloat(t14.paddingBottom), r9 = e13.contentWindow;
11982                  if (r9) {
11983                    const t15 = r9.document, e14 = t15.getElementsByTagName("html")[0], i12 = t15.body;
11984                    a8.width = "";
11985                    const d5 = window.getComputedStyle(i12), c7 = parseFloat(d5.marginLeft) + parseFloat(d5.marginRight), p3 = i12.style.overflow || "";
11986                    i12.style.overflow = "hidden", l11 = l11 || i12.scrollWidth + c7 + o13, a8.flex = "0 0 auto", a8.width = `${l11}px`, a8.height = `${i12.scrollHeight}px`, i12.style.overflow = p3;
11987                    n11 = Math.max(e14.scrollHeight, Math.ceil(e14.getBoundingClientRect().height)) + s14;
11988                  }
11989                } catch (t14) {
11990                }
11991                if (l11 || n11) {
11992                  const t14 = { flex: "0 1 auto", width: "", height: "" };
11993                  l11 && "auto" !== l11 && (t14.width = `${l11}px`), n11 && "auto" !== n11 && (t14.height = `${n11}px`), Object.assign(a8, t14);
11994                }
11995              })(t12), l10.hideLoading(t12), i10 && l10.emit("contentReady", t12), s4(e12, "is-loading");
11996            }, r8.src = `${o11}`) : (r8.src = `${o11}`, l10.emit("contentReady", t12));
11997          })(e11);
11998        }
11999        function c5(t11, e11) {
12000          var i10, a8;
12001          "iframe" !== e11.type && "pdf" !== e11.type && "gmap" !== e11.type || (null == l10 || l10.hideError(e11), null === (i10 = e11.contentEl) || void 0 === i10 || i10.remove(), e11.contentEl = void 0, null === (a8 = e11.htmlEl) || void 0 === a8 || a8.remove(), e11.htmlEl = void 0);
12002        }
12003        return { init: function(t11) {
12004          l10 = t11, l10.on("addSlide", r7), l10.on("attachSlideEl", d3), l10.on("detachSlideEl", c5);
12005        }, destroy: function() {
12006          null == l10 || l10.off("addSlide", r7), null == l10 || l10.off("attachSlideEl", d3), null == l10 || l10.off("detachSlideEl", c5), l10 = void 0;
12007        } };
12008      };
12009    }
12010  });
12011
12012  
vendor: 10,284 bytes, lines 12012-12179
12012// node_modules/@fancyapps/ui/dist/carousel/carousel.video.js
12013  var i6, l6, s10;
12014  var init_carousel_video = __esm({
12015    "node_modules/@fancyapps/ui/dist/carousel/carousel.video.js"() {
12016      init_addClass();
12017      init_isPlainObject();
12018      init_isString();
12019      init_strToHtml();
12020      i6 = (t11, e11 = {}) => {
12021        const o11 = new URL(t11), n10 = new URLSearchParams(o11.search), i10 = new URLSearchParams();
12022        for (const [t12, o12] of [...n10, ...Object.entries(e11)]) {
12023          let e12 = o12 + "";
12024          if ("t" === t12) {
12025            let t13 = e12.match(/((\d*)m)?(\d*)s?/);
12026            t13 && i10.set("start", 60 * parseInt(t13[2] || "0") + parseInt(t13[3] || "0") + "");
12027          } else i10.set(t12, e12);
12028        }
12029        let l10 = i10 + "", s13 = t11.match(/#t=((.*)?\d+s)/);
12030        return s13 && (l10 += `#t=${s13[1]}`), l10;
12031      };
12032      l6 = { autoplay: false, html5videoTpl: `<video class="f-html5video" playsinline controls controlsList="nodownload" poster="{{poster}}">
12033    <source src="{{src}}" type="{{format}}" />Sorry, your browser doesn't support embedded videos.</video>`, iframeAttr: { allow: "autoplay; fullscreen", scrolling: "no", referrerPolicy: "strict-origin-when-cross-origin", credentialless: "" }, vimeo: { byline: 1, color: "00adef", controls: 1, dnt: 1, muted: 0 }, youtube: { controls: 1, enablejsapi: 1, nocookie: 1, rel: 0, fs: 1 } };
12034      s10 = () => {
12035        let s13, r7 = false;
12036        function c5() {
12037          const t11 = null == s13 ? void 0 : s13.getOptions().Video;
12038          return t3(t11) ? Object.assign(Object.assign({}, l6), t11) : l6;
12039        }
12040        function a8() {
12041          var t11;
12042          return null === (t11 = null == s13 ? void 0 : s13.getPage()) || void 0 === t11 ? void 0 : t11.slides[0];
12043        }
12044        const d3 = (t11) => {
12045          var e11;
12046          try {
12047            let o11 = JSON.parse(t11.data);
12048            if ("https://player.vimeo.com" === t11.origin) {
12049              if ("ready" === o11.event) for (let o12 of Array.from((null === (e11 = null == s13 ? void 0 : s13.getContainer()) || void 0 === e11 ? void 0 : e11.getElementsByClassName("f-iframe")) || [])) o12 instanceof HTMLIFrameElement && o12.contentWindow === t11.source && (o12.dataset.ready = "true");
12050            } else if (t11.origin.match(/^https:\/\/(www.)?youtube(-nocookie)?.com$/) && "onReady" === o11.event) {
12051              const t12 = document.getElementById(o11.id);
12052              t12 && (t12.dataset.ready = "true");
12053            }
12054          } catch (t12) {
12055          }
12056        };
12057        function m3(t11, e11) {
12058          const n10 = e11.src;
12059          if (!t(n10)) return;
12060          let l10 = e11.type;
12061          if (!l10 || "html5video" === l10) {
12062            const t12 = n10.match(/\.(mp4|mov|ogv|webm)((\?|#).*)?$/i);
12063            t12 && (l10 = "html5video", e11.html5videoFormat = e11.html5videoFormat || "video/" + ("ogv" === t12[1] ? "ogg" : t12[1]));
12064          }
12065          if (!l10 || "youtube" === l10) {
12066            const t12 = n10.match(/(youtube\.com|youtu\.be|youtube\-nocookie\.com)\/(?:watch\?(?:.*&)?v=|v\/|u\/|shorts\/|embed\/?)?(videoseries\?list=(?:.*)|[\w-]{11}|\?listType=(?:.*)&list=(?:.*))(?:.*)/i);
12067            if (t12) {
12068              const o11 = Object.assign(Object.assign({}, c5().youtube), e11.youtube || {}), s14 = `www.youtube${o11.nocookie ? "-nocookie" : ""}.com`, r8 = i6(n10, o11), a9 = encodeURIComponent(t12[2]);
12069              e11.videoId = a9, e11.src = `https://${s14}/embed/${a9}?${r8}`, e11.thumb = e11.thumb || `https://i.ytimg.com/vi/${a9}/mqdefault.jpg`, l10 = "youtube";
12070            }
12071          }
12072          if (!l10 || "vimeo" === l10) {
12073            const t12 = n10.match(/^.+vimeo.com\/(?:\/)?(video\/)?([\d]+)((\/|\?h=)([a-z0-9]+))?(.*)?/);
12074            if (t12) {
12075              const o11 = Object.assign(Object.assign({}, c5().vimeo), e11.vimeo || {}), s14 = i6(n10, o11), r8 = encodeURIComponent(t12[2]), a9 = t12[5] || "";
12076              e11.videoId = r8, e11.src = `https://player.vimeo.com/video/${r8}?${a9 ? `h=${a9}${s14 ? "&" : ""}` : ""}${s14}`, l10 = "vimeo";
12077            }
12078          }
12079          e11.type = l10;
12080        }
12081        function u5(e11, i10) {
12082          "html5video" === i10.type && (function(e12) {
12083            const i11 = e12.el, l10 = e12.src;
12084            if (!s13 || !i11 || !l10) return;
12085            const r8 = e12.html5videoTpl || c5().html5videoTpl, a9 = e12.html5videoFormat || c5().html5videoFormat;
12086            if (!r8) return;
12087            const d4 = e12.poster || (e12.thumb && t(e12.thumb) ? e12.thumb : ""), m4 = e2(r8.replace(/\{\{src\}\}/gi, l10 + "").replace(/\{\{format\}\}/gi, a9 || "").replace(/\{\{poster\}\}/gi, d4 + ""));
12088            if (!m4) return;
12089            const u6 = document.createElement("div");
12090            s3(u6, "f-html"), u6.append(m4), e12.contentEl = m4, e12.htmlEl = u6, s3(i11, `has-${e12.type}`), i11.prepend(u6), v3(e12), s13.emit("contentReady", e12);
12091          })(i10), "youtube" !== i10.type && "vimeo" !== i10.type || (function(e12) {
12092            const o11 = e12.el, n10 = e12.src;
12093            if (!s13 || !o11 || !n10) return;
12094            const i11 = document.createElement("iframe");
12095            s3(i11, "f-iframe"), i11.setAttribute("id", `f-iframe_${e12.videoId}`);
12096            for (const [t11, e13] of Object.entries(c5().iframeAttr || {})) i11.setAttribute(t11, e13);
12097            "youtube" === e12.type && (i11.onload = () => {
12098              var t11;
12099              1 === (null == s13 ? void 0 : s13.getState()) && (null === (t11 = i11.contentWindow) || void 0 === t11 || t11.postMessage(JSON.stringify({ event: "listening", id: i11.getAttribute("id") }), "*"));
12100            }), i11.onerror = () => {
12101              null == s13 || s13.showError(e12, "{{IFRAME_ERROR}}");
12102            };
12103            const l10 = document.createElement("div");
12104            s3(l10, "f-html"), l10.append(i11), e12.contentEl = i11, e12.htmlEl = l10, s3(o11, `has-html has-iframe has-${e12.type}`), i11.src = `${e12.src}`, o11.prepend(l10), v3(e12), s13.emit("contentReady", e12);
12105          })(i10);
12106        }
12107        function f3(t11, e11) {
12108          var o11, n10;
12109          "html5video" !== e11.type && "youtube" !== e11.type && "vimeo" !== e11.type || (null === (o11 = e11.contentEl) || void 0 === o11 || o11.remove(), e11.contentEl = void 0, null === (n10 = e11.htmlEl) || void 0 === n10 || n10.remove(), e11.htmlEl = void 0), e11.poller && clearTimeout(e11.poller);
12110        }
12111        function p2() {
12112          r7 = false;
12113        }
12114        function h4() {
12115          if (r7) return;
12116          r7 = true;
12117          const t11 = a8();
12118          (t11 && void 0 !== t11.autoplay ? t11.autoplay : c5().autoplay) && ((function() {
12119            var t12;
12120            const e11 = a8(), o11 = null == e11 ? void 0 : e11.el;
12121            if (o11 && "html5video" === (null == e11 ? void 0 : e11.type)) try {
12122              const t13 = o11.querySelector("video");
12123              if (t13) {
12124                const e12 = t13.play();
12125                void 0 !== e12 && e12.then(() => {
12126                }).catch((e13) => {
12127                  t13.muted = true, t13.play();
12128                });
12129              }
12130            } catch (t13) {
12131            }
12132            const n10 = null == e11 ? void 0 : e11.htmlEl;
12133            n10 instanceof HTMLIFrameElement && (null === (t12 = n10.contentWindow) || void 0 === t12 || t12.postMessage('{"event":"command","func":"stopVideo","args":""}', "*"));
12134          })(), (function() {
12135            const t12 = a8(), e11 = null == t12 ? void 0 : t12.type;
12136            if (!(null == t12 ? void 0 : t12.el) || "youtube" !== e11 && "vimeo" !== e11) return;
12137            const o11 = () => {
12138              if (t12.contentEl && t12.contentEl instanceof HTMLIFrameElement && t12.contentEl.contentWindow) {
12139                let e12;
12140                if ("true" === t12.contentEl.dataset.ready) return e12 = "youtube" === t12.type ? { event: "command", func: "playVideo" } : { method: "play", value: "true" }, e12 && t12.contentEl.contentWindow.postMessage(JSON.stringify(e12), "*"), void (t12.poller = void 0);
12141                "youtube" === t12.type && (e12 = { event: "listening", id: t12.contentEl.getAttribute("id") }, t12.contentEl.contentWindow.postMessage(JSON.stringify(e12), "*"));
12142              }
12143              t12.poller = setTimeout(o11, 250);
12144            };
12145            o11();
12146          })());
12147        }
12148        function v3(t11) {
12149          const e11 = null == t11 ? void 0 : t11.htmlEl;
12150          if (t11 && e11 && ("html5video" === t11.type || "youtube" === t11.type || "vimeo" === t11.type)) {
12151            if (e11.style.aspectRatio = "", e11.style.width = "", e11.style.height = "", e11.style.maxWidth = "", e11.style.maxHeight = "", t11.width) {
12152              let o11 = `${t11.width}`;
12153              o11.match(/^\d+$/) && (o11 += "px"), e11.style.maxWidth = `${o11}`;
12154            }
12155            if (t11.height) {
12156              let o11 = `${t11.height}`;
12157              o11.match(/^\d+$/) && (o11 += "px"), e11.style.maxHeight = `${o11}`;
12158            }
12159            if (t11.aspectRatio) {
12160              const o11 = t11.aspectRatio.split("/"), n10 = parseFloat(o11[0].trim()), i10 = o11[1] ? parseFloat(o11[1].trim()) : 0, l10 = n10 && i10 ? n10 / i10 : n10;
12161              e11.offsetHeight;
12162              const s14 = e11.getBoundingClientRect(), r8 = l10 < (s14.width || 1) / (s14.height || 1);
12163              e11.style.aspectRatio = `${t11.aspectRatio}`, e11.style.width = r8 ? "auto" : "", e11.style.height = r8 ? "" : "auto";
12164            }
12165          }
12166        }
12167        function y3() {
12168          v3(a8());
12169        }
12170        return { init: function(t11) {
12171          s13 = t11, s13.on("addSlide", m3), s13.on("attachSlideEl", u5), s13.on("detachSlideEl", f3), s13.on("ready", h4), s13.on("change", p2), s13.on("settle", h4), s13.on("refresh", y3), window.addEventListener("message", d3);
12172        }, destroy: function() {
12173          null == s13 || s13.off("addSlide", m3), null == s13 || s13.off("attachSlideEl", u5), null == s13 || s13.off("detachSlideEl", f3), null == s13 || s13.off("ready", h4), null == s13 || s13.off("change", p2), null == s13 || s13.off("settle", h4), null == s13 || s13.off("refresh", y3), window.removeEventListener("message", d3), s13 = void 0;
12174        } };
12175      };
12176    }
12177  });
12178
12179  
vendor: 3,089 bytes, lines 12179-12245
12179// node_modules/@fancyapps/ui/dist/carousel/carousel.fullscreen.js
12180  var n8, t8, l7;
12181  var init_carousel_fullscreen = __esm({
12182    "node_modules/@fancyapps/ui/dist/carousel/carousel.fullscreen.js"() {
12183      init_isPlainObject();
12184      n8 = { autoStart: false, btnTpl: '<button data-fullscreen-action="toggle" class="f-button" title="{{TOGGLE_FULLSCREEN}}"><svg><g><path d="M8 3H5a2 2 0 0 0-2 2v3M21 8V5a2 2 0 0 0-2-2h-3M3 16v3a2 2 0 0 0 2 2h3M16 21h3a2 2 0 0 0 2-2v-3"/></g><g><path d="M15 19v-2a2 2 0 0 1 2-2h2M15 5v2a2 2 0 0 0 2 2h2M5 15h2a2 2 0 0 1 2 2v2M5 9h2a2 2 0 0 0 2-2V5"/></g></svg></button>' };
12185      t8 = "in-fullscreen-mode";
12186      l7 = () => {
12187        let l10;
12188        function u5(t11) {
12189          const u6 = null == l10 ? void 0 : l10.getOptions().Fullscreen;
12190          let o12 = (t3(u6) ? Object.assign(Object.assign({}, n8), u6) : n8)[t11];
12191          return o12 && "function" == typeof o12 && l10 ? o12(l10) : o12;
12192        }
12193        function o11() {
12194          var e11;
12195          null === (e11 = null == l10 ? void 0 : l10.getPlugins().Toolbar) || void 0 === e11 || e11.add("fullscreen", { tpl: u5("btnTpl") });
12196        }
12197        function c5() {
12198          if (u5("autoStart")) {
12199            const e11 = s13();
12200            e11 && a8(e11);
12201          }
12202        }
12203        function i10(e11, n10) {
12204          const t11 = n10.target;
12205          t11 && !n10.defaultPrevented && "toggle" === t11.dataset.fullscreenAction && d3();
12206        }
12207        function s13() {
12208          return u5("el") || (null == l10 ? void 0 : l10.getContainer()) || void 0;
12209        }
12210        function r7() {
12211          const e11 = document;
12212          return e11.fullscreenEnabled ? !!e11.fullscreenElement : !!e11.webkitFullscreenEnabled && !!e11.webkitFullscreenElement;
12213        }
12214        function a8(e11) {
12215          const n10 = document;
12216          let l11;
12217          return e11 || (e11 = n10.documentElement), n10.fullscreenEnabled ? l11 = e11.requestFullscreen() : n10.webkitFullscreenEnabled && (l11 = e11.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT)), l11 && l11.then(() => {
12218            e11.classList.add(t8);
12219          }), l11;
12220        }
12221        function f3() {
12222          const e11 = document;
12223          let n10;
12224          return e11.fullscreenEnabled ? n10 = e11.fullscreenElement && e11.exitFullscreen() : e11.webkitFullscreenEnabled && (n10 = e11.webkitFullscreenElement && e11.webkitExitFullscreen()), n10 && n10.then(() => {
12225            var e12;
12226            null === (e12 = s13()) || void 0 === e12 || e12.classList.remove(t8);
12227          }), n10;
12228        }
12229        function d3() {
12230          if (r7()) f3();
12231          else {
12232            const e11 = s13();
12233            e11 && a8(e11);
12234          }
12235        }
12236        return { init: function(e11) {
12237          l10 = e11, l10.on("initPlugins", o11), l10.on("ready", c5), l10.on("click", i10);
12238        }, destroy: function() {
12239          null == l10 || l10.off("initPlugins", o11), null == l10 || l10.off("ready", c5), null == l10 || l10.off("click", i10);
12240        }, exit: f3, inFullscreen: r7, request: a8, toggle: d3 };
12241      };
12242    }
12243  });
12244
12245  
vendor: 5,918 bytes, lines 12245-12371
12245// node_modules/@fancyapps/ui/dist/fancybox/fancybox.hash.js
12246  var n9, o8, r6, i7, l8, s11, a6, u4, c4, d2, f2, g, h3, w2;
12247  var init_fancybox_hash = __esm({
12248    "node_modules/@fancyapps/ui/dist/fancybox/fancybox.hash.js"() {
12249      init_canUseDOM();
12250      init_isPlainObject();
12251      r6 = false;
12252      i7 = false;
12253      l8 = false;
12254      s11 = false;
12255      a6 = () => {
12256        const t11 = new URL(document.URL).hash, e11 = t11.slice(1).split("-"), n10 = e11[e11.length - 1], o11 = n10 && /^\+?\d+$/.test(n10) && parseInt(e11.pop() || "1", 10) || 1;
12257        return { urlHash: t11, urlSlug: e11.join("-"), urlIndex: o11 };
12258      };
12259      u4 = () => {
12260        const t11 = null == n9 ? void 0 : n9.getInstance(), e11 = null == t11 ? void 0 : t11.getState();
12261        return !(!t11 || 0 !== e11 && 1 !== e11);
12262      };
12263      c4 = () => {
12264        if (!n9) return;
12265        if (u4()) return;
12266        const { urlSlug: t11, urlIndex: e11 } = a6();
12267        if (!t11) return;
12268        let o11 = document.querySelector(`[data-slug="${t11}"]`);
12269        o11 && n9.fromTriggerEl(o11), u4() || (o11 = document.querySelectorAll(`[data-fancybox="${t11}"]`)[e11 - 1], o11 && n9.fromTriggerEl(o11, { startIndex: e11 - 1 })), u4() && o11 && !o11.closest("[inert]") && o11.scrollIntoView({ behavior: "instant", block: "center", inline: "center" });
12270      };
12271      d2 = (t11) => {
12272        const n10 = t11.getOptions().Hash, o11 = t11.getSlide();
12273        return o11 && (o11.slug || o11.fancybox || (t3(n10) ? n10.slug : "")) || "";
12274      };
12275      f2 = (t11) => {
12276        var e11, n10;
12277        const o11 = d2(t11), r7 = t11.getSlide();
12278        if (!r7 || !o11) return "";
12279        let i10 = parseInt(r7.index + "", 10) + 1, l10 = r7.slug ? `#${r7.slug}` : `#${o11}-${i10}`;
12280        return ((null === (n10 = null === (e11 = t11.getCarousel()) || void 0 === e11 ? void 0 : e11.getPages()) || void 0 === n10 ? void 0 : n10.length) || 0) < 2 && (l10 = `#${o11}`), l10;
12281      };
12282      g = () => {
12283        if (!n9) return;
12284        if (l8) return;
12285        const t11 = null == n9 ? void 0 : n9.getInstance(), e11 = null == t11 ? void 0 : t11.getCarousel();
12286        if (false === (null == t11 ? void 0 : t11.getOptions().Hash)) return;
12287        const { urlSlug: o11, urlIndex: r7 } = a6();
12288        if (t11 && 1 === t11.getState() && e11) {
12289          const n10 = e11.getSlides();
12290          for (const t12 of n10 || []) if (o11 === t12.slug || o11 === t12.fancybox && t12.index === r7 - 1) return i7 = false, void e11.goTo(t12.index);
12291          s11 = true, t11.close(), s11 = false;
12292        }
12293        c4();
12294      };
12295      h3 = () => {
12296        n9 && (o8 = setTimeout(() => {
12297          r6 = true, c4(), r6 = false;
12298        }, 300), window.addEventListener("hashchange", g, false));
12299      };
12300      w2 = () => {
12301        let t11, e11 = "auto", n10 = "";
12302        function u5() {
12303          var o11;
12304          if (!t11 || !t11.isTopMost()) return;
12305          if (false === t11.getOptions().Hash) return;
12306          if (r6) {
12307            const e12 = t11.getOptions().sync;
12308            e12 && e12.goTo((null === (o11 = null == t11 ? void 0 : t11.getCarousel()) || void 0 === o11 ? void 0 : o11.getPageIndex()) || 0, { transition: false, tween: false });
12309          }
12310          const l10 = t11.getCarousel();
12311          if (!l10) return;
12312          const { urlHash: s13, urlSlug: u6 } = a6();
12313          if (!t11.getSlide()) return;
12314          const g3 = d2(t11);
12315          if (!g3) return;
12316          const h4 = f2(t11);
12317          s13 !== h4 && (n10 = s13), history.scrollRestoration && (e11 = history.scrollRestoration, history.scrollRestoration = "manual"), l10.on("change", c5);
12318          const w3 = g3 !== u6;
12319          try {
12320            window.history[w3 ? "pushState" : "replaceState"]({}, document.title, window.location.pathname + window.location.search + h4), w3 && (i7 = true);
12321          } catch (t12) {
12322          }
12323        }
12324        function c5() {
12325          if (!t11 || !t11.isTopMost()) return;
12326          if (false === t11.getOptions().Hash) return;
12327          if (!t11.getSlide()) return;
12328          if (!d2(t11)) return;
12329          const e12 = f2(t11);
12330          l8 = true;
12331          try {
12332            window.history.replaceState({}, document.title, window.location.pathname + window.location.search + e12);
12333          } catch (t12) {
12334          }
12335          l8 = false;
12336        }
12337        function g2() {
12338          var e12;
12339          if (s11 || !t11 || !t11.isTopMost() || false === t11.getOptions().Hash) return;
12340          if (d2(t11)) {
12341            l8 = true;
12342            try {
12343              i7 && !(function() {
12344                if (window.parent === window) return false;
12345                try {
12346                  var t12 = window.frameElement;
12347                } catch (e13) {
12348                  t12 = null;
12349                }
12350                return null === t12 ? "data:" === location.protocol : t12.hasAttribute("sandbox");
12351              })() && "IFRAME" !== (null === (e12 = document.activeElement) || void 0 === e12 ? void 0 : e12.nodeName) ? window.history.back() : window.history.replaceState({}, document.title, window.location.pathname + window.location.search + n10);
12352            } catch (t12) {
12353            }
12354            l8 = false;
12355          }
12356        }
12357        return { init: function(e12) {
12358          clearTimeout(o8), t11 = e12, t11.on("ready", u5), t11.on("close", g2);
12359        }, destroy: function() {
12360          null == t11 || t11.off("ready", u5), null == t11 || t11.off("close", g2);
12361          const n11 = null == t11 ? void 0 : t11.getCarousel();
12362          n11 && n11.off("change", c5), t11 = void 0, history.scrollRestoration && e11 && (history.scrollRestoration = e11);
12363        } };
12364      };
12365      w2.getInfoFromURL = a6, w2.startFromUrl = c4, w2.setup = function(e11) {
12366        n9 || (n9 = e11, e8() && (/complete|interactive|loaded/.test(document.readyState) ? h3() : document.addEventListener("DOMContentLoaded", h3)));
12367      };
12368    }
12369  });
12370
12371  
vendor: 439 bytes, lines 12371-12380
12371// node_modules/@fancyapps/ui/dist/fancybox/l10n/en_EN.js
12372  var o9;
12373  var init_en_EN3 = __esm({
12374    "node_modules/@fancyapps/ui/dist/fancybox/l10n/en_EN.js"() {
12375      init_en_EN2();
12376      o9 = Object.assign(Object.assign({}, o3), { CLOSE: "Close", NEXT: "Next", PREV: "Previous", MODAL: "You can close this modal content with the ESC key", ELEMENT_NOT_FOUND: "HTML Element Not Found", IFRAME_ERROR: "Error Loading Page" });
12377    }
12378  });
12379
12380  
vendor: 38,385 bytes, lines 12380-13030
12380// node_modules/@fancyapps/ui/dist/fancybox/fancybox.js
12381  function q(e11, t11 = {}) {
12382    var n10, o11, i10;
12383    if (!(e11 && e11 instanceof Element)) return;
12384    let s13, r7, a8, c5, u5 = {};
12385    for (const [t12, n11] of N.openers) if (t12.contains(e11)) for (const [o12, i11] of n11) {
12386      let n12;
12387      if (o12) {
12388        for (const i12 of t12.querySelectorAll(o12)) if (i12.contains(e11)) {
12389          n12 = i12;
12390          break;
12391        }
12392        if (!n12) continue;
12393      }
12394      for (const [o13, d4] of i11) {
12395        let i12 = null;
12396        try {
12397          i12 = e11.closest(o13);
12398        } catch (e12) {
12399        }
12400        i12 && (r7 = t12, a8 = n12, s13 = i12, c5 = o13, r3(u5, d4 || {}));
12401      }
12402    }
12403    if (!r7 || !c5 || !s13) return;
12404    const d3 = r3({}, I, t11, u5, { triggerEl: s13 });
12405    let f3 = [].slice.call((a8 || r7).querySelectorAll(c5));
12406    const m3 = s13.closest(".f-carousel"), g2 = null == m3 ? void 0 : m3.carousel;
12407    if (g2 && (!a8 || !m3.contains(a8))) {
12408      const e12 = [];
12409      for (const t12 of null == g2 ? void 0 : g2.getSlides()) {
12410        const n11 = t12.el;
12411        n11 && (n11.matches(c5) ? e12.push(n11) : e12.push(...[].slice.call(n11.querySelectorAll(c5))));
12412      }
12413      e12.length && (f3 = [...e12], null === (n10 = g2.getPlugins().Autoplay) || void 0 === n10 || n10.pause(), null === (o11 = g2.getPlugins().Autoscroll) || void 0 === o11 || o11.pause(), d3.sync = g2);
12414    }
12415    if (false === d3.groupAll) {
12416      const e12 = d3.groupAttr, t12 = e12 && s13 ? s13.getAttribute(`${e12}`) : "";
12417      f3 = e12 && t12 ? f3.filter((n11) => n11.getAttribute(`${e12}`) === t12) : [s13];
12418    }
12419    if (!f3.length) return;
12420    null === (i10 = d3.triggerEvent) || void 0 === i10 || i10.preventDefault();
12421    const p2 = N.getInstance(), v3 = null == p2 ? void 0 : p2.getState();
12422    if (p2 && (v3 === _.Init || v3 === _.Ready)) {
12423      const e12 = p2.getOptions().triggerEl;
12424      if (e12 && f3.indexOf(e12) > -1) return;
12425    }
12426    return Object.assign({}, d3.Carousel || {}).rtl && (f3 = f3.reverse()), s13 && void 0 === t11.startIndex && (d3.startIndex = f3.indexOf(s13)), N.fromNodes(f3, d3);
12427  }
12428  var A, k2, R, O, _, I, z, H, D, B, N;
12429  var init_fancybox = __esm({
12430    "node_modules/@fancyapps/ui/dist/fancybox/fancybox.js"() {
12431      init_isPlainObject();
12432      init_isString();
12433      init_isNode();
12434      init_strToHtml();
12435      init_getScrollableParent();
12436      init_scrollLock();
12437      init_extend();
12438      init_canUseDOM();
12439      init_map();
12440      init_addClass();
12441      init_removeClass();
12442      init_toggleClass();
12443      init_tween();
12444      init_gestures();
12445      init_panzoom();
12446      init_panzoom();
12447      init_carousel();
12448      init_carousel_zoomable();
12449      init_carousel_sync();
12450      init_carousel_lazyload();
12451      init_carousel_arrows();
12452      init_carousel_toolbar();
12453      init_carousel_toolbar();
12454      init_carousel_autoplay();
12455      init_carousel_thumbs();
12456      init_carousel_html();
12457      init_carousel_video();
12458      init_carousel_fullscreen();
12459      init_fancybox_hash();
12460      init_en_EN3();
12461      A = '<button class="f-button" title="{{CLOSE}}" data-fancybox-close><svg tabindex="-1" width="24" height="24" viewBox="0 0 24 24"><path d="M19.286 4.714 4.714 19.286M4.714 4.714l14.572 14.572" /></svg></button>';
12462      r5().add("close", { tpl: A });
12463      k2 = (e11) => {
12464        e11.cancelable && e11.preventDefault();
12465      };
12466      R = (e11 = null, t11 = "", n10) => {
12467        if (!e11 || !e11.parentElement || !t11) return void (n10 && n10());
12468        O(e11);
12469        const o11 = (i10) => {
12470          i10.target === e11 && e11.dataset.animationName && (e11.removeEventListener("animationend", o11), delete e11.dataset.animationName, n10 && n10(), e11.classList.remove(t11));
12471        };
12472        e11.dataset.animationName = t11, e11.addEventListener("animationend", o11), s3(e11, t11);
12473      };
12474      O = (e11) => {
12475        e11 && e11.dispatchEvent(new CustomEvent("animationend", { bubbles: false, cancelable: true, currentTarget: e11 }));
12476      };
12477      !(function(e11) {
12478        e11[e11.Init = 0] = "Init", e11[e11.Ready = 1] = "Ready", e11[e11.Closing = 2] = "Closing", e11[e11.Destroyed = 3] = "Destroyed";
12479      })(_ || (_ = {}));
12480      I = { ajax: null, backdropClick: "close", Carousel: {}, closeButton: "auto", closeExisting: false, delegateEl: void 0, dragToClose: true, fadeEffect: true, groupAll: false, groupAttr: "data-fancybox", hideClass: "f-fadeOut", hideScrollbar: true, id: void 0, idle: false, keyboard: { Escape: "close", Delete: "close", Backspace: "close", PageUp: "next", PageDown: "prev", ArrowUp: "prev", ArrowDown: "next", ArrowRight: "next", ArrowLeft: "prev" }, l10n: o9, mainClass: "", mainStyle: {}, mainTpl: '<dialog class="fancybox__dialog">\n    <div class="fancybox__container" tabindex="0" aria-label="{{MODAL}}">\n      <div class="fancybox__backdrop"></div>\n      <div class="fancybox__carousel"></div>\n    </div>\n  </dialog>', modal: true, on: {}, parentEl: void 0, placeFocusBack: true, showClass: "f-zoomInUp", startIndex: 0, sync: void 0, theme: "dark", triggerEl: void 0, triggerEvent: void 0, zoomEffect: true };
12481      z = /* @__PURE__ */ new Map();
12482      H = 0;
12483      D = "with-fancybox";
12484      B = () => {
12485        let r7, T, M3, B2, q2, F, V, W = _.Init, $4 = Object.assign({}, I), K = -1, U = {}, X = [], G = false, Y = true, Z = 0;
12486        function J(e11, ...t11) {
12487          let n10 = $4[e11];
12488          return n10 && "function" == typeof n10 ? n10(Oe, ...t11) : n10;
12489        }
12490        function Q(e11, t11 = []) {
12491          const n10 = J("l10n") || {};
12492          e11 = String(e11).replace(/\{\{(\w+)\}\}/g, (e12, t12) => n10[t12] || e12);
12493          for (let n11 = 0; n11 < t11.length; n11++) e11 = e11.split(t11[n11][0]).join(t11[n11][1]);
12494          return e11 = e11.replace(/\{\{(.*?)\}\}/g, (e12, t12) => t12);
12495        }
12496        const ee = /* @__PURE__ */ new Map();
12497        function te(e11, ...t11) {
12498          const n10 = [...ee.get(e11) || []];
12499          for (const [t12, o11] of Object.entries($4.on || {})) (t12 === e11 || t12.split(" ").indexOf(e11) > -1) && n10.push(o11);
12500          for (const e12 of n10) e12 && "function" == typeof e12 && e12(Oe, ...t11);
12501          "*" !== e11 && te("*", e11, ...t11);
12502        }
12503        function ne() {
12504          s4(T, "is-revealing");
12505          try {
12506            if (document.activeElement === r7) {
12507              ((null == T ? void 0 : T.querySelector("[autofocus]")) || T).focus();
12508            }
12509          } catch (e11) {
12510          }
12511        }
12512        function oe(e11, n10) {
12513          var o11;
12514          ye(n10), fe(), null === (o11 = n10.el) || void 0 === o11 || o11.addEventListener("click", se), "inline" !== n10.type && "clone" !== n10.type || (function(e12) {
12515            if (!B2 || !e12 || !e12.el) return;
12516            let n11 = null;
12517            if (t(e12.src)) {
12518              const t11 = e12.src.split("#", 2).pop();
12519              n11 = t11 ? document.getElementById(t11) : null;
12520            }
12521            if (n11) {
12522              if (s3(n11, "f-html"), "clone" === e12.type || n11.closest(".fancybox__carousel")) {
12523                n11 = n11.cloneNode(true);
12524                const t11 = n11.dataset.animationName;
12525                t11 && (n11.classList.remove(t11), delete n11.dataset.animationName);
12526                let o12 = n11.getAttribute("id");
12527                o12 = o12 ? `${o12}--clone` : `clone-${K}-${e12.index}`, n11.setAttribute("id", o12);
12528              } else if (n11.parentNode) {
12529                const t11 = document.createElement("div");
12530                t11.inert = true, n11.parentNode.insertBefore(t11, n11), e12.placeholderEl = t11;
12531              }
12532              e12.htmlEl = n11, s3(e12.el, "has-html"), e12.el.prepend(n11), n11.classList.remove("hidden"), "none" === n11.style.display && (n11.style.display = ""), "none" === getComputedStyle(n11).getPropertyValue("display") && (n11.style.display = n11.dataset.display || "flex"), null == B2 || B2.emit("contentReady", e12);
12533            } else null == B2 || B2.showError(e12, "{{ELEMENT_NOT_FOUND}}");
12534          })(n10), "ajax" === n10.type && (function(e12) {
12535            const t11 = e12.el;
12536            if (!t11) return;
12537            if (e12.htmlEl || e12.xhr) return;
12538            null == B2 || B2.showLoading(e12), e12.state = 0;
12539            const n11 = new XMLHttpRequest();
12540            n11.onreadystatechange = function() {
12541              if (n11.readyState === XMLHttpRequest.DONE && W === _.Ready) if (null == B2 || B2.hideLoading(e12), e12.state = 1, 200 === n11.status) {
12542                let o13 = n11.responseText + "", i10 = null, s13 = null;
12543                if (e12.filter) {
12544                  const t12 = document.createElement("div");
12545                  t12.innerHTML = o13, s13 = t12.querySelector(e12.filter + "");
12546                }
12547                s13 && s13 instanceof HTMLElement ? i10 = s13 : (i10 = document.createElement("div"), i10.innerHTML = o13), i10.classList.add("f-html"), e12.htmlEl = i10, t11.classList.add("has-html"), t11.classList.add("has-ajax"), t11.prepend(i10), null == B2 || B2.emit("contentReady", e12);
12548              } else null == B2 || B2.showError(e12);
12549            };
12550            const o12 = J("ajax") || null;
12551            n11.open(o12 ? "POST" : "GET", e12.src + ""), n11.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"), n11.setRequestHeader("X-Requested-With", "XMLHttpRequest"), n11.send(o12), e12.xhr = n11;
12552          })(n10);
12553        }
12554        function ie(e11, t11) {
12555          var n10;
12556          he(t11), null === (n10 = t11.el) || void 0 === n10 || n10.removeEventListener("click", se), "inline" !== t11.type && "clone" !== t11.type || (function(e12) {
12557            const t12 = e12.htmlEl, n11 = e12.placeholderEl;
12558            t12 && ("none" !== getComputedStyle(t12).getPropertyValue("display") && (t12.style.display = "none"), t12.offsetHeight);
12559            n11 && (t12 && n11.parentNode && n11.parentNode.insertBefore(t12, n11), n11.remove());
12560            e12.htmlEl = void 0, e12.placeholderEl = void 0;
12561          })(t11), t11.xhr && (t11.xhr.abort(), t11.xhr = void 0);
12562        }
12563        function se(e11) {
12564          if (!Ee()) return;
12565          if (W !== _.Ready) return k2(e11), void e11.stopPropagation();
12566          if (e11.defaultPrevented) return;
12567          if (!f.isClickAllowed()) return;
12568          const t11 = e11.composedPath()[0];
12569          t11.closest(".fancybox__carousel") && t11.classList.contains("fancybox__slide") && me(e11);
12570        }
12571        function le() {
12572          Y = false, T && B2 && T.classList.remove("is-revealing"), fe();
12573          const e11 = J("sync");
12574          if (B2 && e11) {
12575            const t11 = e11.getPageIndex(B2.getPageIndex()) || 0;
12576            e11.goTo(t11, { transition: false, tween: false });
12577          }
12578        }
12579        function re() {
12580          var e11;
12581          !(function() {
12582            const e12 = null == B2 ? void 0 : B2.getViewport();
12583            if (!J("dragToClose") || !B2 || !e12) return;
12584            if (q2 = f(e12).init(), !q2) return;
12585            let t12 = false, n10 = 0, o11 = 0, s13 = {}, l10 = 1;
12586            function r8() {
12587              var e13, t13;
12588              null == F || F.spring({ clamp: true, mass: 1, tension: 0 === o11 ? 140 : 960, friction: 17, restDelta: 0.1, restSpeed: 0.1, maxSpeed: 1 / 0 }).from({ y: n10 }).to({ y: o11 }).start();
12589              const i10 = (null === (e13 = null == B2 ? void 0 : B2.getViewport()) || void 0 === e13 ? void 0 : e13.getBoundingClientRect().height) || 0, s14 = null === (t13 = xe()) || void 0 === t13 ? void 0 : t13.panzoomRef;
12590              if (i10 && s14) if (0 === o11) s14.execute(v.Reset);
12591              else {
12592                const e14 = t5(Math.abs(n10), 0, 0.33 * i10, l10, 0.77 * l10, false);
12593                s14.execute(v.ZoomTo, { scale: e14 });
12594              }
12595            }
12596            const c5 = (e13) => {
12597              var t13;
12598              const n11 = e13.srcEvent, o12 = n11.target;
12599              return B2 && !(e5(n11) && (null === (t13 = n11.touches) || void 0 === t13 ? void 0 : t13.length) > 1) && o12 && !n2(o12);
12600            };
12601            F = c().on("step", (t13) => {
12602              if (T && e12 && W === _.Ready) {
12603                const o12 = e12.getBoundingClientRect().height;
12604                n10 = Math.min(o12, Math.max(-1 * o12, t13.y));
12605                const i10 = t5(Math.abs(n10), 0, 0.5 * o12, 1, 0, true);
12606                T.style.setProperty("--f-drag-opacity", i10 + ""), T.style.setProperty("--f-drag-offset", n10 + "px");
12607              }
12608            }), q2.on("start", function() {
12609              t12 || (null == F || F.pause(), o11 = n10);
12610            }).on("panstart", (e13) => {
12611              var n11, o12;
12612              if (!t12 && c5(e13) && "y" === e13.axis) {
12613                k2(e13.srcEvent), t12 = true, Me(), null === (n11 = null == B2 ? void 0 : B2.getViewport()) || void 0 === n11 || n11.classList.add("is-dragging");
12614                const i10 = null === (o12 = xe()) || void 0 === o12 ? void 0 : o12.panzoomRef;
12615                if (i10) {
12616                  l10 = i10.getTransform().scale || 1;
12617                  const e14 = i10.getOptions();
12618                  s13 = Object.assign({}, e14), e14.bounds = false, e14.gestures = false;
12619                }
12620              } else t12 = false;
12621            }).on("pan", function(e13) {
12622              t12 && c5(e13) && (k2(e13.srcEvent), e13.srcEvent.stopPropagation(), "y" === e13.axis && (o11 += e13.deltaY, r8()));
12623            }).on("end", (e13) => {
12624              var i10, l11, a8;
12625              if (null === (i10 = null == B2 ? void 0 : B2.getViewport()) || void 0 === i10 || i10.classList.remove("is-dragging"), t12) {
12626                const t13 = null === (l11 = xe()) || void 0 === l11 ? void 0 : l11.panzoomRef;
12627                if (t13) {
12628                  null === (a8 = t13.getTween()) || void 0 === a8 || a8.end();
12629                  const e14 = t13.getOptions();
12630                  e14.bounds = s13.bounds || false, e14.gestures = s13.gestures || false;
12631                }
12632                c5(e13) && "y" === e13.axis && (Math.abs(e13.velocityY) > 5 || Math.abs(n10) > 50) && Ae(e13.srcEvent, "f-throwOut" + (e13.velocityY > 0 ? "Down" : "Up"));
12633              }
12634              t12 = false, W === _.Ready && 0 !== n10 && (o11 = 0, r8());
12635            });
12636          })(), document.body.addEventListener("click", ve), document.body.addEventListener("keydown", pe, { passive: false, capture: true }), fe(), Se();
12637          const t11 = J("sync");
12638          B2 && t11 && (null === (e11 = t11.getTween()) || void 0 === e11 || e11.start()), be(xe());
12639        }
12640        function ae() {
12641          (null == B2 ? void 0 : B2.canGoNext()) ? Se() : Te();
12642        }
12643        function ce(e11, t11) {
12644          ye(t11);
12645        }
12646        function ue(e11, t11) {
12647          ye(t11), be(t11);
12648        }
12649        function de() {
12650          var e11;
12651          const t11 = null == B2 ? void 0 : B2.getPlugins().Thumbs;
12652          s5(T, "has-thumbs", (null == t11 ? void 0 : t11.isEnabled()) || false), s5(T, "has-vertical-thumbs", !!t11 && ("scrollable" === t11.getType() || true === (null === (e11 = t11.getCarousel()) || void 0 === e11 ? void 0 : e11.isVertical())));
12653        }
12654        function fe() {
12655          if (T) {
12656            const e11 = (null == B2 ? void 0 : B2.getPages()) || [], t11 = (null == B2 ? void 0 : B2.getPageIndex()) || 0;
12657            for (const e12 of T.querySelectorAll("[data-fancybox-index]")) e12.innerHTML = t11 + "";
12658            for (const e12 of T.querySelectorAll("[data-fancybox-page]")) e12.innerHTML = t11 + 1 + "";
12659            for (const t12 of T.querySelectorAll("[data-fancybox-pages]")) t12.innerHTML = e11.length + "";
12660          }
12661        }
12662        function me(e11) {
12663          if (!!e11.composedPath()[0].closest("[data-fancybox-close]")) return void Ae(e11);
12664          if (te("backdropClick", e11), e11.defaultPrevented) return;
12665          J("backdropClick") && Ae(e11);
12666        }
12667        function ge() {
12668          Ce();
12669        }
12670        function pe(e11) {
12671          if (!Ee()) return;
12672          if (W !== _.Ready) return;
12673          const t11 = e11.key, o11 = J("keyboard");
12674          if (!o11) return;
12675          if (e11.ctrlKey || e11.altKey || e11.shiftKey) return;
12676          const i10 = e11.composedPath()[0];
12677          if (!n(i10)) return;
12678          if ("Escape" !== t11 && ((e12) => {
12679            const t12 = ["input", "textarea", "select", "option", "video", "iframe", "[contenteditable]", "[data-selectable]", "[data-draggable]"].join(",");
12680            return e12.matches(t12) || e12.closest(t12);
12681          })(i10)) return;
12682          if (te("keydown", e11), e11.defaultPrevented) return;
12683          const s13 = o11[t11];
12684          if (s13) switch (s13) {
12685            case "close":
12686              Ae(e11);
12687              break;
12688            case "next":
12689              k2(e11), null == B2 || B2.next();
12690              break;
12691            case "prev":
12692              k2(e11), null == B2 || B2.prev();
12693          }
12694        }
12695        function ve(e11) {
12696          if (!Ee()) return;
12697          if (W !== _.Ready) return;
12698          if (Ce(), e11.defaultPrevented) return;
12699          const t11 = e11.composedPath()[0], n10 = !!t11.closest("[data-fancybox-close]"), o11 = t11.classList.contains("fancybox__backdrop");
12700          (n10 || o11) && me(e11);
12701        }
12702        function ye(e11) {
12703          var t11;
12704          const { el: n10, htmlEl: i10, panzoomRef: s13, closeButtonEl: l10 } = e11, r8 = s13 ? s13.getWrapper() : i10;
12705          if (!n10 || !n10.parentElement || !r8) return;
12706          let a8 = J("closeButton");
12707          if ("auto" === a8 && (a8 = true !== (null === (t11 = null == B2 ? void 0 : B2.getPlugins().Toolbar) || void 0 === t11 ? void 0 : t11.isEnabled())), a8) {
12708            if (!l10) {
12709              const t12 = e2(Q(A));
12710              t12 && (s3(t12, "is-close-button"), e11.closeButtonEl = r8.insertAdjacentElement("afterbegin", t12), s3(n10, "has-close-btn"));
12711            }
12712          } else he(e11);
12713        }
12714        function he(e11) {
12715          e11.closeButtonEl && (e11.closeButtonEl.remove(), e11.closeButtonEl = void 0), s4(e11.el, "has-close-btn");
12716        }
12717        function be(e11) {
12718          if (!(Y && B2 && 1 === B2.getState() && e11 && e11.index === B2.getOptions().initialPage && e11.el && e11.el.parentElement)) return;
12719          if (void 0 !== e11.state && 1 !== e11.state) return;
12720          Y = false;
12721          const t11 = e11.panzoomRef, n10 = null == t11 ? void 0 : t11.getTween(), o11 = J("zoomEffect") && n10 ? Le(e11) : void 0;
12722          if (t11 && n10 && o11) {
12723            const { x: e12, y: i11, scale: s13 } = t11.getStartPosition();
12724            return void n10.spring({ tension: 215, friction: 25, restDelta: 1e-3, restSpeed: 1e-3, maxSpeed: 1 / 0 }).from(o11).to({ x: e12, y: i11, scale: s13 }).start();
12725          }
12726          const i10 = (null == t11 ? void 0 : t11.getContent()) || e11.htmlEl;
12727          i10 && R(i10, J("showClass", e11));
12728        }
12729        function Ee() {
12730          var e11;
12731          return (null === (e11 = N.getInstance()) || void 0 === e11 ? void 0 : e11.getId()) === K;
12732        }
12733        function xe() {
12734          var e11;
12735          return null === (e11 = null == B2 ? void 0 : B2.getPage()) || void 0 === e11 ? void 0 : e11.slides[0];
12736        }
12737        function we() {
12738          const e11 = xe();
12739          return e11 ? e11.triggerEl || J("triggerEl") : void 0;
12740        }
12741        function Le(e11) {
12742          var t11, n10;
12743          const o11 = e11.thumbEl;
12744          if (!o11 || !((e12) => {
12745            const t12 = e12.getBoundingClientRect(), n11 = e12.closest("[style]"), o12 = null == n11 ? void 0 : n11.parentElement;
12746            if (n11 && n11.style.transform && o12) {
12747              const e13 = o12.getBoundingClientRect();
12748              if (t12.left < e13.left || t12.left > e13.left + e13.width - t12.width) return false;
12749              if (t12.top < e13.top || t12.top > e13.top + e13.height - t12.height) return false;
12750            }
12751            const i11 = Math.max(document.documentElement.clientHeight, window.innerHeight), s14 = Math.max(document.documentElement.clientWidth, window.innerWidth);
12752            return !(t12.bottom < 0 || t12.top - i11 >= 0 || t12.right < 0 || t12.left - s14 >= 0);
12753          })(o11)) return;
12754          const i10 = null === (n10 = null === (t11 = e11.panzoomRef) || void 0 === t11 ? void 0 : t11.getWrapper()) || void 0 === n10 ? void 0 : n10.getBoundingClientRect(), s13 = null == i10 ? void 0 : i10.width, l10 = null == i10 ? void 0 : i10.height;
12755          if (!s13 || !l10) return;
12756          const r8 = o11.getBoundingClientRect();
12757          let a8 = r8.width, c5 = r8.height, u5 = r8.left, d3 = r8.top;
12758          if (!r8 || !a8 || !c5) return;
12759          if (o11 instanceof HTMLImageElement) {
12760            const e12 = window.getComputedStyle(o11).getPropertyValue("object-fit");
12761            if ("contain" === e12 || "scale-down" === e12) {
12762              const { width: t12, height: n11 } = ((e13, t13, n12, o12, i11 = "contain") => {
12763                if ("contain" === i11 || e13 > n12 || t13 > o12) {
12764                  const i12 = n12 / e13, s14 = o12 / t13, l11 = Math.min(i12, s14);
12765                  e13 *= l11, t13 *= l11;
12766                }
12767                return { width: e13, height: t13 };
12768              })(o11.naturalWidth, o11.naturalHeight, a8, c5, e12);
12769              u5 += 0.5 * (a8 - t12), d3 += 0.5 * (c5 - n11), a8 = t12, c5 = n11;
12770            }
12771          }
12772          if (Math.abs(s13 / l10 - a8 / c5) > 0.1) return;
12773          return { x: u5 + 0.5 * a8 - (i10.left + 0.5 * s13), y: d3 + 0.5 * c5 - (i10.top + 0.5 * l10), scale: a8 / s13 };
12774        }
12775        function je() {
12776          V && clearTimeout(V), V = void 0, document.removeEventListener("mousemove", ge);
12777        }
12778        function Se() {
12779          if (G) return;
12780          if (V) return;
12781          const e11 = J("idle");
12782          e11 && (V = setTimeout(Pe, e11));
12783        }
12784        function Pe() {
12785          T && (je(), s3(T, "is-idle"), document.addEventListener("mousemove", ge), G = true);
12786        }
12787        function Ce() {
12788          G && (Te(), Se());
12789        }
12790        function Te() {
12791          je(), null == T || T.classList.remove("is-idle"), G = false;
12792        }
12793        function Me() {
12794          const e11 = we();
12795          var t11;
12796          !e11 || (t11 = e11.getBoundingClientRect()).bottom > 0 && t11.right > 0 && t11.left < (window.innerWidth || document.documentElement.clientWidth) && t11.top < (window.innerHeight || document.documentElement.clientHeight) || e11.closest("[inert]") || e11.scrollIntoView({ behavior: "instant", block: "center", inline: "center" });
12797        }
12798        function Ae(e11, t11) {
12799          var n10, o11, i10, s13, r8;
12800          if (W === _.Closing || W === _.Destroyed) return;
12801          const a8 = new Event("shouldClose", { bubbles: true, cancelable: true });
12802          if (te("shouldClose", a8, e11), a8.defaultPrevented) return;
12803          if (je(), e11) {
12804            if (e11.defaultPrevented) return;
12805            k2(e11), e11.stopPropagation(), e11.stopImmediatePropagation();
12806          }
12807          if (W = _.Closing, null == F || F.pause(), null == q2 || q2.destroy(), B2) {
12808            null === (n10 = B2.getGestures()) || void 0 === n10 || n10.destroy(), null === (o11 = B2.getTween()) || void 0 === o11 || o11.pause();
12809            for (const e12 of B2.getSlides()) {
12810              const t12 = e12.panzoomRef;
12811              t12 && (r3(t12.getOptions(), { clickAction: false, dblClickAction: false, wheelAction: false, bounds: false, minScale: 0, maxScale: 1 / 0 }), null === (i10 = t12.getGestures()) || void 0 === i10 || i10.destroy(), null === (s13 = t12.getTween()) || void 0 === s13 || s13.pause());
12812            }
12813          }
12814          const c5 = null == B2 ? void 0 : B2.getPlugins();
12815          null === (r8 = null == c5 ? void 0 : c5.Autoplay) || void 0 === r8 || r8.stop();
12816          const u5 = null == c5 ? void 0 : c5.Fullscreen;
12817          u5 && u5.inFullscreen() ? Promise.resolve(u5.exit()).then(() => {
12818            setTimeout(() => {
12819              ke(e11, t11);
12820            }, 150);
12821          }) : ke(e11, t11);
12822        }
12823        function ke(e11, t11) {
12824          var n10, o11;
12825          if (W !== _.Closing) return;
12826          te("close", e11), Y = false, document.body.removeEventListener("click", ve), document.body.removeEventListener("keydown", pe, { passive: false, capture: true }), J("placeFocusBack") && Me();
12827          const i10 = document.activeElement;
12828          i10 && (null == r7 ? void 0 : r7.contains(i10)) && i10.blur(), J("fadeEffect") && (null == T || T.classList.remove("is-ready"), null == T || T.classList.add("is-hiding")), null == T || T.classList.add("is-closing");
12829          const s13 = xe(), l10 = null == s13 ? void 0 : s13.el, a8 = null == s13 ? void 0 : s13.panzoomRef, c5 = null === (n10 = null == s13 ? void 0 : s13.panzoomRef) || void 0 === n10 ? void 0 : n10.getTween(), u5 = t11 || J("hideClass");
12830          let d3 = false, m3 = false;
12831          if (B2 && s13 && l10 && a8 && c5) {
12832            let e12;
12833            if (J("zoomEffect") && 1 === s13.state && (e12 = Le(s13)), e12) {
12834              d3 = true;
12835              const t12 = () => {
12836                e12 = Le(s13), e12 ? c5.to(Object.assign(Object.assign({}, y), e12)) : Re();
12837              };
12838              a8.on("refresh", () => {
12839                t12();
12840              }), c5.easing(c.Easings.EaseOut).duration(350).from(Object.assign({}, a8.getTransform())).to(Object.assign(Object.assign({}, y), e12)).start(), (null == l10 ? void 0 : l10.getAnimations()) && (l10.style.animationPlayState = "paused", requestAnimationFrame(() => {
12841                t12();
12842              }));
12843            }
12844          }
12845          const g2 = (null == s13 ? void 0 : s13.htmlEl) || (null === (o11 = null == s13 ? void 0 : s13.panzoomRef) || void 0 === o11 ? void 0 : o11.getWrapper());
12846          g2 && O(g2), !d3 && u5 && g2 && (m3 = true, R(g2, u5, () => {
12847            Re();
12848          })), d3 || m3 ? setTimeout(() => {
12849            Re();
12850          }, 350) : Re();
12851        }
12852        function Re() {
12853          var e11, t11, n10, o11, i10;
12854          if (W === _.Destroyed) return;
12855          W = _.Destroyed;
12856          const l10 = we();
12857          te("destroy"), null === (t11 = null === (e11 = J("sync")) || void 0 === e11 ? void 0 : e11.getPlugins().Autoplay) || void 0 === t11 || t11.resume(), null === (o11 = null === (n10 = J("sync")) || void 0 === n10 ? void 0 : n10.getPlugins().Autoscroll) || void 0 === o11 || o11.resume(), r7 instanceof HTMLDialogElement && r7.close(), null === (i10 = null == B2 ? void 0 : B2.getContainer()) || void 0 === i10 || i10.classList.remove("is-idle"), null == B2 || B2.destroy();
12858          for (const e12 of Object.values(U)) null == e12 || e12.destroy();
12859          if (U = {}, null == r7 || r7.remove(), r7 = void 0, T = void 0, B2 = void 0, z.delete(K), !z.size && (t6(false), document.documentElement.classList.remove(D), J("placeFocusBack") && l10 && !l10.closest("[inert]"))) try {
12860            null == l10 || l10.focus({ preventScroll: true });
12861          } catch (e12) {
12862          }
12863        }
12864        const Oe = { close: Ae, destroy: Re, getCarousel: function() {
12865          return B2;
12866        }, getContainer: function() {
12867          return T;
12868        }, getId: function() {
12869          return K;
12870        }, getOptions: function() {
12871          return $4;
12872        }, getPlugins: function() {
12873          return U;
12874        }, getSlide: function() {
12875          return xe();
12876        }, getState: function() {
12877          return W;
12878        }, init: function(t11 = [], n10 = {}) {
12879          W !== _.Init && (Oe.destroy(), W = _.Init), $4 = r3({}, I, n10), K = J("id") || "fancybox-" + ++H;
12880          const a8 = z.get(K);
12881          if (a8 && a8.destroy(), z.set(K, Oe), te("init"), (function() {
12882            for (const [e11, t12] of Object.entries(Object.assign(Object.assign({}, N.Plugins), $4.plugins || {}))) if (e11 && !U[e11] && t12 instanceof Function) {
12883              const n11 = t12();
12884              n11.init(Oe), U[e11] = n11;
12885            }
12886            te("initPlugins");
12887          })(), (function(e11 = []) {
12888            te("initSlides", e11), X = [...e11];
12889          })(t11), (function() {
12890            const t12 = J("parentEl") || document.body;
12891            if (!(t12 && t12 instanceof HTMLElement)) return;
12892            const n11 = Q(J("mainTpl") || "");
12893            if (r7 = e2(n11) || void 0, !r7) return;
12894            if (T = r7.querySelector(".fancybox__container"), !(T && T instanceof HTMLElement)) return;
12895            const l10 = J("mainClass");
12896            l10 && s3(T, l10);
12897            const a9 = J("mainStyle");
12898            if (a9 && t3(a9)) for (const [e11, t13] of Object.entries(a9)) T.style.setProperty(e11, t13);
12899            const u5 = J("theme"), d3 = "auto" === u5 ? window.matchMedia("(prefers-color-scheme:light)").matches : "light" === u5;
12900            T.setAttribute("theme", d3 ? "light" : "dark"), r7.setAttribute("id", `${K}`), r7.addEventListener("keydown", (e11) => {
12901              "Escape" === e11.key && k2(e11);
12902            }), r7.addEventListener("wheel", (e11) => {
12903              const t13 = e11.target;
12904              let n12 = J("wheel", e11);
12905              t13.closest(".f-thumbs") && (n12 = "slide");
12906              const o11 = "slide" === n12, s13 = [-e11.deltaX || 0, -e11.deltaY || 0, -e11.detail || 0].reduce(function(e12, t14) {
12907                return Math.abs(t14) > Math.abs(e12) ? t14 : e12;
12908              }), l11 = Math.max(-1, Math.min(1, s13)), r8 = Date.now();
12909              Z && r8 - Z < 300 ? o11 && k2(e11) : (Z = r8, te("wheel", e11, l11), e11.defaultPrevented || ("close" === n12 ? Ae(e11) : "slide" === n12 && B2 && !n2(t13) && (k2(e11), B2[l11 > 0 ? "prev" : "next"]())));
12910            }, { capture: true, passive: false }), r7.addEventListener("cancel", (e11) => {
12911              Ae(e11);
12912            }), t12.append(r7), 1 === z.size && (J("hideScrollbar") && t6(true), document.documentElement.classList.add(D));
12913            r7 instanceof HTMLDialogElement && (J("modal") ? r7.showModal() : r7.show());
12914            te("initLayout");
12915          })(), (function() {
12916            if (M3 = (null == r7 ? void 0 : r7.querySelector(".fancybox__carousel")) || void 0, !M3) return;
12917            M3.fancybox = Oe;
12918            const e11 = r3({}, { Autoplay: { autoStart: false, pauseOnHover: false, progressbarParentEl: (e12) => {
12919              const t12 = e12.getContainer();
12920              return (null == t12 ? void 0 : t12.querySelector(".f-carousel__toolbar [data-autoplay-action]")) || t12;
12921            } }, Fullscreen: { el: T }, Toolbar: { absolute: true, items: { counter: { tpl: '<div class="f-counter"><span data-fancybox-page></span>/<span data-fancybox-pages></span></div>' } }, display: { left: ["counter"], right: ["toggleFull", "autoplay", "fullscreen", "thumbs", "close"] } }, Video: { autoplay: true }, Thumbs: { minCount: 2, Carousel: { classes: { container: "fancybox__thumbs" } } }, classes: { container: "fancybox__carousel", viewport: "fancybox__viewport", slide: "fancybox__slide" }, spinnerTpl: '<div class="f-spinner" data-fancybox-close></div>', dragFree: false, slidesPerPage: 1, plugins: { Sync: i3, Arrows: l3, Lazyload: i4, Zoomable: s6, Html: l5, Video: s10, Autoplay: o6, Fullscreen: l7, Thumbs: c3, Toolbar: r5 } }, J("Carousel") || {}, { slides: X, enabled: true, initialPage: J("startIndex") || 0, l10n: J("l10n") });
12922            B2 = E2(M3, e11), te("initCarousel", B2), B2.on("*", (e12, t12, ...n11) => {
12923              te(`Carousel.${t12}`, e12, ...n11);
12924            }), B2.on("attachSlideEl", oe), B2.on("detachSlideEl", ie), B2.on("contentLoading", ce), B2.on("contentReady", ue), B2.on("ready", re), B2.on("change", le), B2.on("settle", ae), B2.on("thumbs:ready", de), B2.on("thumbs:destroy", de), B2.init();
12925          })(), r7 && T) {
12926            if (J("closeExisting")) for (const [e11, t12] of z.entries()) e11 !== K && t12.close();
12927            J("fadeEffect") ? (setTimeout(() => {
12928              ne();
12929            }, 500), s3(T, "is-revealing")) : ne(), T.classList.add("is-ready"), W = _.Ready, te("ready");
12930          }
12931        }, isCurrentSlide: function(e11) {
12932          const t11 = xe();
12933          return !(!e11 || !t11) && t11.index === e11.index;
12934        }, isTopMost: function() {
12935          return Ee();
12936        }, off: function(e11, t11) {
12937          return ee.has(e11) && ee.set(e11, ee.get(e11).filter((e12) => e12 !== t11)), Oe;
12938        }, on: function(e11, t11) {
12939          return ee.set(e11, [...ee.get(e11) || [], t11]), Oe;
12940        }, toggleIdle(e11) {
12941          (G || true === e11) && Pe(), G && false !== e11 || Te();
12942        } };
12943        return Oe;
12944      };
12945      N = { Plugins: { Hash: w2 }, version: "6.1.10", openers: /* @__PURE__ */ new Map(), bind: function(e11, n10, o11, i10) {
12946        if (!e8()) return;
12947        let s13 = document.body, l10 = null, a8 = "[data-fancybox]", c5 = {};
12948        e11 instanceof Element && (s13 = e11), t(e11) && t(n10) ? (l10 = e11, a8 = n10) : t(n10) && t(o11) ? (l10 = n10, a8 = o11) : t(n10) ? a8 = n10 : t(e11) && (a8 = e11), "object" == typeof n10 && (c5 = n10 || {}), "object" == typeof o11 && (c5 = o11 || {}), "object" == typeof i10 && (c5 = i10 || {}), (function(e12, t11, n11, o12 = {}) {
12949          if (!(e12 && e12 instanceof Element && n11)) return;
12950          const i11 = N.openers.get(e12) || /* @__PURE__ */ new Map(), s14 = i11.get(t11) || /* @__PURE__ */ new Map();
12951          if (s14.set(n11, o12), i11.set(t11, s14), N.openers.set(e12, i11), 1 === i11.size && e12.addEventListener("click", N.fromEvent), 1 === N.openers.size) for (const e13 of Object.values(N.Plugins)) {
12952            const t12 = e13.setup;
12953            "function" == typeof t12 && t12(N);
12954          }
12955        })(s13, l10, a8, c5);
12956      }, close: function(e11 = true, ...t11) {
12957        if (e11) for (const e12 of z.values()) e12.close(...t11);
12958        else {
12959          const e12 = N.getInstance();
12960          e12 && e12.close(...t11);
12961        }
12962      }, destroy: function() {
12963        let e11;
12964        for (; e11 = N.getInstance(); ) e11.destroy();
12965        for (const e12 of N.openers.keys()) e12.removeEventListener("click", N.fromEvent);
12966        N.openers.clear();
12967      }, fromEvent: function(e11) {
12968        if (e11.defaultPrevented) return;
12969        if (e11.button && 0 !== e11.button) return;
12970        if (e11.ctrlKey || e11.metaKey || e11.shiftKey) return;
12971        let t11 = e11.composedPath()[0];
12972        const n10 = { triggerEvent: e11 };
12973        if (t11.closest(".fancybox__container.is-hiding")) return k2(e11), void e11.stopPropagation();
12974        const o11 = t11.closest("[data-fancybox-delegate]") || void 0;
12975        if (o11) {
12976          const e12 = o11.dataset.fancyboxDelegate || "", i10 = document.querySelectorAll(`[data-fancybox="${e12}"]`), s13 = parseInt(o11.dataset.fancyboxIndex || "", 10) || 0;
12977          t11 = i10[s13] || i10[0], r3(n10, { delegateEl: o11, startIndex: s13 });
12978        }
12979        return q(t11, n10);
12980      }, fromNodes: function(e11, t11) {
12981        t11 = r3({}, I, t11 || {});
12982        const n10 = [], o11 = (e12) => e12 instanceof HTMLImageElement ? e12 : e12 instanceof HTMLElement ? e12.querySelector("img:not([aria-hidden])") : void 0;
12983        for (const i10 of e11) {
12984          const s13 = i10.dataset || {}, l10 = t11.delegateEl && e11.indexOf(i10) === t11.startIndex ? t11.delegateEl : void 0, r7 = o11(l10) || o11(i10) || void 0, a8 = s13.src || i10.getAttribute("href") || i10.getAttribute("currentSrc") || i10.getAttribute("src") || void 0, c5 = s13.thumb || s13.thumbSrc || (null == r7 ? void 0 : r7.getAttribute("currentSrc")) || (null == r7 ? void 0 : r7.getAttribute("src")) || (null == r7 ? void 0 : r7.dataset.lazySrc) || void 0, u5 = { src: a8, alt: s13.alt || (null == r7 ? void 0 : r7.getAttribute("alt")) || void 0, thumbSrc: c5, thumbEl: r7, triggerEl: i10, delegateEl: l10 };
12985          for (const e12 in s13) {
12986            let t12 = s13[e12] + "";
12987            t12 = "false" !== t12 && ("true" === t12 || t12), u5[e12] = t12;
12988          }
12989          n10.push(u5);
12990        }
12991        return N.show(n10, t11);
12992      }, fromSelector: function(e11, n10, o11, i10) {
12993        if (!e8()) return;
12994        let s13 = document.body, l10 = null, a8 = "[data-fancybox]", c5 = {};
12995        e11 instanceof Element && (s13 = e11), t(e11) && t(n10) ? (l10 = e11, a8 = n10) : t(n10) && t(o11) ? (l10 = n10, a8 = o11) : t(n10) ? a8 = n10 : t(e11) && (a8 = e11), "object" == typeof n10 && (c5 = n10 || {}), "object" == typeof o11 && (c5 = o11 || {}), "object" == typeof i10 && (c5 = i10 || {});
12996        for (const [e12, t11] of N.openers) for (const [n11, o12] of t11) for (const [t12, i11] of o12) if (e12 === s13 && n11 === l10) {
12997          const e13 = s13.querySelector((n11 ? `${n11} ` : "") + a8);
12998          if (e13 && e13.matches(t12)) return N.fromTriggerEl(e13, c5);
12999        }
13000      }, fromTriggerEl: q, getCarousel: function() {
13001        var e11;
13002        return (null === (e11 = N.getInstance()) || void 0 === e11 ? void 0 : e11.getCarousel()) || void 0;
13003      }, getDefaults: function() {
13004        return I;
13005      }, getInstance: function(e11) {
13006        if (e11) {
13007          const t11 = z.get(e11);
13008          return t11 && t11.getState() !== _.Destroyed ? t11 : void 0;
13009        }
13010        return Array.from(z.values()).reverse().find((e12) => {
13011          if (e12.getState() !== _.Destroyed) return e12;
13012        }) || void 0;
13013      }, getSlide: function() {
13014        var e11;
13015        return (null === (e11 = N.getInstance()) || void 0 === e11 ? void 0 : e11.getSlide()) || void 0;
13016      }, show: function(e11 = [], t11 = {}) {
13017        return B().init(e11, t11);
13018      }, unbind: function(e11, n10, o11) {
13019        if (!e8()) return;
13020        let i10 = document.body, s13 = null, l10 = "[data-fancybox]";
13021        e11 instanceof Element && (i10 = e11), t(e11) && t(n10) ? (s13 = e11, l10 = n10) : t(n10) && t(o11) ? (s13 = n10, l10 = o11) : t(n10) ? l10 = n10 : t(e11) && (l10 = e11), (function(e12, t11, n11) {
13022          if (!(e12 && e12 instanceof Element && n11)) return;
13023          const o12 = N.openers.get(e12) || /* @__PURE__ */ new Map(), i11 = o12.get(t11) || /* @__PURE__ */ new Map();
13024          i11 && n11 && i11.delete(n11), i11.size && n11 || o12.delete(t11), o12.size || (N.openers.delete(e12), e12.removeEventListener("click", N.fromEvent));
13025        })(i10, s13, l10);
13026      } };
13027    }
13028  });
13029
13030  
vendor: 510 bytes, lines 13030-13049
13030// node_modules/@fancyapps/ui/dist/index.js
13031  var init_dist = __esm({
13032    "node_modules/@fancyapps/ui/dist/index.js"() {
13033      init_panzoom();
13034      init_carousel();
13035      init_fancybox();
13036      init_carousel_arrows();
13037      init_carousel_autoplay();
13038      init_carousel_fullscreen();
13039      init_carousel_html();
13040      init_carousel_lazyload();
13041      init_carousel_sync();
13042      init_carousel_thumbs();
13043      init_carousel_toolbar();
13044      init_carousel_video();
13045      init_carousel_zoomable();
13046    }
13047  });
13048
13049  
vendor: 167 bytes, lines 13049-13055
13049// node_modules/@fancyapps/ui/dist/fancybox/fancybox.css
13050  var init_fancybox2 = __esm({
13051    "node_modules/@fancyapps/ui/dist/fancybox/fancybox.css"() {
13052    }
13053  });
13054
13055  
vendor: 167 bytes, lines 13055-13061
13055// node_modules/@fancyapps/ui/dist/carousel/carousel.css
13056  var init_carousel2 = __esm({
13057    "node_modules/@fancyapps/ui/dist/carousel/carousel.css"() {
13058    }
13059  });
13060
13061  
vendor: 194 bytes, lines 13061-13067
13061// node_modules/@fancyapps/ui/dist/carousel/carousel.autoplay.css
13062  var init_carousel_autoplay2 = __esm({
13063    "node_modules/@fancyapps/ui/dist/carousel/carousel.autoplay.css"() {
13064    }
13065  });
13066
13067  
vendor: 3,216 bytes, lines 13067-13130
13067// node_modules/@fancyapps/ui/dist/carousel/carousel.dots.js
13068  var i8, s12, l9, a7;
13069  var init_carousel_dots = __esm({
13070    "node_modules/@fancyapps/ui/dist/carousel/carousel.dots.js"() {
13071      init_isPlainObject();
13072      init_strToHtml();
13073      init_addClass();
13074      init_removeClass();
13075      i8 = { dotTpl: '<button class="f-carousel__dot" data-carousel-go-to="%i" aria-label="{{GOTO}}"></button>', dynamicFrom: 11, dynamicPadd: 4, maxCount: 1 / 0, minCount: 2 };
13076      s12 = "f-carousel__dots";
13077      l9 = "has-dots";
13078      a7 = () => {
13079        let a8, r7, c5 = false, d3 = 4, u5 = 0, f3 = d3;
13080        function m3(n10) {
13081          const e11 = null == a8 ? void 0 : a8.getOptions().Dots;
13082          return (t3(e11) ? Object.assign(Object.assign({}, i8), e11) : i8)[n10];
13083        }
13084        function g2() {
13085          var t11, o11;
13086          if (!a8) return;
13087          d3 = m3("dynamicPadd"), u5 = 0, f3 = d3;
13088          const i10 = a8.getContainer(), g3 = a8.getPages().length;
13089          if (false === a8.getOptions().Dots || !i10 || g3 < m3("minCount") || g3 > m3("maxCount")) return void v3();
13090          r7 || (r7 = (null === (t11 = a8.getContainer()) || void 0 === t11 ? void 0 : t11.querySelector("." + s12)) || void 0), r7 || (r7 = document.createElement("div"), s3(r7, s12), null === (o11 = a8.getViewport()) || void 0 === o11 || o11.insertAdjacentElement("afterend", r7));
13091          const p3 = c5, C = m3("dynamicFrom");
13092          c5 = !!(C && g3 >= C && g3 >= d3 + 4), p3 !== c5 && v3(), (function() {
13093            if (!a8 || !r7) return;
13094            const t12 = a8.getPages().length;
13095            if (t12 !== r7.childElementCount) {
13096              const e11 = [];
13097              for (let o12 = 0; o12 < t12; o12++) {
13098                const t13 = m3("dotTpl") || "%d", i11 = e2(a8.localize(t13, [["%d", o12 + 1]]).replace(/\%i/g, o12 + ""));
13099                i11 && e11.push(i11);
13100              }
13101              r7.replaceChildren(...e11);
13102            }
13103          })(), h4(), r7.classList.toggle("is-dynamic", c5), r7.style.display = "", s3(i10, l9);
13104        }
13105        function p2() {
13106          h4();
13107        }
13108        function h4() {
13109          if (!a8 || !r7 || !c5) return;
13110          const t11 = a8.getPageIndex(), n10 = a8.getPages().length;
13111          t11 < u5 && (u5 = t11, f3 = u5 + d3, f3 > n10 && (f3 = n10)), t11 > f3 && (f3 = t11, u5 = f3 - d3, u5 < 0 && (u5 = 0));
13112          const i10 = (n11) => n11 === t11 ? "active" : n11 >= u5 && n11 <= f3 ? "padd" : n11 === u5 - 1 || n11 === f3 + 1 ? "small" : n11 === u5 - 2 || n11 === f3 + 2 ? "micro" : "hidden", s13 = [...r7.childNodes];
13113          for (const t12 of s13) {
13114            const n11 = parseInt(t12.dataset.carouselGoTo || "0", 10);
13115            s4(t12, "active padd small micro hidden"), s3(t12, i10(n11));
13116          }
13117        }
13118        function v3() {
13119          r7 && (r7.replaceChildren(), r7.style.display = "none"), s4(null == a8 ? void 0 : a8.getContainer(), l9);
13120        }
13121        return { init: function(t11) {
13122          a8 = t11, a8.on("refresh", g2), a8.on("change", p2);
13123        }, destroy: function() {
13124          v3(), null == a8 || a8.off("refresh", g2), null == a8 || a8.off("change", p2), a8 = void 0;
13125        } };
13126      };
13127    }
13128  });
13129
13130  
vendor: 182 bytes, lines 13130-13136
13130// node_modules/@fancyapps/ui/dist/carousel/carousel.dots.css
13131  var init_carousel_dots2 = __esm({
13132    "node_modules/@fancyapps/ui/dist/carousel/carousel.dots.css"() {
13133    }
13134  });
13135
13136  
vendor: 3,812 bytes, lines 13136-13228
13136// node_modules/@fancyapps/ui/dist/carousel/carousel.autoscroll.js
13137  var e10, t9, o10;
13138  var init_carousel_autoscroll = __esm({
13139    "node_modules/@fancyapps/ui/dist/carousel/carousel.autoscroll.js"() {
13140      init_isPlainObject();
13141      e10 = { autoStart: true, speed: 3 };
13142      t9 = 1 / 60 * 1e3 * 1;
13143      o10 = () => {
13144        let o11, i10, l10 = null, u5 = false, s13 = false, r7 = false, a8 = false;
13145        function c5() {
13146          const t11 = null == o11 ? void 0 : o11.getOptions().Autoscroll;
13147          return t3(t11) ? Object.assign(Object.assign({}, e10), t11) : e10;
13148        }
13149        function d3() {
13150          l10 || (i10 = performance.now(), l10 = requestAnimationFrame(g2));
13151        }
13152        function v3() {
13153          l10 && (cancelAnimationFrame(l10), l10 = null);
13154        }
13155        function f3() {
13156          var n10;
13157          if (o11 && o11.isInfinite()) {
13158            if (!u5) {
13159              u5 = true;
13160              const e11 = null == o11 ? void 0 : o11.getContainer();
13161              null === (n10 = null == o11 ? void 0 : o11.getTween()) || void 0 === n10 || n10.on("start", O2), e11 && matchMedia("(hover: hover)").matches && (e11.addEventListener("mouseenter", p2, false), e11.addEventListener("mouseleave", h4, false)), o11.emit("autoscroll:start");
13162            }
13163            d3();
13164          }
13165        }
13166        function m3() {
13167          var n10;
13168          if (v3(), u5) {
13169            u5 = false, r7 = false, null === (n10 = null == o11 ? void 0 : o11.getTween()) || void 0 === n10 || n10.off("start", O2);
13170            const e11 = null == o11 ? void 0 : o11.getContainer();
13171            null == e11 || e11.addEventListener("mouseenter", p2, false), null == e11 || e11.addEventListener("mouseleave", h4, false), null == o11 || o11.emit("autoscroll:end");
13172          }
13173        }
13174        function g2(n10) {
13175          if (o11 && u5 && !r7 && i10) {
13176            if (!o11.isInTransition()) {
13177              let e11 = n10 - i10;
13178              e11 > t9 && (e11 = t9);
13179              const l11 = 1 / 60 * e11, u6 = c5().speed, r8 = c5().speedOnHover;
13180              let a9 = l11 * (s13 && void 0 !== r8 ? r8 : u6);
13181              const d4 = o11.getPosition() + a9;
13182              o11.setPosition(d4);
13183            }
13184            l10 = null, d3();
13185          }
13186        }
13187        function p2() {
13188          var n10;
13189          s13 = true;
13190          0 === c5().speedOnHover && (a8 = true, null === (n10 = null == o11 ? void 0 : o11.getTween()) || void 0 === n10 || n10.pause(), v3());
13191        }
13192        function h4() {
13193          s13 = false, a8 = false, u5 && !r7 && d3();
13194        }
13195        function E3() {
13196          o11 && false !== o11.getOptions().Autoscroll && c5().autoStart && f3();
13197        }
13198        function O2() {
13199          v3();
13200        }
13201        function b3() {
13202          !u5 || r7 || a8 || d3();
13203        }
13204        function w3() {
13205          var n10;
13206          u5 && (document.hidden ? (null === (n10 = null == o11 ? void 0 : o11.getTween()) || void 0 === n10 || n10.pause(), v3()) : r7 || a8 || d3());
13207        }
13208        return { init: function(n10) {
13209          o11 = n10, o11.on("ready", E3), o11.on("settle", b3), document.addEventListener("visibilitychange", w3);
13210        }, destroy: function() {
13211          a8 = false, m3(), o11 && (o11.off("ready", E3), o11.off("settle", b3)), o11 = void 0, document.removeEventListener("visibilitychange", w3);
13212        }, isEnabled: () => u5, pause: function() {
13213          var n10;
13214          r7 || (r7 = true, null === (n10 = null == o11 ? void 0 : o11.getTween()) || void 0 === n10 || n10.pause(), v3());
13215        }, resume: function() {
13216          r7 = false, u5 && !a8 && d3();
13217        }, start: function() {
13218          f3();
13219        }, stop: function() {
13220          m3();
13221        }, toggle() {
13222          u5 ? m3() : f3();
13223        } };
13224      };
13225    }
13226  });
13227
13228  
vendor: 188 bytes, lines 13228-13234
13228// node_modules/@fancyapps/ui/dist/carousel/carousel.arrows.css
13229  var init_carousel_arrows2 = __esm({
13230    "node_modules/@fancyapps/ui/dist/carousel/carousel.arrows.css"() {
13231    }
13232  });
13233
13234  
vendor: 188 bytes, lines 13234-13240
13234// node_modules/@fancyapps/ui/dist/carousel/carousel.thumbs.css
13235  var init_carousel_thumbs2 = __esm({
13236    "node_modules/@fancyapps/ui/dist/carousel/carousel.thumbs.css"() {
13237    }
13238  });
13239
13240  
13240// js/fancybox.js
13241  var fancybox_exports = {};
13242  var import_jquery_min;
13243  var init_fancybox3 = __esm({
13244    "js/fancybox.js"() {
13245      import_jquery_min = __toESM(require_jquery_min());
13246      init_dist();
13247      init_fancybox2();
13248      init_carousel();
13249      init_carousel2();
13250      init_carousel_autoplay();
13251      init_carousel_autoplay2();
13252      init_carousel_dots();
13253      init_carousel_dots2();
13254      init_carousel_autoscroll();
13255      init_carousel_arrows();
13256      init_carousel_arrows2();
13257      init_carousel_thumbs();
13258      init_carousel_thumbs2();
13259      (0, import_jquery_min.default)(document).ready(function() {
13260        if (typeof N !== "undefined") {
13261          N.bind("[data-fancybox]", {
13262            Carousel: {
13263              infinite: true
13264            },
13265            Slideshow: {
13266              playOnStart: true,
13267              timeout: 3e3
13268            },
13269            Toolbar: {
13270              display: {
13271                left: [],
13272                middle: [],
13273                right: ["slideshow", "close"]
13274              }
13275            },
13276            Images: {
13277              zoom: false
13278            }
13279          });
13280        }
13281        N.bind("[data-fancybox]", {
13282          Carousel: {
13283            infinite: true
13284          },
13285          Slideshow: {
13286            playOnStart: true,
13287            timeout: 3e3
13288          },
13289          Toolbar: {
13290            display: {
13291              left: [],
13292              middle: [],
13293              right: ["slideshow", "close"]
13294            }
13295          },
13296          Images: {
13297            zoom: false
13298          }
13299        });
13300        (0, import_jquery_min.default)(".f-carousel").each(function(e11) {
13301          var container = (0, import_jquery_min.default)(this)[0];
13302          var options = {
13303            style: {
13304              "--f-progressbar-color": "#111",
13305              "--f-progressbar-height": "2px"
13306            },
13307            Autoscroll: {
13308              speed: 3,
13309              speedOnHover: 1
13310            },
13311            Autoplay: {
13312              showProgressbar: false
13313            },
13314            infinite: true,
13315            autoStart: true
13316          };
13317          const pluginMap = {
13318            Autoplay: o6,
13319            Dots: a7,
13320            Autoscroll: o10
13321          };
13322          let dataExtras = (0, import_jquery_min.default)(this).attr("data-extras") || "";
13323          dataExtras = dataExtras.replace(/[{}]/g, "").split(",").map((s13) => s13.trim());
13324          const extras = {};
13325          dataExtras.forEach((pluginName) => {
13326            if (pluginMap[pluginName]) {
13327              extras[pluginName] = pluginMap[pluginName];
13328            }
13329          });
13330          var carousel = E2(container, options, extras).init();
13331        });
13332        (0, import_jquery_min.default)(".f-logoCarousel").each(function(e11) {
13333          var container = (0, import_jquery_min.default)(this)[0];
13334          let dataTransition = (0, import_jquery_min.default)(this).attr("data-transition") || "";
13335          let dataInfinite = (0, import_jquery_min.default)(this).data("infinite") !== void 0 ? (0, import_jquery_min.default)(this).data("infinite") : false;
13336          let dataCenter = (0, import_jquery_min.default)(this).data("center") !== void 0 ? (0, import_jquery_min.default)(this).data("center") : true;
13337          var options = {
13338            transition: dataTransition,
13339            infinite: dataInfinite,
13340            center: dataCenter,
13341            style: {
13342              "--f-arrow-pos": "-20px"
13343            },
13344            Thumbs: {
13345              type: "classic"
13346            },
13347            Autoplay: {
13348              timeout: 3500,
13349              showProgressbar: false
13350            }
13351          };
13352          const pluginMap = {
13353            Autoplay: o6,
13354            Arrows: l3,
13355            Dots: a7,
13356            Autoscroll: o10,
13357            Thumbs: c3
13358          };
13359          let dataExtras = (0, import_jquery_min.default)(this).attr("data-extras") || "";
13360          dataExtras = dataExtras.replace(/[{}]/g, "").split(",").map((s13) => s13.trim());
13361          const extras = {};
13362          dataExtras.forEach((pluginName) => {
13363            if (pluginMap[pluginName]) {
13364              extras[pluginName] = pluginMap[pluginName];
13365            }
13366          });
13367          var carousel = E2(container, options, extras).init();
13368        });
13369        (0, import_jquery_min.default)(".f-slideshow").each(function(e11) {
13370          var container = (0, import_jquery_min.default)(this)[0];
13371          let dataTransition = (0, import_jquery_min.default)(this).attr("data-transition") || "";
13372          let dataInfinite = (0, import_jquery_min.default)(this).data("infinite") !== void 0 ? (0, import_jquery_min.default)(this).data("infinite") : false;
13373          var options = {
13374            transition: dataTransition,
13375            infinite: dataInfinite,
13376            style: {
13377              "--f-arrow-pos": "-20px"
13378            },
13379            Thumbs: {
13380              type: "classic"
13381            },
13382            Autoplay: {
13383              timeout: 3500,
13384              showProgressbar: false
13385            }
13386          };
13387          const pluginMap = {
13388            Autoplay: o6,
13389            Arrows: l3,
13390            Dots: a7,
13391            Autoscroll: o10,
13392            Thumbs: c3
13393          };
13394          let dataExtras = (0, import_jquery_min.default)(this).attr("data-extras") || "";
13395          dataExtras = dataExtras.replace(/[{}]/g, "").split(",").map((s13) => s13.trim());
13396          const extras = {};
13397          dataExtras.forEach((pluginName) => {
13398            if (pluginMap[pluginName]) {
13399              extras[pluginName] = pluginMap[pluginName];
13400            }
13401          });
13402          var carousel = E2(container, options, extras).init();
13403        });
13404        (0, import_jquery_min.default)(".f-logo").each(function(e11) {
13405          var container = (0, import_jquery_min.default)(this)[0];
13406          var options = {
13407            Autoscroll: {
13408              slidesPerPage: 1,
13409              speed: 3,
13410              speedOnHover: 1
13411            }
13412          };
13413          var carousel = E2(container, options, { Autoscroll: o10 }).init();
13414        });
13415        (0, import_jquery_min.default)(".f-gallery").each(function(e11) {
13416          var container = (0, import_jquery_min.default)(this)[0];
13417          var options = {
13418            Thumbs: {
13419              type: "classic"
13420            }
13421          };
13422          var carousel = E2(container, options, { Thumbs: c3 }).init();
13423        });
13424        (0, import_jquery_min.default)(".f-testimonials").each(function(e11) {
13425          var container = (0, import_jquery_min.default)(this)[0];
13426          var options = {
13427            infinite: true,
13428            autoStart: true
13429          };
13430          var carousel = E2(container, options).init();
13431        });
13432      });
13433    }
13434  });
13435
13436  
vendor: 8,316 bytes, lines 13436-13529
13436// node_modules/countup.js/dist/countUp.min.js
13437  var t10, i9;
13438  var init_countUp_min = __esm({
13439    "node_modules/countup.js/dist/countUp.min.js"() {
13440      t10 = function() {
13441        return t10 = Object.assign || function(t11) {
13442          for (var i10, n10 = 1, s13 = arguments.length; n10 < s13; n10++) for (var a8 in i10 = arguments[n10]) Object.prototype.hasOwnProperty.call(i10, a8) && (t11[a8] = i10[a8]);
13443          return t11;
13444        }, t10.apply(this, arguments);
13445      };
13446      i9 = (function() {
13447        function i10(i11, n10, s13) {
13448          var a8 = this;
13449          this.endVal = n10, this.options = s13, this.version = "2.9.0", this.defaults = { startVal: 0, decimalPlaces: 0, duration: 2, useEasing: true, useGrouping: true, useIndianSeparators: false, smartEasingThreshold: 999, smartEasingAmount: 333, separator: ",", decimal: ".", prefix: "", suffix: "", enableScrollSpy: false, scrollSpyDelay: 200, scrollSpyOnce: false }, this.finalEndVal = null, this.useEasing = true, this.countDown = false, this.error = "", this.startVal = 0, this.paused = true, this.once = false, this.count = function(t11) {
13450            a8.startTime || (a8.startTime = t11);
13451            var i12 = t11 - a8.startTime;
13452            a8.remaining = a8.duration - i12, a8.useEasing ? a8.countDown ? a8.frameVal = a8.startVal - a8.easingFn(i12, 0, a8.startVal - a8.endVal, a8.duration) : a8.frameVal = a8.easingFn(i12, a8.startVal, a8.endVal - a8.startVal, a8.duration) : a8.frameVal = a8.startVal + (a8.endVal - a8.startVal) * (i12 / a8.duration);
13453            var n11 = a8.countDown ? a8.frameVal < a8.endVal : a8.frameVal > a8.endVal;
13454            a8.frameVal = n11 ? a8.endVal : a8.frameVal, a8.frameVal = Number(a8.frameVal.toFixed(a8.options.decimalPlaces)), a8.printValue(a8.frameVal), i12 < a8.duration ? a8.rAF = requestAnimationFrame(a8.count) : null !== a8.finalEndVal ? a8.update(a8.finalEndVal) : a8.options.onCompleteCallback && a8.options.onCompleteCallback();
13455          }, this.formatNumber = function(t11) {
13456            var i12, n11, s14, e11, o11 = t11 < 0 ? "-" : "";
13457            i12 = Math.abs(t11).toFixed(a8.options.decimalPlaces);
13458            var r7 = (i12 += "").split(".");
13459            if (n11 = r7[0], s14 = r7.length > 1 ? a8.options.decimal + r7[1] : "", a8.options.useGrouping) {
13460              e11 = "";
13461              for (var l10 = 3, h4 = 0, u5 = 0, p2 = n11.length; u5 < p2; ++u5) a8.options.useIndianSeparators && 4 === u5 && (l10 = 2, h4 = 1), 0 !== u5 && h4 % l10 == 0 && (e11 = a8.options.separator + e11), h4++, e11 = n11[p2 - u5 - 1] + e11;
13462              n11 = e11;
13463            }
13464            return a8.options.numerals && a8.options.numerals.length && (n11 = n11.replace(/[0-9]/g, (function(t12) {
13465              return a8.options.numerals[+t12];
13466            })), s14 = s14.replace(/[0-9]/g, (function(t12) {
13467              return a8.options.numerals[+t12];
13468            }))), o11 + a8.options.prefix + n11 + s14 + a8.options.suffix;
13469          }, this.easeOutExpo = function(t11, i12, n11, s14) {
13470            return n11 * (1 - Math.pow(2, -10 * t11 / s14)) * 1024 / 1023 + i12;
13471          }, this.options = t10(t10({}, this.defaults), s13), this.formattingFn = this.options.formattingFn ? this.options.formattingFn : this.formatNumber, this.easingFn = this.options.easingFn ? this.options.easingFn : this.easeOutExpo, this.el = "string" == typeof i11 ? document.getElementById(i11) : i11, n10 = null == n10 ? this.parse(this.el.innerHTML) : n10, this.startVal = this.validateValue(this.options.startVal), this.frameVal = this.startVal, this.endVal = this.validateValue(n10), this.options.decimalPlaces = Math.max(this.options.decimalPlaces), this.resetDuration(), this.options.separator = String(this.options.separator), this.useEasing = this.options.useEasing, "" === this.options.separator && (this.options.useGrouping = false), this.el ? this.printValue(this.startVal) : this.error = "[CountUp] target is null or undefined", "undefined" != typeof window && this.options.enableScrollSpy && (this.error ? console.error(this.error, i11) : (window.onScrollFns = window.onScrollFns || [], window.onScrollFns.push((function() {
13472            return a8.handleScroll(a8);
13473          })), window.onscroll = function() {
13474            window.onScrollFns.forEach((function(t11) {
13475              return t11();
13476            }));
13477          }, this.handleScroll(this)));
13478        }
13479        return i10.prototype.handleScroll = function(t11) {
13480          if (t11 && window && !t11.once) {
13481            var i11 = window.innerHeight + window.scrollY, n10 = t11.el.getBoundingClientRect(), s13 = n10.top + window.pageYOffset, a8 = n10.top + n10.height + window.pageYOffset;
13482            a8 < i11 && a8 > window.scrollY && t11.paused ? (t11.paused = false, setTimeout((function() {
13483              return t11.start();
13484            }), t11.options.scrollSpyDelay), t11.options.scrollSpyOnce && (t11.once = true)) : (window.scrollY > a8 || s13 > i11) && !t11.paused && t11.reset();
13485          }
13486        }, i10.prototype.determineDirectionAndSmartEasing = function() {
13487          var t11 = this.finalEndVal ? this.finalEndVal : this.endVal;
13488          this.countDown = this.startVal > t11;
13489          var i11 = t11 - this.startVal;
13490          if (Math.abs(i11) > this.options.smartEasingThreshold && this.options.useEasing) {
13491            this.finalEndVal = t11;
13492            var n10 = this.countDown ? 1 : -1;
13493            this.endVal = t11 + n10 * this.options.smartEasingAmount, this.duration = this.duration / 2;
13494          } else this.endVal = t11, this.finalEndVal = null;
13495          null !== this.finalEndVal ? this.useEasing = false : this.useEasing = this.options.useEasing;
13496        }, i10.prototype.start = function(t11) {
13497          this.error || (this.options.onStartCallback && this.options.onStartCallback(), t11 && (this.options.onCompleteCallback = t11), this.duration > 0 ? (this.determineDirectionAndSmartEasing(), this.paused = false, this.rAF = requestAnimationFrame(this.count)) : this.printValue(this.endVal));
13498        }, i10.prototype.pauseResume = function() {
13499          this.paused ? (this.startTime = null, this.duration = this.remaining, this.startVal = this.frameVal, this.determineDirectionAndSmartEasing(), this.rAF = requestAnimationFrame(this.count)) : cancelAnimationFrame(this.rAF), this.paused = !this.paused;
13500        }, i10.prototype.reset = function() {
13501          cancelAnimationFrame(this.rAF), this.paused = true, this.resetDuration(), this.startVal = this.validateValue(this.options.startVal), this.frameVal = this.startVal, this.printValue(this.startVal);
13502        }, i10.prototype.update = function(t11) {
13503          cancelAnimationFrame(this.rAF), this.startTime = null, this.endVal = this.validateValue(t11), this.endVal !== this.frameVal && (this.startVal = this.frameVal, null == this.finalEndVal && this.resetDuration(), this.finalEndVal = null, this.determineDirectionAndSmartEasing(), this.rAF = requestAnimationFrame(this.count));
13504        }, i10.prototype.printValue = function(t11) {
13505          var i11;
13506          if (this.el) {
13507            var n10 = this.formattingFn(t11);
13508            if (null === (i11 = this.options.plugin) || void 0 === i11 ? void 0 : i11.render) this.options.plugin.render(this.el, n10);
13509            else if ("INPUT" === this.el.tagName) this.el.value = n10;
13510            else "text" === this.el.tagName || "tspan" === this.el.tagName ? this.el.textContent = n10 : this.el.innerHTML = n10;
13511          }
13512        }, i10.prototype.ensureNumber = function(t11) {
13513          return "number" == typeof t11 && !isNaN(t11);
13514        }, i10.prototype.validateValue = function(t11) {
13515          var i11 = Number(t11);
13516          return this.ensureNumber(i11) ? i11 : (this.error = "[CountUp] invalid start or end value: ".concat(t11), null);
13517        }, i10.prototype.resetDuration = function() {
13518          this.startTime = null, this.duration = 1e3 * Number(this.options.duration), this.remaining = this.duration;
13519        }, i10.prototype.parse = function(t11) {
13520          var i11 = function(t12) {
13521            return t12.replace(/([.,'  ])/g, "\\$1");
13522          }, n10 = i11(this.options.separator), s13 = i11(this.options.decimal), a8 = t11.replace(new RegExp(n10, "g"), "").replace(new RegExp(s13, "g"), ".");
13523          return parseFloat(a8);
13524        }, i10;
13525      })();
13526    }
13527  });
13528
13529  
13529// js/countup.js
13530  var countup_exports = {};
13531  var init_countup = __esm({
13532    "js/countup.js"() {
13533      init_countUp_min();
13534      window.onload = function() {
13535        var countUp2 = new i9("countUp", 2e3);
13536        countUp2.start();
13537      };
13538      {
13539      }
13540    }
13541  });
13542
13543  
vendor: 23,297 bytes, lines 13543-13900
13543// node_modules/aos/dist/aos.js
13544  var require_aos = __commonJS({
13545    "node_modules/aos/dist/aos.js"(exports, module) {
13546      !(function(e11, t11) {
13547        "object" == typeof exports && "object" == typeof module ? module.exports = t11() : "function" == typeof define && define.amd ? define([], t11) : "object" == typeof exports ? exports.AOS = t11() : e11.AOS = t11();
13548      })(exports, function() {
13549        return (function(e11) {
13550          function t11(o11) {
13551            if (n10[o11]) return n10[o11].exports;
13552            var i10 = n10[o11] = { exports: {}, id: o11, loaded: false };
13553            return e11[o11].call(i10.exports, i10, i10.exports, t11), i10.loaded = true, i10.exports;
13554          }
13555          var n10 = {};
13556          return t11.m = e11, t11.c = n10, t11.p = "dist/", t11(0);
13557        })([function(e11, t11, n10) {
13558          "use strict";
13559          function o11(e12) {
13560            return e12 && e12.__esModule ? e12 : { default: e12 };
13561          }
13562          var i10 = Object.assign || function(e12) {
13563            for (var t12 = 1; t12 < arguments.length; t12++) {
13564              var n11 = arguments[t12];
13565              for (var o12 in n11) Object.prototype.hasOwnProperty.call(n11, o12) && (e12[o12] = n11[o12]);
13566            }
13567            return e12;
13568          }, r7 = n10(1), a8 = (o11(r7), n10(6)), u5 = o11(a8), c5 = n10(7), s13 = o11(c5), f3 = n10(8), d3 = o11(f3), l10 = n10(9), p2 = o11(l10), m3 = n10(10), b3 = o11(m3), v3 = n10(11), y3 = o11(v3), g2 = n10(14), h4 = o11(g2), w3 = [], k3 = false, x2 = { offset: 120, delay: 0, easing: "ease", duration: 400, disable: false, once: false, startEvent: "DOMContentLoaded", throttleDelay: 99, debounceDelay: 50, disableMutationObserver: false }, j2 = function() {
13569            var e12 = arguments.length > 0 && void 0 !== arguments[0] && arguments[0];
13570            if (e12 && (k3 = true), k3) return w3 = (0, y3.default)(w3, x2), (0, b3.default)(w3, x2.once), w3;
13571          }, O2 = function() {
13572            w3 = (0, h4.default)(), j2();
13573          }, M3 = function() {
13574            w3.forEach(function(e12, t12) {
13575              e12.node.removeAttribute("data-aos"), e12.node.removeAttribute("data-aos-easing"), e12.node.removeAttribute("data-aos-duration"), e12.node.removeAttribute("data-aos-delay");
13576            });
13577          }, S = function(e12) {
13578            return e12 === true || "mobile" === e12 && p2.default.mobile() || "phone" === e12 && p2.default.phone() || "tablet" === e12 && p2.default.tablet() || "function" == typeof e12 && e12() === true;
13579          }, _2 = function(e12) {
13580            x2 = i10(x2, e12), w3 = (0, h4.default)();
13581            var t12 = document.all && !window.atob;
13582            return S(x2.disable) || t12 ? M3() : (x2.disableMutationObserver || d3.default.isSupported() || (console.info('\n      aos: MutationObserver is not supported on this browser,\n      code mutations observing has been disabled.\n      You may have to call "refreshHard()" by yourself.\n    '), x2.disableMutationObserver = true), document.querySelector("body").setAttribute("data-aos-easing", x2.easing), document.querySelector("body").setAttribute("data-aos-duration", x2.duration), document.querySelector("body").setAttribute("data-aos-delay", x2.delay), "DOMContentLoaded" === x2.startEvent && ["complete", "interactive"].indexOf(document.readyState) > -1 ? j2(true) : "load" === x2.startEvent ? window.addEventListener(x2.startEvent, function() {
13583              j2(true);
13584            }) : document.addEventListener(x2.startEvent, function() {
13585              j2(true);
13586            }), window.addEventListener("resize", (0, s13.default)(j2, x2.debounceDelay, true)), window.addEventListener("orientationchange", (0, s13.default)(j2, x2.debounceDelay, true)), window.addEventListener("scroll", (0, u5.default)(function() {
13587              (0, b3.default)(w3, x2.once);
13588            }, x2.throttleDelay)), x2.disableMutationObserver || d3.default.ready("[data-aos]", O2), w3);
13589          };
13590          e11.exports = { init: _2, refresh: j2, refreshHard: O2 };
13591        }, function(e11, t11) {
13592        }, , , , , function(e11, t11) {
13593          (function(t12) {
13594            "use strict";
13595            function n10(e12, t13, n11) {
13596              function o12(t14) {
13597                var n12 = b4, o13 = v4;
13598                return b4 = v4 = void 0, k4 = t14, g3 = e12.apply(o13, n12);
13599              }
13600              function r8(e13) {
13601                return k4 = e13, h5 = setTimeout(f4, t13), M3 ? o12(e13) : g3;
13602              }
13603              function a9(e13) {
13604                var n12 = e13 - w4, o13 = e13 - k4, i11 = t13 - n12;
13605                return S ? j2(i11, y4 - o13) : i11;
13606              }
13607              function c6(e13) {
13608                var n12 = e13 - w4, o13 = e13 - k4;
13609                return void 0 === w4 || n12 >= t13 || n12 < 0 || S && o13 >= y4;
13610              }
13611              function f4() {
13612                var e13 = O2();
13613                return c6(e13) ? d4(e13) : void (h5 = setTimeout(f4, a9(e13)));
13614              }
13615              function d4(e13) {
13616                return h5 = void 0, _2 && b4 ? o12(e13) : (b4 = v4 = void 0, g3);
13617              }
13618              function l11() {
13619                void 0 !== h5 && clearTimeout(h5), k4 = 0, b4 = w4 = v4 = h5 = void 0;
13620              }
13621              function p3() {
13622                return void 0 === h5 ? g3 : d4(O2());
13623              }
13624              function m4() {
13625                var e13 = O2(), n12 = c6(e13);
13626                if (b4 = arguments, v4 = this, w4 = e13, n12) {
13627                  if (void 0 === h5) return r8(w4);
13628                  if (S) return h5 = setTimeout(f4, t13), o12(w4);
13629                }
13630                return void 0 === h5 && (h5 = setTimeout(f4, t13)), g3;
13631              }
13632              var b4, v4, y4, g3, h5, w4, k4 = 0, M3 = false, S = false, _2 = true;
13633              if ("function" != typeof e12) throw new TypeError(s13);
13634              return t13 = u5(t13) || 0, i10(n11) && (M3 = !!n11.leading, S = "maxWait" in n11, y4 = S ? x2(u5(n11.maxWait) || 0, t13) : y4, _2 = "trailing" in n11 ? !!n11.trailing : _2), m4.cancel = l11, m4.flush = p3, m4;
13635            }
13636            function o11(e12, t13, o12) {
13637              var r8 = true, a9 = true;
13638              if ("function" != typeof e12) throw new TypeError(s13);
13639              return i10(o12) && (r8 = "leading" in o12 ? !!o12.leading : r8, a9 = "trailing" in o12 ? !!o12.trailing : a9), n10(e12, t13, { leading: r8, maxWait: t13, trailing: a9 });
13640            }
13641            function i10(e12) {
13642              var t13 = "undefined" == typeof e12 ? "undefined" : c5(e12);
13643              return !!e12 && ("object" == t13 || "function" == t13);
13644            }
13645            function r7(e12) {
13646              return !!e12 && "object" == ("undefined" == typeof e12 ? "undefined" : c5(e12));
13647            }
13648            function a8(e12) {
13649              return "symbol" == ("undefined" == typeof e12 ? "undefined" : c5(e12)) || r7(e12) && k3.call(e12) == d3;
13650            }
13651            function u5(e12) {
13652              if ("number" == typeof e12) return e12;
13653              if (a8(e12)) return f3;
13654              if (i10(e12)) {
13655                var t13 = "function" == typeof e12.valueOf ? e12.valueOf() : e12;
13656                e12 = i10(t13) ? t13 + "" : t13;
13657              }
13658              if ("string" != typeof e12) return 0 === e12 ? e12 : +e12;
13659              e12 = e12.replace(l10, "");
13660              var n11 = m3.test(e12);
13661              return n11 || b3.test(e12) ? v3(e12.slice(2), n11 ? 2 : 8) : p2.test(e12) ? f3 : +e12;
13662            }
13663            var c5 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e12) {
13664              return typeof e12;
13665            } : function(e12) {
13666              return e12 && "function" == typeof Symbol && e12.constructor === Symbol && e12 !== Symbol.prototype ? "symbol" : typeof e12;
13667            }, s13 = "Expected a function", f3 = NaN, d3 = "[object Symbol]", l10 = /^\s+|\s+$/g, p2 = /^[-+]0x[0-9a-f]+$/i, m3 = /^0b[01]+$/i, b3 = /^0o[0-7]+$/i, v3 = parseInt, y3 = "object" == ("undefined" == typeof t12 ? "undefined" : c5(t12)) && t12 && t12.Object === Object && t12, g2 = "object" == ("undefined" == typeof self ? "undefined" : c5(self)) && self && self.Object === Object && self, h4 = y3 || g2 || Function("return this")(), w3 = Object.prototype, k3 = w3.toString, x2 = Math.max, j2 = Math.min, O2 = function() {
13668              return h4.Date.now();
13669            };
13670            e11.exports = o11;
13671          }).call(t11, /* @__PURE__ */ (function() {
13672            return this;
13673          })());
13674        }, function(e11, t11) {
13675          (function(t12) {
13676            "use strict";
13677            function n10(e12, t13, n11) {
13678              function i11(t14) {
13679                var n12 = b4, o12 = v4;
13680                return b4 = v4 = void 0, O2 = t14, g3 = e12.apply(o12, n12);
13681              }
13682              function r8(e13) {
13683                return O2 = e13, h5 = setTimeout(f4, t13), M3 ? i11(e13) : g3;
13684              }
13685              function u6(e13) {
13686                var n12 = e13 - w4, o12 = e13 - O2, i12 = t13 - n12;
13687                return S ? x2(i12, y4 - o12) : i12;
13688              }
13689              function s14(e13) {
13690                var n12 = e13 - w4, o12 = e13 - O2;
13691                return void 0 === w4 || n12 >= t13 || n12 < 0 || S && o12 >= y4;
13692              }
13693              function f4() {
13694                var e13 = j2();
13695                return s14(e13) ? d4(e13) : void (h5 = setTimeout(f4, u6(e13)));
13696              }
13697              function d4(e13) {
13698                return h5 = void 0, _2 && b4 ? i11(e13) : (b4 = v4 = void 0, g3);
13699              }
13700              function l11() {
13701                void 0 !== h5 && clearTimeout(h5), O2 = 0, b4 = w4 = v4 = h5 = void 0;
13702              }
13703              function p3() {
13704                return void 0 === h5 ? g3 : d4(j2());
13705              }
13706              function m4() {
13707                var e13 = j2(), n12 = s14(e13);
13708                if (b4 = arguments, v4 = this, w4 = e13, n12) {
13709                  if (void 0 === h5) return r8(w4);
13710                  if (S) return h5 = setTimeout(f4, t13), i11(w4);
13711                }
13712                return void 0 === h5 && (h5 = setTimeout(f4, t13)), g3;
13713              }
13714              var b4, v4, y4, g3, h5, w4, O2 = 0, M3 = false, S = false, _2 = true;
13715              if ("function" != typeof e12) throw new TypeError(c5);
13716              return t13 = a8(t13) || 0, o11(n11) && (M3 = !!n11.leading, S = "maxWait" in n11, y4 = S ? k3(a8(n11.maxWait) || 0, t13) : y4, _2 = "trailing" in n11 ? !!n11.trailing : _2), m4.cancel = l11, m4.flush = p3, m4;
13717            }
13718            function o11(e12) {
13719              var t13 = "undefined" == typeof e12 ? "undefined" : u5(e12);
13720              return !!e12 && ("object" == t13 || "function" == t13);
13721            }
13722            function i10(e12) {
13723              return !!e12 && "object" == ("undefined" == typeof e12 ? "undefined" : u5(e12));
13724            }
13725            function r7(e12) {
13726              return "symbol" == ("undefined" == typeof e12 ? "undefined" : u5(e12)) || i10(e12) && w3.call(e12) == f3;
13727            }
13728            function a8(e12) {
13729              if ("number" == typeof e12) return e12;
13730              if (r7(e12)) return s13;
13731              if (o11(e12)) {
13732                var t13 = "function" == typeof e12.valueOf ? e12.valueOf() : e12;
13733                e12 = o11(t13) ? t13 + "" : t13;
13734              }
13735              if ("string" != typeof e12) return 0 === e12 ? e12 : +e12;
13736              e12 = e12.replace(d3, "");
13737              var n11 = p2.test(e12);
13738              return n11 || m3.test(e12) ? b3(e12.slice(2), n11 ? 2 : 8) : l10.test(e12) ? s13 : +e12;
13739            }
13740            var u5 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e12) {
13741              return typeof e12;
13742            } : function(e12) {
13743              return e12 && "function" == typeof Symbol && e12.constructor === Symbol && e12 !== Symbol.prototype ? "symbol" : typeof e12;
13744            }, c5 = "Expected a function", s13 = NaN, f3 = "[object Symbol]", d3 = /^\s+|\s+$/g, l10 = /^[-+]0x[0-9a-f]+$/i, p2 = /^0b[01]+$/i, m3 = /^0o[0-7]+$/i, b3 = parseInt, v3 = "object" == ("undefined" == typeof t12 ? "undefined" : u5(t12)) && t12 && t12.Object === Object && t12, y3 = "object" == ("undefined" == typeof self ? "undefined" : u5(self)) && self && self.Object === Object && self, g2 = v3 || y3 || Function("return this")(), h4 = Object.prototype, w3 = h4.toString, k3 = Math.max, x2 = Math.min, j2 = function() {
13745              return g2.Date.now();
13746            };
13747            e11.exports = n10;
13748          }).call(t11, /* @__PURE__ */ (function() {
13749            return this;
13750          })());
13751        }, function(e11, t11) {
13752          "use strict";
13753          function n10(e12) {
13754            var t12 = void 0, o12 = void 0, i11 = void 0;
13755            for (t12 = 0; t12 < e12.length; t12 += 1) {
13756              if (o12 = e12[t12], o12.dataset && o12.dataset.aos) return true;
13757              if (i11 = o12.children && n10(o12.children)) return true;
13758            }
13759            return false;
13760          }
13761          function o11() {
13762            return window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;
13763          }
13764          function i10() {
13765            return !!o11();
13766          }
13767          function r7(e12, t12) {
13768            var n11 = window.document, i11 = o11(), r8 = new i11(a8);
13769            u5 = t12, r8.observe(n11.documentElement, { childList: true, subtree: true, removedNodes: true });
13770          }
13771          function a8(e12) {
13772            e12 && e12.forEach(function(e13) {
13773              var t12 = Array.prototype.slice.call(e13.addedNodes), o12 = Array.prototype.slice.call(e13.removedNodes), i11 = t12.concat(o12);
13774              if (n10(i11)) return u5();
13775            });
13776          }
13777          Object.defineProperty(t11, "__esModule", { value: true });
13778          var u5 = function() {
13779          };
13780          t11.default = { isSupported: i10, ready: r7 };
13781        }, function(e11, t11) {
13782          "use strict";
13783          function n10(e12, t12) {
13784            if (!(e12 instanceof t12)) throw new TypeError("Cannot call a class as a function");
13785          }
13786          function o11() {
13787            return navigator.userAgent || navigator.vendor || window.opera || "";
13788          }
13789          Object.defineProperty(t11, "__esModule", { value: true });
13790          var i10 = /* @__PURE__ */ (function() {
13791            function e12(e13, t12) {
13792              for (var n11 = 0; n11 < t12.length; n11++) {
13793                var o12 = t12[n11];
13794                o12.enumerable = o12.enumerable || false, o12.configurable = true, "value" in o12 && (o12.writable = true), Object.defineProperty(e13, o12.key, o12);
13795              }
13796            }
13797            return function(t12, n11, o12) {
13798              return n11 && e12(t12.prototype, n11), o12 && e12(t12, o12), t12;
13799            };
13800          })(), r7 = /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i, a8 = /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i, u5 = /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i, c5 = /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i, s13 = (function() {
13801            function e12() {
13802              n10(this, e12);
13803            }
13804            return i10(e12, [{ key: "phone", value: function() {
13805              var e13 = o11();
13806              return !(!r7.test(e13) && !a8.test(e13.substr(0, 4)));
13807            } }, { key: "mobile", value: function() {
13808              var e13 = o11();
13809              return !(!u5.test(e13) && !c5.test(e13.substr(0, 4)));
13810            } }, { key: "tablet", value: function() {
13811              return this.mobile() && !this.phone();
13812            } }]), e12;
13813          })();
13814          t11.default = new s13();
13815        }, function(e11, t11) {
13816          "use strict";
13817          Object.defineProperty(t11, "__esModule", { value: true });
13818          var n10 = function(e12, t12, n11) {
13819            var o12 = e12.node.getAttribute("data-aos-once");
13820            t12 > e12.position ? e12.node.classList.add("aos-animate") : "undefined" != typeof o12 && ("false" === o12 || !n11 && "true" !== o12) && e12.node.classList.remove("aos-animate");
13821          }, o11 = function(e12, t12) {
13822            var o12 = window.pageYOffset, i10 = window.innerHeight;
13823            e12.forEach(function(e13, r7) {
13824              n10(e13, i10 + o12, t12);
13825            });
13826          };
13827          t11.default = o11;
13828        }, function(e11, t11, n10) {
13829          "use strict";
13830          function o11(e12) {
13831            return e12 && e12.__esModule ? e12 : { default: e12 };
13832          }
13833          Object.defineProperty(t11, "__esModule", { value: true });
13834          var i10 = n10(12), r7 = o11(i10), a8 = function(e12, t12) {
13835            return e12.forEach(function(e13, n11) {
13836              e13.node.classList.add("aos-init"), e13.position = (0, r7.default)(e13.node, t12.offset);
13837            }), e12;
13838          };
13839          t11.default = a8;
13840        }, function(e11, t11, n10) {
13841          "use strict";
13842          function o11(e12) {
13843            return e12 && e12.__esModule ? e12 : { default: e12 };
13844          }
13845          Object.defineProperty(t11, "__esModule", { value: true });
13846          var i10 = n10(13), r7 = o11(i10), a8 = function(e12, t12) {
13847            var n11 = 0, o12 = 0, i11 = window.innerHeight, a9 = { offset: e12.getAttribute("data-aos-offset"), anchor: e12.getAttribute("data-aos-anchor"), anchorPlacement: e12.getAttribute("data-aos-anchor-placement") };
13848            switch (a9.offset && !isNaN(a9.offset) && (o12 = parseInt(a9.offset)), a9.anchor && document.querySelectorAll(a9.anchor) && (e12 = document.querySelectorAll(a9.anchor)[0]), n11 = (0, r7.default)(e12).top, a9.anchorPlacement) {
13849              case "top-bottom":
13850                break;
13851              case "center-bottom":
13852                n11 += e12.offsetHeight / 2;
13853                break;
13854              case "bottom-bottom":
13855                n11 += e12.offsetHeight;
13856                break;
13857              case "top-center":
13858                n11 += i11 / 2;
13859                break;
13860              case "bottom-center":
13861                n11 += i11 / 2 + e12.offsetHeight;
13862                break;
13863              case "center-center":
13864                n11 += i11 / 2 + e12.offsetHeight / 2;
13865                break;
13866              case "top-top":
13867                n11 += i11;
13868                break;
13869              case "bottom-top":
13870                n11 += e12.offsetHeight + i11;
13871                break;
13872              case "center-top":
13873                n11 += e12.offsetHeight / 2 + i11;
13874            }
13875            return a9.anchorPlacement || a9.offset || isNaN(t12) || (o12 = t12), n11 + o12;
13876          };
13877          t11.default = a8;
13878        }, function(e11, t11) {
13879          "use strict";
13880          Object.defineProperty(t11, "__esModule", { value: true });
13881          var n10 = function(e12) {
13882            for (var t12 = 0, n11 = 0; e12 && !isNaN(e12.offsetLeft) && !isNaN(e12.offsetTop); ) t12 += e12.offsetLeft - ("BODY" != e12.tagName ? e12.scrollLeft : 0), n11 += e12.offsetTop - ("BODY" != e12.tagName ? e12.scrollTop : 0), e12 = e12.offsetParent;
13883            return { top: n11, left: t12 };
13884          };
13885          t11.default = n10;
13886        }, function(e11, t11) {
13887          "use strict";
13888          Object.defineProperty(t11, "__esModule", { value: true });
13889          var n10 = function(e12) {
13890            return e12 = e12 || document.querySelectorAll("[data-aos]"), Array.prototype.map.call(e12, function(e13) {
13891              return { node: e13 };
13892            });
13893          };
13894          t11.default = n10;
13895        }]);
13896      });
13897    }
13898  });
13899
13900  
vendor: 113 bytes, lines 13900-13906
13900// node_modules/aos/dist/aos.css
13901  var init_aos = __esm({
13902    "node_modules/aos/dist/aos.css"() {
13903    }
13904  });
13905
13906  
13906// js/aos.js
13907  var aos_exports = {};
13908  var import_aos;
13909  var init_aos2 = __esm({
13910    "js/aos.js"() {
13911      import_aos = __toESM(require_aos());
13912      init_aos();
13913      import_aos.default.init({
13914        startEvent: "load"
13915        // initializes AOS when the whole page (images/scripts) is ready
13916      });
13917      document.querySelectorAll('button[data-bs-toggle="tab"], a[data-bs-toggle="tab"]').forEach((tab) => {
13918        tab.addEventListener("shown.bs.tab", () => {
13919          import_aos.default.refresh();
13920        });
13921      });
13922    }
13923  });
13924
13925  
vendor: 142,103 bytes, lines 13925-17085
13925// node_modules/gsap/gsap-core.js
13926  function _assertThisInitialized(self2) {
13927    if (self2 === void 0) {
13928      throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
13929    }
13930    return self2;
13931  }
13932  function _inheritsLoose(subClass, superClass) {
13933    subClass.prototype = Object.create(superClass.prototype);
13934    subClass.prototype.constructor = subClass;
13935    subClass.__proto__ = superClass;
13936  }
13937  var _config, _defaults, _suppressOverwrites, _reverting, _context, _bigNum, _tinyNum, _2PI, _HALF_PI, _gsID, _sqrt, _cos, _sin, _isString, _isFunction, _isNumber, _isUndefined, _isObject, _isNotFalse, _windowExists, _isFuncOrString, _isTypedArray, _isArray, _randomExp, _commaDelimExp, _strictNumExp, _numExp, _numWithUnitExp, _complexStringNumExp, _relExp, _delimitedValueExp, _unitExp, _globalTimeline, _win, _coreInitted, _doc, _globals, _installScope, _coreReady, _install, _missingPlugin, _warn, _addGlobal, _emptyFunc, _startAtRevertConfig, _revertConfigNoKill, _revertConfig, _reservedProps, _lazyTweens, _lazyLookup, _lastRenderedFrame, _plugins, _effects, _nextGCFrame, _harnessPlugins, _callbackNames, _harness, _getCache, _getProperty, _forEachName, _round, _roundPrecise, _parseRelative, _arrayContainsAny, _lazyRender, _isRevertWorthy, _lazySafeRender, _numericIfPossible, _passThrough, _setDefaults, _setKeyframeDefaults, _merge, _mergeDeep, _copyExcluding, _inheritDefaults, _arraysMatch, _addLinkedListItem, _removeLinkedListItem, _removeFromParent, _uncache, _recacheAncestors, _rewindStartAt, _hasNoPausedAncestors, _elapsedCycleDuration, _animationCycle, _parentToChildTotalTime, _setEnd, _alignPlayhead, _postAddChecks, _addToTimeline, _scrollTrigger, _attemptInitTween, _parentPlayheadIsBeforeStart, _isFromOrFromStart, _renderZeroDurationTween, _findNextPauseTween, _setDuration, _onUpdateTotalDuration, _zeroPosition, _parsePosition, _createTweenType, _conditionalReturn, _clamp, getUnit, clamp, _slice, _isArrayLike, _flatten, toArray, selector, shuffle, distribute, _roundModifier, snap, random, pipe, unitize, normalize, _wrapArray, wrap, wrapYoyo, _replaceRandom, mapRange, interpolate, _getLabelInDirection, _callback, _interrupt, _quickTween, _registerPluginQueue, _createPlugin, _255, _colorLookup, _hue, splitColor, _colorOrderData, _formatColors, _colorExp, _hslExp, _colorStringFilter, _tickerActive, _ticker, _wake, _easeMap, _customEaseExp, _quotesExp, _parseObjectInString, _valueInParentheses, _configEaseFromString, _invertEase, _propagateYoyoEase, _parseEase, _insertEase, _easeInOutFromOut, _configElastic, _configBack, GSCache, Animation, Timeline, _addComplexStringPropTween, _addPropTween, _processVars, _checkPlugin, _overwritingTween, _forceAllPropTweens, _initTween, _updatePropTweens, _addAliasesToVars, _parseKeyframe, _parseFuncOrString, _staggerTweenProps, _staggerPropsToSkip, Tween, _setterPlain, _setterFunc, _setterFuncWithParam, _setterAttribute, _getSetter, _renderPlain, _renderBoolean, _renderComplexString, _renderPropTweens, _addPluginModifier, _killPropTweensOf, _setterWithModifier, _sortPropTweensByPriority, PropTween, _media, _listeners, _emptyArray, _lastMediaTime, _contextID, _dispatch, _onMediaChange, Context, MatchMedia, _gsap, _getPluginPropTween, _addModifiers, _buildModifierPlugin, gsap, Power0, Power1, Power2, Power3, Power4, Linear, Quad, Cubic, Quart, Quint, Strong, Elastic, Back, SteppedEase, Bounce, Sine, Expo, Circ;
13938  var init_gsap_core = __esm({
13939    "node_modules/gsap/gsap-core.js"() {
13940      _config = {
13941        autoSleep: 120,
13942        force3D: "auto",
13943        nullTargetWarn: 1,
13944        units: {
13945          lineHeight: ""
13946        }
13947      };
13948      _defaults = {
13949        duration: 0.5,
13950        overwrite: false,
13951        delay: 0
13952      };
13953      _bigNum = 1e8;
13954      _tinyNum = 1 / _bigNum;
13955      _2PI = Math.PI * 2;
13956      _HALF_PI = _2PI / 4;
13957      _gsID = 0;
13958      _sqrt = Math.sqrt;
13959      _cos = Math.cos;
13960      _sin = Math.sin;
13961      _isString = function _isString2(value) {
13962        return typeof value === "string";
13963      };
13964      _isFunction = function _isFunction2(value) {
13965        return typeof value === "function";
13966      };
13967      _isNumber = function _isNumber2(value) {
13968        return typeof value === "number";
13969      };
13970      _isUndefined = function _isUndefined2(value) {
13971        return typeof value === "undefined";
13972      };
13973      _isObject = function _isObject2(value) {
13974        return typeof value === "object";
13975      };
13976      _isNotFalse = function _isNotFalse2(value) {
13977        return value !== false;
13978      };
13979      _windowExists = function _windowExists2() {
13980        return typeof window !== "undefined";
13981      };
13982      _isFuncOrString = function _isFuncOrString2(value) {
13983        return _isFunction(value) || _isString(value);
13984      };
13985      _isTypedArray = typeof ArrayBuffer === "function" && ArrayBuffer.isView || function() {
13986      };
13987      _isArray = Array.isArray;
13988      _randomExp = /random\([^)]+\)/g;
13989      _commaDelimExp = /,\s*/g;
13990      _strictNumExp = /(?:-?\.?\d|\.)+/gi;
13991      _numExp = /[-+=.]*\d+[.e\-+]*\d*[e\-+]*\d*/g;
13992      _numWithUnitExp = /[-+=.]*\d+[.e-]*\d*[a-z%]*/g;
13993      _complexStringNumExp = /[-+=.]*\d+\.?\d*(?:e-|e\+)?\d*/gi;
13994      _relExp = /[+-]=-?[.\d]+/;
13995      _delimitedValueExp = /[^,'"\[\]\s]+/gi;
13996      _unitExp = /^[+\-=e\s\d]*\d+[.\d]*([a-z]*|%)\s*$/i;
13997      _globals = {};
13998      _installScope = {};
13999      _install = function _install2(scope) {
14000        return (_installScope = _merge(scope, _globals)) && gsap;
14001      };
14002      _missingPlugin = function _missingPlugin2(property, value) {
14003        return console.warn("Invalid property", property, "set to", value, "Missing plugin? gsap.registerPlugin()");
14004      };
14005      _warn = function _warn2(message, suppress) {
14006        return !suppress && console.warn(message);
14007      };
14008      _addGlobal = function _addGlobal2(name, obj) {
14009        return name && (_globals[name] = obj) && _installScope && (_installScope[name] = obj) || _globals;
14010      };
14011      _emptyFunc = function _emptyFunc2() {
14012        return 0;
14013      };
14014      _startAtRevertConfig = {
14015        suppressEvents: true,
14016        isStart: true,
14017        kill: false
14018      };
14019      _revertConfigNoKill = {
14020        suppressEvents: true,
14021        kill: false
14022      };
14023      _revertConfig = {
14024        suppressEvents: true
14025      };
14026      _reservedProps = {};
14027      _lazyTweens = [];
14028      _lazyLookup = {};
14029      _plugins = {};
14030      _effects = {};
14031      _nextGCFrame = 30;
14032      _harnessPlugins = [];
14033      _callbackNames = "";
14034      _harness = function _harness2(targets) {
14035        var target = targets[0], harnessPlugin, i10;
14036        _isObject(target) || _isFunction(target) || (targets = [targets]);
14037        if (!(harnessPlugin = (target._gsap || {}).harness)) {
14038          i10 = _harnessPlugins.length;
14039          while (i10-- && !_harnessPlugins[i10].targetTest(target)) {
14040          }
14041          harnessPlugin = _harnessPlugins[i10];
14042        }
14043        i10 = targets.length;
14044        while (i10--) {
14045          targets[i10] && (targets[i10]._gsap || (targets[i10]._gsap = new GSCache(targets[i10], harnessPlugin))) || targets.splice(i10, 1);
14046        }
14047        return targets;
14048      };
14049      _getCache = function _getCache2(target) {
14050        return target._gsap || _harness(toArray(target))[0]._gsap;
14051      };
14052      _getProperty = function _getProperty2(target, property, v3) {
14053        return (v3 = target[property]) && _isFunction(v3) ? target[property]() : _isUndefined(v3) && target.getAttribute && target.getAttribute(property) || v3;
14054      };
14055      _forEachName = function _forEachName2(names, func) {
14056        return (names = names.split(",")).forEach(func) || names;
14057      };
14058      _round = function _round2(value) {
14059        return Math.round(value * 1e5) / 1e5 || 0;
14060      };
14061      _roundPrecise = function _roundPrecise2(value) {
14062        return Math.round(value * 1e7) / 1e7 || 0;
14063      };
14064      _parseRelative = function _parseRelative2(start, value) {
14065        var operator = value.charAt(0), end = parseFloat(value.substr(2));
14066        start = parseFloat(start);
14067        return operator === "+" ? start + end : operator === "-" ? start - end : operator === "*" ? start * end : start / end;
14068      };
14069      _arrayContainsAny = function _arrayContainsAny2(toSearch, toFind) {
14070        var l10 = toFind.length, i10 = 0;
14071        for (; toSearch.indexOf(toFind[i10]) < 0 && ++i10 < l10; ) {
14072        }
14073        return i10 < l10;
14074      };
14075      _lazyRender = function _lazyRender2() {
14076        var l10 = _lazyTweens.length, a8 = _lazyTweens.slice(0), i10, tween;
14077        _lazyLookup = {};
14078        _lazyTweens.length = 0;
14079        for (i10 = 0; i10 < l10; i10++) {
14080          tween = a8[i10];
14081          tween && tween._lazy && (tween.render(tween._lazy[0], tween._lazy[1], true)._lazy = 0);
14082        }
14083      };
14084      _isRevertWorthy = function _isRevertWorthy2(animation) {
14085        return !!(animation._initted || animation._startAt || animation.add);
14086      };
14087      _lazySafeRender = function _lazySafeRender2(animation, time, suppressEvents, force) {
14088        _lazyTweens.length && !_reverting && _lazyRender();
14089        animation.render(time, suppressEvents, force || !!(_reverting && time < 0 && _isRevertWorthy(animation)));
14090        _lazyTweens.length && !_reverting && _lazyRender();
14091      };
14092      _numericIfPossible = function _numericIfPossible2(value) {
14093        var n10 = parseFloat(value);
14094        return (n10 || n10 === 0) && (value + "").match(_delimitedValueExp).length < 2 ? n10 : _isString(value) ? value.trim() : value;
14095      };
14096      _passThrough = function _passThrough2(p2) {
14097        return p2;
14098      };
14099      _setDefaults = function _setDefaults2(obj, defaults2) {
14100        for (var p2 in defaults2) {
14101          p2 in obj || (obj[p2] = defaults2[p2]);
14102        }
14103        return obj;
14104      };
14105      _setKeyframeDefaults = function _setKeyframeDefaults2(excludeDuration) {
14106        return function(obj, defaults2) {
14107          for (var p2 in defaults2) {
14108            p2 in obj || p2 === "duration" && excludeDuration || p2 === "ease" || (obj[p2] = defaults2[p2]);
14109          }
14110        };
14111      };
14112      _merge = function _merge2(base, toMerge) {
14113        for (var p2 in toMerge) {
14114          base[p2] = toMerge[p2];
14115        }
14116        return base;
14117      };
14118      _mergeDeep = function _mergeDeep2(base, toMerge) {
14119        for (var p2 in toMerge) {
14120          p2 !== "__proto__" && p2 !== "constructor" && p2 !== "prototype" && (base[p2] = _isObject(toMerge[p2]) ? _mergeDeep2(base[p2] || (base[p2] = {}), toMerge[p2]) : toMerge[p2]);
14121        }
14122        return base;
14123      };
14124      _copyExcluding = function _copyExcluding2(obj, excluding) {
14125        var copy = {}, p2;
14126        for (p2 in obj) {
14127          p2 in excluding || (copy[p2] = obj[p2]);
14128        }
14129        return copy;
14130      };
14131      _inheritDefaults = function _inheritDefaults2(vars) {
14132        var parent = vars.parent || _globalTimeline, func = vars.keyframes ? _setKeyframeDefaults(_isArray(vars.keyframes)) : _setDefaults;
14133        if (_isNotFalse(vars.inherit)) {
14134          while (parent) {
14135            func(vars, parent.vars.defaults);
14136            parent = parent.parent || parent._dp;
14137          }
14138        }
14139        return vars;
14140      };
14141      _arraysMatch = function _arraysMatch2(a1, a22) {
14142        var i10 = a1.length, match = i10 === a22.length;
14143        while (match && i10-- && a1[i10] === a22[i10]) {
14144        }
14145        return i10 < 0;
14146      };
14147      _addLinkedListItem = function _addLinkedListItem2(parent, child, firstProp, lastProp, sortBy) {
14148        if (firstProp === void 0) {
14149          firstProp = "_first";
14150        }
14151        if (lastProp === void 0) {
14152          lastProp = "_last";
14153        }
14154        var prev = parent[lastProp], t11;
14155        if (sortBy) {
14156          t11 = child[sortBy];
14157          while (prev && prev[sortBy] > t11) {
14158            prev = prev._prev;
14159          }
14160        }
14161        if (prev) {
14162          child._next = prev._next;
14163          prev._next = child;
14164        } else {
14165          child._next = parent[firstProp];
14166          parent[firstProp] = child;
14167        }
14168        if (child._next) {
14169          child._next._prev = child;
14170        } else {
14171          parent[lastProp] = child;
14172        }
14173        child._prev = prev;
14174        child.parent = child._dp = parent;
14175        return child;
14176      };
14177      _removeLinkedListItem = function _removeLinkedListItem2(parent, child, firstProp, lastProp) {
14178        if (firstProp === void 0) {
14179          firstProp = "_first";
14180        }
14181        if (lastProp === void 0) {
14182          lastProp = "_last";
14183        }
14184        var prev = child._prev, next = child._next;
14185        if (prev) {
14186          prev._next = next;
14187        } else if (parent[firstProp] === child) {
14188          parent[firstProp] = next;
14189        }
14190        if (next) {
14191          next._prev = prev;
14192        } else if (parent[lastProp] === child) {
14193          parent[lastProp] = prev;
14194        }
14195        child._next = child._prev = child.parent = null;
14196      };
14197      _removeFromParent = function _removeFromParent2(child, onlyIfParentHasAutoRemove) {
14198        child.parent && (!onlyIfParentHasAutoRemove || child.parent.autoRemoveChildren) && child.parent.remove && child.parent.remove(child);
14199        child._act = 0;
14200      };
14201      _uncache = function _uncache2(animation, child) {
14202        if (animation && (!child || child._end > animation._dur || child._start < 0)) {
14203          var a8 = animation;
14204          while (a8) {
14205            a8._dirty = 1;
14206            a8 = a8.parent;
14207          }
14208        }
14209        return animation;
14210      };
14211      _recacheAncestors = function _recacheAncestors2(animation) {
14212        var parent = animation.parent;
14213        while (parent && parent.parent) {
14214          parent._dirty = 1;
14215          parent.totalDuration();
14216          parent = parent.parent;
14217        }
14218        return animation;
14219      };
14220      _rewindStartAt = function _rewindStartAt2(tween, totalTime, suppressEvents, force) {
14221        return tween._startAt && (_reverting ? tween._startAt.revert(_revertConfigNoKill) : tween.vars.immediateRender && !tween.vars.autoRevert || tween._startAt.render(totalTime, true, force));
14222      };
14223      _hasNoPausedAncestors = function _hasNoPausedAncestors2(animation) {
14224        return !animation || animation._ts && _hasNoPausedAncestors2(animation.parent);
14225      };
14226      _elapsedCycleDuration = function _elapsedCycleDuration2(animation) {
14227        return animation._repeat ? _animationCycle(animation._tTime, animation = animation.duration() + animation._rDelay) * animation : 0;
14228      };
14229      _animationCycle = function _animationCycle2(tTime, cycleDuration) {
14230        var whole = Math.floor(tTime = _roundPrecise(tTime / cycleDuration));
14231        return tTime && whole === tTime ? whole - 1 : whole;
14232      };
14233      _parentToChildTotalTime = function _parentToChildTotalTime2(parentTime, child) {
14234        return (parentTime - child._start) * child._ts + (child._ts >= 0 ? 0 : child._dirty ? child.totalDuration() : child._tDur);
14235      };
14236      _setEnd = function _setEnd2(animation) {
14237        return animation._end = _roundPrecise(animation._start + (animation._tDur / Math.abs(animation._ts || animation._rts || _tinyNum) || 0));
14238      };
14239      _alignPlayhead = function _alignPlayhead2(animation, totalTime) {
14240        var parent = animation._dp;
14241        if (parent && parent.smoothChildTiming && animation._ts) {
14242          animation._start = _roundPrecise(parent._time - (animation._ts > 0 ? totalTime / animation._ts : ((animation._dirty ? animation.totalDuration() : animation._tDur) - totalTime) / -animation._ts));
14243          _setEnd(animation);
14244          parent._dirty || _uncache(parent, animation);
14245        }
14246        return animation;
14247      };
14248      _postAddChecks = function _postAddChecks2(timeline2, child) {
14249        var t11;
14250        if (child._time || !child._dur && child._initted || child._start < timeline2._time && (child._dur || !child.add)) {
14251          t11 = _parentToChildTotalTime(timeline2.rawTime(), child);
14252          if (!child._dur || _clamp(0, child.totalDuration(), t11) - child._tTime > _tinyNum) {
14253            child.render(t11, true);
14254          }
14255        }
14256        if (_uncache(timeline2, child)._dp && timeline2._initted && timeline2._time >= timeline2._dur && timeline2._ts) {
14257          if (timeline2._dur < timeline2.duration()) {
14258            t11 = timeline2;
14259            while (t11._dp) {
14260              t11.rawTime() >= 0 && t11.totalTime(t11._tTime);
14261              t11 = t11._dp;
14262            }
14263          }
14264          timeline2._zTime = -_tinyNum;
14265        }
14266      };
14267      _addToTimeline = function _addToTimeline2(timeline2, child, position, skipChecks) {
14268        child.parent && _removeFromParent(child);
14269        child._start = _roundPrecise((_isNumber(position) ? position : position || timeline2 !== _globalTimeline ? _parsePosition(timeline2, position, child) : timeline2._time) + child._delay);
14270        child._end = _roundPrecise(child._start + (child.totalDuration() / Math.abs(child.timeScale()) || 0));
14271        _addLinkedListItem(timeline2, child, "_first", "_last", timeline2._sort ? "_start" : 0);
14272        _isFromOrFromStart(child) || (timeline2._recent = child);
14273        skipChecks || _postAddChecks(timeline2, child);
14274        timeline2._ts < 0 && _alignPlayhead(timeline2, timeline2._tTime);
14275        return timeline2;
14276      };
14277      _scrollTrigger = function _scrollTrigger2(animation, trigger) {
14278        return (_globals.ScrollTrigger || _missingPlugin("scrollTrigger", trigger)) && _globals.ScrollTrigger.create(trigger, animation);
14279      };
14280      _attemptInitTween = function _attemptInitTween2(tween, time, force, suppressEvents, tTime) {
14281        _initTween(tween, time, tTime);
14282        if (!tween._initted) {
14283          return 1;
14284        }
14285        if (!force && tween._pt && !_reverting && (tween._dur && tween.vars.lazy !== false || !tween._dur && tween.vars.lazy) && _lastRenderedFrame !== _ticker.frame) {
14286          _lazyTweens.push(tween);
14287          tween._lazy = [tTime, suppressEvents];
14288          return 1;
14289        }
14290      };
14291      _parentPlayheadIsBeforeStart = function _parentPlayheadIsBeforeStart2(_ref) {
14292        var parent = _ref.parent;
14293        return parent && parent._ts && parent._initted && !parent._lock && (parent.rawTime() < 0 || _parentPlayheadIsBeforeStart2(parent));
14294      };
14295      _isFromOrFromStart = function _isFromOrFromStart2(_ref2) {
14296        var data = _ref2.data;
14297        return data === "isFromStart" || data === "isStart";
14298      };
14299      _renderZeroDurationTween = function _renderZeroDurationTween2(tween, totalTime, suppressEvents, force) {
14300        var prevRatio = tween.ratio, ratio = totalTime < 0 || !totalTime && (!tween._start && _parentPlayheadIsBeforeStart(tween) && !(!tween._initted && _isFromOrFromStart(tween)) || (tween._ts < 0 || tween._dp._ts < 0) && !_isFromOrFromStart(tween)) ? 0 : 1, repeatDelay = tween._rDelay, tTime = 0, pt, iteration, prevIteration;
14301        if (repeatDelay && tween._repeat) {
14302          tTime = _clamp(0, tween._tDur, totalTime);
14303          iteration = _animationCycle(tTime, repeatDelay);
14304          tween._yoyo && iteration & 1 && (ratio = 1 - ratio);
14305          if (iteration !== _animationCycle(tween._tTime, repeatDelay)) {
14306            prevRatio = 1 - ratio;
14307            tween.vars.repeatRefresh && tween._initted && tween.invalidate();
14308          }
14309        }
14310        if (ratio !== prevRatio || _reverting || force || tween._zTime === _tinyNum || !totalTime && tween._zTime) {
14311          if (!tween._initted && _attemptInitTween(tween, totalTime, force, suppressEvents, tTime)) {
14312            return;
14313          }
14314          prevIteration = tween._zTime;
14315          tween._zTime = totalTime || (suppressEvents ? _tinyNum : 0);
14316          suppressEvents || (suppressEvents = totalTime && !prevIteration);
14317          tween.ratio = ratio;
14318          tween._from && (ratio = 1 - ratio);
14319          tween._time = 0;
14320          tween._tTime = tTime;
14321          pt = tween._pt;
14322          while (pt) {
14323            pt.r(ratio, pt.d);
14324            pt = pt._next;
14325          }
14326          totalTime < 0 && _rewindStartAt(tween, totalTime, suppressEvents, true);
14327          tween._onUpdate && !suppressEvents && _callback(tween, "onUpdate");
14328          tTime && tween._repeat && !suppressEvents && tween.parent && _callback(tween, "onRepeat");
14329          if ((totalTime >= tween._tDur || totalTime < 0) && tween.ratio === ratio) {
14330            ratio && _removeFromParent(tween, 1);
14331            if (!suppressEvents && !_reverting) {
14332              _callback(tween, ratio ? "onComplete" : "onReverseComplete", true);
14333              tween._prom && tween._prom();
14334            }
14335          }
14336        } else if (!tween._zTime) {
14337          tween._zTime = totalTime;
14338        }
14339      };
14340      _findNextPauseTween = function _findNextPauseTween2(animation, prevTime, time) {
14341        var child;
14342        if (time > prevTime) {
14343          child = animation._first;
14344          while (child && child._start <= time) {
14345            if (child.data === "isPause" && child._start > prevTime) {
14346              return child;
14347            }
14348            child = child._next;
14349          }
14350        } else {
14351          child = animation._last;
14352          while (child && child._start >= time) {
14353            if (child.data === "isPause" && child._start < prevTime) {
14354              return child;
14355            }
14356            child = child._prev;
14357          }
14358        }
14359      };
14360      _setDuration = function _setDuration2(animation, duration, skipUncache, leavePlayhead) {
14361        var repeat = animation._repeat, dur = _roundPrecise(duration) || 0, totalProgress = animation._tTime / animation._tDur;
14362        totalProgress && !leavePlayhead && (animation._time *= dur / animation._dur);
14363        animation._dur = dur;
14364        animation._tDur = !repeat ? dur : repeat < 0 ? 1e10 : _roundPrecise(dur * (repeat + 1) + animation._rDelay * repeat);
14365        totalProgress > 0 && !leavePlayhead && _alignPlayhead(animation, animation._tTime = animation._tDur * totalProgress);
14366        animation.parent && _setEnd(animation);
14367        skipUncache || _uncache(animation.parent, animation);
14368        return animation;
14369      };
14370      _onUpdateTotalDuration = function _onUpdateTotalDuration2(animation) {
14371        return animation instanceof Timeline ? _uncache(animation) : _setDuration(animation, animation._dur);
14372      };
14373      _zeroPosition = {
14374        _start: 0,
14375        endTime: _emptyFunc,
14376        totalDuration: _emptyFunc
14377      };
14378      _parsePosition = function _parsePosition2(animation, position, percentAnimation) {
14379        var labels = animation.labels, recent = animation._recent || _zeroPosition, clippedDuration = animation.duration() >= _bigNum ? recent.endTime(false) : animation._dur, i10, offset, isPercent;
14380        if (_isString(position) && (isNaN(position) || position in labels)) {
14381          offset = position.charAt(0);
14382          isPercent = position.substr(-1) === "%";
14383          i10 = position.indexOf("=");
14384          if (offset === "<" || offset === ">") {
14385            i10 >= 0 && (position = position.replace(/=/, ""));
14386            return (offset === "<" ? recent._start : recent.endTime(recent._repeat >= 0)) + (parseFloat(position.substr(1)) || 0) * (isPercent ? (i10 < 0 ? recent : percentAnimation).totalDuration() / 100 : 1);
14387          }
14388          if (i10 < 0) {
14389            position in labels || (labels[position] = clippedDuration);
14390            return labels[position];
14391          }
14392          offset = parseFloat(position.charAt(i10 - 1) + position.substr(i10 + 1));
14393          if (isPercent && percentAnimation) {
14394            offset = offset / 100 * (_isArray(percentAnimation) ? percentAnimation[0] : percentAnimation).totalDuration();
14395          }
14396          return i10 > 1 ? _parsePosition2(animation, position.substr(0, i10 - 1), percentAnimation) + offset : clippedDuration + offset;
14397        }
14398        return position == null ? clippedDuration : +position;
14399      };
14400      _createTweenType = function _createTweenType2(type, params, timeline2) {
14401        var isLegacy = _isNumber(params[1]), varsIndex = (isLegacy ? 2 : 1) + (type < 2 ? 0 : 1), vars = params[varsIndex], irVars, parent;
14402        isLegacy && (vars.duration = params[1]);
14403        vars.parent = timeline2;
14404        if (type) {
14405          irVars = vars;
14406          parent = timeline2;
14407          while (parent && !("immediateRender" in irVars)) {
14408            irVars = parent.vars.defaults || {};
14409            parent = _isNotFalse(parent.vars.inherit) && parent.parent;
14410          }
14411          vars.immediateRender = _isNotFalse(irVars.immediateRender);
14412          type < 2 ? vars.runBackwards = 1 : vars.startAt = params[varsIndex - 1];
14413        }
14414        return new Tween(params[0], vars, params[varsIndex + 1]);
14415      };
14416      _conditionalReturn = function _conditionalReturn2(value, func) {
14417        return value || value === 0 ? func(value) : func;
14418      };
14419      _clamp = function _clamp2(min, max, value) {
14420        return value < min ? min : value > max ? max : value;
14421      };
14422      getUnit = function getUnit2(value, v3) {
14423        return !_isString(value) || !(v3 = _unitExp.exec(value)) ? "" : v3[1];
14424      };
14425      clamp = function clamp2(min, max, value) {
14426        return _conditionalReturn(value, function(v3) {
14427          return _clamp(min, max, v3);
14428        });
14429      };
14430      _slice = [].slice;
14431      _isArrayLike = function _isArrayLike2(value, nonEmpty) {
14432        return value && _isObject(value) && "length" in value && (!nonEmpty && !value.length || value.length - 1 in value && _isObject(value[0])) && !value.nodeType && value !== _win;
14433      };
14434      _flatten = function _flatten2(ar, leaveStrings, accumulator) {
14435        if (accumulator === void 0) {
14436          accumulator = [];
14437        }
14438        return ar.forEach(function(value) {
14439          var _accumulator;
14440          return _isString(value) && !leaveStrings || _isArrayLike(value, 1) ? (_accumulator = accumulator).push.apply(_accumulator, toArray(value)) : accumulator.push(value);
14441        }) || accumulator;
14442      };
14443      toArray = function toArray2(value, scope, leaveStrings) {
14444        return _context && !scope && _context.selector ? _context.selector(value) : _isString(value) && !leaveStrings && (_coreInitted || !_wake()) ? _slice.call((scope || _doc).querySelectorAll(value), 0) : _isArray(value) ? _flatten(value, leaveStrings) : _isArrayLike(value) ? _slice.call(value, 0) : value ? [value] : [];
14445      };
14446      selector = function selector2(value) {
14447        value = toArray(value)[0] || _warn("Invalid scope") || {};
14448        return function(v3) {
14449          var el = value.current || value.nativeElement || value;
14450          return toArray(v3, el.querySelectorAll ? el : el === value ? _warn("Invalid scope") || _doc.createElement("div") : value);
14451        };
14452      };
14453      shuffle = function shuffle2(a8) {
14454        return a8.sort(function() {
14455          return 0.5 - Math.random();
14456        });
14457      };
14458      distribute = function distribute2(v3) {
14459        if (_isFunction(v3)) {
14460          return v3;
14461        }
14462        var vars = _isObject(v3) ? v3 : {
14463          each: v3
14464        }, ease = _parseEase(vars.ease), from = vars.from || 0, base = parseFloat(vars.base) || 0, cache = {}, isDecimal = from > 0 && from < 1, ratios = isNaN(from) || isDecimal, axis = vars.axis, ratioX = from, ratioY = from;
14465        if (_isString(from)) {
14466          ratioX = ratioY = {
14467            center: 0.5,
14468            edges: 0.5,
14469            end: 1
14470          }[from] || 0;
14471        } else if (!isDecimal && ratios) {
14472          ratioX = from[0];
14473          ratioY = from[1];
14474        }
14475        return function(i10, target, a8) {
14476          var l10 = (a8 || vars).length, distances = cache[l10], originX, originY, x2, y3, d3, j2, max, min, wrapAt;
14477          if (!distances) {
14478            wrapAt = vars.grid === "auto" ? 0 : (vars.grid || [1, _bigNum])[1];
14479            if (!wrapAt) {
14480              max = -_bigNum;
14481              while (max < (max = a8[wrapAt++].getBoundingClientRect().left) && wrapAt < l10) {
14482              }
14483              wrapAt < l10 && wrapAt--;
14484            }
14485            distances = cache[l10] = [];
14486            originX = ratios ? Math.min(wrapAt, l10) * ratioX - 0.5 : from % wrapAt;
14487            originY = wrapAt === _bigNum ? 0 : ratios ? l10 * ratioY / wrapAt - 0.5 : from / wrapAt | 0;
14488            max = 0;
14489            min = _bigNum;
14490            for (j2 = 0; j2 < l10; j2++) {
14491              x2 = j2 % wrapAt - originX;
14492              y3 = originY - (j2 / wrapAt | 0);
14493              distances[j2] = d3 = !axis ? _sqrt(x2 * x2 + y3 * y3) : Math.abs(axis === "y" ? y3 : x2);
14494              d3 > max && (max = d3);
14495              d3 < min && (min = d3);
14496            }
14497            from === "random" && shuffle(distances);
14498            distances.max = max - min;
14499            distances.min = min;
14500            distances.v = l10 = (parseFloat(vars.amount) || parseFloat(vars.each) * (wrapAt > l10 ? l10 - 1 : !axis ? Math.max(wrapAt, l10 / wrapAt) : axis === "y" ? l10 / wrapAt : wrapAt) || 0) * (from === "edges" ? -1 : 1);
14501            distances.b = l10 < 0 ? base - l10 : base;
14502            distances.u = getUnit(vars.amount || vars.each) || 0;
14503            ease = ease && l10 < 0 ? _invertEase(ease) : ease;
14504          }
14505          l10 = (distances[i10] - distances.min) / distances.max || 0;
14506          return _roundPrecise(distances.b + (ease ? ease(l10) : l10) * distances.v) + distances.u;
14507        };
14508      };
14509      _roundModifier = function _roundModifier2(v3) {
14510        var p2 = Math.pow(10, ((v3 + "").split(".")[1] || "").length);
14511        return function(raw) {
14512          var n10 = _roundPrecise(Math.round(parseFloat(raw) / v3) * v3 * p2);
14513          return (n10 - n10 % 1) / p2 + (_isNumber(raw) ? 0 : getUnit(raw));
14514        };
14515      };
14516      snap = function snap2(snapTo, value) {
14517        var isArray2 = _isArray(snapTo), radius, is2D;
14518        if (!isArray2 && _isObject(snapTo)) {
14519          radius = isArray2 = snapTo.radius || _bigNum;
14520          if (snapTo.values) {
14521            snapTo = toArray(snapTo.values);
14522            if (is2D = !_isNumber(snapTo[0])) {
14523              radius *= radius;
14524            }
14525          } else {
14526            snapTo = _roundModifier(snapTo.increment);
14527          }
14528        }
14529        return _conditionalReturn(value, !isArray2 ? _roundModifier(snapTo) : _isFunction(snapTo) ? function(raw) {
14530          is2D = snapTo(raw);
14531          return Math.abs(is2D - raw) <= radius ? is2D : raw;
14532        } : function(raw) {
14533          var x2 = parseFloat(is2D ? raw.x : raw), y3 = parseFloat(is2D ? raw.y : 0), min = _bigNum, closest = 0, i10 = snapTo.length, dx, dy;
14534          while (i10--) {
14535            if (is2D) {
14536              dx = snapTo[i10].x - x2;
14537              dy = snapTo[i10].y - y3;
14538              dx = dx * dx + dy * dy;
14539            } else {
14540              dx = Math.abs(snapTo[i10] - x2);
14541            }
14542            if (dx < min) {
14543              min = dx;
14544              closest = i10;
14545            }
14546          }
14547          closest = !radius || min <= radius ? snapTo[closest] : raw;
14548          return is2D || closest === raw || _isNumber(raw) ? closest : closest + getUnit(raw);
14549        });
14550      };
14551      random = function random2(min, max, roundingIncrement, returnFunction) {
14552        return _conditionalReturn(_isArray(min) ? !max : roundingIncrement === true ? !!(roundingIncrement = 0) : !returnFunction, function() {
14553          return _isArray(min) ? min[~~(Math.random() * min.length)] : (roundingIncrement = roundingIncrement || 1e-5) && (returnFunction = roundingIncrement < 1 ? Math.pow(10, (roundingIncrement + "").length - 2) : 1) && Math.floor(Math.round((min - roundingIncrement / 2 + Math.random() * (max - min + roundingIncrement * 0.99)) / roundingIncrement) * roundingIncrement * returnFunction) / returnFunction;
14554        });
14555      };
14556      pipe = function pipe2() {
14557        for (var _len = arguments.length, functions = new Array(_len), _key = 0; _key < _len; _key++) {
14558          functions[_key] = arguments[_key];
14559        }
14560        return function(value) {
14561          return functions.reduce(function(v3, f3) {
14562            return f3(v3);
14563          }, value);
14564        };
14565      };
14566      unitize = function unitize2(func, unit) {
14567        return function(value) {
14568          return func(parseFloat(value)) + (unit || getUnit(value));
14569        };
14570      };
14571      normalize = function normalize2(min, max, value) {
14572        return mapRange(min, max, 0, 1, value);
14573      };
14574      _wrapArray = function _wrapArray2(a8, wrapper, value) {
14575        return _conditionalReturn(value, function(index) {
14576          return a8[~~wrapper(index)];
14577        });
14578      };
14579      wrap = function wrap2(min, max, value) {
14580        var range2 = max - min;
14581        return _isArray(min) ? _wrapArray(min, wrap2(0, min.length), max) : _conditionalReturn(value, function(value2) {
14582          return (range2 + (value2 - min) % range2) % range2 + min;
14583        });
14584      };
14585      wrapYoyo = function wrapYoyo2(min, max, value) {
14586        var range2 = max - min, total = range2 * 2;
14587        return _isArray(min) ? _wrapArray(min, wrapYoyo2(0, min.length - 1), max) : _conditionalReturn(value, function(value2) {
14588          value2 = (total + (value2 - min) % total) % total || 0;
14589          return min + (value2 > range2 ? total - value2 : value2);
14590        });
14591      };
14592      _replaceRandom = function _replaceRandom2(s13) {
14593        return s13.replace(_randomExp, function(match) {
14594          var arIndex = match.indexOf("[") + 1, values = match.substring(arIndex || 7, arIndex ? match.indexOf("]") : match.length - 1).split(_commaDelimExp);
14595          return random(arIndex ? values : +values[0], arIndex ? 0 : +values[1], +values[2] || 1e-5);
14596        });
14597      };
14598      mapRange = function mapRange2(inMin, inMax, outMin, outMax, value) {
14599        var inRange = inMax - inMin, outRange = outMax - outMin;
14600        return _conditionalReturn(value, function(value2) {
14601          return outMin + ((value2 - inMin) / inRange * outRange || 0);
14602        });
14603      };
14604      interpolate = function interpolate2(start, end, progress, mutate) {
14605        var func = isNaN(start + end) ? 0 : function(p3) {
14606          return (1 - p3) * start + p3 * end;
14607        };
14608        if (!func) {
14609          var isString = _isString(start), master = {}, p2, i10, interpolators, l10, il;
14610          progress === true && (mutate = 1) && (progress = null);
14611          if (isString) {
14612            start = {
14613              p: start
14614            };
14615            end = {
14616              p: end
14617            };
14618          } else if (_isArray(start) && !_isArray(end)) {
14619            interpolators = [];
14620            l10 = start.length;
14621            il = l10 - 2;
14622            for (i10 = 1; i10 < l10; i10++) {
14623              interpolators.push(interpolate2(start[i10 - 1], start[i10]));
14624            }
14625            l10--;
14626            func = function func2(p3) {
14627              p3 *= l10;
14628              var i11 = Math.min(il, ~~p3);
14629              return interpolators[i11](p3 - i11);
14630            };
14631            progress = end;
14632          } else if (!mutate) {
14633            start = _merge(_isArray(start) ? [] : {}, start);
14634          }
14635          if (!interpolators) {
14636            for (p2 in end) {
14637              _addPropTween.call(master, start, p2, "get", end[p2]);
14638            }
14639            func = function func2(p3) {
14640              return _renderPropTweens(p3, master) || (isString ? start.p : start);
14641            };
14642          }
14643        }
14644        return _conditionalReturn(progress, func);
14645      };
14646      _getLabelInDirection = function _getLabelInDirection2(timeline2, fromTime, backward) {
14647        var labels = timeline2.labels, min = _bigNum, p2, distance, label;
14648        for (p2 in labels) {
14649          distance = labels[p2] - fromTime;
14650          if (distance < 0 === !!backward && distance && min > (distance = Math.abs(distance))) {
14651            label = p2;
14652            min = distance;
14653          }
14654        }
14655        return label;
14656      };
14657      _callback = function _callback2(animation, type, executeLazyFirst) {
14658        var v3 = animation.vars, callback = v3[type], prevContext = _context, context3 = animation._ctx, params, scope, result;
14659        if (!callback) {
14660          return;
14661        }
14662        params = v3[type + "Params"];
14663        scope = v3.callbackScope || animation;
14664        executeLazyFirst && _lazyTweens.length && _lazyRender();
14665        context3 && (_context = context3);
14666        result = params ? callback.apply(scope, params) : callback.call(scope);
14667        _context = prevContext;
14668        return result;
14669      };
14670      _interrupt = function _interrupt2(animation) {
14671        _removeFromParent(animation);
14672        animation.scrollTrigger && animation.scrollTrigger.kill(!!_reverting);
14673        animation.progress() < 1 && _callback(animation, "onInterrupt");
14674        return animation;
14675      };
14676      _registerPluginQueue = [];
14677      _createPlugin = function _createPlugin2(config3) {
14678        if (!config3) return;
14679        config3 = !config3.name && config3["default"] || config3;
14680        if (_windowExists() || config3.headless) {
14681          var name = config3.name, isFunc = _isFunction(config3), Plugin = name && !isFunc && config3.init ? function() {
14682            this._props = [];
14683          } : config3, instanceDefaults = {
14684            init: _emptyFunc,
14685            render: _renderPropTweens,
14686            add: _addPropTween,
14687            kill: _killPropTweensOf,
14688            modifier: _addPluginModifier,
14689            rawVars: 0
14690          }, statics = {
14691            targetTest: 0,
14692            get: 0,
14693            getSetter: _getSetter,
14694            aliases: {},
14695            register: 0
14696          };
14697          _wake();
14698          if (config3 !== Plugin) {
14699            if (_plugins[name]) {
14700              return;
14701            }
14702            _setDefaults(Plugin, _setDefaults(_copyExcluding(config3, instanceDefaults), statics));
14703            _merge(Plugin.prototype, _merge(instanceDefaults, _copyExcluding(config3, statics)));
14704            _plugins[Plugin.prop = name] = Plugin;
14705            if (config3.targetTest) {
14706              _harnessPlugins.push(Plugin);
14707              _reservedProps[name] = 1;
14708            }
14709            name = (name === "css" ? "CSS" : name.charAt(0).toUpperCase() + name.substr(1)) + "Plugin";
14710          }
14711          _addGlobal(name, Plugin);
14712          config3.register && config3.register(gsap, Plugin, PropTween);
14713        } else {
14714          _registerPluginQueue.push(config3);
14715        }
14716      };
14717      _255 = 255;
14718      _colorLookup = {
14719        aqua: [0, _255, _255],
14720        lime: [0, _255, 0],
14721        silver: [192, 192, 192],
14722        black: [0, 0, 0],
14723        maroon: [128, 0, 0],
14724        teal: [0, 128, 128],
14725        blue: [0, 0, _255],
14726        navy: [0, 0, 128],
14727        white: [_255, _255, _255],
14728        olive: [128, 128, 0],
14729        yellow: [_255, _255, 0],
14730        orange: [_255, 165, 0],
14731        gray: [128, 128, 128],
14732        purple: [128, 0, 128],
14733        green: [0, 128, 0],
14734        red: [_255, 0, 0],
14735        pink: [_255, 192, 203],
14736        cyan: [0, _255, _255],
14737        transparent: [_255, _255, _255, 0]
14738      };
14739      _hue = function _hue2(h4, m1, m22) {
14740        h4 += h4 < 0 ? 1 : h4 > 1 ? -1 : 0;
14741        return (h4 * 6 < 1 ? m1 + (m22 - m1) * h4 * 6 : h4 < 0.5 ? m22 : h4 * 3 < 2 ? m1 + (m22 - m1) * (2 / 3 - h4) * 6 : m1) * _255 + 0.5 | 0;
14742      };
14743      splitColor = function splitColor2(v3, toHSL, forceAlpha) {
14744        var a8 = !v3 ? _colorLookup.black : _isNumber(v3) ? [v3 >> 16, v3 >> 8 & _255, v3 & _255] : 0, r7, g2, b3, h4, s13, l10, max, min, d3, wasHSL;
14745        if (!a8) {
14746          if (v3.substr(-1) === ",") {
14747            v3 = v3.substr(0, v3.length - 1);
14748          }
14749          if (_colorLookup[v3]) {
14750            a8 = _colorLookup[v3];
14751          } else if (v3.charAt(0) === "#") {
14752            if (v3.length < 6) {
14753              r7 = v3.charAt(1);
14754              g2 = v3.charAt(2);
14755              b3 = v3.charAt(3);
14756              v3 = "#" + r7 + r7 + g2 + g2 + b3 + b3 + (v3.length === 5 ? v3.charAt(4) + v3.charAt(4) : "");
14757            }
14758            if (v3.length === 9) {
14759              a8 = parseInt(v3.substr(1, 6), 16);
14760              return [a8 >> 16, a8 >> 8 & _255, a8 & _255, parseInt(v3.substr(7), 16) / 255];
14761            }
14762            v3 = parseInt(v3.substr(1), 16);
14763            a8 = [v3 >> 16, v3 >> 8 & _255, v3 & _255];
14764          } else if (v3.substr(0, 3) === "hsl") {
14765            a8 = wasHSL = v3.match(_strictNumExp);
14766            if (!toHSL) {
14767              h4 = +a8[0] % 360 / 360;
14768              s13 = +a8[1] / 100;
14769              l10 = +a8[2] / 100;
14770              g2 = l10 <= 0.5 ? l10 * (s13 + 1) : l10 + s13 - l10 * s13;
14771              r7 = l10 * 2 - g2;
14772              a8.length > 3 && (a8[3] *= 1);
14773              a8[0] = _hue(h4 + 1 / 3, r7, g2);
14774              a8[1] = _hue(h4, r7, g2);
14775              a8[2] = _hue(h4 - 1 / 3, r7, g2);
14776            } else if (~v3.indexOf("=")) {
14777              a8 = v3.match(_numExp);
14778              forceAlpha && a8.length < 4 && (a8[3] = 1);
14779              return a8;
14780            }
14781          } else {
14782            a8 = v3.match(_strictNumExp) || _colorLookup.transparent;
14783          }
14784          a8 = a8.map(Number);
14785        }
14786        if (toHSL && !wasHSL) {
14787          r7 = a8[0] / _255;
14788          g2 = a8[1] / _255;
14789          b3 = a8[2] / _255;
14790          max = Math.max(r7, g2, b3);
14791          min = Math.min(r7, g2, b3);
14792          l10 = (max + min) / 2;
14793          if (max === min) {
14794            h4 = s13 = 0;
14795          } else {
14796            d3 = max - min;
14797            s13 = l10 > 0.5 ? d3 / (2 - max - min) : d3 / (max + min);
14798            h4 = max === r7 ? (g2 - b3) / d3 + (g2 < b3 ? 6 : 0) : max === g2 ? (b3 - r7) / d3 + 2 : (r7 - g2) / d3 + 4;
14799            h4 *= 60;
14800          }
14801          a8[0] = ~~(h4 + 0.5);
14802          a8[1] = ~~(s13 * 100 + 0.5);
14803          a8[2] = ~~(l10 * 100 + 0.5);
14804        }
14805        forceAlpha && a8.length < 4 && (a8[3] = 1);
14806        return a8;
14807      };
14808      _colorOrderData = function _colorOrderData2(v3) {
14809        var values = [], c5 = [], i10 = -1;
14810        v3.split(_colorExp).forEach(function(v4) {
14811          var a8 = v4.match(_numWithUnitExp) || [];
14812          values.push.apply(values, a8);
14813          c5.push(i10 += a8.length + 1);
14814        });
14815        values.c = c5;
14816        return values;
14817      };
14818      _formatColors = function _formatColors2(s13, toHSL, orderMatchData) {
14819        var result = "", colors = (s13 + result).match(_colorExp), type = toHSL ? "hsla(" : "rgba(", i10 = 0, c5, shell, d3, l10;
14820        if (!colors) {
14821          return s13;
14822        }
14823        colors = colors.map(function(color) {
14824          return (color = splitColor(color, toHSL, 1)) && type + (toHSL ? color[0] + "," + color[1] + "%," + color[2] + "%," + color[3] : color.join(",")) + ")";
14825        });
14826        if (orderMatchData) {
14827          d3 = _colorOrderData(s13);
14828          c5 = orderMatchData.c;
14829          if (c5.join(result) !== d3.c.join(result)) {
14830            shell = s13.replace(_colorExp, "1").split(_numWithUnitExp);
14831            l10 = shell.length - 1;
14832            for (; i10 < l10; i10++) {
14833              result += shell[i10] + (~c5.indexOf(i10) ? colors.shift() || type + "0,0,0,0)" : (d3.length ? d3 : colors.length ? colors : orderMatchData).shift());
14834            }
14835          }
14836        }
14837        if (!shell) {
14838          shell = s13.split(_colorExp);
14839          l10 = shell.length - 1;
14840          for (; i10 < l10; i10++) {
14841            result += shell[i10] + colors[i10];
14842          }
14843        }
14844        return result + shell[l10];
14845      };
14846      _colorExp = (function() {
14847        var s13 = "(?:\\b(?:(?:rgb|rgba|hsl|hsla)\\(.+?\\))|\\B#(?:[0-9a-f]{3,4}){1,2}\\b", p2;
14848        for (p2 in _colorLookup) {
14849          s13 += "|" + p2 + "\\b";
14850        }
14851        return new RegExp(s13 + ")", "gi");
14852      })();
14853      _hslExp = /hsl[a]?\(/;
14854      _colorStringFilter = function _colorStringFilter2(a8) {
14855        var combined = a8.join(" "), toHSL;
14856        _colorExp.lastIndex = 0;
14857        if (_colorExp.test(combined)) {
14858          toHSL = _hslExp.test(combined);
14859          a8[1] = _formatColors(a8[1], toHSL);
14860          a8[0] = _formatColors(a8[0], toHSL, _colorOrderData(a8[1]));
14861          return true;
14862        }
14863      };
14864      _ticker = (function() {
14865        var _getTime3 = Date.now, _lagThreshold = 500, _adjustedLag = 33, _startTime = _getTime3(), _lastUpdate = _startTime, _gap = 1e3 / 240, _nextTime = _gap, _listeners3 = [], _id, _req, _raf, _self, _delta, _i2, _tick = function _tick2(v3) {
14866          var elapsed = _getTime3() - _lastUpdate, manual = v3 === true, overlap, dispatch, time, frame;
14867          (elapsed > _lagThreshold || elapsed < 0) && (_startTime += elapsed - _adjustedLag);
14868          _lastUpdate += elapsed;
14869          time = _lastUpdate - _startTime;
14870          overlap = time - _nextTime;
14871          if (overlap > 0 || manual) {
14872            frame = ++_self.frame;
14873            _delta = time - _self.time * 1e3;
14874            _self.time = time = time / 1e3;
14875            _nextTime += overlap + (overlap >= _gap ? 4 : _gap - overlap);
14876            dispatch = 1;
14877          }
14878          manual || (_id = _req(_tick2));
14879          if (dispatch) {
14880            for (_i2 = 0; _i2 < _listeners3.length; _i2++) {
14881              _listeners3[_i2](time, _delta, frame, v3);
14882            }
14883          }
14884        };
14885        _self = {
14886          time: 0,
14887          frame: 0,
14888          tick: function tick() {
14889            _tick(true);
14890          },
14891          deltaRatio: function deltaRatio(fps) {
14892            return _delta / (1e3 / (fps || 60));
14893          },
14894          wake: function wake() {
14895            if (_coreReady) {
14896              if (!_coreInitted && _windowExists()) {
14897                _win = _coreInitted = window;
14898                _doc = _win.document || {};
14899                _globals.gsap = gsap;
14900                (_win.gsapVersions || (_win.gsapVersions = [])).push(gsap.version);
14901                _install(_installScope || _win.GreenSockGlobals || !_win.gsap && _win || {});
14902                _registerPluginQueue.forEach(_createPlugin);
14903              }
14904              _raf = typeof requestAnimationFrame !== "undefined" && requestAnimationFrame;
14905              _id && _self.sleep();
14906              _req = _raf || function(f3) {
14907                return setTimeout(f3, _nextTime - _self.time * 1e3 + 1 | 0);
14908              };
14909              _tickerActive = 1;
14910              _tick(2);
14911            }
14912          },
14913          sleep: function sleep() {
14914            (_raf ? cancelAnimationFrame : clearTimeout)(_id);
14915            _tickerActive = 0;
14916            _req = _emptyFunc;
14917          },
14918          lagSmoothing: function lagSmoothing(threshold, adjustedLag) {
14919            _lagThreshold = threshold || Infinity;
14920            _adjustedLag = Math.min(adjustedLag || 33, _lagThreshold);
14921          },
14922          fps: function fps(_fps) {
14923            _gap = 1e3 / (_fps || 240);
14924            _nextTime = _self.time * 1e3 + _gap;
14925          },
14926          add: function add(callback, once, prioritize) {
14927            var func = once ? function(t11, d3, f3, v3) {
14928              callback(t11, d3, f3, v3);
14929              _self.remove(func);
14930            } : callback;
14931            _self.remove(callback);
14932            _listeners3[prioritize ? "unshift" : "push"](func);
14933            _wake();
14934            return func;
14935          },
14936          remove: function remove(callback, i10) {
14937            ~(i10 = _listeners3.indexOf(callback)) && _listeners3.splice(i10, 1) && _i2 >= i10 && _i2--;
14938          },
14939          _listeners: _listeners3
14940        };
14941        return _self;
14942      })();
14943      _wake = function _wake2() {
14944        return !_tickerActive && _ticker.wake();
14945      };
14946      _easeMap = {};
14947      _customEaseExp = /^[\d.\-M][\d.\-,\s]/;
14948      _quotesExp = /["']/g;
14949      _parseObjectInString = function _parseObjectInString2(value) {
14950        var obj = {}, split = value.substr(1, value.length - 3).split(":"), key = split[0], i10 = 1, l10 = split.length, index, val, parsedVal;
14951        for (; i10 < l10; i10++) {
14952          val = split[i10];
14953          index = i10 !== l10 - 1 ? val.lastIndexOf(",") : val.length;
14954          parsedVal = val.substr(0, index);
14955          obj[key] = isNaN(parsedVal) ? parsedVal.replace(_quotesExp, "").trim() : +parsedVal;
14956          key = val.substr(index + 1).trim();
14957        }
14958        return obj;
14959      };
14960      _valueInParentheses = function _valueInParentheses2(value) {
14961        var open = value.indexOf("(") + 1, close = value.indexOf(")"), nested = value.indexOf("(", open);
14962        return value.substring(open, ~nested && nested < close ? value.indexOf(")", close + 1) : close);
14963      };
14964      _configEaseFromString = function _configEaseFromString2(name) {
14965        var split = (name + "").split("("), ease = _easeMap[split[0]];
14966        return ease && split.length > 1 && ease.config ? ease.config.apply(null, ~name.indexOf("{") ? [_parseObjectInString(split[1])] : _valueInParentheses(name).split(",").map(_numericIfPossible)) : _easeMap._CE && _customEaseExp.test(name) ? _easeMap._CE("", name) : ease;
14967      };
14968      _invertEase = function _invertEase2(ease) {
14969        return function(p2) {
14970          return 1 - ease(1 - p2);
14971        };
14972      };
14973      _propagateYoyoEase = function _propagateYoyoEase2(timeline2, isYoyo) {
14974        var child = timeline2._first, ease;
14975        while (child) {
14976          if (child instanceof Timeline) {
14977            _propagateYoyoEase2(child, isYoyo);
14978          } else if (child.vars.yoyoEase && (!child._yoyo || !child._repeat) && child._yoyo !== isYoyo) {
14979            if (child.timeline) {
14980              _propagateYoyoEase2(child.timeline, isYoyo);
14981            } else {
14982              ease = child._ease;
14983              child._ease = child._yEase;
14984              child._yEase = ease;
14985              child._yoyo = isYoyo;
14986            }
14987          }
14988          child = child._next;
14989        }
14990      };
14991      _parseEase = function _parseEase2(ease, defaultEase) {
14992        return !ease ? defaultEase : (_isFunction(ease) ? ease : _easeMap[ease] || _configEaseFromString(ease)) || defaultEase;
14993      };
14994      _insertEase = function _insertEase2(names, easeIn, easeOut, easeInOut) {
14995        if (easeOut === void 0) {
14996          easeOut = function easeOut2(p2) {
14997            return 1 - easeIn(1 - p2);
14998          };
14999        }
15000        if (easeInOut === void 0) {
15001          easeInOut = function easeInOut2(p2) {
15002            return p2 < 0.5 ? easeIn(p2 * 2) / 2 : 1 - easeIn((1 - p2) * 2) / 2;
15003          };
15004        }
15005        var ease = {
15006          easeIn,
15007          easeOut,
15008          easeInOut
15009        }, lowercaseName;
15010        _forEachName(names, function(name) {
15011          _easeMap[name] = _globals[name] = ease;
15012          _easeMap[lowercaseName = name.toLowerCase()] = easeOut;
15013          for (var p2 in ease) {
15014            _easeMap[lowercaseName + (p2 === "easeIn" ? ".in" : p2 === "easeOut" ? ".out" : ".inOut")] = _easeMap[name + "." + p2] = ease[p2];
15015          }
15016        });
15017        return ease;
15018      };
15019      _easeInOutFromOut = function _easeInOutFromOut2(easeOut) {
15020        return function(p2) {
15021          return p2 < 0.5 ? (1 - easeOut(1 - p2 * 2)) / 2 : 0.5 + easeOut((p2 - 0.5) * 2) / 2;
15022        };
15023      };
15024      _configElastic = function _configElastic2(type, amplitude, period) {
15025        var p1 = amplitude >= 1 ? amplitude : 1, p2 = (period || (type ? 0.3 : 0.45)) / (amplitude < 1 ? amplitude : 1), p3 = p2 / _2PI * (Math.asin(1 / p1) || 0), easeOut = function easeOut2(p4) {
15026          return p4 === 1 ? 1 : p1 * Math.pow(2, -10 * p4) * _sin((p4 - p3) * p2) + 1;
15027        }, ease = type === "out" ? easeOut : type === "in" ? function(p4) {
15028          return 1 - easeOut(1 - p4);
15029        } : _easeInOutFromOut(easeOut);
15030        p2 = _2PI / p2;
15031        ease.config = function(amplitude2, period2) {
15032          return _configElastic2(type, amplitude2, period2);
15033        };
15034        return ease;
15035      };
15036      _configBack = function _configBack2(type, overshoot) {
15037        if (overshoot === void 0) {
15038          overshoot = 1.70158;
15039        }
15040        var easeOut = function easeOut2(p2) {
15041          return p2 ? --p2 * p2 * ((overshoot + 1) * p2 + overshoot) + 1 : 0;
15042        }, ease = type === "out" ? easeOut : type === "in" ? function(p2) {
15043          return 1 - easeOut(1 - p2);
15044        } : _easeInOutFromOut(easeOut);
15045        ease.config = function(overshoot2) {
15046          return _configBack2(type, overshoot2);
15047        };
15048        return ease;
15049      };
15050      _forEachName("Linear,Quad,Cubic,Quart,Quint,Strong", function(name, i10) {
15051        var power = i10 < 5 ? i10 + 1 : i10;
15052        _insertEase(name + ",Power" + (power - 1), i10 ? function(p2) {
15053          return Math.pow(p2, power);
15054        } : function(p2) {
15055          return p2;
15056        }, function(p2) {
15057          return 1 - Math.pow(1 - p2, power);
15058        }, function(p2) {
15059          return p2 < 0.5 ? Math.pow(p2 * 2, power) / 2 : 1 - Math.pow((1 - p2) * 2, power) / 2;
15060        });
15061      });
15062      _easeMap.Linear.easeNone = _easeMap.none = _easeMap.Linear.easeIn;
15063      _insertEase("Elastic", _configElastic("in"), _configElastic("out"), _configElastic());
15064      (function(n10, c5) {
15065        var n1 = 1 / c5, n22 = 2 * n1, n32 = 2.5 * n1, easeOut = function easeOut2(p2) {
15066          return p2 < n1 ? n10 * p2 * p2 : p2 < n22 ? n10 * Math.pow(p2 - 1.5 / c5, 2) + 0.75 : p2 < n32 ? n10 * (p2 -= 2.25 / c5) * p2 + 0.9375 : n10 * Math.pow(p2 - 2.625 / c5, 2) + 0.984375;
15067        };
15068        _insertEase("Bounce", function(p2) {
15069          return 1 - easeOut(1 - p2);
15070        }, easeOut);
15071      })(7.5625, 2.75);
15072      _insertEase("Expo", function(p2) {
15073        return Math.pow(2, 10 * (p2 - 1)) * p2 + p2 * p2 * p2 * p2 * p2 * p2 * (1 - p2);
15074      });
15075      _insertEase("Circ", function(p2) {
15076        return -(_sqrt(1 - p2 * p2) - 1);
15077      });
15078      _insertEase("Sine", function(p2) {
15079        return p2 === 1 ? 1 : -_cos(p2 * _HALF_PI) + 1;
15080      });
15081      _insertEase("Back", _configBack("in"), _configBack("out"), _configBack());
15082      _easeMap.SteppedEase = _easeMap.steps = _globals.SteppedEase = {
15083        config: function config(steps, immediateStart) {
15084          if (steps === void 0) {
15085            steps = 1;
15086          }
15087          var p1 = 1 / steps, p2 = steps + (immediateStart ? 0 : 1), p3 = immediateStart ? 1 : 0, max = 1 - _tinyNum;
15088          return function(p4) {
15089            return ((p2 * _clamp(0, max, p4) | 0) + p3) * p1;
15090          };
15091        }
15092      };
15093      _defaults.ease = _easeMap["quad.out"];
15094      _forEachName("onComplete,onUpdate,onStart,onRepeat,onReverseComplete,onInterrupt", function(name) {
15095        return _callbackNames += name + "," + name + "Params,";
15096      });
15097      GSCache = function GSCache2(target, harness) {
15098        this.id = _gsID++;
15099        target._gsap = this;
15100        this.target = target;
15101        this.harness = harness;
15102        this.get = harness ? harness.get : _getProperty;
15103        this.set = harness ? harness.getSetter : _getSetter;
15104      };
15105      Animation = /* @__PURE__ */ (function() {
15106        function Animation2(vars) {
15107          this.vars = vars;
15108          this._delay = +vars.delay || 0;
15109          if (this._repeat = vars.repeat === Infinity ? -2 : vars.repeat || 0) {
15110            this._rDelay = vars.repeatDelay || 0;
15111            this._yoyo = !!vars.yoyo || !!vars.yoyoEase;
15112          }
15113          this._ts = 1;
15114          _setDuration(this, +vars.duration, 1, 1);
15115          this.data = vars.data;
15116          if (_context) {
15117            this._ctx = _context;
15118            _context.data.push(this);
15119          }
15120          _tickerActive || _ticker.wake();
15121        }
15122        var _proto = Animation2.prototype;
15123        _proto.delay = function delay(value) {
15124          if (value || value === 0) {
15125            this.parent && this.parent.smoothChildTiming && this.startTime(this._start + value - this._delay);
15126            this._delay = value;
15127            return this;
15128          }
15129          return this._delay;
15130        };
15131        _proto.duration = function duration(value) {
15132          return arguments.length ? this.totalDuration(this._repeat > 0 ? value + (value + this._rDelay) * this._repeat : value) : this.totalDuration() && this._dur;
15133        };
15134        _proto.totalDuration = function totalDuration(value) {
15135          if (!arguments.length) {
15136            return this._tDur;
15137          }
15138          this._dirty = 0;
15139          return _setDuration(this, this._repeat < 0 ? value : (value - this._repeat * this._rDelay) / (this._repeat + 1));
15140        };
15141        _proto.totalTime = function totalTime(_totalTime, suppressEvents) {
15142          _wake();
15143          if (!arguments.length) {
15144            return this._tTime;
15145          }
15146          var parent = this._dp;
15147          if (parent && parent.smoothChildTiming && this._ts) {
15148            _alignPlayhead(this, _totalTime);
15149            !parent._dp || parent.parent || _postAddChecks(parent, this);
15150            while (parent && parent.parent) {
15151              if (parent.parent._time !== parent._start + (parent._ts >= 0 ? parent._tTime / parent._ts : (parent.totalDuration() - parent._tTime) / -parent._ts)) {
15152                parent.totalTime(parent._tTime, true);
15153              }
15154              parent = parent.parent;
15155            }
15156            if (!this.parent && this._dp.autoRemoveChildren && (this._ts > 0 && _totalTime < this._tDur || this._ts < 0 && _totalTime > 0 || !this._tDur && !_totalTime)) {
15157              _addToTimeline(this._dp, this, this._start - this._delay);
15158            }
15159          }
15160          if (this._tTime !== _totalTime || !this._dur && !suppressEvents || this._initted && Math.abs(this._zTime) === _tinyNum || !this._initted && this._dur && _totalTime || !_totalTime && !this._initted && (this.add || this._ptLookup)) {
15161            this._ts || (this._pTime = _totalTime);
15162            _lazySafeRender(this, _totalTime, suppressEvents);
15163          }
15164          return this;
15165        };
15166        _proto.time = function time(value, suppressEvents) {
15167          return arguments.length ? this.totalTime(Math.min(this.totalDuration(), value + _elapsedCycleDuration(this)) % (this._dur + this._rDelay) || (value ? this._dur : 0), suppressEvents) : this._time;
15168        };
15169        _proto.totalProgress = function totalProgress(value, suppressEvents) {
15170          return arguments.length ? this.totalTime(this.totalDuration() * value, suppressEvents) : this.totalDuration() ? Math.min(1, this._tTime / this._tDur) : this.rawTime() >= 0 && this._initted ? 1 : 0;
15171        };
15172        _proto.progress = function progress(value, suppressEvents) {
15173          return arguments.length ? this.totalTime(this.duration() * (this._yoyo && !(this.iteration() & 1) ? 1 - value : value) + _elapsedCycleDuration(this), suppressEvents) : this.duration() ? Math.min(1, this._time / this._dur) : this.rawTime() > 0 ? 1 : 0;
15174        };
15175        _proto.iteration = function iteration(value, suppressEvents) {
15176          var cycleDuration = this.duration() + this._rDelay;
15177          return arguments.length ? this.totalTime(this._time + (value - 1) * cycleDuration, suppressEvents) : this._repeat ? _animationCycle(this._tTime, cycleDuration) + 1 : 1;
15178        };
15179        _proto.timeScale = function timeScale(value, suppressEvents) {
15180          if (!arguments.length) {
15181            return this._rts === -_tinyNum ? 0 : this._rts;
15182          }
15183          if (this._rts === value) {
15184            return this;
15185          }
15186          var tTime = this.parent && this._ts ? _parentToChildTotalTime(this.parent._time, this) : this._tTime;
15187          this._rts = +value || 0;
15188          this._ts = this._ps || value === -_tinyNum ? 0 : this._rts;
15189          this.totalTime(_clamp(-Math.abs(this._delay), this.totalDuration(), tTime), suppressEvents !== false);
15190          _setEnd(this);
15191          return _recacheAncestors(this);
15192        };
15193        _proto.paused = function paused(value) {
15194          if (!arguments.length) {
15195            return this._ps;
15196          }
15197          if (this._ps !== value) {
15198            this._ps = value;
15199            if (value) {
15200              this._pTime = this._tTime || Math.max(-this._delay, this.rawTime());
15201              this._ts = this._act = 0;
15202            } else {
15203              _wake();
15204              this._ts = this._rts;
15205              this.totalTime(this.parent && !this.parent.smoothChildTiming ? this.rawTime() : this._tTime || this._pTime, this.progress() === 1 && Math.abs(this._zTime) !== _tinyNum && (this._tTime -= _tinyNum));
15206            }
15207          }
15208          return this;
15209        };
15210        _proto.startTime = function startTime(value) {
15211          if (arguments.length) {
15212            this._start = _roundPrecise(value);
15213            var parent = this.parent || this._dp;
15214            parent && (parent._sort || !this.parent) && _addToTimeline(parent, this, this._start - this._delay);
15215            return this;
15216          }
15217          return this._start;
15218        };
15219        _proto.endTime = function endTime(includeRepeats) {
15220          return this._start + (_isNotFalse(includeRepeats) ? this.totalDuration() : this.duration()) / Math.abs(this._ts || 1);
15221        };
15222        _proto.rawTime = function rawTime(wrapRepeats) {
15223          var parent = this.parent || this._dp;
15224          return !parent ? this._tTime : wrapRepeats && (!this._ts || this._repeat && this._time && this.totalProgress() < 1) ? this._tTime % (this._dur + this._rDelay) : !this._ts ? this._tTime : _parentToChildTotalTime(parent.rawTime(wrapRepeats), this);
15225        };
15226        _proto.revert = function revert(config3) {
15227          if (config3 === void 0) {
15228            config3 = _revertConfig;
15229          }
15230          var prevIsReverting = _reverting;
15231          _reverting = config3;
15232          if (_isRevertWorthy(this)) {
15233            this.timeline && this.timeline.revert(config3);
15234            this.totalTime(-0.01, config3.suppressEvents);
15235          }
15236          this.data !== "nested" && config3.kill !== false && this.kill();
15237          _reverting = prevIsReverting;
15238          return this;
15239        };
15240        _proto.globalTime = function globalTime(rawTime) {
15241          var animation = this, time = arguments.length ? rawTime : animation.rawTime();
15242          while (animation) {
15243            time = animation._start + time / (Math.abs(animation._ts) || 1);
15244            animation = animation._dp;
15245          }
15246          return !this.parent && this._sat ? this._sat.globalTime(rawTime) : time;
15247        };
15248        _proto.repeat = function repeat(value) {
15249          if (arguments.length) {
15250            this._repeat = value === Infinity ? -2 : value;
15251            return _onUpdateTotalDuration(this);
15252          }
15253          return this._repeat === -2 ? Infinity : this._repeat;
15254        };
15255        _proto.repeatDelay = function repeatDelay(value) {
15256          if (arguments.length) {
15257            var time = this._time;
15258            this._rDelay = value;
15259            _onUpdateTotalDuration(this);
15260            return time ? this.time(time) : this;
15261          }
15262          return this._rDelay;
15263        };
15264        _proto.yoyo = function yoyo(value) {
15265          if (arguments.length) {
15266            this._yoyo = value;
15267            return this;
15268          }
15269          return this._yoyo;
15270        };
15271        _proto.seek = function seek(position, suppressEvents) {
15272          return this.totalTime(_parsePosition(this, position), _isNotFalse(suppressEvents));
15273        };
15274        _proto.restart = function restart(includeDelay, suppressEvents) {
15275          this.play().totalTime(includeDelay ? -this._delay : 0, _isNotFalse(suppressEvents));
15276          this._dur || (this._zTime = -_tinyNum);
15277          return this;
15278        };
15279        _proto.play = function play(from, suppressEvents) {
15280          from != null && this.seek(from, suppressEvents);
15281          return this.reversed(false).paused(false);
15282        };
15283        _proto.reverse = function reverse(from, suppressEvents) {
15284          from != null && this.seek(from || this.totalDuration(), suppressEvents);
15285          return this.reversed(true).paused(false);
15286        };
15287        _proto.pause = function pause(atTime, suppressEvents) {
15288          atTime != null && this.seek(atTime, suppressEvents);
15289          return this.paused(true);
15290        };
15291        _proto.resume = function resume() {
15292          return this.paused(false);
15293        };
15294        _proto.reversed = function reversed(value) {
15295          if (arguments.length) {
15296            !!value !== this.reversed() && this.timeScale(-this._rts || (value ? -_tinyNum : 0));
15297            return this;
15298          }
15299          return this._rts < 0;
15300        };
15301        _proto.invalidate = function invalidate() {
15302          this._initted = this._act = 0;
15303          this._zTime = -_tinyNum;
15304          return this;
15305        };
15306        _proto.isActive = function isActive() {
15307          var parent = this.parent || this._dp, start = this._start, rawTime;
15308          return !!(!parent || this._ts && this._initted && parent.isActive() && (rawTime = parent.rawTime(true)) >= start && rawTime < this.endTime(true) - _tinyNum);
15309        };
15310        _proto.eventCallback = function eventCallback(type, callback, params) {
15311          var vars = this.vars;
15312          if (arguments.length > 1) {
15313            if (!callback) {
15314              delete vars[type];
15315            } else {
15316              vars[type] = callback;
15317              params && (vars[type + "Params"] = params);
15318              type === "onUpdate" && (this._onUpdate = callback);
15319            }
15320            return this;
15321          }
15322          return vars[type];
15323        };
15324        _proto.then = function then(onFulfilled) {
15325          var self2 = this, prevProm = self2._prom;
15326          return new Promise(function(resolve) {
15327            var f3 = _isFunction(onFulfilled) ? onFulfilled : _passThrough, _resolve = function _resolve2() {
15328              var _then = self2.then;
15329              self2.then = null;
15330              prevProm && prevProm();
15331              _isFunction(f3) && (f3 = f3(self2)) && (f3.then || f3 === self2) && (self2.then = _then);
15332              resolve(f3);
15333              self2.then = _then;
15334            };
15335            if (self2._initted && self2.totalProgress() === 1 && self2._ts >= 0 || !self2._tTime && self2._ts < 0) {
15336              _resolve();
15337            } else {
15338              self2._prom = _resolve;
15339            }
15340          });
15341        };
15342        _proto.kill = function kill() {
15343          _interrupt(this);
15344        };
15345        return Animation2;
15346      })();
15347      _setDefaults(Animation.prototype, {
15348        _time: 0,
15349        _start: 0,
15350        _end: 0,
15351        _tTime: 0,
15352        _tDur: 0,
15353        _dirty: 0,
15354        _repeat: 0,
15355        _yoyo: false,
15356        parent: null,
15357        _initted: false,
15358        _rDelay: 0,
15359        _ts: 1,
15360        _dp: 0,
15361        ratio: 0,
15362        _zTime: -_tinyNum,
15363        _prom: 0,
15364        _ps: false,
15365        _rts: 1
15366      });
15367      Timeline = /* @__PURE__ */ (function(_Animation) {
15368        _inheritsLoose(Timeline2, _Animation);
15369        function Timeline2(vars, position) {
15370          var _this;
15371          if (vars === void 0) {
15372            vars = {};
15373          }
15374          _this = _Animation.call(this, vars) || this;
15375          _this.labels = {};
15376          _this.smoothChildTiming = !!vars.smoothChildTiming;
15377          _this.autoRemoveChildren = !!vars.autoRemoveChildren;
15378          _this._sort = _isNotFalse(vars.sortChildren);
15379          _globalTimeline && _addToTimeline(vars.parent || _globalTimeline, _assertThisInitialized(_this), position);
15380          vars.reversed && _this.reverse();
15381          vars.paused && _this.paused(true);
15382          vars.scrollTrigger && _scrollTrigger(_assertThisInitialized(_this), vars.scrollTrigger);
15383          return _this;
15384        }
15385        var _proto2 = Timeline2.prototype;
15386        _proto2.to = function to(targets, vars, position) {
15387          _createTweenType(0, arguments, this);
15388          return this;
15389        };
15390        _proto2.from = function from(targets, vars, position) {
15391          _createTweenType(1, arguments, this);
15392          return this;
15393        };
15394        _proto2.fromTo = function fromTo(targets, fromVars, toVars, position) {
15395          _createTweenType(2, arguments, this);
15396          return this;
15397        };
15398        _proto2.set = function set(targets, vars, position) {
15399          vars.duration = 0;
15400          vars.parent = this;
15401          _inheritDefaults(vars).repeatDelay || (vars.repeat = 0);
15402          vars.immediateRender = !!vars.immediateRender;
15403          new Tween(targets, vars, _parsePosition(this, position), 1);
15404          return this;
15405        };
15406        _proto2.call = function call(callback, params, position) {
15407          return _addToTimeline(this, Tween.delayedCall(0, callback, params), position);
15408        };
15409        _proto2.staggerTo = function staggerTo(targets, duration, vars, stagger, position, onCompleteAll, onCompleteAllParams) {
15410          vars.duration = duration;
15411          vars.stagger = vars.stagger || stagger;
15412          vars.onComplete = onCompleteAll;
15413          vars.onCompleteParams = onCompleteAllParams;
15414          vars.parent = this;
15415          new Tween(targets, vars, _parsePosition(this, position));
15416          return this;
15417        };
15418        _proto2.staggerFrom = function staggerFrom(targets, duration, vars, stagger, position, onCompleteAll, onCompleteAllParams) {
15419          vars.runBackwards = 1;
15420          _inheritDefaults(vars).immediateRender = _isNotFalse(vars.immediateRender);
15421          return this.staggerTo(targets, duration, vars, stagger, position, onCompleteAll, onCompleteAllParams);
15422        };
15423        _proto2.staggerFromTo = function staggerFromTo(targets, duration, fromVars, toVars, stagger, position, onCompleteAll, onCompleteAllParams) {
15424          toVars.startAt = fromVars;
15425          _inheritDefaults(toVars).immediateRender = _isNotFalse(toVars.immediateRender);
15426          return this.staggerTo(targets, duration, toVars, stagger, position, onCompleteAll, onCompleteAllParams);
15427        };
15428        _proto2.render = function render3(totalTime, suppressEvents, force) {
15429          var prevTime = this._time, tDur = this._dirty ? this.totalDuration() : this._tDur, dur = this._dur, tTime = totalTime <= 0 ? 0 : _roundPrecise(totalTime), crossingStart = this._zTime < 0 !== totalTime < 0 && (this._initted || !dur), time, child, next, iteration, cycleDuration, prevPaused, pauseTween, timeScale, prevStart, prevIteration, yoyo, isYoyo;
15430          this !== _globalTimeline && tTime > tDur && totalTime >= 0 && (tTime = tDur);
15431          if (tTime !== this._tTime || force || crossingStart) {
15432            if (prevTime !== this._time && dur) {
15433              tTime += this._time - prevTime;
15434              totalTime += this._time - prevTime;
15435            }
15436            time = tTime;
15437            prevStart = this._start;
15438            timeScale = this._ts;
15439            prevPaused = !timeScale;
15440            if (crossingStart) {
15441              dur || (prevTime = this._zTime);
15442              (totalTime || !suppressEvents) && (this._zTime = totalTime);
15443            }
15444            if (this._repeat) {
15445              yoyo = this._yoyo;
15446              cycleDuration = dur + this._rDelay;
15447              if (this._repeat < -1 && totalTime < 0) {
15448                return this.totalTime(cycleDuration * 100 + totalTime, suppressEvents, force);
15449              }
15450              time = _roundPrecise(tTime % cycleDuration);
15451              if (tTime === tDur) {
15452                iteration = this._repeat;
15453                time = dur;
15454              } else {
15455                prevIteration = _roundPrecise(tTime / cycleDuration);
15456                iteration = ~~prevIteration;
15457                if (iteration && iteration === prevIteration) {
15458                  time = dur;
15459                  iteration--;
15460                }
15461                time > dur && (time = dur);
15462              }
15463              prevIteration = _animationCycle(this._tTime, cycleDuration);
15464              !prevTime && this._tTime && prevIteration !== iteration && this._tTime - prevIteration * cycleDuration - this._dur <= 0 && (prevIteration = iteration);
15465              if (yoyo && iteration & 1) {
15466                time = dur - time;
15467                isYoyo = 1;
15468              }
15469              if (iteration !== prevIteration && !this._lock) {
15470                var rewinding = yoyo && prevIteration & 1, doesWrap = rewinding === (yoyo && iteration & 1);
15471                iteration < prevIteration && (rewinding = !rewinding);
15472                prevTime = rewinding ? 0 : tTime % dur ? dur : tTime;
15473                this._lock = 1;
15474                this.render(prevTime || (isYoyo ? 0 : _roundPrecise(iteration * cycleDuration)), suppressEvents, !dur)._lock = 0;
15475                this._tTime = tTime;
15476                !suppressEvents && this.parent && _callback(this, "onRepeat");
15477                if (this.vars.repeatRefresh && !isYoyo) {
15478                  this.invalidate()._lock = 1;
15479                  prevIteration = iteration;
15480                }
15481                if (prevTime && prevTime !== this._time || prevPaused !== !this._ts || this.vars.onRepeat && !this.parent && !this._act) {
15482                  return this;
15483                }
15484                dur = this._dur;
15485                tDur = this._tDur;
15486                if (doesWrap) {
15487                  this._lock = 2;
15488                  prevTime = rewinding ? dur : -1e-4;
15489                  this.render(prevTime, true);
15490                  this.vars.repeatRefresh && !isYoyo && this.invalidate();
15491                }
15492                this._lock = 0;
15493                if (!this._ts && !prevPaused) {
15494                  return this;
15495                }
15496                _propagateYoyoEase(this, isYoyo);
15497              }
15498            }
15499            if (this._hasPause && !this._forcing && this._lock < 2) {
15500              pauseTween = _findNextPauseTween(this, _roundPrecise(prevTime), _roundPrecise(time));
15501              if (pauseTween) {
15502                tTime -= time - (time = pauseTween._start);
15503              }
15504            }
15505            this._tTime = tTime;
15506            this._time = time;
15507            this._act = !timeScale;
15508            if (!this._initted) {
15509              this._onUpdate = this.vars.onUpdate;
15510              this._initted = 1;
15511              this._zTime = totalTime;
15512              prevTime = 0;
15513            }
15514            if (!prevTime && tTime && dur && !suppressEvents && !prevIteration) {
15515              _callback(this, "onStart");
15516              if (this._tTime !== tTime) {
15517                return this;
15518              }
15519            }
15520            if (time >= prevTime && totalTime >= 0) {
15521              child = this._first;
15522              while (child) {
15523                next = child._next;
15524                if ((child._act || time >= child._start) && child._ts && pauseTween !== child) {
15525                  if (child.parent !== this) {
15526                    return this.render(totalTime, suppressEvents, force);
15527                  }
15528                  child.render(child._ts > 0 ? (time - child._start) * child._ts : (child._dirty ? child.totalDuration() : child._tDur) + (time - child._start) * child._ts, suppressEvents, force);
15529                  if (time !== this._time || !this._ts && !prevPaused) {
15530                    pauseTween = 0;
15531                    next && (tTime += this._zTime = -_tinyNum);
15532                    break;
15533                  }
15534                }
15535                child = next;
15536              }
15537            } else {
15538              child = this._last;
15539              var adjustedTime = totalTime < 0 ? totalTime : time;
15540              while (child) {
15541                next = child._prev;
15542                if ((child._act || adjustedTime <= child._end) && child._ts && pauseTween !== child) {
15543                  if (child.parent !== this) {
15544                    return this.render(totalTime, suppressEvents, force);
15545                  }
15546                  child.render(child._ts > 0 ? (adjustedTime - child._start) * child._ts : (child._dirty ? child.totalDuration() : child._tDur) + (adjustedTime - child._start) * child._ts, suppressEvents, force || _reverting && _isRevertWorthy(child));
15547                  if (time !== this._time || !this._ts && !prevPaused) {
15548                    pauseTween = 0;
15549                    next && (tTime += this._zTime = adjustedTime ? -_tinyNum : _tinyNum);
15550                    break;
15551                  }
15552                }
15553                child = next;
15554              }
15555            }
15556            if (pauseTween && !suppressEvents) {
15557              this.pause();
15558              pauseTween.render(time >= prevTime ? 0 : -_tinyNum)._zTime = time >= prevTime ? 1 : -1;
15559              if (this._ts) {
15560                this._start = prevStart;
15561                _setEnd(this);
15562                return this.render(totalTime, suppressEvents, force);
15563              }
15564            }
15565            this._onUpdate && !suppressEvents && _callback(this, "onUpdate", true);
15566            if (tTime === tDur && this._tTime >= this.totalDuration() || !tTime && prevTime) {
15567              if (prevStart === this._start || Math.abs(timeScale) !== Math.abs(this._ts)) {
15568                if (!this._lock) {
15569                  (totalTime || !dur) && (tTime === tDur && this._ts > 0 || !tTime && this._ts < 0) && _removeFromParent(this, 1);
15570                  if (!suppressEvents && !(totalTime < 0 && !prevTime) && (tTime || prevTime || !tDur)) {
15571                    _callback(this, tTime === tDur && totalTime >= 0 ? "onComplete" : "onReverseComplete", true);
15572                    this._prom && !(tTime < tDur && this.timeScale() > 0) && this._prom();
15573                  }
15574                }
15575              }
15576            }
15577          }
15578          return this;
15579        };
15580        _proto2.add = function add(child, position) {
15581          var _this2 = this;
15582          _isNumber(position) || (position = _parsePosition(this, position, child));
15583          if (!(child instanceof Animation)) {
15584            if (_isArray(child)) {
15585              child.forEach(function(obj) {
15586                return _this2.add(obj, position);
15587              });
15588              return this;
15589            }
15590            if (_isString(child)) {
15591              return this.addLabel(child, position);
15592            }
15593            if (_isFunction(child)) {
15594              child = Tween.delayedCall(0, child);
15595            } else {
15596              return this;
15597            }
15598          }
15599          return this !== child ? _addToTimeline(this, child, position) : this;
15600        };
15601        _proto2.getChildren = function getChildren(nested, tweens, timelines, ignoreBeforeTime) {
15602          if (nested === void 0) {
15603            nested = true;
15604          }
15605          if (tweens === void 0) {
15606            tweens = true;
15607          }
15608          if (timelines === void 0) {
15609            timelines = true;
15610          }
15611          if (ignoreBeforeTime === void 0) {
15612            ignoreBeforeTime = -_bigNum;
15613          }
15614          var a8 = [], child = this._first;
15615          while (child) {
15616            if (child._start >= ignoreBeforeTime) {
15617              if (child instanceof Tween) {
15618                tweens && a8.push(child);
15619              } else {
15620                timelines && a8.push(child);
15621                nested && a8.push.apply(a8, child.getChildren(true, tweens, timelines));
15622              }
15623            }
15624            child = child._next;
15625          }
15626          return a8;
15627        };
15628        _proto2.getById = function getById2(id) {
15629          var animations = this.getChildren(1, 1, 1), i10 = animations.length;
15630          while (i10--) {
15631            if (animations[i10].vars.id === id) {
15632              return animations[i10];
15633            }
15634          }
15635        };
15636        _proto2.remove = function remove(child) {
15637          if (_isString(child)) {
15638            return this.removeLabel(child);
15639          }
15640          if (_isFunction(child)) {
15641            return this.killTweensOf(child);
15642          }
15643          child.parent === this && _removeLinkedListItem(this, child);
15644          if (child === this._recent) {
15645            this._recent = this._last;
15646          }
15647          return _uncache(this);
15648        };
15649        _proto2.totalTime = function totalTime(_totalTime2, suppressEvents) {
15650          if (!arguments.length) {
15651            return this._tTime;
15652          }
15653          this._forcing = 1;
15654          if (!this._dp && this._ts) {
15655            this._start = _roundPrecise(_ticker.time - (this._ts > 0 ? _totalTime2 / this._ts : (this.totalDuration() - _totalTime2) / -this._ts));
15656          }
15657          _Animation.prototype.totalTime.call(this, _totalTime2, suppressEvents);
15658          this._forcing = 0;
15659          return this;
15660        };
15661        _proto2.addLabel = function addLabel(label, position) {
15662          this.labels[label] = _parsePosition(this, position);
15663          return this;
15664        };
15665        _proto2.removeLabel = function removeLabel(label) {
15666          delete this.labels[label];
15667          return this;
15668        };
15669        _proto2.addPause = function addPause(position, callback, params) {
15670          var t11 = Tween.delayedCall(0, callback || _emptyFunc, params);
15671          t11.data = "isPause";
15672          this._hasPause = 1;
15673          return _addToTimeline(this, t11, _parsePosition(this, position));
15674        };
15675        _proto2.removePause = function removePause(position) {
15676          var child = this._first;
15677          position = _parsePosition(this, position);
15678          while (child) {
15679            if (child._start === position && child.data === "isPause") {
15680              _removeFromParent(child);
15681            }
15682            child = child._next;
15683          }
15684        };
15685        _proto2.killTweensOf = function killTweensOf(targets, props, onlyActive) {
15686          var tweens = this.getTweensOf(targets, onlyActive), i10 = tweens.length;
15687          while (i10--) {
15688            _overwritingTween !== tweens[i10] && tweens[i10].kill(targets, props);
15689          }
15690          return this;
15691        };
15692        _proto2.getTweensOf = function getTweensOf2(targets, onlyActive) {
15693          var a8 = [], parsedTargets = toArray(targets), child = this._first, isGlobalTime = _isNumber(onlyActive), children;
15694          while (child) {
15695            if (child instanceof Tween) {
15696              if (_arrayContainsAny(child._targets, parsedTargets) && (isGlobalTime ? (!_overwritingTween || child._initted && child._ts) && child.globalTime(0) <= onlyActive && child.globalTime(child.totalDuration()) > onlyActive : !onlyActive || child.isActive())) {
15697                a8.push(child);
15698              }
15699            } else if ((children = child.getTweensOf(parsedTargets, onlyActive)).length) {
15700              a8.push.apply(a8, children);
15701            }
15702            child = child._next;
15703          }
15704          return a8;
15705        };
15706        _proto2.tweenTo = function tweenTo(position, vars) {
15707          vars = vars || {};
15708          var tl = this, endTime = _parsePosition(tl, position), _vars = vars, startAt = _vars.startAt, _onStart = _vars.onStart, onStartParams = _vars.onStartParams, immediateRender = _vars.immediateRender, initted, tween = Tween.to(tl, _setDefaults({
15709            ease: vars.ease || "none",
15710            lazy: false,
15711            immediateRender: false,
15712            time: endTime,
15713            overwrite: "auto",
15714            duration: vars.duration || Math.abs((endTime - (startAt && "time" in startAt ? startAt.time : tl._time)) / tl.timeScale()) || _tinyNum,
15715            onStart: function onStart() {
15716              tl.pause();
15717              if (!initted) {
15718                var duration = vars.duration || Math.abs((endTime - (startAt && "time" in startAt ? startAt.time : tl._time)) / tl.timeScale());
15719                tween._dur !== duration && _setDuration(tween, duration, 0, 1).render(tween._time, true, true);
15720                initted = 1;
15721              }
15722              _onStart && _onStart.apply(tween, onStartParams || []);
15723            }
15724          }, vars));
15725          return immediateRender ? tween.render(0) : tween;
15726        };
15727        _proto2.tweenFromTo = function tweenFromTo(fromPosition, toPosition, vars) {
15728          return this.tweenTo(toPosition, _setDefaults({
15729            startAt: {
15730              time: _parsePosition(this, fromPosition)
15731            }
15732          }, vars));
15733        };
15734        _proto2.recent = function recent() {
15735          return this._recent;
15736        };
15737        _proto2.nextLabel = function nextLabel(afterTime) {
15738          if (afterTime === void 0) {
15739            afterTime = this._time;
15740          }
15741          return _getLabelInDirection(this, _parsePosition(this, afterTime));
15742        };
15743        _proto2.previousLabel = function previousLabel(beforeTime) {
15744          if (beforeTime === void 0) {
15745            beforeTime = this._time;
15746          }
15747          return _getLabelInDirection(this, _parsePosition(this, beforeTime), 1);
15748        };
15749        _proto2.currentLabel = function currentLabel(value) {
15750          return arguments.length ? this.seek(value, true) : this.previousLabel(this._time + _tinyNum);
15751        };
15752        _proto2.shiftChildren = function shiftChildren(amount, adjustLabels, ignoreBeforeTime) {
15753          if (ignoreBeforeTime === void 0) {
15754            ignoreBeforeTime = 0;
15755          }
15756          var child = this._first, labels = this.labels, p2;
15757          amount = _roundPrecise(amount);
15758          while (child) {
15759            if (child._start >= ignoreBeforeTime) {
15760              child._start += amount;
15761              child._end += amount;
15762            }
15763            child = child._next;
15764          }
15765          if (adjustLabels) {
15766            for (p2 in labels) {
15767              if (labels[p2] >= ignoreBeforeTime) {
15768                labels[p2] += amount;
15769              }
15770            }
15771          }
15772          return _uncache(this);
15773        };
15774        _proto2.invalidate = function invalidate(soft) {
15775          var child = this._first;
15776          this._lock = 0;
15777          while (child) {
15778            child.invalidate(soft);
15779            child = child._next;
15780          }
15781          return _Animation.prototype.invalidate.call(this, soft);
15782        };
15783        _proto2.clear = function clear(includeLabels) {
15784          if (includeLabels === void 0) {
15785            includeLabels = true;
15786          }
15787          var child = this._first, next;
15788          while (child) {
15789            next = child._next;
15790            this.remove(child);
15791            child = next;
15792          }
15793          this._dp && (this._time = this._tTime = this._pTime = 0);
15794          includeLabels && (this.labels = {});
15795          return _uncache(this);
15796        };
15797        _proto2.totalDuration = function totalDuration(value) {
15798          var max = 0, self2 = this, child = self2._last, prevStart = _bigNum, prev, start, parent;
15799          if (arguments.length) {
15800            return self2.timeScale((self2._repeat < 0 ? self2.duration() : self2.totalDuration()) / (self2.reversed() ? -value : value));
15801          }
15802          if (self2._dirty) {
15803            parent = self2.parent;
15804            while (child) {
15805              prev = child._prev;
15806              child._dirty && child.totalDuration();
15807              start = child._start;
15808              if (start > prevStart && self2._sort && child._ts && !self2._lock) {
15809                self2._lock = 1;
15810                _addToTimeline(self2, child, start - child._delay, 1)._lock = 0;
15811              } else {
15812                prevStart = start;
15813              }
15814              if (start < 0 && child._ts) {
15815                max -= start;
15816                if (!parent && !self2._dp || parent && parent.smoothChildTiming) {
15817                  self2._start += _roundPrecise(start / self2._ts);
15818                  self2._time -= start;
15819                  self2._tTime -= start;
15820                }
15821                self2.shiftChildren(-start, false, -Infinity);
15822                prevStart = 0;
15823              }
15824              child._end > max && child._ts && (max = child._end);
15825              child = prev;
15826            }
15827            _setDuration(self2, self2 === _globalTimeline && self2._time > max ? self2._time : max, 1, 1);
15828            self2._dirty = 0;
15829          }
15830          return self2._tDur;
15831        };
15832        Timeline2.updateRoot = function updateRoot(time) {
15833          if (_globalTimeline._ts) {
15834            _lazySafeRender(_globalTimeline, _parentToChildTotalTime(time, _globalTimeline));
15835            _lastRenderedFrame = _ticker.frame;
15836          }
15837          if (_ticker.frame >= _nextGCFrame) {
15838            _nextGCFrame += _config.autoSleep || 120;
15839            var child = _globalTimeline._first;
15840            if (!child || !child._ts) {
15841              if (_config.autoSleep && _ticker._listeners.length < 2) {
15842                while (child && !child._ts) {
15843                  child = child._next;
15844                }
15845                child || _ticker.sleep();
15846              }
15847            }
15848          }
15849        };
15850        return Timeline2;
15851      })(Animation);
15852      _setDefaults(Timeline.prototype, {
15853        _lock: 0,
15854        _hasPause: 0,
15855        _forcing: 0
15856      });
15857      _addComplexStringPropTween = function _addComplexStringPropTween2(target, prop, start, end, setter, stringFilter, funcParam) {
15858        var pt = new PropTween(this._pt, target, prop, 0, 1, _renderComplexString, null, setter), index = 0, matchIndex = 0, result, startNums, color, endNum, chunk, startNum, hasRandom, a8;
15859        pt.b = start;
15860        pt.e = end;
15861        start += "";
15862        end += "";
15863        if (hasRandom = ~end.indexOf("random(")) {
15864          end = _replaceRandom(end);
15865        }
15866        if (stringFilter) {
15867          a8 = [start, end];
15868          stringFilter(a8, target, prop);
15869          start = a8[0];
15870          end = a8[1];
15871        }
15872        startNums = start.match(_complexStringNumExp) || [];
15873        while (result = _complexStringNumExp.exec(end)) {
15874          endNum = result[0];
15875          chunk = end.substring(index, result.index);
15876          if (color) {
15877            color = (color + 1) % 5;
15878          } else if (chunk.substr(-5) === "rgba(") {
15879            color = 1;
15880          }
15881          if (endNum !== startNums[matchIndex++]) {
15882            startNum = parseFloat(startNums[matchIndex - 1]) || 0;
15883            pt._pt = {
15884              _next: pt._pt,
15885              p: chunk || matchIndex === 1 ? chunk : ",",
15886              //note: SVG spec allows omission of comma/space when a negative sign is wedged between two numbers, like 2.5-5.3 instead of 2.5,-5.3 but when tweening, the negative value may switch to positive, so we insert the comma just in case.
15887              s: startNum,
15888              c: endNum.charAt(1) === "=" ? _parseRelative(startNum, endNum) - startNum : parseFloat(endNum) - startNum,
15889              m: color && color < 4 ? Math.round : 0
15890            };
15891            index = _complexStringNumExp.lastIndex;
15892          }
15893        }
15894        pt.c = index < end.length ? end.substring(index, end.length) : "";
15895        pt.fp = funcParam;
15896        if (_relExp.test(end) || hasRandom) {
15897          pt.e = 0;
15898        }
15899        this._pt = pt;
15900        return pt;
15901      };
15902      _addPropTween = function _addPropTween2(target, prop, start, end, index, targets, modifier, stringFilter, funcParam, optional) {
15903        _isFunction(end) && (end = end(index || 0, target, targets));
15904        var currentValue = target[prop], parsedStart = start !== "get" ? start : !_isFunction(currentValue) ? currentValue : funcParam ? target[prop.indexOf("set") || !_isFunction(target["get" + prop.substr(3)]) ? prop : "get" + prop.substr(3)](funcParam) : target[prop](), setter = !_isFunction(currentValue) ? _setterPlain : funcParam ? _setterFuncWithParam : _setterFunc, pt;
15905        if (_isString(end)) {
15906          if (~end.indexOf("random(")) {
15907            end = _replaceRandom(end);
15908          }
15909          if (end.charAt(1) === "=") {
15910            pt = _parseRelative(parsedStart, end) + (getUnit(parsedStart) || 0);
15911            if (pt || pt === 0) {
15912              end = pt;
15913            }
15914          }
15915        }
15916        if (!optional || parsedStart !== end || _forceAllPropTweens) {
15917          if (!isNaN(parsedStart * end) && end !== "") {
15918            pt = new PropTween(this._pt, target, prop, +parsedStart || 0, end - (parsedStart || 0), typeof currentValue === "boolean" ? _renderBoolean : _renderPlain, 0, setter);
15919            funcParam && (pt.fp = funcParam);
15920            modifier && pt.modifier(modifier, this, target);
15921            return this._pt = pt;
15922          }
15923          !currentValue && !(prop in target) && _missingPlugin(prop, end);
15924          return _addComplexStringPropTween.call(this, target, prop, parsedStart, end, setter, stringFilter || _config.stringFilter, funcParam);
15925        }
15926      };
15927      _processVars = function _processVars2(vars, index, target, targets, tween) {
15928        _isFunction(vars) && (vars = _parseFuncOrString(vars, tween, index, target, targets));
15929        if (!_isObject(vars) || vars.style && vars.nodeType || _isArray(vars) || _isTypedArray(vars)) {
15930          return _isString(vars) ? _parseFuncOrString(vars, tween, index, target, targets) : vars;
15931        }
15932        var copy = {}, p2;
15933        for (p2 in vars) {
15934          copy[p2] = _parseFuncOrString(vars[p2], tween, index, target, targets);
15935        }
15936        return copy;
15937      };
15938      _checkPlugin = function _checkPlugin2(property, vars, tween, index, target, targets) {
15939        var plugin, pt, ptLookup, i10;
15940        if (_plugins[property] && (plugin = new _plugins[property]()).init(target, plugin.rawVars ? vars[property] : _processVars(vars[property], index, target, targets, tween), tween, index, targets) !== false) {
15941          tween._pt = pt = new PropTween(tween._pt, target, property, 0, 1, plugin.render, plugin, 0, plugin.priority);
15942          if (tween !== _quickTween) {
15943            ptLookup = tween._ptLookup[tween._targets.indexOf(target)];
15944            i10 = plugin._props.length;
15945            while (i10--) {
15946              ptLookup[plugin._props[i10]] = pt;
15947            }
15948          }
15949        }
15950        return plugin;
15951      };
15952      _initTween = function _initTween2(tween, time, tTime) {
15953        var vars = tween.vars, ease = vars.ease, startAt = vars.startAt, immediateRender = vars.immediateRender, lazy = vars.lazy, onUpdate = vars.onUpdate, runBackwards = vars.runBackwards, yoyoEase = vars.yoyoEase, keyframes = vars.keyframes, autoRevert = vars.autoRevert, dur = tween._dur, prevStartAt = tween._startAt, targets = tween._targets, parent = tween.parent, fullTargets = parent && parent.data === "nested" ? parent.vars.targets : targets, autoOverwrite = tween._overwrite === "auto" && !_suppressOverwrites, tl = tween.timeline, cleanVars, i10, p2, pt, target, hasPriority, gsData, harness, plugin, ptLookup, index, harnessVars, overwritten;
15954        tl && (!keyframes || !ease) && (ease = "none");
15955        tween._ease = _parseEase(ease, _defaults.ease);
15956        tween._yEase = yoyoEase ? _invertEase(_parseEase(yoyoEase === true ? ease : yoyoEase, _defaults.ease)) : 0;
15957        if (yoyoEase && tween._yoyo && !tween._repeat) {
15958          yoyoEase = tween._yEase;
15959          tween._yEase = tween._ease;
15960          tween._ease = yoyoEase;
15961        }
15962        tween._from = !tl && !!vars.runBackwards;
15963        if (!tl || keyframes && !vars.stagger) {
15964          harness = targets[0] ? _getCache(targets[0]).harness : 0;
15965          harnessVars = harness && vars[harness.prop];
15966          cleanVars = _copyExcluding(vars, _reservedProps);
15967          if (prevStartAt) {
15968            prevStartAt._zTime < 0 && prevStartAt.progress(1);
15969            time < 0 && runBackwards && immediateRender && !autoRevert ? prevStartAt.render(-1, true) : prevStartAt.revert(runBackwards && dur ? _revertConfigNoKill : _startAtRevertConfig);
15970            prevStartAt._lazy = 0;
15971          }
15972          if (startAt) {
15973            _removeFromParent(tween._startAt = Tween.set(targets, _setDefaults({
15974              data: "isStart",
15975              overwrite: false,
15976              parent,
15977              immediateRender: true,
15978              lazy: !prevStartAt && _isNotFalse(lazy),
15979              startAt: null,
15980              delay: 0,
15981              onUpdate: onUpdate && function() {
15982                return _callback(tween, "onUpdate");
15983              },
15984              stagger: 0
15985            }, startAt)));
15986            tween._startAt._dp = 0;
15987            tween._startAt._sat = tween;
15988            time < 0 && (_reverting || !immediateRender && !autoRevert) && tween._startAt.revert(_revertConfigNoKill);
15989            if (immediateRender) {
15990              if (dur && time <= 0 && tTime <= 0) {
15991                time && (tween._zTime = time);
15992                return;
15993              }
15994            }
15995          } else if (runBackwards && dur) {
15996            if (!prevStartAt) {
15997              time && (immediateRender = false);
15998              p2 = _setDefaults({
15999                overwrite: false,
16000                data: "isFromStart",
16001                //we tag the tween with as "isFromStart" so that if [inside a plugin] we need to only do something at the very END of a tween, we have a way of identifying this tween as merely the one that's setting the beginning values for a "from()" tween. For example, clearProps in CSSPlugin should only get applied at the very END of a tween and without this tag, from(...{height:100, clearProps:"height", delay:1}) would wipe the height at the beginning of the tween and after 1 second, it'd kick back in.
16002                lazy: immediateRender && !prevStartAt && _isNotFalse(lazy),
16003                immediateRender,
16004                //zero-duration tweens render immediately by default, but if we're not specifically instructed to render this tween immediately, we should skip this and merely _init() to record the starting values (rendering them immediately would push them to completion which is wasteful in that case - we'd have to render(-1) immediately after)
16005                stagger: 0,
16006                parent
16007                //ensures that nested tweens that had a stagger are handled properly, like gsap.from(".class", {y: gsap.utils.wrap([-100,100]), stagger: 0.5})
16008              }, cleanVars);
16009              harnessVars && (p2[harness.prop] = harnessVars);
16010              _removeFromParent(tween._startAt = Tween.set(targets, p2));
16011              tween._startAt._dp = 0;
16012              tween._startAt._sat = tween;
16013              time < 0 && (_reverting ? tween._startAt.revert(_revertConfigNoKill) : tween._startAt.render(-1, true));
16014              tween._zTime = time;
16015              if (!immediateRender) {
16016                _initTween2(tween._startAt, _tinyNum, _tinyNum);
16017              } else if (!time) {
16018                return;
16019              }
16020            }
16021          }
16022          tween._pt = tween._ptCache = 0;
16023          lazy = dur && _isNotFalse(lazy) || lazy && !dur;
16024          for (i10 = 0; i10 < targets.length; i10++) {
16025            target = targets[i10];
16026            gsData = target._gsap || _harness(targets)[i10]._gsap;
16027            tween._ptLookup[i10] = ptLookup = {};
16028            _lazyLookup[gsData.id] && _lazyTweens.length && _lazyRender();
16029            index = fullTargets === targets ? i10 : fullTargets.indexOf(target);
16030            if (harness && (plugin = new harness()).init(target, harnessVars || cleanVars, tween, index, fullTargets) !== false) {
16031              tween._pt = pt = new PropTween(tween._pt, target, plugin.name, 0, 1, plugin.render, plugin, 0, plugin.priority);
16032              plugin._props.forEach(function(name) {
16033                ptLookup[name] = pt;
16034              });
16035              plugin.priority && (hasPriority = 1);
16036            }
16037            if (!harness || harnessVars) {
16038              for (p2 in cleanVars) {
16039                if (_plugins[p2] && (plugin = _checkPlugin(p2, cleanVars, tween, index, target, fullTargets))) {
16040                  plugin.priority && (hasPriority = 1);
16041                } else {
16042                  ptLookup[p2] = pt = _addPropTween.call(tween, target, p2, "get", cleanVars[p2], index, fullTargets, 0, vars.stringFilter);
16043                }
16044              }
16045            }
16046            tween._op && tween._op[i10] && tween.kill(target, tween._op[i10]);
16047            if (autoOverwrite && tween._pt) {
16048              _overwritingTween = tween;
16049              _globalTimeline.killTweensOf(target, ptLookup, tween.globalTime(time));
16050              overwritten = !tween.parent;
16051              _overwritingTween = 0;
16052            }
16053            tween._pt && lazy && (_lazyLookup[gsData.id] = 1);
16054          }
16055          hasPriority && _sortPropTweensByPriority(tween);
16056          tween._onInit && tween._onInit(tween);
16057        }
16058        tween._onUpdate = onUpdate;
16059        tween._initted = (!tween._op || tween._pt) && !overwritten;
16060        keyframes && time <= 0 && tl.render(_bigNum, true, true);
16061      };
16062      _updatePropTweens = function _updatePropTweens2(tween, property, value, start, startIsRelative, ratio, time, skipRecursion) {
16063        var ptCache = (tween._pt && tween._ptCache || (tween._ptCache = {}))[property], pt, rootPT, lookup, i10;
16064        if (!ptCache) {
16065          ptCache = tween._ptCache[property] = [];
16066          lookup = tween._ptLookup;
16067          i10 = tween._targets.length;
16068          while (i10--) {
16069            pt = lookup[i10][property];
16070            if (pt && pt.d && pt.d._pt) {
16071              pt = pt.d._pt;
16072              while (pt && pt.p !== property && pt.fp !== property) {
16073                pt = pt._next;
16074              }
16075            }
16076            if (!pt) {
16077              _forceAllPropTweens = 1;
16078              tween.vars[property] = "+=0";
16079              _initTween(tween, time);
16080              _forceAllPropTweens = 0;
16081              return skipRecursion ? _warn(property + " not eligible for reset") : 1;
16082            }
16083            ptCache.push(pt);
16084          }
16085        }
16086        i10 = ptCache.length;
16087        while (i10--) {
16088          rootPT = ptCache[i10];
16089          pt = rootPT._pt || rootPT;
16090          pt.s = (start || start === 0) && !startIsRelative ? start : pt.s + (start || 0) + ratio * pt.c;
16091          pt.c = value - pt.s;
16092          rootPT.e && (rootPT.e = _round(value) + getUnit(rootPT.e));
16093          rootPT.b && (rootPT.b = pt.s + getUnit(rootPT.b));
16094        }
16095      };
16096      _addAliasesToVars = function _addAliasesToVars2(targets, vars) {
16097        var harness = targets[0] ? _getCache(targets[0]).harness : 0, propertyAliases = harness && harness.aliases, copy, p2, i10, aliases;
16098        if (!propertyAliases) {
16099          return vars;
16100        }
16101        copy = _merge({}, vars);
16102        for (p2 in propertyAliases) {
16103          if (p2 in copy) {
16104            aliases = propertyAliases[p2].split(",");
16105            i10 = aliases.length;
16106            while (i10--) {
16107              copy[aliases[i10]] = copy[p2];
16108            }
16109          }
16110        }
16111        return copy;
16112      };
16113      _parseKeyframe = function _parseKeyframe2(prop, obj, allProps, easeEach) {
16114        var ease = obj.ease || easeEach || "power1.inOut", p2, a8;
16115        if (_isArray(obj)) {
16116          a8 = allProps[prop] || (allProps[prop] = []);
16117          obj.forEach(function(value, i10) {
16118            return a8.push({
16119              t: i10 / (obj.length - 1) * 100,
16120              v: value,
16121              e: ease
16122            });
16123          });
16124        } else {
16125          for (p2 in obj) {
16126            a8 = allProps[p2] || (allProps[p2] = []);
16127            p2 === "ease" || a8.push({
16128              t: parseFloat(prop),
16129              v: obj[p2],
16130              e: ease
16131            });
16132          }
16133        }
16134      };
16135      _parseFuncOrString = function _parseFuncOrString2(value, tween, i10, target, targets) {
16136        return _isFunction(value) ? value.call(tween, i10, target, targets) : _isString(value) && ~value.indexOf("random(") ? _replaceRandom(value) : value;
16137      };
16138      _staggerTweenProps = _callbackNames + "repeat,repeatDelay,yoyo,repeatRefresh,yoyoEase,autoRevert";
16139      _staggerPropsToSkip = {};
16140      _forEachName(_staggerTweenProps + ",id,stagger,delay,duration,paused,scrollTrigger", function(name) {
16141        return _staggerPropsToSkip[name] = 1;
16142      });
16143      Tween = /* @__PURE__ */ (function(_Animation2) {
16144        _inheritsLoose(Tween2, _Animation2);
16145        function Tween2(targets, vars, position, skipInherit) {
16146          var _this3;
16147          if (typeof vars === "number") {
16148            position.duration = vars;
16149            vars = position;
16150            position = null;
16151          }
16152          _this3 = _Animation2.call(this, skipInherit ? vars : _inheritDefaults(vars)) || this;
16153          var _this3$vars = _this3.vars, duration = _this3$vars.duration, delay = _this3$vars.delay, immediateRender = _this3$vars.immediateRender, stagger = _this3$vars.stagger, overwrite = _this3$vars.overwrite, keyframes = _this3$vars.keyframes, defaults2 = _this3$vars.defaults, scrollTrigger = _this3$vars.scrollTrigger, yoyoEase = _this3$vars.yoyoEase, parent = vars.parent || _globalTimeline, parsedTargets = (_isArray(targets) || _isTypedArray(targets) ? _isNumber(targets[0]) : "length" in vars) ? [targets] : toArray(targets), tl, i10, copy, l10, p2, curTarget, staggerFunc, staggerVarsToMerge;
16154          _this3._targets = parsedTargets.length ? _harness(parsedTargets) : _warn("GSAP target " + targets + " not found. https://gsap.com", !_config.nullTargetWarn) || [];
16155          _this3._ptLookup = [];
16156          _this3._overwrite = overwrite;
16157          if (keyframes || stagger || _isFuncOrString(duration) || _isFuncOrString(delay)) {
16158            vars = _this3.vars;
16159            tl = _this3.timeline = new Timeline({
16160              data: "nested",
16161              defaults: defaults2 || {},
16162              targets: parent && parent.data === "nested" ? parent.vars.targets : parsedTargets
16163            });
16164            tl.kill();
16165            tl.parent = tl._dp = _assertThisInitialized(_this3);
16166            tl._start = 0;
16167            if (stagger || _isFuncOrString(duration) || _isFuncOrString(delay)) {
16168              l10 = parsedTargets.length;
16169              staggerFunc = stagger && distribute(stagger);
16170              if (_isObject(stagger)) {
16171                for (p2 in stagger) {
16172                  if (~_staggerTweenProps.indexOf(p2)) {
16173                    staggerVarsToMerge || (staggerVarsToMerge = {});
16174                    staggerVarsToMerge[p2] = stagger[p2];
16175                  }
16176                }
16177              }
16178              for (i10 = 0; i10 < l10; i10++) {
16179                copy = _copyExcluding(vars, _staggerPropsToSkip);
16180                copy.stagger = 0;
16181                yoyoEase && (copy.yoyoEase = yoyoEase);
16182                staggerVarsToMerge && _merge(copy, staggerVarsToMerge);
16183                curTarget = parsedTargets[i10];
16184                copy.duration = +_parseFuncOrString(duration, _assertThisInitialized(_this3), i10, curTarget, parsedTargets);
16185                copy.delay = (+_parseFuncOrString(delay, _assertThisInitialized(_this3), i10, curTarget, parsedTargets) || 0) - _this3._delay;
16186                if (!stagger && l10 === 1 && copy.delay) {
16187                  _this3._delay = delay = copy.delay;
16188                  _this3._start += delay;
16189                  copy.delay = 0;
16190                }
16191                tl.to(curTarget, copy, staggerFunc ? staggerFunc(i10, curTarget, parsedTargets) : 0);
16192                tl._ease = _easeMap.none;
16193              }
16194              tl.duration() ? duration = delay = 0 : _this3.timeline = 0;
16195            } else if (keyframes) {
16196              _inheritDefaults(_setDefaults(tl.vars.defaults, {
16197                ease: "none"
16198              }));
16199              tl._ease = _parseEase(keyframes.ease || vars.ease || "none");
16200              var time = 0, a8, kf, v3;
16201              if (_isArray(keyframes)) {
16202                keyframes.forEach(function(frame) {
16203                  return tl.to(parsedTargets, frame, ">");
16204                });
16205                tl.duration();
16206              } else {
16207                copy = {};
16208                for (p2 in keyframes) {
16209                  p2 === "ease" || p2 === "easeEach" || _parseKeyframe(p2, keyframes[p2], copy, keyframes.easeEach);
16210                }
16211                for (p2 in copy) {
16212                  a8 = copy[p2].sort(function(a9, b3) {
16213                    return a9.t - b3.t;
16214                  });
16215                  time = 0;
16216                  for (i10 = 0; i10 < a8.length; i10++) {
16217                    kf = a8[i10];
16218                    v3 = {
16219                      ease: kf.e,
16220                      duration: (kf.t - (i10 ? a8[i10 - 1].t : 0)) / 100 * duration
16221                    };
16222                    v3[p2] = kf.v;
16223                    tl.to(parsedTargets, v3, time);
16224                    time += v3.duration;
16225                  }
16226                }
16227                tl.duration() < duration && tl.to({}, {
16228                  duration: duration - tl.duration()
16229                });
16230              }
16231            }
16232            duration || _this3.duration(duration = tl.duration());
16233          } else {
16234            _this3.timeline = 0;
16235          }
16236          if (overwrite === true && !_suppressOverwrites) {
16237            _overwritingTween = _assertThisInitialized(_this3);
16238            _globalTimeline.killTweensOf(parsedTargets);
16239            _overwritingTween = 0;
16240          }
16241          _addToTimeline(parent, _assertThisInitialized(_this3), position);
16242          vars.reversed && _this3.reverse();
16243          vars.paused && _this3.paused(true);
16244          if (immediateRender || !duration && !keyframes && _this3._start === _roundPrecise(parent._time) && _isNotFalse(immediateRender) && _hasNoPausedAncestors(_assertThisInitialized(_this3)) && parent.data !== "nested") {
16245            _this3._tTime = -_tinyNum;
16246            _this3.render(Math.max(0, -delay) || 0);
16247          }
16248          scrollTrigger && _scrollTrigger(_assertThisInitialized(_this3), scrollTrigger);
16249          return _this3;
16250        }
16251        var _proto3 = Tween2.prototype;
16252        _proto3.render = function render3(totalTime, suppressEvents, force) {
16253          var prevTime = this._time, tDur = this._tDur, dur = this._dur, isNegative = totalTime < 0, tTime = totalTime > tDur - _tinyNum && !isNegative ? tDur : totalTime < _tinyNum ? 0 : totalTime, time, pt, iteration, cycleDuration, prevIteration, isYoyo, ratio, timeline2, yoyoEase;
16254          if (!dur) {
16255            _renderZeroDurationTween(this, totalTime, suppressEvents, force);
16256          } else if (tTime !== this._tTime || !totalTime || force || !this._initted && this._tTime || this._startAt && this._zTime < 0 !== isNegative || this._lazy) {
16257            time = tTime;
16258            timeline2 = this.timeline;
16259            if (this._repeat) {
16260              cycleDuration = dur + this._rDelay;
16261              if (this._repeat < -1 && isNegative) {
16262                return this.totalTime(cycleDuration * 100 + totalTime, suppressEvents, force);
16263              }
16264              time = _roundPrecise(tTime % cycleDuration);
16265              if (tTime === tDur) {
16266                iteration = this._repeat;
16267                time = dur;
16268              } else {
16269                prevIteration = _roundPrecise(tTime / cycleDuration);
16270                iteration = ~~prevIteration;
16271                if (iteration && iteration === prevIteration) {
16272                  time = dur;
16273                  iteration--;
16274                } else if (time > dur) {
16275                  time = dur;
16276                }
16277              }
16278              isYoyo = this._yoyo && iteration & 1;
16279              if (isYoyo) {
16280                yoyoEase = this._yEase;
16281                time = dur - time;
16282              }
16283              prevIteration = _animationCycle(this._tTime, cycleDuration);
16284              if (time === prevTime && !force && this._initted && iteration === prevIteration) {
16285                this._tTime = tTime;
16286                return this;
16287              }
16288              if (iteration !== prevIteration) {
16289                timeline2 && this._yEase && _propagateYoyoEase(timeline2, isYoyo);
16290                if (this.vars.repeatRefresh && !isYoyo && !this._lock && time !== cycleDuration && this._initted) {
16291                  this._lock = force = 1;
16292                  this.render(_roundPrecise(cycleDuration * iteration), true).invalidate()._lock = 0;
16293                }
16294              }
16295            }
16296            if (!this._initted) {
16297              if (_attemptInitTween(this, isNegative ? totalTime : time, force, suppressEvents, tTime)) {
16298                this._tTime = 0;
16299                return this;
16300              }
16301              if (prevTime !== this._time && !(force && this.vars.repeatRefresh && iteration !== prevIteration)) {
16302                return this;
16303              }
16304              if (dur !== this._dur) {
16305                return this.render(totalTime, suppressEvents, force);
16306              }
16307            }
16308            this._tTime = tTime;
16309            this._time = time;
16310            if (!this._act && this._ts) {
16311              this._act = 1;
16312              this._lazy = 0;
16313            }
16314            this.ratio = ratio = (yoyoEase || this._ease)(time / dur);
16315            if (this._from) {
16316              this.ratio = ratio = 1 - ratio;
16317            }
16318            if (!prevTime && tTime && !suppressEvents && !prevIteration) {
16319              _callback(this, "onStart");
16320              if (this._tTime !== tTime) {
16321                return this;
16322              }
16323            }
16324            pt = this._pt;
16325            while (pt) {
16326              pt.r(ratio, pt.d);
16327              pt = pt._next;
16328            }
16329            timeline2 && timeline2.render(totalTime < 0 ? totalTime : timeline2._dur * timeline2._ease(time / this._dur), suppressEvents, force) || this._startAt && (this._zTime = totalTime);
16330            if (this._onUpdate && !suppressEvents) {
16331              isNegative && _rewindStartAt(this, totalTime, suppressEvents, force);
16332              _callback(this, "onUpdate");
16333            }
16334            this._repeat && iteration !== prevIteration && this.vars.onRepeat && !suppressEvents && this.parent && _callback(this, "onRepeat");
16335            if ((tTime === this._tDur || !tTime) && this._tTime === tTime) {
16336              isNegative && !this._onUpdate && _rewindStartAt(this, totalTime, true, true);
16337              (totalTime || !dur) && (tTime === this._tDur && this._ts > 0 || !tTime && this._ts < 0) && _removeFromParent(this, 1);
16338              if (!suppressEvents && !(isNegative && !prevTime) && (tTime || prevTime || isYoyo)) {
16339                _callback(this, tTime === tDur ? "onComplete" : "onReverseComplete", true);
16340                this._prom && !(tTime < tDur && this.timeScale() > 0) && this._prom();
16341              }
16342            }
16343          }
16344          return this;
16345        };
16346        _proto3.targets = function targets() {
16347          return this._targets;
16348        };
16349        _proto3.invalidate = function invalidate(soft) {
16350          (!soft || !this.vars.runBackwards) && (this._startAt = 0);
16351          this._pt = this._op = this._onUpdate = this._lazy = this.ratio = 0;
16352          this._ptLookup = [];
16353          this.timeline && this.timeline.invalidate(soft);
16354          return _Animation2.prototype.invalidate.call(this, soft);
16355        };
16356        _proto3.resetTo = function resetTo(property, value, start, startIsRelative, skipRecursion) {
16357          _tickerActive || _ticker.wake();
16358          this._ts || this.play();
16359          var time = Math.min(this._dur, (this._dp._time - this._start) * this._ts), ratio;
16360          this._initted || _initTween(this, time);
16361          ratio = this._ease(time / this._dur);
16362          if (_updatePropTweens(this, property, value, start, startIsRelative, ratio, time, skipRecursion)) {
16363            return this.resetTo(property, value, start, startIsRelative, 1);
16364          }
16365          _alignPlayhead(this, 0);
16366          this.parent || _addLinkedListItem(this._dp, this, "_first", "_last", this._dp._sort ? "_start" : 0);
16367          return this.render(0);
16368        };
16369        _proto3.kill = function kill(targets, vars) {
16370          if (vars === void 0) {
16371            vars = "all";
16372          }
16373          if (!targets && (!vars || vars === "all")) {
16374            this._lazy = this._pt = 0;
16375            this.parent ? _interrupt(this) : this.scrollTrigger && this.scrollTrigger.kill(!!_reverting);
16376            return this;
16377          }
16378          if (this.timeline) {
16379            var tDur = this.timeline.totalDuration();
16380            this.timeline.killTweensOf(targets, vars, _overwritingTween && _overwritingTween.vars.overwrite !== true)._first || _interrupt(this);
16381            this.parent && tDur !== this.timeline.totalDuration() && _setDuration(this, this._dur * this.timeline._tDur / tDur, 0, 1);
16382            return this;
16383          }
16384          var parsedTargets = this._targets, killingTargets = targets ? toArray(targets) : parsedTargets, propTweenLookup = this._ptLookup, firstPT = this._pt, overwrittenProps, curLookup, curOverwriteProps, props, p2, pt, i10;
16385          if ((!vars || vars === "all") && _arraysMatch(parsedTargets, killingTargets)) {
16386            vars === "all" && (this._pt = 0);
16387            return _interrupt(this);
16388          }
16389          overwrittenProps = this._op = this._op || [];
16390          if (vars !== "all") {
16391            if (_isString(vars)) {
16392              p2 = {};
16393              _forEachName(vars, function(name) {
16394                return p2[name] = 1;
16395              });
16396              vars = p2;
16397            }
16398            vars = _addAliasesToVars(parsedTargets, vars);
16399          }
16400          i10 = parsedTargets.length;
16401          while (i10--) {
16402            if (~killingTargets.indexOf(parsedTargets[i10])) {
16403              curLookup = propTweenLookup[i10];
16404              if (vars === "all") {
16405                overwrittenProps[i10] = vars;
16406                props = curLookup;
16407                curOverwriteProps = {};
16408              } else {
16409                curOverwriteProps = overwrittenProps[i10] = overwrittenProps[i10] || {};
16410                props = vars;
16411              }
16412              for (p2 in props) {
16413                pt = curLookup && curLookup[p2];
16414                if (pt) {
16415                  if (!("kill" in pt.d) || pt.d.kill(p2) === true) {
16416                    _removeLinkedListItem(this, pt, "_pt");
16417                  }
16418                  delete curLookup[p2];
16419                }
16420                if (curOverwriteProps !== "all") {
16421                  curOverwriteProps[p2] = 1;
16422                }
16423              }
16424            }
16425          }
16426          this._initted && !this._pt && firstPT && _interrupt(this);
16427          return this;
16428        };
16429        Tween2.to = function to(targets, vars) {
16430          return new Tween2(targets, vars, arguments[2]);
16431        };
16432        Tween2.from = function from(targets, vars) {
16433          return _createTweenType(1, arguments);
16434        };
16435        Tween2.delayedCall = function delayedCall(delay, callback, params, scope) {
16436          return new Tween2(callback, 0, {
16437            immediateRender: false,
16438            lazy: false,
16439            overwrite: false,
16440            delay,
16441            onComplete: callback,
16442            onReverseComplete: callback,
16443            onCompleteParams: params,
16444            onReverseCompleteParams: params,
16445            callbackScope: scope
16446          });
16447        };
16448        Tween2.fromTo = function fromTo(targets, fromVars, toVars) {
16449          return _createTweenType(2, arguments);
16450        };
16451        Tween2.set = function set(targets, vars) {
16452          vars.duration = 0;
16453          vars.repeatDelay || (vars.repeat = 0);
16454          return new Tween2(targets, vars);
16455        };
16456        Tween2.killTweensOf = function killTweensOf(targets, props, onlyActive) {
16457          return _globalTimeline.killTweensOf(targets, props, onlyActive);
16458        };
16459        return Tween2;
16460      })(Animation);
16461      _setDefaults(Tween.prototype, {
16462        _targets: [],
16463        _lazy: 0,
16464        _startAt: 0,
16465        _op: 0,
16466        _onInit: 0
16467      });
16468      _forEachName("staggerTo,staggerFrom,staggerFromTo", function(name) {
16469        Tween[name] = function() {
16470          var tl = new Timeline(), params = _slice.call(arguments, 0);
16471          params.splice(name === "staggerFromTo" ? 5 : 4, 0, 0);
16472          return tl[name].apply(tl, params);
16473        };
16474      });
16475      _setterPlain = function _setterPlain2(target, property, value) {
16476        return target[property] = value;
16477      };
16478      _setterFunc = function _setterFunc2(target, property, value) {
16479        return target[property](value);
16480      };
16481      _setterFuncWithParam = function _setterFuncWithParam2(target, property, value, data) {
16482        return target[property](data.fp, value);
16483      };
16484      _setterAttribute = function _setterAttribute2(target, property, value) {
16485        return target.setAttribute(property, value);
16486      };
16487      _getSetter = function _getSetter2(target, property) {
16488        return _isFunction(target[property]) ? _setterFunc : _isUndefined(target[property]) && target.setAttribute ? _setterAttribute : _setterPlain;
16489      };
16490      _renderPlain = function _renderPlain2(ratio, data) {
16491        return data.set(data.t, data.p, Math.round((data.s + data.c * ratio) * 1e6) / 1e6, data);
16492      };
16493      _renderBoolean = function _renderBoolean2(ratio, data) {
16494        return data.set(data.t, data.p, !!(data.s + data.c * ratio), data);
16495      };
16496      _renderComplexString = function _renderComplexString2(ratio, data) {
16497        var pt = data._pt, s13 = "";
16498        if (!ratio && data.b) {
16499          s13 = data.b;
16500        } else if (ratio === 1 && data.e) {
16501          s13 = data.e;
16502        } else {
16503          while (pt) {
16504            s13 = pt.p + (pt.m ? pt.m(pt.s + pt.c * ratio) : Math.round((pt.s + pt.c * ratio) * 1e4) / 1e4) + s13;
16505            pt = pt._next;
16506          }
16507          s13 += data.c;
16508        }
16509        data.set(data.t, data.p, s13, data);
16510      };
16511      _renderPropTweens = function _renderPropTweens2(ratio, data) {
16512        var pt = data._pt;
16513        while (pt) {
16514          pt.r(ratio, pt.d);
16515          pt = pt._next;
16516        }
16517      };
16518      _addPluginModifier = function _addPluginModifier2(modifier, tween, target, property) {
16519        var pt = this._pt, next;
16520        while (pt) {
16521          next = pt._next;
16522          pt.p === property && pt.modifier(modifier, tween, target);
16523          pt = next;
16524        }
16525      };
16526      _killPropTweensOf = function _killPropTweensOf2(property) {
16527        var pt = this._pt, hasNonDependentRemaining, next;
16528        while (pt) {
16529          next = pt._next;
16530          if (pt.p === property && !pt.op || pt.op === property) {
16531            _removeLinkedListItem(this, pt, "_pt");
16532          } else if (!pt.dep) {
16533            hasNonDependentRemaining = 1;
16534          }
16535          pt = next;
16536        }
16537        return !hasNonDependentRemaining;
16538      };
16539      _setterWithModifier = function _setterWithModifier2(target, property, value, data) {
16540        data.mSet(target, property, data.m.call(data.tween, value, data.mt), data);
16541      };
16542      _sortPropTweensByPriority = function _sortPropTweensByPriority2(parent) {
16543        var pt = parent._pt, next, pt2, first, last;
16544        while (pt) {
16545          next = pt._next;
16546          pt2 = first;
16547          while (pt2 && pt2.pr > pt.pr) {
16548            pt2 = pt2._next;
16549          }
16550          if (pt._prev = pt2 ? pt2._prev : last) {
16551            pt._prev._next = pt;
16552          } else {
16553            first = pt;
16554          }
16555          if (pt._next = pt2) {
16556            pt2._prev = pt;
16557          } else {
16558            last = pt;
16559          }
16560          pt = next;
16561        }
16562        parent._pt = first;
16563      };
16564      PropTween = /* @__PURE__ */ (function() {
16565        function PropTween2(next, target, prop, start, change, renderer, data, setter, priority) {
16566          this.t = target;
16567          this.s = start;
16568          this.c = change;
16569          this.p = prop;
16570          this.r = renderer || _renderPlain;
16571          this.d = data || this;
16572          this.set = setter || _setterPlain;
16573          this.pr = priority || 0;
16574          this._next = next;
16575          if (next) {
16576            next._prev = this;
16577          }
16578        }
16579        var _proto4 = PropTween2.prototype;
16580        _proto4.modifier = function modifier(func, tween, target) {
16581          this.mSet = this.mSet || this.set;
16582          this.set = _setterWithModifier;
16583          this.m = func;
16584          this.mt = target;
16585          this.tween = tween;
16586        };
16587        return PropTween2;
16588      })();
16589      _forEachName(_callbackNames + "parent,duration,ease,delay,overwrite,runBackwards,startAt,yoyo,immediateRender,repeat,repeatDelay,data,paused,reversed,lazy,callbackScope,stringFilter,id,yoyoEase,stagger,inherit,repeatRefresh,keyframes,autoRevert,scrollTrigger", function(name) {
16590        return _reservedProps[name] = 1;
16591      });
16592      _globals.TweenMax = _globals.TweenLite = Tween;
16593      _globals.TimelineLite = _globals.TimelineMax = Timeline;
16594      _globalTimeline = new Timeline({
16595        sortChildren: false,
16596        defaults: _defaults,
16597        autoRemoveChildren: true,
16598        id: "root",
16599        smoothChildTiming: true
16600      });
16601      _config.stringFilter = _colorStringFilter;
16602      _media = [];
16603      _listeners = {};
16604      _emptyArray = [];
16605      _lastMediaTime = 0;
16606      _contextID = 0;
16607      _dispatch = function _dispatch2(type) {
16608        return (_listeners[type] || _emptyArray).map(function(f3) {
16609          return f3();
16610        });
16611      };
16612      _onMediaChange = function _onMediaChange2() {
16613        var time = Date.now(), matches = [];
16614        if (time - _lastMediaTime > 2) {
16615          _dispatch("matchMediaInit");
16616          _media.forEach(function(c5) {
16617            var queries = c5.queries, conditions = c5.conditions, match, p2, anyMatch, toggled;
16618            for (p2 in queries) {
16619              match = _win.matchMedia(queries[p2]).matches;
16620              match && (anyMatch = 1);
16621              if (match !== conditions[p2]) {
16622                conditions[p2] = match;
16623                toggled = 1;
16624              }
16625            }
16626            if (toggled) {
16627              c5.revert();
16628              anyMatch && matches.push(c5);
16629            }
16630          });
16631          _dispatch("matchMediaRevert");
16632          matches.forEach(function(c5) {
16633            return c5.onMatch(c5, function(func) {
16634              return c5.add(null, func);
16635            });
16636          });
16637          _lastMediaTime = time;
16638          _dispatch("matchMedia");
16639        }
16640      };
16641      Context = /* @__PURE__ */ (function() {
16642        function Context2(func, scope) {
16643          this.selector = scope && selector(scope);
16644          this.data = [];
16645          this._r = [];
16646          this.isReverted = false;
16647          this.id = _contextID++;
16648          func && this.add(func);
16649        }
16650        var _proto5 = Context2.prototype;
16651        _proto5.add = function add(name, func, scope) {
16652          if (_isFunction(name)) {
16653            scope = func;
16654            func = name;
16655            name = _isFunction;
16656          }
16657          var self2 = this, f3 = function f4() {
16658            var prev = _context, prevSelector = self2.selector, result;
16659            prev && prev !== self2 && prev.data.push(self2);
16660            scope && (self2.selector = selector(scope));
16661            _context = self2;
16662            result = func.apply(self2, arguments);
16663            _isFunction(result) && self2._r.push(result);
16664            _context = prev;
16665            self2.selector = prevSelector;
16666            self2.isReverted = false;
16667            return result;
16668          };
16669          self2.last = f3;
16670          return name === _isFunction ? f3(self2, function(func2) {
16671            return self2.add(null, func2);
16672          }) : name ? self2[name] = f3 : f3;
16673        };
16674        _proto5.ignore = function ignore(func) {
16675          var prev = _context;
16676          _context = null;
16677          func(this);
16678          _context = prev;
16679        };
16680        _proto5.getTweens = function getTweens() {
16681          var a8 = [];
16682          this.data.forEach(function(e11) {
16683            return e11 instanceof Context2 ? a8.push.apply(a8, e11.getTweens()) : e11 instanceof Tween && !(e11.parent && e11.parent.data === "nested") && a8.push(e11);
16684          });
16685          return a8;
16686        };
16687        _proto5.clear = function clear() {
16688          this._r.length = this.data.length = 0;
16689        };
16690        _proto5.kill = function kill(revert, matchMedia3) {
16691          var _this4 = this;
16692          if (revert) {
16693            (function() {
16694              var tweens = _this4.getTweens(), i11 = _this4.data.length, t11;
16695              while (i11--) {
16696                t11 = _this4.data[i11];
16697                if (t11.data === "isFlip") {
16698                  t11.revert();
16699                  t11.getChildren(true, true, false).forEach(function(tween) {
16700                    return tweens.splice(tweens.indexOf(tween), 1);
16701                  });
16702                }
16703              }
16704              tweens.map(function(t12) {
16705                return {
16706                  g: t12._dur || t12._delay || t12._sat && !t12._sat.vars.immediateRender ? t12.globalTime(0) : -Infinity,
16707                  t: t12
16708                };
16709              }).sort(function(a8, b3) {
16710                return b3.g - a8.g || -Infinity;
16711              }).forEach(function(o11) {
16712                return o11.t.revert(revert);
16713              });
16714              i11 = _this4.data.length;
16715              while (i11--) {
16716                t11 = _this4.data[i11];
16717                if (t11 instanceof Timeline) {
16718                  if (t11.data !== "nested") {
16719                    t11.scrollTrigger && t11.scrollTrigger.revert();
16720                    t11.kill();
16721                  }
16722                } else {
16723                  !(t11 instanceof Tween) && t11.revert && t11.revert(revert);
16724                }
16725              }
16726              _this4._r.forEach(function(f3) {
16727                return f3(revert, _this4);
16728              });
16729              _this4.isReverted = true;
16730            })();
16731          } else {
16732            this.data.forEach(function(e11) {
16733              return e11.kill && e11.kill();
16734            });
16735          }
16736          this.clear();
16737          if (matchMedia3) {
16738            var i10 = _media.length;
16739            while (i10--) {
16740              _media[i10].id === this.id && _media.splice(i10, 1);
16741            }
16742          }
16743        };
16744        _proto5.revert = function revert(config3) {
16745          this.kill(config3 || {});
16746        };
16747        return Context2;
16748      })();
16749      MatchMedia = /* @__PURE__ */ (function() {
16750        function MatchMedia2(scope) {
16751          this.contexts = [];
16752          this.scope = scope;
16753          _context && _context.data.push(this);
16754        }
16755        var _proto6 = MatchMedia2.prototype;
16756        _proto6.add = function add(conditions, func, scope) {
16757          _isObject(conditions) || (conditions = {
16758            matches: conditions
16759          });
16760          var context3 = new Context(0, scope || this.scope), cond = context3.conditions = {}, mq, p2, active;
16761          _context && !context3.selector && (context3.selector = _context.selector);
16762          this.contexts.push(context3);
16763          func = context3.add("onMatch", func);
16764          context3.queries = conditions;
16765          for (p2 in conditions) {
16766            if (p2 === "all") {
16767              active = 1;
16768            } else {
16769              mq = _win.matchMedia(conditions[p2]);
16770              if (mq) {
16771                _media.indexOf(context3) < 0 && _media.push(context3);
16772                (cond[p2] = mq.matches) && (active = 1);
16773                mq.addListener ? mq.addListener(_onMediaChange) : mq.addEventListener("change", _onMediaChange);
16774              }
16775            }
16776          }
16777          active && func(context3, function(f3) {
16778            return context3.add(null, f3);
16779          });
16780          return this;
16781        };
16782        _proto6.revert = function revert(config3) {
16783          this.kill(config3 || {});
16784        };
16785        _proto6.kill = function kill(revert) {
16786          this.contexts.forEach(function(c5) {
16787            return c5.kill(revert, true);
16788          });
16789        };
16790        return MatchMedia2;
16791      })();
16792      _gsap = {
16793        registerPlugin: function registerPlugin() {
16794          for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
16795            args[_key2] = arguments[_key2];
16796          }
16797          args.forEach(function(config3) {
16798            return _createPlugin(config3);
16799          });
16800        },
16801        timeline: function timeline(vars) {
16802          return new Timeline(vars);
16803        },
16804        getTweensOf: function getTweensOf(targets, onlyActive) {
16805          return _globalTimeline.getTweensOf(targets, onlyActive);
16806        },
16807        getProperty: function getProperty(target, property, unit, uncache) {
16808          _isString(target) && (target = toArray(target)[0]);
16809          var getter = _getCache(target || {}).get, format = unit ? _passThrough : _numericIfPossible;
16810          unit === "native" && (unit = "");
16811          return !target ? target : !property ? function(property2, unit2, uncache2) {
16812            return format((_plugins[property2] && _plugins[property2].get || getter)(target, property2, unit2, uncache2));
16813          } : format((_plugins[property] && _plugins[property].get || getter)(target, property, unit, uncache));
16814        },
16815        quickSetter: function quickSetter(target, property, unit) {
16816          target = toArray(target);
16817          if (target.length > 1) {
16818            var setters = target.map(function(t11) {
16819              return gsap.quickSetter(t11, property, unit);
16820            }), l10 = setters.length;
16821            return function(value) {
16822              var i10 = l10;
16823              while (i10--) {
16824                setters[i10](value);
16825              }
16826            };
16827          }
16828          target = target[0] || {};
16829          var Plugin = _plugins[property], cache = _getCache(target), p2 = cache.harness && (cache.harness.aliases || {})[property] || property, setter = Plugin ? function(value) {
16830            var p3 = new Plugin();
16831            _quickTween._pt = 0;
16832            p3.init(target, unit ? value + unit : value, _quickTween, 0, [target]);
16833            p3.render(1, p3);
16834            _quickTween._pt && _renderPropTweens(1, _quickTween);
16835          } : cache.set(target, p2);
16836          return Plugin ? setter : function(value) {
16837            return setter(target, p2, unit ? value + unit : value, cache, 1);
16838          };
16839        },
16840        quickTo: function quickTo(target, property, vars) {
16841          var _setDefaults22;
16842          var tween = gsap.to(target, _setDefaults((_setDefaults22 = {}, _setDefaults22[property] = "+=0.1", _setDefaults22.paused = true, _setDefaults22.stagger = 0, _setDefaults22), vars || {})), func = function func2(value, start, startIsRelative) {
16843            return tween.resetTo(property, value, start, startIsRelative);
16844          };
16845          func.tween = tween;
16846          return func;
16847        },
16848        isTweening: function isTweening(targets) {
16849          return _globalTimeline.getTweensOf(targets, true).length > 0;
16850        },
16851        defaults: function defaults(value) {
16852          value && value.ease && (value.ease = _parseEase(value.ease, _defaults.ease));
16853          return _mergeDeep(_defaults, value || {});
16854        },
16855        config: function config2(value) {
16856          return _mergeDeep(_config, value || {});
16857        },
16858        registerEffect: function registerEffect(_ref3) {
16859          var name = _ref3.name, effect = _ref3.effect, plugins = _ref3.plugins, defaults2 = _ref3.defaults, extendTimeline = _ref3.extendTimeline;
16860          (plugins || "").split(",").forEach(function(pluginName) {
16861            return pluginName && !_plugins[pluginName] && !_globals[pluginName] && _warn(name + " effect requires " + pluginName + " plugin.");
16862          });
16863          _effects[name] = function(targets, vars, tl) {
16864            return effect(toArray(targets), _setDefaults(vars || {}, defaults2), tl);
16865          };
16866          if (extendTimeline) {
16867            Timeline.prototype[name] = function(targets, vars, position) {
16868              return this.add(_effects[name](targets, _isObject(vars) ? vars : (position = vars) && {}, this), position);
16869            };
16870          }
16871        },
16872        registerEase: function registerEase(name, ease) {
16873          _easeMap[name] = _parseEase(ease);
16874        },
16875        parseEase: function parseEase(ease, defaultEase) {
16876          return arguments.length ? _parseEase(ease, defaultEase) : _easeMap;
16877        },
16878        getById: function getById(id) {
16879          return _globalTimeline.getById(id);
16880        },
16881        exportRoot: function exportRoot(vars, includeDelayedCalls) {
16882          if (vars === void 0) {
16883            vars = {};
16884          }
16885          var tl = new Timeline(vars), child, next;
16886          tl.smoothChildTiming = _isNotFalse(vars.smoothChildTiming);
16887          _globalTimeline.remove(tl);
16888          tl._dp = 0;
16889          tl._time = tl._tTime = _globalTimeline._time;
16890          child = _globalTimeline._first;
16891          while (child) {
16892            next = child._next;
16893            if (includeDelayedCalls || !(!child._dur && child instanceof Tween && child.vars.onComplete === child._targets[0])) {
16894              _addToTimeline(tl, child, child._start - child._delay);
16895            }
16896            child = next;
16897          }
16898          _addToTimeline(_globalTimeline, tl, 0);
16899          return tl;
16900        },
16901        context: function context(func, scope) {
16902          return func ? new Context(func, scope) : _context;
16903        },
16904        matchMedia: function matchMedia2(scope) {
16905          return new MatchMedia(scope);
16906        },
16907        matchMediaRefresh: function matchMediaRefresh() {
16908          return _media.forEach(function(c5) {
16909            var cond = c5.conditions, found, p2;
16910            for (p2 in cond) {
16911              if (cond[p2]) {
16912                cond[p2] = false;
16913                found = 1;
16914              }
16915            }
16916            found && c5.revert();
16917          }) || _onMediaChange();
16918        },
16919        addEventListener: function addEventListener(type, callback) {
16920          var a8 = _listeners[type] || (_listeners[type] = []);
16921          ~a8.indexOf(callback) || a8.push(callback);
16922        },
16923        removeEventListener: function removeEventListener(type, callback) {
16924          var a8 = _listeners[type], i10 = a8 && a8.indexOf(callback);
16925          i10 >= 0 && a8.splice(i10, 1);
16926        },
16927        utils: {
16928          wrap,
16929          wrapYoyo,
16930          distribute,
16931          random,
16932          snap,
16933          normalize,
16934          getUnit,
16935          clamp,
16936          splitColor,
16937          toArray,
16938          selector,
16939          mapRange,
16940          pipe,
16941          unitize,
16942          interpolate,
16943          shuffle
16944        },
16945        install: _install,
16946        effects: _effects,
16947        ticker: _ticker,
16948        updateRoot: Timeline.updateRoot,
16949        plugins: _plugins,
16950        globalTimeline: _globalTimeline,
16951        core: {
16952          PropTween,
16953          globals: _addGlobal,
16954          Tween,
16955          Timeline,
16956          Animation,
16957          getCache: _getCache,
16958          _removeLinkedListItem,
16959          reverting: function reverting() {
16960            return _reverting;
16961          },
16962          context: function context2(toAdd) {
16963            if (toAdd && _context) {
16964              _context.data.push(toAdd);
16965              toAdd._ctx = _context;
16966            }
16967            return _context;
16968          },
16969          suppressOverwrites: function suppressOverwrites(value) {
16970            return _suppressOverwrites = value;
16971          }
16972        }
16973      };
16974      _forEachName("to,from,fromTo,delayedCall,set,killTweensOf", function(name) {
16975        return _gsap[name] = Tween[name];
16976      });
16977      _ticker.add(Timeline.updateRoot);
16978      _quickTween = _gsap.to({}, {
16979        duration: 0
16980      });
16981      _getPluginPropTween = function _getPluginPropTween2(plugin, prop) {
16982        var pt = plugin._pt;
16983        while (pt && pt.p !== prop && pt.op !== prop && pt.fp !== prop) {
16984          pt = pt._next;
16985        }
16986        return pt;
16987      };
16988      _addModifiers = function _addModifiers2(tween, modifiers) {
16989        var targets = tween._targets, p2, i10, pt;
16990        for (p2 in modifiers) {
16991          i10 = targets.length;
16992          while (i10--) {
16993            pt = tween._ptLookup[i10][p2];
16994            if (pt && (pt = pt.d)) {
16995              if (pt._pt) {
16996                pt = _getPluginPropTween(pt, p2);
16997              }
16998              pt && pt.modifier && pt.modifier(modifiers[p2], tween, targets[i10], p2);
16999            }
17000          }
17001        }
17002      };
17003      _buildModifierPlugin = function _buildModifierPlugin2(name, modifier) {
17004        return {
17005          name,
17006          headless: 1,
17007          rawVars: 1,
17008          //don't pre-process function-based values or "random()" strings.
17009          init: function init5(target, vars, tween) {
17010            tween._onInit = function(tween2) {
17011              var temp, p2;
17012              if (_isString(vars)) {
17013                temp = {};
17014                _forEachName(vars, function(name2) {
17015                  return temp[name2] = 1;
17016                });
17017                vars = temp;
17018              }
17019              if (modifier) {
17020                temp = {};
17021                for (p2 in vars) {
17022                  temp[p2] = modifier(vars[p2]);
17023                }
17024                vars = temp;
17025              }
17026              _addModifiers(tween2, vars);
17027            };
17028          }
17029        };
17030      };
17031      gsap = _gsap.registerPlugin({
17032        name: "attr",
17033        init: function init2(target, vars, tween, index, targets) {
17034          var p2, pt, v3;
17035          this.tween = tween;
17036          for (p2 in vars) {
17037            v3 = target.getAttribute(p2) || "";
17038            pt = this.add(target, "setAttribute", (v3 || 0) + "", vars[p2], index, targets, 0, 0, p2);
17039            pt.op = p2;
17040            pt.b = v3;
17041            this._props.push(p2);
17042          }
17043        },
17044        render: function render(ratio, data) {
17045          var pt = data._pt;
17046          while (pt) {
17047            _reverting ? pt.set(pt.t, pt.p, pt.b, pt) : pt.r(ratio, pt.d);
17048            pt = pt._next;
17049          }
17050        }
17051      }, {
17052        name: "endArray",
17053        headless: 1,
17054        init: function init3(target, value) {
17055          var i10 = value.length;
17056          while (i10--) {
17057            this.add(target, i10, target[i10] || 0, value[i10], 0, 0, 0, 0, 0, 1);
17058          }
17059        }
17060      }, _buildModifierPlugin("roundProps", _roundModifier), _buildModifierPlugin("modifiers"), _buildModifierPlugin("snap", snap)) || _gsap;
17061      Tween.version = Timeline.version = gsap.version = "3.14.2";
17062      _coreReady = 1;
17063      _windowExists() && _wake();
17064      Power0 = _easeMap.Power0;
17065      Power1 = _easeMap.Power1;
17066      Power2 = _easeMap.Power2;
17067      Power3 = _easeMap.Power3;
17068      Power4 = _easeMap.Power4;
17069      Linear = _easeMap.Linear;
17070      Quad = _easeMap.Quad;
17071      Cubic = _easeMap.Cubic;
17072      Quart = _easeMap.Quart;
17073      Quint = _easeMap.Quint;
17074      Strong = _easeMap.Strong;
17075      Elastic = _easeMap.Elastic;
17076      Back = _easeMap.Back;
17077      SteppedEase = _easeMap.SteppedEase;
17078      Bounce = _easeMap.Bounce;
17079      Sine = _easeMap.Sine;
17080      Expo = _easeMap.Expo;
17081      Circ = _easeMap.Circ;
17082    }
17083  });
17084
17085  
vendor: 57,039 bytes, lines 17085-18199
17085// node_modules/gsap/CSSPlugin.js
17086  var _win2, _doc2, _docElement, _pluginInitted, _tempDiv, _tempDivStyler, _recentSetterPlugin, _reverting2, _windowExists3, _transformProps, _RAD2DEG, _DEG2RAD, _atan2, _bigNum2, _capsExp, _horizontalExp, _complexExp, _propertyAliases, _renderCSSProp, _renderPropWithEnd, _renderCSSPropWithBeginning, _renderCSSPropWithBeginningAndEnd, _renderRoundedCSSProp, _renderNonTweeningValue, _renderNonTweeningValueOnlyAtEnd, _setterCSSStyle, _setterCSSProp, _setterTransform, _setterScale, _setterScaleWithRender, _setterTransformWithRender, _transformProp, _transformOriginProp, _saveStyle, _removeIndependentTransforms, _revertStyle, _getStyleSaver, _supports3D, _createElement, _getComputedProperty, _prefixes, _checkPropPrefix, _initCore, _getReparentedCloneBBox, _getAttributeFallbacks, _getBBox, _isSVG, _removeProperty, _addNonTweeningPT, _nonConvertibleUnits, _nonStandardLayouts, _convertToUnit, _get, _tweenComplexCSSString, _keywordToPercent, _convertKeywordsToPercentages, _renderClearProps, _specialProps, _identity2DMatrix, _rotationalProperties, _isNullTransform, _getComputedTransformMatrixAsArray, _getMatrix, _applySVGOrigin, _parseTransform, _firstTwoOnly, _addPxTranslate, _renderNon3DTransforms, _zeroDeg, _zeroPx, _endParenthesis, _renderCSSTransforms, _renderSVGTransforms, _addRotationalPropTween, _assign, _addRawTransformPTs, CSSPlugin;
17087  var init_CSSPlugin = __esm({
17088    "node_modules/gsap/CSSPlugin.js"() {
17089      init_gsap_core();
17090      _windowExists3 = function _windowExists4() {
17091        return typeof window !== "undefined";
17092      };
17093      _transformProps = {};
17094      _RAD2DEG = 180 / Math.PI;
17095      _DEG2RAD = Math.PI / 180;
17096      _atan2 = Math.atan2;
17097      _bigNum2 = 1e8;
17098      _capsExp = /([A-Z])/g;
17099      _horizontalExp = /(left|right|width|margin|padding|x)/i;
17100      _complexExp = /[\s,\(]\S/;
17101      _propertyAliases = {
17102        autoAlpha: "opacity,visibility",
17103        scale: "scaleX,scaleY",
17104        alpha: "opacity"
17105      };
17106      _renderCSSProp = function _renderCSSProp2(ratio, data) {
17107        return data.set(data.t, data.p, Math.round((data.s + data.c * ratio) * 1e4) / 1e4 + data.u, data);
17108      };
17109      _renderPropWithEnd = function _renderPropWithEnd2(ratio, data) {
17110        return data.set(data.t, data.p, ratio === 1 ? data.e : Math.round((data.s + data.c * ratio) * 1e4) / 1e4 + data.u, data);
17111      };
17112      _renderCSSPropWithBeginning = function _renderCSSPropWithBeginning2(ratio, data) {
17113        return data.set(data.t, data.p, ratio ? Math.round((data.s + data.c * ratio) * 1e4) / 1e4 + data.u : data.b, data);
17114      };
17115      _renderCSSPropWithBeginningAndEnd = function _renderCSSPropWithBeginningAndEnd2(ratio, data) {
17116        return data.set(data.t, data.p, ratio === 1 ? data.e : ratio ? Math.round((data.s + data.c * ratio) * 1e4) / 1e4 + data.u : data.b, data);
17117      };
17118      _renderRoundedCSSProp = function _renderRoundedCSSProp2(ratio, data) {
17119        var value = data.s + data.c * ratio;
17120        data.set(data.t, data.p, ~~(value + (value < 0 ? -0.5 : 0.5)) + data.u, data);
17121      };
17122      _renderNonTweeningValue = function _renderNonTweeningValue2(ratio, data) {
17123        return data.set(data.t, data.p, ratio ? data.e : data.b, data);
17124      };
17125      _renderNonTweeningValueOnlyAtEnd = function _renderNonTweeningValueOnlyAtEnd2(ratio, data) {
17126        return data.set(data.t, data.p, ratio !== 1 ? data.b : data.e, data);
17127      };
17128      _setterCSSStyle = function _setterCSSStyle2(target, property, value) {
17129        return target.style[property] = value;
17130      };
17131      _setterCSSProp = function _setterCSSProp2(target, property, value) {
17132        return target.style.setProperty(property, value);
17133      };
17134      _setterTransform = function _setterTransform2(target, property, value) {
17135        return target._gsap[property] = value;
17136      };
17137      _setterScale = function _setterScale2(target, property, value) {
17138        return target._gsap.scaleX = target._gsap.scaleY = value;
17139      };
17140      _setterScaleWithRender = function _setterScaleWithRender2(target, property, value, data, ratio) {
17141        var cache = target._gsap;
17142        cache.scaleX = cache.scaleY = value;
17143        cache.renderTransform(ratio, cache);
17144      };
17145      _setterTransformWithRender = function _setterTransformWithRender2(target, property, value, data, ratio) {
17146        var cache = target._gsap;
17147        cache[property] = value;
17148        cache.renderTransform(ratio, cache);
17149      };
17150      _transformProp = "transform";
17151      _transformOriginProp = _transformProp + "Origin";
17152      _saveStyle = function _saveStyle2(property, isNotCSS) {
17153        var _this = this;
17154        var target = this.target, style = target.style, cache = target._gsap;
17155        if (property in _transformProps && style) {
17156          this.tfm = this.tfm || {};
17157          if (property !== "transform") {
17158            property = _propertyAliases[property] || property;
17159            ~property.indexOf(",") ? property.split(",").forEach(function(a8) {
17160              return _this.tfm[a8] = _get(target, a8);
17161            }) : this.tfm[property] = cache.x ? cache[property] : _get(target, property);
17162            property === _transformOriginProp && (this.tfm.zOrigin = cache.zOrigin);
17163          } else {
17164            return _propertyAliases.transform.split(",").forEach(function(p2) {
17165              return _saveStyle2.call(_this, p2, isNotCSS);
17166            });
17167          }
17168          if (this.props.indexOf(_transformProp) >= 0) {
17169            return;
17170          }
17171          if (cache.svg) {
17172            this.svgo = target.getAttribute("data-svg-origin");
17173            this.props.push(_transformOriginProp, isNotCSS, "");
17174          }
17175          property = _transformProp;
17176        }
17177        (style || isNotCSS) && this.props.push(property, isNotCSS, style[property]);
17178      };
17179      _removeIndependentTransforms = function _removeIndependentTransforms2(style) {
17180        if (style.translate) {
17181          style.removeProperty("translate");
17182          style.removeProperty("scale");
17183          style.removeProperty("rotate");
17184        }
17185      };
17186      _revertStyle = function _revertStyle2() {
17187        var props = this.props, target = this.target, style = target.style, cache = target._gsap, i10, p2;
17188        for (i10 = 0; i10 < props.length; i10 += 3) {
17189          if (!props[i10 + 1]) {
17190            props[i10 + 2] ? style[props[i10]] = props[i10 + 2] : style.removeProperty(props[i10].substr(0, 2) === "--" ? props[i10] : props[i10].replace(_capsExp, "-$1").toLowerCase());
17191          } else if (props[i10 + 1] === 2) {
17192            target[props[i10]](props[i10 + 2]);
17193          } else {
17194            target[props[i10]] = props[i10 + 2];
17195          }
17196        }
17197        if (this.tfm) {
17198          for (p2 in this.tfm) {
17199            cache[p2] = this.tfm[p2];
17200          }
17201          if (cache.svg) {
17202            cache.renderTransform();
17203            target.setAttribute("data-svg-origin", this.svgo || "");
17204          }
17205          i10 = _reverting2();
17206          if ((!i10 || !i10.isStart) && !style[_transformProp]) {
17207            _removeIndependentTransforms(style);
17208            if (cache.zOrigin && style[_transformOriginProp]) {
17209              style[_transformOriginProp] += " " + cache.zOrigin + "px";
17210              cache.zOrigin = 0;
17211              cache.renderTransform();
17212            }
17213            cache.uncache = 1;
17214          }
17215        }
17216      };
17217      _getStyleSaver = function _getStyleSaver2(target, properties) {
17218        var saver = {
17219          target,
17220          props: [],
17221          revert: _revertStyle,
17222          save: _saveStyle
17223        };
17224        target._gsap || gsap.core.getCache(target);
17225        properties && target.style && target.nodeType && properties.split(",").forEach(function(p2) {
17226          return saver.save(p2);
17227        });
17228        return saver;
17229      };
17230      _createElement = function _createElement2(type, ns) {
17231        var e11 = _doc2.createElementNS ? _doc2.createElementNS((ns || "http://www.w3.org/1999/xhtml").replace(/^https/, "http"), type) : _doc2.createElement(type);
17232        return e11 && e11.style ? e11 : _doc2.createElement(type);
17233      };
17234      _getComputedProperty = function _getComputedProperty2(target, property, skipPrefixFallback) {
17235        var cs = getComputedStyle(target);
17236        return cs[property] || cs.getPropertyValue(property.replace(_capsExp, "-$1").toLowerCase()) || cs.getPropertyValue(property) || !skipPrefixFallback && _getComputedProperty2(target, _checkPropPrefix(property) || property, 1) || "";
17237      };
17238      _prefixes = "O,Moz,ms,Ms,Webkit".split(",");
17239      _checkPropPrefix = function _checkPropPrefix2(property, element, preferPrefix) {
17240        var e11 = element || _tempDiv, s13 = e11.style, i10 = 5;
17241        if (property in s13 && !preferPrefix) {
17242          return property;
17243        }
17244        property = property.charAt(0).toUpperCase() + property.substr(1);
17245        while (i10-- && !(_prefixes[i10] + property in s13)) {
17246        }
17247        return i10 < 0 ? null : (i10 === 3 ? "ms" : i10 >= 0 ? _prefixes[i10] : "") + property;
17248      };
17249      _initCore = function _initCore2() {
17250        if (_windowExists3() && window.document) {
17251          _win2 = window;
17252          _doc2 = _win2.document;
17253          _docElement = _doc2.documentElement;
17254          _tempDiv = _createElement("div") || {
17255            style: {}
17256          };
17257          _tempDivStyler = _createElement("div");
17258          _transformProp = _checkPropPrefix(_transformProp);
17259          _transformOriginProp = _transformProp + "Origin";
17260          _tempDiv.style.cssText = "border-width:0;line-height:0;position:absolute;padding:0";
17261          _supports3D = !!_checkPropPrefix("perspective");
17262          _reverting2 = gsap.core.reverting;
17263          _pluginInitted = 1;
17264        }
17265      };
17266      _getReparentedCloneBBox = function _getReparentedCloneBBox2(target) {
17267        var owner = target.ownerSVGElement, svg = _createElement("svg", owner && owner.getAttribute("xmlns") || "http://www.w3.org/2000/svg"), clone = target.cloneNode(true), bbox;
17268        clone.style.display = "block";
17269        svg.appendChild(clone);
17270        _docElement.appendChild(svg);
17271        try {
17272          bbox = clone.getBBox();
17273        } catch (e11) {
17274        }
17275        svg.removeChild(clone);
17276        _docElement.removeChild(svg);
17277        return bbox;
17278      };
17279      _getAttributeFallbacks = function _getAttributeFallbacks2(target, attributesArray) {
17280        var i10 = attributesArray.length;
17281        while (i10--) {
17282          if (target.hasAttribute(attributesArray[i10])) {
17283            return target.getAttribute(attributesArray[i10]);
17284          }
17285        }
17286      };
17287      _getBBox = function _getBBox2(target) {
17288        var bounds, cloned;
17289        try {
17290          bounds = target.getBBox();
17291        } catch (error) {
17292          bounds = _getReparentedCloneBBox(target);
17293          cloned = 1;
17294        }
17295        bounds && (bounds.width || bounds.height) || cloned || (bounds = _getReparentedCloneBBox(target));
17296        return bounds && !bounds.width && !bounds.x && !bounds.y ? {
17297          x: +_getAttributeFallbacks(target, ["x", "cx", "x1"]) || 0,
17298          y: +_getAttributeFallbacks(target, ["y", "cy", "y1"]) || 0,
17299          width: 0,
17300          height: 0
17301        } : bounds;
17302      };
17303      _isSVG = function _isSVG2(e11) {
17304        return !!(e11.getCTM && (!e11.parentNode || e11.ownerSVGElement) && _getBBox(e11));
17305      };
17306      _removeProperty = function _removeProperty2(target, property) {
17307        if (property) {
17308          var style = target.style, first2Chars;
17309          if (property in _transformProps && property !== _transformOriginProp) {
17310            property = _transformProp;
17311          }
17312          if (style.removeProperty) {
17313            first2Chars = property.substr(0, 2);
17314            if (first2Chars === "ms" || property.substr(0, 6) === "webkit") {
17315              property = "-" + property;
17316            }
17317            style.removeProperty(first2Chars === "--" ? property : property.replace(_capsExp, "-$1").toLowerCase());
17318          } else {
17319            style.removeAttribute(property);
17320          }
17321        }
17322      };
17323      _addNonTweeningPT = function _addNonTweeningPT2(plugin, target, property, beginning, end, onlySetAtEnd) {
17324        var pt = new PropTween(plugin._pt, target, property, 0, 1, onlySetAtEnd ? _renderNonTweeningValueOnlyAtEnd : _renderNonTweeningValue);
17325        plugin._pt = pt;
17326        pt.b = beginning;
17327        pt.e = end;
17328        plugin._props.push(property);
17329        return pt;
17330      };
17331      _nonConvertibleUnits = {
17332        deg: 1,
17333        rad: 1,
17334        turn: 1
17335      };
17336      _nonStandardLayouts = {
17337        grid: 1,
17338        flex: 1
17339      };
17340      _convertToUnit = function _convertToUnit2(target, property, value, unit) {
17341        var curValue = parseFloat(value) || 0, curUnit = (value + "").trim().substr((curValue + "").length) || "px", style = _tempDiv.style, horizontal = _horizontalExp.test(property), isRootSVG = target.tagName.toLowerCase() === "svg", measureProperty = (isRootSVG ? "client" : "offset") + (horizontal ? "Width" : "Height"), amount = 100, toPixels = unit === "px", toPercent = unit === "%", px, parent, cache, isSVG;
17342        if (unit === curUnit || !curValue || _nonConvertibleUnits[unit] || _nonConvertibleUnits[curUnit]) {
17343          return curValue;
17344        }
17345        curUnit !== "px" && !toPixels && (curValue = _convertToUnit2(target, property, value, "px"));
17346        isSVG = target.getCTM && _isSVG(target);
17347        if ((toPercent || curUnit === "%") && (_transformProps[property] || ~property.indexOf("adius"))) {
17348          px = isSVG ? target.getBBox()[horizontal ? "width" : "height"] : target[measureProperty];
17349          return _round(toPercent ? curValue / px * amount : curValue / 100 * px);
17350        }
17351        style[horizontal ? "width" : "height"] = amount + (toPixels ? curUnit : unit);
17352        parent = unit !== "rem" && ~property.indexOf("adius") || unit === "em" && target.appendChild && !isRootSVG ? target : target.parentNode;
17353        if (isSVG) {
17354          parent = (target.ownerSVGElement || {}).parentNode;
17355        }
17356        if (!parent || parent === _doc2 || !parent.appendChild) {
17357          parent = _doc2.body;
17358        }
17359        cache = parent._gsap;
17360        if (cache && toPercent && cache.width && horizontal && cache.time === _ticker.time && !cache.uncache) {
17361          return _round(curValue / cache.width * amount);
17362        } else {
17363          if (toPercent && (property === "height" || property === "width")) {
17364            var v3 = target.style[property];
17365            target.style[property] = amount + unit;
17366            px = target[measureProperty];
17367            v3 ? target.style[property] = v3 : _removeProperty(target, property);
17368          } else {
17369            (toPercent || curUnit === "%") && !_nonStandardLayouts[_getComputedProperty(parent, "display")] && (style.position = _getComputedProperty(target, "position"));
17370            parent === target && (style.position = "static");
17371            parent.appendChild(_tempDiv);
17372            px = _tempDiv[measureProperty];
17373            parent.removeChild(_tempDiv);
17374            style.position = "absolute";
17375          }
17376          if (horizontal && toPercent) {
17377            cache = _getCache(parent);
17378            cache.time = _ticker.time;
17379            cache.width = parent[measureProperty];
17380          }
17381        }
17382        return _round(toPixels ? px * curValue / amount : px && curValue ? amount / px * curValue : 0);
17383      };
17384      _get = function _get2(target, property, unit, uncache) {
17385        var value;
17386        _pluginInitted || _initCore();
17387        if (property in _propertyAliases && property !== "transform") {
17388          property = _propertyAliases[property];
17389          if (~property.indexOf(",")) {
17390            property = property.split(",")[0];
17391          }
17392        }
17393        if (_transformProps[property] && property !== "transform") {
17394          value = _parseTransform(target, uncache);
17395          value = property !== "transformOrigin" ? value[property] : value.svg ? value.origin : _firstTwoOnly(_getComputedProperty(target, _transformOriginProp)) + " " + value.zOrigin + "px";
17396        } else {
17397          value = target.style[property];
17398          if (!value || value === "auto" || uncache || ~(value + "").indexOf("calc(")) {
17399            value = _specialProps[property] && _specialProps[property](target, property, unit) || _getComputedProperty(target, property) || _getProperty(target, property) || (property === "opacity" ? 1 : 0);
17400          }
17401        }
17402        return unit && !~(value + "").trim().indexOf(" ") ? _convertToUnit(target, property, value, unit) + unit : value;
17403      };
17404      _tweenComplexCSSString = function _tweenComplexCSSString2(target, prop, start, end) {
17405        if (!start || start === "none") {
17406          var p2 = _checkPropPrefix(prop, target, 1), s13 = p2 && _getComputedProperty(target, p2, 1);
17407          if (s13 && s13 !== start) {
17408            prop = p2;
17409            start = s13;
17410          } else if (prop === "borderColor") {
17411            start = _getComputedProperty(target, "borderTopColor");
17412          }
17413        }
17414        var pt = new PropTween(this._pt, target.style, prop, 0, 1, _renderComplexString), index = 0, matchIndex = 0, a8, result, startValues, startNum, color, startValue, endValue, endNum, chunk, endUnit, startUnit, endValues;
17415        pt.b = start;
17416        pt.e = end;
17417        start += "";
17418        end += "";
17419        if (end.substring(0, 6) === "var(--") {
17420          end = _getComputedProperty(target, end.substring(4, end.indexOf(")")));
17421        }
17422        if (end === "auto") {
17423          startValue = target.style[prop];
17424          target.style[prop] = end;
17425          end = _getComputedProperty(target, prop) || end;
17426          startValue ? target.style[prop] = startValue : _removeProperty(target, prop);
17427        }
17428        a8 = [start, end];
17429        _colorStringFilter(a8);
17430        start = a8[0];
17431        end = a8[1];
17432        startValues = start.match(_numWithUnitExp) || [];
17433        endValues = end.match(_numWithUnitExp) || [];
17434        if (endValues.length) {
17435          while (result = _numWithUnitExp.exec(end)) {
17436            endValue = result[0];
17437            chunk = end.substring(index, result.index);
17438            if (color) {
17439              color = (color + 1) % 5;
17440            } else if (chunk.substr(-5) === "rgba(" || chunk.substr(-5) === "hsla(") {
17441              color = 1;
17442            }
17443            if (endValue !== (startValue = startValues[matchIndex++] || "")) {
17444              startNum = parseFloat(startValue) || 0;
17445              startUnit = startValue.substr((startNum + "").length);
17446              endValue.charAt(1) === "=" && (endValue = _parseRelative(startNum, endValue) + startUnit);
17447              endNum = parseFloat(endValue);
17448              endUnit = endValue.substr((endNum + "").length);
17449              index = _numWithUnitExp.lastIndex - endUnit.length;
17450              if (!endUnit) {
17451                endUnit = endUnit || _config.units[prop] || startUnit;
17452                if (index === end.length) {
17453                  end += endUnit;
17454                  pt.e += endUnit;
17455                }
17456              }
17457              if (startUnit !== endUnit) {
17458                startNum = _convertToUnit(target, prop, startValue, endUnit) || 0;
17459              }
17460              pt._pt = {
17461                _next: pt._pt,
17462                p: chunk || matchIndex === 1 ? chunk : ",",
17463                //note: SVG spec allows omission of comma/space when a negative sign is wedged between two numbers, like 2.5-5.3 instead of 2.5,-5.3 but when tweening, the negative value may switch to positive, so we insert the comma just in case.
17464                s: startNum,
17465                c: endNum - startNum,
17466                m: color && color < 4 || prop === "zIndex" ? Math.round : 0
17467              };
17468            }
17469          }
17470          pt.c = index < end.length ? end.substring(index, end.length) : "";
17471        } else {
17472          pt.r = prop === "display" && end === "none" ? _renderNonTweeningValueOnlyAtEnd : _renderNonTweeningValue;
17473        }
17474        _relExp.test(end) && (pt.e = 0);
17475        this._pt = pt;
17476        return pt;
17477      };
17478      _keywordToPercent = {
17479        top: "0%",
17480        bottom: "100%",
17481        left: "0%",
17482        right: "100%",
17483        center: "50%"
17484      };
17485      _convertKeywordsToPercentages = function _convertKeywordsToPercentages2(value) {
17486        var split = value.split(" "), x2 = split[0], y3 = split[1] || "50%";
17487        if (x2 === "top" || x2 === "bottom" || y3 === "left" || y3 === "right") {
17488          value = x2;
17489          x2 = y3;
17490          y3 = value;
17491        }
17492        split[0] = _keywordToPercent[x2] || x2;
17493        split[1] = _keywordToPercent[y3] || y3;
17494        return split.join(" ");
17495      };
17496      _renderClearProps = function _renderClearProps2(ratio, data) {
17497        if (data.tween && data.tween._time === data.tween._dur) {
17498          var target = data.t, style = target.style, props = data.u, cache = target._gsap, prop, clearTransforms, i10;
17499          if (props === "all" || props === true) {
17500            style.cssText = "";
17501            clearTransforms = 1;
17502          } else {
17503            props = props.split(",");
17504            i10 = props.length;
17505            while (--i10 > -1) {
17506              prop = props[i10];
17507              if (_transformProps[prop]) {
17508                clearTransforms = 1;
17509                prop = prop === "transformOrigin" ? _transformOriginProp : _transformProp;
17510              }
17511              _removeProperty(target, prop);
17512            }
17513          }
17514          if (clearTransforms) {
17515            _removeProperty(target, _transformProp);
17516            if (cache) {
17517              cache.svg && target.removeAttribute("transform");
17518              style.scale = style.rotate = style.translate = "none";
17519              _parseTransform(target, 1);
17520              cache.uncache = 1;
17521              _removeIndependentTransforms(style);
17522            }
17523          }
17524        }
17525      };
17526      _specialProps = {
17527        clearProps: function clearProps(plugin, target, property, endValue, tween) {
17528          if (tween.data !== "isFromStart") {
17529            var pt = plugin._pt = new PropTween(plugin._pt, target, property, 0, 0, _renderClearProps);
17530            pt.u = endValue;
17531            pt.pr = -10;
17532            pt.tween = tween;
17533            plugin._props.push(property);
17534            return 1;
17535          }
17536        }
17537        /* className feature (about 0.4kb gzipped).
17538        , className(plugin, target, property, endValue, tween) {
17539        	let _renderClassName = (ratio, data) => {
17540        			data.css.render(ratio, data.css);
17541        			if (!ratio || ratio === 1) {
17542        				let inline = data.rmv,
17543        					target = data.t,
17544        					p;
17545        				target.setAttribute("class", ratio ? data.e : data.b);
17546        				for (p in inline) {
17547        					_removeProperty(target, p);
17548        				}
17549        			}
17550        		},
17551        		_getAllStyles = (target) => {
17552        			let styles = {},
17553        				computed = getComputedStyle(target),
17554        				p;
17555        			for (p in computed) {
17556        				if (isNaN(p) && p !== "cssText" && p !== "length") {
17557        					styles[p] = computed[p];
17558        				}
17559        			}
17560        			_setDefaults(styles, _parseTransform(target, 1));
17561        			return styles;
17562        		},
17563        		startClassList = target.getAttribute("class"),
17564        		style = target.style,
17565        		cssText = style.cssText,
17566        		cache = target._gsap,
17567        		classPT = cache.classPT,
17568        		inlineToRemoveAtEnd = {},
17569        		data = {t:target, plugin:plugin, rmv:inlineToRemoveAtEnd, b:startClassList, e:(endValue.charAt(1) !== "=") ? endValue : startClassList.replace(new RegExp("(?:\\s|^)" + endValue.substr(2) + "(?![\\w-])"), "") + ((endValue.charAt(0) === "+") ? " " + endValue.substr(2) : "")},
17570        		changingVars = {},
17571        		startVars = _getAllStyles(target),
17572        		transformRelated = /(transform|perspective)/i,
17573        		endVars, p;
17574        	if (classPT) {
17575        		classPT.r(1, classPT.d);
17576        		_removeLinkedListItem(classPT.d.plugin, classPT, "_pt");
17577        	}
17578        	target.setAttribute("class", data.e);
17579        	endVars = _getAllStyles(target, true);
17580        	target.setAttribute("class", startClassList);
17581        	for (p in endVars) {
17582        		if (endVars[p] !== startVars[p] && !transformRelated.test(p)) {
17583        			changingVars[p] = endVars[p];
17584        			if (!style[p] && style[p] !== "0") {
17585        				inlineToRemoveAtEnd[p] = 1;
17586        			}
17587        		}
17588        	}
17589        	cache.classPT = plugin._pt = new PropTween(plugin._pt, target, "className", 0, 0, _renderClassName, data, 0, -11);
17590        	if (style.cssText !== cssText) { //only apply if things change. Otherwise, in cases like a background-image that's pulled dynamically, it could cause a refresh. See https://gsap.com/forums/topic/20368-possible-gsap-bug-switching-classnames-in-chrome/.
17591        		style.cssText = cssText; //we recorded cssText before we swapped classes and ran _getAllStyles() because in cases when a className tween is overwritten, we remove all the related tweening properties from that class change (otherwise class-specific stuff can't override properties we've directly set on the target's style object due to specificity).
17592        	}
17593        	_parseTransform(target, true); //to clear the caching of transforms
17594        	data.css = new gsap.plugins.css();
17595        	data.css.init(target, changingVars, tween);
17596        	plugin._props.push(...data.css._props);
17597        	return 1;
17598        }
17599        */
17600      };
17601      _identity2DMatrix = [1, 0, 0, 1, 0, 0];
17602      _rotationalProperties = {};
17603      _isNullTransform = function _isNullTransform2(value) {
17604        return value === "matrix(1, 0, 0, 1, 0, 0)" || value === "none" || !value;
17605      };
17606      _getComputedTransformMatrixAsArray = function _getComputedTransformMatrixAsArray2(target) {
17607        var matrixString = _getComputedProperty(target, _transformProp);
17608        return _isNullTransform(matrixString) ? _identity2DMatrix : matrixString.substr(7).match(_numExp).map(_round);
17609      };
17610      _getMatrix = function _getMatrix2(target, force2D) {
17611        var cache = target._gsap || _getCache(target), style = target.style, matrix = _getComputedTransformMatrixAsArray(target), parent, nextSibling, temp, addedToDOM;
17612        if (cache.svg && target.getAttribute("transform")) {
17613          temp = target.transform.baseVal.consolidate().matrix;
17614          matrix = [temp.a, temp.b, temp.c, temp.d, temp.e, temp.f];
17615          return matrix.join(",") === "1,0,0,1,0,0" ? _identity2DMatrix : matrix;
17616        } else if (matrix === _identity2DMatrix && !target.offsetParent && target !== _docElement && !cache.svg) {
17617          temp = style.display;
17618          style.display = "block";
17619          parent = target.parentNode;
17620          if (!parent || !target.offsetParent && !target.getBoundingClientRect().width) {
17621            addedToDOM = 1;
17622            nextSibling = target.nextElementSibling;
17623            _docElement.appendChild(target);
17624          }
17625          matrix = _getComputedTransformMatrixAsArray(target);
17626          temp ? style.display = temp : _removeProperty(target, "display");
17627          if (addedToDOM) {
17628            nextSibling ? parent.insertBefore(target, nextSibling) : parent ? parent.appendChild(target) : _docElement.removeChild(target);
17629          }
17630        }
17631        return force2D && matrix.length > 6 ? [matrix[0], matrix[1], matrix[4], matrix[5], matrix[12], matrix[13]] : matrix;
17632      };
17633      _applySVGOrigin = function _applySVGOrigin2(target, origin, originIsAbsolute, smooth, matrixArray, pluginToAddPropTweensTo) {
17634        var cache = target._gsap, matrix = matrixArray || _getMatrix(target, true), xOriginOld = cache.xOrigin || 0, yOriginOld = cache.yOrigin || 0, xOffsetOld = cache.xOffset || 0, yOffsetOld = cache.yOffset || 0, a8 = matrix[0], b3 = matrix[1], c5 = matrix[2], d3 = matrix[3], tx = matrix[4], ty = matrix[5], originSplit = origin.split(" "), xOrigin = parseFloat(originSplit[0]) || 0, yOrigin = parseFloat(originSplit[1]) || 0, bounds, determinant, x2, y3;
17635        if (!originIsAbsolute) {
17636          bounds = _getBBox(target);
17637          xOrigin = bounds.x + (~originSplit[0].indexOf("%") ? xOrigin / 100 * bounds.width : xOrigin);
17638          yOrigin = bounds.y + (~(originSplit[1] || originSplit[0]).indexOf("%") ? yOrigin / 100 * bounds.height : yOrigin);
17639        } else if (matrix !== _identity2DMatrix && (determinant = a8 * d3 - b3 * c5)) {
17640          x2 = xOrigin * (d3 / determinant) + yOrigin * (-c5 / determinant) + (c5 * ty - d3 * tx) / determinant;
17641          y3 = xOrigin * (-b3 / determinant) + yOrigin * (a8 / determinant) - (a8 * ty - b3 * tx) / determinant;
17642          xOrigin = x2;
17643          yOrigin = y3;
17644        }
17645        if (smooth || smooth !== false && cache.smooth) {
17646          tx = xOrigin - xOriginOld;
17647          ty = yOrigin - yOriginOld;
17648          cache.xOffset = xOffsetOld + (tx * a8 + ty * c5) - tx;
17649          cache.yOffset = yOffsetOld + (tx * b3 + ty * d3) - ty;
17650        } else {
17651          cache.xOffset = cache.yOffset = 0;
17652        }
17653        cache.xOrigin = xOrigin;
17654        cache.yOrigin = yOrigin;
17655        cache.smooth = !!smooth;
17656        cache.origin = origin;
17657        cache.originIsAbsolute = !!originIsAbsolute;
17658        target.style[_transformOriginProp] = "0px 0px";
17659        if (pluginToAddPropTweensTo) {
17660          _addNonTweeningPT(pluginToAddPropTweensTo, cache, "xOrigin", xOriginOld, xOrigin);
17661          _addNonTweeningPT(pluginToAddPropTweensTo, cache, "yOrigin", yOriginOld, yOrigin);
17662          _addNonTweeningPT(pluginToAddPropTweensTo, cache, "xOffset", xOffsetOld, cache.xOffset);
17663          _addNonTweeningPT(pluginToAddPropTweensTo, cache, "yOffset", yOffsetOld, cache.yOffset);
17664        }
17665        target.setAttribute("data-svg-origin", xOrigin + " " + yOrigin);
17666      };
17667      _parseTransform = function _parseTransform2(target, uncache) {
17668        var cache = target._gsap || new GSCache(target);
17669        if ("x" in cache && !uncache && !cache.uncache) {
17670          return cache;
17671        }
17672        var style = target.style, invertedScaleX = cache.scaleX < 0, px = "px", deg = "deg", cs = getComputedStyle(target), origin = _getComputedProperty(target, _transformOriginProp) || "0", x2, y3, z2, scaleX, scaleY, rotation, rotationX, rotationY, skewX, skewY, perspective, xOrigin, yOrigin, matrix, angle, cos, sin, a8, b3, c5, d3, a12, a22, t1, t22, t32, a13, a23, a33, a42, a43, a32;
17673        x2 = y3 = z2 = rotation = rotationX = rotationY = skewX = skewY = perspective = 0;
17674        scaleX = scaleY = 1;
17675        cache.svg = !!(target.getCTM && _isSVG(target));
17676        if (cs.translate) {
17677          if (cs.translate !== "none" || cs.scale !== "none" || cs.rotate !== "none") {
17678            style[_transformProp] = (cs.translate !== "none" ? "translate3d(" + (cs.translate + " 0 0").split(" ").slice(0, 3).join(", ") + ") " : "") + (cs.rotate !== "none" ? "rotate(" + cs.rotate + ") " : "") + (cs.scale !== "none" ? "scale(" + cs.scale.split(" ").join(",") + ") " : "") + (cs[_transformProp] !== "none" ? cs[_transformProp] : "");
17679          }
17680          style.scale = style.rotate = style.translate = "none";
17681        }
17682        matrix = _getMatrix(target, cache.svg);
17683        if (cache.svg) {
17684          if (cache.uncache) {
17685            t22 = target.getBBox();
17686            origin = cache.xOrigin - t22.x + "px " + (cache.yOrigin - t22.y) + "px";
17687            t1 = "";
17688          } else {
17689            t1 = !uncache && target.getAttribute("data-svg-origin");
17690          }
17691          _applySVGOrigin(target, t1 || origin, !!t1 || cache.originIsAbsolute, cache.smooth !== false, matrix);
17692        }
17693        xOrigin = cache.xOrigin || 0;
17694        yOrigin = cache.yOrigin || 0;
17695        if (matrix !== _identity2DMatrix) {
17696          a8 = matrix[0];
17697          b3 = matrix[1];
17698          c5 = matrix[2];
17699          d3 = matrix[3];
17700          x2 = a12 = matrix[4];
17701          y3 = a22 = matrix[5];
17702          if (matrix.length === 6) {
17703            scaleX = Math.sqrt(a8 * a8 + b3 * b3);
17704            scaleY = Math.sqrt(d3 * d3 + c5 * c5);
17705            rotation = a8 || b3 ? _atan2(b3, a8) * _RAD2DEG : 0;
17706            skewX = c5 || d3 ? _atan2(c5, d3) * _RAD2DEG + rotation : 0;
17707            skewX && (scaleY *= Math.abs(Math.cos(skewX * _DEG2RAD)));
17708            if (cache.svg) {
17709              x2 -= xOrigin - (xOrigin * a8 + yOrigin * c5);
17710              y3 -= yOrigin - (xOrigin * b3 + yOrigin * d3);
17711            }
17712          } else {
17713            a32 = matrix[6];
17714            a42 = matrix[7];
17715            a13 = matrix[8];
17716            a23 = matrix[9];
17717            a33 = matrix[10];
17718            a43 = matrix[11];
17719            x2 = matrix[12];
17720            y3 = matrix[13];
17721            z2 = matrix[14];
17722            angle = _atan2(a32, a33);
17723            rotationX = angle * _RAD2DEG;
17724            if (angle) {
17725              cos = Math.cos(-angle);
17726              sin = Math.sin(-angle);
17727              t1 = a12 * cos + a13 * sin;
17728              t22 = a22 * cos + a23 * sin;
17729              t32 = a32 * cos + a33 * sin;
17730              a13 = a12 * -sin + a13 * cos;
17731              a23 = a22 * -sin + a23 * cos;
17732              a33 = a32 * -sin + a33 * cos;
17733              a43 = a42 * -sin + a43 * cos;
17734              a12 = t1;
17735              a22 = t22;
17736              a32 = t32;
17737            }
17738            angle = _atan2(-c5, a33);
17739            rotationY = angle * _RAD2DEG;
17740            if (angle) {
17741              cos = Math.cos(-angle);
17742              sin = Math.sin(-angle);
17743              t1 = a8 * cos - a13 * sin;
17744              t22 = b3 * cos - a23 * sin;
17745              t32 = c5 * cos - a33 * sin;
17746              a43 = d3 * sin + a43 * cos;
17747              a8 = t1;
17748              b3 = t22;
17749              c5 = t32;
17750            }
17751            angle = _atan2(b3, a8);
17752            rotation = angle * _RAD2DEG;
17753            if (angle) {
17754              cos = Math.cos(angle);
17755              sin = Math.sin(angle);
17756              t1 = a8 * cos + b3 * sin;
17757              t22 = a12 * cos + a22 * sin;
17758              b3 = b3 * cos - a8 * sin;
17759              a22 = a22 * cos - a12 * sin;
17760              a8 = t1;
17761              a12 = t22;
17762            }
17763            if (rotationX && Math.abs(rotationX) + Math.abs(rotation) > 359.9) {
17764              rotationX = rotation = 0;
17765              rotationY = 180 - rotationY;
17766            }
17767            scaleX = _round(Math.sqrt(a8 * a8 + b3 * b3 + c5 * c5));
17768            scaleY = _round(Math.sqrt(a22 * a22 + a32 * a32));
17769            angle = _atan2(a12, a22);
17770            skewX = Math.abs(angle) > 2e-4 ? angle * _RAD2DEG : 0;
17771            perspective = a43 ? 1 / (a43 < 0 ? -a43 : a43) : 0;
17772          }
17773          if (cache.svg) {
17774            t1 = target.getAttribute("transform");
17775            cache.forceCSS = target.setAttribute("transform", "") || !_isNullTransform(_getComputedProperty(target, _transformProp));
17776            t1 && target.setAttribute("transform", t1);
17777          }
17778        }
17779        if (Math.abs(skewX) > 90 && Math.abs(skewX) < 270) {
17780          if (invertedScaleX) {
17781            scaleX *= -1;
17782            skewX += rotation <= 0 ? 180 : -180;
17783            rotation += rotation <= 0 ? 180 : -180;
17784          } else {
17785            scaleY *= -1;
17786            skewX += skewX <= 0 ? 180 : -180;
17787          }
17788        }
17789        uncache = uncache || cache.uncache;
17790        cache.x = x2 - ((cache.xPercent = x2 && (!uncache && cache.xPercent || (Math.round(target.offsetWidth / 2) === Math.round(-x2) ? -50 : 0))) ? target.offsetWidth * cache.xPercent / 100 : 0) + px;
17791        cache.y = y3 - ((cache.yPercent = y3 && (!uncache && cache.yPercent || (Math.round(target.offsetHeight / 2) === Math.round(-y3) ? -50 : 0))) ? target.offsetHeight * cache.yPercent / 100 : 0) + px;
17792        cache.z = z2 + px;
17793        cache.scaleX = _round(scaleX);
17794        cache.scaleY = _round(scaleY);
17795        cache.rotation = _round(rotation) + deg;
17796        cache.rotationX = _round(rotationX) + deg;
17797        cache.rotationY = _round(rotationY) + deg;
17798        cache.skewX = skewX + deg;
17799        cache.skewY = skewY + deg;
17800        cache.transformPerspective = perspective + px;
17801        if (cache.zOrigin = parseFloat(origin.split(" ")[2]) || !uncache && cache.zOrigin || 0) {
17802          style[_transformOriginProp] = _firstTwoOnly(origin);
17803        }
17804        cache.xOffset = cache.yOffset = 0;
17805        cache.force3D = _config.force3D;
17806        cache.renderTransform = cache.svg ? _renderSVGTransforms : _supports3D ? _renderCSSTransforms : _renderNon3DTransforms;
17807        cache.uncache = 0;
17808        return cache;
17809      };
17810      _firstTwoOnly = function _firstTwoOnly2(value) {
17811        return (value = value.split(" "))[0] + " " + value[1];
17812      };
17813      _addPxTranslate = function _addPxTranslate2(target, start, value) {
17814        var unit = getUnit(start);
17815        return _round(parseFloat(start) + parseFloat(_convertToUnit(target, "x", value + "px", unit))) + unit;
17816      };
17817      _renderNon3DTransforms = function _renderNon3DTransforms2(ratio, cache) {
17818        cache.z = "0px";
17819        cache.rotationY = cache.rotationX = "0deg";
17820        cache.force3D = 0;
17821        _renderCSSTransforms(ratio, cache);
17822      };
17823      _zeroDeg = "0deg";
17824      _zeroPx = "0px";
17825      _endParenthesis = ") ";
17826      _renderCSSTransforms = function _renderCSSTransforms2(ratio, cache) {
17827        var _ref = cache || this, xPercent = _ref.xPercent, yPercent = _ref.yPercent, x2 = _ref.x, y3 = _ref.y, z2 = _ref.z, rotation = _ref.rotation, rotationY = _ref.rotationY, rotationX = _ref.rotationX, skewX = _ref.skewX, skewY = _ref.skewY, scaleX = _ref.scaleX, scaleY = _ref.scaleY, transformPerspective = _ref.transformPerspective, force3D = _ref.force3D, target = _ref.target, zOrigin = _ref.zOrigin, transforms = "", use3D = force3D === "auto" && ratio && ratio !== 1 || force3D === true;
17828        if (zOrigin && (rotationX !== _zeroDeg || rotationY !== _zeroDeg)) {
17829          var angle = parseFloat(rotationY) * _DEG2RAD, a13 = Math.sin(angle), a33 = Math.cos(angle), cos;
17830          angle = parseFloat(rotationX) * _DEG2RAD;
17831          cos = Math.cos(angle);
17832          x2 = _addPxTranslate(target, x2, a13 * cos * -zOrigin);
17833          y3 = _addPxTranslate(target, y3, -Math.sin(angle) * -zOrigin);
17834          z2 = _addPxTranslate(target, z2, a33 * cos * -zOrigin + zOrigin);
17835        }
17836        if (transformPerspective !== _zeroPx) {
17837          transforms += "perspective(" + transformPerspective + _endParenthesis;
17838        }
17839        if (xPercent || yPercent) {
17840          transforms += "translate(" + xPercent + "%, " + yPercent + "%) ";
17841        }
17842        if (use3D || x2 !== _zeroPx || y3 !== _zeroPx || z2 !== _zeroPx) {
17843          transforms += z2 !== _zeroPx || use3D ? "translate3d(" + x2 + ", " + y3 + ", " + z2 + ") " : "translate(" + x2 + ", " + y3 + _endParenthesis;
17844        }
17845        if (rotation !== _zeroDeg) {
17846          transforms += "rotate(" + rotation + _endParenthesis;
17847        }
17848        if (rotationY !== _zeroDeg) {
17849          transforms += "rotateY(" + rotationY + _endParenthesis;
17850        }
17851        if (rotationX !== _zeroDeg) {
17852          transforms += "rotateX(" + rotationX + _endParenthesis;
17853        }
17854        if (skewX !== _zeroDeg || skewY !== _zeroDeg) {
17855          transforms += "skew(" + skewX + ", " + skewY + _endParenthesis;
17856        }
17857        if (scaleX !== 1 || scaleY !== 1) {
17858          transforms += "scale(" + scaleX + ", " + scaleY + _endParenthesis;
17859        }
17860        target.style[_transformProp] = transforms || "translate(0, 0)";
17861      };
17862      _renderSVGTransforms = function _renderSVGTransforms2(ratio, cache) {
17863        var _ref2 = cache || this, xPercent = _ref2.xPercent, yPercent = _ref2.yPercent, x2 = _ref2.x, y3 = _ref2.y, rotation = _ref2.rotation, skewX = _ref2.skewX, skewY = _ref2.skewY, scaleX = _ref2.scaleX, scaleY = _ref2.scaleY, target = _ref2.target, xOrigin = _ref2.xOrigin, yOrigin = _ref2.yOrigin, xOffset = _ref2.xOffset, yOffset = _ref2.yOffset, forceCSS = _ref2.forceCSS, tx = parseFloat(x2), ty = parseFloat(y3), a11, a21, a12, a22, temp;
17864        rotation = parseFloat(rotation);
17865        skewX = parseFloat(skewX);
17866        skewY = parseFloat(skewY);
17867        if (skewY) {
17868          skewY = parseFloat(skewY);
17869          skewX += skewY;
17870          rotation += skewY;
17871        }
17872        if (rotation || skewX) {
17873          rotation *= _DEG2RAD;
17874          skewX *= _DEG2RAD;
17875          a11 = Math.cos(rotation) * scaleX;
17876          a21 = Math.sin(rotation) * scaleX;
17877          a12 = Math.sin(rotation - skewX) * -scaleY;
17878          a22 = Math.cos(rotation - skewX) * scaleY;
17879          if (skewX) {
17880            skewY *= _DEG2RAD;
17881            temp = Math.tan(skewX - skewY);
17882            temp = Math.sqrt(1 + temp * temp);
17883            a12 *= temp;
17884            a22 *= temp;
17885            if (skewY) {
17886              temp = Math.tan(skewY);
17887              temp = Math.sqrt(1 + temp * temp);
17888              a11 *= temp;
17889              a21 *= temp;
17890            }
17891          }
17892          a11 = _round(a11);
17893          a21 = _round(a21);
17894          a12 = _round(a12);
17895          a22 = _round(a22);
17896        } else {
17897          a11 = scaleX;
17898          a22 = scaleY;
17899          a21 = a12 = 0;
17900        }
17901        if (tx && !~(x2 + "").indexOf("px") || ty && !~(y3 + "").indexOf("px")) {
17902          tx = _convertToUnit(target, "x", x2, "px");
17903          ty = _convertToUnit(target, "y", y3, "px");
17904        }
17905        if (xOrigin || yOrigin || xOffset || yOffset) {
17906          tx = _round(tx + xOrigin - (xOrigin * a11 + yOrigin * a12) + xOffset);
17907          ty = _round(ty + yOrigin - (xOrigin * a21 + yOrigin * a22) + yOffset);
17908        }
17909        if (xPercent || yPercent) {
17910          temp = target.getBBox();
17911          tx = _round(tx + xPercent / 100 * temp.width);
17912          ty = _round(ty + yPercent / 100 * temp.height);
17913        }
17914        temp = "matrix(" + a11 + "," + a21 + "," + a12 + "," + a22 + "," + tx + "," + ty + ")";
17915        target.setAttribute("transform", temp);
17916        forceCSS && (target.style[_transformProp] = temp);
17917      };
17918      _addRotationalPropTween = function _addRotationalPropTween2(plugin, target, property, startNum, endValue) {
17919        var cap = 360, isString = _isString(endValue), endNum = parseFloat(endValue) * (isString && ~endValue.indexOf("rad") ? _RAD2DEG : 1), change = endNum - startNum, finalValue = startNum + change + "deg", direction, pt;
17920        if (isString) {
17921          direction = endValue.split("_")[1];
17922          if (direction === "short") {
17923            change %= cap;
17924            if (change !== change % (cap / 2)) {
17925              change += change < 0 ? cap : -cap;
17926            }
17927          }
17928          if (direction === "cw" && change < 0) {
17929            change = (change + cap * _bigNum2) % cap - ~~(change / cap) * cap;
17930          } else if (direction === "ccw" && change > 0) {
17931            change = (change - cap * _bigNum2) % cap - ~~(change / cap) * cap;
17932          }
17933        }
17934        plugin._pt = pt = new PropTween(plugin._pt, target, property, startNum, change, _renderPropWithEnd);
17935        pt.e = finalValue;
17936        pt.u = "deg";
17937        plugin._props.push(property);
17938        return pt;
17939      };
17940      _assign = function _assign2(target, source) {
17941        for (var p2 in source) {
17942          target[p2] = source[p2];
17943        }
17944        return target;
17945      };
17946      _addRawTransformPTs = function _addRawTransformPTs2(plugin, transforms, target) {
17947        var startCache = _assign({}, target._gsap), exclude = "perspective,force3D,transformOrigin,svgOrigin", style = target.style, endCache, p2, startValue, endValue, startNum, endNum, startUnit, endUnit;
17948        if (startCache.svg) {
17949          startValue = target.getAttribute("transform");
17950          target.setAttribute("transform", "");
17951          style[_transformProp] = transforms;
17952          endCache = _parseTransform(target, 1);
17953          _removeProperty(target, _transformProp);
17954          target.setAttribute("transform", startValue);
17955        } else {
17956          startValue = getComputedStyle(target)[_transformProp];
17957          style[_transformProp] = transforms;
17958          endCache = _parseTransform(target, 1);
17959          style[_transformProp] = startValue;
17960        }
17961        for (p2 in _transformProps) {
17962          startValue = startCache[p2];
17963          endValue = endCache[p2];
17964          if (startValue !== endValue && exclude.indexOf(p2) < 0) {
17965            startUnit = getUnit(startValue);
17966            endUnit = getUnit(endValue);
17967            startNum = startUnit !== endUnit ? _convertToUnit(target, p2, startValue, endUnit) : parseFloat(startValue);
17968            endNum = parseFloat(endValue);
17969            plugin._pt = new PropTween(plugin._pt, endCache, p2, startNum, endNum - startNum, _renderCSSProp);
17970            plugin._pt.u = endUnit || 0;
17971            plugin._props.push(p2);
17972          }
17973        }
17974        _assign(endCache, startCache);
17975      };
17976      _forEachName("padding,margin,Width,Radius", function(name, index) {
17977        var t11 = "Top", r7 = "Right", b3 = "Bottom", l10 = "Left", props = (index < 3 ? [t11, r7, b3, l10] : [t11 + l10, t11 + r7, b3 + r7, b3 + l10]).map(function(side) {
17978          return index < 2 ? name + side : "border" + side + name;
17979        });
17980        _specialProps[index > 1 ? "border" + name : name] = function(plugin, target, property, endValue, tween) {
17981          var a8, vars;
17982          if (arguments.length < 4) {
17983            a8 = props.map(function(prop) {
17984              return _get(plugin, prop, property);
17985            });
17986            vars = a8.join(" ");
17987            return vars.split(a8[0]).length === 5 ? a8[0] : vars;
17988          }
17989          a8 = (endValue + "").split(" ");
17990          vars = {};
17991          props.forEach(function(prop, i10) {
17992            return vars[prop] = a8[i10] = a8[i10] || a8[(i10 - 1) / 2 | 0];
17993          });
17994          plugin.init(target, vars, tween);
17995        };
17996      });
17997      CSSPlugin = {
17998        name: "css",
17999        register: _initCore,
18000        targetTest: function targetTest(target) {
18001          return target.style && target.nodeType;
18002        },
18003        init: function init4(target, vars, tween, index, targets) {
18004          var props = this._props, style = target.style, startAt = tween.vars.startAt, startValue, endValue, endNum, startNum, type, specialProp, p2, startUnit, endUnit, relative, isTransformRelated, transformPropTween, cache, smooth, hasPriority, inlineProps, finalTransformValue;
18005          _pluginInitted || _initCore();
18006          this.styles = this.styles || _getStyleSaver(target);
18007          inlineProps = this.styles.props;
18008          this.tween = tween;
18009          for (p2 in vars) {
18010            if (p2 === "autoRound") {
18011              continue;
18012            }
18013            endValue = vars[p2];
18014            if (_plugins[p2] && _checkPlugin(p2, vars, tween, index, target, targets)) {
18015              continue;
18016            }
18017            type = typeof endValue;
18018            specialProp = _specialProps[p2];
18019            if (type === "function") {
18020              endValue = endValue.call(tween, index, target, targets);
18021              type = typeof endValue;
18022            }
18023            if (type === "string" && ~endValue.indexOf("random(")) {
18024              endValue = _replaceRandom(endValue);
18025            }
18026            if (specialProp) {
18027              specialProp(this, target, p2, endValue, tween) && (hasPriority = 1);
18028            } else if (p2.substr(0, 2) === "--") {
18029              startValue = (getComputedStyle(target).getPropertyValue(p2) + "").trim();
18030              endValue += "";
18031              _colorExp.lastIndex = 0;
18032              if (!_colorExp.test(startValue)) {
18033                startUnit = getUnit(startValue);
18034                endUnit = getUnit(endValue);
18035                endUnit ? startUnit !== endUnit && (startValue = _convertToUnit(target, p2, startValue, endUnit) + endUnit) : startUnit && (endValue += startUnit);
18036              }
18037              this.add(style, "setProperty", startValue, endValue, index, targets, 0, 0, p2);
18038              props.push(p2);
18039              inlineProps.push(p2, 0, style[p2]);
18040            } else if (type !== "undefined") {
18041              if (startAt && p2 in startAt) {
18042                startValue = typeof startAt[p2] === "function" ? startAt[p2].call(tween, index, target, targets) : startAt[p2];
18043                _isString(startValue) && ~startValue.indexOf("random(") && (startValue = _replaceRandom(startValue));
18044                getUnit(startValue + "") || startValue === "auto" || (startValue += _config.units[p2] || getUnit(_get(target, p2)) || "");
18045                (startValue + "").charAt(1) === "=" && (startValue = _get(target, p2));
18046              } else {
18047                startValue = _get(target, p2);
18048              }
18049              startNum = parseFloat(startValue);
18050              relative = type === "string" && endValue.charAt(1) === "=" && endValue.substr(0, 2);
18051              relative && (endValue = endValue.substr(2));
18052              endNum = parseFloat(endValue);
18053              if (p2 in _propertyAliases) {
18054                if (p2 === "autoAlpha") {
18055                  if (startNum === 1 && _get(target, "visibility") === "hidden" && endNum) {
18056                    startNum = 0;
18057                  }
18058                  inlineProps.push("visibility", 0, style.visibility);
18059                  _addNonTweeningPT(this, style, "visibility", startNum ? "inherit" : "hidden", endNum ? "inherit" : "hidden", !endNum);
18060                }
18061                if (p2 !== "scale" && p2 !== "transform") {
18062                  p2 = _propertyAliases[p2];
18063                  ~p2.indexOf(",") && (p2 = p2.split(",")[0]);
18064                }
18065              }
18066              isTransformRelated = p2 in _transformProps;
18067              if (isTransformRelated) {
18068                this.styles.save(p2);
18069                finalTransformValue = endValue;
18070                if (type === "string" && endValue.substring(0, 6) === "var(--") {
18071                  endValue = _getComputedProperty(target, endValue.substring(4, endValue.indexOf(")")));
18072                  if (endValue.substring(0, 5) === "calc(") {
18073                    var origPerspective = target.style.perspective;
18074                    target.style.perspective = endValue;
18075                    endValue = _getComputedProperty(target, "perspective");
18076                    origPerspective ? target.style.perspective = origPerspective : _removeProperty(target, "perspective");
18077                  }
18078                  endNum = parseFloat(endValue);
18079                }
18080                if (!transformPropTween) {
18081                  cache = target._gsap;
18082                  cache.renderTransform && !vars.parseTransform || _parseTransform(target, vars.parseTransform);
18083                  smooth = vars.smoothOrigin !== false && cache.smooth;
18084                  transformPropTween = this._pt = new PropTween(this._pt, style, _transformProp, 0, 1, cache.renderTransform, cache, 0, -1);
18085                  transformPropTween.dep = 1;
18086                }
18087                if (p2 === "scale") {
18088                  this._pt = new PropTween(this._pt, cache, "scaleY", cache.scaleY, (relative ? _parseRelative(cache.scaleY, relative + endNum) : endNum) - cache.scaleY || 0, _renderCSSProp);
18089                  this._pt.u = 0;
18090                  props.push("scaleY", p2);
18091                  p2 += "X";
18092                } else if (p2 === "transformOrigin") {
18093                  inlineProps.push(_transformOriginProp, 0, style[_transformOriginProp]);
18094                  endValue = _convertKeywordsToPercentages(endValue);
18095                  if (cache.svg) {
18096                    _applySVGOrigin(target, endValue, 0, smooth, 0, this);
18097                  } else {
18098                    endUnit = parseFloat(endValue.split(" ")[2]) || 0;
18099                    endUnit !== cache.zOrigin && _addNonTweeningPT(this, cache, "zOrigin", cache.zOrigin, endUnit);
18100                    _addNonTweeningPT(this, style, p2, _firstTwoOnly(startValue), _firstTwoOnly(endValue));
18101                  }
18102                  continue;
18103                } else if (p2 === "svgOrigin") {
18104                  _applySVGOrigin(target, endValue, 1, smooth, 0, this);
18105                  continue;
18106                } else if (p2 in _rotationalProperties) {
18107                  _addRotationalPropTween(this, cache, p2, startNum, relative ? _parseRelative(startNum, relative + endValue) : endValue);
18108                  continue;
18109                } else if (p2 === "smoothOrigin") {
18110                  _addNonTweeningPT(this, cache, "smooth", cache.smooth, endValue);
18111                  continue;
18112                } else if (p2 === "force3D") {
18113                  cache[p2] = endValue;
18114                  continue;
18115                } else if (p2 === "transform") {
18116                  _addRawTransformPTs(this, endValue, target);
18117                  continue;
18118                }
18119              } else if (!(p2 in style)) {
18120                p2 = _checkPropPrefix(p2) || p2;
18121              }
18122              if (isTransformRelated || (endNum || endNum === 0) && (startNum || startNum === 0) && !_complexExp.test(endValue) && p2 in style) {
18123                startUnit = (startValue + "").substr((startNum + "").length);
18124                endNum || (endNum = 0);
18125                endUnit = getUnit(endValue) || (p2 in _config.units ? _config.units[p2] : startUnit);
18126                startUnit !== endUnit && (startNum = _convertToUnit(target, p2, startValue, endUnit));
18127                this._pt = new PropTween(this._pt, isTransformRelated ? cache : style, p2, startNum, (relative ? _parseRelative(startNum, relative + endNum) : endNum) - startNum, !isTransformRelated && (endUnit === "px" || p2 === "zIndex") && vars.autoRound !== false ? _renderRoundedCSSProp : _renderCSSProp);
18128                this._pt.u = endUnit || 0;
18129                if (isTransformRelated && finalTransformValue !== endValue) {
18130                  this._pt.b = startValue;
18131                  this._pt.e = finalTransformValue;
18132                  this._pt.r = _renderCSSPropWithBeginningAndEnd;
18133                } else if (startUnit !== endUnit && endUnit !== "%") {
18134                  this._pt.b = startValue;
18135                  this._pt.r = _renderCSSPropWithBeginning;
18136                }
18137              } else if (!(p2 in style)) {
18138                if (p2 in target) {
18139                  this.add(target, p2, startValue || target[p2], relative ? relative + endValue : endValue, index, targets);
18140                } else if (p2 !== "parseTransform") {
18141                  _missingPlugin(p2, endValue);
18142                  continue;
18143                }
18144              } else {
18145                _tweenComplexCSSString.call(this, target, p2, startValue, relative ? relative + endValue : endValue);
18146              }
18147              isTransformRelated || (p2 in style ? inlineProps.push(p2, 0, style[p2]) : typeof target[p2] === "function" ? inlineProps.push(p2, 2, target[p2]()) : inlineProps.push(p2, 1, startValue || target[p2]));
18148              props.push(p2);
18149            }
18150          }
18151          hasPriority && _sortPropTweensByPriority(this);
18152        },
18153        render: function render2(ratio, data) {
18154          if (data.tween._time || !_reverting2()) {
18155            var pt = data._pt;
18156            while (pt) {
18157              pt.r(ratio, pt.d);
18158              pt = pt._next;
18159            }
18160          } else {
18161            data.styles.revert();
18162          }
18163        },
18164        get: _get,
18165        aliases: _propertyAliases,
18166        getSetter: function getSetter(target, property, plugin) {
18167          var p2 = _propertyAliases[property];
18168          p2 && p2.indexOf(",") < 0 && (property = p2);
18169          return property in _transformProps && property !== _transformOriginProp && (target._gsap.x || _get(target, "x")) ? plugin && _recentSetterPlugin === plugin ? property === "scale" ? _setterScale : _setterTransform : (_recentSetterPlugin = plugin || {}) && (property === "scale" ? _setterScaleWithRender : _setterTransformWithRender) : target.style && !_isUndefined(target.style[property]) ? _setterCSSStyle : ~property.indexOf("-") ? _setterCSSProp : _getSetter(target, property);
18170        },
18171        core: {
18172          _removeProperty,
18173          _getMatrix
18174        }
18175      };
18176      gsap.utils.checkPrefix = _checkPropPrefix;
18177      gsap.core.getStyleSaver = _getStyleSaver;
18178      (function(positionAndScale, rotation, others, aliases) {
18179        var all = _forEachName(positionAndScale + "," + rotation + "," + others, function(name) {
18180          _transformProps[name] = 1;
18181        });
18182        _forEachName(rotation, function(name) {
18183          _config.units[name] = "deg";
18184          _rotationalProperties[name] = 1;
18185        });
18186        _propertyAliases[all[13]] = positionAndScale + "," + rotation;
18187        _forEachName(aliases, function(name) {
18188          var split = name.split(":");
18189          _propertyAliases[split[1]] = all[split[0]];
18190        });
18191      })("x,y,z,scale,scaleX,scaleY,xPercent,yPercent", "rotation,rotationX,rotationY,skewX,skewY", "transform,transformOrigin,svgOrigin,force3D,smoothOrigin,transformPerspective", "0:translateX,1:translateY,2:translateZ,8:rotate,8:rotationZ,8:rotateZ,9:rotateX,10:rotateY");
18192      _forEachName("x,y,z,top,right,bottom,left,width,height,fontSize,padding,margin,perspective", function(name) {
18193        _config.units[name] = "px";
18194      });
18195      gsap.registerPlugin(CSSPlugin);
18196    }
18197  });
18198
18199  
vendor: 300 bytes, lines 18199-18210
18199// node_modules/gsap/index.js
18200  var gsapWithCSS, TweenMaxWithCSS;
18201  var init_gsap = __esm({
18202    "node_modules/gsap/index.js"() {
18203      init_gsap_core();
18204      init_CSSPlugin();
18205      gsapWithCSS = gsap.registerPlugin(CSSPlugin) || gsap;
18206      TweenMaxWithCSS = gsapWithCSS.core.Tween;
18207    }
18208  });
18209
18210  
vendor: 24,289 bytes, lines 18210-18684
18210// node_modules/gsap/Observer.js
18211  function _defineProperties(target, props) {
18212    for (var i10 = 0; i10 < props.length; i10++) {
18213      var descriptor = props[i10];
18214      descriptor.enumerable = descriptor.enumerable || false;
18215      descriptor.configurable = true;
18216      if ("value" in descriptor) descriptor.writable = true;
18217      Object.defineProperty(target, descriptor.key, descriptor);
18218    }
18219  }
18220  function _createClass(Constructor, protoProps, staticProps) {
18221    if (protoProps) _defineProperties(Constructor.prototype, protoProps);
18222    if (staticProps) _defineProperties(Constructor, staticProps);
18223    return Constructor;
18224  }
18225  var gsap2, _coreInitted2, _clamp3, _win3, _doc3, _docEl, _body, _isTouch, _pointerType, ScrollTrigger, _root, _normalizer, _eventTypes, _context2, _getGSAP, _startup, _observers, _scrollers, _proxies, _getTime, _bridge, _integrate, _getProxyProp, _isViewport, _addListener, _removeListener, _scrollLeft, _scrollTop, _onScroll, _scrollCacheFunc, _horizontal, _vertical, _getTarget, _isWithin, _getScrollFunc, _getVelocityProp, _getEvent, _getAbsoluteMax, _setScrollTrigger, _initCore3, Observer;
18226  var init_Observer = __esm({
18227    "node_modules/gsap/Observer.js"() {
18228      _getGSAP = function _getGSAP2() {
18229        return gsap2 || typeof window !== "undefined" && (gsap2 = window.gsap) && gsap2.registerPlugin && gsap2;
18230      };
18231      _startup = 1;
18232      _observers = [];
18233      _scrollers = [];
18234      _proxies = [];
18235      _getTime = Date.now;
18236      _bridge = function _bridge2(name, value) {
18237        return value;
18238      };
18239      _integrate = function _integrate2() {
18240        var core = ScrollTrigger.core, data = core.bridge || {}, scrollers = core._scrollers, proxies = core._proxies;
18241        scrollers.push.apply(scrollers, _scrollers);
18242        proxies.push.apply(proxies, _proxies);
18243        _scrollers = scrollers;
18244        _proxies = proxies;
18245        _bridge = function _bridge3(name, value) {
18246          return data[name](value);
18247        };
18248      };
18249      _getProxyProp = function _getProxyProp2(element, property) {
18250        return ~_proxies.indexOf(element) && _proxies[_proxies.indexOf(element) + 1][property];
18251      };
18252      _isViewport = function _isViewport2(el) {
18253        return !!~_root.indexOf(el);
18254      };
18255      _addListener = function _addListener2(element, type, func, passive, capture) {
18256        return element.addEventListener(type, func, {
18257          passive: passive !== false,
18258          capture: !!capture
18259        });
18260      };
18261      _removeListener = function _removeListener2(element, type, func, capture) {
18262        return element.removeEventListener(type, func, !!capture);
18263      };
18264      _scrollLeft = "scrollLeft";
18265      _scrollTop = "scrollTop";
18266      _onScroll = function _onScroll2() {
18267        return _normalizer && _normalizer.isPressed || _scrollers.cache++;
18268      };
18269      _scrollCacheFunc = function _scrollCacheFunc2(f3, doNotCache) {
18270        var cachingFunc = function cachingFunc2(value) {
18271          if (value || value === 0) {
18272            _startup && (_win3.history.scrollRestoration = "manual");
18273            var isNormalizing = _normalizer && _normalizer.isPressed;
18274            value = cachingFunc2.v = Math.round(value) || (_normalizer && _normalizer.iOS ? 1 : 0);
18275            f3(value);
18276            cachingFunc2.cacheID = _scrollers.cache;
18277            isNormalizing && _bridge("ss", value);
18278          } else if (doNotCache || _scrollers.cache !== cachingFunc2.cacheID || _bridge("ref")) {
18279            cachingFunc2.cacheID = _scrollers.cache;
18280            cachingFunc2.v = f3();
18281          }
18282          return cachingFunc2.v + cachingFunc2.offset;
18283        };
18284        cachingFunc.offset = 0;
18285        return f3 && cachingFunc;
18286      };
18287      _horizontal = {
18288        s: _scrollLeft,
18289        p: "left",
18290        p2: "Left",
18291        os: "right",
18292        os2: "Right",
18293        d: "width",
18294        d2: "Width",
18295        a: "x",
18296        sc: _scrollCacheFunc(function(value) {
18297          return arguments.length ? _win3.scrollTo(value, _vertical.sc()) : _win3.pageXOffset || _doc3[_scrollLeft] || _docEl[_scrollLeft] || _body[_scrollLeft] || 0;
18298        })
18299      };
18300      _vertical = {
18301        s: _scrollTop,
18302        p: "top",
18303        p2: "Top",
18304        os: "bottom",
18305        os2: "Bottom",
18306        d: "height",
18307        d2: "Height",
18308        a: "y",
18309        op: _horizontal,
18310        sc: _scrollCacheFunc(function(value) {
18311          return arguments.length ? _win3.scrollTo(_horizontal.sc(), value) : _win3.pageYOffset || _doc3[_scrollTop] || _docEl[_scrollTop] || _body[_scrollTop] || 0;
18312        })
18313      };
18314      _getTarget = function _getTarget2(t11, self2) {
18315        return (self2 && self2._ctx && self2._ctx.selector || gsap2.utils.toArray)(t11)[0] || (typeof t11 === "string" && gsap2.config().nullTargetWarn !== false ? console.warn("Element not found:", t11) : null);
18316      };
18317      _isWithin = function _isWithin2(element, list) {
18318        var i10 = list.length;
18319        while (i10--) {
18320          if (list[i10] === element || list[i10].contains(element)) {
18321            return true;
18322          }
18323        }
18324        return false;
18325      };
18326      _getScrollFunc = function _getScrollFunc2(element, _ref) {
18327        var s13 = _ref.s, sc = _ref.sc;
18328        _isViewport(element) && (element = _doc3.scrollingElement || _docEl);
18329        var i10 = _scrollers.indexOf(element), offset = sc === _vertical.sc ? 1 : 2;
18330        !~i10 && (i10 = _scrollers.push(element) - 1);
18331        _scrollers[i10 + offset] || _addListener(element, "scroll", _onScroll);
18332        var prev = _scrollers[i10 + offset], func = prev || (_scrollers[i10 + offset] = _scrollCacheFunc(_getProxyProp(element, s13), true) || (_isViewport(element) ? sc : _scrollCacheFunc(function(value) {
18333          return arguments.length ? element[s13] = value : element[s13];
18334        })));
18335        func.target = element;
18336        prev || (func.smooth = gsap2.getProperty(element, "scrollBehavior") === "smooth");
18337        return func;
18338      };
18339      _getVelocityProp = function _getVelocityProp2(value, minTimeRefresh, useDelta) {
18340        var v1 = value, v22 = value, t1 = _getTime(), t22 = t1, min = minTimeRefresh || 50, dropToZeroTime = Math.max(500, min * 3), update = function update2(value2, force) {
18341          var t11 = _getTime();
18342          if (force || t11 - t1 > min) {
18343            v22 = v1;
18344            v1 = value2;
18345            t22 = t1;
18346            t1 = t11;
18347          } else if (useDelta) {
18348            v1 += value2;
18349          } else {
18350            v1 = v22 + (value2 - v22) / (t11 - t22) * (t1 - t22);
18351          }
18352        }, reset = function reset2() {
18353          v22 = v1 = useDelta ? 0 : v1;
18354          t22 = t1 = 0;
18355        }, getVelocity = function getVelocity2(latestValue) {
18356          var tOld = t22, vOld = v22, t11 = _getTime();
18357          (latestValue || latestValue === 0) && latestValue !== v1 && update(latestValue);
18358          return t1 === t22 || t11 - t22 > dropToZeroTime ? 0 : (v1 + (useDelta ? vOld : -vOld)) / ((useDelta ? t11 : t1) - tOld) * 1e3;
18359        };
18360        return {
18361          update,
18362          reset,
18363          getVelocity
18364        };
18365      };
18366      _getEvent = function _getEvent2(e11, preventDefault) {
18367        preventDefault && !e11._gsapAllow && e11.preventDefault();
18368        return e11.changedTouches ? e11.changedTouches[0] : e11;
18369      };
18370      _getAbsoluteMax = function _getAbsoluteMax2(a8) {
18371        var max = Math.max.apply(Math, a8), min = Math.min.apply(Math, a8);
18372        return Math.abs(max) >= Math.abs(min) ? max : min;
18373      };
18374      _setScrollTrigger = function _setScrollTrigger2() {
18375        ScrollTrigger = gsap2.core.globals().ScrollTrigger;
18376        ScrollTrigger && ScrollTrigger.core && _integrate();
18377      };
18378      _initCore3 = function _initCore4(core) {
18379        gsap2 = core || _getGSAP();
18380        if (!_coreInitted2 && gsap2 && typeof document !== "undefined" && document.body) {
18381          _win3 = window;
18382          _doc3 = document;
18383          _docEl = _doc3.documentElement;
18384          _body = _doc3.body;
18385          _root = [_win3, _doc3, _docEl, _body];
18386          _clamp3 = gsap2.utils.clamp;
18387          _context2 = gsap2.core.context || function() {
18388          };
18389          _pointerType = "onpointerenter" in _body ? "pointer" : "mouse";
18390          _isTouch = Observer.isTouch = _win3.matchMedia && _win3.matchMedia("(hover: none), (pointer: coarse)").matches ? 1 : "ontouchstart" in _win3 || navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0 ? 2 : 0;
18391          _eventTypes = Observer.eventTypes = ("ontouchstart" in _docEl ? "touchstart,touchmove,touchcancel,touchend" : !("onpointerdown" in _docEl) ? "mousedown,mousemove,mouseup,mouseup" : "pointerdown,pointermove,pointercancel,pointerup").split(",");
18392          setTimeout(function() {
18393            return _startup = 0;
18394          }, 500);
18395          _setScrollTrigger();
18396          _coreInitted2 = 1;
18397        }
18398        return _coreInitted2;
18399      };
18400      _horizontal.op = _vertical;
18401      _scrollers.cache = 0;
18402      Observer = /* @__PURE__ */ (function() {
18403        function Observer2(vars) {
18404          this.init(vars);
18405        }
18406        var _proto = Observer2.prototype;
18407        _proto.init = function init5(vars) {
18408          _coreInitted2 || _initCore3(gsap2) || console.warn("Please gsap.registerPlugin(Observer)");
18409          ScrollTrigger || _setScrollTrigger();
18410          var tolerance = vars.tolerance, dragMinimum = vars.dragMinimum, type = vars.type, target = vars.target, lineHeight = vars.lineHeight, debounce = vars.debounce, preventDefault = vars.preventDefault, onStop = vars.onStop, onStopDelay = vars.onStopDelay, ignore = vars.ignore, wheelSpeed = vars.wheelSpeed, event = vars.event, onDragStart = vars.onDragStart, onDragEnd = vars.onDragEnd, onDrag = vars.onDrag, onPress = vars.onPress, onRelease = vars.onRelease, onRight = vars.onRight, onLeft = vars.onLeft, onUp = vars.onUp, onDown = vars.onDown, onChangeX = vars.onChangeX, onChangeY = vars.onChangeY, onChange = vars.onChange, onToggleX = vars.onToggleX, onToggleY = vars.onToggleY, onHover = vars.onHover, onHoverEnd = vars.onHoverEnd, onMove = vars.onMove, ignoreCheck = vars.ignoreCheck, isNormalizer = vars.isNormalizer, onGestureStart = vars.onGestureStart, onGestureEnd = vars.onGestureEnd, onWheel = vars.onWheel, onEnable = vars.onEnable, onDisable = vars.onDisable, onClick = vars.onClick, scrollSpeed = vars.scrollSpeed, capture = vars.capture, allowClicks = vars.allowClicks, lockAxis = vars.lockAxis, onLockAxis = vars.onLockAxis;
18411          this.target = target = _getTarget(target) || _docEl;
18412          this.vars = vars;
18413          ignore && (ignore = gsap2.utils.toArray(ignore));
18414          tolerance = tolerance || 1e-9;
18415          dragMinimum = dragMinimum || 0;
18416          wheelSpeed = wheelSpeed || 1;
18417          scrollSpeed = scrollSpeed || 1;
18418          type = type || "wheel,touch,pointer";
18419          debounce = debounce !== false;
18420          lineHeight || (lineHeight = parseFloat(_win3.getComputedStyle(_body).lineHeight) || 22);
18421          var id, onStopDelayedCall, dragged, moved, wheeled, locked, axis, self2 = this, prevDeltaX = 0, prevDeltaY = 0, passive = vars.passive || !preventDefault && vars.passive !== false, scrollFuncX = _getScrollFunc(target, _horizontal), scrollFuncY = _getScrollFunc(target, _vertical), scrollX = scrollFuncX(), scrollY = scrollFuncY(), limitToTouch = ~type.indexOf("touch") && !~type.indexOf("pointer") && _eventTypes[0] === "pointerdown", isViewport = _isViewport(target), ownerDoc = target.ownerDocument || _doc3, deltaX = [0, 0, 0], deltaY = [0, 0, 0], onClickTime = 0, clickCapture = function clickCapture2() {
18422            return onClickTime = _getTime();
18423          }, _ignoreCheck = function _ignoreCheck2(e11, isPointerOrTouch) {
18424            return (self2.event = e11) && ignore && _isWithin(e11.target, ignore) || isPointerOrTouch && limitToTouch && e11.pointerType !== "touch" || ignoreCheck && ignoreCheck(e11, isPointerOrTouch);
18425          }, onStopFunc = function onStopFunc2() {
18426            self2._vx.reset();
18427            self2._vy.reset();
18428            onStopDelayedCall.pause();
18429            onStop && onStop(self2);
18430          }, update = function update2() {
18431            var dx = self2.deltaX = _getAbsoluteMax(deltaX), dy = self2.deltaY = _getAbsoluteMax(deltaY), changedX = Math.abs(dx) >= tolerance, changedY = Math.abs(dy) >= tolerance;
18432            onChange && (changedX || changedY) && onChange(self2, dx, dy, deltaX, deltaY);
18433            if (changedX) {
18434              onRight && self2.deltaX > 0 && onRight(self2);
18435              onLeft && self2.deltaX < 0 && onLeft(self2);
18436              onChangeX && onChangeX(self2);
18437              onToggleX && self2.deltaX < 0 !== prevDeltaX < 0 && onToggleX(self2);
18438              prevDeltaX = self2.deltaX;
18439              deltaX[0] = deltaX[1] = deltaX[2] = 0;
18440            }
18441            if (changedY) {
18442              onDown && self2.deltaY > 0 && onDown(self2);
18443              onUp && self2.deltaY < 0 && onUp(self2);
18444              onChangeY && onChangeY(self2);
18445              onToggleY && self2.deltaY < 0 !== prevDeltaY < 0 && onToggleY(self2);
18446              prevDeltaY = self2.deltaY;
18447              deltaY[0] = deltaY[1] = deltaY[2] = 0;
18448            }
18449            if (moved || dragged) {
18450              onMove && onMove(self2);
18451              if (dragged) {
18452                onDragStart && dragged === 1 && onDragStart(self2);
18453                onDrag && onDrag(self2);
18454                dragged = 0;
18455              }
18456              moved = false;
18457            }
18458            locked && !(locked = false) && onLockAxis && onLockAxis(self2);
18459            if (wheeled) {
18460              onWheel(self2);
18461              wheeled = false;
18462            }
18463            id = 0;
18464          }, onDelta = function onDelta2(x2, y3, index) {
18465            deltaX[index] += x2;
18466            deltaY[index] += y3;
18467            self2._vx.update(x2);
18468            self2._vy.update(y3);
18469            debounce ? id || (id = requestAnimationFrame(update)) : update();
18470          }, onTouchOrPointerDelta = function onTouchOrPointerDelta2(x2, y3) {
18471            if (lockAxis && !axis) {
18472              self2.axis = axis = Math.abs(x2) > Math.abs(y3) ? "x" : "y";
18473              locked = true;
18474            }
18475            if (axis !== "y") {
18476              deltaX[2] += x2;
18477              self2._vx.update(x2, true);
18478            }
18479            if (axis !== "x") {
18480              deltaY[2] += y3;
18481              self2._vy.update(y3, true);
18482            }
18483            debounce ? id || (id = requestAnimationFrame(update)) : update();
18484          }, _onDrag = function _onDrag2(e11) {
18485            if (_ignoreCheck(e11, 1)) {
18486              return;
18487            }
18488            e11 = _getEvent(e11, preventDefault);
18489            var x2 = e11.clientX, y3 = e11.clientY, dx = x2 - self2.x, dy = y3 - self2.y, isDragging = self2.isDragging;
18490            self2.x = x2;
18491            self2.y = y3;
18492            if (isDragging || (dx || dy) && (Math.abs(self2.startX - x2) >= dragMinimum || Math.abs(self2.startY - y3) >= dragMinimum)) {
18493              dragged || (dragged = isDragging ? 2 : 1);
18494              isDragging || (self2.isDragging = true);
18495              onTouchOrPointerDelta(dx, dy);
18496            }
18497          }, _onPress = self2.onPress = function(e11) {
18498            if (_ignoreCheck(e11, 1) || e11 && e11.button) {
18499              return;
18500            }
18501            self2.axis = axis = null;
18502            onStopDelayedCall.pause();
18503            self2.isPressed = true;
18504            e11 = _getEvent(e11);
18505            prevDeltaX = prevDeltaY = 0;
18506            self2.startX = self2.x = e11.clientX;
18507            self2.startY = self2.y = e11.clientY;
18508            self2._vx.reset();
18509            self2._vy.reset();
18510            _addListener(isNormalizer ? target : ownerDoc, _eventTypes[1], _onDrag, passive, true);
18511            self2.deltaX = self2.deltaY = 0;
18512            onPress && onPress(self2);
18513          }, _onRelease = self2.onRelease = function(e11) {
18514            if (_ignoreCheck(e11, 1)) {
18515              return;
18516            }
18517            _removeListener(isNormalizer ? target : ownerDoc, _eventTypes[1], _onDrag, true);
18518            var isTrackingDrag = !isNaN(self2.y - self2.startY), wasDragging = self2.isDragging, isDragNotClick = wasDragging && (Math.abs(self2.x - self2.startX) > 3 || Math.abs(self2.y - self2.startY) > 3), eventData = _getEvent(e11);
18519            if (!isDragNotClick && isTrackingDrag) {
18520              self2._vx.reset();
18521              self2._vy.reset();
18522              if (preventDefault && allowClicks) {
18523                gsap2.delayedCall(0.08, function() {
18524                  if (_getTime() - onClickTime > 300 && !e11.defaultPrevented) {
18525                    if (e11.target.click) {
18526                      e11.target.click();
18527                    } else if (ownerDoc.createEvent) {
18528                      var syntheticEvent = ownerDoc.createEvent("MouseEvents");
18529                      syntheticEvent.initMouseEvent("click", true, true, _win3, 1, eventData.screenX, eventData.screenY, eventData.clientX, eventData.clientY, false, false, false, false, 0, null);
18530                      e11.target.dispatchEvent(syntheticEvent);
18531                    }
18532                  }
18533                });
18534              }
18535            }
18536            self2.isDragging = self2.isGesturing = self2.isPressed = false;
18537            onStop && wasDragging && !isNormalizer && onStopDelayedCall.restart(true);
18538            dragged && update();
18539            onDragEnd && wasDragging && onDragEnd(self2);
18540            onRelease && onRelease(self2, isDragNotClick);
18541          }, _onGestureStart = function _onGestureStart2(e11) {
18542            return e11.touches && e11.touches.length > 1 && (self2.isGesturing = true) && onGestureStart(e11, self2.isDragging);
18543          }, _onGestureEnd = function _onGestureEnd2() {
18544            return (self2.isGesturing = false) || onGestureEnd(self2);
18545          }, onScroll = function onScroll2(e11) {
18546            if (_ignoreCheck(e11)) {
18547              return;
18548            }
18549            var x2 = scrollFuncX(), y3 = scrollFuncY();
18550            onDelta((x2 - scrollX) * scrollSpeed, (y3 - scrollY) * scrollSpeed, 1);
18551            scrollX = x2;
18552            scrollY = y3;
18553            onStop && onStopDelayedCall.restart(true);
18554          }, _onWheel = function _onWheel2(e11) {
18555            if (_ignoreCheck(e11)) {
18556              return;
18557            }
18558            e11 = _getEvent(e11, preventDefault);
18559            onWheel && (wheeled = true);
18560            var multiplier = (e11.deltaMode === 1 ? lineHeight : e11.deltaMode === 2 ? _win3.innerHeight : 1) * wheelSpeed;
18561            onDelta(e11.deltaX * multiplier, e11.deltaY * multiplier, 0);
18562            onStop && !isNormalizer && onStopDelayedCall.restart(true);
18563          }, _onMove = function _onMove2(e11) {
18564            if (_ignoreCheck(e11)) {
18565              return;
18566            }
18567            var x2 = e11.clientX, y3 = e11.clientY, dx = x2 - self2.x, dy = y3 - self2.y;
18568            self2.x = x2;
18569            self2.y = y3;
18570            moved = true;
18571            onStop && onStopDelayedCall.restart(true);
18572            (dx || dy) && onTouchOrPointerDelta(dx, dy);
18573          }, _onHover = function _onHover2(e11) {
18574            self2.event = e11;
18575            onHover(self2);
18576          }, _onHoverEnd = function _onHoverEnd2(e11) {
18577            self2.event = e11;
18578            onHoverEnd(self2);
18579          }, _onClick = function _onClick2(e11) {
18580            return _ignoreCheck(e11) || _getEvent(e11, preventDefault) && onClick(self2);
18581          };
18582          onStopDelayedCall = self2._dc = gsap2.delayedCall(onStopDelay || 0.25, onStopFunc).pause();
18583          self2.deltaX = self2.deltaY = 0;
18584          self2._vx = _getVelocityProp(0, 50, true);
18585          self2._vy = _getVelocityProp(0, 50, true);
18586          self2.scrollX = scrollFuncX;
18587          self2.scrollY = scrollFuncY;
18588          self2.isDragging = self2.isGesturing = self2.isPressed = false;
18589          _context2(this);
18590          self2.enable = function(e11) {
18591            if (!self2.isEnabled) {
18592              _addListener(isViewport ? ownerDoc : target, "scroll", _onScroll);
18593              type.indexOf("scroll") >= 0 && _addListener(isViewport ? ownerDoc : target, "scroll", onScroll, passive, capture);
18594              type.indexOf("wheel") >= 0 && _addListener(target, "wheel", _onWheel, passive, capture);
18595              if (type.indexOf("touch") >= 0 && _isTouch || type.indexOf("pointer") >= 0) {
18596                _addListener(target, _eventTypes[0], _onPress, passive, capture);
18597                _addListener(ownerDoc, _eventTypes[2], _onRelease);
18598                _addListener(ownerDoc, _eventTypes[3], _onRelease);
18599                allowClicks && _addListener(target, "click", clickCapture, true, true);
18600                onClick && _addListener(target, "click", _onClick);
18601                onGestureStart && _addListener(ownerDoc, "gesturestart", _onGestureStart);
18602                onGestureEnd && _addListener(ownerDoc, "gestureend", _onGestureEnd);
18603                onHover && _addListener(target, _pointerType + "enter", _onHover);
18604                onHoverEnd && _addListener(target, _pointerType + "leave", _onHoverEnd);
18605                onMove && _addListener(target, _pointerType + "move", _onMove);
18606              }
18607              self2.isEnabled = true;
18608              self2.isDragging = self2.isGesturing = self2.isPressed = moved = dragged = false;
18609              self2._vx.reset();
18610              self2._vy.reset();
18611              scrollX = scrollFuncX();
18612              scrollY = scrollFuncY();
18613              e11 && e11.type && _onPress(e11);
18614              onEnable && onEnable(self2);
18615            }
18616            return self2;
18617          };
18618          self2.disable = function() {
18619            if (self2.isEnabled) {
18620              _observers.filter(function(o11) {
18621                return o11 !== self2 && _isViewport(o11.target);
18622              }).length || _removeListener(isViewport ? ownerDoc : target, "scroll", _onScroll);
18623              if (self2.isPressed) {
18624                self2._vx.reset();
18625                self2._vy.reset();
18626                _removeListener(isNormalizer ? target : ownerDoc, _eventTypes[1], _onDrag, true);
18627              }
18628              _removeListener(isViewport ? ownerDoc : target, "scroll", onScroll, capture);
18629              _removeListener(target, "wheel", _onWheel, capture);
18630              _removeListener(target, _eventTypes[0], _onPress, capture);
18631              _removeListener(ownerDoc, _eventTypes[2], _onRelease);
18632              _removeListener(ownerDoc, _eventTypes[3], _onRelease);
18633              _removeListener(target, "click", clickCapture, true);
18634              _removeListener(target, "click", _onClick);
18635              _removeListener(ownerDoc, "gesturestart", _onGestureStart);
18636              _removeListener(ownerDoc, "gestureend", _onGestureEnd);
18637              _removeListener(target, _pointerType + "enter", _onHover);
18638              _removeListener(target, _pointerType + "leave", _onHoverEnd);
18639              _removeListener(target, _pointerType + "move", _onMove);
18640              self2.isEnabled = self2.isPressed = self2.isDragging = false;
18641              onDisable && onDisable(self2);
18642            }
18643          };
18644          self2.kill = self2.revert = function() {
18645            self2.disable();
18646            var i10 = _observers.indexOf(self2);
18647            i10 >= 0 && _observers.splice(i10, 1);
18648            _normalizer === self2 && (_normalizer = 0);
18649          };
18650          _observers.push(self2);
18651          isNormalizer && _isViewport(target) && (_normalizer = self2);
18652          self2.enable(event);
18653        };
18654        _createClass(Observer2, [{
18655          key: "velocityX",
18656          get: function get() {
18657            return this._vx.getVelocity();
18658          }
18659        }, {
18660          key: "velocityY",
18661          get: function get() {
18662            return this._vy.getVelocity();
18663          }
18664        }]);
18665        return Observer2;
18666      })();
18667      Observer.version = "3.14.2";
18668      Observer.create = function(vars) {
18669        return new Observer(vars);
18670      };
18671      Observer.register = _initCore3;
18672      Observer.getAll = function() {
18673        return _observers.slice();
18674      };
18675      Observer.getById = function(id) {
18676        return _observers.filter(function(o11) {
18677          return o11.vars.id === id;
18678        })[0];
18679      };
18680      _getGSAP() && gsap2.registerPlugin(Observer);
18681    }
18682  });
18683
18684  
vendor: 97,346 bytes, lines 18684-20554
18684// node_modules/gsap/ScrollTrigger.js
18685  var gsap3, _coreInitted3, _win4, _doc4, _docEl2, _body2, _root2, _resizeDelay, _toArray, _clamp4, _time2, _syncInterval, _refreshing, _pointerIsDown, _transformProp2, _i, _prevWidth, _prevHeight, _autoRefresh, _sort, _suppressOverwrites2, _ignoreResize, _normalizer2, _ignoreMobileResize, _baseScreenHeight, _baseScreenWidth, _fixIOSBug, _context3, _scrollRestoration, _div100vh, _100vh, _isReverted, _clampingMax, _limitCallbacks, _startup2, _getTime2, _time1, _lastScrollTime, _enabled, _parseClamp, _keepClamp, _rafBugFix, _pointerDownHandler, _pointerUpHandler, _passThrough3, _round3, _windowExists5, _getGSAP3, _isViewport3, _getViewportDimension, _getBoundsFunc, _getSizeFunc, _getOffsetsFunc, _maxScroll, _iterateAutoRefresh, _isString3, _isFunction3, _isNumber3, _isObject3, _endAnimation, _callback3, _abs, _left, _top, _right, _bottom, _width, _height, _Right, _Left, _Top, _Bottom, _padding, _margin, _Width, _Height, _px, _getComputedStyle, _makePositionable, _setDefaults3, _getBounds, _getSize, _getLabelRatioArray, _getClosestLabel, _snapDirectional, _getLabelAtDirection, _multiListener, _addListener3, _removeListener3, _wheelListener, _markerDefaults, _defaults2, _keywords, _offsetToPx, _createMarker, _positionMarker, _triggers, _ids, _rafID, _sync, _onScroll3, _setBaseDimensions, _onResize, _listeners2, _emptyArray2, _softRefresh, _dispatch3, _savedStyles, _revertRecorded, _recordScrollPositions, _revertAll, _clearScrollMemory, _refreshingAll, _refreshID, _queueRefreshID, _queueRefreshAll, _refresh100vh, _hideAllMarkers, _refreshAll, _lastScroll, _direction, _primary, _updateAll, _propNamesToCopy, _stateProps, _swapPinOut, _swapPinIn, _capsExp2, _setState, _getState, _copyState, _winOffsets, _parsePosition3, _prefixExp, _reparent, _interruptionTracker, _shiftMarker, _getTweenCreator, ScrollTrigger2, _clampScrollAndGetDurationMultiplier, _allowNativePanning, _overflow, _nestedScroll, _inputObserver, _inputExp, _inputIsFocused, _captureInputs, _getScrollNormalizer;
18686  var init_ScrollTrigger = __esm({
18687    "node_modules/gsap/ScrollTrigger.js"() {
18688      init_Observer();
18689      _startup2 = 1;
18690      _getTime2 = Date.now;
18691      _time1 = _getTime2();
18692      _lastScrollTime = 0;
18693      _enabled = 0;
18694      _parseClamp = function _parseClamp2(value, type, self2) {
18695        var clamp3 = _isString3(value) && (value.substr(0, 6) === "clamp(" || value.indexOf("max") > -1);
18696        self2["_" + type + "Clamp"] = clamp3;
18697        return clamp3 ? value.substr(6, value.length - 7) : value;
18698      };
18699      _keepClamp = function _keepClamp2(value, clamp3) {
18700        return clamp3 && (!_isString3(value) || value.substr(0, 6) !== "clamp(") ? "clamp(" + value + ")" : value;
18701      };
18702      _rafBugFix = function _rafBugFix2() {
18703        return _enabled && requestAnimationFrame(_rafBugFix2);
18704      };
18705      _pointerDownHandler = function _pointerDownHandler2() {
18706        return _pointerIsDown = 1;
18707      };
18708      _pointerUpHandler = function _pointerUpHandler2() {
18709        return _pointerIsDown = 0;
18710      };
18711      _passThrough3 = function _passThrough4(v3) {
18712        return v3;
18713      };
18714      _round3 = function _round4(value) {
18715        return Math.round(value * 1e5) / 1e5 || 0;
18716      };
18717      _windowExists5 = function _windowExists6() {
18718        return typeof window !== "undefined";
18719      };
18720      _getGSAP3 = function _getGSAP4() {
18721        return gsap3 || _windowExists5() && (gsap3 = window.gsap) && gsap3.registerPlugin && gsap3;
18722      };
18723      _isViewport3 = function _isViewport4(e11) {
18724        return !!~_root2.indexOf(e11);
18725      };
18726      _getViewportDimension = function _getViewportDimension2(dimensionProperty) {
18727        return (dimensionProperty === "Height" ? _100vh : _win4["inner" + dimensionProperty]) || _docEl2["client" + dimensionProperty] || _body2["client" + dimensionProperty];
18728      };
18729      _getBoundsFunc = function _getBoundsFunc2(element) {
18730        return _getProxyProp(element, "getBoundingClientRect") || (_isViewport3(element) ? function() {
18731          _winOffsets.width = _win4.innerWidth;
18732          _winOffsets.height = _100vh;
18733          return _winOffsets;
18734        } : function() {
18735          return _getBounds(element);
18736        });
18737      };
18738      _getSizeFunc = function _getSizeFunc2(scroller, isViewport, _ref) {
18739        var d3 = _ref.d, d22 = _ref.d2, a8 = _ref.a;
18740        return (a8 = _getProxyProp(scroller, "getBoundingClientRect")) ? function() {
18741          return a8()[d3];
18742        } : function() {
18743          return (isViewport ? _getViewportDimension(d22) : scroller["client" + d22]) || 0;
18744        };
18745      };
18746      _getOffsetsFunc = function _getOffsetsFunc2(element, isViewport) {
18747        return !isViewport || ~_proxies.indexOf(element) ? _getBoundsFunc(element) : function() {
18748          return _winOffsets;
18749        };
18750      };
18751      _maxScroll = function _maxScroll2(element, _ref2) {
18752        var s13 = _ref2.s, d22 = _ref2.d2, d3 = _ref2.d, a8 = _ref2.a;
18753        return Math.max(0, (s13 = "scroll" + d22) && (a8 = _getProxyProp(element, s13)) ? a8() - _getBoundsFunc(element)()[d3] : _isViewport3(element) ? (_docEl2[s13] || _body2[s13]) - _getViewportDimension(d22) : element[s13] - element["offset" + d22]);
18754      };
18755      _iterateAutoRefresh = function _iterateAutoRefresh2(func, events) {
18756        for (var i10 = 0; i10 < _autoRefresh.length; i10 += 3) {
18757          (!events || ~events.indexOf(_autoRefresh[i10 + 1])) && func(_autoRefresh[i10], _autoRefresh[i10 + 1], _autoRefresh[i10 + 2]);
18758        }
18759      };
18760      _isString3 = function _isString4(value) {
18761        return typeof value === "string";
18762      };
18763      _isFunction3 = function _isFunction4(value) {
18764        return typeof value === "function";
18765      };
18766      _isNumber3 = function _isNumber4(value) {
18767        return typeof value === "number";
18768      };
18769      _isObject3 = function _isObject4(value) {
18770        return typeof value === "object";
18771      };
18772      _endAnimation = function _endAnimation2(animation, reversed, pause) {
18773        return animation && animation.progress(reversed ? 0 : 1) && pause && animation.pause();
18774      };
18775      _callback3 = function _callback4(self2, func) {
18776        if (self2.enabled) {
18777          var result = self2._ctx ? self2._ctx.add(function() {
18778            return func(self2);
18779          }) : func(self2);
18780          result && result.totalTime && (self2.callbackAnimation = result);
18781        }
18782      };
18783      _abs = Math.abs;
18784      _left = "left";
18785      _top = "top";
18786      _right = "right";
18787      _bottom = "bottom";
18788      _width = "width";
18789      _height = "height";
18790      _Right = "Right";
18791      _Left = "Left";
18792      _Top = "Top";
18793      _Bottom = "Bottom";
18794      _padding = "padding";
18795      _margin = "margin";
18796      _Width = "Width";
18797      _Height = "Height";
18798      _px = "px";
18799      _getComputedStyle = function _getComputedStyle2(element) {
18800        return _win4.getComputedStyle(element);
18801      };
18802      _makePositionable = function _makePositionable2(element) {
18803        var position = _getComputedStyle(element).position;
18804        element.style.position = position === "absolute" || position === "fixed" ? position : "relative";
18805      };
18806      _setDefaults3 = function _setDefaults4(obj, defaults2) {
18807        for (var p2 in defaults2) {
18808          p2 in obj || (obj[p2] = defaults2[p2]);
18809        }
18810        return obj;
18811      };
18812      _getBounds = function _getBounds2(element, withoutTransforms) {
18813        var tween = withoutTransforms && _getComputedStyle(element)[_transformProp2] !== "matrix(1, 0, 0, 1, 0, 0)" && gsap3.to(element, {
18814          x: 0,
18815          y: 0,
18816          xPercent: 0,
18817          yPercent: 0,
18818          rotation: 0,
18819          rotationX: 0,
18820          rotationY: 0,
18821          scale: 1,
18822          skewX: 0,
18823          skewY: 0
18824        }).progress(1), bounds = element.getBoundingClientRect();
18825        tween && tween.progress(0).kill();
18826        return bounds;
18827      };
18828      _getSize = function _getSize2(element, _ref3) {
18829        var d22 = _ref3.d2;
18830        return element["offset" + d22] || element["client" + d22] || 0;
18831      };
18832      _getLabelRatioArray = function _getLabelRatioArray2(timeline2) {
18833        var a8 = [], labels = timeline2.labels, duration = timeline2.duration(), p2;
18834        for (p2 in labels) {
18835          a8.push(labels[p2] / duration);
18836        }
18837        return a8;
18838      };
18839      _getClosestLabel = function _getClosestLabel2(animation) {
18840        return function(value) {
18841          return gsap3.utils.snap(_getLabelRatioArray(animation), value);
18842        };
18843      };
18844      _snapDirectional = function _snapDirectional2(snapIncrementOrArray) {
18845        var snap3 = gsap3.utils.snap(snapIncrementOrArray), a8 = Array.isArray(snapIncrementOrArray) && snapIncrementOrArray.slice(0).sort(function(a9, b3) {
18846          return a9 - b3;
18847        });
18848        return a8 ? function(value, direction, threshold) {
18849          if (threshold === void 0) {
18850            threshold = 1e-3;
18851          }
18852          var i10;
18853          if (!direction) {
18854            return snap3(value);
18855          }
18856          if (direction > 0) {
18857            value -= threshold;
18858            for (i10 = 0; i10 < a8.length; i10++) {
18859              if (a8[i10] >= value) {
18860                return a8[i10];
18861              }
18862            }
18863            return a8[i10 - 1];
18864          } else {
18865            i10 = a8.length;
18866            value += threshold;
18867            while (i10--) {
18868              if (a8[i10] <= value) {
18869                return a8[i10];
18870              }
18871            }
18872          }
18873          return a8[0];
18874        } : function(value, direction, threshold) {
18875          if (threshold === void 0) {
18876            threshold = 1e-3;
18877          }
18878          var snapped = snap3(value);
18879          return !direction || Math.abs(snapped - value) < threshold || snapped - value < 0 === direction < 0 ? snapped : snap3(direction < 0 ? value - snapIncrementOrArray : value + snapIncrementOrArray);
18880        };
18881      };
18882      _getLabelAtDirection = function _getLabelAtDirection2(timeline2) {
18883        return function(value, st) {
18884          return _snapDirectional(_getLabelRatioArray(timeline2))(value, st.direction);
18885        };
18886      };
18887      _multiListener = function _multiListener2(func, element, types, callback) {
18888        return types.split(",").forEach(function(type) {
18889          return func(element, type, callback);
18890        });
18891      };
18892      _addListener3 = function _addListener4(element, type, func, nonPassive, capture) {
18893        return element.addEventListener(type, func, {
18894          passive: !nonPassive,
18895          capture: !!capture
18896        });
18897      };
18898      _removeListener3 = function _removeListener4(element, type, func, capture) {
18899        return element.removeEventListener(type, func, !!capture);
18900      };
18901      _wheelListener = function _wheelListener2(func, el, scrollFunc) {
18902        scrollFunc = scrollFunc && scrollFunc.wheelHandler;
18903        if (scrollFunc) {
18904          func(el, "wheel", scrollFunc);
18905          func(el, "touchmove", scrollFunc);
18906        }
18907      };
18908      _markerDefaults = {
18909        startColor: "green",
18910        endColor: "red",
18911        indent: 0,
18912        fontSize: "16px",
18913        fontWeight: "normal"
18914      };
18915      _defaults2 = {
18916        toggleActions: "play",
18917        anticipatePin: 0
18918      };
18919      _keywords = {
18920        top: 0,
18921        left: 0,
18922        center: 0.5,
18923        bottom: 1,
18924        right: 1
18925      };
18926      _offsetToPx = function _offsetToPx2(value, size) {
18927        if (_isString3(value)) {
18928          var eqIndex = value.indexOf("="), relative = ~eqIndex ? +(value.charAt(eqIndex - 1) + 1) * parseFloat(value.substr(eqIndex + 1)) : 0;
18929          if (~eqIndex) {
18930            value.indexOf("%") > eqIndex && (relative *= size / 100);
18931            value = value.substr(0, eqIndex - 1);
18932          }
18933          value = relative + (value in _keywords ? _keywords[value] * size : ~value.indexOf("%") ? parseFloat(value) * size / 100 : parseFloat(value) || 0);
18934        }
18935        return value;
18936      };
18937      _createMarker = function _createMarker2(type, name, container, direction, _ref4, offset, matchWidthEl, containerAnimation) {
18938        var startColor = _ref4.startColor, endColor = _ref4.endColor, fontSize = _ref4.fontSize, indent = _ref4.indent, fontWeight = _ref4.fontWeight;
18939        var e11 = _doc4.createElement("div"), useFixedPosition = _isViewport3(container) || _getProxyProp(container, "pinType") === "fixed", isScroller = type.indexOf("scroller") !== -1, parent = useFixedPosition ? _body2 : container, isStart = type.indexOf("start") !== -1, color = isStart ? startColor : endColor, css = "border-color:" + color + ";font-size:" + fontSize + ";color:" + color + ";font-weight:" + fontWeight + ";pointer-events:none;white-space:nowrap;font-family:sans-serif,Arial;z-index:1000;padding:4px 8px;border-width:0;border-style:solid;";
18940        css += "position:" + ((isScroller || containerAnimation) && useFixedPosition ? "fixed;" : "absolute;");
18941        (isScroller || containerAnimation || !useFixedPosition) && (css += (direction === _vertical ? _right : _bottom) + ":" + (offset + parseFloat(indent)) + "px;");
18942        matchWidthEl && (css += "box-sizing:border-box;text-align:left;width:" + matchWidthEl.offsetWidth + "px;");
18943        e11._isStart = isStart;
18944        e11.setAttribute("class", "gsap-marker-" + type + (name ? " marker-" + name : ""));
18945        e11.style.cssText = css;
18946        e11.innerText = name || name === 0 ? type + "-" + name : type;
18947        parent.children[0] ? parent.insertBefore(e11, parent.children[0]) : parent.appendChild(e11);
18948        e11._offset = e11["offset" + direction.op.d2];
18949        _positionMarker(e11, 0, direction, isStart);
18950        return e11;
18951      };
18952      _positionMarker = function _positionMarker2(marker, start, direction, flipped) {
18953        var vars = {
18954          display: "block"
18955        }, side = direction[flipped ? "os2" : "p2"], oppositeSide = direction[flipped ? "p2" : "os2"];
18956        marker._isFlipped = flipped;
18957        vars[direction.a + "Percent"] = flipped ? -100 : 0;
18958        vars[direction.a] = flipped ? "1px" : 0;
18959        vars["border" + side + _Width] = 1;
18960        vars["border" + oppositeSide + _Width] = 0;
18961        vars[direction.p] = start + "px";
18962        gsap3.set(marker, vars);
18963      };
18964      _triggers = [];
18965      _ids = {};
18966      _sync = function _sync2() {
18967        return _getTime2() - _lastScrollTime > 34 && (_rafID || (_rafID = requestAnimationFrame(_updateAll)));
18968      };
18969      _onScroll3 = function _onScroll4() {
18970        if (!_normalizer2 || !_normalizer2.isPressed || _normalizer2.startX > _body2.clientWidth) {
18971          _scrollers.cache++;
18972          if (_normalizer2) {
18973            _rafID || (_rafID = requestAnimationFrame(_updateAll));
18974          } else {
18975            _updateAll();
18976          }
18977          _lastScrollTime || _dispatch3("scrollStart");
18978          _lastScrollTime = _getTime2();
18979        }
18980      };
18981      _setBaseDimensions = function _setBaseDimensions2() {
18982        _baseScreenWidth = _win4.innerWidth;
18983        _baseScreenHeight = _win4.innerHeight;
18984      };
18985      _onResize = function _onResize2(force) {
18986        _scrollers.cache++;
18987        (force === true || !_refreshing && !_ignoreResize && !_doc4.fullscreenElement && !_doc4.webkitFullscreenElement && (!_ignoreMobileResize || _baseScreenWidth !== _win4.innerWidth || Math.abs(_win4.innerHeight - _baseScreenHeight) > _win4.innerHeight * 0.25)) && _resizeDelay.restart(true);
18988      };
18989      _listeners2 = {};
18990      _emptyArray2 = [];
18991      _softRefresh = function _softRefresh2() {
18992        return _removeListener3(ScrollTrigger2, "scrollEnd", _softRefresh2) || _refreshAll(true);
18993      };
18994      _dispatch3 = function _dispatch4(type) {
18995        return _listeners2[type] && _listeners2[type].map(function(f3) {
18996          return f3();
18997        }) || _emptyArray2;
18998      };
18999      _savedStyles = [];
19000      _revertRecorded = function _revertRecorded2(media) {
19001        for (var i10 = 0; i10 < _savedStyles.length; i10 += 5) {
19002          if (!media || _savedStyles[i10 + 4] && _savedStyles[i10 + 4].query === media) {
19003            _savedStyles[i10].style.cssText = _savedStyles[i10 + 1];
19004            _savedStyles[i10].getBBox && _savedStyles[i10].setAttribute("transform", _savedStyles[i10 + 2] || "");
19005            _savedStyles[i10 + 3].uncache = 1;
19006          }
19007        }
19008      };
19009      _recordScrollPositions = function _recordScrollPositions2() {
19010        return _scrollers.forEach(function(obj) {
19011          return _isFunction3(obj) && ++obj.cacheID && (obj.rec = obj());
19012        });
19013      };
19014      _revertAll = function _revertAll2(kill, media) {
19015        var trigger;
19016        for (_i = 0; _i < _triggers.length; _i++) {
19017          trigger = _triggers[_i];
19018          if (trigger && (!media || trigger._ctx === media)) {
19019            if (kill) {
19020              trigger.kill(1);
19021            } else {
19022              trigger.revert(true, true);
19023            }
19024          }
19025        }
19026        _isReverted = true;
19027        media && _revertRecorded(media);
19028        media || _dispatch3("revert");
19029      };
19030      _clearScrollMemory = function _clearScrollMemory2(scrollRestoration, force) {
19031        _scrollers.cache++;
19032        (force || !_refreshingAll) && _scrollers.forEach(function(obj) {
19033          return _isFunction3(obj) && obj.cacheID++ && (obj.rec = 0);
19034        });
19035        _isString3(scrollRestoration) && (_win4.history.scrollRestoration = _scrollRestoration = scrollRestoration);
19036      };
19037      _refreshID = 0;
19038      _queueRefreshAll = function _queueRefreshAll2() {
19039        if (_queueRefreshID !== _refreshID) {
19040          var id = _queueRefreshID = _refreshID;
19041          requestAnimationFrame(function() {
19042            return id === _refreshID && _refreshAll(true);
19043          });
19044        }
19045      };
19046      _refresh100vh = function _refresh100vh2() {
19047        _body2.appendChild(_div100vh);
19048        _100vh = !_normalizer2 && _div100vh.offsetHeight || _win4.innerHeight;
19049        _body2.removeChild(_div100vh);
19050      };
19051      _hideAllMarkers = function _hideAllMarkers2(hide) {
19052        return _toArray(".gsap-marker-start, .gsap-marker-end, .gsap-marker-scroller-start, .gsap-marker-scroller-end").forEach(function(el) {
19053          return el.style.display = hide ? "none" : "block";
19054        });
19055      };
19056      _refreshAll = function _refreshAll2(force, skipRevert) {
19057        _docEl2 = _doc4.documentElement;
19058        _body2 = _doc4.body;
19059        _root2 = [_win4, _doc4, _docEl2, _body2];
19060        if (_lastScrollTime && !force && !_isReverted) {
19061          _addListener3(ScrollTrigger2, "scrollEnd", _softRefresh);
19062          return;
19063        }
19064        _refresh100vh();
19065        _refreshingAll = ScrollTrigger2.isRefreshing = true;
19066        _isReverted || _recordScrollPositions();
19067        var refreshInits = _dispatch3("refreshInit");
19068        _sort && ScrollTrigger2.sort();
19069        skipRevert || _revertAll();
19070        _scrollers.forEach(function(obj) {
19071          if (_isFunction3(obj)) {
19072            obj.smooth && (obj.target.style.scrollBehavior = "auto");
19073            obj(0);
19074          }
19075        });
19076        _triggers.slice(0).forEach(function(t11) {
19077          return t11.refresh();
19078        });
19079        _isReverted = false;
19080        _triggers.forEach(function(t11) {
19081          if (t11._subPinOffset && t11.pin) {
19082            var prop = t11.vars.horizontal ? "offsetWidth" : "offsetHeight", original = t11.pin[prop];
19083            t11.revert(true, 1);
19084            t11.adjustPinSpacing(t11.pin[prop] - original);
19085            t11.refresh();
19086          }
19087        });
19088        _clampingMax = 1;
19089        _hideAllMarkers(true);
19090        _triggers.forEach(function(t11) {
19091          var max = _maxScroll(t11.scroller, t11._dir), endClamp = t11.vars.end === "max" || t11._endClamp && t11.end > max, startClamp = t11._startClamp && t11.start >= max;
19092          (endClamp || startClamp) && t11.setPositions(startClamp ? max - 1 : t11.start, endClamp ? Math.max(startClamp ? max : t11.start + 1, max) : t11.end, true);
19093        });
19094        _hideAllMarkers(false);
19095        _clampingMax = 0;
19096        refreshInits.forEach(function(result) {
19097          return result && result.render && result.render(-1);
19098        });
19099        _scrollers.forEach(function(obj) {
19100          if (_isFunction3(obj)) {
19101            obj.smooth && requestAnimationFrame(function() {
19102              return obj.target.style.scrollBehavior = "smooth";
19103            });
19104            obj.rec && obj(obj.rec);
19105          }
19106        });
19107        _clearScrollMemory(_scrollRestoration, 1);
19108        _resizeDelay.pause();
19109        _refreshID++;
19110        _refreshingAll = 2;
19111        _updateAll(2);
19112        _triggers.forEach(function(t11) {
19113          return _isFunction3(t11.vars.onRefresh) && t11.vars.onRefresh(t11);
19114        });
19115        _refreshingAll = ScrollTrigger2.isRefreshing = false;
19116        _dispatch3("refresh");
19117      };
19118      _lastScroll = 0;
19119      _direction = 1;
19120      _updateAll = function _updateAll2(force) {
19121        if (force === 2 || !_refreshingAll && !_isReverted) {
19122          ScrollTrigger2.isUpdating = true;
19123          _primary && _primary.update(0);
19124          var l10 = _triggers.length, time = _getTime2(), recordVelocity = time - _time1 >= 50, scroll = l10 && _triggers[0].scroll();
19125          _direction = _lastScroll > scroll ? -1 : 1;
19126          _refreshingAll || (_lastScroll = scroll);
19127          if (recordVelocity) {
19128            if (_lastScrollTime && !_pointerIsDown && time - _lastScrollTime > 200) {
19129              _lastScrollTime = 0;
19130              _dispatch3("scrollEnd");
19131            }
19132            _time2 = _time1;
19133            _time1 = time;
19134          }
19135          if (_direction < 0) {
19136            _i = l10;
19137            while (_i-- > 0) {
19138              _triggers[_i] && _triggers[_i].update(0, recordVelocity);
19139            }
19140            _direction = 1;
19141          } else {
19142            for (_i = 0; _i < l10; _i++) {
19143              _triggers[_i] && _triggers[_i].update(0, recordVelocity);
19144            }
19145          }
19146          ScrollTrigger2.isUpdating = false;
19147        }
19148        _rafID = 0;
19149      };
19150      _propNamesToCopy = [_left, _top, _bottom, _right, _margin + _Bottom, _margin + _Right, _margin + _Top, _margin + _Left, "display", "flexShrink", "float", "zIndex", "gridColumnStart", "gridColumnEnd", "gridRowStart", "gridRowEnd", "gridArea", "justifySelf", "alignSelf", "placeSelf", "order"];
19151      _stateProps = _propNamesToCopy.concat([_width, _height, "boxSizing", "max" + _Width, "max" + _Height, "position", _margin, _padding, _padding + _Top, _padding + _Right, _padding + _Bottom, _padding + _Left]);
19152      _swapPinOut = function _swapPinOut2(pin, spacer, state) {
19153        _setState(state);
19154        var cache = pin._gsap;
19155        if (cache.spacerIsNative) {
19156          _setState(cache.spacerState);
19157        } else if (pin._gsap.swappedIn) {
19158          var parent = spacer.parentNode;
19159          if (parent) {
19160            parent.insertBefore(pin, spacer);
19161            parent.removeChild(spacer);
19162          }
19163        }
19164        pin._gsap.swappedIn = false;
19165      };
19166      _swapPinIn = function _swapPinIn2(pin, spacer, cs, spacerState) {
19167        if (!pin._gsap.swappedIn) {
19168          var i10 = _propNamesToCopy.length, spacerStyle = spacer.style, pinStyle = pin.style, p2;
19169          while (i10--) {
19170            p2 = _propNamesToCopy[i10];
19171            spacerStyle[p2] = cs[p2];
19172          }
19173          spacerStyle.position = cs.position === "absolute" ? "absolute" : "relative";
19174          cs.display === "inline" && (spacerStyle.display = "inline-block");
19175          pinStyle[_bottom] = pinStyle[_right] = "auto";
19176          spacerStyle.flexBasis = cs.flexBasis || "auto";
19177          spacerStyle.overflow = "visible";
19178          spacerStyle.boxSizing = "border-box";
19179          spacerStyle[_width] = _getSize(pin, _horizontal) + _px;
19180          spacerStyle[_height] = _getSize(pin, _vertical) + _px;
19181          spacerStyle[_padding] = pinStyle[_margin] = pinStyle[_top] = pinStyle[_left] = "0";
19182          _setState(spacerState);
19183          pinStyle[_width] = pinStyle["max" + _Width] = cs[_width];
19184          pinStyle[_height] = pinStyle["max" + _Height] = cs[_height];
19185          pinStyle[_padding] = cs[_padding];
19186          if (pin.parentNode !== spacer) {
19187            pin.parentNode.insertBefore(spacer, pin);
19188            spacer.appendChild(pin);
19189          }
19190          pin._gsap.swappedIn = true;
19191        }
19192      };
19193      _capsExp2 = /([A-Z])/g;
19194      _setState = function _setState2(state) {
19195        if (state) {
19196          var style = state.t.style, l10 = state.length, i10 = 0, p2, value;
19197          (state.t._gsap || gsap3.core.getCache(state.t)).uncache = 1;
19198          for (; i10 < l10; i10 += 2) {
19199            value = state[i10 + 1];
19200            p2 = state[i10];
19201            if (value) {
19202              style[p2] = value;
19203            } else if (style[p2]) {
19204              style.removeProperty(p2.replace(_capsExp2, "-$1").toLowerCase());
19205            }
19206          }
19207        }
19208      };
19209      _getState = function _getState2(element) {
19210        var l10 = _stateProps.length, style = element.style, state = [], i10 = 0;
19211        for (; i10 < l10; i10++) {
19212          state.push(_stateProps[i10], style[_stateProps[i10]]);
19213        }
19214        state.t = element;
19215        return state;
19216      };
19217      _copyState = function _copyState2(state, override, omitOffsets) {
19218        var result = [], l10 = state.length, i10 = omitOffsets ? 8 : 0, p2;
19219        for (; i10 < l10; i10 += 2) {
19220          p2 = state[i10];
19221          result.push(p2, p2 in override ? override[p2] : state[i10 + 1]);
19222        }
19223        result.t = state.t;
19224        return result;
19225      };
19226      _winOffsets = {
19227        left: 0,
19228        top: 0
19229      };
19230      _parsePosition3 = function _parsePosition4(value, trigger, scrollerSize, direction, scroll, marker, markerScroller, self2, scrollerBounds, borderWidth, useFixedPosition, scrollerMax, containerAnimation, clampZeroProp) {
19231        _isFunction3(value) && (value = value(self2));
19232        if (_isString3(value) && value.substr(0, 3) === "max") {
19233          value = scrollerMax + (value.charAt(4) === "=" ? _offsetToPx("0" + value.substr(3), scrollerSize) : 0);
19234        }
19235        var time = containerAnimation ? containerAnimation.time() : 0, p1, p2, element;
19236        containerAnimation && containerAnimation.seek(0);
19237        isNaN(value) || (value = +value);
19238        if (!_isNumber3(value)) {
19239          _isFunction3(trigger) && (trigger = trigger(self2));
19240          var offsets = (value || "0").split(" "), bounds, localOffset, globalOffset, display;
19241          element = _getTarget(trigger, self2) || _body2;
19242          bounds = _getBounds(element) || {};
19243          if ((!bounds || !bounds.left && !bounds.top) && _getComputedStyle(element).display === "none") {
19244            display = element.style.display;
19245            element.style.display = "block";
19246            bounds = _getBounds(element);
19247            display ? element.style.display = display : element.style.removeProperty("display");
19248          }
19249          localOffset = _offsetToPx(offsets[0], bounds[direction.d]);
19250          globalOffset = _offsetToPx(offsets[1] || "0", scrollerSize);
19251          value = bounds[direction.p] - scrollerBounds[direction.p] - borderWidth + localOffset + scroll - globalOffset;
19252          markerScroller && _positionMarker(markerScroller, globalOffset, direction, scrollerSize - globalOffset < 20 || markerScroller._isStart && globalOffset > 20);
19253          scrollerSize -= scrollerSize - globalOffset;
19254        } else {
19255          containerAnimation && (value = gsap3.utils.mapRange(containerAnimation.scrollTrigger.start, containerAnimation.scrollTrigger.end, 0, scrollerMax, value));
19256          markerScroller && _positionMarker(markerScroller, scrollerSize, direction, true);
19257        }
19258        if (clampZeroProp) {
19259          self2[clampZeroProp] = value || -1e-3;
19260          value < 0 && (value = 0);
19261        }
19262        if (marker) {
19263          var position = value + scrollerSize, isStart = marker._isStart;
19264          p1 = "scroll" + direction.d2;
19265          _positionMarker(marker, position, direction, isStart && position > 20 || !isStart && (useFixedPosition ? Math.max(_body2[p1], _docEl2[p1]) : marker.parentNode[p1]) <= position + 1);
19266          if (useFixedPosition) {
19267            scrollerBounds = _getBounds(markerScroller);
19268            useFixedPosition && (marker.style[direction.op.p] = scrollerBounds[direction.op.p] - direction.op.m - marker._offset + _px);
19269          }
19270        }
19271        if (containerAnimation && element) {
19272          p1 = _getBounds(element);
19273          containerAnimation.seek(scrollerMax);
19274          p2 = _getBounds(element);
19275          containerAnimation._caScrollDist = p1[direction.p] - p2[direction.p];
19276          value = value / containerAnimation._caScrollDist * scrollerMax;
19277        }
19278        containerAnimation && containerAnimation.seek(time);
19279        return containerAnimation ? value : Math.round(value);
19280      };
19281      _prefixExp = /(webkit|moz|length|cssText|inset)/i;
19282      _reparent = function _reparent2(element, parent, top, left) {
19283        if (element.parentNode !== parent) {
19284          var style = element.style, p2, cs;
19285          if (parent === _body2) {
19286            element._stOrig = style.cssText;
19287            cs = _getComputedStyle(element);
19288            for (p2 in cs) {
19289              if (!+p2 && !_prefixExp.test(p2) && cs[p2] && typeof style[p2] === "string" && p2 !== "0") {
19290                style[p2] = cs[p2];
19291              }
19292            }
19293            style.top = top;
19294            style.left = left;
19295          } else {
19296            style.cssText = element._stOrig;
19297          }
19298          gsap3.core.getCache(element).uncache = 1;
19299          parent.appendChild(element);
19300        }
19301      };
19302      _interruptionTracker = function _interruptionTracker2(getValueFunc, initialValue, onInterrupt) {
19303        var last1 = initialValue, last2 = last1;
19304        return function(value) {
19305          var current = Math.round(getValueFunc());
19306          if (current !== last1 && current !== last2 && Math.abs(current - last1) > 3 && Math.abs(current - last2) > 3) {
19307            value = current;
19308            onInterrupt && onInterrupt();
19309          }
19310          last2 = last1;
19311          last1 = Math.round(value);
19312          return last1;
19313        };
19314      };
19315      _shiftMarker = function _shiftMarker2(marker, direction, value) {
19316        var vars = {};
19317        vars[direction.p] = "+=" + value;
19318        gsap3.set(marker, vars);
19319      };
19320      _getTweenCreator = function _getTweenCreator2(scroller, direction) {
19321        var getScroll = _getScrollFunc(scroller, direction), prop = "_scroll" + direction.p2, getTween = function getTween2(scrollTo, vars, initialValue, change1, change2) {
19322          var tween = getTween2.tween, onComplete = vars.onComplete, modifiers = {};
19323          initialValue = initialValue || getScroll();
19324          var checkForInterruption = _interruptionTracker(getScroll, initialValue, function() {
19325            tween.kill();
19326            getTween2.tween = 0;
19327          });
19328          change2 = change1 && change2 || 0;
19329          change1 = change1 || scrollTo - initialValue;
19330          tween && tween.kill();
19331          vars[prop] = scrollTo;
19332          vars.inherit = false;
19333          vars.modifiers = modifiers;
19334          modifiers[prop] = function() {
19335            return checkForInterruption(initialValue + change1 * tween.ratio + change2 * tween.ratio * tween.ratio);
19336          };
19337          vars.onUpdate = function() {
19338            _scrollers.cache++;
19339            getTween2.tween && _updateAll();
19340          };
19341          vars.onComplete = function() {
19342            getTween2.tween = 0;
19343            onComplete && onComplete.call(tween);
19344          };
19345          tween = getTween2.tween = gsap3.to(scroller, vars);
19346          return tween;
19347        };
19348        scroller[prop] = getScroll;
19349        getScroll.wheelHandler = function() {
19350          return getTween.tween && getTween.tween.kill() && (getTween.tween = 0);
19351        };
19352        _addListener3(scroller, "wheel", getScroll.wheelHandler);
19353        ScrollTrigger2.isTouch && _addListener3(scroller, "touchmove", getScroll.wheelHandler);
19354        return getTween;
19355      };
19356      ScrollTrigger2 = /* @__PURE__ */ (function() {
19357        function ScrollTrigger4(vars, animation) {
19358          _coreInitted3 || ScrollTrigger4.register(gsap3) || console.warn("Please gsap.registerPlugin(ScrollTrigger)");
19359          _context3(this);
19360          this.init(vars, animation);
19361        }
19362        var _proto = ScrollTrigger4.prototype;
19363        _proto.init = function init5(vars, animation) {
19364          this.progress = this.start = 0;
19365          this.vars && this.kill(true, true);
19366          if (!_enabled) {
19367            this.update = this.refresh = this.kill = _passThrough3;
19368            return;
19369          }
19370          vars = _setDefaults3(_isString3(vars) || _isNumber3(vars) || vars.nodeType ? {
19371            trigger: vars
19372          } : vars, _defaults2);
19373          var _vars = vars, onUpdate = _vars.onUpdate, toggleClass = _vars.toggleClass, id = _vars.id, onToggle = _vars.onToggle, onRefresh = _vars.onRefresh, scrub = _vars.scrub, trigger = _vars.trigger, pin = _vars.pin, pinSpacing = _vars.pinSpacing, invalidateOnRefresh = _vars.invalidateOnRefresh, anticipatePin = _vars.anticipatePin, onScrubComplete = _vars.onScrubComplete, onSnapComplete = _vars.onSnapComplete, once = _vars.once, snap3 = _vars.snap, pinReparent = _vars.pinReparent, pinSpacer = _vars.pinSpacer, containerAnimation = _vars.containerAnimation, fastScrollEnd = _vars.fastScrollEnd, preventOverlaps = _vars.preventOverlaps, direction = vars.horizontal || vars.containerAnimation && vars.horizontal !== false ? _horizontal : _vertical, isToggle = !scrub && scrub !== 0, scroller = _getTarget(vars.scroller || _win4), scrollerCache = gsap3.core.getCache(scroller), isViewport = _isViewport3(scroller), useFixedPosition = ("pinType" in vars ? vars.pinType : _getProxyProp(scroller, "pinType") || isViewport && "fixed") === "fixed", callbacks = [vars.onEnter, vars.onLeave, vars.onEnterBack, vars.onLeaveBack], toggleActions = isToggle && vars.toggleActions.split(" "), markers = "markers" in vars ? vars.markers : _defaults2.markers, borderWidth = isViewport ? 0 : parseFloat(_getComputedStyle(scroller)["border" + direction.p2 + _Width]) || 0, self2 = this, onRefreshInit = vars.onRefreshInit && function() {
19374            return vars.onRefreshInit(self2);
19375          }, getScrollerSize = _getSizeFunc(scroller, isViewport, direction), getScrollerOffsets = _getOffsetsFunc(scroller, isViewport), lastSnap = 0, lastRefresh = 0, prevProgress = 0, scrollFunc = _getScrollFunc(scroller, direction), tweenTo, pinCache, snapFunc, scroll1, scroll2, start, end, markerStart, markerEnd, markerStartTrigger, markerEndTrigger, markerVars, executingOnRefresh, change, pinOriginalState, pinActiveState, pinState, spacer, offset, pinGetter, pinSetter, pinStart, pinChange, spacingStart, spacerState, markerStartSetter, pinMoves, markerEndSetter, cs, snap1, snap22, scrubTween, scrubSmooth, snapDurClamp, snapDelayedCall, prevScroll, prevAnimProgress, caMarkerSetter, customRevertReturn;
19376          self2._startClamp = self2._endClamp = false;
19377          self2._dir = direction;
19378          anticipatePin *= 45;
19379          self2.scroller = scroller;
19380          self2.scroll = containerAnimation ? containerAnimation.time.bind(containerAnimation) : scrollFunc;
19381          scroll1 = scrollFunc();
19382          self2.vars = vars;
19383          animation = animation || vars.animation;
19384          if ("refreshPriority" in vars) {
19385            _sort = 1;
19386            vars.refreshPriority === -9999 && (_primary = self2);
19387          }
19388          scrollerCache.tweenScroll = scrollerCache.tweenScroll || {
19389            top: _getTweenCreator(scroller, _vertical),
19390            left: _getTweenCreator(scroller, _horizontal)
19391          };
19392          self2.tweenTo = tweenTo = scrollerCache.tweenScroll[direction.p];
19393          self2.scrubDuration = function(value) {
19394            scrubSmooth = _isNumber3(value) && value;
19395            if (!scrubSmooth) {
19396              scrubTween && scrubTween.progress(1).kill();
19397              scrubTween = 0;
19398            } else {
19399              scrubTween ? scrubTween.duration(value) : scrubTween = gsap3.to(animation, {
19400                ease: "expo",
19401                totalProgress: "+=0",
19402                inherit: false,
19403                duration: scrubSmooth,
19404                paused: true,
19405                onComplete: function onComplete() {
19406                  return onScrubComplete && onScrubComplete(self2);
19407                }
19408              });
19409            }
19410          };
19411          if (animation) {
19412            animation.vars.lazy = false;
19413            animation._initted && !self2.isReverted || animation.vars.immediateRender !== false && vars.immediateRender !== false && animation.duration() && animation.render(0, true, true);
19414            self2.animation = animation.pause();
19415            animation.scrollTrigger = self2;
19416            self2.scrubDuration(scrub);
19417            snap1 = 0;
19418            id || (id = animation.vars.id);
19419          }
19420          if (snap3) {
19421            if (!_isObject3(snap3) || snap3.push) {
19422              snap3 = {
19423                snapTo: snap3
19424              };
19425            }
19426            "scrollBehavior" in _body2.style && gsap3.set(isViewport ? [_body2, _docEl2] : scroller, {
19427              scrollBehavior: "auto"
19428            });
19429            _scrollers.forEach(function(o11) {
19430              return _isFunction3(o11) && o11.target === (isViewport ? _doc4.scrollingElement || _docEl2 : scroller) && (o11.smooth = false);
19431            });
19432            snapFunc = _isFunction3(snap3.snapTo) ? snap3.snapTo : snap3.snapTo === "labels" ? _getClosestLabel(animation) : snap3.snapTo === "labelsDirectional" ? _getLabelAtDirection(animation) : snap3.directional !== false ? function(value, st) {
19433              return _snapDirectional(snap3.snapTo)(value, _getTime2() - lastRefresh < 500 ? 0 : st.direction);
19434            } : gsap3.utils.snap(snap3.snapTo);
19435            snapDurClamp = snap3.duration || {
19436              min: 0.1,
19437              max: 2
19438            };
19439            snapDurClamp = _isObject3(snapDurClamp) ? _clamp4(snapDurClamp.min, snapDurClamp.max) : _clamp4(snapDurClamp, snapDurClamp);
19440            snapDelayedCall = gsap3.delayedCall(snap3.delay || scrubSmooth / 2 || 0.1, function() {
19441              var scroll = scrollFunc(), refreshedRecently = _getTime2() - lastRefresh < 500, tween = tweenTo.tween;
19442              if ((refreshedRecently || Math.abs(self2.getVelocity()) < 10) && !tween && !_pointerIsDown && lastSnap !== scroll) {
19443                var progress = (scroll - start) / change, totalProgress = animation && !isToggle ? animation.totalProgress() : progress, velocity = refreshedRecently ? 0 : (totalProgress - snap22) / (_getTime2() - _time2) * 1e3 || 0, change1 = gsap3.utils.clamp(-progress, 1 - progress, _abs(velocity / 2) * velocity / 0.185), naturalEnd = progress + (snap3.inertia === false ? 0 : change1), endValue, endScroll, _snap = snap3, onStart = _snap.onStart, _onInterrupt = _snap.onInterrupt, _onComplete = _snap.onComplete;
19444                endValue = snapFunc(naturalEnd, self2);
19445                _isNumber3(endValue) || (endValue = naturalEnd);
19446                endScroll = Math.max(0, Math.round(start + endValue * change));
19447                if (scroll <= end && scroll >= start && endScroll !== scroll) {
19448                  if (tween && !tween._initted && tween.data <= _abs(endScroll - scroll)) {
19449                    return;
19450                  }
19451                  if (snap3.inertia === false) {
19452                    change1 = endValue - progress;
19453                  }
19454                  tweenTo(endScroll, {
19455                    duration: snapDurClamp(_abs(Math.max(_abs(naturalEnd - totalProgress), _abs(endValue - totalProgress)) * 0.185 / velocity / 0.05 || 0)),
19456                    ease: snap3.ease || "power3",
19457                    data: _abs(endScroll - scroll),
19458                    // record the distance so that if another snap tween occurs (conflict) we can prioritize the closest snap.
19459                    onInterrupt: function onInterrupt() {
19460                      return snapDelayedCall.restart(true) && _onInterrupt && _onInterrupt(self2);
19461                    },
19462                    onComplete: function onComplete() {
19463                      self2.update();
19464                      lastSnap = scrollFunc();
19465                      if (animation && !isToggle) {
19466                        scrubTween ? scrubTween.resetTo("totalProgress", endValue, animation._tTime / animation._tDur) : animation.progress(endValue);
19467                      }
19468                      snap1 = snap22 = animation && !isToggle ? animation.totalProgress() : self2.progress;
19469                      onSnapComplete && onSnapComplete(self2);
19470                      _onComplete && _onComplete(self2);
19471                    }
19472                  }, scroll, change1 * change, endScroll - scroll - change1 * change);
19473                  onStart && onStart(self2, tweenTo.tween);
19474                }
19475              } else if (self2.isActive && lastSnap !== scroll) {
19476                snapDelayedCall.restart(true);
19477              }
19478            }).pause();
19479          }
19480          id && (_ids[id] = self2);
19481          trigger = self2.trigger = _getTarget(trigger || pin !== true && pin);
19482          customRevertReturn = trigger && trigger._gsap && trigger._gsap.stRevert;
19483          customRevertReturn && (customRevertReturn = customRevertReturn(self2));
19484          pin = pin === true ? trigger : _getTarget(pin);
19485          _isString3(toggleClass) && (toggleClass = {
19486            targets: trigger,
19487            className: toggleClass
19488          });
19489          if (pin) {
19490            pinSpacing === false || pinSpacing === _margin || (pinSpacing = !pinSpacing && pin.parentNode && pin.parentNode.style && _getComputedStyle(pin.parentNode).display === "flex" ? false : _padding);
19491            self2.pin = pin;
19492            pinCache = gsap3.core.getCache(pin);
19493            if (!pinCache.spacer) {
19494              if (pinSpacer) {
19495                pinSpacer = _getTarget(pinSpacer);
19496                pinSpacer && !pinSpacer.nodeType && (pinSpacer = pinSpacer.current || pinSpacer.nativeElement);
19497                pinCache.spacerIsNative = !!pinSpacer;
19498                pinSpacer && (pinCache.spacerState = _getState(pinSpacer));
19499              }
19500              pinCache.spacer = spacer = pinSpacer || _doc4.createElement("div");
19501              spacer.classList.add("pin-spacer");
19502              id && spacer.classList.add("pin-spacer-" + id);
19503              pinCache.pinState = pinOriginalState = _getState(pin);
19504            } else {
19505              pinOriginalState = pinCache.pinState;
19506            }
19507            vars.force3D !== false && gsap3.set(pin, {
19508              force3D: true
19509            });
19510            self2.spacer = spacer = pinCache.spacer;
19511            cs = _getComputedStyle(pin);
19512            spacingStart = cs[pinSpacing + direction.os2];
19513            pinGetter = gsap3.getProperty(pin);
19514            pinSetter = gsap3.quickSetter(pin, direction.a, _px);
19515            _swapPinIn(pin, spacer, cs);
19516            pinState = _getState(pin);
19517          }
19518          if (markers) {
19519            markerVars = _isObject3(markers) ? _setDefaults3(markers, _markerDefaults) : _markerDefaults;
19520            markerStartTrigger = _createMarker("scroller-start", id, scroller, direction, markerVars, 0);
19521            markerEndTrigger = _createMarker("scroller-end", id, scroller, direction, markerVars, 0, markerStartTrigger);
19522            offset = markerStartTrigger["offset" + direction.op.d2];
19523            var content = _getTarget(_getProxyProp(scroller, "content") || scroller);
19524            markerStart = this.markerStart = _createMarker("start", id, content, direction, markerVars, offset, 0, containerAnimation);
19525            markerEnd = this.markerEnd = _createMarker("end", id, content, direction, markerVars, offset, 0, containerAnimation);
19526            containerAnimation && (caMarkerSetter = gsap3.quickSetter([markerStart, markerEnd], direction.a, _px));
19527            if (!useFixedPosition && !(_proxies.length && _getProxyProp(scroller, "fixedMarkers") === true)) {
19528              _makePositionable(isViewport ? _body2 : scroller);
19529              gsap3.set([markerStartTrigger, markerEndTrigger], {
19530                force3D: true
19531              });
19532              markerStartSetter = gsap3.quickSetter(markerStartTrigger, direction.a, _px);
19533              markerEndSetter = gsap3.quickSetter(markerEndTrigger, direction.a, _px);
19534            }
19535          }
19536          if (containerAnimation) {
19537            var oldOnUpdate = containerAnimation.vars.onUpdate, oldParams = containerAnimation.vars.onUpdateParams;
19538            containerAnimation.eventCallback("onUpdate", function() {
19539              self2.update(0, 0, 1);
19540              oldOnUpdate && oldOnUpdate.apply(containerAnimation, oldParams || []);
19541            });
19542          }
19543          self2.previous = function() {
19544            return _triggers[_triggers.indexOf(self2) - 1];
19545          };
19546          self2.next = function() {
19547            return _triggers[_triggers.indexOf(self2) + 1];
19548          };
19549          self2.revert = function(revert, temp) {
19550            if (!temp) {
19551              return self2.kill(true);
19552            }
19553            var r7 = revert !== false || !self2.enabled, prevRefreshing = _refreshing;
19554            if (r7 !== self2.isReverted) {
19555              if (r7) {
19556                prevScroll = Math.max(scrollFunc(), self2.scroll.rec || 0);
19557                prevProgress = self2.progress;
19558                prevAnimProgress = animation && animation.progress();
19559              }
19560              markerStart && [markerStart, markerEnd, markerStartTrigger, markerEndTrigger].forEach(function(m3) {
19561                return m3.style.display = r7 ? "none" : "block";
19562              });
19563              if (r7) {
19564                _refreshing = self2;
19565                self2.update(r7);
19566              }
19567              if (pin && (!pinReparent || !self2.isActive)) {
19568                if (r7) {
19569                  _swapPinOut(pin, spacer, pinOriginalState);
19570                } else {
19571                  _swapPinIn(pin, spacer, _getComputedStyle(pin), spacerState);
19572                }
19573              }
19574              r7 || self2.update(r7);
19575              _refreshing = prevRefreshing;
19576              self2.isReverted = r7;
19577            }
19578          };
19579          self2.refresh = function(soft, force, position, pinOffset) {
19580            if ((_refreshing || !self2.enabled) && !force) {
19581              return;
19582            }
19583            if (pin && soft && _lastScrollTime) {
19584              _addListener3(ScrollTrigger4, "scrollEnd", _softRefresh);
19585              return;
19586            }
19587            !_refreshingAll && onRefreshInit && onRefreshInit(self2);
19588            _refreshing = self2;
19589            if (tweenTo.tween && !position) {
19590              tweenTo.tween.kill();
19591              tweenTo.tween = 0;
19592            }
19593            scrubTween && scrubTween.pause();
19594            if (invalidateOnRefresh && animation) {
19595              animation.revert({
19596                kill: false
19597              }).invalidate();
19598              animation.getChildren ? animation.getChildren(true, true, false).forEach(function(t11) {
19599                return t11.vars.immediateRender && t11.render(0, true, true);
19600              }) : animation.vars.immediateRender && animation.render(0, true, true);
19601            }
19602            self2.isReverted || self2.revert(true, true);
19603            self2._subPinOffset = false;
19604            var size = getScrollerSize(), scrollerBounds = getScrollerOffsets(), max = containerAnimation ? containerAnimation.duration() : _maxScroll(scroller, direction), isFirstRefresh = change <= 0.01 || !change, offset2 = 0, otherPinOffset = pinOffset || 0, parsedEnd = _isObject3(position) ? position.end : vars.end, parsedEndTrigger = vars.endTrigger || trigger, parsedStart = _isObject3(position) ? position.start : vars.start || (vars.start === 0 || !trigger ? 0 : pin ? "0 0" : "0 100%"), pinnedContainer = self2.pinnedContainer = vars.pinnedContainer && _getTarget(vars.pinnedContainer, self2), triggerIndex = trigger && Math.max(0, _triggers.indexOf(self2)) || 0, i10 = triggerIndex, cs2, bounds, scroll, isVertical, override, curTrigger, curPin, oppositeScroll, initted, revertedPins, forcedOverflow, markerStartOffset, markerEndOffset;
19605            if (markers && _isObject3(position)) {
19606              markerStartOffset = gsap3.getProperty(markerStartTrigger, direction.p);
19607              markerEndOffset = gsap3.getProperty(markerEndTrigger, direction.p);
19608            }
19609            while (i10-- > 0) {
19610              curTrigger = _triggers[i10];
19611              curTrigger.end || curTrigger.refresh(0, 1) || (_refreshing = self2);
19612              curPin = curTrigger.pin;
19613              if (curPin && (curPin === trigger || curPin === pin || curPin === pinnedContainer) && !curTrigger.isReverted) {
19614                revertedPins || (revertedPins = []);
19615                revertedPins.unshift(curTrigger);
19616                curTrigger.revert(true, true);
19617              }
19618              if (curTrigger !== _triggers[i10]) {
19619                triggerIndex--;
19620                i10--;
19621              }
19622            }
19623            _isFunction3(parsedStart) && (parsedStart = parsedStart(self2));
19624            parsedStart = _parseClamp(parsedStart, "start", self2);
19625            start = _parsePosition3(parsedStart, trigger, size, direction, scrollFunc(), markerStart, markerStartTrigger, self2, scrollerBounds, borderWidth, useFixedPosition, max, containerAnimation, self2._startClamp && "_startClamp") || (pin ? -1e-3 : 0);
19626            _isFunction3(parsedEnd) && (parsedEnd = parsedEnd(self2));
19627            if (_isString3(parsedEnd) && !parsedEnd.indexOf("+=")) {
19628              if (~parsedEnd.indexOf(" ")) {
19629                parsedEnd = (_isString3(parsedStart) ? parsedStart.split(" ")[0] : "") + parsedEnd;
19630              } else {
19631                offset2 = _offsetToPx(parsedEnd.substr(2), size);
19632                parsedEnd = _isString3(parsedStart) ? parsedStart : (containerAnimation ? gsap3.utils.mapRange(0, containerAnimation.duration(), containerAnimation.scrollTrigger.start, containerAnimation.scrollTrigger.end, start) : start) + offset2;
19633                parsedEndTrigger = trigger;
19634              }
19635            }
19636            parsedEnd = _parseClamp(parsedEnd, "end", self2);
19637            end = Math.max(start, _parsePosition3(parsedEnd || (parsedEndTrigger ? "100% 0" : max), parsedEndTrigger, size, direction, scrollFunc() + offset2, markerEnd, markerEndTrigger, self2, scrollerBounds, borderWidth, useFixedPosition, max, containerAnimation, self2._endClamp && "_endClamp")) || -1e-3;
19638            offset2 = 0;
19639            i10 = triggerIndex;
19640            while (i10--) {
19641              curTrigger = _triggers[i10] || {};
19642              curPin = curTrigger.pin;
19643              if (curPin && curTrigger.start - curTrigger._pinPush <= start && !containerAnimation && curTrigger.end > 0) {
19644                cs2 = curTrigger.end - (self2._startClamp ? Math.max(0, curTrigger.start) : curTrigger.start);
19645                if ((curPin === trigger && curTrigger.start - curTrigger._pinPush < start || curPin === pinnedContainer) && isNaN(parsedStart)) {
19646                  offset2 += cs2 * (1 - curTrigger.progress);
19647                }
19648                curPin === pin && (otherPinOffset += cs2);
19649              }
19650            }
19651            start += offset2;
19652            end += offset2;
19653            self2._startClamp && (self2._startClamp += offset2);
19654            if (self2._endClamp && !_refreshingAll) {
19655              self2._endClamp = end || -1e-3;
19656              end = Math.min(end, _maxScroll(scroller, direction));
19657            }
19658            change = end - start || (start -= 0.01) && 1e-3;
19659            if (isFirstRefresh) {
19660              prevProgress = gsap3.utils.clamp(0, 1, gsap3.utils.normalize(start, end, prevScroll));
19661            }
19662            self2._pinPush = otherPinOffset;
19663            if (markerStart && offset2) {
19664              cs2 = {};
19665              cs2[direction.a] = "+=" + offset2;
19666              pinnedContainer && (cs2[direction.p] = "-=" + scrollFunc());
19667              gsap3.set([markerStart, markerEnd], cs2);
19668            }
19669            if (pin && !(_clampingMax && self2.end >= _maxScroll(scroller, direction))) {
19670              cs2 = _getComputedStyle(pin);
19671              isVertical = direction === _vertical;
19672              scroll = scrollFunc();
19673              pinStart = parseFloat(pinGetter(direction.a)) + otherPinOffset;
19674              if (!max && end > 1) {
19675                forcedOverflow = (isViewport ? _doc4.scrollingElement || _docEl2 : scroller).style;
19676                forcedOverflow = {
19677                  style: forcedOverflow,
19678                  value: forcedOverflow["overflow" + direction.a.toUpperCase()]
19679                };
19680                if (isViewport && _getComputedStyle(_body2)["overflow" + direction.a.toUpperCase()] !== "scroll") {
19681                  forcedOverflow.style["overflow" + direction.a.toUpperCase()] = "scroll";
19682                }
19683              }
19684              _swapPinIn(pin, spacer, cs2);
19685              pinState = _getState(pin);
19686              bounds = _getBounds(pin, true);
19687              oppositeScroll = useFixedPosition && _getScrollFunc(scroller, isVertical ? _horizontal : _vertical)();
19688              if (pinSpacing) {
19689                spacerState = [pinSpacing + direction.os2, change + otherPinOffset + _px];
19690                spacerState.t = spacer;
19691                i10 = pinSpacing === _padding ? _getSize(pin, direction) + change + otherPinOffset : 0;
19692                if (i10) {
19693                  spacerState.push(direction.d, i10 + _px);
19694                  spacer.style.flexBasis !== "auto" && (spacer.style.flexBasis = i10 + _px);
19695                }
19696                _setState(spacerState);
19697                if (pinnedContainer) {
19698                  _triggers.forEach(function(t11) {
19699                    if (t11.pin === pinnedContainer && t11.vars.pinSpacing !== false) {
19700                      t11._subPinOffset = true;
19701                    }
19702                  });
19703                }
19704                useFixedPosition && scrollFunc(prevScroll);
19705              } else {
19706                i10 = _getSize(pin, direction);
19707                i10 && spacer.style.flexBasis !== "auto" && (spacer.style.flexBasis = i10 + _px);
19708              }
19709              if (useFixedPosition) {
19710                override = {
19711                  top: bounds.top + (isVertical ? scroll - start : oppositeScroll) + _px,
19712                  left: bounds.left + (isVertical ? oppositeScroll : scroll - start) + _px,
19713                  boxSizing: "border-box",
19714                  position: "fixed"
19715                };
19716                override[_width] = override["max" + _Width] = Math.ceil(bounds.width) + _px;
19717                override[_height] = override["max" + _Height] = Math.ceil(bounds.height) + _px;
19718                override[_margin] = override[_margin + _Top] = override[_margin + _Right] = override[_margin + _Bottom] = override[_margin + _Left] = "0";
19719                override[_padding] = cs2[_padding];
19720                override[_padding + _Top] = cs2[_padding + _Top];
19721                override[_padding + _Right] = cs2[_padding + _Right];
19722                override[_padding + _Bottom] = cs2[_padding + _Bottom];
19723                override[_padding + _Left] = cs2[_padding + _Left];
19724                pinActiveState = _copyState(pinOriginalState, override, pinReparent);
19725                _refreshingAll && scrollFunc(0);
19726              }
19727              if (animation) {
19728                initted = animation._initted;
19729                _suppressOverwrites2(1);
19730                animation.render(animation.duration(), true, true);
19731                pinChange = pinGetter(direction.a) - pinStart + change + otherPinOffset;
19732                pinMoves = Math.abs(change - pinChange) > 1;
19733                useFixedPosition && pinMoves && pinActiveState.splice(pinActiveState.length - 2, 2);
19734                animation.render(0, true, true);
19735                initted || animation.invalidate(true);
19736                animation.parent || animation.totalTime(animation.totalTime());
19737                _suppressOverwrites2(0);
19738              } else {
19739                pinChange = change;
19740              }
19741              forcedOverflow && (forcedOverflow.value ? forcedOverflow.style["overflow" + direction.a.toUpperCase()] = forcedOverflow.value : forcedOverflow.style.removeProperty("overflow-" + direction.a));
19742            } else if (trigger && scrollFunc() && !containerAnimation) {
19743              bounds = trigger.parentNode;
19744              while (bounds && bounds !== _body2) {
19745                if (bounds._pinOffset) {
19746                  start -= bounds._pinOffset;
19747                  end -= bounds._pinOffset;
19748                }
19749                bounds = bounds.parentNode;
19750              }
19751            }
19752            revertedPins && revertedPins.forEach(function(t11) {
19753              return t11.revert(false, true);
19754            });
19755            self2.start = start;
19756            self2.end = end;
19757            scroll1 = scroll2 = _refreshingAll ? prevScroll : scrollFunc();
19758            if (!containerAnimation && !_refreshingAll) {
19759              scroll1 < prevScroll && scrollFunc(prevScroll);
19760              self2.scroll.rec = 0;
19761            }
19762            self2.revert(false, true);
19763            lastRefresh = _getTime2();
19764            if (snapDelayedCall) {
19765              lastSnap = -1;
19766              snapDelayedCall.restart(true);
19767            }
19768            _refreshing = 0;
19769            animation && isToggle && (animation._initted || prevAnimProgress) && animation.progress() !== prevAnimProgress && animation.progress(prevAnimProgress || 0, true).render(animation.time(), true, true);
19770            if (isFirstRefresh || prevProgress !== self2.progress || containerAnimation || invalidateOnRefresh || animation && !animation._initted) {
19771              animation && !isToggle && (animation._initted || prevProgress || animation.vars.immediateRender !== false) && animation.totalProgress(containerAnimation && start < -1e-3 && !prevProgress ? gsap3.utils.normalize(start, end, 0) : prevProgress, true);
19772              self2.progress = isFirstRefresh || (scroll1 - start) / change === prevProgress ? 0 : prevProgress;
19773            }
19774            pin && pinSpacing && (spacer._pinOffset = Math.round(self2.progress * pinChange));
19775            scrubTween && scrubTween.invalidate();
19776            if (!isNaN(markerStartOffset)) {
19777              markerStartOffset -= gsap3.getProperty(markerStartTrigger, direction.p);
19778              markerEndOffset -= gsap3.getProperty(markerEndTrigger, direction.p);
19779              _shiftMarker(markerStartTrigger, direction, markerStartOffset);
19780              _shiftMarker(markerStart, direction, markerStartOffset - (pinOffset || 0));
19781              _shiftMarker(markerEndTrigger, direction, markerEndOffset);
19782              _shiftMarker(markerEnd, direction, markerEndOffset - (pinOffset || 0));
19783            }
19784            isFirstRefresh && !_refreshingAll && self2.update();
19785            if (onRefresh && !_refreshingAll && !executingOnRefresh) {
19786              executingOnRefresh = true;
19787              onRefresh(self2);
19788              executingOnRefresh = false;
19789            }
19790          };
19791          self2.getVelocity = function() {
19792            return (scrollFunc() - scroll2) / (_getTime2() - _time2) * 1e3 || 0;
19793          };
19794          self2.endAnimation = function() {
19795            _endAnimation(self2.callbackAnimation);
19796            if (animation) {
19797              scrubTween ? scrubTween.progress(1) : !animation.paused() ? _endAnimation(animation, animation.reversed()) : isToggle || _endAnimation(animation, self2.direction < 0, 1);
19798            }
19799          };
19800          self2.labelToScroll = function(label) {
19801            return animation && animation.labels && (start || self2.refresh() || start) + animation.labels[label] / animation.duration() * change || 0;
19802          };
19803          self2.getTrailing = function(name) {
19804            var i10 = _triggers.indexOf(self2), a8 = self2.direction > 0 ? _triggers.slice(0, i10).reverse() : _triggers.slice(i10 + 1);
19805            return (_isString3(name) ? a8.filter(function(t11) {
19806              return t11.vars.preventOverlaps === name;
19807            }) : a8).filter(function(t11) {
19808              return self2.direction > 0 ? t11.end <= start : t11.start >= end;
19809            });
19810          };
19811          self2.update = function(reset, recordVelocity, forceFake) {
19812            if (containerAnimation && !forceFake && !reset) {
19813              return;
19814            }
19815            var scroll = _refreshingAll === true ? prevScroll : self2.scroll(), p2 = reset ? 0 : (scroll - start) / change, clipped = p2 < 0 ? 0 : p2 > 1 ? 1 : p2 || 0, prevProgress2 = self2.progress, isActive, wasActive, toggleState, action, stateChanged, toggled, isAtMax, isTakingAction;
19816            if (recordVelocity) {
19817              scroll2 = scroll1;
19818              scroll1 = containerAnimation ? scrollFunc() : scroll;
19819              if (snap3) {
19820                snap22 = snap1;
19821                snap1 = animation && !isToggle ? animation.totalProgress() : clipped;
19822              }
19823            }
19824            if (anticipatePin && pin && !_refreshing && !_startup2 && _lastScrollTime) {
19825              if (!clipped && start < scroll + (scroll - scroll2) / (_getTime2() - _time2) * anticipatePin) {
19826                clipped = 1e-4;
19827              } else if (clipped === 1 && end > scroll + (scroll - scroll2) / (_getTime2() - _time2) * anticipatePin) {
19828                clipped = 0.9999;
19829              }
19830            }
19831            if (clipped !== prevProgress2 && self2.enabled) {
19832              isActive = self2.isActive = !!clipped && clipped < 1;
19833              wasActive = !!prevProgress2 && prevProgress2 < 1;
19834              toggled = isActive !== wasActive;
19835              stateChanged = toggled || !!clipped !== !!prevProgress2;
19836              self2.direction = clipped > prevProgress2 ? 1 : -1;
19837              self2.progress = clipped;
19838              if (stateChanged && !_refreshing) {
19839                toggleState = clipped && !prevProgress2 ? 0 : clipped === 1 ? 1 : prevProgress2 === 1 ? 2 : 3;
19840                if (isToggle) {
19841                  action = !toggled && toggleActions[toggleState + 1] !== "none" && toggleActions[toggleState + 1] || toggleActions[toggleState];
19842                  isTakingAction = animation && (action === "complete" || action === "reset" || action in animation);
19843                }
19844              }
19845              preventOverlaps && (toggled || isTakingAction) && (isTakingAction || scrub || !animation) && (_isFunction3(preventOverlaps) ? preventOverlaps(self2) : self2.getTrailing(preventOverlaps).forEach(function(t11) {
19846                return t11.endAnimation();
19847              }));
19848              if (!isToggle) {
19849                if (scrubTween && !_refreshing && !_startup2) {
19850                  scrubTween._dp._time - scrubTween._start !== scrubTween._time && scrubTween.render(scrubTween._dp._time - scrubTween._start);
19851                  if (scrubTween.resetTo) {
19852                    scrubTween.resetTo("totalProgress", clipped, animation._tTime / animation._tDur);
19853                  } else {
19854                    scrubTween.vars.totalProgress = clipped;
19855                    scrubTween.invalidate().restart();
19856                  }
19857                } else if (animation) {
19858                  animation.totalProgress(clipped, !!(_refreshing && (lastRefresh || reset)));
19859                }
19860              }
19861              if (pin) {
19862                reset && pinSpacing && (spacer.style[pinSpacing + direction.os2] = spacingStart);
19863                if (!useFixedPosition) {
19864                  pinSetter(_round3(pinStart + pinChange * clipped));
19865                } else if (stateChanged) {
19866                  isAtMax = !reset && clipped > prevProgress2 && end + 1 > scroll && scroll + 1 >= _maxScroll(scroller, direction);
19867                  if (pinReparent) {
19868                    if (!reset && (isActive || isAtMax)) {
19869                      var bounds = _getBounds(pin, true), _offset = scroll - start;
19870                      _reparent(pin, _body2, bounds.top + (direction === _vertical ? _offset : 0) + _px, bounds.left + (direction === _vertical ? 0 : _offset) + _px);
19871                    } else {
19872                      _reparent(pin, spacer);
19873                    }
19874                  }
19875                  _setState(isActive || isAtMax ? pinActiveState : pinState);
19876                  pinMoves && clipped < 1 && isActive || pinSetter(pinStart + (clipped === 1 && !isAtMax ? pinChange : 0));
19877                }
19878              }
19879              snap3 && !tweenTo.tween && !_refreshing && !_startup2 && snapDelayedCall.restart(true);
19880              toggleClass && (toggled || once && clipped && (clipped < 1 || !_limitCallbacks)) && _toArray(toggleClass.targets).forEach(function(el) {
19881                return el.classList[isActive || once ? "add" : "remove"](toggleClass.className);
19882              });
19883              onUpdate && !isToggle && !reset && onUpdate(self2);
19884              if (stateChanged && !_refreshing) {
19885                if (isToggle) {
19886                  if (isTakingAction) {
19887                    if (action === "complete") {
19888                      animation.pause().totalProgress(1);
19889                    } else if (action === "reset") {
19890                      animation.restart(true).pause();
19891                    } else if (action === "restart") {
19892                      animation.restart(true);
19893                    } else {
19894                      animation[action]();
19895                    }
19896                  }
19897                  onUpdate && onUpdate(self2);
19898                }
19899                if (toggled || !_limitCallbacks) {
19900                  onToggle && toggled && _callback3(self2, onToggle);
19901                  callbacks[toggleState] && _callback3(self2, callbacks[toggleState]);
19902                  once && (clipped === 1 ? self2.kill(false, 1) : callbacks[toggleState] = 0);
19903                  if (!toggled) {
19904                    toggleState = clipped === 1 ? 1 : 3;
19905                    callbacks[toggleState] && _callback3(self2, callbacks[toggleState]);
19906                  }
19907                }
19908                if (fastScrollEnd && !isActive && Math.abs(self2.getVelocity()) > (_isNumber3(fastScrollEnd) ? fastScrollEnd : 2500)) {
19909                  _endAnimation(self2.callbackAnimation);
19910                  scrubTween ? scrubTween.progress(1) : _endAnimation(animation, action === "reverse" ? 1 : !clipped, 1);
19911                }
19912              } else if (isToggle && onUpdate && !_refreshing) {
19913                onUpdate(self2);
19914              }
19915            }
19916            if (markerEndSetter) {
19917              var n10 = containerAnimation ? scroll / containerAnimation.duration() * (containerAnimation._caScrollDist || 0) : scroll;
19918              markerStartSetter(n10 + (markerStartTrigger._isFlipped ? 1 : 0));
19919              markerEndSetter(n10);
19920            }
19921            caMarkerSetter && caMarkerSetter(-scroll / containerAnimation.duration() * (containerAnimation._caScrollDist || 0));
19922          };
19923          self2.enable = function(reset, refresh) {
19924            if (!self2.enabled) {
19925              self2.enabled = true;
19926              _addListener3(scroller, "resize", _onResize);
19927              isViewport || _addListener3(scroller, "scroll", _onScroll3);
19928              onRefreshInit && _addListener3(ScrollTrigger4, "refreshInit", onRefreshInit);
19929              if (reset !== false) {
19930                self2.progress = prevProgress = 0;
19931                scroll1 = scroll2 = lastSnap = scrollFunc();
19932              }
19933              refresh !== false && self2.refresh();
19934            }
19935          };
19936          self2.getTween = function(snap4) {
19937            return snap4 && tweenTo ? tweenTo.tween : scrubTween;
19938          };
19939          self2.setPositions = function(newStart, newEnd, keepClamp, pinOffset) {
19940            if (containerAnimation) {
19941              var st = containerAnimation.scrollTrigger, duration = containerAnimation.duration(), _change = st.end - st.start;
19942              newStart = st.start + _change * newStart / duration;
19943              newEnd = st.start + _change * newEnd / duration;
19944            }
19945            self2.refresh(false, false, {
19946              start: _keepClamp(newStart, keepClamp && !!self2._startClamp),
19947              end: _keepClamp(newEnd, keepClamp && !!self2._endClamp)
19948            }, pinOffset);
19949            self2.update();
19950          };
19951          self2.adjustPinSpacing = function(amount) {
19952            if (spacerState && amount) {
19953              var i10 = spacerState.indexOf(direction.d) + 1;
19954              spacerState[i10] = parseFloat(spacerState[i10]) + amount + _px;
19955              spacerState[1] = parseFloat(spacerState[1]) + amount + _px;
19956              _setState(spacerState);
19957            }
19958          };
19959          self2.disable = function(reset, allowAnimation) {
19960            reset !== false && self2.revert(true, true);
19961            if (self2.enabled) {
19962              self2.enabled = self2.isActive = false;
19963              allowAnimation || scrubTween && scrubTween.pause();
19964              prevScroll = 0;
19965              pinCache && (pinCache.uncache = 1);
19966              onRefreshInit && _removeListener3(ScrollTrigger4, "refreshInit", onRefreshInit);
19967              if (snapDelayedCall) {
19968                snapDelayedCall.pause();
19969                tweenTo.tween && tweenTo.tween.kill() && (tweenTo.tween = 0);
19970              }
19971              if (!isViewport) {
19972                var i10 = _triggers.length;
19973                while (i10--) {
19974                  if (_triggers[i10].scroller === scroller && _triggers[i10] !== self2) {
19975                    return;
19976                  }
19977                }
19978                _removeListener3(scroller, "resize", _onResize);
19979                isViewport || _removeListener3(scroller, "scroll", _onScroll3);
19980              }
19981            }
19982          };
19983          self2.kill = function(revert, allowAnimation) {
19984            self2.disable(revert, allowAnimation);
19985            scrubTween && !allowAnimation && scrubTween.kill();
19986            id && delete _ids[id];
19987            var i10 = _triggers.indexOf(self2);
19988            i10 >= 0 && _triggers.splice(i10, 1);
19989            i10 === _i && _direction > 0 && _i--;
19990            i10 = 0;
19991            _triggers.forEach(function(t11) {
19992              return t11.scroller === self2.scroller && (i10 = 1);
19993            });
19994            i10 || _refreshingAll || (self2.scroll.rec = 0);
19995            if (animation) {
19996              animation.scrollTrigger = null;
19997              revert && animation.revert({
19998                kill: false
19999              });
20000              allowAnimation || animation.kill();
20001            }
20002            markerStart && [markerStart, markerEnd, markerStartTrigger, markerEndTrigger].forEach(function(m3) {
20003              return m3.parentNode && m3.parentNode.removeChild(m3);
20004            });
20005            _primary === self2 && (_primary = 0);
20006            if (pin) {
20007              pinCache && (pinCache.uncache = 1);
20008              i10 = 0;
20009              _triggers.forEach(function(t11) {
20010                return t11.pin === pin && i10++;
20011              });
20012              i10 || (pinCache.spacer = 0);
20013            }
20014            vars.onKill && vars.onKill(self2);
20015          };
20016          _triggers.push(self2);
20017          self2.enable(false, false);
20018          customRevertReturn && customRevertReturn(self2);
20019          if (animation && animation.add && !change) {
20020            var updateFunc = self2.update;
20021            self2.update = function() {
20022              self2.update = updateFunc;
20023              _scrollers.cache++;
20024              start || end || self2.refresh();
20025            };
20026            gsap3.delayedCall(0.01, self2.update);
20027            change = 0.01;
20028            start = end = 0;
20029          } else {
20030            self2.refresh();
20031          }
20032          pin && _queueRefreshAll();
20033        };
20034        ScrollTrigger4.register = function register(core) {
20035          if (!_coreInitted3) {
20036            gsap3 = core || _getGSAP3();
20037            _windowExists5() && window.document && ScrollTrigger4.enable();
20038            _coreInitted3 = _enabled;
20039          }
20040          return _coreInitted3;
20041        };
20042        ScrollTrigger4.defaults = function defaults2(config3) {
20043          if (config3) {
20044            for (var p2 in config3) {
20045              _defaults2[p2] = config3[p2];
20046            }
20047          }
20048          return _defaults2;
20049        };
20050        ScrollTrigger4.disable = function disable(reset, kill) {
20051          _enabled = 0;
20052          _triggers.forEach(function(trigger) {
20053            return trigger[kill ? "kill" : "disable"](reset);
20054          });
20055          _removeListener3(_win4, "wheel", _onScroll3);
20056          _removeListener3(_doc4, "scroll", _onScroll3);
20057          clearInterval(_syncInterval);
20058          _removeListener3(_doc4, "touchcancel", _passThrough3);
20059          _removeListener3(_body2, "touchstart", _passThrough3);
20060          _multiListener(_removeListener3, _doc4, "pointerdown,touchstart,mousedown", _pointerDownHandler);
20061          _multiListener(_removeListener3, _doc4, "pointerup,touchend,mouseup", _pointerUpHandler);
20062          _resizeDelay.kill();
20063          _iterateAutoRefresh(_removeListener3);
20064          for (var i10 = 0; i10 < _scrollers.length; i10 += 3) {
20065            _wheelListener(_removeListener3, _scrollers[i10], _scrollers[i10 + 1]);
20066            _wheelListener(_removeListener3, _scrollers[i10], _scrollers[i10 + 2]);
20067          }
20068        };
20069        ScrollTrigger4.enable = function enable() {
20070          _win4 = window;
20071          _doc4 = document;
20072          _docEl2 = _doc4.documentElement;
20073          _body2 = _doc4.body;
20074          if (gsap3) {
20075            _toArray = gsap3.utils.toArray;
20076            _clamp4 = gsap3.utils.clamp;
20077            _context3 = gsap3.core.context || _passThrough3;
20078            _suppressOverwrites2 = gsap3.core.suppressOverwrites || _passThrough3;
20079            _scrollRestoration = _win4.history.scrollRestoration || "auto";
20080            _lastScroll = _win4.pageYOffset || 0;
20081            gsap3.core.globals("ScrollTrigger", ScrollTrigger4);
20082            if (_body2) {
20083              _enabled = 1;
20084              _div100vh = document.createElement("div");
20085              _div100vh.style.height = "100vh";
20086              _div100vh.style.position = "absolute";
20087              _refresh100vh();
20088              _rafBugFix();
20089              Observer.register(gsap3);
20090              ScrollTrigger4.isTouch = Observer.isTouch;
20091              _fixIOSBug = Observer.isTouch && /(iPad|iPhone|iPod|Mac)/g.test(navigator.userAgent);
20092              _ignoreMobileResize = Observer.isTouch === 1;
20093              _addListener3(_win4, "wheel", _onScroll3);
20094              _root2 = [_win4, _doc4, _docEl2, _body2];
20095              if (gsap3.matchMedia) {
20096                ScrollTrigger4.matchMedia = function(vars) {
20097                  var mm = gsap3.matchMedia(), p2;
20098                  for (p2 in vars) {
20099                    mm.add(p2, vars[p2]);
20100                  }
20101                  return mm;
20102                };
20103                gsap3.addEventListener("matchMediaInit", function() {
20104                  _recordScrollPositions();
20105                  _revertAll();
20106                });
20107                gsap3.addEventListener("matchMediaRevert", function() {
20108                  return _revertRecorded();
20109                });
20110                gsap3.addEventListener("matchMedia", function() {
20111                  _refreshAll(0, 1);
20112                  _dispatch3("matchMedia");
20113                });
20114                gsap3.matchMedia().add("(orientation: portrait)", function() {
20115                  _setBaseDimensions();
20116                  return _setBaseDimensions;
20117                });
20118              } else {
20119                console.warn("Requires GSAP 3.11.0 or later");
20120              }
20121              _setBaseDimensions();
20122              _addListener3(_doc4, "scroll", _onScroll3);
20123              var bodyHasStyle = _body2.hasAttribute("style"), bodyStyle = _body2.style, border = bodyStyle.borderTopStyle, AnimationProto = gsap3.core.Animation.prototype, bounds, i10;
20124              AnimationProto.revert || Object.defineProperty(AnimationProto, "revert", {
20125                value: function value() {
20126                  return this.time(-0.01, true);
20127                }
20128              });
20129              bodyStyle.borderTopStyle = "solid";
20130              bounds = _getBounds(_body2);
20131              _vertical.m = Math.round(bounds.top + _vertical.sc()) || 0;
20132              _horizontal.m = Math.round(bounds.left + _horizontal.sc()) || 0;
20133              border ? bodyStyle.borderTopStyle = border : bodyStyle.removeProperty("border-top-style");
20134              if (!bodyHasStyle) {
20135                _body2.setAttribute("style", "");
20136                _body2.removeAttribute("style");
20137              }
20138              _syncInterval = setInterval(_sync, 250);
20139              gsap3.delayedCall(0.5, function() {
20140                return _startup2 = 0;
20141              });
20142              _addListener3(_doc4, "touchcancel", _passThrough3);
20143              _addListener3(_body2, "touchstart", _passThrough3);
20144              _multiListener(_addListener3, _doc4, "pointerdown,touchstart,mousedown", _pointerDownHandler);
20145              _multiListener(_addListener3, _doc4, "pointerup,touchend,mouseup", _pointerUpHandler);
20146              _transformProp2 = gsap3.utils.checkPrefix("transform");
20147              _stateProps.push(_transformProp2);
20148              _coreInitted3 = _getTime2();
20149              _resizeDelay = gsap3.delayedCall(0.2, _refreshAll).pause();
20150              _autoRefresh = [_doc4, "visibilitychange", function() {
20151                var w3 = _win4.innerWidth, h4 = _win4.innerHeight;
20152                if (_doc4.hidden) {
20153                  _prevWidth = w3;
20154                  _prevHeight = h4;
20155                } else if (_prevWidth !== w3 || _prevHeight !== h4) {
20156                  _onResize();
20157                }
20158              }, _doc4, "DOMContentLoaded", _refreshAll, _win4, "load", _refreshAll, _win4, "resize", _onResize];
20159              _iterateAutoRefresh(_addListener3);
20160              _triggers.forEach(function(trigger) {
20161                return trigger.enable(0, 1);
20162              });
20163              for (i10 = 0; i10 < _scrollers.length; i10 += 3) {
20164                _wheelListener(_removeListener3, _scrollers[i10], _scrollers[i10 + 1]);
20165                _wheelListener(_removeListener3, _scrollers[i10], _scrollers[i10 + 2]);
20166              }
20167            }
20168          }
20169        };
20170        ScrollTrigger4.config = function config3(vars) {
20171          "limitCallbacks" in vars && (_limitCallbacks = !!vars.limitCallbacks);
20172          var ms = vars.syncInterval;
20173          ms && clearInterval(_syncInterval) || (_syncInterval = ms) && setInterval(_sync, ms);
20174          "ignoreMobileResize" in vars && (_ignoreMobileResize = ScrollTrigger4.isTouch === 1 && vars.ignoreMobileResize);
20175          if ("autoRefreshEvents" in vars) {
20176            _iterateAutoRefresh(_removeListener3) || _iterateAutoRefresh(_addListener3, vars.autoRefreshEvents || "none");
20177            _ignoreResize = (vars.autoRefreshEvents + "").indexOf("resize") === -1;
20178          }
20179        };
20180        ScrollTrigger4.scrollerProxy = function scrollerProxy(target, vars) {
20181          var t11 = _getTarget(target), i10 = _scrollers.indexOf(t11), isViewport = _isViewport3(t11);
20182          if (~i10) {
20183            _scrollers.splice(i10, isViewport ? 6 : 2);
20184          }
20185          if (vars) {
20186            isViewport ? _proxies.unshift(_win4, vars, _body2, vars, _docEl2, vars) : _proxies.unshift(t11, vars);
20187          }
20188        };
20189        ScrollTrigger4.clearMatchMedia = function clearMatchMedia(query) {
20190          _triggers.forEach(function(t11) {
20191            return t11._ctx && t11._ctx.query === query && t11._ctx.kill(true, true);
20192          });
20193        };
20194        ScrollTrigger4.isInViewport = function isInViewport(element, ratio, horizontal) {
20195          var bounds = (_isString3(element) ? _getTarget(element) : element).getBoundingClientRect(), offset = bounds[horizontal ? _width : _height] * ratio || 0;
20196          return horizontal ? bounds.right - offset > 0 && bounds.left + offset < _win4.innerWidth : bounds.bottom - offset > 0 && bounds.top + offset < _win4.innerHeight;
20197        };
20198        ScrollTrigger4.positionInViewport = function positionInViewport(element, referencePoint, horizontal) {
20199          _isString3(element) && (element = _getTarget(element));
20200          var bounds = element.getBoundingClientRect(), size = bounds[horizontal ? _width : _height], offset = referencePoint == null ? size / 2 : referencePoint in _keywords ? _keywords[referencePoint] * size : ~referencePoint.indexOf("%") ? parseFloat(referencePoint) * size / 100 : parseFloat(referencePoint) || 0;
20201          return horizontal ? (bounds.left + offset) / _win4.innerWidth : (bounds.top + offset) / _win4.innerHeight;
20202        };
20203        ScrollTrigger4.killAll = function killAll(allowListeners) {
20204          _triggers.slice(0).forEach(function(t11) {
20205            return t11.vars.id !== "ScrollSmoother" && t11.kill();
20206          });
20207          if (allowListeners !== true) {
20208            var listeners = _listeners2.killAll || [];
20209            _listeners2 = {};
20210            listeners.forEach(function(f3) {
20211              return f3();
20212            });
20213          }
20214        };
20215        return ScrollTrigger4;
20216      })();
20217      ScrollTrigger2.version = "3.14.2";
20218      ScrollTrigger2.saveStyles = function(targets) {
20219        return targets ? _toArray(targets).forEach(function(target) {
20220          if (target && target.style) {
20221            var i10 = _savedStyles.indexOf(target);
20222            i10 >= 0 && _savedStyles.splice(i10, 5);
20223            _savedStyles.push(target, target.style.cssText, target.getBBox && target.getAttribute("transform"), gsap3.core.getCache(target), _context3());
20224          }
20225        }) : _savedStyles;
20226      };
20227      ScrollTrigger2.revert = function(soft, media) {
20228        return _revertAll(!soft, media);
20229      };
20230      ScrollTrigger2.create = function(vars, animation) {
20231        return new ScrollTrigger2(vars, animation);
20232      };
20233      ScrollTrigger2.refresh = function(safe) {
20234        return safe ? _onResize(true) : (_coreInitted3 || ScrollTrigger2.register()) && _refreshAll(true);
20235      };
20236      ScrollTrigger2.update = function(force) {
20237        return ++_scrollers.cache && _updateAll(force === true ? 2 : 0);
20238      };
20239      ScrollTrigger2.clearScrollMemory = _clearScrollMemory;
20240      ScrollTrigger2.maxScroll = function(element, horizontal) {
20241        return _maxScroll(element, horizontal ? _horizontal : _vertical);
20242      };
20243      ScrollTrigger2.getScrollFunc = function(element, horizontal) {
20244        return _getScrollFunc(_getTarget(element), horizontal ? _horizontal : _vertical);
20245      };
20246      ScrollTrigger2.getById = function(id) {
20247        return _ids[id];
20248      };
20249      ScrollTrigger2.getAll = function() {
20250        return _triggers.filter(function(t11) {
20251          return t11.vars.id !== "ScrollSmoother";
20252        });
20253      };
20254      ScrollTrigger2.isScrolling = function() {
20255        return !!_lastScrollTime;
20256      };
20257      ScrollTrigger2.snapDirectional = _snapDirectional;
20258      ScrollTrigger2.addEventListener = function(type, callback) {
20259        var a8 = _listeners2[type] || (_listeners2[type] = []);
20260        ~a8.indexOf(callback) || a8.push(callback);
20261      };
20262      ScrollTrigger2.removeEventListener = function(type, callback) {
20263        var a8 = _listeners2[type], i10 = a8 && a8.indexOf(callback);
20264        i10 >= 0 && a8.splice(i10, 1);
20265      };
20266      ScrollTrigger2.batch = function(targets, vars) {
20267        var result = [], varsCopy = {}, interval = vars.interval || 0.016, batchMax = vars.batchMax || 1e9, proxyCallback = function proxyCallback2(type, callback) {
20268          var elements = [], triggers = [], delay = gsap3.delayedCall(interval, function() {
20269            callback(elements, triggers);
20270            elements = [];
20271            triggers = [];
20272          }).pause();
20273          return function(self2) {
20274            elements.length || delay.restart(true);
20275            elements.push(self2.trigger);
20276            triggers.push(self2);
20277            batchMax <= elements.length && delay.progress(1);
20278          };
20279        }, p2;
20280        for (p2 in vars) {
20281          varsCopy[p2] = p2.substr(0, 2) === "on" && _isFunction3(vars[p2]) && p2 !== "onRefreshInit" ? proxyCallback(p2, vars[p2]) : vars[p2];
20282        }
20283        if (_isFunction3(batchMax)) {
20284          batchMax = batchMax();
20285          _addListener3(ScrollTrigger2, "refresh", function() {
20286            return batchMax = vars.batchMax();
20287          });
20288        }
20289        _toArray(targets).forEach(function(target) {
20290          var config3 = {};
20291          for (p2 in varsCopy) {
20292            config3[p2] = varsCopy[p2];
20293          }
20294          config3.trigger = target;
20295          result.push(ScrollTrigger2.create(config3));
20296        });
20297        return result;
20298      };
20299      _clampScrollAndGetDurationMultiplier = function _clampScrollAndGetDurationMultiplier2(scrollFunc, current, end, max) {
20300        current > max ? scrollFunc(max) : current < 0 && scrollFunc(0);
20301        return end > max ? (max - current) / (end - current) : end < 0 ? current / (current - end) : 1;
20302      };
20303      _allowNativePanning = function _allowNativePanning2(target, direction) {
20304        if (direction === true) {
20305          target.style.removeProperty("touch-action");
20306        } else {
20307          target.style.touchAction = direction === true ? "auto" : direction ? "pan-" + direction + (Observer.isTouch ? " pinch-zoom" : "") : "none";
20308        }
20309        target === _docEl2 && _allowNativePanning2(_body2, direction);
20310      };
20311      _overflow = {
20312        auto: 1,
20313        scroll: 1
20314      };
20315      _nestedScroll = function _nestedScroll2(_ref5) {
20316        var event = _ref5.event, target = _ref5.target, axis = _ref5.axis;
20317        var node = (event.changedTouches ? event.changedTouches[0] : event).target, cache = node._gsap || gsap3.core.getCache(node), time = _getTime2(), cs;
20318        if (!cache._isScrollT || time - cache._isScrollT > 2e3) {
20319          while (node && node !== _body2 && (node.scrollHeight <= node.clientHeight && node.scrollWidth <= node.clientWidth || !(_overflow[(cs = _getComputedStyle(node)).overflowY] || _overflow[cs.overflowX]))) {
20320            node = node.parentNode;
20321          }
20322          cache._isScroll = node && node !== target && !_isViewport3(node) && (_overflow[(cs = _getComputedStyle(node)).overflowY] || _overflow[cs.overflowX]);
20323          cache._isScrollT = time;
20324        }
20325        if (cache._isScroll || axis === "x") {
20326          event.stopPropagation();
20327          event._gsapAllow = true;
20328        }
20329      };
20330      _inputObserver = function _inputObserver2(target, type, inputs, nested) {
20331        return Observer.create({
20332          target,
20333          capture: true,
20334          debounce: false,
20335          lockAxis: true,
20336          type,
20337          onWheel: nested = nested && _nestedScroll,
20338          onPress: nested,
20339          onDrag: nested,
20340          onScroll: nested,
20341          onEnable: function onEnable() {
20342            return inputs && _addListener3(_doc4, Observer.eventTypes[0], _captureInputs, false, true);
20343          },
20344          onDisable: function onDisable() {
20345            return _removeListener3(_doc4, Observer.eventTypes[0], _captureInputs, true);
20346          }
20347        });
20348      };
20349      _inputExp = /(input|label|select|textarea)/i;
20350      _captureInputs = function _captureInputs2(e11) {
20351        var isInput2 = _inputExp.test(e11.target.tagName);
20352        if (isInput2 || _inputIsFocused) {
20353          e11._gsapAllow = true;
20354          _inputIsFocused = isInput2;
20355        }
20356      };
20357      _getScrollNormalizer = function _getScrollNormalizer2(vars) {
20358        _isObject3(vars) || (vars = {});
20359        vars.preventDefault = vars.isNormalizer = vars.allowClicks = true;
20360        vars.type || (vars.type = "wheel,touch");
20361        vars.debounce = !!vars.debounce;
20362        vars.id = vars.id || "normalizer";
20363        var _vars2 = vars, normalizeScrollX = _vars2.normalizeScrollX, momentum = _vars2.momentum, allowNestedScroll = _vars2.allowNestedScroll, onRelease = _vars2.onRelease, self2, maxY, target = _getTarget(vars.target) || _docEl2, smoother = gsap3.core.globals().ScrollSmoother, smootherInstance = smoother && smoother.get(), content = _fixIOSBug && (vars.content && _getTarget(vars.content) || smootherInstance && vars.content !== false && !smootherInstance.smooth() && smootherInstance.content()), scrollFuncY = _getScrollFunc(target, _vertical), scrollFuncX = _getScrollFunc(target, _horizontal), scale = 1, initialScale = (Observer.isTouch && _win4.visualViewport ? _win4.visualViewport.scale * _win4.visualViewport.width : _win4.outerWidth) / _win4.innerWidth, wheelRefresh = 0, resolveMomentumDuration = _isFunction3(momentum) ? function() {
20364          return momentum(self2);
20365        } : function() {
20366          return momentum || 2.8;
20367        }, lastRefreshID, skipTouchMove, inputObserver = _inputObserver(target, vars.type, true, allowNestedScroll), resumeTouchMove = function resumeTouchMove2() {
20368          return skipTouchMove = false;
20369        }, scrollClampX = _passThrough3, scrollClampY = _passThrough3, updateClamps = function updateClamps2() {
20370          maxY = _maxScroll(target, _vertical);
20371          scrollClampY = _clamp4(_fixIOSBug ? 1 : 0, maxY);
20372          normalizeScrollX && (scrollClampX = _clamp4(0, _maxScroll(target, _horizontal)));
20373          lastRefreshID = _refreshID;
20374        }, removeContentOffset = function removeContentOffset2() {
20375          content._gsap.y = _round3(parseFloat(content._gsap.y) + scrollFuncY.offset) + "px";
20376          content.style.transform = "matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, " + parseFloat(content._gsap.y) + ", 0, 1)";
20377          scrollFuncY.offset = scrollFuncY.cacheID = 0;
20378        }, ignoreDrag = function ignoreDrag2() {
20379          if (skipTouchMove) {
20380            requestAnimationFrame(resumeTouchMove);
20381            var offset = _round3(self2.deltaY / 2), scroll = scrollClampY(scrollFuncY.v - offset);
20382            if (content && scroll !== scrollFuncY.v + scrollFuncY.offset) {
20383              scrollFuncY.offset = scroll - scrollFuncY.v;
20384              var y3 = _round3((parseFloat(content && content._gsap.y) || 0) - scrollFuncY.offset);
20385              content.style.transform = "matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, " + y3 + ", 0, 1)";
20386              content._gsap.y = y3 + "px";
20387              scrollFuncY.cacheID = _scrollers.cache;
20388              _updateAll();
20389            }
20390            return true;
20391          }
20392          scrollFuncY.offset && removeContentOffset();
20393          skipTouchMove = true;
20394        }, tween, startScrollX, startScrollY, onStopDelayedCall, onResize = function onResize2() {
20395          updateClamps();
20396          if (tween.isActive() && tween.vars.scrollY > maxY) {
20397            scrollFuncY() > maxY ? tween.progress(1) && scrollFuncY(maxY) : tween.resetTo("scrollY", maxY);
20398          }
20399        };
20400        content && gsap3.set(content, {
20401          y: "+=0"
20402        });
20403        vars.ignoreCheck = function(e11) {
20404          return _fixIOSBug && e11.type === "touchmove" && ignoreDrag(e11) || scale > 1.05 && e11.type !== "touchstart" || self2.isGesturing || e11.touches && e11.touches.length > 1;
20405        };
20406        vars.onPress = function() {
20407          skipTouchMove = false;
20408          var prevScale = scale;
20409          scale = _round3((_win4.visualViewport && _win4.visualViewport.scale || 1) / initialScale);
20410          tween.pause();
20411          prevScale !== scale && _allowNativePanning(target, scale > 1.01 ? true : normalizeScrollX ? false : "x");
20412          startScrollX = scrollFuncX();
20413          startScrollY = scrollFuncY();
20414          updateClamps();
20415          lastRefreshID = _refreshID;
20416        };
20417        vars.onRelease = vars.onGestureStart = function(self3, wasDragging) {
20418          scrollFuncY.offset && removeContentOffset();
20419          if (!wasDragging) {
20420            onStopDelayedCall.restart(true);
20421          } else {
20422            _scrollers.cache++;
20423            var dur = resolveMomentumDuration(), currentScroll, endScroll;
20424            if (normalizeScrollX) {
20425              currentScroll = scrollFuncX();
20426              endScroll = currentScroll + dur * 0.05 * -self3.velocityX / 0.227;
20427              dur *= _clampScrollAndGetDurationMultiplier(scrollFuncX, currentScroll, endScroll, _maxScroll(target, _horizontal));
20428              tween.vars.scrollX = scrollClampX(endScroll);
20429            }
20430            currentScroll = scrollFuncY();
20431            endScroll = currentScroll + dur * 0.05 * -self3.velocityY / 0.227;
20432            dur *= _clampScrollAndGetDurationMultiplier(scrollFuncY, currentScroll, endScroll, _maxScroll(target, _vertical));
20433            tween.vars.scrollY = scrollClampY(endScroll);
20434            tween.invalidate().duration(dur).play(0.01);
20435            if (_fixIOSBug && tween.vars.scrollY >= maxY || currentScroll >= maxY - 1) {
20436              gsap3.to({}, {
20437                onUpdate: onResize,
20438                duration: dur
20439              });
20440            }
20441          }
20442          onRelease && onRelease(self3);
20443        };
20444        vars.onWheel = function() {
20445          tween._ts && tween.pause();
20446          if (_getTime2() - wheelRefresh > 1e3) {
20447            lastRefreshID = 0;
20448            wheelRefresh = _getTime2();
20449          }
20450        };
20451        vars.onChange = function(self3, dx, dy, xArray, yArray) {
20452          _refreshID !== lastRefreshID && updateClamps();
20453          dx && normalizeScrollX && scrollFuncX(scrollClampX(xArray[2] === dx ? startScrollX + (self3.startX - self3.x) : scrollFuncX() + dx - xArray[1]));
20454          if (dy) {
20455            scrollFuncY.offset && removeContentOffset();
20456            var isTouch = yArray[2] === dy, y3 = isTouch ? startScrollY + self3.startY - self3.y : scrollFuncY() + dy - yArray[1], yClamped = scrollClampY(y3);
20457            isTouch && y3 !== yClamped && (startScrollY += yClamped - y3);
20458            scrollFuncY(yClamped);
20459          }
20460          (dy || dx) && _updateAll();
20461        };
20462        vars.onEnable = function() {
20463          _allowNativePanning(target, normalizeScrollX ? false : "x");
20464          ScrollTrigger2.addEventListener("refresh", onResize);
20465          _addListener3(_win4, "resize", onResize);
20466          if (scrollFuncY.smooth) {
20467            scrollFuncY.target.style.scrollBehavior = "auto";
20468            scrollFuncY.smooth = scrollFuncX.smooth = false;
20469          }
20470          inputObserver.enable();
20471        };
20472        vars.onDisable = function() {
20473          _allowNativePanning(target, true);
20474          _removeListener3(_win4, "resize", onResize);
20475          ScrollTrigger2.removeEventListener("refresh", onResize);
20476          inputObserver.kill();
20477        };
20478        vars.lockAxis = vars.lockAxis !== false;
20479        self2 = new Observer(vars);
20480        self2.iOS = _fixIOSBug;
20481        _fixIOSBug && !scrollFuncY() && scrollFuncY(1);
20482        _fixIOSBug && gsap3.ticker.add(_passThrough3);
20483        onStopDelayedCall = self2._dc;
20484        tween = gsap3.to(self2, {
20485          ease: "power4",
20486          paused: true,
20487          inherit: false,
20488          scrollX: normalizeScrollX ? "+=0.1" : "+=0",
20489          scrollY: "+=0.1",
20490          modifiers: {
20491            scrollY: _interruptionTracker(scrollFuncY, scrollFuncY(), function() {
20492              return tween.pause();
20493            })
20494          },
20495          onUpdate: _updateAll,
20496          onComplete: onStopDelayedCall.vars.onComplete
20497        });
20498        return self2;
20499      };
20500      ScrollTrigger2.sort = function(func) {
20501        if (_isFunction3(func)) {
20502          return _triggers.sort(func);
20503        }
20504        var scroll = _win4.pageYOffset || 0;
20505        ScrollTrigger2.getAll().forEach(function(t11) {
20506          return t11._sortY = t11.trigger ? scroll + t11.trigger.getBoundingClientRect().top : t11.start + _win4.innerHeight;
20507        });
20508        return _triggers.sort(func || function(a8, b3) {
20509          return (a8.vars.refreshPriority || 0) * -1e6 + (a8.vars.containerAnimation ? 1e6 : a8._sortY) - ((b3.vars.containerAnimation ? 1e6 : b3._sortY) + (b3.vars.refreshPriority || 0) * -1e6);
20510        });
20511      };
20512      ScrollTrigger2.observe = function(vars) {
20513        return new Observer(vars);
20514      };
20515      ScrollTrigger2.normalizeScroll = function(vars) {
20516        if (typeof vars === "undefined") {
20517          return _normalizer2;
20518        }
20519        if (vars === true && _normalizer2) {
20520          return _normalizer2.enable();
20521        }
20522        if (vars === false) {
20523          _normalizer2 && _normalizer2.kill();
20524          _normalizer2 = vars;
20525          return;
20526        }
20527        var normalizer = vars instanceof Observer ? vars : _getScrollNormalizer(vars);
20528        _normalizer2 && _normalizer2.target === normalizer.target && _normalizer2.kill();
20529        _isViewport3(normalizer.target) && (_normalizer2 = normalizer);
20530        return normalizer;
20531      };
20532      ScrollTrigger2.core = {
20533        // smaller file size way to leverage in ScrollSmoother and Observer
20534        _getVelocityProp,
20535        _inputObserver,
20536        _scrollers,
20537        _proxies,
20538        bridge: {
20539          // when normalizeScroll sets the scroll position (ss = setScroll)
20540          ss: function ss() {
20541            _lastScrollTime || _dispatch3("scrollStart");
20542            _lastScrollTime = _getTime2();
20543          },
20544          // a way to get the _refreshing value in Observer
20545          ref: function ref() {
20546            return _refreshing;
20547          }
20548        }
20549      };
20550      _getGSAP3() && gsap3.registerPlugin(ScrollTrigger2);
20551    }
20552  });
20553
20554  
vendor: 34,154 bytes, lines 20554-21284
20554// node_modules/gsap/ScrollSmoother.js
20555  function _defineProperties2(target, props) {
20556    for (var i10 = 0; i10 < props.length; i10++) {
20557      var descriptor = props[i10];
20558      descriptor.enumerable = descriptor.enumerable || false;
20559      descriptor.configurable = true;
20560      if ("value" in descriptor) descriptor.writable = true;
20561      Object.defineProperty(target, descriptor.key, descriptor);
20562    }
20563  }
20564  function _createClass2(Constructor, protoProps, staticProps) {
20565    if (protoProps) _defineProperties2(Constructor.prototype, protoProps);
20566    if (staticProps) _defineProperties2(Constructor, staticProps);
20567    return Constructor;
20568  }
20569  var gsap4, _coreInitted4, _win5, _doc5, _docEl3, _body3, _root3, _toArray2, _clamp5, ScrollTrigger3, _mainInstance, _expo, _getVelocityProp3, _inputObserver3, _context4, _onResizeDelayedCall, _windowExists7, _getGSAP5, _round5, _maxScroll3, _autoDistance, _wrap, ScrollSmoother;
20570  var init_ScrollSmoother = __esm({
20571    "node_modules/gsap/ScrollSmoother.js"() {
20572      _windowExists7 = function _windowExists8() {
20573        return typeof window !== "undefined";
20574      };
20575      _getGSAP5 = function _getGSAP6() {
20576        return gsap4 || _windowExists7() && (gsap4 = window.gsap) && gsap4.registerPlugin && gsap4;
20577      };
20578      _round5 = function _round6(value) {
20579        return Math.round(value * 1e5) / 1e5 || 0;
20580      };
20581      _maxScroll3 = function _maxScroll4(scroller) {
20582        return ScrollTrigger3.maxScroll(scroller || _win5);
20583      };
20584      _autoDistance = function _autoDistance2(el, progress) {
20585        var parent = el.parentNode || _docEl3, b1 = el.getBoundingClientRect(), b22 = parent.getBoundingClientRect(), gapTop = b22.top - b1.top, gapBottom = b22.bottom - b1.bottom, change = (Math.abs(gapTop) > Math.abs(gapBottom) ? gapTop : gapBottom) / (1 - progress), offset = -change * progress, ratio, extraChange;
20586        if (change > 0) {
20587          ratio = b22.height / (_win5.innerHeight + b22.height);
20588          extraChange = ratio === 0.5 ? b22.height * 2 : Math.min(b22.height, Math.abs(-change * ratio / (2 * ratio - 1))) * 2 * (progress || 1);
20589          offset += progress ? -extraChange * progress : -extraChange / 2;
20590          change += extraChange;
20591        }
20592        return {
20593          change,
20594          offset
20595        };
20596      };
20597      _wrap = function _wrap2(el) {
20598        var wrapper = _doc5.querySelector(".ScrollSmoother-wrapper");
20599        if (!wrapper) {
20600          wrapper = _doc5.createElement("div");
20601          wrapper.classList.add("ScrollSmoother-wrapper");
20602          el.parentNode.insertBefore(wrapper, el);
20603          wrapper.appendChild(el);
20604        }
20605        return wrapper;
20606      };
20607      ScrollSmoother = /* @__PURE__ */ (function() {
20608        function ScrollSmoother2(vars) {
20609          var _this = this;
20610          _coreInitted4 || ScrollSmoother2.register(gsap4) || console.warn("Please gsap.registerPlugin(ScrollSmoother)");
20611          vars = this.vars = vars || {};
20612          _mainInstance && _mainInstance.kill();
20613          _mainInstance = this;
20614          _context4(this);
20615          var _vars = vars, smoothTouch = _vars.smoothTouch, _onUpdate = _vars.onUpdate, onStop = _vars.onStop, smooth = _vars.smooth, onFocusIn = _vars.onFocusIn, normalizeScroll = _vars.normalizeScroll, wholePixels = _vars.wholePixels, content, wrapper, height, mainST, effects, sections, intervalID, wrapperCSS, contentCSS, paused, pausedNormalizer, recordedRefreshScroll, recordedRefreshScrub, allowUpdates, self2 = this, effectsPrefix = vars.effectsPrefix || "", scrollFunc = ScrollTrigger3.getScrollFunc(_win5), smoothDuration = ScrollTrigger3.isTouch === 1 ? smoothTouch === true ? 0.8 : parseFloat(smoothTouch) || 0 : smooth === 0 || smooth === false ? 0 : parseFloat(smooth) || 0.8, speed = smoothDuration && +vars.speed || 1, currentY = 0, delta = 0, startupPhase = 1, tracker = _getVelocityProp3(0), updateVelocity = function updateVelocity2() {
20616            return tracker.update(-currentY);
20617          }, scroll = {
20618            y: 0
20619          }, removeScroll = function removeScroll2() {
20620            return content.style.overflow = "visible";
20621          }, isProxyScrolling, killScrub = function killScrub2(trigger) {
20622            trigger.update();
20623            var scrub = trigger.getTween();
20624            if (scrub) {
20625              scrub.pause();
20626              scrub._time = scrub._dur;
20627              scrub._tTime = scrub._tDur;
20628            }
20629            isProxyScrolling = false;
20630            trigger.animation.progress(trigger.progress, true);
20631          }, render3 = function render4(y3, force) {
20632            if (y3 !== currentY && !paused || force) {
20633              wholePixels && (y3 = Math.round(y3));
20634              if (smoothDuration) {
20635                content.style.transform = "matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, " + y3 + ", 0, 1)";
20636                content._gsap.y = y3 + "px";
20637              }
20638              delta = y3 - currentY;
20639              currentY = y3;
20640              ScrollTrigger3.isUpdating || ScrollSmoother2.isRefreshing || ScrollTrigger3.update();
20641            }
20642          }, scrollTop = function scrollTop2(value) {
20643            if (arguments.length) {
20644              value < 0 && (value = 0);
20645              scroll.y = -value;
20646              isProxyScrolling = true;
20647              paused ? currentY = -value : render3(-value);
20648              ScrollTrigger3.isRefreshing ? mainST.update() : scrollFunc(value / speed);
20649              return this;
20650            }
20651            return -currentY;
20652          }, resizeObserver = typeof ResizeObserver !== "undefined" && vars.autoResize !== false && new ResizeObserver(function() {
20653            if (!ScrollTrigger3.isRefreshing) {
20654              var max = _maxScroll3(wrapper) * speed;
20655              max < -currentY && scrollTop(max);
20656              _onResizeDelayedCall.restart(true);
20657            }
20658          }), lastFocusElement, _onFocusIn = function _onFocusIn2(e11) {
20659            wrapper.scrollTop = 0;
20660            if (e11.target.contains && e11.target.contains(wrapper) || onFocusIn && onFocusIn(_this, e11) === false) {
20661              return;
20662            }
20663            ScrollTrigger3.isInViewport(e11.target) || e11.target === lastFocusElement || _this.scrollTo(e11.target, false, "center center");
20664            lastFocusElement = e11.target;
20665          }, _transformPosition = function _transformPosition2(position, st) {
20666            if (position < st.start) {
20667              return position;
20668            }
20669            var ratio = isNaN(st.ratio) ? 1 : st.ratio, change = st.end - st.start, distance = position - st.start, offset = st.offset || 0, pins = st.pins || [], pinOffset = pins.offset || 0, progressOffset = st._startClamp && st.start <= 0 || st.pins && st.pins.offset ? 0 : st._endClamp && st.end === _maxScroll3() ? 1 : 0.5;
20670            pins.forEach(function(p2) {
20671              change -= p2.distance;
20672              if (p2.nativeStart <= position) {
20673                distance -= p2.distance;
20674              }
20675            });
20676            if (pinOffset) {
20677              distance *= (change - pinOffset / ratio) / change;
20678            }
20679            return position + (distance - offset * progressOffset) / ratio - distance;
20680          }, adjustEffectRelatedTriggers = function adjustEffectRelatedTriggers2(st, triggers, partial) {
20681            partial || (st.pins.length = st.pins.offset = 0);
20682            var pins = st.pins, markers = st.markers, dif, isClamped, start, end, nativeStart, nativeEnd, i10, trig;
20683            for (i10 = 0; i10 < triggers.length; i10++) {
20684              trig = triggers[i10];
20685              if (st.trigger && trig.trigger && st !== trig && (trig.trigger === st.trigger || trig.pinnedContainer === st.trigger || st.trigger.contains(trig.trigger))) {
20686                nativeStart = trig._startNative || trig._startClamp || trig.start;
20687                nativeEnd = trig._endNative || trig._endClamp || trig.end;
20688                start = _transformPosition(nativeStart, st);
20689                end = trig.pin && nativeEnd > 0 ? start + (nativeEnd - nativeStart) : _transformPosition(nativeEnd, st);
20690                trig.setPositions(start, end, true, (trig._startClamp ? Math.max(0, start) : start) - nativeStart);
20691                trig.markerStart && markers.push(gsap4.quickSetter([trig.markerStart, trig.markerEnd], "y", "px"));
20692                if (trig.pin && trig.end > 0 && !partial) {
20693                  dif = trig.end - trig.start;
20694                  isClamped = st._startClamp && trig.start < 0;
20695                  if (isClamped) {
20696                    if (st.start > 0) {
20697                      st.setPositions(0, st.end + (st._startNative - st.start), true);
20698                      adjustEffectRelatedTriggers2(st, triggers);
20699                      return;
20700                    }
20701                    dif += trig.start;
20702                    pins.offset = -trig.start;
20703                  }
20704                  pins.push({
20705                    start: trig.start,
20706                    nativeStart,
20707                    end: trig.end,
20708                    distance: dif,
20709                    trig
20710                  });
20711                  st.setPositions(st.start, st.end + (isClamped ? -trig.start : dif), true);
20712                }
20713              }
20714            }
20715          }, adjustParallaxPosition = function adjustParallaxPosition2(triggers, createdAfterEffectWasApplied) {
20716            effects.forEach(function(st) {
20717              return adjustEffectRelatedTriggers(st, triggers, createdAfterEffectWasApplied);
20718            });
20719          }, onRefresh = function onRefresh2() {
20720            _docEl3 = _doc5.documentElement;
20721            _body3 = _doc5.body;
20722            removeScroll();
20723            requestAnimationFrame(removeScroll);
20724            if (effects) {
20725              ScrollTrigger3.getAll().forEach(function(st) {
20726                st._startNative = st.start;
20727                st._endNative = st.end;
20728              });
20729              effects.forEach(function(st) {
20730                var start = st._startClamp || st.start, end = st.autoSpeed ? Math.min(_maxScroll3(), st.end) : start + Math.abs((st.end - start) / st.ratio), offset = end - st.end;
20731                start -= offset / 2;
20732                end -= offset / 2;
20733                if (start > end) {
20734                  var s13 = start;
20735                  start = end;
20736                  end = s13;
20737                }
20738                if (st._startClamp && start < 0) {
20739                  end = st.ratio < 0 ? _maxScroll3() : st.end / st.ratio;
20740                  offset = end - st.end;
20741                  start = 0;
20742                } else if (st.ratio < 0 || st._endClamp && end >= _maxScroll3()) {
20743                  end = _maxScroll3();
20744                  start = st.ratio < 0 ? 0 : st.ratio > 1 ? 0 : end - (end - st.start) / st.ratio;
20745                  offset = (end - start) * st.ratio - (st.end - st.start);
20746                }
20747                st.offset = offset || 1e-4;
20748                st.pins.length = st.pins.offset = 0;
20749                st.setPositions(start, end, true);
20750              });
20751              adjustParallaxPosition(ScrollTrigger3.sort());
20752            }
20753            tracker.reset();
20754          }, addOnRefresh = function addOnRefresh2() {
20755            return ScrollTrigger3.addEventListener("refresh", onRefresh);
20756          }, restoreEffects = function restoreEffects2() {
20757            return effects && effects.forEach(function(st) {
20758              return st.vars.onRefresh(st);
20759            });
20760          }, revertEffects = function revertEffects2() {
20761            effects && effects.forEach(function(st) {
20762              return st.vars.onRefreshInit(st);
20763            });
20764            return restoreEffects;
20765          }, effectValueGetter = function effectValueGetter2(name, value, index, el) {
20766            return function() {
20767              var v3 = typeof value === "function" ? value(index, el) : value;
20768              v3 || v3 === 0 || (v3 = el.getAttribute("data-" + effectsPrefix + name) || (name === "speed" ? 1 : 0));
20769              el.setAttribute("data-" + effectsPrefix + name, v3);
20770              var clamp3 = (v3 + "").substr(0, 6) === "clamp(";
20771              return {
20772                clamp: clamp3,
20773                value: clamp3 ? v3.substr(6, v3.length - 7) : v3
20774              };
20775            };
20776          }, createEffect = function createEffect2(el, speed2, lag, index, effectsPadding) {
20777            effectsPadding = (typeof effectsPadding === "function" ? effectsPadding(index, el) : effectsPadding) || 0;
20778            var getSpeed = effectValueGetter("speed", speed2, index, el), getLag = effectValueGetter("lag", lag, index, el), startY = gsap4.getProperty(el, "y"), cache = el._gsap, ratio, st, autoSpeed, scrub, progressOffset, yOffset, pins = [], initDynamicValues = function initDynamicValues2() {
20779              speed2 = getSpeed();
20780              lag = parseFloat(getLag().value);
20781              ratio = parseFloat(speed2.value) || 1;
20782              autoSpeed = speed2.value === "auto";
20783              progressOffset = autoSpeed || st && st._startClamp && st.start <= 0 || pins.offset ? 0 : st && st._endClamp && st.end === _maxScroll3() ? 1 : 0.5;
20784              scrub && scrub.kill();
20785              scrub = lag && gsap4.to(el, {
20786                ease: _expo,
20787                overwrite: false,
20788                y: "+=0",
20789                duration: lag
20790              });
20791              if (st) {
20792                st.ratio = ratio;
20793                st.autoSpeed = autoSpeed;
20794              }
20795            }, revert = function revert2() {
20796              cache.y = startY + "px";
20797              cache.renderTransform(1);
20798              initDynamicValues();
20799            }, markers = [], change = 0, updateChange = function updateChange2(self3) {
20800              if (autoSpeed) {
20801                revert();
20802                var auto = _autoDistance(el, _clamp5(0, 1, -self3.start / (self3.end - self3.start)));
20803                change = auto.change;
20804                yOffset = auto.offset;
20805              } else {
20806                yOffset = pins.offset || 0;
20807                change = (self3.end - self3.start - yOffset) * (1 - ratio);
20808              }
20809              pins.forEach(function(p2) {
20810                return change -= p2.distance * (1 - ratio);
20811              });
20812              self3.offset = change || 1e-3;
20813              self3.vars.onUpdate(self3);
20814              scrub && scrub.progress(1);
20815            };
20816            initDynamicValues();
20817            if (ratio !== 1 || autoSpeed || scrub) {
20818              st = ScrollTrigger3.create({
20819                trigger: autoSpeed ? el.parentNode : el,
20820                start: function start() {
20821                  return speed2.clamp ? "clamp(top bottom+=" + effectsPadding + ")" : "top bottom+=" + effectsPadding;
20822                },
20823                end: function end() {
20824                  return speed2.value < 0 ? "max" : speed2.clamp ? "clamp(bottom top-=" + effectsPadding + ")" : "bottom top-=" + effectsPadding;
20825                },
20826                scroller: wrapper,
20827                scrub: true,
20828                refreshPriority: -999,
20829                // must update AFTER any other ScrollTrigger pins
20830                onRefreshInit: revert,
20831                onRefresh: updateChange,
20832                onKill: function onKill(self3) {
20833                  var i10 = effects.indexOf(self3);
20834                  i10 >= 0 && effects.splice(i10, 1);
20835                  revert();
20836                },
20837                onUpdate: function onUpdate(self3) {
20838                  var y3 = startY + change * (self3.progress - progressOffset), i10 = pins.length, extraY = 0, pin, scrollY, end;
20839                  if (self3.offset) {
20840                    if (i10) {
20841                      scrollY = -currentY;
20842                      end = self3.end;
20843                      while (i10--) {
20844                        pin = pins[i10];
20845                        if (pin.trig.isActive || scrollY >= pin.start && scrollY <= pin.end) {
20846                          if (scrub) {
20847                            pin.trig.progress += pin.trig.direction < 0 ? 1e-3 : -1e-3;
20848                            pin.trig.update(0, 0, 1);
20849                            scrub.resetTo("y", parseFloat(cache.y), -delta, true);
20850                            startupPhase && scrub.progress(1);
20851                          }
20852                          return;
20853                        }
20854                        scrollY > pin.end && (extraY += pin.distance);
20855                        end -= pin.distance;
20856                      }
20857                      y3 = startY + extraY + change * ((gsap4.utils.clamp(self3.start, self3.end, scrollY) - self3.start - extraY) / (end - self3.start) - progressOffset);
20858                    }
20859                    markers.length && !autoSpeed && markers.forEach(function(setter) {
20860                      return setter(y3 - extraY);
20861                    });
20862                    y3 = _round5(y3 + yOffset);
20863                    if (scrub) {
20864                      scrub.resetTo("y", y3, -delta, true);
20865                      startupPhase && scrub.progress(1);
20866                    } else {
20867                      cache.y = y3 + "px";
20868                      cache.renderTransform(1);
20869                    }
20870                  }
20871                }
20872              });
20873              updateChange(st);
20874              gsap4.core.getCache(st.trigger).stRevert = revertEffects;
20875              st.startY = startY;
20876              st.pins = pins;
20877              st.markers = markers;
20878              st.ratio = ratio;
20879              st.autoSpeed = autoSpeed;
20880              el.style.willChange = "transform";
20881            }
20882            return st;
20883          };
20884          addOnRefresh();
20885          ScrollTrigger3.addEventListener("killAll", addOnRefresh);
20886          gsap4.delayedCall(0.5, function() {
20887            return startupPhase = 0;
20888          });
20889          this.scrollTop = scrollTop;
20890          this.scrollTo = function(target, smooth2, position) {
20891            var p2 = gsap4.utils.clamp(0, _maxScroll3(), isNaN(target) ? _this.offset(target, position, !!smooth2 && !paused) : +target);
20892            !smooth2 ? scrollTop(p2) : paused ? gsap4.to(_this, {
20893              duration: smoothDuration,
20894              scrollTop: p2,
20895              overwrite: "auto",
20896              ease: _expo
20897            }) : scrollFunc(p2);
20898          };
20899          this.offset = function(target, position, ignoreSpeed) {
20900            target = _toArray2(target)[0];
20901            var cssText = target.style.cssText, st = ScrollTrigger3.create({
20902              trigger: target,
20903              start: position || "top top"
20904            }), y3;
20905            if (effects) {
20906              startupPhase ? ScrollTrigger3.refresh() : adjustParallaxPosition([st], true);
20907            }
20908            y3 = st.start / (ignoreSpeed ? speed : 1);
20909            st.kill(false);
20910            target.style.cssText = cssText;
20911            gsap4.core.getCache(target).uncache = 1;
20912            return y3;
20913          };
20914          function refreshHeight() {
20915            height = content.clientHeight;
20916            content.style.overflow = "visible";
20917            _body3.style.height = _win5.innerHeight + (height - _win5.innerHeight) / speed + "px";
20918            return height - _win5.innerHeight;
20919          }
20920          this.content = function(element) {
20921            if (arguments.length) {
20922              var newContent = _toArray2(element || "#smooth-content")[0] || console.warn("ScrollSmoother needs a valid content element.") || _body3.children[0];
20923              if (newContent !== content) {
20924                content = newContent;
20925                contentCSS = content.getAttribute("style") || "";
20926                resizeObserver && resizeObserver.observe(content);
20927                gsap4.set(content, {
20928                  overflow: "visible",
20929                  width: "100%",
20930                  boxSizing: "border-box",
20931                  y: "+=0"
20932                });
20933                smoothDuration || gsap4.set(content, {
20934                  clearProps: "transform"
20935                });
20936              }
20937              return this;
20938            }
20939            return content;
20940          };
20941          this.wrapper = function(element) {
20942            if (arguments.length) {
20943              wrapper = _toArray2(element || "#smooth-wrapper")[0] || _wrap(content);
20944              wrapperCSS = wrapper.getAttribute("style") || "";
20945              refreshHeight();
20946              gsap4.set(wrapper, smoothDuration ? {
20947                overflow: "hidden",
20948                position: "fixed",
20949                height: "100%",
20950                width: "100%",
20951                top: 0,
20952                left: 0,
20953                right: 0,
20954                bottom: 0
20955              } : {
20956                overflow: "visible",
20957                position: "relative",
20958                width: "100%",
20959                height: "auto",
20960                top: "auto",
20961                bottom: "auto",
20962                left: "auto",
20963                right: "auto"
20964              });
20965              return this;
20966            }
20967            return wrapper;
20968          };
20969          this.effects = function(targets, config3) {
20970            var _effects2;
20971            effects || (effects = []);
20972            if (!targets) {
20973              return effects.slice(0);
20974            }
20975            targets = _toArray2(targets);
20976            targets.forEach(function(target) {
20977              var i11 = effects.length;
20978              while (i11--) {
20979                effects[i11].trigger === target && effects[i11].kill();
20980              }
20981            });
20982            config3 = config3 || {};
20983            var _config2 = config3, speed2 = _config2.speed, lag = _config2.lag, effectsPadding = _config2.effectsPadding, effectsToAdd = [], i10, st;
20984            for (i10 = 0; i10 < targets.length; i10++) {
20985              st = createEffect(targets[i10], speed2, lag, i10, effectsPadding);
20986              st && effectsToAdd.push(st);
20987            }
20988            (_effects2 = effects).push.apply(_effects2, effectsToAdd);
20989            config3.refresh !== false && ScrollTrigger3.refresh();
20990            return effectsToAdd;
20991          };
20992          this.sections = function(targets, config3) {
20993            var _sections;
20994            sections || (sections = []);
20995            if (!targets) {
20996              return sections.slice(0);
20997            }
20998            var newSections = _toArray2(targets).map(function(el) {
20999              return ScrollTrigger3.create({
21000                trigger: el,
21001                start: "top 120%",
21002                end: "bottom -20%",
21003                onToggle: function onToggle(self3) {
21004                  el.style.opacity = self3.isActive ? "1" : "0";
21005                  el.style.pointerEvents = self3.isActive ? "all" : "none";
21006                }
21007              });
21008            });
21009            config3 && config3.add ? (_sections = sections).push.apply(_sections, newSections) : sections = newSections.slice(0);
21010            return newSections;
21011          };
21012          this.content(vars.content);
21013          this.wrapper(vars.wrapper);
21014          this.render = function(y3) {
21015            return render3(y3 || y3 === 0 ? y3 : currentY);
21016          };
21017          this.getVelocity = function() {
21018            return tracker.getVelocity(-currentY);
21019          };
21020          ScrollTrigger3.scrollerProxy(wrapper, {
21021            scrollTop,
21022            scrollHeight: function scrollHeight() {
21023              return refreshHeight() && _body3.scrollHeight;
21024            },
21025            fixedMarkers: vars.fixedMarkers !== false && !!smoothDuration,
21026            content,
21027            getBoundingClientRect: function getBoundingClientRect() {
21028              return {
21029                top: 0,
21030                left: 0,
21031                width: _win5.innerWidth,
21032                height: _win5.innerHeight
21033              };
21034            }
21035          });
21036          ScrollTrigger3.defaults({
21037            scroller: wrapper
21038          });
21039          var existingScrollTriggers = ScrollTrigger3.getAll().filter(function(st) {
21040            return st.scroller === _win5 || st.scroller === wrapper;
21041          });
21042          existingScrollTriggers.forEach(function(st) {
21043            return st.revert(true, true);
21044          });
21045          mainST = ScrollTrigger3.create({
21046            animation: gsap4.fromTo(scroll, {
21047              y: function y3() {
21048                allowUpdates = 0;
21049                return 0;
21050              }
21051            }, {
21052              y: function y3() {
21053                allowUpdates = 1;
21054                return -refreshHeight();
21055              },
21056              immediateRender: false,
21057              ease: "none",
21058              data: "ScrollSmoother",
21059              duration: 100,
21060              // for added precision
21061              onUpdate: function onUpdate() {
21062                if (allowUpdates) {
21063                  var force = isProxyScrolling;
21064                  if (force) {
21065                    killScrub(mainST);
21066                    scroll.y = currentY;
21067                  }
21068                  render3(scroll.y, force);
21069                  updateVelocity();
21070                  _onUpdate && !paused && _onUpdate(self2);
21071                }
21072              }
21073            }),
21074            onRefreshInit: function onRefreshInit(self3) {
21075              if (ScrollSmoother2.isRefreshing) {
21076                return;
21077              }
21078              ScrollSmoother2.isRefreshing = true;
21079              if (effects) {
21080                var _pins = ScrollTrigger3.getAll().filter(function(st) {
21081                  return !!st.pin;
21082                });
21083                effects.forEach(function(st) {
21084                  if (!st.vars.pinnedContainer) {
21085                    _pins.forEach(function(pinST) {
21086                      if (pinST.pin.contains(st.trigger)) {
21087                        var v3 = st.vars;
21088                        v3.pinnedContainer = pinST.pin;
21089                        st.vars = null;
21090                        st.init(v3, st.animation);
21091                      }
21092                    });
21093                  }
21094                });
21095              }
21096              var scrub = self3.getTween();
21097              recordedRefreshScrub = scrub && scrub._end > scrub._dp._time;
21098              recordedRefreshScroll = currentY;
21099              scroll.y = 0;
21100              if (smoothDuration) {
21101                ScrollTrigger3.isTouch === 1 && (wrapper.style.position = "absolute");
21102                wrapper.scrollTop = 0;
21103                ScrollTrigger3.isTouch === 1 && (wrapper.style.position = "fixed");
21104              }
21105            },
21106            onRefresh: function onRefresh2(self3) {
21107              self3.animation.invalidate();
21108              scroll.y = 0;
21109              self3.setPositions(self3.start, refreshHeight() / speed);
21110              recordedRefreshScrub || killScrub(self3);
21111              scroll.y = -scrollFunc() * speed;
21112              render3(scroll.y);
21113              if (!startupPhase) {
21114                recordedRefreshScrub && (isProxyScrolling = false);
21115                self3.animation.progress(gsap4.utils.clamp(0, 1, recordedRefreshScroll / speed / -self3.end));
21116              }
21117              if (recordedRefreshScrub) {
21118                self3.progress -= 1e-3;
21119                self3.update();
21120              }
21121              ScrollSmoother2.isRefreshing = false;
21122            },
21123            id: "ScrollSmoother",
21124            scroller: _win5,
21125            invalidateOnRefresh: true,
21126            start: 0,
21127            refreshPriority: -9999,
21128            // because all other pins, etc. should be calculated first before this figures out the height of the body. BUT this should also update FIRST so that the scroll position on the proxy is up-to-date when all the ScrollTriggers calculate their progress! -9999 is a special number that ScrollTrigger looks for to handle in this way.
21129            end: function end() {
21130              return refreshHeight() / speed;
21131            },
21132            onScrubComplete: function onScrubComplete() {
21133              tracker.reset();
21134              onStop && onStop(_this);
21135            },
21136            scrub: smoothDuration || true
21137          });
21138          this.smooth = function(value) {
21139            if (arguments.length) {
21140              smoothDuration = value || 0;
21141              speed = smoothDuration && +vars.speed || 1;
21142              mainST.scrubDuration(value);
21143            }
21144            return mainST.getTween() ? mainST.getTween().duration() : 0;
21145          };
21146          mainST.getTween() && (mainST.getTween().vars.ease = vars.ease || _expo);
21147          this.scrollTrigger = mainST;
21148          vars.effects && this.effects(vars.effects === true ? "[data-" + effectsPrefix + "speed], [data-" + effectsPrefix + "lag]" : vars.effects, {
21149            effectsPadding: vars.effectsPadding,
21150            refresh: false
21151          });
21152          vars.sections && this.sections(vars.sections === true ? "[data-section]" : vars.sections);
21153          existingScrollTriggers.forEach(function(st) {
21154            st.vars.scroller = wrapper;
21155            st.revert(false, true);
21156            st.init(st.vars, st.animation);
21157          });
21158          this.paused = function(value, allowNestedScroll) {
21159            if (arguments.length) {
21160              if (!!paused !== value) {
21161                if (value) {
21162                  mainST.getTween() && mainST.getTween().pause();
21163                  scrollFunc(-currentY / speed);
21164                  tracker.reset();
21165                  pausedNormalizer = ScrollTrigger3.normalizeScroll();
21166                  pausedNormalizer && pausedNormalizer.disable();
21167                  paused = ScrollTrigger3.observe({
21168                    preventDefault: true,
21169                    type: "wheel,touch,scroll",
21170                    debounce: false,
21171                    allowClicks: true,
21172                    onChangeY: function onChangeY() {
21173                      return scrollTop(-currentY);
21174                    }
21175                    // refuse to scroll
21176                  });
21177                  paused.nested = _inputObserver3(_docEl3, "wheel,touch,scroll", true, allowNestedScroll !== false);
21178                } else {
21179                  paused.nested.kill();
21180                  paused.kill();
21181                  paused = 0;
21182                  pausedNormalizer && pausedNormalizer.enable();
21183                  mainST.progress = (-currentY / speed - mainST.start) / (mainST.end - mainST.start);
21184                  killScrub(mainST);
21185                }
21186              }
21187              return this;
21188            }
21189            return !!paused;
21190          };
21191          this.kill = this.revert = function() {
21192            _this.paused(false);
21193            killScrub(mainST);
21194            mainST.kill();
21195            var triggers = (effects || []).concat(sections || []), i10 = triggers.length;
21196            while (i10--) {
21197              triggers[i10].kill();
21198            }
21199            ScrollTrigger3.scrollerProxy(wrapper);
21200            ScrollTrigger3.removeEventListener("killAll", addOnRefresh);
21201            ScrollTrigger3.removeEventListener("refresh", onRefresh);
21202            wrapper.style.cssText = wrapperCSS;
21203            content.style.cssText = contentCSS;
21204            var defaults2 = ScrollTrigger3.defaults({});
21205            defaults2 && defaults2.scroller === wrapper && ScrollTrigger3.defaults({
21206              scroller: _win5
21207            });
21208            _this.normalizer && ScrollTrigger3.normalizeScroll(false);
21209            clearInterval(intervalID);
21210            _mainInstance = null;
21211            resizeObserver && resizeObserver.disconnect();
21212            _body3.style.removeProperty("height");
21213            _win5.removeEventListener("focusin", _onFocusIn);
21214          };
21215          this.refresh = function(soft, force) {
21216            return mainST.refresh(soft, force);
21217          };
21218          if (normalizeScroll) {
21219            this.normalizer = ScrollTrigger3.normalizeScroll(normalizeScroll === true ? {
21220              debounce: true,
21221              content: !smoothDuration && content
21222            } : normalizeScroll);
21223          }
21224          ScrollTrigger3.config(vars);
21225          "scrollBehavior" in _win5.getComputedStyle(_body3) && gsap4.set([_body3, _docEl3], {
21226            scrollBehavior: "auto"
21227          });
21228          _win5.addEventListener("focusin", _onFocusIn);
21229          intervalID = setInterval(updateVelocity, 250);
21230          _doc5.readyState === "loading" || requestAnimationFrame(function() {
21231            return ScrollTrigger3.refresh();
21232          });
21233        }
21234        ScrollSmoother2.register = function register(core) {
21235          if (!_coreInitted4) {
21236            gsap4 = core || _getGSAP5();
21237            if (_windowExists7() && window.document) {
21238              _win5 = window;
21239              _doc5 = document;
21240              _docEl3 = _doc5.documentElement;
21241              _body3 = _doc5.body;
21242            }
21243            if (gsap4) {
21244              _toArray2 = gsap4.utils.toArray;
21245              _clamp5 = gsap4.utils.clamp;
21246              _expo = gsap4.parseEase("expo");
21247              _context4 = gsap4.core.context || function() {
21248              };
21249              ScrollTrigger3 = gsap4.core.globals().ScrollTrigger;
21250              gsap4.core.globals("ScrollSmoother", ScrollSmoother2);
21251              if (_body3 && ScrollTrigger3) {
21252                _onResizeDelayedCall = gsap4.delayedCall(0.2, function() {
21253                  return ScrollTrigger3.isRefreshing || _mainInstance && _mainInstance.refresh();
21254                }).pause();
21255                _root3 = [_win5, _doc5, _docEl3, _body3];
21256                _getVelocityProp3 = ScrollTrigger3.core._getVelocityProp;
21257                _inputObserver3 = ScrollTrigger3.core._inputObserver;
21258                ScrollSmoother2.refresh = ScrollTrigger3.refresh;
21259                _coreInitted4 = 1;
21260              }
21261            }
21262          }
21263          return _coreInitted4;
21264        };
21265        _createClass2(ScrollSmoother2, [{
21266          key: "progress",
21267          get: function get() {
21268            return this.scrollTrigger ? this.scrollTrigger.animation._time / 100 : 0;
21269          }
21270        }]);
21271        return ScrollSmoother2;
21272      })();
21273      ScrollSmoother.version = "3.14.2";
21274      ScrollSmoother.create = function(vars) {
21275        return _mainInstance && vars && _mainInstance.content() === _toArray2(vars.content)[0] ? _mainInstance : new ScrollSmoother(vars);
21276      };
21277      ScrollSmoother.get = function() {
21278        return _mainInstance;
21279      };
21280      _getGSAP5() && gsap4.registerPlugin(ScrollSmoother);
21281    }
21282  });
21283
21284  
21284// js/gsap.js
21285  var gsap_exports = {};
21286  var init_gsap2 = __esm({
21287    "js/gsap.js"() {
21288      init_gsap();
21289      init_ScrollTrigger();
21290      init_ScrollSmoother();
21291      gsapWithCSS.registerPlugin(ScrollTrigger2, ScrollSmoother);
21292    }
21293  });
21294
21295  
vendor: 2,707 bytes, lines 21295-21371
21295// node_modules/outlayer/node_modules/ev-emitter/ev-emitter.js
21296  var require_ev_emitter2 = __commonJS({
21297    "node_modules/outlayer/node_modules/ev-emitter/ev-emitter.js"(exports, module) {
21298      (function(global, factory) {
21299        if (typeof define == "function" && define.amd) {
21300          define(factory);
21301        } else if (typeof module == "object" && module.exports) {
21302          module.exports = factory();
21303        } else {
21304          global.EvEmitter = factory();
21305        }
21306      })(typeof window != "undefined" ? window : exports, function() {
21307        "use strict";
21308        function EvEmitter() {
21309        }
21310        var proto = EvEmitter.prototype;
21311        proto.on = function(eventName, listener) {
21312          if (!eventName || !listener) {
21313            return;
21314          }
21315          var events = this._events = this._events || {};
21316          var listeners = events[eventName] = events[eventName] || [];
21317          if (listeners.indexOf(listener) == -1) {
21318            listeners.push(listener);
21319          }
21320          return this;
21321        };
21322        proto.once = function(eventName, listener) {
21323          if (!eventName || !listener) {
21324            return;
21325          }
21326          this.on(eventName, listener);
21327          var onceEvents = this._onceEvents = this._onceEvents || {};
21328          var onceListeners = onceEvents[eventName] = onceEvents[eventName] || {};
21329          onceListeners[listener] = true;
21330          return this;
21331        };
21332        proto.off = function(eventName, listener) {
21333          var listeners = this._events && this._events[eventName];
21334          if (!listeners || !listeners.length) {
21335            return;
21336          }
21337          var index = listeners.indexOf(listener);
21338          if (index != -1) {
21339            listeners.splice(index, 1);
21340          }
21341          return this;
21342        };
21343        proto.emitEvent = function(eventName, args) {
21344          var listeners = this._events && this._events[eventName];
21345          if (!listeners || !listeners.length) {
21346            return;
21347          }
21348          listeners = listeners.slice(0);
21349          args = args || [];
21350          var onceListeners = this._onceEvents && this._onceEvents[eventName];
21351          for (var i10 = 0; i10 < listeners.length; i10++) {
21352            var listener = listeners[i10];
21353            var isOnce = onceListeners && onceListeners[listener];
21354            if (isOnce) {
21355              this.off(eventName, listener);
21356              delete onceListeners[listener];
21357            }
21358            listener.apply(this, args);
21359          }
21360          return this;
21361        };
21362        proto.allOff = function() {
21363          delete this._events;
21364          delete this._onceEvents;
21365        };
21366        return EvEmitter;
21367      });
21368    }
21369  });
21370
21371  
vendor: 4,899 bytes, lines 21371-21501
21371// node_modules/get-size/get-size.js
21372  var require_get_size2 = __commonJS({
21373    "node_modules/get-size/get-size.js"(exports, module) {
21374      (function(window2, factory) {
21375        if (typeof define == "function" && define.amd) {
21376          define(factory);
21377        } else if (typeof module == "object" && module.exports) {
21378          module.exports = factory();
21379        } else {
21380          window2.getSize = factory();
21381        }
21382      })(window, function factory() {
21383        "use strict";
21384        function getStyleSize(value) {
21385          var num = parseFloat(value);
21386          var isValid = value.indexOf("%") == -1 && !isNaN(num);
21387          return isValid && num;
21388        }
21389        function noop() {
21390        }
21391        var logError = typeof console == "undefined" ? noop : function(message) {
21392          console.error(message);
21393        };
21394        var measurements = [
21395          "paddingLeft",
21396          "paddingRight",
21397          "paddingTop",
21398          "paddingBottom",
21399          "marginLeft",
21400          "marginRight",
21401          "marginTop",
21402          "marginBottom",
21403          "borderLeftWidth",
21404          "borderRightWidth",
21405          "borderTopWidth",
21406          "borderBottomWidth"
21407        ];
21408        var measurementsLength = measurements.length;
21409        function getZeroSize() {
21410          var size = {
21411            width: 0,
21412            height: 0,
21413            innerWidth: 0,
21414            innerHeight: 0,
21415            outerWidth: 0,
21416            outerHeight: 0
21417          };
21418          for (var i10 = 0; i10 < measurementsLength; i10++) {
21419            var measurement = measurements[i10];
21420            size[measurement] = 0;
21421          }
21422          return size;
21423        }
21424        function getStyle(elem) {
21425          var style = getComputedStyle(elem);
21426          if (!style) {
21427            logError("Style returned " + style + ". Are you running this code in a hidden iframe on Firefox? See https://bit.ly/getsizebug1");
21428          }
21429          return style;
21430        }
21431        var isSetup = false;
21432        var isBoxSizeOuter;
21433        function setup() {
21434          if (isSetup) {
21435            return;
21436          }
21437          isSetup = true;
21438          var div = document.createElement("div");
21439          div.style.width = "200px";
21440          div.style.padding = "1px 2px 3px 4px";
21441          div.style.borderStyle = "solid";
21442          div.style.borderWidth = "1px 2px 3px 4px";
21443          div.style.boxSizing = "border-box";
21444          var body = document.body || document.documentElement;
21445          body.appendChild(div);
21446          var style = getStyle(div);
21447          isBoxSizeOuter = Math.round(getStyleSize(style.width)) == 200;
21448          getSize.isBoxSizeOuter = isBoxSizeOuter;
21449          body.removeChild(div);
21450        }
21451        function getSize(elem) {
21452          setup();
21453          if (typeof elem == "string") {
21454            elem = document.querySelector(elem);
21455          }
21456          if (!elem || typeof elem != "object" || !elem.nodeType) {
21457            return;
21458          }
21459          var style = getStyle(elem);
21460          if (style.display == "none") {
21461            return getZeroSize();
21462          }
21463          var size = {};
21464          size.width = elem.offsetWidth;
21465          size.height = elem.offsetHeight;
21466          var isBorderBox = size.isBorderBox = style.boxSizing == "border-box";
21467          for (var i10 = 0; i10 < measurementsLength; i10++) {
21468            var measurement = measurements[i10];
21469            var value = style[measurement];
21470            var num = parseFloat(value);
21471            size[measurement] = !isNaN(num) ? num : 0;
21472          }
21473          var paddingWidth = size.paddingLeft + size.paddingRight;
21474          var paddingHeight = size.paddingTop + size.paddingBottom;
21475          var marginWidth = size.marginLeft + size.marginRight;
21476          var marginHeight = size.marginTop + size.marginBottom;
21477          var borderWidth = size.borderLeftWidth + size.borderRightWidth;
21478          var borderHeight = size.borderTopWidth + size.borderBottomWidth;
21479          var isBorderBoxSizeOuter = isBorderBox && isBoxSizeOuter;
21480          var styleWidth = getStyleSize(style.width);
21481          if (styleWidth !== false) {
21482            size.width = styleWidth + // add padding and border unless it's already including it
21483            (isBorderBoxSizeOuter ? 0 : paddingWidth + borderWidth);
21484          }
21485          var styleHeight = getStyleSize(style.height);
21486          if (styleHeight !== false) {
21487            size.height = styleHeight + // add padding and border unless it's already including it
21488            (isBorderBoxSizeOuter ? 0 : paddingHeight + borderHeight);
21489          }
21490          size.innerWidth = size.width - (paddingWidth + borderWidth);
21491          size.innerHeight = size.height - (paddingHeight + borderHeight);
21492          size.outerWidth = size.width + marginWidth;
21493          size.outerHeight = size.height + marginHeight;
21494          return size;
21495        }
21496        return getSize;
21497      });
21498    }
21499  });
21500
21501  
vendor: 1,294 bytes, lines 21501-21539
21501// node_modules/desandro-matches-selector/matches-selector.js
21502  var require_matches_selector = __commonJS({
21503    "node_modules/desandro-matches-selector/matches-selector.js"(exports, module) {
21504      (function(window2, factory) {
21505        "use strict";
21506        if (typeof define == "function" && define.amd) {
21507          define(factory);
21508        } else if (typeof module == "object" && module.exports) {
21509          module.exports = factory();
21510        } else {
21511          window2.matchesSelector = factory();
21512        }
21513      })(window, function factory() {
21514        "use strict";
21515        var matchesMethod = (function() {
21516          var ElemProto = window.Element.prototype;
21517          if (ElemProto.matches) {
21518            return "matches";
21519          }
21520          if (ElemProto.matchesSelector) {
21521            return "matchesSelector";
21522          }
21523          var prefixes = ["webkit", "moz", "ms", "o"];
21524          for (var i10 = 0; i10 < prefixes.length; i10++) {
21525            var prefix = prefixes[i10];
21526            var method = prefix + "MatchesSelector";
21527            if (ElemProto[method]) {
21528              return method;
21529            }
21530          }
21531        })();
21532        return function matchesSelector(elem, selector3) {
21533          return elem[matchesMethod](selector3);
21534        };
21535      });
21536    }
21537  });
21538
21539  
vendor: 5,455 bytes, lines 21539-21694
21539// node_modules/fizzy-ui-utils/utils.js
21540  var require_utils2 = __commonJS({
21541    "node_modules/fizzy-ui-utils/utils.js"(exports, module) {
21542      (function(window2, factory) {
21543        if (typeof define == "function" && define.amd) {
21544          define([
21545            "desandro-matches-selector/matches-selector"
21546          ], function(matchesSelector) {
21547            return factory(window2, matchesSelector);
21548          });
21549        } else if (typeof module == "object" && module.exports) {
21550          module.exports = factory(
21551            window2,
21552            require_matches_selector()
21553          );
21554        } else {
21555          window2.fizzyUIUtils = factory(
21556            window2,
21557            window2.matchesSelector
21558          );
21559        }
21560      })(window, function factory(window2, matchesSelector) {
21561        "use strict";
21562        var utils = {};
21563        utils.extend = function(a8, b3) {
21564          for (var prop in b3) {
21565            a8[prop] = b3[prop];
21566          }
21567          return a8;
21568        };
21569        utils.modulo = function(num, div) {
21570          return (num % div + div) % div;
21571        };
21572        var arraySlice = Array.prototype.slice;
21573        utils.makeArray = function(obj) {
21574          if (Array.isArray(obj)) {
21575            return obj;
21576          }
21577          if (obj === null || obj === void 0) {
21578            return [];
21579          }
21580          var isArrayLike = typeof obj == "object" && typeof obj.length == "number";
21581          if (isArrayLike) {
21582            return arraySlice.call(obj);
21583          }
21584          return [obj];
21585        };
21586        utils.removeFrom = function(ary, obj) {
21587          var index = ary.indexOf(obj);
21588          if (index != -1) {
21589            ary.splice(index, 1);
21590          }
21591        };
21592        utils.getParent = function(elem, selector3) {
21593          while (elem.parentNode && elem != document.body) {
21594            elem = elem.parentNode;
21595            if (matchesSelector(elem, selector3)) {
21596              return elem;
21597            }
21598          }
21599        };
21600        utils.getQueryElement = function(elem) {
21601          if (typeof elem == "string") {
21602            return document.querySelector(elem);
21603          }
21604          return elem;
21605        };
21606        utils.handleEvent = function(event) {
21607          var method = "on" + event.type;
21608          if (this[method]) {
21609            this[method](event);
21610          }
21611        };
21612        utils.filterFindElements = function(elems, selector3) {
21613          elems = utils.makeArray(elems);
21614          var ffElems = [];
21615          elems.forEach(function(elem) {
21616            if (!(elem instanceof HTMLElement)) {
21617              return;
21618            }
21619            if (!selector3) {
21620              ffElems.push(elem);
21621              return;
21622            }
21623            if (matchesSelector(elem, selector3)) {
21624              ffElems.push(elem);
21625            }
21626            var childElems = elem.querySelectorAll(selector3);
21627            for (var i10 = 0; i10 < childElems.length; i10++) {
21628              ffElems.push(childElems[i10]);
21629            }
21630          });
21631          return ffElems;
21632        };
21633        utils.debounceMethod = function(_class, methodName, threshold) {
21634          threshold = threshold || 100;
21635          var method = _class.prototype[methodName];
21636          var timeoutName = methodName + "Timeout";
21637          _class.prototype[methodName] = function() {
21638            var timeout = this[timeoutName];
21639            clearTimeout(timeout);
21640            var args = arguments;
21641            var _this = this;
21642            this[timeoutName] = setTimeout(function() {
21643              method.apply(_this, args);
21644              delete _this[timeoutName];
21645            }, threshold);
21646          };
21647        };
21648        utils.docReady = function(callback) {
21649          var readyState = document.readyState;
21650          if (readyState == "complete" || readyState == "interactive") {
21651            setTimeout(callback);
21652          } else {
21653            document.addEventListener("DOMContentLoaded", callback);
21654          }
21655        };
21656        utils.toDashed = function(str) {
21657          return str.replace(/(.)([A-Z])/g, function(match, $1, $22) {
21658            return $1 + "-" + $22;
21659          }).toLowerCase();
21660        };
21661        var console2 = window2.console;
21662        utils.htmlInit = function(WidgetClass, namespace) {
21663          utils.docReady(function() {
21664            var dashedNamespace = utils.toDashed(namespace);
21665            var dataAttr = "data-" + dashedNamespace;
21666            var dataAttrElems = document.querySelectorAll("[" + dataAttr + "]");
21667            var jsDashElems = document.querySelectorAll(".js-" + dashedNamespace);
21668            var elems = utils.makeArray(dataAttrElems).concat(utils.makeArray(jsDashElems));
21669            var dataOptionsAttr = dataAttr + "-options";
21670            var jQuery2 = window2.jQuery;
21671            elems.forEach(function(elem) {
21672              var attr = elem.getAttribute(dataAttr) || elem.getAttribute(dataOptionsAttr);
21673              var options;
21674              try {
21675                options = attr && JSON.parse(attr);
21676              } catch (error) {
21677                if (console2) {
21678                  console2.error("Error parsing " + dataAttr + " on " + elem.className + ": " + error);
21679                }
21680                return;
21681              }
21682              var instance = new WidgetClass(elem, options);
21683              if (jQuery2) {
21684                jQuery2.data(elem, namespace, instance);
21685              }
21686            });
21687          });
21688        };
21689        return utils;
21690      });
21691    }
21692  });
21693
21694  
vendor: 13,178 bytes, lines 21694-22055
21694// node_modules/outlayer/item.js
21695  var require_item = __commonJS({
21696    "node_modules/outlayer/item.js"(exports, module) {
21697      (function(window2, factory) {
21698        if (typeof define == "function" && define.amd) {
21699          define(
21700            [
21701              "ev-emitter/ev-emitter",
21702              "get-size/get-size"
21703            ],
21704            factory
21705          );
21706        } else if (typeof module == "object" && module.exports) {
21707          module.exports = factory(
21708            require_ev_emitter2(),
21709            require_get_size2()
21710          );
21711        } else {
21712          window2.Outlayer = {};
21713          window2.Outlayer.Item = factory(
21714            window2.EvEmitter,
21715            window2.getSize
21716          );
21717        }
21718      })(window, function factory(EvEmitter, getSize) {
21719        "use strict";
21720        function isEmptyObj(obj) {
21721          for (var prop in obj) {
21722            return false;
21723          }
21724          prop = null;
21725          return true;
21726        }
21727        var docElemStyle = document.documentElement.style;
21728        var transitionProperty = typeof docElemStyle.transition == "string" ? "transition" : "WebkitTransition";
21729        var transformProperty = typeof docElemStyle.transform == "string" ? "transform" : "WebkitTransform";
21730        var transitionEndEvent = {
21731          WebkitTransition: "webkitTransitionEnd",
21732          transition: "transitionend"
21733        }[transitionProperty];
21734        var vendorProperties = {
21735          transform: transformProperty,
21736          transition: transitionProperty,
21737          transitionDuration: transitionProperty + "Duration",
21738          transitionProperty: transitionProperty + "Property",
21739          transitionDelay: transitionProperty + "Delay"
21740        };
21741        function Item(element, layout) {
21742          if (!element) {
21743            return;
21744          }
21745          this.element = element;
21746          this.layout = layout;
21747          this.position = {
21748            x: 0,
21749            y: 0
21750          };
21751          this._create();
21752        }
21753        var proto = Item.prototype = Object.create(EvEmitter.prototype);
21754        proto.constructor = Item;
21755        proto._create = function() {
21756          this._transn = {
21757            ingProperties: {},
21758            clean: {},
21759            onEnd: {}
21760          };
21761          this.css({
21762            position: "absolute"
21763          });
21764        };
21765        proto.handleEvent = function(event) {
21766          var method = "on" + event.type;
21767          if (this[method]) {
21768            this[method](event);
21769          }
21770        };
21771        proto.getSize = function() {
21772          this.size = getSize(this.element);
21773        };
21774        proto.css = function(style) {
21775          var elemStyle = this.element.style;
21776          for (var prop in style) {
21777            var supportedProp = vendorProperties[prop] || prop;
21778            elemStyle[supportedProp] = style[prop];
21779          }
21780        };
21781        proto.getPosition = function() {
21782          var style = getComputedStyle(this.element);
21783          var isOriginLeft = this.layout._getOption("originLeft");
21784          var isOriginTop = this.layout._getOption("originTop");
21785          var xValue = style[isOriginLeft ? "left" : "right"];
21786          var yValue = style[isOriginTop ? "top" : "bottom"];
21787          var x2 = parseFloat(xValue);
21788          var y3 = parseFloat(yValue);
21789          var layoutSize = this.layout.size;
21790          if (xValue.indexOf("%") != -1) {
21791            x2 = x2 / 100 * layoutSize.width;
21792          }
21793          if (yValue.indexOf("%") != -1) {
21794            y3 = y3 / 100 * layoutSize.height;
21795          }
21796          x2 = isNaN(x2) ? 0 : x2;
21797          y3 = isNaN(y3) ? 0 : y3;
21798          x2 -= isOriginLeft ? layoutSize.paddingLeft : layoutSize.paddingRight;
21799          y3 -= isOriginTop ? layoutSize.paddingTop : layoutSize.paddingBottom;
21800          this.position.x = x2;
21801          this.position.y = y3;
21802        };
21803        proto.layoutPosition = function() {
21804          var layoutSize = this.layout.size;
21805          var style = {};
21806          var isOriginLeft = this.layout._getOption("originLeft");
21807          var isOriginTop = this.layout._getOption("originTop");
21808          var xPadding = isOriginLeft ? "paddingLeft" : "paddingRight";
21809          var xProperty = isOriginLeft ? "left" : "right";
21810          var xResetProperty = isOriginLeft ? "right" : "left";
21811          var x2 = this.position.x + layoutSize[xPadding];
21812          style[xProperty] = this.getXValue(x2);
21813          style[xResetProperty] = "";
21814          var yPadding = isOriginTop ? "paddingTop" : "paddingBottom";
21815          var yProperty = isOriginTop ? "top" : "bottom";
21816          var yResetProperty = isOriginTop ? "bottom" : "top";
21817          var y3 = this.position.y + layoutSize[yPadding];
21818          style[yProperty] = this.getYValue(y3);
21819          style[yResetProperty] = "";
21820          this.css(style);
21821          this.emitEvent("layout", [this]);
21822        };
21823        proto.getXValue = function(x2) {
21824          var isHorizontal = this.layout._getOption("horizontal");
21825          return this.layout.options.percentPosition && !isHorizontal ? x2 / this.layout.size.width * 100 + "%" : x2 + "px";
21826        };
21827        proto.getYValue = function(y3) {
21828          var isHorizontal = this.layout._getOption("horizontal");
21829          return this.layout.options.percentPosition && isHorizontal ? y3 / this.layout.size.height * 100 + "%" : y3 + "px";
21830        };
21831        proto._transitionTo = function(x2, y3) {
21832          this.getPosition();
21833          var curX = this.position.x;
21834          var curY = this.position.y;
21835          var didNotMove = x2 == this.position.x && y3 == this.position.y;
21836          this.setPosition(x2, y3);
21837          if (didNotMove && !this.isTransitioning) {
21838            this.layoutPosition();
21839            return;
21840          }
21841          var transX = x2 - curX;
21842          var transY = y3 - curY;
21843          var transitionStyle = {};
21844          transitionStyle.transform = this.getTranslate(transX, transY);
21845          this.transition({
21846            to: transitionStyle,
21847            onTransitionEnd: {
21848              transform: this.layoutPosition
21849            },
21850            isCleaning: true
21851          });
21852        };
21853        proto.getTranslate = function(x2, y3) {
21854          var isOriginLeft = this.layout._getOption("originLeft");
21855          var isOriginTop = this.layout._getOption("originTop");
21856          x2 = isOriginLeft ? x2 : -x2;
21857          y3 = isOriginTop ? y3 : -y3;
21858          return "translate3d(" + x2 + "px, " + y3 + "px, 0)";
21859        };
21860        proto.goTo = function(x2, y3) {
21861          this.setPosition(x2, y3);
21862          this.layoutPosition();
21863        };
21864        proto.moveTo = proto._transitionTo;
21865        proto.setPosition = function(x2, y3) {
21866          this.position.x = parseFloat(x2);
21867          this.position.y = parseFloat(y3);
21868        };
21869        proto._nonTransition = function(args) {
21870          this.css(args.to);
21871          if (args.isCleaning) {
21872            this._removeStyles(args.to);
21873          }
21874          for (var prop in args.onTransitionEnd) {
21875            args.onTransitionEnd[prop].call(this);
21876          }
21877        };
21878        proto.transition = function(args) {
21879          if (!parseFloat(this.layout.options.transitionDuration)) {
21880            this._nonTransition(args);
21881            return;
21882          }
21883          var _transition = this._transn;
21884          for (var prop in args.onTransitionEnd) {
21885            _transition.onEnd[prop] = args.onTransitionEnd[prop];
21886          }
21887          for (prop in args.to) {
21888            _transition.ingProperties[prop] = true;
21889            if (args.isCleaning) {
21890              _transition.clean[prop] = true;
21891            }
21892          }
21893          if (args.from) {
21894            this.css(args.from);
21895            var h4 = this.element.offsetHeight;
21896            h4 = null;
21897          }
21898          this.enableTransition(args.to);
21899          this.css(args.to);
21900          this.isTransitioning = true;
21901        };
21902        function toDashedAll(str) {
21903          return str.replace(/([A-Z])/g, function($1) {
21904            return "-" + $1.toLowerCase();
21905          });
21906        }
21907        var transitionProps = "opacity," + toDashedAll(transformProperty);
21908        proto.enableTransition = function() {
21909          if (this.isTransitioning) {
21910            return;
21911          }
21912          var duration = this.layout.options.transitionDuration;
21913          duration = typeof duration == "number" ? duration + "ms" : duration;
21914          this.css({
21915            transitionProperty: transitionProps,
21916            transitionDuration: duration,
21917            transitionDelay: this.staggerDelay || 0
21918          });
21919          this.element.addEventListener(transitionEndEvent, this, false);
21920        };
21921        proto.onwebkitTransitionEnd = function(event) {
21922          this.ontransitionend(event);
21923        };
21924        proto.onotransitionend = function(event) {
21925          this.ontransitionend(event);
21926        };
21927        var dashedVendorProperties = {
21928          "-webkit-transform": "transform"
21929        };
21930        proto.ontransitionend = function(event) {
21931          if (event.target !== this.element) {
21932            return;
21933          }
21934          var _transition = this._transn;
21935          var propertyName = dashedVendorProperties[event.propertyName] || event.propertyName;
21936          delete _transition.ingProperties[propertyName];
21937          if (isEmptyObj(_transition.ingProperties)) {
21938            this.disableTransition();
21939          }
21940          if (propertyName in _transition.clean) {
21941            this.element.style[event.propertyName] = "";
21942            delete _transition.clean[propertyName];
21943          }
21944          if (propertyName in _transition.onEnd) {
21945            var onTransitionEnd = _transition.onEnd[propertyName];
21946            onTransitionEnd.call(this);
21947            delete _transition.onEnd[propertyName];
21948          }
21949          this.emitEvent("transitionEnd", [this]);
21950        };
21951        proto.disableTransition = function() {
21952          this.removeTransitionStyles();
21953          this.element.removeEventListener(transitionEndEvent, this, false);
21954          this.isTransitioning = false;
21955        };
21956        proto._removeStyles = function(style) {
21957          var cleanStyle = {};
21958          for (var prop in style) {
21959            cleanStyle[prop] = "";
21960          }
21961          this.css(cleanStyle);
21962        };
21963        var cleanTransitionStyle = {
21964          transitionProperty: "",
21965          transitionDuration: "",
21966          transitionDelay: ""
21967        };
21968        proto.removeTransitionStyles = function() {
21969          this.css(cleanTransitionStyle);
21970        };
21971        proto.stagger = function(delay) {
21972          delay = isNaN(delay) ? 0 : delay;
21973          this.staggerDelay = delay + "ms";
21974        };
21975        proto.removeElem = function() {
21976          this.element.parentNode.removeChild(this.element);
21977          this.css({ display: "" });
21978          this.emitEvent("remove", [this]);
21979        };
21980        proto.remove = function() {
21981          if (!transitionProperty || !parseFloat(this.layout.options.transitionDuration)) {
21982            this.removeElem();
21983            return;
21984          }
21985          this.once("transitionEnd", function() {
21986            this.removeElem();
21987          });
21988          this.hide();
21989        };
21990        proto.reveal = function() {
21991          delete this.isHidden;
21992          this.css({ display: "" });
21993          var options = this.layout.options;
21994          var onTransitionEnd = {};
21995          var transitionEndProperty = this.getHideRevealTransitionEndProperty("visibleStyle");
21996          onTransitionEnd[transitionEndProperty] = this.onRevealTransitionEnd;
21997          this.transition({
21998            from: options.hiddenStyle,
21999            to: options.visibleStyle,
22000            isCleaning: true,
22001            onTransitionEnd
22002          });
22003        };
22004        proto.onRevealTransitionEnd = function() {
22005          if (!this.isHidden) {
22006            this.emitEvent("reveal");
22007          }
22008        };
22009        proto.getHideRevealTransitionEndProperty = function(styleProperty) {
22010          var optionStyle = this.layout.options[styleProperty];
22011          if (optionStyle.opacity) {
22012            return "opacity";
22013          }
22014          for (var prop in optionStyle) {
22015            return prop;
22016          }
22017        };
22018        proto.hide = function() {
22019          this.isHidden = true;
22020          this.css({ display: "" });
22021          var options = this.layout.options;
22022          var onTransitionEnd = {};
22023          var transitionEndProperty = this.getHideRevealTransitionEndProperty("hiddenStyle");
22024          onTransitionEnd[transitionEndProperty] = this.onHideTransitionEnd;
22025          this.transition({
22026            from: options.visibleStyle,
22027            to: options.hiddenStyle,
22028            // keep hidden stuff hidden
22029            isCleaning: true,
22030            onTransitionEnd
22031          });
22032        };
22033        proto.onHideTransitionEnd = function() {
22034          if (this.isHidden) {
22035            this.css({ display: "none" });
22036            this.emitEvent("hide");
22037          }
22038        };
22039        proto.destroy = function() {
22040          this.css({
22041            position: "",
22042            left: "",
22043            right: "",
22044            top: "",
22045            bottom: "",
22046            transition: "",
22047            transform: ""
22048          });
22049        };
22050        return Item;
22051      });
22052    }
22053  });
22054
22055  
vendor: 18,138 bytes, lines 22055-22585
22055// node_modules/outlayer/outlayer.js
22056  var require_outlayer = __commonJS({
22057    "node_modules/outlayer/outlayer.js"(exports, module) {
22058      (function(window2, factory) {
22059        "use strict";
22060        if (typeof define == "function" && define.amd) {
22061          define(
22062            [
22063              "ev-emitter/ev-emitter",
22064              "get-size/get-size",
22065              "fizzy-ui-utils/utils",
22066              "./item"
22067            ],
22068            function(EvEmitter, getSize, utils, Item) {
22069              return factory(window2, EvEmitter, getSize, utils, Item);
22070            }
22071          );
22072        } else if (typeof module == "object" && module.exports) {
22073          module.exports = factory(
22074            window2,
22075            require_ev_emitter2(),
22076            require_get_size2(),
22077            require_utils2(),
22078            require_item()
22079          );
22080        } else {
22081          window2.Outlayer = factory(
22082            window2,
22083            window2.EvEmitter,
22084            window2.getSize,
22085            window2.fizzyUIUtils,
22086            window2.Outlayer.Item
22087          );
22088        }
22089      })(window, function factory(window2, EvEmitter, getSize, utils, Item) {
22090        "use strict";
22091        var console2 = window2.console;
22092        var jQuery2 = window2.jQuery;
22093        var noop = function() {
22094        };
22095        var GUID = 0;
22096        var instances = {};
22097        function Outlayer(element, options) {
22098          var queryElement = utils.getQueryElement(element);
22099          if (!queryElement) {
22100            if (console2) {
22101              console2.error("Bad element for " + this.constructor.namespace + ": " + (queryElement || element));
22102            }
22103            return;
22104          }
22105          this.element = queryElement;
22106          if (jQuery2) {
22107            this.$element = jQuery2(this.element);
22108          }
22109          this.options = utils.extend({}, this.constructor.defaults);
22110          this.option(options);
22111          var id = ++GUID;
22112          this.element.outlayerGUID = id;
22113          instances[id] = this;
22114          this._create();
22115          var isInitLayout = this._getOption("initLayout");
22116          if (isInitLayout) {
22117            this.layout();
22118          }
22119        }
22120        Outlayer.namespace = "outlayer";
22121        Outlayer.Item = Item;
22122        Outlayer.defaults = {
22123          containerStyle: {
22124            position: "relative"
22125          },
22126          initLayout: true,
22127          originLeft: true,
22128          originTop: true,
22129          resize: true,
22130          resizeContainer: true,
22131          // item options
22132          transitionDuration: "0.4s",
22133          hiddenStyle: {
22134            opacity: 0,
22135            transform: "scale(0.001)"
22136          },
22137          visibleStyle: {
22138            opacity: 1,
22139            transform: "scale(1)"
22140          }
22141        };
22142        var proto = Outlayer.prototype;
22143        utils.extend(proto, EvEmitter.prototype);
22144        proto.option = function(opts) {
22145          utils.extend(this.options, opts);
22146        };
22147        proto._getOption = function(option) {
22148          var oldOption = this.constructor.compatOptions[option];
22149          return oldOption && this.options[oldOption] !== void 0 ? this.options[oldOption] : this.options[option];
22150        };
22151        Outlayer.compatOptions = {
22152          // currentName: oldName
22153          initLayout: "isInitLayout",
22154          horizontal: "isHorizontal",
22155          layoutInstant: "isLayoutInstant",
22156          originLeft: "isOriginLeft",
22157          originTop: "isOriginTop",
22158          resize: "isResizeBound",
22159          resizeContainer: "isResizingContainer"
22160        };
22161        proto._create = function() {
22162          this.reloadItems();
22163          this.stamps = [];
22164          this.stamp(this.options.stamp);
22165          utils.extend(this.element.style, this.options.containerStyle);
22166          var canBindResize = this._getOption("resize");
22167          if (canBindResize) {
22168            this.bindResize();
22169          }
22170        };
22171        proto.reloadItems = function() {
22172          this.items = this._itemize(this.element.children);
22173        };
22174        proto._itemize = function(elems) {
22175          var itemElems = this._filterFindItemElements(elems);
22176          var Item2 = this.constructor.Item;
22177          var items = [];
22178          for (var i10 = 0; i10 < itemElems.length; i10++) {
22179            var elem = itemElems[i10];
22180            var item = new Item2(elem, this);
22181            items.push(item);
22182          }
22183          return items;
22184        };
22185        proto._filterFindItemElements = function(elems) {
22186          return utils.filterFindElements(elems, this.options.itemSelector);
22187        };
22188        proto.getItemElements = function() {
22189          return this.items.map(function(item) {
22190            return item.element;
22191          });
22192        };
22193        proto.layout = function() {
22194          this._resetLayout();
22195          this._manageStamps();
22196          var layoutInstant = this._getOption("layoutInstant");
22197          var isInstant = layoutInstant !== void 0 ? layoutInstant : !this._isLayoutInited;
22198          this.layoutItems(this.items, isInstant);
22199          this._isLayoutInited = true;
22200        };
22201        proto._init = proto.layout;
22202        proto._resetLayout = function() {
22203          this.getSize();
22204        };
22205        proto.getSize = function() {
22206          this.size = getSize(this.element);
22207        };
22208        proto._getMeasurement = function(measurement, size) {
22209          var option = this.options[measurement];
22210          var elem;
22211          if (!option) {
22212            this[measurement] = 0;
22213          } else {
22214            if (typeof option == "string") {
22215              elem = this.element.querySelector(option);
22216            } else if (option instanceof HTMLElement) {
22217              elem = option;
22218            }
22219            this[measurement] = elem ? getSize(elem)[size] : option;
22220          }
22221        };
22222        proto.layoutItems = function(items, isInstant) {
22223          items = this._getItemsForLayout(items);
22224          this._layoutItems(items, isInstant);
22225          this._postLayout();
22226        };
22227        proto._getItemsForLayout = function(items) {
22228          return items.filter(function(item) {
22229            return !item.isIgnored;
22230          });
22231        };
22232        proto._layoutItems = function(items, isInstant) {
22233          this._emitCompleteOnItems("layout", items);
22234          if (!items || !items.length) {
22235            return;
22236          }
22237          var queue = [];
22238          items.forEach(function(item) {
22239            var position = this._getItemLayoutPosition(item);
22240            position.item = item;
22241            position.isInstant = isInstant || item.isLayoutInstant;
22242            queue.push(position);
22243          }, this);
22244          this._processLayoutQueue(queue);
22245        };
22246        proto._getItemLayoutPosition = function() {
22247          return {
22248            x: 0,
22249            y: 0
22250          };
22251        };
22252        proto._processLayoutQueue = function(queue) {
22253          this.updateStagger();
22254          queue.forEach(function(obj, i10) {
22255            this._positionItem(obj.item, obj.x, obj.y, obj.isInstant, i10);
22256          }, this);
22257        };
22258        proto.updateStagger = function() {
22259          var stagger = this.options.stagger;
22260          if (stagger === null || stagger === void 0) {
22261            this.stagger = 0;
22262            return;
22263          }
22264          this.stagger = getMilliseconds(stagger);
22265          return this.stagger;
22266        };
22267        proto._positionItem = function(item, x2, y3, isInstant, i10) {
22268          if (isInstant) {
22269            item.goTo(x2, y3);
22270          } else {
22271            item.stagger(i10 * this.stagger);
22272            item.moveTo(x2, y3);
22273          }
22274        };
22275        proto._postLayout = function() {
22276          this.resizeContainer();
22277        };
22278        proto.resizeContainer = function() {
22279          var isResizingContainer = this._getOption("resizeContainer");
22280          if (!isResizingContainer) {
22281            return;
22282          }
22283          var size = this._getContainerSize();
22284          if (size) {
22285            this._setContainerMeasure(size.width, true);
22286            this._setContainerMeasure(size.height, false);
22287          }
22288        };
22289        proto._getContainerSize = noop;
22290        proto._setContainerMeasure = function(measure, isWidth) {
22291          if (measure === void 0) {
22292            return;
22293          }
22294          var elemSize = this.size;
22295          if (elemSize.isBorderBox) {
22296            measure += isWidth ? elemSize.paddingLeft + elemSize.paddingRight + elemSize.borderLeftWidth + elemSize.borderRightWidth : elemSize.paddingBottom + elemSize.paddingTop + elemSize.borderTopWidth + elemSize.borderBottomWidth;
22297          }
22298          measure = Math.max(measure, 0);
22299          this.element.style[isWidth ? "width" : "height"] = measure + "px";
22300        };
22301        proto._emitCompleteOnItems = function(eventName, items) {
22302          var _this = this;
22303          function onComplete() {
22304            _this.dispatchEvent(eventName + "Complete", null, [items]);
22305          }
22306          var count = items.length;
22307          if (!items || !count) {
22308            onComplete();
22309            return;
22310          }
22311          var doneCount = 0;
22312          function tick() {
22313            doneCount++;
22314            if (doneCount == count) {
22315              onComplete();
22316            }
22317          }
22318          items.forEach(function(item) {
22319            item.once(eventName, tick);
22320          });
22321        };
22322        proto.dispatchEvent = function(type, event, args) {
22323          var emitArgs = event ? [event].concat(args) : args;
22324          this.emitEvent(type, emitArgs);
22325          if (jQuery2) {
22326            this.$element = this.$element || jQuery2(this.element);
22327            if (event) {
22328              var $event = jQuery2.Event(event);
22329              $event.type = type;
22330              this.$element.trigger($event, args);
22331            } else {
22332              this.$element.trigger(type, args);
22333            }
22334          }
22335        };
22336        proto.ignore = function(elem) {
22337          var item = this.getItem(elem);
22338          if (item) {
22339            item.isIgnored = true;
22340          }
22341        };
22342        proto.unignore = function(elem) {
22343          var item = this.getItem(elem);
22344          if (item) {
22345            delete item.isIgnored;
22346          }
22347        };
22348        proto.stamp = function(elems) {
22349          elems = this._find(elems);
22350          if (!elems) {
22351            return;
22352          }
22353          this.stamps = this.stamps.concat(elems);
22354          elems.forEach(this.ignore, this);
22355        };
22356        proto.unstamp = function(elems) {
22357          elems = this._find(elems);
22358          if (!elems) {
22359            return;
22360          }
22361          elems.forEach(function(elem) {
22362            utils.removeFrom(this.stamps, elem);
22363            this.unignore(elem);
22364          }, this);
22365        };
22366        proto._find = function(elems) {
22367          if (!elems) {
22368            return;
22369          }
22370          if (typeof elems == "string") {
22371            elems = this.element.querySelectorAll(elems);
22372          }
22373          elems = utils.makeArray(elems);
22374          return elems;
22375        };
22376        proto._manageStamps = function() {
22377          if (!this.stamps || !this.stamps.length) {
22378            return;
22379          }
22380          this._getBoundingRect();
22381          this.stamps.forEach(this._manageStamp, this);
22382        };
22383        proto._getBoundingRect = function() {
22384          var boundingRect = this.element.getBoundingClientRect();
22385          var size = this.size;
22386          this._boundingRect = {
22387            left: boundingRect.left + size.paddingLeft + size.borderLeftWidth,
22388            top: boundingRect.top + size.paddingTop + size.borderTopWidth,
22389            right: boundingRect.right - (size.paddingRight + size.borderRightWidth),
22390            bottom: boundingRect.bottom - (size.paddingBottom + size.borderBottomWidth)
22391          };
22392        };
22393        proto._manageStamp = noop;
22394        proto._getElementOffset = function(elem) {
22395          var boundingRect = elem.getBoundingClientRect();
22396          var thisRect = this._boundingRect;
22397          var size = getSize(elem);
22398          var offset = {
22399            left: boundingRect.left - thisRect.left - size.marginLeft,
22400            top: boundingRect.top - thisRect.top - size.marginTop,
22401            right: thisRect.right - boundingRect.right - size.marginRight,
22402            bottom: thisRect.bottom - boundingRect.bottom - size.marginBottom
22403          };
22404          return offset;
22405        };
22406        proto.handleEvent = utils.handleEvent;
22407        proto.bindResize = function() {
22408          window2.addEventListener("resize", this);
22409          this.isResizeBound = true;
22410        };
22411        proto.unbindResize = function() {
22412          window2.removeEventListener("resize", this);
22413          this.isResizeBound = false;
22414        };
22415        proto.onresize = function() {
22416          this.resize();
22417        };
22418        utils.debounceMethod(Outlayer, "onresize", 100);
22419        proto.resize = function() {
22420          if (!this.isResizeBound || !this.needsResizeLayout()) {
22421            return;
22422          }
22423          this.layout();
22424        };
22425        proto.needsResizeLayout = function() {
22426          var size = getSize(this.element);
22427          var hasSizes = this.size && size;
22428          return hasSizes && size.innerWidth !== this.size.innerWidth;
22429        };
22430        proto.addItems = function(elems) {
22431          var items = this._itemize(elems);
22432          if (items.length) {
22433            this.items = this.items.concat(items);
22434          }
22435          return items;
22436        };
22437        proto.appended = function(elems) {
22438          var items = this.addItems(elems);
22439          if (!items.length) {
22440            return;
22441          }
22442          this.layoutItems(items, true);
22443          this.reveal(items);
22444        };
22445        proto.prepended = function(elems) {
22446          var items = this._itemize(elems);
22447          if (!items.length) {
22448            return;
22449          }
22450          var previousItems = this.items.slice(0);
22451          this.items = items.concat(previousItems);
22452          this._resetLayout();
22453          this._manageStamps();
22454          this.layoutItems(items, true);
22455          this.reveal(items);
22456          this.layoutItems(previousItems);
22457        };
22458        proto.reveal = function(items) {
22459          this._emitCompleteOnItems("reveal", items);
22460          if (!items || !items.length) {
22461            return;
22462          }
22463          var stagger = this.updateStagger();
22464          items.forEach(function(item, i10) {
22465            item.stagger(i10 * stagger);
22466            item.reveal();
22467          });
22468        };
22469        proto.hide = function(items) {
22470          this._emitCompleteOnItems("hide", items);
22471          if (!items || !items.length) {
22472            return;
22473          }
22474          var stagger = this.updateStagger();
22475          items.forEach(function(item, i10) {
22476            item.stagger(i10 * stagger);
22477            item.hide();
22478          });
22479        };
22480        proto.revealItemElements = function(elems) {
22481          var items = this.getItems(elems);
22482          this.reveal(items);
22483        };
22484        proto.hideItemElements = function(elems) {
22485          var items = this.getItems(elems);
22486          this.hide(items);
22487        };
22488        proto.getItem = function(elem) {
22489          for (var i10 = 0; i10 < this.items.length; i10++) {
22490            var item = this.items[i10];
22491            if (item.element == elem) {
22492              return item;
22493            }
22494          }
22495        };
22496        proto.getItems = function(elems) {
22497          elems = utils.makeArray(elems);
22498          var items = [];
22499          elems.forEach(function(elem) {
22500            var item = this.getItem(elem);
22501            if (item) {
22502              items.push(item);
22503            }
22504          }, this);
22505          return items;
22506        };
22507        proto.remove = function(elems) {
22508          var removeItems = this.getItems(elems);
22509          this._emitCompleteOnItems("remove", removeItems);
22510          if (!removeItems || !removeItems.length) {
22511            return;
22512          }
22513          removeItems.forEach(function(item) {
22514            item.remove();
22515            utils.removeFrom(this.items, item);
22516          }, this);
22517        };
22518        proto.destroy = function() {
22519          var style = this.element.style;
22520          style.height = "";
22521          style.position = "";
22522          style.width = "";
22523          this.items.forEach(function(item) {
22524            item.destroy();
22525          });
22526          this.unbindResize();
22527          var id = this.element.outlayerGUID;
22528          delete instances[id];
22529          delete this.element.outlayerGUID;
22530          if (jQuery2) {
22531            jQuery2.removeData(this.element, this.constructor.namespace);
22532          }
22533        };
22534        Outlayer.data = function(elem) {
22535          elem = utils.getQueryElement(elem);
22536          var id = elem && elem.outlayerGUID;
22537          return id && instances[id];
22538        };
22539        Outlayer.create = function(namespace, options) {
22540          var Layout = subclass(Outlayer);
22541          Layout.defaults = utils.extend({}, Outlayer.defaults);
22542          utils.extend(Layout.defaults, options);
22543          Layout.compatOptions = utils.extend({}, Outlayer.compatOptions);
22544          Layout.namespace = namespace;
22545          Layout.data = Outlayer.data;
22546          Layout.Item = subclass(Item);
22547          utils.htmlInit(Layout, namespace);
22548          if (jQuery2 && jQuery2.bridget) {
22549            jQuery2.bridget(namespace, Layout);
22550          }
22551          return Layout;
22552        };
22553        function subclass(Parent) {
22554          function SubClass() {
22555            Parent.apply(this, arguments);
22556          }
22557          SubClass.prototype = Object.create(Parent.prototype);
22558          SubClass.prototype.constructor = SubClass;
22559          return SubClass;
22560        }
22561        var msUnits = {
22562          ms: 1,
22563          s: 1e3
22564        };
22565        function getMilliseconds(time) {
22566          if (typeof time == "number") {
22567            return time;
22568          }
22569          var matches = time.match(/(^\d*\.?\d*)(\w*)/);
22570          var num = matches && matches[1];
22571          var unit = matches && matches[2];
22572          if (!num.length) {
22573            return 0;
22574          }
22575          num = parseFloat(num);
22576          var mult = msUnits[unit] || 1;
22577          return num * mult;
22578        }
22579        Outlayer.Item = Item;
22580        return Outlayer;
22581      });
22582    }
22583  });
22584
22585  
vendor: 1,826 bytes, lines 22585-22644
22585// node_modules/isotope-layout/js/item.js
22586  var require_item2 = __commonJS({
22587    "node_modules/isotope-layout/js/item.js"(exports, module) {
22588      (function(window2, factory) {
22589        if (typeof define == "function" && define.amd) {
22590          define(
22591            [
22592              "outlayer/outlayer"
22593            ],
22594            factory
22595          );
22596        } else if (typeof module == "object" && module.exports) {
22597          module.exports = factory(
22598            require_outlayer()
22599          );
22600        } else {
22601          window2.Isotope = window2.Isotope || {};
22602          window2.Isotope.Item = factory(
22603            window2.Outlayer
22604          );
22605        }
22606      })(window, function factory(Outlayer) {
22607        "use strict";
22608        function Item() {
22609          Outlayer.Item.apply(this, arguments);
22610        }
22611        var proto = Item.prototype = Object.create(Outlayer.Item.prototype);
22612        var _create = proto._create;
22613        proto._create = function() {
22614          this.id = this.layout.itemGUID++;
22615          _create.call(this);
22616          this.sortData = {};
22617        };
22618        proto.updateSortData = function() {
22619          if (this.isIgnored) {
22620            return;
22621          }
22622          this.sortData.id = this.id;
22623          this.sortData["original-order"] = this.id;
22624          this.sortData.random = Math.random();
22625          var getSortData = this.layout.options.getSortData;
22626          var sorters = this.layout._sorters;
22627          for (var key in getSortData) {
22628            var sorter = sorters[key];
22629            this.sortData[key] = sorter(this.element, this);
22630          }
22631        };
22632        var _destroy = proto.destroy;
22633        proto.destroy = function() {
22634          _destroy.apply(this, arguments);
22635          this.css({
22636            display: ""
22637          });
22638        };
22639        return Item;
22640      });
22641    }
22642  });
22643
22644  
vendor: 3,663 bytes, lines 22644-22749
22644// node_modules/isotope-layout/js/layout-mode.js
22645  var require_layout_mode = __commonJS({
22646    "node_modules/isotope-layout/js/layout-mode.js"(exports, module) {
22647      (function(window2, factory) {
22648        if (typeof define == "function" && define.amd) {
22649          define(
22650            [
22651              "get-size/get-size",
22652              "outlayer/outlayer"
22653            ],
22654            factory
22655          );
22656        } else if (typeof module == "object" && module.exports) {
22657          module.exports = factory(
22658            require_get_size2(),
22659            require_outlayer()
22660          );
22661        } else {
22662          window2.Isotope = window2.Isotope || {};
22663          window2.Isotope.LayoutMode = factory(
22664            window2.getSize,
22665            window2.Outlayer
22666          );
22667        }
22668      })(window, function factory(getSize, Outlayer) {
22669        "use strict";
22670        function LayoutMode(isotope2) {
22671          this.isotope = isotope2;
22672          if (isotope2) {
22673            this.options = isotope2.options[this.namespace];
22674            this.element = isotope2.element;
22675            this.items = isotope2.filteredItems;
22676            this.size = isotope2.size;
22677          }
22678        }
22679        var proto = LayoutMode.prototype;
22680        var facadeMethods = [
22681          "_resetLayout",
22682          "_getItemLayoutPosition",
22683          "_manageStamp",
22684          "_getContainerSize",
22685          "_getElementOffset",
22686          "needsResizeLayout",
22687          "_getOption"
22688        ];
22689        facadeMethods.forEach(function(methodName) {
22690          proto[methodName] = function() {
22691            return Outlayer.prototype[methodName].apply(this.isotope, arguments);
22692          };
22693        });
22694        proto.needsVerticalResizeLayout = function() {
22695          var size = getSize(this.isotope.element);
22696          var hasSizes = this.isotope.size && size;
22697          return hasSizes && size.innerHeight != this.isotope.size.innerHeight;
22698        };
22699        proto._getMeasurement = function() {
22700          this.isotope._getMeasurement.apply(this, arguments);
22701        };
22702        proto.getColumnWidth = function() {
22703          this.getSegmentSize("column", "Width");
22704        };
22705        proto.getRowHeight = function() {
22706          this.getSegmentSize("row", "Height");
22707        };
22708        proto.getSegmentSize = function(segment, size) {
22709          var segmentName = segment + size;
22710          var outerSize = "outer" + size;
22711          this._getMeasurement(segmentName, outerSize);
22712          if (this[segmentName]) {
22713            return;
22714          }
22715          var firstItemSize = this.getFirstItemSize();
22716          this[segmentName] = firstItemSize && firstItemSize[outerSize] || // or size of container
22717          this.isotope.size["inner" + size];
22718        };
22719        proto.getFirstItemSize = function() {
22720          var firstItem = this.isotope.filteredItems[0];
22721          return firstItem && firstItem.element && getSize(firstItem.element);
22722        };
22723        proto.layout = function() {
22724          this.isotope.layout.apply(this.isotope, arguments);
22725        };
22726        proto.getSize = function() {
22727          this.isotope.getSize();
22728          this.size = this.isotope.size;
22729        };
22730        LayoutMode.modes = {};
22731        LayoutMode.create = function(namespace, options) {
22732          function Mode() {
22733            LayoutMode.apply(this, arguments);
22734          }
22735          Mode.prototype = Object.create(proto);
22736          Mode.prototype.constructor = Mode;
22737          if (options) {
22738            Mode.options = options;
22739          }
22740          Mode.prototype.namespace = namespace;
22741          LayoutMode.modes[namespace] = Mode;
22742          return Mode;
22743        };
22744        return LayoutMode;
22745      });
22746    }
22747  });
22748
22749  
vendor: 6,578 bytes, lines 22749-22915
22749// node_modules/masonry-layout/masonry.js
22750  var require_masonry = __commonJS({
22751    "node_modules/masonry-layout/masonry.js"(exports, module) {
22752      (function(window2, factory) {
22753        if (typeof define == "function" && define.amd) {
22754          define(
22755            [
22756              "outlayer/outlayer",
22757              "get-size/get-size"
22758            ],
22759            factory
22760          );
22761        } else if (typeof module == "object" && module.exports) {
22762          module.exports = factory(
22763            require_outlayer(),
22764            require_get_size2()
22765          );
22766        } else {
22767          window2.Masonry = factory(
22768            window2.Outlayer,
22769            window2.getSize
22770          );
22771        }
22772      })(window, function factory(Outlayer, getSize) {
22773        "use strict";
22774        var Masonry = Outlayer.create("masonry");
22775        Masonry.compatOptions.fitWidth = "isFitWidth";
22776        var proto = Masonry.prototype;
22777        proto._resetLayout = function() {
22778          this.getSize();
22779          this._getMeasurement("columnWidth", "outerWidth");
22780          this._getMeasurement("gutter", "outerWidth");
22781          this.measureColumns();
22782          this.colYs = [];
22783          for (var i10 = 0; i10 < this.cols; i10++) {
22784            this.colYs.push(0);
22785          }
22786          this.maxY = 0;
22787          this.horizontalColIndex = 0;
22788        };
22789        proto.measureColumns = function() {
22790          this.getContainerWidth();
22791          if (!this.columnWidth) {
22792            var firstItem = this.items[0];
22793            var firstItemElem = firstItem && firstItem.element;
22794            this.columnWidth = firstItemElem && getSize(firstItemElem).outerWidth || // if first elem has no width, default to size of container
22795            this.containerWidth;
22796          }
22797          var columnWidth = this.columnWidth += this.gutter;
22798          var containerWidth = this.containerWidth + this.gutter;
22799          var cols = containerWidth / columnWidth;
22800          var excess = columnWidth - containerWidth % columnWidth;
22801          var mathMethod = excess && excess < 1 ? "round" : "floor";
22802          cols = Math[mathMethod](cols);
22803          this.cols = Math.max(cols, 1);
22804        };
22805        proto.getContainerWidth = function() {
22806          var isFitWidth = this._getOption("fitWidth");
22807          var container = isFitWidth ? this.element.parentNode : this.element;
22808          var size = getSize(container);
22809          this.containerWidth = size && size.innerWidth;
22810        };
22811        proto._getItemLayoutPosition = function(item) {
22812          item.getSize();
22813          var remainder = item.size.outerWidth % this.columnWidth;
22814          var mathMethod = remainder && remainder < 1 ? "round" : "ceil";
22815          var colSpan = Math[mathMethod](item.size.outerWidth / this.columnWidth);
22816          colSpan = Math.min(colSpan, this.cols);
22817          var colPosMethod = this.options.horizontalOrder ? "_getHorizontalColPosition" : "_getTopColPosition";
22818          var colPosition = this[colPosMethod](colSpan, item);
22819          var position = {
22820            x: this.columnWidth * colPosition.col,
22821            y: colPosition.y
22822          };
22823          var setHeight = colPosition.y + item.size.outerHeight;
22824          var setMax = colSpan + colPosition.col;
22825          for (var i10 = colPosition.col; i10 < setMax; i10++) {
22826            this.colYs[i10] = setHeight;
22827          }
22828          return position;
22829        };
22830        proto._getTopColPosition = function(colSpan) {
22831          var colGroup = this._getTopColGroup(colSpan);
22832          var minimumY = Math.min.apply(Math, colGroup);
22833          return {
22834            col: colGroup.indexOf(minimumY),
22835            y: minimumY
22836          };
22837        };
22838        proto._getTopColGroup = function(colSpan) {
22839          if (colSpan < 2) {
22840            return this.colYs;
22841          }
22842          var colGroup = [];
22843          var groupCount = this.cols + 1 - colSpan;
22844          for (var i10 = 0; i10 < groupCount; i10++) {
22845            colGroup[i10] = this._getColGroupY(i10, colSpan);
22846          }
22847          return colGroup;
22848        };
22849        proto._getColGroupY = function(col, colSpan) {
22850          if (colSpan < 2) {
22851            return this.colYs[col];
22852          }
22853          var groupColYs = this.colYs.slice(col, col + colSpan);
22854          return Math.max.apply(Math, groupColYs);
22855        };
22856        proto._getHorizontalColPosition = function(colSpan, item) {
22857          var col = this.horizontalColIndex % this.cols;
22858          var isOver = colSpan > 1 && col + colSpan > this.cols;
22859          col = isOver ? 0 : col;
22860          var hasSize = item.size.outerWidth && item.size.outerHeight;
22861          this.horizontalColIndex = hasSize ? col + colSpan : this.horizontalColIndex;
22862          return {
22863            col,
22864            y: this._getColGroupY(col, colSpan)
22865          };
22866        };
22867        proto._manageStamp = function(stamp) {
22868          var stampSize = getSize(stamp);
22869          var offset = this._getElementOffset(stamp);
22870          var isOriginLeft = this._getOption("originLeft");
22871          var firstX = isOriginLeft ? offset.left : offset.right;
22872          var lastX = firstX + stampSize.outerWidth;
22873          var firstCol = Math.floor(firstX / this.columnWidth);
22874          firstCol = Math.max(0, firstCol);
22875          var lastCol = Math.floor(lastX / this.columnWidth);
22876          lastCol -= lastX % this.columnWidth ? 0 : 1;
22877          lastCol = Math.min(this.cols - 1, lastCol);
22878          var isOriginTop = this._getOption("originTop");
22879          var stampMaxY = (isOriginTop ? offset.top : offset.bottom) + stampSize.outerHeight;
22880          for (var i10 = firstCol; i10 <= lastCol; i10++) {
22881            this.colYs[i10] = Math.max(stampMaxY, this.colYs[i10]);
22882          }
22883        };
22884        proto._getContainerSize = function() {
22885          this.maxY = Math.max.apply(Math, this.colYs);
22886          var size = {
22887            height: this.maxY
22888          };
22889          if (this._getOption("fitWidth")) {
22890            size.width = this._getContainerFitWidth();
22891          }
22892          return size;
22893        };
22894        proto._getContainerFitWidth = function() {
22895          var unusedCols = 0;
22896          var i10 = this.cols;
22897          while (--i10) {
22898            if (this.colYs[i10] !== 0) {
22899              break;
22900            }
22901            unusedCols++;
22902          }
22903          return (this.cols - unusedCols) * this.columnWidth - this.gutter;
22904        };
22905        proto.needsResizeLayout = function() {
22906          var previousWidth = this.containerWidth;
22907          this.getContainerWidth();
22908          return previousWidth != this.containerWidth;
22909        };
22910        return Masonry;
22911      });
22912    }
22913  });
22914
22915  
vendor: 1,768 bytes, lines 22915-22969
22915// node_modules/isotope-layout/js/layout-modes/masonry.js
22916  var require_masonry2 = __commonJS({
22917    "node_modules/isotope-layout/js/layout-modes/masonry.js"(exports, module) {
22918      (function(window2, factory) {
22919        if (typeof define == "function" && define.amd) {
22920          define(
22921            [
22922              "../layout-mode",
22923              "masonry-layout/masonry"
22924            ],
22925            factory
22926          );
22927        } else if (typeof module == "object" && module.exports) {
22928          module.exports = factory(
22929            require_layout_mode(),
22930            require_masonry()
22931          );
22932        } else {
22933          factory(
22934            window2.Isotope.LayoutMode,
22935            window2.Masonry
22936          );
22937        }
22938      })(window, function factory(LayoutMode, Masonry) {
22939        "use strict";
22940        var MasonryMode = LayoutMode.create("masonry");
22941        var proto = MasonryMode.prototype;
22942        var keepModeMethods = {
22943          _getElementOffset: true,
22944          layout: true,
22945          _getMeasurement: true
22946        };
22947        for (var method in Masonry.prototype) {
22948          if (!keepModeMethods[method]) {
22949            proto[method] = Masonry.prototype[method];
22950          }
22951        }
22952        var measureColumns = proto.measureColumns;
22953        proto.measureColumns = function() {
22954          this.items = this.isotope.filteredItems;
22955          measureColumns.call(this);
22956        };
22957        var _getOption = proto._getOption;
22958        proto._getOption = function(option) {
22959          if (option == "fitWidth") {
22960            return this.options.isFitWidth !== void 0 ? this.options.isFitWidth : this.options.fitWidth;
22961          }
22962          return _getOption.apply(this.isotope, arguments);
22963        };
22964        return MasonryMode;
22965      });
22966    }
22967  });
22968
22969  
vendor: 1,683 bytes, lines 22969-23023
22969// node_modules/isotope-layout/js/layout-modes/fit-rows.js
22970  var require_fit_rows = __commonJS({
22971    "node_modules/isotope-layout/js/layout-modes/fit-rows.js"(exports, module) {
22972      (function(window2, factory) {
22973        if (typeof define == "function" && define.amd) {
22974          define(
22975            [
22976              "../layout-mode"
22977            ],
22978            factory
22979          );
22980        } else if (typeof exports == "object") {
22981          module.exports = factory(
22982            require_layout_mode()
22983          );
22984        } else {
22985          factory(
22986            window2.Isotope.LayoutMode
22987          );
22988        }
22989      })(window, function factory(LayoutMode) {
22990        "use strict";
22991        var FitRows = LayoutMode.create("fitRows");
22992        var proto = FitRows.prototype;
22993        proto._resetLayout = function() {
22994          this.x = 0;
22995          this.y = 0;
22996          this.maxY = 0;
22997          this._getMeasurement("gutter", "outerWidth");
22998        };
22999        proto._getItemLayoutPosition = function(item) {
23000          item.getSize();
23001          var itemWidth = item.size.outerWidth + this.gutter;
23002          var containerWidth = this.isotope.size.innerWidth + this.gutter;
23003          if (this.x !== 0 && itemWidth + this.x > containerWidth) {
23004            this.x = 0;
23005            this.y = this.maxY;
23006          }
23007          var position = {
23008            x: this.x,
23009            y: this.y
23010          };
23011          this.maxY = Math.max(this.maxY, this.y + item.size.outerHeight);
23012          this.x += itemWidth;
23013          return position;
23014        };
23015        proto._getContainerSize = function() {
23016          return { height: this.maxY };
23017        };
23018        return FitRows;
23019      });
23020    }
23021  });
23022
23023  
vendor: 1,366 bytes, lines 23023-23067
23023// node_modules/isotope-layout/js/layout-modes/vertical.js
23024  var require_vertical = __commonJS({
23025    "node_modules/isotope-layout/js/layout-modes/vertical.js"(exports, module) {
23026      (function(window2, factory) {
23027        if (typeof define == "function" && define.amd) {
23028          define(
23029            [
23030              "../layout-mode"
23031            ],
23032            factory
23033          );
23034        } else if (typeof module == "object" && module.exports) {
23035          module.exports = factory(
23036            require_layout_mode()
23037          );
23038        } else {
23039          factory(
23040            window2.Isotope.LayoutMode
23041          );
23042        }
23043      })(window, function factory(LayoutMode) {
23044        "use strict";
23045        var Vertical = LayoutMode.create("vertical", {
23046          horizontalAlignment: 0
23047        });
23048        var proto = Vertical.prototype;
23049        proto._resetLayout = function() {
23050          this.y = 0;
23051        };
23052        proto._getItemLayoutPosition = function(item) {
23053          item.getSize();
23054          var x2 = (this.isotope.size.innerWidth - item.size.outerWidth) * this.options.horizontalAlignment;
23055          var y3 = this.y;
23056          this.y += item.size.outerHeight;
23057          return { x: x2, y: y3 };
23058        };
23059        proto._getContainerSize = function() {
23060          return { height: this.y };
23061        };
23062        return Vertical;
23063      });
23064    }
23065  });
23066
23067  
vendor: 14,551 bytes, lines 23067-23475
23067// node_modules/isotope-layout/js/isotope.js
23068  var require_isotope = __commonJS({
23069    "node_modules/isotope-layout/js/isotope.js"(exports, module) {
23070      (function(window2, factory) {
23071        if (typeof define == "function" && define.amd) {
23072          define(
23073            [
23074              "outlayer/outlayer",
23075              "get-size/get-size",
23076              "desandro-matches-selector/matches-selector",
23077              "fizzy-ui-utils/utils",
23078              "./item",
23079              "./layout-mode",
23080              // include default layout modes
23081              "./layout-modes/masonry",
23082              "./layout-modes/fit-rows",
23083              "./layout-modes/vertical"
23084            ],
23085            function(Outlayer, getSize, matchesSelector, utils, Item, LayoutMode) {
23086              return factory(window2, Outlayer, getSize, matchesSelector, utils, Item, LayoutMode);
23087            }
23088          );
23089        } else if (typeof module == "object" && module.exports) {
23090          module.exports = factory(
23091            window2,
23092            require_outlayer(),
23093            require_get_size2(),
23094            require_matches_selector(),
23095            require_utils2(),
23096            require_item2(),
23097            require_layout_mode(),
23098            // include default layout modes
23099            require_masonry2(),
23100            require_fit_rows(),
23101            require_vertical()
23102          );
23103        } else {
23104          window2.Isotope = factory(
23105            window2,
23106            window2.Outlayer,
23107            window2.getSize,
23108            window2.matchesSelector,
23109            window2.fizzyUIUtils,
23110            window2.Isotope.Item,
23111            window2.Isotope.LayoutMode
23112          );
23113        }
23114      })(window, function factory(window2, Outlayer, getSize, matchesSelector, utils, Item, LayoutMode) {
23115        "use strict";
23116        var jQuery2 = window2.jQuery;
23117        var trim = String.prototype.trim ? function(str) {
23118          return str.trim();
23119        } : function(str) {
23120          return str.replace(/^\s+|\s+$/g, "");
23121        };
23122        var Isotope2 = Outlayer.create("isotope", {
23123          layoutMode: "masonry",
23124          isJQueryFiltering: true,
23125          sortAscending: true
23126        });
23127        Isotope2.Item = Item;
23128        Isotope2.LayoutMode = LayoutMode;
23129        var proto = Isotope2.prototype;
23130        proto._create = function() {
23131          this.itemGUID = 0;
23132          this._sorters = {};
23133          this._getSorters();
23134          Outlayer.prototype._create.call(this);
23135          this.modes = {};
23136          this.filteredItems = this.items;
23137          this.sortHistory = ["original-order"];
23138          for (var name in LayoutMode.modes) {
23139            this._initLayoutMode(name);
23140          }
23141        };
23142        proto.reloadItems = function() {
23143          this.itemGUID = 0;
23144          Outlayer.prototype.reloadItems.call(this);
23145        };
23146        proto._itemize = function() {
23147          var items = Outlayer.prototype._itemize.apply(this, arguments);
23148          for (var i10 = 0; i10 < items.length; i10++) {
23149            var item = items[i10];
23150            item.id = this.itemGUID++;
23151          }
23152          this._updateItemsSortData(items);
23153          return items;
23154        };
23155        proto._initLayoutMode = function(name) {
23156          var Mode = LayoutMode.modes[name];
23157          var initialOpts = this.options[name] || {};
23158          this.options[name] = Mode.options ? utils.extend(Mode.options, initialOpts) : initialOpts;
23159          this.modes[name] = new Mode(this);
23160        };
23161        proto.layout = function() {
23162          if (!this._isLayoutInited && this._getOption("initLayout")) {
23163            this.arrange();
23164            return;
23165          }
23166          this._layout();
23167        };
23168        proto._layout = function() {
23169          var isInstant = this._getIsInstant();
23170          this._resetLayout();
23171          this._manageStamps();
23172          this.layoutItems(this.filteredItems, isInstant);
23173          this._isLayoutInited = true;
23174        };
23175        proto.arrange = function(opts) {
23176          this.option(opts);
23177          this._getIsInstant();
23178          var filtered = this._filter(this.items);
23179          this.filteredItems = filtered.matches;
23180          this._bindArrangeComplete();
23181          if (this._isInstant) {
23182            this._noTransition(this._hideReveal, [filtered]);
23183          } else {
23184            this._hideReveal(filtered);
23185          }
23186          this._sort();
23187          this._layout();
23188        };
23189        proto._init = proto.arrange;
23190        proto._hideReveal = function(filtered) {
23191          this.reveal(filtered.needReveal);
23192          this.hide(filtered.needHide);
23193        };
23194        proto._getIsInstant = function() {
23195          var isLayoutInstant = this._getOption("layoutInstant");
23196          var isInstant = isLayoutInstant !== void 0 ? isLayoutInstant : !this._isLayoutInited;
23197          this._isInstant = isInstant;
23198          return isInstant;
23199        };
23200        proto._bindArrangeComplete = function() {
23201          var isLayoutComplete, isHideComplete, isRevealComplete;
23202          var _this = this;
23203          function arrangeParallelCallback() {
23204            if (isLayoutComplete && isHideComplete && isRevealComplete) {
23205              _this.dispatchEvent("arrangeComplete", null, [_this.filteredItems]);
23206            }
23207          }
23208          this.once("layoutComplete", function() {
23209            isLayoutComplete = true;
23210            arrangeParallelCallback();
23211          });
23212          this.once("hideComplete", function() {
23213            isHideComplete = true;
23214            arrangeParallelCallback();
23215          });
23216          this.once("revealComplete", function() {
23217            isRevealComplete = true;
23218            arrangeParallelCallback();
23219          });
23220        };
23221        proto._filter = function(items) {
23222          var filter = this.options.filter;
23223          filter = filter || "*";
23224          var matches = [];
23225          var hiddenMatched = [];
23226          var visibleUnmatched = [];
23227          var test = this._getFilterTest(filter);
23228          for (var i10 = 0; i10 < items.length; i10++) {
23229            var item = items[i10];
23230            if (item.isIgnored) {
23231              continue;
23232            }
23233            var isMatched = test(item);
23234            if (isMatched) {
23235              matches.push(item);
23236            }
23237            if (isMatched && item.isHidden) {
23238              hiddenMatched.push(item);
23239            } else if (!isMatched && !item.isHidden) {
23240              visibleUnmatched.push(item);
23241            }
23242          }
23243          return {
23244            matches,
23245            needReveal: hiddenMatched,
23246            needHide: visibleUnmatched
23247          };
23248        };
23249        proto._getFilterTest = function(filter) {
23250          if (jQuery2 && this.options.isJQueryFiltering) {
23251            return function(item) {
23252              return jQuery2(item.element).is(filter);
23253            };
23254          }
23255          if (typeof filter == "function") {
23256            return function(item) {
23257              return filter(item.element);
23258            };
23259          }
23260          return function(item) {
23261            return matchesSelector(item.element, filter);
23262          };
23263        };
23264        proto.updateSortData = function(elems) {
23265          var items;
23266          if (elems) {
23267            elems = utils.makeArray(elems);
23268            items = this.getItems(elems);
23269          } else {
23270            items = this.items;
23271          }
23272          this._getSorters();
23273          this._updateItemsSortData(items);
23274        };
23275        proto._getSorters = function() {
23276          var getSortData = this.options.getSortData;
23277          for (var key in getSortData) {
23278            var sorter = getSortData[key];
23279            this._sorters[key] = mungeSorter(sorter);
23280          }
23281        };
23282        proto._updateItemsSortData = function(items) {
23283          var len = items && items.length;
23284          for (var i10 = 0; len && i10 < len; i10++) {
23285            var item = items[i10];
23286            item.updateSortData();
23287          }
23288        };
23289        var mungeSorter = /* @__PURE__ */ (function() {
23290          function mungeSorter2(sorter) {
23291            if (typeof sorter != "string") {
23292              return sorter;
23293            }
23294            var args = trim(sorter).split(" ");
23295            var query = args[0];
23296            var attrMatch = query.match(/^\[(.+)\]$/);
23297            var attr = attrMatch && attrMatch[1];
23298            var getValue = getValueGetter(attr, query);
23299            var parser = Isotope2.sortDataParsers[args[1]];
23300            sorter = parser ? function(elem) {
23301              return elem && parser(getValue(elem));
23302            } : (
23303              // otherwise just return value
23304              function(elem) {
23305                return elem && getValue(elem);
23306              }
23307            );
23308            return sorter;
23309          }
23310          function getValueGetter(attr, query) {
23311            if (attr) {
23312              return function getAttribute(elem) {
23313                return elem.getAttribute(attr);
23314              };
23315            }
23316            return function getChildText(elem) {
23317              var child = elem.querySelector(query);
23318              return child && child.textContent;
23319            };
23320          }
23321          return mungeSorter2;
23322        })();
23323        Isotope2.sortDataParsers = {
23324          "parseInt": function(val) {
23325            return parseInt(val, 10);
23326          },
23327          "parseFloat": function(val) {
23328            return parseFloat(val);
23329          }
23330        };
23331        proto._sort = function() {
23332          if (!this.options.sortBy) {
23333            return;
23334          }
23335          var sortBys = utils.makeArray(this.options.sortBy);
23336          if (!this._getIsSameSortBy(sortBys)) {
23337            this.sortHistory = sortBys.concat(this.sortHistory);
23338          }
23339          var itemSorter = getItemSorter(this.sortHistory, this.options.sortAscending);
23340          this.filteredItems.sort(itemSorter);
23341        };
23342        proto._getIsSameSortBy = function(sortBys) {
23343          for (var i10 = 0; i10 < sortBys.length; i10++) {
23344            if (sortBys[i10] != this.sortHistory[i10]) {
23345              return false;
23346            }
23347          }
23348          return true;
23349        };
23350        function getItemSorter(sortBys, sortAsc) {
23351          return function sorter(itemA, itemB) {
23352            for (var i10 = 0; i10 < sortBys.length; i10++) {
23353              var sortBy = sortBys[i10];
23354              var a8 = itemA.sortData[sortBy];
23355              var b3 = itemB.sortData[sortBy];
23356              if (a8 > b3 || a8 < b3) {
23357                var isAscending = sortAsc[sortBy] !== void 0 ? sortAsc[sortBy] : sortAsc;
23358                var direction = isAscending ? 1 : -1;
23359                return (a8 > b3 ? 1 : -1) * direction;
23360              }
23361            }
23362            return 0;
23363          };
23364        }
23365        proto._mode = function() {
23366          var layoutMode = this.options.layoutMode;
23367          var mode = this.modes[layoutMode];
23368          if (!mode) {
23369            throw new Error("No layout mode: " + layoutMode);
23370          }
23371          mode.options = this.options[layoutMode];
23372          return mode;
23373        };
23374        proto._resetLayout = function() {
23375          Outlayer.prototype._resetLayout.call(this);
23376          this._mode()._resetLayout();
23377        };
23378        proto._getItemLayoutPosition = function(item) {
23379          return this._mode()._getItemLayoutPosition(item);
23380        };
23381        proto._manageStamp = function(stamp) {
23382          this._mode()._manageStamp(stamp);
23383        };
23384        proto._getContainerSize = function() {
23385          return this._mode()._getContainerSize();
23386        };
23387        proto.needsResizeLayout = function() {
23388          return this._mode().needsResizeLayout();
23389        };
23390        proto.appended = function(elems) {
23391          var items = this.addItems(elems);
23392          if (!items.length) {
23393            return;
23394          }
23395          var filteredItems = this._filterRevealAdded(items);
23396          this.filteredItems = this.filteredItems.concat(filteredItems);
23397        };
23398        proto.prepended = function(elems) {
23399          var items = this._itemize(elems);
23400          if (!items.length) {
23401            return;
23402          }
23403          this._resetLayout();
23404          this._manageStamps();
23405          var filteredItems = this._filterRevealAdded(items);
23406          this.layoutItems(this.filteredItems);
23407          this.filteredItems = filteredItems.concat(this.filteredItems);
23408          this.items = items.concat(this.items);
23409        };
23410        proto._filterRevealAdded = function(items) {
23411          var filtered = this._filter(items);
23412          this.hide(filtered.needHide);
23413          this.reveal(filtered.matches);
23414          this.layoutItems(filtered.matches, true);
23415          return filtered.matches;
23416        };
23417        proto.insert = function(elems) {
23418          var items = this.addItems(elems);
23419          if (!items.length) {
23420            return;
23421          }
23422          var i10, item;
23423          var len = items.length;
23424          for (i10 = 0; i10 < len; i10++) {
23425            item = items[i10];
23426            this.element.appendChild(item.element);
23427          }
23428          var filteredInsertItems = this._filter(items).matches;
23429          for (i10 = 0; i10 < len; i10++) {
23430            items[i10].isLayoutInstant = true;
23431          }
23432          this.arrange();
23433          for (i10 = 0; i10 < len; i10++) {
23434            delete items[i10].isLayoutInstant;
23435          }
23436          this.reveal(filteredInsertItems);
23437        };
23438        var _remove = proto.remove;
23439        proto.remove = function(elems) {
23440          elems = utils.makeArray(elems);
23441          var removeItems = this.getItems(elems);
23442          _remove.call(this, elems);
23443          var len = removeItems && removeItems.length;
23444          for (var i10 = 0; len && i10 < len; i10++) {
23445            var item = removeItems[i10];
23446            utils.removeFrom(this.filteredItems, item);
23447          }
23448        };
23449        proto.shuffle = function() {
23450          for (var i10 = 0; i10 < this.items.length; i10++) {
23451            var item = this.items[i10];
23452            item.sortData.random = Math.random();
23453          }
23454          this.options.sortBy = "random";
23455          this._sort();
23456          this._layout();
23457        };
23458        proto._noTransition = function(fn, args) {
23459          var transitionDuration = this.options.transitionDuration;
23460          this.options.transitionDuration = 0;
23461          var returnValue = fn.apply(this, args);
23462          this.options.transitionDuration = transitionDuration;
23463          return returnValue;
23464        };
23465        proto.getFilteredItemElements = function() {
23466          return this.filteredItems.map(function(item) {
23467            return item.element;
23468          });
23469        };
23470        return Isotope2;
23471      });
23472    }
23473  });
23474
23475  
vendor: 259,290 bytes, lines 23475-29825
23475// node_modules/jquery/dist/jquery.js
23476  var require_jquery = __commonJS({
23477    "node_modules/jquery/dist/jquery.js"(exports, module) {
23478      (function(global, factory) {
23479        "use strict";
23480        if (typeof module === "object" && typeof module.exports === "object") {
23481          module.exports = global.document ? factory(global, true) : function(w3) {
23482            if (!w3.document) {
23483              throw new Error("jQuery requires a window with a document");
23484            }
23485            return factory(w3);
23486          };
23487        } else {
23488          factory(global);
23489        }
23490      })(typeof window !== "undefined" ? window : exports, function(window2, noGlobal) {
23491        "use strict";
23492        var arr = [];
23493        var getProto = Object.getPrototypeOf;
23494        var slice = arr.slice;
23495        var flat = arr.flat ? function(array) {
23496          return arr.flat.call(array);
23497        } : function(array) {
23498          return arr.concat.apply([], array);
23499        };
23500        var push = arr.push;
23501        var indexOf = arr.indexOf;
23502        var class2type = {};
23503        var toString = class2type.toString;
23504        var hasOwn = class2type.hasOwnProperty;
23505        var fnToString = hasOwn.toString;
23506        var ObjectFunctionString = fnToString.call(Object);
23507        var support = {};
23508        var isFunction = function isFunction2(obj) {
23509          return typeof obj === "function" && typeof obj.nodeType !== "number" && typeof obj.item !== "function";
23510        };
23511        var isWindow = function isWindow2(obj) {
23512          return obj != null && obj === obj.window;
23513        };
23514        var document2 = window2.document;
23515        var preservedScriptAttributes = {
23516          type: true,
23517          src: true,
23518          nonce: true,
23519          noModule: true
23520        };
23521        function DOMEval(code, node, doc) {
23522          doc = doc || document2;
23523          var i10, val, script = doc.createElement("script");
23524          script.text = code;
23525          if (node) {
23526            for (i10 in preservedScriptAttributes) {
23527              val = node[i10] || node.getAttribute && node.getAttribute(i10);
23528              if (val) {
23529                script.setAttribute(i10, val);
23530              }
23531            }
23532          }
23533          doc.head.appendChild(script).parentNode.removeChild(script);
23534        }
23535        function toType(obj) {
23536          if (obj == null) {
23537            return obj + "";
23538          }
23539          return typeof obj === "object" || typeof obj === "function" ? class2type[toString.call(obj)] || "object" : typeof obj;
23540        }
23541        var version = "3.7.1", rhtmlSuffix = /HTML$/i, jQuery2 = function(selector3, context3) {
23542          return new jQuery2.fn.init(selector3, context3);
23543        };
23544        jQuery2.fn = jQuery2.prototype = {
23545          // The current version of jQuery being used
23546          jquery: version,
23547          constructor: jQuery2,
23548          // The default length of a jQuery object is 0
23549          length: 0,
23550          toArray: function() {
23551            return slice.call(this);
23552          },
23553          // Get the Nth element in the matched element set OR
23554          // Get the whole matched element set as a clean array
23555          get: function(num) {
23556            if (num == null) {
23557              return slice.call(this);
23558            }
23559            return num < 0 ? this[num + this.length] : this[num];
23560          },
23561          // Take an array of elements and push it onto the stack
23562          // (returning the new matched element set)
23563          pushStack: function(elems) {
23564            var ret = jQuery2.merge(this.constructor(), elems);
23565            ret.prevObject = this;
23566            return ret;
23567          },
23568          // Execute a callback for every element in the matched set.
23569          each: function(callback) {
23570            return jQuery2.each(this, callback);
23571          },
23572          map: function(callback) {
23573            return this.pushStack(jQuery2.map(this, function(elem, i10) {
23574              return callback.call(elem, i10, elem);
23575            }));
23576          },
23577          slice: function() {
23578            return this.pushStack(slice.apply(this, arguments));
23579          },
23580          first: function() {
23581            return this.eq(0);
23582          },
23583          last: function() {
23584            return this.eq(-1);
23585          },
23586          even: function() {
23587            return this.pushStack(jQuery2.grep(this, function(_elem, i10) {
23588              return (i10 + 1) % 2;
23589            }));
23590          },
23591          odd: function() {
23592            return this.pushStack(jQuery2.grep(this, function(_elem, i10) {
23593              return i10 % 2;
23594            }));
23595          },
23596          eq: function(i10) {
23597            var len = this.length, j2 = +i10 + (i10 < 0 ? len : 0);
23598            return this.pushStack(j2 >= 0 && j2 < len ? [this[j2]] : []);
23599          },
23600          end: function() {
23601            return this.prevObject || this.constructor();
23602          },
23603          // For internal use only.
23604          // Behaves like an Array's method, not like a jQuery method.
23605          push,
23606          sort: arr.sort,
23607          splice: arr.splice
23608        };
23609        jQuery2.extend = jQuery2.fn.extend = function() {
23610          var options, name, src, copy, copyIsArray, clone, target = arguments[0] || {}, i10 = 1, length = arguments.length, deep = false;
23611          if (typeof target === "boolean") {
23612            deep = target;
23613            target = arguments[i10] || {};
23614            i10++;
23615          }
23616          if (typeof target !== "object" && !isFunction(target)) {
23617            target = {};
23618          }
23619          if (i10 === length) {
23620            target = this;
23621            i10--;
23622          }
23623          for (; i10 < length; i10++) {
23624            if ((options = arguments[i10]) != null) {
23625              for (name in options) {
23626                copy = options[name];
23627                if (name === "__proto__" || target === copy) {
23628                  continue;
23629                }
23630                if (deep && copy && (jQuery2.isPlainObject(copy) || (copyIsArray = Array.isArray(copy)))) {
23631                  src = target[name];
23632                  if (copyIsArray && !Array.isArray(src)) {
23633                    clone = [];
23634                  } else if (!copyIsArray && !jQuery2.isPlainObject(src)) {
23635                    clone = {};
23636                  } else {
23637                    clone = src;
23638                  }
23639                  copyIsArray = false;
23640                  target[name] = jQuery2.extend(deep, clone, copy);
23641                } else if (copy !== void 0) {
23642                  target[name] = copy;
23643                }
23644              }
23645            }
23646          }
23647          return target;
23648        };
23649        jQuery2.extend({
23650          // Unique for each copy of jQuery on the page
23651          expando: "jQuery" + (version + Math.random()).replace(/\D/g, ""),
23652          // Assume jQuery is ready without the ready module
23653          isReady: true,
23654          error: function(msg) {
23655            throw new Error(msg);
23656          },
23657          noop: function() {
23658          },
23659          isPlainObject: function(obj) {
23660            var proto, Ctor;
23661            if (!obj || toString.call(obj) !== "[object Object]") {
23662              return false;
23663            }
23664            proto = getProto(obj);
23665            if (!proto) {
23666              return true;
23667            }
23668            Ctor = hasOwn.call(proto, "constructor") && proto.constructor;
23669            return typeof Ctor === "function" && fnToString.call(Ctor) === ObjectFunctionString;
23670          },
23671          isEmptyObject: function(obj) {
23672            var name;
23673            for (name in obj) {
23674              return false;
23675            }
23676            return true;
23677          },
23678          // Evaluates a script in a provided context; falls back to the global one
23679          // if not specified.
23680          globalEval: function(code, options, doc) {
23681            DOMEval(code, { nonce: options && options.nonce }, doc);
23682          },
23683          each: function(obj, callback) {
23684            var length, i10 = 0;
23685            if (isArrayLike(obj)) {
23686              length = obj.length;
23687              for (; i10 < length; i10++) {
23688                if (callback.call(obj[i10], i10, obj[i10]) === false) {
23689                  break;
23690                }
23691              }
23692            } else {
23693              for (i10 in obj) {
23694                if (callback.call(obj[i10], i10, obj[i10]) === false) {
23695                  break;
23696                }
23697              }
23698            }
23699            return obj;
23700          },
23701          // Retrieve the text value of an array of DOM nodes
23702          text: function(elem) {
23703            var node, ret = "", i10 = 0, nodeType = elem.nodeType;
23704            if (!nodeType) {
23705              while (node = elem[i10++]) {
23706                ret += jQuery2.text(node);
23707              }
23708            }
23709            if (nodeType === 1 || nodeType === 11) {
23710              return elem.textContent;
23711            }
23712            if (nodeType === 9) {
23713              return elem.documentElement.textContent;
23714            }
23715            if (nodeType === 3 || nodeType === 4) {
23716              return elem.nodeValue;
23717            }
23718            return ret;
23719          },
23720          // results is for internal usage only
23721          makeArray: function(arr2, results) {
23722            var ret = results || [];
23723            if (arr2 != null) {
23724              if (isArrayLike(Object(arr2))) {
23725                jQuery2.merge(
23726                  ret,
23727                  typeof arr2 === "string" ? [arr2] : arr2
23728                );
23729              } else {
23730                push.call(ret, arr2);
23731              }
23732            }
23733            return ret;
23734          },
23735          inArray: function(elem, arr2, i10) {
23736            return arr2 == null ? -1 : indexOf.call(arr2, elem, i10);
23737          },
23738          isXMLDoc: function(elem) {
23739            var namespace = elem && elem.namespaceURI, docElem = elem && (elem.ownerDocument || elem).documentElement;
23740            return !rhtmlSuffix.test(namespace || docElem && docElem.nodeName || "HTML");
23741          },
23742          // Support: Android <=4.0 only, PhantomJS 1 only
23743          // push.apply(_, arraylike) throws on ancient WebKit
23744          merge: function(first, second) {
23745            var len = +second.length, j2 = 0, i10 = first.length;
23746            for (; j2 < len; j2++) {
23747              first[i10++] = second[j2];
23748            }
23749            first.length = i10;
23750            return first;
23751          },
23752          grep: function(elems, callback, invert) {
23753            var callbackInverse, matches = [], i10 = 0, length = elems.length, callbackExpect = !invert;
23754            for (; i10 < length; i10++) {
23755              callbackInverse = !callback(elems[i10], i10);
23756              if (callbackInverse !== callbackExpect) {
23757                matches.push(elems[i10]);
23758              }
23759            }
23760            return matches;
23761          },
23762          // arg is for internal usage only
23763          map: function(elems, callback, arg) {
23764            var length, value, i10 = 0, ret = [];
23765            if (isArrayLike(elems)) {
23766              length = elems.length;
23767              for (; i10 < length; i10++) {
23768                value = callback(elems[i10], i10, arg);
23769                if (value != null) {
23770                  ret.push(value);
23771                }
23772              }
23773            } else {
23774              for (i10 in elems) {
23775                value = callback(elems[i10], i10, arg);
23776                if (value != null) {
23777                  ret.push(value);
23778                }
23779              }
23780            }
23781            return flat(ret);
23782          },
23783          // A global GUID counter for objects
23784          guid: 1,
23785          // jQuery.support is not used in Core but other projects attach their
23786          // properties to it so it needs to exist.
23787          support
23788        });
23789        if (typeof Symbol === "function") {
23790          jQuery2.fn[Symbol.iterator] = arr[Symbol.iterator];
23791        }
23792        jQuery2.each(
23793          "Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),
23794          function(_i2, name) {
23795            class2type["[object " + name + "]"] = name.toLowerCase();
23796          }
23797        );
23798        function isArrayLike(obj) {
23799          var length = !!obj && "length" in obj && obj.length, type = toType(obj);
23800          if (isFunction(obj) || isWindow(obj)) {
23801            return false;
23802          }
23803          return type === "array" || length === 0 || typeof length === "number" && length > 0 && length - 1 in obj;
23804        }
23805        function nodeName(elem, name) {
23806          return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
23807        }
23808        var pop = arr.pop;
23809        var sort = arr.sort;
23810        var splice = arr.splice;
23811        var whitespace = "[\\x20\\t\\r\\n\\f]";
23812        var rtrimCSS = new RegExp(
23813          "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$",
23814          "g"
23815        );
23816        jQuery2.contains = function(a8, b3) {
23817          var bup = b3 && b3.parentNode;
23818          return a8 === bup || !!(bup && bup.nodeType === 1 && // Support: IE 9 - 11+
23819          // IE doesn't have `contains` on SVG.
23820          (a8.contains ? a8.contains(bup) : a8.compareDocumentPosition && a8.compareDocumentPosition(bup) & 16));
23821        };
23822        var rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g;
23823        function fcssescape(ch, asCodePoint) {
23824          if (asCodePoint) {
23825            if (ch === "\0") {
23826              return "\uFFFD";
23827            }
23828            return ch.slice(0, -1) + "\\" + ch.charCodeAt(ch.length - 1).toString(16) + " ";
23829          }
23830          return "\\" + ch;
23831        }
23832        jQuery2.escapeSelector = function(sel) {
23833          return (sel + "").replace(rcssescape, fcssescape);
23834        };
23835        var preferredDoc = document2, pushNative = push;
23836        (function() {
23837          var i10, Expr, outermostContext, sortInput, hasDuplicate, push2 = pushNative, document3, documentElement2, documentIsHTML, rbuggyQSA, matches, expando = jQuery2.expando, dirruns = 0, done = 0, classCache = createCache(), tokenCache = createCache(), compilerCache = createCache(), nonnativeSelectorCache = createCache(), sortOrder = function(a8, b3) {
23838            if (a8 === b3) {
23839              hasDuplicate = true;
23840            }
23841            return 0;
23842          }, booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", identifier = "(?:\\\\[\\da-fA-F]{1,6}" + whitespace + "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+", attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + // Operator (capture 2)
23843          "*([*^$|!~]?=)" + whitespace + // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]"
23844          `*(?:'((?:\\\\.|[^\\\\'])*)'|"((?:\\\\.|[^\\\\"])*)"|(` + identifier + "))|)" + whitespace + "*\\]", pseudos = ":(" + identifier + `)(?:\\((('((?:\\\\.|[^\\\\'])*)'|"((?:\\\\.|[^\\\\"])*)")|((?:\\\\.|[^\\\\()[\\]]|` + attributes + ")*)|.*)\\)|)", rwhitespace = new RegExp(whitespace + "+", "g"), rcomma = new RegExp("^" + whitespace + "*," + whitespace + "*"), rleadingCombinator = new RegExp("^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*"), rdescend = new RegExp(whitespace + "|>"), rpseudo = new RegExp(pseudos), ridentifier = new RegExp("^" + identifier + "$"), matchExpr = {
23845            ID: new RegExp("^#(" + identifier + ")"),
23846            CLASS: new RegExp("^\\.(" + identifier + ")"),
23847            TAG: new RegExp("^(" + identifier + "|[*])"),
23848            ATTR: new RegExp("^" + attributes),
23849            PSEUDO: new RegExp("^" + pseudos),
23850            CHILD: new RegExp(
23851              "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + "*(\\d+)|))" + whitespace + "*\\)|)",
23852              "i"
23853            ),
23854            bool: new RegExp("^(?:" + booleans + ")$", "i"),
23855            // For use in libraries implementing .is()
23856            // We use this for POS matching in `select`
23857            needsContext: new RegExp("^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i")
23858          }, rinputs = /^(?:input|select|textarea|button)$/i, rheader = /^h\d$/i, rquickExpr2 = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, rsibling = /[+~]/, runescape = new RegExp("\\\\[\\da-fA-F]{1,6}" + whitespace + "?|\\\\([^\\r\\n\\f])", "g"), funescape = function(escape2, nonHex) {
23859            var high = "0x" + escape2.slice(1) - 65536;
23860            if (nonHex) {
23861              return nonHex;
23862            }
23863            return high < 0 ? String.fromCharCode(high + 65536) : String.fromCharCode(high >> 10 | 55296, high & 1023 | 56320);
23864          }, unloadHandler = function() {
23865            setDocument();
23866          }, inDisabledFieldset = addCombinator(
23867            function(elem) {
23868              return elem.disabled === true && nodeName(elem, "fieldset");
23869            },
23870            { dir: "parentNode", next: "legend" }
23871          );
23872          function safeActiveElement() {
23873            try {
23874              return document3.activeElement;
23875            } catch (err) {
23876            }
23877          }
23878          try {
23879            push2.apply(
23880              arr = slice.call(preferredDoc.childNodes),
23881              preferredDoc.childNodes
23882            );
23883            arr[preferredDoc.childNodes.length].nodeType;
23884          } catch (e11) {
23885            push2 = {
23886              apply: function(target, els) {
23887                pushNative.apply(target, slice.call(els));
23888              },
23889              call: function(target) {
23890                pushNative.apply(target, slice.call(arguments, 1));
23891              }
23892            };
23893          }
23894          function find(selector3, context3, results, seed) {
23895            var m3, i11, elem, nid, match, groups, newSelector, newContext = context3 && context3.ownerDocument, nodeType = context3 ? context3.nodeType : 9;
23896            results = results || [];
23897            if (typeof selector3 !== "string" || !selector3 || nodeType !== 1 && nodeType !== 9 && nodeType !== 11) {
23898              return results;
23899            }
23900            if (!seed) {
23901              setDocument(context3);
23902              context3 = context3 || document3;
23903              if (documentIsHTML) {
23904                if (nodeType !== 11 && (match = rquickExpr2.exec(selector3))) {
23905                  if (m3 = match[1]) {
23906                    if (nodeType === 9) {
23907                      if (elem = context3.getElementById(m3)) {
23908                        if (elem.id === m3) {
23909                          push2.call(results, elem);
23910                          return results;
23911                        }
23912                      } else {
23913                        return results;
23914                      }
23915                    } else {
23916                      if (newContext && (elem = newContext.getElementById(m3)) && find.contains(context3, elem) && elem.id === m3) {
23917                        push2.call(results, elem);
23918                        return results;
23919                      }
23920                    }
23921                  } else if (match[2]) {
23922                    push2.apply(results, context3.getElementsByTagName(selector3));
23923                    return results;
23924                  } else if ((m3 = match[3]) && context3.getElementsByClassName) {
23925                    push2.apply(results, context3.getElementsByClassName(m3));
23926                    return results;
23927                  }
23928                }
23929                if (!nonnativeSelectorCache[selector3 + " "] && (!rbuggyQSA || !rbuggyQSA.test(selector3))) {
23930                  newSelector = selector3;
23931                  newContext = context3;
23932                  if (nodeType === 1 && (rdescend.test(selector3) || rleadingCombinator.test(selector3))) {
23933                    newContext = rsibling.test(selector3) && testContext(context3.parentNode) || context3;
23934                    if (newContext != context3 || !support.scope) {
23935                      if (nid = context3.getAttribute("id")) {
23936                        nid = jQuery2.escapeSelector(nid);
23937                      } else {
23938                        context3.setAttribute("id", nid = expando);
23939                      }
23940                    }
23941                    groups = tokenize(selector3);
23942                    i11 = groups.length;
23943                    while (i11--) {
23944                      groups[i11] = (nid ? "#" + nid : ":scope") + " " + toSelector(groups[i11]);
23945                    }
23946                    newSelector = groups.join(",");
23947                  }
23948                  try {
23949                    push2.apply(
23950                      results,
23951                      newContext.querySelectorAll(newSelector)
23952                    );
23953                    return results;
23954                  } catch (qsaError) {
23955                    nonnativeSelectorCache(selector3, true);
23956                  } finally {
23957                    if (nid === expando) {
23958                      context3.removeAttribute("id");
23959                    }
23960                  }
23961                }
23962              }
23963            }
23964            return select2(selector3.replace(rtrimCSS, "$1"), context3, results, seed);
23965          }
23966          function createCache() {
23967            var keys = [];
23968            function cache(key, value) {
23969              if (keys.push(key + " ") > Expr.cacheLength) {
23970                delete cache[keys.shift()];
23971              }
23972              return cache[key + " "] = value;
23973            }
23974            return cache;
23975          }
23976          function markFunction(fn) {
23977            fn[expando] = true;
23978            return fn;
23979          }
23980          function assert(fn) {
23981            var el = document3.createElement("fieldset");
23982            try {
23983              return !!fn(el);
23984            } catch (e11) {
23985              return false;
23986            } finally {
23987              if (el.parentNode) {
23988                el.parentNode.removeChild(el);
23989              }
23990              el = null;
23991            }
23992          }
23993          function createInputPseudo(type) {
23994            return function(elem) {
23995              return nodeName(elem, "input") && elem.type === type;
23996            };
23997          }
23998          function createButtonPseudo(type) {
23999            return function(elem) {
24000              return (nodeName(elem, "input") || nodeName(elem, "button")) && elem.type === type;
24001            };
24002          }
24003          function createDisabledPseudo(disabled) {
24004            return function(elem) {
24005              if ("form" in elem) {
24006                if (elem.parentNode && elem.disabled === false) {
24007                  if ("label" in elem) {
24008                    if ("label" in elem.parentNode) {
24009                      return elem.parentNode.disabled === disabled;
24010                    } else {
24011                      return elem.disabled === disabled;
24012                    }
24013                  }
24014                  return elem.isDisabled === disabled || // Where there is no isDisabled, check manually
24015                  elem.isDisabled !== !disabled && inDisabledFieldset(elem) === disabled;
24016                }
24017                return elem.disabled === disabled;
24018              } else if ("label" in elem) {
24019                return elem.disabled === disabled;
24020              }
24021              return false;
24022            };
24023          }
24024          function createPositionalPseudo(fn) {
24025            return markFunction(function(argument) {
24026              argument = +argument;
24027              return markFunction(function(seed, matches2) {
24028                var j2, matchIndexes = fn([], seed.length, argument), i11 = matchIndexes.length;
24029                while (i11--) {
24030                  if (seed[j2 = matchIndexes[i11]]) {
24031                    seed[j2] = !(matches2[j2] = seed[j2]);
24032                  }
24033                }
24034              });
24035            });
24036          }
24037          function testContext(context3) {
24038            return context3 && typeof context3.getElementsByTagName !== "undefined" && context3;
24039          }
24040          function setDocument(node) {
24041            var subWindow, doc = node ? node.ownerDocument || node : preferredDoc;
24042            if (doc == document3 || doc.nodeType !== 9 || !doc.documentElement) {
24043              return document3;
24044            }
24045            document3 = doc;
24046            documentElement2 = document3.documentElement;
24047            documentIsHTML = !jQuery2.isXMLDoc(document3);
24048            matches = documentElement2.matches || documentElement2.webkitMatchesSelector || documentElement2.msMatchesSelector;
24049            if (documentElement2.msMatchesSelector && // Support: IE 11+, Edge 17 - 18+
24050            // IE/Edge sometimes throw a "Permission denied" error when strict-comparing
24051            // two documents; shallow comparisons work.
24052            // eslint-disable-next-line eqeqeq
24053            preferredDoc != document3 && (subWindow = document3.defaultView) && subWindow.top !== subWindow) {
24054              subWindow.addEventListener("unload", unloadHandler);
24055            }
24056            support.getById = assert(function(el) {
24057              documentElement2.appendChild(el).id = jQuery2.expando;
24058              return !document3.getElementsByName || !document3.getElementsByName(jQuery2.expando).length;
24059            });
24060            support.disconnectedMatch = assert(function(el) {
24061              return matches.call(el, "*");
24062            });
24063            support.scope = assert(function() {
24064              return document3.querySelectorAll(":scope");
24065            });
24066            support.cssHas = assert(function() {
24067              try {
24068                document3.querySelector(":has(*,:jqfake)");
24069                return false;
24070              } catch (e11) {
24071                return true;
24072              }
24073            });
24074            if (support.getById) {
24075              Expr.filter.ID = function(id) {
24076                var attrId = id.replace(runescape, funescape);
24077                return function(elem) {
24078                  return elem.getAttribute("id") === attrId;
24079                };
24080              };
24081              Expr.find.ID = function(id, context3) {
24082                if (typeof context3.getElementById !== "undefined" && documentIsHTML) {
24083                  var elem = context3.getElementById(id);
24084                  return elem ? [elem] : [];
24085                }
24086              };
24087            } else {
24088              Expr.filter.ID = function(id) {
24089                var attrId = id.replace(runescape, funescape);
24090                return function(elem) {
24091                  var node2 = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id");
24092                  return node2 && node2.value === attrId;
24093                };
24094              };
24095              Expr.find.ID = function(id, context3) {
24096                if (typeof context3.getElementById !== "undefined" && documentIsHTML) {
24097                  var node2, i11, elems, elem = context3.getElementById(id);
24098                  if (elem) {
24099                    node2 = elem.getAttributeNode("id");
24100                    if (node2 && node2.value === id) {
24101                      return [elem];
24102                    }
24103                    elems = context3.getElementsByName(id);
24104                    i11 = 0;
24105                    while (elem = elems[i11++]) {
24106                      node2 = elem.getAttributeNode("id");
24107                      if (node2 && node2.value === id) {
24108                        return [elem];
24109                      }
24110                    }
24111                  }
24112                  return [];
24113                }
24114              };
24115            }
24116            Expr.find.TAG = function(tag, context3) {
24117              if (typeof context3.getElementsByTagName !== "undefined") {
24118                return context3.getElementsByTagName(tag);
24119              } else {
24120                return context3.querySelectorAll(tag);
24121              }
24122            };
24123            Expr.find.CLASS = function(className, context3) {
24124              if (typeof context3.getElementsByClassName !== "undefined" && documentIsHTML) {
24125                return context3.getElementsByClassName(className);
24126              }
24127            };
24128            rbuggyQSA = [];
24129            assert(function(el) {
24130              var input;
24131              documentElement2.appendChild(el).innerHTML = "<a id='" + expando + "' href='' disabled='disabled'></a><select id='" + expando + "-\r\\' disabled='disabled'><option selected=''></option></select>";
24132              if (!el.querySelectorAll("[selected]").length) {
24133                rbuggyQSA.push("\\[" + whitespace + "*(?:value|" + booleans + ")");
24134              }
24135              if (!el.querySelectorAll("[id~=" + expando + "-]").length) {
24136                rbuggyQSA.push("~=");
24137              }
24138              if (!el.querySelectorAll("a#" + expando + "+*").length) {
24139                rbuggyQSA.push(".#.+[+~]");
24140              }
24141              if (!el.querySelectorAll(":checked").length) {
24142                rbuggyQSA.push(":checked");
24143              }
24144              input = document3.createElement("input");
24145              input.setAttribute("type", "hidden");
24146              el.appendChild(input).setAttribute("name", "D");
24147              documentElement2.appendChild(el).disabled = true;
24148              if (el.querySelectorAll(":disabled").length !== 2) {
24149                rbuggyQSA.push(":enabled", ":disabled");
24150              }
24151              input = document3.createElement("input");
24152              input.setAttribute("name", "");
24153              el.appendChild(input);
24154              if (!el.querySelectorAll("[name='']").length) {
24155                rbuggyQSA.push("\\[" + whitespace + "*name" + whitespace + "*=" + whitespace + `*(?:''|"")`);
24156              }
24157            });
24158            if (!support.cssHas) {
24159              rbuggyQSA.push(":has");
24160            }
24161            rbuggyQSA = rbuggyQSA.length && new RegExp(rbuggyQSA.join("|"));
24162            sortOrder = function(a8, b3) {
24163              if (a8 === b3) {
24164                hasDuplicate = true;
24165                return 0;
24166              }
24167              var compare = !a8.compareDocumentPosition - !b3.compareDocumentPosition;
24168              if (compare) {
24169                return compare;
24170              }
24171              compare = (a8.ownerDocument || a8) == (b3.ownerDocument || b3) ? a8.compareDocumentPosition(b3) : (
24172                // Otherwise we know they are disconnected
24173                1
24174              );
24175              if (compare & 1 || !support.sortDetached && b3.compareDocumentPosition(a8) === compare) {
24176                if (a8 === document3 || a8.ownerDocument == preferredDoc && find.contains(preferredDoc, a8)) {
24177                  return -1;
24178                }
24179                if (b3 === document3 || b3.ownerDocument == preferredDoc && find.contains(preferredDoc, b3)) {
24180                  return 1;
24181                }
24182                return sortInput ? indexOf.call(sortInput, a8) - indexOf.call(sortInput, b3) : 0;
24183              }
24184              return compare & 4 ? -1 : 1;
24185            };
24186            return document3;
24187          }
24188          find.matches = function(expr, elements) {
24189            return find(expr, null, null, elements);
24190          };
24191          find.matchesSelector = function(elem, expr) {
24192            setDocument(elem);
24193            if (documentIsHTML && !nonnativeSelectorCache[expr + " "] && (!rbuggyQSA || !rbuggyQSA.test(expr))) {
24194              try {
24195                var ret = matches.call(elem, expr);
24196                if (ret || support.disconnectedMatch || // As well, disconnected nodes are said to be in a document
24197                // fragment in IE 9
24198                elem.document && elem.document.nodeType !== 11) {
24199                  return ret;
24200                }
24201              } catch (e11) {
24202                nonnativeSelectorCache(expr, true);
24203              }
24204            }
24205            return find(expr, document3, null, [elem]).length > 0;
24206          };
24207          find.contains = function(context3, elem) {
24208            if ((context3.ownerDocument || context3) != document3) {
24209              setDocument(context3);
24210            }
24211            return jQuery2.contains(context3, elem);
24212          };
24213          find.attr = function(elem, name) {
24214            if ((elem.ownerDocument || elem) != document3) {
24215              setDocument(elem);
24216            }
24217            var fn = Expr.attrHandle[name.toLowerCase()], val = fn && hasOwn.call(Expr.attrHandle, name.toLowerCase()) ? fn(elem, name, !documentIsHTML) : void 0;
24218            if (val !== void 0) {
24219              return val;
24220            }
24221            return elem.getAttribute(name);
24222          };
24223          find.error = function(msg) {
24224            throw new Error("Syntax error, unrecognized expression: " + msg);
24225          };
24226          jQuery2.uniqueSort = function(results) {
24227            var elem, duplicates = [], j2 = 0, i11 = 0;
24228            hasDuplicate = !support.sortStable;
24229            sortInput = !support.sortStable && slice.call(results, 0);
24230            sort.call(results, sortOrder);
24231            if (hasDuplicate) {
24232              while (elem = results[i11++]) {
24233                if (elem === results[i11]) {
24234                  j2 = duplicates.push(i11);
24235                }
24236              }
24237              while (j2--) {
24238                splice.call(results, duplicates[j2], 1);
24239              }
24240            }
24241            sortInput = null;
24242            return results;
24243          };
24244          jQuery2.fn.uniqueSort = function() {
24245            return this.pushStack(jQuery2.uniqueSort(slice.apply(this)));
24246          };
24247          Expr = jQuery2.expr = {
24248            // Can be adjusted by the user
24249            cacheLength: 50,
24250            createPseudo: markFunction,
24251            match: matchExpr,
24252            attrHandle: {},
24253            find: {},
24254            relative: {
24255              ">": { dir: "parentNode", first: true },
24256              " ": { dir: "parentNode" },
24257              "+": { dir: "previousSibling", first: true },
24258              "~": { dir: "previousSibling" }
24259            },
24260            preFilter: {
24261              ATTR: function(match) {
24262                match[1] = match[1].replace(runescape, funescape);
24263                match[3] = (match[3] || match[4] || match[5] || "").replace(runescape, funescape);
24264                if (match[2] === "~=") {
24265                  match[3] = " " + match[3] + " ";
24266                }
24267                return match.slice(0, 4);
24268              },
24269              CHILD: function(match) {
24270                match[1] = match[1].toLowerCase();
24271                if (match[1].slice(0, 3) === "nth") {
24272                  if (!match[3]) {
24273                    find.error(match[0]);
24274                  }
24275                  match[4] = +(match[4] ? match[5] + (match[6] || 1) : 2 * (match[3] === "even" || match[3] === "odd"));
24276                  match[5] = +(match[7] + match[8] || match[3] === "odd");
24277                } else if (match[3]) {
24278                  find.error(match[0]);
24279                }
24280                return match;
24281              },
24282              PSEUDO: function(match) {
24283                var excess, unquoted = !match[6] && match[2];
24284                if (matchExpr.CHILD.test(match[0])) {
24285                  return null;
24286                }
24287                if (match[3]) {
24288                  match[2] = match[4] || match[5] || "";
24289                } else if (unquoted && rpseudo.test(unquoted) && // Get excess from tokenize (recursively)
24290                (excess = tokenize(unquoted, true)) && // advance to the next closing parenthesis
24291                (excess = unquoted.indexOf(")", unquoted.length - excess) - unquoted.length)) {
24292                  match[0] = match[0].slice(0, excess);
24293                  match[2] = unquoted.slice(0, excess);
24294                }
24295                return match.slice(0, 3);
24296              }
24297            },
24298            filter: {
24299              TAG: function(nodeNameSelector) {
24300                var expectedNodeName = nodeNameSelector.replace(runescape, funescape).toLowerCase();
24301                return nodeNameSelector === "*" ? function() {
24302                  return true;
24303                } : function(elem) {
24304                  return nodeName(elem, expectedNodeName);
24305                };
24306              },
24307              CLASS: function(className) {
24308                var pattern = classCache[className + " "];
24309                return pattern || (pattern = new RegExp("(^|" + whitespace + ")" + className + "(" + whitespace + "|$)")) && classCache(className, function(elem) {
24310                  return pattern.test(
24311                    typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || ""
24312                  );
24313                });
24314              },
24315              ATTR: function(name, operator, check) {
24316                return function(elem) {
24317                  var result = find.attr(elem, name);
24318                  if (result == null) {
24319                    return operator === "!=";
24320                  }
24321                  if (!operator) {
24322                    return true;
24323                  }
24324                  result += "";
24325                  if (operator === "=") {
24326                    return result === check;
24327                  }
24328                  if (operator === "!=") {
24329                    return result !== check;
24330                  }
24331                  if (operator === "^=") {
24332                    return check && result.indexOf(check) === 0;
24333                  }
24334                  if (operator === "*=") {
24335                    return check && result.indexOf(check) > -1;
24336                  }
24337                  if (operator === "$=") {
24338                    return check && result.slice(-check.length) === check;
24339                  }
24340                  if (operator === "~=") {
24341                    return (" " + result.replace(rwhitespace, " ") + " ").indexOf(check) > -1;
24342                  }
24343                  if (operator === "|=") {
24344                    return result === check || result.slice(0, check.length + 1) === check + "-";
24345                  }
24346                  return false;
24347                };
24348              },
24349              CHILD: function(type, what, _argument, first, last) {
24350                var simple = type.slice(0, 3) !== "nth", forward = type.slice(-4) !== "last", ofType = what === "of-type";
24351                return first === 1 && last === 0 ? (
24352                  // Shortcut for :nth-*(n)
24353                  function(elem) {
24354                    return !!elem.parentNode;
24355                  }
24356                ) : function(elem, _context5, xml) {
24357                  var cache, outerCache, node, nodeIndex, start, dir2 = simple !== forward ? "nextSibling" : "previousSibling", parent = elem.parentNode, name = ofType && elem.nodeName.toLowerCase(), useCache = !xml && !ofType, diff = false;
24358                  if (parent) {
24359                    if (simple) {
24360                      while (dir2) {
24361                        node = elem;
24362                        while (node = node[dir2]) {
24363                          if (ofType ? nodeName(node, name) : node.nodeType === 1) {
24364                            return false;
24365                          }
24366                        }
24367                        start = dir2 = type === "only" && !start && "nextSibling";
24368                      }
24369                      return true;
24370                    }
24371                    start = [forward ? parent.firstChild : parent.lastChild];
24372                    if (forward && useCache) {
24373                      outerCache = parent[expando] || (parent[expando] = {});
24374                      cache = outerCache[type] || [];
24375                      nodeIndex = cache[0] === dirruns && cache[1];
24376                      diff = nodeIndex && cache[2];
24377                      node = nodeIndex && parent.childNodes[nodeIndex];
24378                      while (node = ++nodeIndex && node && node[dir2] || // Fallback to seeking `elem` from the start
24379                      (diff = nodeIndex = 0) || start.pop()) {
24380                        if (node.nodeType === 1 && ++diff && node === elem) {
24381                          outerCache[type] = [dirruns, nodeIndex, diff];
24382                          break;
24383                        }
24384                      }
24385                    } else {
24386                      if (useCache) {
24387                        outerCache = elem[expando] || (elem[expando] = {});
24388                        cache = outerCache[type] || [];
24389                        nodeIndex = cache[0] === dirruns && cache[1];
24390                        diff = nodeIndex;
24391                      }
24392                      if (diff === false) {
24393                        while (node = ++nodeIndex && node && node[dir2] || (diff = nodeIndex = 0) || start.pop()) {
24394                          if ((ofType ? nodeName(node, name) : node.nodeType === 1) && ++diff) {
24395                            if (useCache) {
24396                              outerCache = node[expando] || (node[expando] = {});
24397                              outerCache[type] = [dirruns, diff];
24398                            }
24399                            if (node === elem) {
24400                              break;
24401                            }
24402                          }
24403                        }
24404                      }
24405                    }
24406                    diff -= last;
24407                    return diff === first || diff % first === 0 && diff / first >= 0;
24408                  }
24409                };
24410              },
24411              PSEUDO: function(pseudo, argument) {
24412                var args, fn = Expr.pseudos[pseudo] || Expr.setFilters[pseudo.toLowerCase()] || find.error("unsupported pseudo: " + pseudo);
24413                if (fn[expando]) {
24414                  return fn(argument);
24415                }
24416                if (fn.length > 1) {
24417                  args = [pseudo, pseudo, "", argument];
24418                  return Expr.setFilters.hasOwnProperty(pseudo.toLowerCase()) ? markFunction(function(seed, matches2) {
24419                    var idx, matched = fn(seed, argument), i11 = matched.length;
24420                    while (i11--) {
24421                      idx = indexOf.call(seed, matched[i11]);
24422                      seed[idx] = !(matches2[idx] = matched[i11]);
24423                    }
24424                  }) : function(elem) {
24425                    return fn(elem, 0, args);
24426                  };
24427                }
24428                return fn;
24429              }
24430            },
24431            pseudos: {
24432              // Potentially complex pseudos
24433              not: markFunction(function(selector3) {
24434                var input = [], results = [], matcher = compile(selector3.replace(rtrimCSS, "$1"));
24435                return matcher[expando] ? markFunction(function(seed, matches2, _context5, xml) {
24436                  var elem, unmatched = matcher(seed, null, xml, []), i11 = seed.length;
24437                  while (i11--) {
24438                    if (elem = unmatched[i11]) {
24439                      seed[i11] = !(matches2[i11] = elem);
24440                    }
24441                  }
24442                }) : function(elem, _context5, xml) {
24443                  input[0] = elem;
24444                  matcher(input, null, xml, results);
24445                  input[0] = null;
24446                  return !results.pop();
24447                };
24448              }),
24449              has: markFunction(function(selector3) {
24450                return function(elem) {
24451                  return find(selector3, elem).length > 0;
24452                };
24453              }),
24454              contains: markFunction(function(text) {
24455                text = text.replace(runescape, funescape);
24456                return function(elem) {
24457                  return (elem.textContent || jQuery2.text(elem)).indexOf(text) > -1;
24458                };
24459              }),
24460              // "Whether an element is represented by a :lang() selector
24461              // is based solely on the element's language value
24462              // being equal to the identifier C,
24463              // or beginning with the identifier C immediately followed by "-".
24464              // The matching of C against the element's language value is performed case-insensitively.
24465              // The identifier C does not have to be a valid language name."
24466              // https://www.w3.org/TR/selectors/#lang-pseudo
24467              lang: markFunction(function(lang) {
24468                if (!ridentifier.test(lang || "")) {
24469                  find.error("unsupported lang: " + lang);
24470                }
24471                lang = lang.replace(runescape, funescape).toLowerCase();
24472                return function(elem) {
24473                  var elemLang;
24474                  do {
24475                    if (elemLang = documentIsHTML ? elem.lang : elem.getAttribute("xml:lang") || elem.getAttribute("lang")) {
24476                      elemLang = elemLang.toLowerCase();
24477                      return elemLang === lang || elemLang.indexOf(lang + "-") === 0;
24478                    }
24479                  } while ((elem = elem.parentNode) && elem.nodeType === 1);
24480                  return false;
24481                };
24482              }),
24483              // Miscellaneous
24484              target: function(elem) {
24485                var hash = window2.location && window2.location.hash;
24486                return hash && hash.slice(1) === elem.id;
24487              },
24488              root: function(elem) {
24489                return elem === documentElement2;
24490              },
24491              focus: function(elem) {
24492                return elem === safeActiveElement() && document3.hasFocus() && !!(elem.type || elem.href || ~elem.tabIndex);
24493              },
24494              // Boolean properties
24495              enabled: createDisabledPseudo(false),
24496              disabled: createDisabledPseudo(true),
24497              checked: function(elem) {
24498                return nodeName(elem, "input") && !!elem.checked || nodeName(elem, "option") && !!elem.selected;
24499              },
24500              selected: function(elem) {
24501                if (elem.parentNode) {
24502                  elem.parentNode.selectedIndex;
24503                }
24504                return elem.selected === true;
24505              },
24506              // Contents
24507              empty: function(elem) {
24508                for (elem = elem.firstChild; elem; elem = elem.nextSibling) {
24509                  if (elem.nodeType < 6) {
24510                    return false;
24511                  }
24512                }
24513                return true;
24514              },
24515              parent: function(elem) {
24516                return !Expr.pseudos.empty(elem);
24517              },
24518              // Element/input types
24519              header: function(elem) {
24520                return rheader.test(elem.nodeName);
24521              },
24522              input: function(elem) {
24523                return rinputs.test(elem.nodeName);
24524              },
24525              button: function(elem) {
24526                return nodeName(elem, "input") && elem.type === "button" || nodeName(elem, "button");
24527              },
24528              text: function(elem) {
24529                var attr;
24530                return nodeName(elem, "input") && elem.type === "text" && // Support: IE <10 only
24531                // New HTML5 attribute values (e.g., "search") appear
24532                // with elem.type === "text"
24533                ((attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text");
24534              },
24535              // Position-in-collection
24536              first: createPositionalPseudo(function() {
24537                return [0];
24538              }),
24539              last: createPositionalPseudo(function(_matchIndexes, length) {
24540                return [length - 1];
24541              }),
24542              eq: createPositionalPseudo(function(_matchIndexes, length, argument) {
24543                return [argument < 0 ? argument + length : argument];
24544              }),
24545              even: createPositionalPseudo(function(matchIndexes, length) {
24546                var i11 = 0;
24547                for (; i11 < length; i11 += 2) {
24548                  matchIndexes.push(i11);
24549                }
24550                return matchIndexes;
24551              }),
24552              odd: createPositionalPseudo(function(matchIndexes, length) {
24553                var i11 = 1;
24554                for (; i11 < length; i11 += 2) {
24555                  matchIndexes.push(i11);
24556                }
24557                return matchIndexes;
24558              }),
24559              lt: createPositionalPseudo(function(matchIndexes, length, argument) {
24560                var i11;
24561                if (argument < 0) {
24562                  i11 = argument + length;
24563                } else if (argument > length) {
24564                  i11 = length;
24565                } else {
24566                  i11 = argument;
24567                }
24568                for (; --i11 >= 0; ) {
24569                  matchIndexes.push(i11);
24570                }
24571                return matchIndexes;
24572              }),
24573              gt: createPositionalPseudo(function(matchIndexes, length, argument) {
24574                var i11 = argument < 0 ? argument + length : argument;
24575                for (; ++i11 < length; ) {
24576                  matchIndexes.push(i11);
24577                }
24578                return matchIndexes;
24579              })
24580            }
24581          };
24582          Expr.pseudos.nth = Expr.pseudos.eq;
24583          for (i10 in { radio: true, checkbox: true, file: true, password: true, image: true }) {
24584            Expr.pseudos[i10] = createInputPseudo(i10);
24585          }
24586          for (i10 in { submit: true, reset: true }) {
24587            Expr.pseudos[i10] = createButtonPseudo(i10);
24588          }
24589          function setFilters() {
24590          }
24591          setFilters.prototype = Expr.filters = Expr.pseudos;
24592          Expr.setFilters = new setFilters();
24593          function tokenize(selector3, parseOnly) {
24594            var matched, match, tokens, type, soFar, groups, preFilters, cached = tokenCache[selector3 + " "];
24595            if (cached) {
24596              return parseOnly ? 0 : cached.slice(0);
24597            }
24598            soFar = selector3;
24599            groups = [];
24600            preFilters = Expr.preFilter;
24601            while (soFar) {
24602              if (!matched || (match = rcomma.exec(soFar))) {
24603                if (match) {
24604                  soFar = soFar.slice(match[0].length) || soFar;
24605                }
24606                groups.push(tokens = []);
24607              }
24608              matched = false;
24609              if (match = rleadingCombinator.exec(soFar)) {
24610                matched = match.shift();
24611                tokens.push({
24612                  value: matched,
24613                  // Cast descendant combinators to space
24614                  type: match[0].replace(rtrimCSS, " ")
24615                });
24616                soFar = soFar.slice(matched.length);
24617              }
24618              for (type in Expr.filter) {
24619                if ((match = matchExpr[type].exec(soFar)) && (!preFilters[type] || (match = preFilters[type](match)))) {
24620                  matched = match.shift();
24621                  tokens.push({
24622                    value: matched,
24623                    type,
24624                    matches: match
24625                  });
24626                  soFar = soFar.slice(matched.length);
24627                }
24628              }
24629              if (!matched) {
24630                break;
24631              }
24632            }
24633            if (parseOnly) {
24634              return soFar.length;
24635            }
24636            return soFar ? find.error(selector3) : (
24637              // Cache the tokens
24638              tokenCache(selector3, groups).slice(0)
24639            );
24640          }
24641          function toSelector(tokens) {
24642            var i11 = 0, len = tokens.length, selector3 = "";
24643            for (; i11 < len; i11++) {
24644              selector3 += tokens[i11].value;
24645            }
24646            return selector3;
24647          }
24648          function addCombinator(matcher, combinator, base) {
24649            var dir2 = combinator.dir, skip = combinator.next, key = skip || dir2, checkNonElements = base && key === "parentNode", doneName = done++;
24650            return combinator.first ? (
24651              // Check against closest ancestor/preceding element
24652              function(elem, context3, xml) {
24653                while (elem = elem[dir2]) {
24654                  if (elem.nodeType === 1 || checkNonElements) {
24655                    return matcher(elem, context3, xml);
24656                  }
24657                }
24658                return false;
24659              }
24660            ) : (
24661              // Check against all ancestor/preceding elements
24662              function(elem, context3, xml) {
24663                var oldCache, outerCache, newCache = [dirruns, doneName];
24664                if (xml) {
24665                  while (elem = elem[dir2]) {
24666                    if (elem.nodeType === 1 || checkNonElements) {
24667                      if (matcher(elem, context3, xml)) {
24668                        return true;
24669                      }
24670                    }
24671                  }
24672                } else {
24673                  while (elem = elem[dir2]) {
24674                    if (elem.nodeType === 1 || checkNonElements) {
24675                      outerCache = elem[expando] || (elem[expando] = {});
24676                      if (skip && nodeName(elem, skip)) {
24677                        elem = elem[dir2] || elem;
24678                      } else if ((oldCache = outerCache[key]) && oldCache[0] === dirruns && oldCache[1] === doneName) {
24679                        return newCache[2] = oldCache[2];
24680                      } else {
24681                        outerCache[key] = newCache;
24682                        if (newCache[2] = matcher(elem, context3, xml)) {
24683                          return true;
24684                        }
24685                      }
24686                    }
24687                  }
24688                }
24689                return false;
24690              }
24691            );
24692          }
24693          function elementMatcher(matchers) {
24694            return matchers.length > 1 ? function(elem, context3, xml) {
24695              var i11 = matchers.length;
24696              while (i11--) {
24697                if (!matchers[i11](elem, context3, xml)) {
24698                  return false;
24699                }
24700              }
24701              return true;
24702            } : matchers[0];
24703          }
24704          function multipleContexts(selector3, contexts, results) {
24705            var i11 = 0, len = contexts.length;
24706            for (; i11 < len; i11++) {
24707              find(selector3, contexts[i11], results);
24708            }
24709            return results;
24710          }
24711          function condense(unmatched, map, filter, context3, xml) {
24712            var elem, newUnmatched = [], i11 = 0, len = unmatched.length, mapped = map != null;
24713            for (; i11 < len; i11++) {
24714              if (elem = unmatched[i11]) {
24715                if (!filter || filter(elem, context3, xml)) {
24716                  newUnmatched.push(elem);
24717                  if (mapped) {
24718                    map.push(i11);
24719                  }
24720                }
24721              }
24722            }
24723            return newUnmatched;
24724          }
24725          function setMatcher(preFilter, selector3, matcher, postFilter, postFinder, postSelector) {
24726            if (postFilter && !postFilter[expando]) {
24727              postFilter = setMatcher(postFilter);
24728            }
24729            if (postFinder && !postFinder[expando]) {
24730              postFinder = setMatcher(postFinder, postSelector);
24731            }
24732            return markFunction(function(seed, results, context3, xml) {
24733              var temp, i11, elem, matcherOut, preMap = [], postMap = [], preexisting = results.length, elems = seed || multipleContexts(
24734                selector3 || "*",
24735                context3.nodeType ? [context3] : context3,
24736                []
24737              ), matcherIn = preFilter && (seed || !selector3) ? condense(elems, preMap, preFilter, context3, xml) : elems;
24738              if (matcher) {
24739                matcherOut = postFinder || (seed ? preFilter : preexisting || postFilter) ? (
24740                  // ...intermediate processing is necessary
24741                  []
24742                ) : (
24743                  // ...otherwise use results directly
24744                  results
24745                );
24746                matcher(matcherIn, matcherOut, context3, xml);
24747              } else {
24748                matcherOut = matcherIn;
24749              }
24750              if (postFilter) {
24751                temp = condense(matcherOut, postMap);
24752                postFilter(temp, [], context3, xml);
24753                i11 = temp.length;
24754                while (i11--) {
24755                  if (elem = temp[i11]) {
24756                    matcherOut[postMap[i11]] = !(matcherIn[postMap[i11]] = elem);
24757                  }
24758                }
24759              }
24760              if (seed) {
24761                if (postFinder || preFilter) {
24762                  if (postFinder) {
24763                    temp = [];
24764                    i11 = matcherOut.length;
24765                    while (i11--) {
24766                      if (elem = matcherOut[i11]) {
24767                        temp.push(matcherIn[i11] = elem);
24768                      }
24769                    }
24770                    postFinder(null, matcherOut = [], temp, xml);
24771                  }
24772                  i11 = matcherOut.length;
24773                  while (i11--) {
24774                    if ((elem = matcherOut[i11]) && (temp = postFinder ? indexOf.call(seed, elem) : preMap[i11]) > -1) {
24775                      seed[temp] = !(results[temp] = elem);
24776                    }
24777                  }
24778                }
24779              } else {
24780                matcherOut = condense(
24781                  matcherOut === results ? matcherOut.splice(preexisting, matcherOut.length) : matcherOut
24782                );
24783                if (postFinder) {
24784                  postFinder(null, results, matcherOut, xml);
24785                } else {
24786                  push2.apply(results, matcherOut);
24787                }
24788              }
24789            });
24790          }
24791          function matcherFromTokens(tokens) {
24792            var checkContext, matcher, j2, len = tokens.length, leadingRelative = Expr.relative[tokens[0].type], implicitRelative = leadingRelative || Expr.relative[" "], i11 = leadingRelative ? 1 : 0, matchContext = addCombinator(function(elem) {
24793              return elem === checkContext;
24794            }, implicitRelative, true), matchAnyContext = addCombinator(function(elem) {
24795              return indexOf.call(checkContext, elem) > -1;
24796            }, implicitRelative, true), matchers = [function(elem, context3, xml) {
24797              var ret = !leadingRelative && (xml || context3 != outermostContext) || ((checkContext = context3).nodeType ? matchContext(elem, context3, xml) : matchAnyContext(elem, context3, xml));
24798              checkContext = null;
24799              return ret;
24800            }];
24801            for (; i11 < len; i11++) {
24802              if (matcher = Expr.relative[tokens[i11].type]) {
24803                matchers = [addCombinator(elementMatcher(matchers), matcher)];
24804              } else {
24805                matcher = Expr.filter[tokens[i11].type].apply(null, tokens[i11].matches);
24806                if (matcher[expando]) {
24807                  j2 = ++i11;
24808                  for (; j2 < len; j2++) {
24809                    if (Expr.relative[tokens[j2].type]) {
24810                      break;
24811                    }
24812                  }
24813                  return setMatcher(
24814                    i11 > 1 && elementMatcher(matchers),
24815                    i11 > 1 && toSelector(
24816                      // If the preceding token was a descendant combinator, insert an implicit any-element `*`
24817                      tokens.slice(0, i11 - 1).concat({ value: tokens[i11 - 2].type === " " ? "*" : "" })
24818                    ).replace(rtrimCSS, "$1"),
24819                    matcher,
24820                    i11 < j2 && matcherFromTokens(tokens.slice(i11, j2)),
24821                    j2 < len && matcherFromTokens(tokens = tokens.slice(j2)),
24822                    j2 < len && toSelector(tokens)
24823                  );
24824                }
24825                matchers.push(matcher);
24826              }
24827            }
24828            return elementMatcher(matchers);
24829          }
24830          function matcherFromGroupMatchers(elementMatchers, setMatchers) {
24831            var bySet = setMatchers.length > 0, byElement = elementMatchers.length > 0, superMatcher = function(seed, context3, xml, results, outermost) {
24832              var elem, j2, matcher, matchedCount = 0, i11 = "0", unmatched = seed && [], setMatched = [], contextBackup = outermostContext, elems = seed || byElement && Expr.find.TAG("*", outermost), dirrunsUnique = dirruns += contextBackup == null ? 1 : Math.random() || 0.1, len = elems.length;
24833              if (outermost) {
24834                outermostContext = context3 == document3 || context3 || outermost;
24835              }
24836              for (; i11 !== len && (elem = elems[i11]) != null; i11++) {
24837                if (byElement && elem) {
24838                  j2 = 0;
24839                  if (!context3 && elem.ownerDocument != document3) {
24840                    setDocument(elem);
24841                    xml = !documentIsHTML;
24842                  }
24843                  while (matcher = elementMatchers[j2++]) {
24844                    if (matcher(elem, context3 || document3, xml)) {
24845                      push2.call(results, elem);
24846                      break;
24847                    }
24848                  }
24849                  if (outermost) {
24850                    dirruns = dirrunsUnique;
24851                  }
24852                }
24853                if (bySet) {
24854                  if (elem = !matcher && elem) {
24855                    matchedCount--;
24856                  }
24857                  if (seed) {
24858                    unmatched.push(elem);
24859                  }
24860                }
24861              }
24862              matchedCount += i11;
24863              if (bySet && i11 !== matchedCount) {
24864                j2 = 0;
24865                while (matcher = setMatchers[j2++]) {
24866                  matcher(unmatched, setMatched, context3, xml);
24867                }
24868                if (seed) {
24869                  if (matchedCount > 0) {
24870                    while (i11--) {
24871                      if (!(unmatched[i11] || setMatched[i11])) {
24872                        setMatched[i11] = pop.call(results);
24873                      }
24874                    }
24875                  }
24876                  setMatched = condense(setMatched);
24877                }
24878                push2.apply(results, setMatched);
24879                if (outermost && !seed && setMatched.length > 0 && matchedCount + setMatchers.length > 1) {
24880                  jQuery2.uniqueSort(results);
24881                }
24882              }
24883              if (outermost) {
24884                dirruns = dirrunsUnique;
24885                outermostContext = contextBackup;
24886              }
24887              return unmatched;
24888            };
24889            return bySet ? markFunction(superMatcher) : superMatcher;
24890          }
24891          function compile(selector3, match) {
24892            var i11, setMatchers = [], elementMatchers = [], cached = compilerCache[selector3 + " "];
24893            if (!cached) {
24894              if (!match) {
24895                match = tokenize(selector3);
24896              }
24897              i11 = match.length;
24898              while (i11--) {
24899                cached = matcherFromTokens(match[i11]);
24900                if (cached[expando]) {
24901                  setMatchers.push(cached);
24902                } else {
24903                  elementMatchers.push(cached);
24904                }
24905              }
24906              cached = compilerCache(
24907                selector3,
24908                matcherFromGroupMatchers(elementMatchers, setMatchers)
24909              );
24910              cached.selector = selector3;
24911            }
24912            return cached;
24913          }
24914          function select2(selector3, context3, results, seed) {
24915            var i11, tokens, token, type, find2, compiled = typeof selector3 === "function" && selector3, match = !seed && tokenize(selector3 = compiled.selector || selector3);
24916            results = results || [];
24917            if (match.length === 1) {
24918              tokens = match[0] = match[0].slice(0);
24919              if (tokens.length > 2 && (token = tokens[0]).type === "ID" && context3.nodeType === 9 && documentIsHTML && Expr.relative[tokens[1].type]) {
24920                context3 = (Expr.find.ID(
24921                  token.matches[0].replace(runescape, funescape),
24922                  context3
24923                ) || [])[0];
24924                if (!context3) {
24925                  return results;
24926                } else if (compiled) {
24927                  context3 = context3.parentNode;
24928                }
24929                selector3 = selector3.slice(tokens.shift().value.length);
24930              }
24931              i11 = matchExpr.needsContext.test(selector3) ? 0 : tokens.length;
24932              while (i11--) {
24933                token = tokens[i11];
24934                if (Expr.relative[type = token.type]) {
24935                  break;
24936                }
24937                if (find2 = Expr.find[type]) {
24938                  if (seed = find2(
24939                    token.matches[0].replace(runescape, funescape),
24940                    rsibling.test(tokens[0].type) && testContext(context3.parentNode) || context3
24941                  )) {
24942                    tokens.splice(i11, 1);
24943                    selector3 = seed.length && toSelector(tokens);
24944                    if (!selector3) {
24945                      push2.apply(results, seed);
24946                      return results;
24947                    }
24948                    break;
24949                  }
24950                }
24951              }
24952            }
24953            (compiled || compile(selector3, match))(
24954              seed,
24955              context3,
24956              !documentIsHTML,
24957              results,
24958              !context3 || rsibling.test(selector3) && testContext(context3.parentNode) || context3
24959            );
24960            return results;
24961          }
24962          support.sortStable = expando.split("").sort(sortOrder).join("") === expando;
24963          setDocument();
24964          support.sortDetached = assert(function(el) {
24965            return el.compareDocumentPosition(document3.createElement("fieldset")) & 1;
24966          });
24967          jQuery2.find = find;
24968          jQuery2.expr[":"] = jQuery2.expr.pseudos;
24969          jQuery2.unique = jQuery2.uniqueSort;
24970          find.compile = compile;
24971          find.select = select2;
24972          find.setDocument = setDocument;
24973          find.tokenize = tokenize;
24974          find.escape = jQuery2.escapeSelector;
24975          find.getText = jQuery2.text;
24976          find.isXML = jQuery2.isXMLDoc;
24977          find.selectors = jQuery2.expr;
24978          find.support = jQuery2.support;
24979          find.uniqueSort = jQuery2.uniqueSort;
24980        })();
24981        var dir = function(elem, dir2, until) {
24982          var matched = [], truncate = until !== void 0;
24983          while ((elem = elem[dir2]) && elem.nodeType !== 9) {
24984            if (elem.nodeType === 1) {
24985              if (truncate && jQuery2(elem).is(until)) {
24986                break;
24987              }
24988              matched.push(elem);
24989            }
24990          }
24991          return matched;
24992        };
24993        var siblings = function(n10, elem) {
24994          var matched = [];
24995          for (; n10; n10 = n10.nextSibling) {
24996            if (n10.nodeType === 1 && n10 !== elem) {
24997              matched.push(n10);
24998            }
24999          }
25000          return matched;
25001        };
25002        var rneedsContext = jQuery2.expr.match.needsContext;
25003        var rsingleTag = /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;
25004        function winnow(elements, qualifier, not) {
25005          if (isFunction(qualifier)) {
25006            return jQuery2.grep(elements, function(elem, i10) {
25007              return !!qualifier.call(elem, i10, elem) !== not;
25008            });
25009          }
25010          if (qualifier.nodeType) {
25011            return jQuery2.grep(elements, function(elem) {
25012              return elem === qualifier !== not;
25013            });
25014          }
25015          if (typeof qualifier !== "string") {
25016            return jQuery2.grep(elements, function(elem) {
25017              return indexOf.call(qualifier, elem) > -1 !== not;
25018            });
25019          }
25020          return jQuery2.filter(qualifier, elements, not);
25021        }
25022        jQuery2.filter = function(expr, elems, not) {
25023          var elem = elems[0];
25024          if (not) {
25025            expr = ":not(" + expr + ")";
25026          }
25027          if (elems.length === 1 && elem.nodeType === 1) {
25028            return jQuery2.find.matchesSelector(elem, expr) ? [elem] : [];
25029          }
25030          return jQuery2.find.matches(expr, jQuery2.grep(elems, function(elem2) {
25031            return elem2.nodeType === 1;
25032          }));
25033        };
25034        jQuery2.fn.extend({
25035          find: function(selector3) {
25036            var i10, ret, len = this.length, self2 = this;
25037            if (typeof selector3 !== "string") {
25038              return this.pushStack(jQuery2(selector3).filter(function() {
25039                for (i10 = 0; i10 < len; i10++) {
25040                  if (jQuery2.contains(self2[i10], this)) {
25041                    return true;
25042                  }
25043                }
25044              }));
25045            }
25046            ret = this.pushStack([]);
25047            for (i10 = 0; i10 < len; i10++) {
25048              jQuery2.find(selector3, self2[i10], ret);
25049            }
25050            return len > 1 ? jQuery2.uniqueSort(ret) : ret;
25051          },
25052          filter: function(selector3) {
25053            return this.pushStack(winnow(this, selector3 || [], false));
25054          },
25055          not: function(selector3) {
25056            return this.pushStack(winnow(this, selector3 || [], true));
25057          },
25058          is: function(selector3) {
25059            return !!winnow(
25060              this,
25061              // If this is a positional/relative selector, check membership in the returned set
25062              // so $("p:first").is("p:last") won't return true for a doc with two "p".
25063              typeof selector3 === "string" && rneedsContext.test(selector3) ? jQuery2(selector3) : selector3 || [],
25064              false
25065            ).length;
25066          }
25067        });
25068        var rootjQuery, rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/, init5 = jQuery2.fn.init = function(selector3, context3, root) {
25069          var match, elem;
25070          if (!selector3) {
25071            return this;
25072          }
25073          root = root || rootjQuery;
25074          if (typeof selector3 === "string") {
25075            if (selector3[0] === "<" && selector3[selector3.length - 1] === ">" && selector3.length >= 3) {
25076              match = [null, selector3, null];
25077            } else {
25078              match = rquickExpr.exec(selector3);
25079            }
25080            if (match && (match[1] || !context3)) {
25081              if (match[1]) {
25082                context3 = context3 instanceof jQuery2 ? context3[0] : context3;
25083                jQuery2.merge(this, jQuery2.parseHTML(
25084                  match[1],
25085                  context3 && context3.nodeType ? context3.ownerDocument || context3 : document2,
25086                  true
25087                ));
25088                if (rsingleTag.test(match[1]) && jQuery2.isPlainObject(context3)) {
25089                  for (match in context3) {
25090                    if (isFunction(this[match])) {
25091                      this[match](context3[match]);
25092                    } else {
25093                      this.attr(match, context3[match]);
25094                    }
25095                  }
25096                }
25097                return this;
25098              } else {
25099                elem = document2.getElementById(match[2]);
25100                if (elem) {
25101                  this[0] = elem;
25102                  this.length = 1;
25103                }
25104                return this;
25105              }
25106            } else if (!context3 || context3.jquery) {
25107              return (context3 || root).find(selector3);
25108            } else {
25109              return this.constructor(context3).find(selector3);
25110            }
25111          } else if (selector3.nodeType) {
25112            this[0] = selector3;
25113            this.length = 1;
25114            return this;
25115          } else if (isFunction(selector3)) {
25116            return root.ready !== void 0 ? root.ready(selector3) : (
25117              // Execute immediately if ready is not present
25118              selector3(jQuery2)
25119            );
25120          }
25121          return jQuery2.makeArray(selector3, this);
25122        };
25123        init5.prototype = jQuery2.fn;
25124        rootjQuery = jQuery2(document2);
25125        var rparentsprev = /^(?:parents|prev(?:Until|All))/, guaranteedUnique = {
25126          children: true,
25127          contents: true,
25128          next: true,
25129          prev: true
25130        };
25131        jQuery2.fn.extend({
25132          has: function(target) {
25133            var targets = jQuery2(target, this), l10 = targets.length;
25134            return this.filter(function() {
25135              var i10 = 0;
25136              for (; i10 < l10; i10++) {
25137                if (jQuery2.contains(this, targets[i10])) {
25138                  return true;
25139                }
25140              }
25141            });
25142          },
25143          closest: function(selectors, context3) {
25144            var cur, i10 = 0, l10 = this.length, matched = [], targets = typeof selectors !== "string" && jQuery2(selectors);
25145            if (!rneedsContext.test(selectors)) {
25146              for (; i10 < l10; i10++) {
25147                for (cur = this[i10]; cur && cur !== context3; cur = cur.parentNode) {
25148                  if (cur.nodeType < 11 && (targets ? targets.index(cur) > -1 : (
25149                    // Don't pass non-elements to jQuery#find
25150                    cur.nodeType === 1 && jQuery2.find.matchesSelector(cur, selectors)
25151                  ))) {
25152                    matched.push(cur);
25153                    break;
25154                  }
25155                }
25156              }
25157            }
25158            return this.pushStack(matched.length > 1 ? jQuery2.uniqueSort(matched) : matched);
25159          },
25160          // Determine the position of an element within the set
25161          index: function(elem) {
25162            if (!elem) {
25163              return this[0] && this[0].parentNode ? this.first().prevAll().length : -1;
25164            }
25165            if (typeof elem === "string") {
25166              return indexOf.call(jQuery2(elem), this[0]);
25167            }
25168            return indexOf.call(
25169              this,
25170              // If it receives a jQuery object, the first element is used
25171              elem.jquery ? elem[0] : elem
25172            );
25173          },
25174          add: function(selector3, context3) {
25175            return this.pushStack(
25176              jQuery2.uniqueSort(
25177                jQuery2.merge(this.get(), jQuery2(selector3, context3))
25178              )
25179            );
25180          },
25181          addBack: function(selector3) {
25182            return this.add(
25183              selector3 == null ? this.prevObject : this.prevObject.filter(selector3)
25184            );
25185          }
25186        });
25187        function sibling(cur, dir2) {
25188          while ((cur = cur[dir2]) && cur.nodeType !== 1) {
25189          }
25190          return cur;
25191        }
25192        jQuery2.each({
25193          parent: function(elem) {
25194            var parent = elem.parentNode;
25195            return parent && parent.nodeType !== 11 ? parent : null;
25196          },
25197          parents: function(elem) {
25198            return dir(elem, "parentNode");
25199          },
25200          parentsUntil: function(elem, _i2, until) {
25201            return dir(elem, "parentNode", until);
25202          },
25203          next: function(elem) {
25204            return sibling(elem, "nextSibling");
25205          },
25206          prev: function(elem) {
25207            return sibling(elem, "previousSibling");
25208          },
25209          nextAll: function(elem) {
25210            return dir(elem, "nextSibling");
25211          },
25212          prevAll: function(elem) {
25213            return dir(elem, "previousSibling");
25214          },
25215          nextUntil: function(elem, _i2, until) {
25216            return dir(elem, "nextSibling", until);
25217          },
25218          prevUntil: function(elem, _i2, until) {
25219            return dir(elem, "previousSibling", until);
25220          },
25221          siblings: function(elem) {
25222            return siblings((elem.parentNode || {}).firstChild, elem);
25223          },
25224          children: function(elem) {
25225            return siblings(elem.firstChild);
25226          },
25227          contents: function(elem) {
25228            if (elem.contentDocument != null && // Support: IE 11+
25229            // <object> elements with no `data` attribute has an object
25230            // `contentDocument` with a `null` prototype.
25231            getProto(elem.contentDocument)) {
25232              return elem.contentDocument;
25233            }
25234            if (nodeName(elem, "template")) {
25235              elem = elem.content || elem;
25236            }
25237            return jQuery2.merge([], elem.childNodes);
25238          }
25239        }, function(name, fn) {
25240          jQuery2.fn[name] = function(until, selector3) {
25241            var matched = jQuery2.map(this, fn, until);
25242            if (name.slice(-5) !== "Until") {
25243              selector3 = until;
25244            }
25245            if (selector3 && typeof selector3 === "string") {
25246              matched = jQuery2.filter(selector3, matched);
25247            }
25248            if (this.length > 1) {
25249              if (!guaranteedUnique[name]) {
25250                jQuery2.uniqueSort(matched);
25251              }
25252              if (rparentsprev.test(name)) {
25253                matched.reverse();
25254              }
25255            }
25256            return this.pushStack(matched);
25257          };
25258        });
25259        var rnothtmlwhite = /[^\x20\t\r\n\f]+/g;
25260        function createOptions(options) {
25261          var object = {};
25262          jQuery2.each(options.match(rnothtmlwhite) || [], function(_2, flag) {
25263            object[flag] = true;
25264          });
25265          return object;
25266        }
25267        jQuery2.Callbacks = function(options) {
25268          options = typeof options === "string" ? createOptions(options) : jQuery2.extend({}, options);
25269          var firing, memory, fired, locked, list = [], queue = [], firingIndex = -1, fire = function() {
25270            locked = locked || options.once;
25271            fired = firing = true;
25272            for (; queue.length; firingIndex = -1) {
25273              memory = queue.shift();
25274              while (++firingIndex < list.length) {
25275                if (list[firingIndex].apply(memory[0], memory[1]) === false && options.stopOnFalse) {
25276                  firingIndex = list.length;
25277                  memory = false;
25278                }
25279              }
25280            }
25281            if (!options.memory) {
25282              memory = false;
25283            }
25284            firing = false;
25285            if (locked) {
25286              if (memory) {
25287                list = [];
25288              } else {
25289                list = "";
25290              }
25291            }
25292          }, self2 = {
25293            // Add a callback or a collection of callbacks to the list
25294            add: function() {
25295              if (list) {
25296                if (memory && !firing) {
25297                  firingIndex = list.length - 1;
25298                  queue.push(memory);
25299                }
25300                (function add(args) {
25301                  jQuery2.each(args, function(_2, arg) {
25302                    if (isFunction(arg)) {
25303                      if (!options.unique || !self2.has(arg)) {
25304                        list.push(arg);
25305                      }
25306                    } else if (arg && arg.length && toType(arg) !== "string") {
25307                      add(arg);
25308                    }
25309                  });
25310                })(arguments);
25311                if (memory && !firing) {
25312                  fire();
25313                }
25314              }
25315              return this;
25316            },
25317            // Remove a callback from the list
25318            remove: function() {
25319              jQuery2.each(arguments, function(_2, arg) {
25320                var index;
25321                while ((index = jQuery2.inArray(arg, list, index)) > -1) {
25322                  list.splice(index, 1);
25323                  if (index <= firingIndex) {
25324                    firingIndex--;
25325                  }
25326                }
25327              });
25328              return this;
25329            },
25330            // Check if a given callback is in the list.
25331            // If no argument is given, return whether or not list has callbacks attached.
25332            has: function(fn) {
25333              return fn ? jQuery2.inArray(fn, list) > -1 : list.length > 0;
25334            },
25335            // Remove all callbacks from the list
25336            empty: function() {
25337              if (list) {
25338                list = [];
25339              }
25340              return this;
25341            },
25342            // Disable .fire and .add
25343            // Abort any current/pending executions
25344            // Clear all callbacks and values
25345            disable: function() {
25346              locked = queue = [];
25347              list = memory = "";
25348              return this;
25349            },
25350            disabled: function() {
25351              return !list;
25352            },
25353            // Disable .fire
25354            // Also disable .add unless we have memory (since it would have no effect)
25355            // Abort any pending executions
25356            lock: function() {
25357              locked = queue = [];
25358              if (!memory && !firing) {
25359                list = memory = "";
25360              }
25361              return this;
25362            },
25363            locked: function() {
25364              return !!locked;
25365            },
25366            // Call all callbacks with the given context and arguments
25367            fireWith: function(context3, args) {
25368              if (!locked) {
25369                args = args || [];
25370                args = [context3, args.slice ? args.slice() : args];
25371                queue.push(args);
25372                if (!firing) {
25373                  fire();
25374                }
25375              }
25376              return this;
25377            },
25378            // Call all the callbacks with the given arguments
25379            fire: function() {
25380              self2.fireWith(this, arguments);
25381              return this;
25382            },
25383            // To know if the callbacks have already been called at least once
25384            fired: function() {
25385              return !!fired;
25386            }
25387          };
25388          return self2;
25389        };
25390        function Identity(v3) {
25391          return v3;
25392        }
25393        function Thrower(ex) {
25394          throw ex;
25395        }
25396        function adoptValue(value, resolve, reject, noValue) {
25397          var method;
25398          try {
25399            if (value && isFunction(method = value.promise)) {
25400              method.call(value).done(resolve).fail(reject);
25401            } else if (value && isFunction(method = value.then)) {
25402              method.call(value, resolve, reject);
25403            } else {
25404              resolve.apply(void 0, [value].slice(noValue));
25405            }
25406          } catch (value2) {
25407            reject.apply(void 0, [value2]);
25408          }
25409        }
25410        jQuery2.extend({
25411          Deferred: function(func) {
25412            var tuples = [
25413              // action, add listener, callbacks,
25414              // ... .then handlers, argument index, [final state]
25415              [
25416                "notify",
25417                "progress",
25418                jQuery2.Callbacks("memory"),
25419                jQuery2.Callbacks("memory"),
25420                2
25421              ],
25422              [
25423                "resolve",
25424                "done",
25425                jQuery2.Callbacks("once memory"),
25426                jQuery2.Callbacks("once memory"),
25427                0,
25428                "resolved"
25429              ],
25430              [
25431                "reject",
25432                "fail",
25433                jQuery2.Callbacks("once memory"),
25434                jQuery2.Callbacks("once memory"),
25435                1,
25436                "rejected"
25437              ]
25438            ], state = "pending", promise = {
25439              state: function() {
25440                return state;
25441              },
25442              always: function() {
25443                deferred.done(arguments).fail(arguments);
25444                return this;
25445              },
25446              "catch": function(fn) {
25447                return promise.then(null, fn);
25448              },
25449              // Keep pipe for back-compat
25450              pipe: function() {
25451                var fns = arguments;
25452                return jQuery2.Deferred(function(newDefer) {
25453                  jQuery2.each(tuples, function(_i2, tuple) {
25454                    var fn = isFunction(fns[tuple[4]]) && fns[tuple[4]];
25455                    deferred[tuple[1]](function() {
25456                      var returned = fn && fn.apply(this, arguments);
25457                      if (returned && isFunction(returned.promise)) {
25458                        returned.promise().progress(newDefer.notify).done(newDefer.resolve).fail(newDefer.reject);
25459                      } else {
25460                        newDefer[tuple[0] + "With"](
25461                          this,
25462                          fn ? [returned] : arguments
25463                        );
25464                      }
25465                    });
25466                  });
25467                  fns = null;
25468                }).promise();
25469              },
25470              then: function(onFulfilled, onRejected, onProgress) {
25471                var maxDepth = 0;
25472                function resolve(depth, deferred2, handler, special) {
25473                  return function() {
25474                    var that = this, args = arguments, mightThrow = function() {
25475                      var returned, then;
25476                      if (depth < maxDepth) {
25477                        return;
25478                      }
25479                      returned = handler.apply(that, args);
25480                      if (returned === deferred2.promise()) {
25481                        throw new TypeError("Thenable self-resolution");
25482                      }
25483                      then = returned && // Support: Promises/A+ section 2.3.4
25484                      // https://promisesaplus.com/#point-64
25485                      // Only check objects and functions for thenability
25486                      (typeof returned === "object" || typeof returned === "function") && returned.then;
25487                      if (isFunction(then)) {
25488                        if (special) {
25489                          then.call(
25490                            returned,
25491                            resolve(maxDepth, deferred2, Identity, special),
25492                            resolve(maxDepth, deferred2, Thrower, special)
25493                          );
25494                        } else {
25495                          maxDepth++;
25496                          then.call(
25497                            returned,
25498                            resolve(maxDepth, deferred2, Identity, special),
25499                            resolve(maxDepth, deferred2, Thrower, special),
25500                            resolve(
25501                              maxDepth,
25502                              deferred2,
25503                              Identity,
25504                              deferred2.notifyWith
25505                            )
25506                          );
25507                        }
25508                      } else {
25509                        if (handler !== Identity) {
25510                          that = void 0;
25511                          args = [returned];
25512                        }
25513                        (special || deferred2.resolveWith)(that, args);
25514                      }
25515                    }, process = special ? mightThrow : function() {
25516                      try {
25517                        mightThrow();
25518                      } catch (e11) {
25519                        if (jQuery2.Deferred.exceptionHook) {
25520                          jQuery2.Deferred.exceptionHook(
25521                            e11,
25522                            process.error
25523                          );
25524                        }
25525                        if (depth + 1 >= maxDepth) {
25526                          if (handler !== Thrower) {
25527                            that = void 0;
25528                            args = [e11];
25529                          }
25530                          deferred2.rejectWith(that, args);
25531                        }
25532                      }
25533                    };
25534                    if (depth) {
25535                      process();
25536                    } else {
25537                      if (jQuery2.Deferred.getErrorHook) {
25538                        process.error = jQuery2.Deferred.getErrorHook();
25539                      } else if (jQuery2.Deferred.getStackHook) {
25540                        process.error = jQuery2.Deferred.getStackHook();
25541                      }
25542                      window2.setTimeout(process);
25543                    }
25544                  };
25545                }
25546                return jQuery2.Deferred(function(newDefer) {
25547                  tuples[0][3].add(
25548                    resolve(
25549                      0,
25550                      newDefer,
25551                      isFunction(onProgress) ? onProgress : Identity,
25552                      newDefer.notifyWith
25553                    )
25554                  );
25555                  tuples[1][3].add(
25556                    resolve(
25557                      0,
25558                      newDefer,
25559                      isFunction(onFulfilled) ? onFulfilled : Identity
25560                    )
25561                  );
25562                  tuples[2][3].add(
25563                    resolve(
25564                      0,
25565                      newDefer,
25566                      isFunction(onRejected) ? onRejected : Thrower
25567                    )
25568                  );
25569                }).promise();
25570              },
25571              // Get a promise for this deferred
25572              // If obj is provided, the promise aspect is added to the object
25573              promise: function(obj) {
25574                return obj != null ? jQuery2.extend(obj, promise) : promise;
25575              }
25576            }, deferred = {};
25577            jQuery2.each(tuples, function(i10, tuple) {
25578              var list = tuple[2], stateString = tuple[5];
25579              promise[tuple[1]] = list.add;
25580              if (stateString) {
25581                list.add(
25582                  function() {
25583                    state = stateString;
25584                  },
25585                  // rejected_callbacks.disable
25586                  // fulfilled_callbacks.disable
25587                  tuples[3 - i10][2].disable,
25588                  // rejected_handlers.disable
25589                  // fulfilled_handlers.disable
25590                  tuples[3 - i10][3].disable,
25591                  // progress_callbacks.lock
25592                  tuples[0][2].lock,
25593                  // progress_handlers.lock
25594                  tuples[0][3].lock
25595                );
25596              }
25597              list.add(tuple[3].fire);
25598              deferred[tuple[0]] = function() {
25599                deferred[tuple[0] + "With"](this === deferred ? void 0 : this, arguments);
25600                return this;
25601              };
25602              deferred[tuple[0] + "With"] = list.fireWith;
25603            });
25604            promise.promise(deferred);
25605            if (func) {
25606              func.call(deferred, deferred);
25607            }
25608            return deferred;
25609          },
25610          // Deferred helper
25611          when: function(singleValue) {
25612            var remaining = arguments.length, i10 = remaining, resolveContexts = Array(i10), resolveValues = slice.call(arguments), primary = jQuery2.Deferred(), updateFunc = function(i11) {
25613              return function(value) {
25614                resolveContexts[i11] = this;
25615                resolveValues[i11] = arguments.length > 1 ? slice.call(arguments) : value;
25616                if (!--remaining) {
25617                  primary.resolveWith(resolveContexts, resolveValues);
25618                }
25619              };
25620            };
25621            if (remaining <= 1) {
25622              adoptValue(
25623                singleValue,
25624                primary.done(updateFunc(i10)).resolve,
25625                primary.reject,
25626                !remaining
25627              );
25628              if (primary.state() === "pending" || isFunction(resolveValues[i10] && resolveValues[i10].then)) {
25629                return primary.then();
25630              }
25631            }
25632            while (i10--) {
25633              adoptValue(resolveValues[i10], updateFunc(i10), primary.reject);
25634            }
25635            return primary.promise();
25636          }
25637        });
25638        var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;
25639        jQuery2.Deferred.exceptionHook = function(error, asyncError) {
25640          if (window2.console && window2.console.warn && error && rerrorNames.test(error.name)) {
25641            window2.console.warn(
25642              "jQuery.Deferred exception: " + error.message,
25643              error.stack,
25644              asyncError
25645            );
25646          }
25647        };
25648        jQuery2.readyException = function(error) {
25649          window2.setTimeout(function() {
25650            throw error;
25651          });
25652        };
25653        var readyList = jQuery2.Deferred();
25654        jQuery2.fn.ready = function(fn) {
25655          readyList.then(fn).catch(function(error) {
25656            jQuery2.readyException(error);
25657          });
25658          return this;
25659        };
25660        jQuery2.extend({
25661          // Is the DOM ready to be used? Set to true once it occurs.
25662          isReady: false,
25663          // A counter to track how many items to wait for before
25664          // the ready event fires. See trac-6781
25665          readyWait: 1,
25666          // Handle when the DOM is ready
25667          ready: function(wait2) {
25668            if (wait2 === true ? --jQuery2.readyWait : jQuery2.isReady) {
25669              return;
25670            }
25671            jQuery2.isReady = true;
25672            if (wait2 !== true && --jQuery2.readyWait > 0) {
25673              return;
25674            }
25675            readyList.resolveWith(document2, [jQuery2]);
25676          }
25677        });
25678        jQuery2.ready.then = readyList.then;
25679        function completed() {
25680          document2.removeEventListener("DOMContentLoaded", completed);
25681          window2.removeEventListener("load", completed);
25682          jQuery2.ready();
25683        }
25684        if (document2.readyState === "complete" || document2.readyState !== "loading" && !document2.documentElement.doScroll) {
25685          window2.setTimeout(jQuery2.ready);
25686        } else {
25687          document2.addEventListener("DOMContentLoaded", completed);
25688          window2.addEventListener("load", completed);
25689        }
25690        var access = function(elems, fn, key, value, chainable, emptyGet, raw) {
25691          var i10 = 0, len = elems.length, bulk = key == null;
25692          if (toType(key) === "object") {
25693            chainable = true;
25694            for (i10 in key) {
25695              access(elems, fn, i10, key[i10], true, emptyGet, raw);
25696            }
25697          } else if (value !== void 0) {
25698            chainable = true;
25699            if (!isFunction(value)) {
25700              raw = true;
25701            }
25702            if (bulk) {
25703              if (raw) {
25704                fn.call(elems, value);
25705                fn = null;
25706              } else {
25707                bulk = fn;
25708                fn = function(elem, _key, value2) {
25709                  return bulk.call(jQuery2(elem), value2);
25710                };
25711              }
25712            }
25713            if (fn) {
25714              for (; i10 < len; i10++) {
25715                fn(
25716                  elems[i10],
25717                  key,
25718                  raw ? value : value.call(elems[i10], i10, fn(elems[i10], key))
25719                );
25720              }
25721            }
25722          }
25723          if (chainable) {
25724            return elems;
25725          }
25726          if (bulk) {
25727            return fn.call(elems);
25728          }
25729          return len ? fn(elems[0], key) : emptyGet;
25730        };
25731        var rmsPrefix = /^-ms-/, rdashAlpha = /-([a-z])/g;
25732        function fcamelCase(_all, letter) {
25733          return letter.toUpperCase();
25734        }
25735        function camelCase(string) {
25736          return string.replace(rmsPrefix, "ms-").replace(rdashAlpha, fcamelCase);
25737        }
25738        var acceptData = function(owner) {
25739          return owner.nodeType === 1 || owner.nodeType === 9 || !+owner.nodeType;
25740        };
25741        function Data() {
25742          this.expando = jQuery2.expando + Data.uid++;
25743        }
25744        Data.uid = 1;
25745        Data.prototype = {
25746          cache: function(owner) {
25747            var value = owner[this.expando];
25748            if (!value) {
25749              value = {};
25750              if (acceptData(owner)) {
25751                if (owner.nodeType) {
25752                  owner[this.expando] = value;
25753                } else {
25754                  Object.defineProperty(owner, this.expando, {
25755                    value,
25756                    configurable: true
25757                  });
25758                }
25759              }
25760            }
25761            return value;
25762          },
25763          set: function(owner, data, value) {
25764            var prop, cache = this.cache(owner);
25765            if (typeof data === "string") {
25766              cache[camelCase(data)] = value;
25767            } else {
25768              for (prop in data) {
25769                cache[camelCase(prop)] = data[prop];
25770              }
25771            }
25772            return cache;
25773          },
25774          get: function(owner, key) {
25775            return key === void 0 ? this.cache(owner) : (
25776              // Always use camelCase key (gh-2257)
25777              owner[this.expando] && owner[this.expando][camelCase(key)]
25778            );
25779          },
25780          access: function(owner, key, value) {
25781            if (key === void 0 || key && typeof key === "string" && value === void 0) {
25782              return this.get(owner, key);
25783            }
25784            this.set(owner, key, value);
25785            return value !== void 0 ? value : key;
25786          },
25787          remove: function(owner, key) {
25788            var i10, cache = owner[this.expando];
25789            if (cache === void 0) {
25790              return;
25791            }
25792            if (key !== void 0) {
25793              if (Array.isArray(key)) {
25794                key = key.map(camelCase);
25795              } else {
25796                key = camelCase(key);
25797                key = key in cache ? [key] : key.match(rnothtmlwhite) || [];
25798              }
25799              i10 = key.length;
25800              while (i10--) {
25801                delete cache[key[i10]];
25802              }
25803            }
25804            if (key === void 0 || jQuery2.isEmptyObject(cache)) {
25805              if (owner.nodeType) {
25806                owner[this.expando] = void 0;
25807              } else {
25808                delete owner[this.expando];
25809              }
25810            }
25811          },
25812          hasData: function(owner) {
25813            var cache = owner[this.expando];
25814            return cache !== void 0 && !jQuery2.isEmptyObject(cache);
25815          }
25816        };
25817        var dataPriv = new Data();
25818        var dataUser = new Data();
25819        var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, rmultiDash = /[A-Z]/g;
25820        function getData(data) {
25821          if (data === "true") {
25822            return true;
25823          }
25824          if (data === "false") {
25825            return false;
25826          }
25827          if (data === "null") {
25828            return null;
25829          }
25830          if (data === +data + "") {
25831            return +data;
25832          }
25833          if (rbrace.test(data)) {
25834            return JSON.parse(data);
25835          }
25836          return data;
25837        }
25838        function dataAttr(elem, key, data) {
25839          var name;
25840          if (data === void 0 && elem.nodeType === 1) {
25841            name = "data-" + key.replace(rmultiDash, "-$&").toLowerCase();
25842            data = elem.getAttribute(name);
25843            if (typeof data === "string") {
25844              try {
25845                data = getData(data);
25846              } catch (e11) {
25847              }
25848              dataUser.set(elem, key, data);
25849            } else {
25850              data = void 0;
25851            }
25852          }
25853          return data;
25854        }
25855        jQuery2.extend({
25856          hasData: function(elem) {
25857            return dataUser.hasData(elem) || dataPriv.hasData(elem);
25858          },
25859          data: function(elem, name, data) {
25860            return dataUser.access(elem, name, data);
25861          },
25862          removeData: function(elem, name) {
25863            dataUser.remove(elem, name);
25864          },
25865          // TODO: Now that all calls to _data and _removeData have been replaced
25866          // with direct calls to dataPriv methods, these can be deprecated.
25867          _data: function(elem, name, data) {
25868            return dataPriv.access(elem, name, data);
25869          },
25870          _removeData: function(elem, name) {
25871            dataPriv.remove(elem, name);
25872          }
25873        });
25874        jQuery2.fn.extend({
25875          data: function(key, value) {
25876            var i10, name, data, elem = this[0], attrs = elem && elem.attributes;
25877            if (key === void 0) {
25878              if (this.length) {
25879                data = dataUser.get(elem);
25880                if (elem.nodeType === 1 && !dataPriv.get(elem, "hasDataAttrs")) {
25881                  i10 = attrs.length;
25882                  while (i10--) {
25883                    if (attrs[i10]) {
25884                      name = attrs[i10].name;
25885                      if (name.indexOf("data-") === 0) {
25886                        name = camelCase(name.slice(5));
25887                        dataAttr(elem, name, data[name]);
25888                      }
25889                    }
25890                  }
25891                  dataPriv.set(elem, "hasDataAttrs", true);
25892                }
25893              }
25894              return data;
25895            }
25896            if (typeof key === "object") {
25897              return this.each(function() {
25898                dataUser.set(this, key);
25899              });
25900            }
25901            return access(this, function(value2) {
25902              var data2;
25903              if (elem && value2 === void 0) {
25904                data2 = dataUser.get(elem, key);
25905                if (data2 !== void 0) {
25906                  return data2;
25907                }
25908                data2 = dataAttr(elem, key);
25909                if (data2 !== void 0) {
25910                  return data2;
25911                }
25912                return;
25913              }
25914              this.each(function() {
25915                dataUser.set(this, key, value2);
25916              });
25917            }, null, value, arguments.length > 1, null, true);
25918          },
25919          removeData: function(key) {
25920            return this.each(function() {
25921              dataUser.remove(this, key);
25922            });
25923          }
25924        });
25925        jQuery2.extend({
25926          queue: function(elem, type, data) {
25927            var queue;
25928            if (elem) {
25929              type = (type || "fx") + "queue";
25930              queue = dataPriv.get(elem, type);
25931              if (data) {
25932                if (!queue || Array.isArray(data)) {
25933                  queue = dataPriv.access(elem, type, jQuery2.makeArray(data));
25934                } else {
25935                  queue.push(data);
25936                }
25937              }
25938              return queue || [];
25939            }
25940          },
25941          dequeue: function(elem, type) {
25942            type = type || "fx";
25943            var queue = jQuery2.queue(elem, type), startLength = queue.length, fn = queue.shift(), hooks = jQuery2._queueHooks(elem, type), next = function() {
25944              jQuery2.dequeue(elem, type);
25945            };
25946            if (fn === "inprogress") {
25947              fn = queue.shift();
25948              startLength--;
25949            }
25950            if (fn) {
25951              if (type === "fx") {
25952                queue.unshift("inprogress");
25953              }
25954              delete hooks.stop;
25955              fn.call(elem, next, hooks);
25956            }
25957            if (!startLength && hooks) {
25958              hooks.empty.fire();
25959            }
25960          },
25961          // Not public - generate a queueHooks object, or return the current one
25962          _queueHooks: function(elem, type) {
25963            var key = type + "queueHooks";
25964            return dataPriv.get(elem, key) || dataPriv.access(elem, key, {
25965              empty: jQuery2.Callbacks("once memory").add(function() {
25966                dataPriv.remove(elem, [type + "queue", key]);
25967              })
25968            });
25969          }
25970        });
25971        jQuery2.fn.extend({
25972          queue: function(type, data) {
25973            var setter = 2;
25974            if (typeof type !== "string") {
25975              data = type;
25976              type = "fx";
25977              setter--;
25978            }
25979            if (arguments.length < setter) {
25980              return jQuery2.queue(this[0], type);
25981            }
25982            return data === void 0 ? this : this.each(function() {
25983              var queue = jQuery2.queue(this, type, data);
25984              jQuery2._queueHooks(this, type);
25985              if (type === "fx" && queue[0] !== "inprogress") {
25986                jQuery2.dequeue(this, type);
25987              }
25988            });
25989          },
25990          dequeue: function(type) {
25991            return this.each(function() {
25992              jQuery2.dequeue(this, type);
25993            });
25994          },
25995          clearQueue: function(type) {
25996            return this.queue(type || "fx", []);
25997          },
25998          // Get a promise resolved when queues of a certain type
25999          // are emptied (fx is the type by default)
26000          promise: function(type, obj) {
26001            var tmp, count = 1, defer = jQuery2.Deferred(), elements = this, i10 = this.length, resolve = function() {
26002              if (!--count) {
26003                defer.resolveWith(elements, [elements]);
26004              }
26005            };
26006            if (typeof type !== "string") {
26007              obj = type;
26008              type = void 0;
26009            }
26010            type = type || "fx";
26011            while (i10--) {
26012              tmp = dataPriv.get(elements[i10], type + "queueHooks");
26013              if (tmp && tmp.empty) {
26014                count++;
26015                tmp.empty.add(resolve);
26016              }
26017            }
26018            resolve();
26019            return defer.promise(obj);
26020          }
26021        });
26022        var pnum = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source;
26023        var rcssNum = new RegExp("^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i");
26024        var cssExpand = ["Top", "Right", "Bottom", "Left"];
26025        var documentElement = document2.documentElement;
26026        var isAttached = function(elem) {
26027          return jQuery2.contains(elem.ownerDocument, elem);
26028        }, composed = { composed: true };
26029        if (documentElement.getRootNode) {
26030          isAttached = function(elem) {
26031            return jQuery2.contains(elem.ownerDocument, elem) || elem.getRootNode(composed) === elem.ownerDocument;
26032          };
26033        }
26034        var isHiddenWithinTree = function(elem, el) {
26035          elem = el || elem;
26036          return elem.style.display === "none" || elem.style.display === "" && // Otherwise, check computed style
26037          // Support: Firefox <=43 - 45
26038          // Disconnected elements can have computed display: none, so first confirm that elem is
26039          // in the document.
26040          isAttached(elem) && jQuery2.css(elem, "display") === "none";
26041        };
26042        function adjustCSS(elem, prop, valueParts, tween) {
26043          var adjusted, scale, maxIterations = 20, currentValue = tween ? function() {
26044            return tween.cur();
26045          } : function() {
26046            return jQuery2.css(elem, prop, "");
26047          }, initial = currentValue(), unit = valueParts && valueParts[3] || (jQuery2.cssNumber[prop] ? "" : "px"), initialInUnit = elem.nodeType && (jQuery2.cssNumber[prop] || unit !== "px" && +initial) && rcssNum.exec(jQuery2.css(elem, prop));
26048          if (initialInUnit && initialInUnit[3] !== unit) {
26049            initial = initial / 2;
26050            unit = unit || initialInUnit[3];
26051            initialInUnit = +initial || 1;
26052            while (maxIterations--) {
26053              jQuery2.style(elem, prop, initialInUnit + unit);
26054              if ((1 - scale) * (1 - (scale = currentValue() / initial || 0.5)) <= 0) {
26055                maxIterations = 0;
26056              }
26057              initialInUnit = initialInUnit / scale;
26058            }
26059            initialInUnit = initialInUnit * 2;
26060            jQuery2.style(elem, prop, initialInUnit + unit);
26061            valueParts = valueParts || [];
26062          }
26063          if (valueParts) {
26064            initialInUnit = +initialInUnit || +initial || 0;
26065            adjusted = valueParts[1] ? initialInUnit + (valueParts[1] + 1) * valueParts[2] : +valueParts[2];
26066            if (tween) {
26067              tween.unit = unit;
26068              tween.start = initialInUnit;
26069              tween.end = adjusted;
26070            }
26071          }
26072          return adjusted;
26073        }
26074        var defaultDisplayMap = {};
26075        function getDefaultDisplay(elem) {
26076          var temp, doc = elem.ownerDocument, nodeName2 = elem.nodeName, display = defaultDisplayMap[nodeName2];
26077          if (display) {
26078            return display;
26079          }
26080          temp = doc.body.appendChild(doc.createElement(nodeName2));
26081          display = jQuery2.css(temp, "display");
26082          temp.parentNode.removeChild(temp);
26083          if (display === "none") {
26084            display = "block";
26085          }
26086          defaultDisplayMap[nodeName2] = display;
26087          return display;
26088        }
26089        function showHide(elements, show) {
26090          var display, elem, values = [], index = 0, length = elements.length;
26091          for (; index < length; index++) {
26092            elem = elements[index];
26093            if (!elem.style) {
26094              continue;
26095            }
26096            display = elem.style.display;
26097            if (show) {
26098              if (display === "none") {
26099                values[index] = dataPriv.get(elem, "display") || null;
26100                if (!values[index]) {
26101                  elem.style.display = "";
26102                }
26103              }
26104              if (elem.style.display === "" && isHiddenWithinTree(elem)) {
26105                values[index] = getDefaultDisplay(elem);
26106              }
26107            } else {
26108              if (display !== "none") {
26109                values[index] = "none";
26110                dataPriv.set(elem, "display", display);
26111              }
26112            }
26113          }
26114          for (index = 0; index < length; index++) {
26115            if (values[index] != null) {
26116              elements[index].style.display = values[index];
26117            }
26118          }
26119          return elements;
26120        }
26121        jQuery2.fn.extend({
26122          show: function() {
26123            return showHide(this, true);
26124          },
26125          hide: function() {
26126            return showHide(this);
26127          },
26128          toggle: function(state) {
26129            if (typeof state === "boolean") {
26130              return state ? this.show() : this.hide();
26131            }
26132            return this.each(function() {
26133              if (isHiddenWithinTree(this)) {
26134                jQuery2(this).show();
26135              } else {
26136                jQuery2(this).hide();
26137              }
26138            });
26139          }
26140        });
26141        var rcheckableType = /^(?:checkbox|radio)$/i;
26142        var rtagName = /<([a-z][^\/\0>\x20\t\r\n\f]*)/i;
26143        var rscriptType = /^$|^module$|\/(?:java|ecma)script/i;
26144        (function() {
26145          var fragment = document2.createDocumentFragment(), div = fragment.appendChild(document2.createElement("div")), input = document2.createElement("input");
26146          input.setAttribute("type", "radio");
26147          input.setAttribute("checked", "checked");
26148          input.setAttribute("name", "t");
26149          div.appendChild(input);
26150          support.checkClone = div.cloneNode(true).cloneNode(true).lastChild.checked;
26151          div.innerHTML = "<textarea>x</textarea>";
26152          support.noCloneChecked = !!div.cloneNode(true).lastChild.defaultValue;
26153          div.innerHTML = "<option></option>";
26154          support.option = !!div.lastChild;
26155        })();
26156        var wrapMap = {
26157          // XHTML parsers do not magically insert elements in the
26158          // same way that tag soup parsers do. So we cannot shorten
26159          // this by omitting <tbody> or other required elements.
26160          thead: [1, "<table>", "</table>"],
26161          col: [2, "<table><colgroup>", "</colgroup></table>"],
26162          tr: [2, "<table><tbody>", "</tbody></table>"],
26163          td: [3, "<table><tbody><tr>", "</tr></tbody></table>"],
26164          _default: [0, "", ""]
26165        };
26166        wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
26167        wrapMap.th = wrapMap.td;
26168        if (!support.option) {
26169          wrapMap.optgroup = wrapMap.option = [1, "<select multiple='multiple'>", "</select>"];
26170        }
26171        function getAll(context3, tag) {
26172          var ret;
26173          if (typeof context3.getElementsByTagName !== "undefined") {
26174            ret = context3.getElementsByTagName(tag || "*");
26175          } else if (typeof context3.querySelectorAll !== "undefined") {
26176            ret = context3.querySelectorAll(tag || "*");
26177          } else {
26178            ret = [];
26179          }
26180          if (tag === void 0 || tag && nodeName(context3, tag)) {
26181            return jQuery2.merge([context3], ret);
26182          }
26183          return ret;
26184        }
26185        function setGlobalEval(elems, refElements) {
26186          var i10 = 0, l10 = elems.length;
26187          for (; i10 < l10; i10++) {
26188            dataPriv.set(
26189              elems[i10],
26190              "globalEval",
26191              !refElements || dataPriv.get(refElements[i10], "globalEval")
26192            );
26193          }
26194        }
26195        var rhtml = /<|&#?\w+;/;
26196        function buildFragment(elems, context3, scripts, selection, ignored) {
26197          var elem, tmp, tag, wrap3, attached, j2, fragment = context3.createDocumentFragment(), nodes = [], i10 = 0, l10 = elems.length;
26198          for (; i10 < l10; i10++) {
26199            elem = elems[i10];
26200            if (elem || elem === 0) {
26201              if (toType(elem) === "object") {
26202                jQuery2.merge(nodes, elem.nodeType ? [elem] : elem);
26203              } else if (!rhtml.test(elem)) {
26204                nodes.push(context3.createTextNode(elem));
26205              } else {
26206                tmp = tmp || fragment.appendChild(context3.createElement("div"));
26207                tag = (rtagName.exec(elem) || ["", ""])[1].toLowerCase();
26208                wrap3 = wrapMap[tag] || wrapMap._default;
26209                tmp.innerHTML = wrap3[1] + jQuery2.htmlPrefilter(elem) + wrap3[2];
26210                j2 = wrap3[0];
26211                while (j2--) {
26212                  tmp = tmp.lastChild;
26213                }
26214                jQuery2.merge(nodes, tmp.childNodes);
26215                tmp = fragment.firstChild;
26216                tmp.textContent = "";
26217              }
26218            }
26219          }
26220          fragment.textContent = "";
26221          i10 = 0;
26222          while (elem = nodes[i10++]) {
26223            if (selection && jQuery2.inArray(elem, selection) > -1) {
26224              if (ignored) {
26225                ignored.push(elem);
26226              }
26227              continue;
26228            }
26229            attached = isAttached(elem);
26230            tmp = getAll(fragment.appendChild(elem), "script");
26231            if (attached) {
26232              setGlobalEval(tmp);
26233            }
26234            if (scripts) {
26235              j2 = 0;
26236              while (elem = tmp[j2++]) {
26237                if (rscriptType.test(elem.type || "")) {
26238                  scripts.push(elem);
26239                }
26240              }
26241            }
26242          }
26243          return fragment;
26244        }
26245        var rtypenamespace = /^([^.]*)(?:\.(.+)|)/;
26246        function returnTrue() {
26247          return true;
26248        }
26249        function returnFalse() {
26250          return false;
26251        }
26252        function on(elem, types, selector3, data, fn, one) {
26253          var origFn, type;
26254          if (typeof types === "object") {
26255            if (typeof selector3 !== "string") {
26256              data = data || selector3;
26257              selector3 = void 0;
26258            }
26259            for (type in types) {
26260              on(elem, type, selector3, data, types[type], one);
26261            }
26262            return elem;
26263          }
26264          if (data == null && fn == null) {
26265            fn = selector3;
26266            data = selector3 = void 0;
26267          } else if (fn == null) {
26268            if (typeof selector3 === "string") {
26269              fn = data;
26270              data = void 0;
26271            } else {
26272              fn = data;
26273              data = selector3;
26274              selector3 = void 0;
26275            }
26276          }
26277          if (fn === false) {
26278            fn = returnFalse;
26279          } else if (!fn) {
26280            return elem;
26281          }
26282          if (one === 1) {
26283            origFn = fn;
26284            fn = function(event) {
26285              jQuery2().off(event);
26286              return origFn.apply(this, arguments);
26287            };
26288            fn.guid = origFn.guid || (origFn.guid = jQuery2.guid++);
26289          }
26290          return elem.each(function() {
26291            jQuery2.event.add(this, types, fn, data, selector3);
26292          });
26293        }
26294        jQuery2.event = {
26295          global: {},
26296          add: function(elem, types, handler, data, selector3) {
26297            var handleObjIn, eventHandle, tmp, events, t11, handleObj, special, handlers, type, namespaces, origType, elemData = dataPriv.get(elem);
26298            if (!acceptData(elem)) {
26299              return;
26300            }
26301            if (handler.handler) {
26302              handleObjIn = handler;
26303              handler = handleObjIn.handler;
26304              selector3 = handleObjIn.selector;
26305            }
26306            if (selector3) {
26307              jQuery2.find.matchesSelector(documentElement, selector3);
26308            }
26309            if (!handler.guid) {
26310              handler.guid = jQuery2.guid++;
26311            }
26312            if (!(events = elemData.events)) {
26313              events = elemData.events = /* @__PURE__ */ Object.create(null);
26314            }
26315            if (!(eventHandle = elemData.handle)) {
26316              eventHandle = elemData.handle = function(e11) {
26317                return typeof jQuery2 !== "undefined" && jQuery2.event.triggered !== e11.type ? jQuery2.event.dispatch.apply(elem, arguments) : void 0;
26318              };
26319            }
26320            types = (types || "").match(rnothtmlwhite) || [""];
26321            t11 = types.length;
26322            while (t11--) {
26323              tmp = rtypenamespace.exec(types[t11]) || [];
26324              type = origType = tmp[1];
26325              namespaces = (tmp[2] || "").split(".").sort();
26326              if (!type) {
26327                continue;
26328              }
26329              special = jQuery2.event.special[type] || {};
26330              type = (selector3 ? special.delegateType : special.bindType) || type;
26331              special = jQuery2.event.special[type] || {};
26332              handleObj = jQuery2.extend({
26333                type,
26334                origType,
26335                data,
26336                handler,
26337                guid: handler.guid,
26338                selector: selector3,
26339                needsContext: selector3 && jQuery2.expr.match.needsContext.test(selector3),
26340                namespace: namespaces.join(".")
26341              }, handleObjIn);
26342              if (!(handlers = events[type])) {
26343                handlers = events[type] = [];
26344                handlers.delegateCount = 0;
26345                if (!special.setup || special.setup.call(elem, data, namespaces, eventHandle) === false) {
26346                  if (elem.addEventListener) {
26347                    elem.addEventListener(type, eventHandle);
26348                  }
26349                }
26350              }
26351              if (special.add) {
26352                special.add.call(elem, handleObj);
26353                if (!handleObj.handler.guid) {
26354                  handleObj.handler.guid = handler.guid;
26355                }
26356              }
26357              if (selector3) {
26358                handlers.splice(handlers.delegateCount++, 0, handleObj);
26359              } else {
26360                handlers.push(handleObj);
26361              }
26362              jQuery2.event.global[type] = true;
26363            }
26364          },
26365          // Detach an event or set of events from an element
26366          remove: function(elem, types, handler, selector3, mappedTypes) {
26367            var j2, origCount, tmp, events, t11, handleObj, special, handlers, type, namespaces, origType, elemData = dataPriv.hasData(elem) && dataPriv.get(elem);
26368            if (!elemData || !(events = elemData.events)) {
26369              return;
26370            }
26371            types = (types || "").match(rnothtmlwhite) || [""];
26372            t11 = types.length;
26373            while (t11--) {
26374              tmp = rtypenamespace.exec(types[t11]) || [];
26375              type = origType = tmp[1];
26376              namespaces = (tmp[2] || "").split(".").sort();
26377              if (!type) {
26378                for (type in events) {
26379                  jQuery2.event.remove(elem, type + types[t11], handler, selector3, true);
26380                }
26381                continue;
26382              }
26383              special = jQuery2.event.special[type] || {};
26384              type = (selector3 ? special.delegateType : special.bindType) || type;
26385              handlers = events[type] || [];
26386              tmp = tmp[2] && new RegExp("(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)");
26387              origCount = j2 = handlers.length;
26388              while (j2--) {
26389                handleObj = handlers[j2];
26390                if ((mappedTypes || origType === handleObj.origType) && (!handler || handler.guid === handleObj.guid) && (!tmp || tmp.test(handleObj.namespace)) && (!selector3 || selector3 === handleObj.selector || selector3 === "**" && handleObj.selector)) {
26391                  handlers.splice(j2, 1);
26392                  if (handleObj.selector) {
26393                    handlers.delegateCount--;
26394                  }
26395                  if (special.remove) {
26396                    special.remove.call(elem, handleObj);
26397                  }
26398                }
26399              }
26400              if (origCount && !handlers.length) {
26401                if (!special.teardown || special.teardown.call(elem, namespaces, elemData.handle) === false) {
26402                  jQuery2.removeEvent(elem, type, elemData.handle);
26403                }
26404                delete events[type];
26405              }
26406            }
26407            if (jQuery2.isEmptyObject(events)) {
26408              dataPriv.remove(elem, "handle events");
26409            }
26410          },
26411          dispatch: function(nativeEvent) {
26412            var i10, j2, ret, matched, handleObj, handlerQueue, args = new Array(arguments.length), event = jQuery2.event.fix(nativeEvent), handlers = (dataPriv.get(this, "events") || /* @__PURE__ */ Object.create(null))[event.type] || [], special = jQuery2.event.special[event.type] || {};
26413            args[0] = event;
26414            for (i10 = 1; i10 < arguments.length; i10++) {
26415              args[i10] = arguments[i10];
26416            }
26417            event.delegateTarget = this;
26418            if (special.preDispatch && special.preDispatch.call(this, event) === false) {
26419              return;
26420            }
26421            handlerQueue = jQuery2.event.handlers.call(this, event, handlers);
26422            i10 = 0;
26423            while ((matched = handlerQueue[i10++]) && !event.isPropagationStopped()) {
26424              event.currentTarget = matched.elem;
26425              j2 = 0;
26426              while ((handleObj = matched.handlers[j2++]) && !event.isImmediatePropagationStopped()) {
26427                if (!event.rnamespace || handleObj.namespace === false || event.rnamespace.test(handleObj.namespace)) {
26428                  event.handleObj = handleObj;
26429                  event.data = handleObj.data;
26430                  ret = ((jQuery2.event.special[handleObj.origType] || {}).handle || handleObj.handler).apply(matched.elem, args);
26431                  if (ret !== void 0) {
26432                    if ((event.result = ret) === false) {
26433                      event.preventDefault();
26434                      event.stopPropagation();
26435                    }
26436                  }
26437                }
26438              }
26439            }
26440            if (special.postDispatch) {
26441              special.postDispatch.call(this, event);
26442            }
26443            return event.result;
26444          },
26445          handlers: function(event, handlers) {
26446            var i10, handleObj, sel, matchedHandlers, matchedSelectors, handlerQueue = [], delegateCount = handlers.delegateCount, cur = event.target;
26447            if (delegateCount && // Support: IE <=9
26448            // Black-hole SVG <use> instance trees (trac-13180)
26449            cur.nodeType && // Support: Firefox <=42
26450            // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)
26451            // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click
26452            // Support: IE 11 only
26453            // ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343)
26454            !(event.type === "click" && event.button >= 1)) {
26455              for (; cur !== this; cur = cur.parentNode || this) {
26456                if (cur.nodeType === 1 && !(event.type === "click" && cur.disabled === true)) {
26457                  matchedHandlers = [];
26458                  matchedSelectors = {};
26459                  for (i10 = 0; i10 < delegateCount; i10++) {
26460                    handleObj = handlers[i10];
26461                    sel = handleObj.selector + " ";
26462                    if (matchedSelectors[sel] === void 0) {
26463                      matchedSelectors[sel] = handleObj.needsContext ? jQuery2(sel, this).index(cur) > -1 : jQuery2.find(sel, this, null, [cur]).length;
26464                    }
26465                    if (matchedSelectors[sel]) {
26466                      matchedHandlers.push(handleObj);
26467                    }
26468                  }
26469                  if (matchedHandlers.length) {
26470                    handlerQueue.push({ elem: cur, handlers: matchedHandlers });
26471                  }
26472                }
26473              }
26474            }
26475            cur = this;
26476            if (delegateCount < handlers.length) {
26477              handlerQueue.push({ elem: cur, handlers: handlers.slice(delegateCount) });
26478            }
26479            return handlerQueue;
26480          },
26481          addProp: function(name, hook) {
26482            Object.defineProperty(jQuery2.Event.prototype, name, {
26483              enumerable: true,
26484              configurable: true,
26485              get: isFunction(hook) ? function() {
26486                if (this.originalEvent) {
26487                  return hook(this.originalEvent);
26488                }
26489              } : function() {
26490                if (this.originalEvent) {
26491                  return this.originalEvent[name];
26492                }
26493              },
26494              set: function(value) {
26495                Object.defineProperty(this, name, {
26496                  enumerable: true,
26497                  configurable: true,
26498                  writable: true,
26499                  value
26500                });
26501              }
26502            });
26503          },
26504          fix: function(originalEvent) {
26505            return originalEvent[jQuery2.expando] ? originalEvent : new jQuery2.Event(originalEvent);
26506          },
26507          special: {
26508            load: {
26509              // Prevent triggered image.load events from bubbling to window.load
26510              noBubble: true
26511            },
26512            click: {
26513              // Utilize native event to ensure correct state for checkable inputs
26514              setup: function(data) {
26515                var el = this || data;
26516                if (rcheckableType.test(el.type) && el.click && nodeName(el, "input")) {
26517                  leverageNative(el, "click", true);
26518                }
26519                return false;
26520              },
26521              trigger: function(data) {
26522                var el = this || data;
26523                if (rcheckableType.test(el.type) && el.click && nodeName(el, "input")) {
26524                  leverageNative(el, "click");
26525                }
26526                return true;
26527              },
26528              // For cross-browser consistency, suppress native .click() on links
26529              // Also prevent it if we're currently inside a leveraged native-event stack
26530              _default: function(event) {
26531                var target = event.target;
26532                return rcheckableType.test(target.type) && target.click && nodeName(target, "input") && dataPriv.get(target, "click") || nodeName(target, "a");
26533              }
26534            },
26535            beforeunload: {
26536              postDispatch: function(event) {
26537                if (event.result !== void 0 && event.originalEvent) {
26538                  event.originalEvent.returnValue = event.result;
26539                }
26540              }
26541            }
26542          }
26543        };
26544        function leverageNative(el, type, isSetup) {
26545          if (!isSetup) {
26546            if (dataPriv.get(el, type) === void 0) {
26547              jQuery2.event.add(el, type, returnTrue);
26548            }
26549            return;
26550          }
26551          dataPriv.set(el, type, false);
26552          jQuery2.event.add(el, type, {
26553            namespace: false,
26554            handler: function(event) {
26555              var result, saved = dataPriv.get(this, type);
26556              if (event.isTrigger & 1 && this[type]) {
26557                if (!saved) {
26558                  saved = slice.call(arguments);
26559                  dataPriv.set(this, type, saved);
26560                  this[type]();
26561                  result = dataPriv.get(this, type);
26562                  dataPriv.set(this, type, false);
26563                  if (saved !== result) {
26564                    event.stopImmediatePropagation();
26565                    event.preventDefault();
26566                    return result;
26567                  }
26568                } else if ((jQuery2.event.special[type] || {}).delegateType) {
26569                  event.stopPropagation();
26570                }
26571              } else if (saved) {
26572                dataPriv.set(this, type, jQuery2.event.trigger(
26573                  saved[0],
26574                  saved.slice(1),
26575                  this
26576                ));
26577                event.stopPropagation();
26578                event.isImmediatePropagationStopped = returnTrue;
26579              }
26580            }
26581          });
26582        }
26583        jQuery2.removeEvent = function(elem, type, handle) {
26584          if (elem.removeEventListener) {
26585            elem.removeEventListener(type, handle);
26586          }
26587        };
26588        jQuery2.Event = function(src, props) {
26589          if (!(this instanceof jQuery2.Event)) {
26590            return new jQuery2.Event(src, props);
26591          }
26592          if (src && src.type) {
26593            this.originalEvent = src;
26594            this.type = src.type;
26595            this.isDefaultPrevented = src.defaultPrevented || src.defaultPrevented === void 0 && // Support: Android <=2.3 only
26596            src.returnValue === false ? returnTrue : returnFalse;
26597            this.target = src.target && src.target.nodeType === 3 ? src.target.parentNode : src.target;
26598            this.currentTarget = src.currentTarget;
26599            this.relatedTarget = src.relatedTarget;
26600          } else {
26601            this.type = src;
26602          }
26603          if (props) {
26604            jQuery2.extend(this, props);
26605          }
26606          this.timeStamp = src && src.timeStamp || Date.now();
26607          this[jQuery2.expando] = true;
26608        };
26609        jQuery2.Event.prototype = {
26610          constructor: jQuery2.Event,
26611          isDefaultPrevented: returnFalse,
26612          isPropagationStopped: returnFalse,
26613          isImmediatePropagationStopped: returnFalse,
26614          isSimulated: false,
26615          preventDefault: function() {
26616            var e11 = this.originalEvent;
26617            this.isDefaultPrevented = returnTrue;
26618            if (e11 && !this.isSimulated) {
26619              e11.preventDefault();
26620            }
26621          },
26622          stopPropagation: function() {
26623            var e11 = this.originalEvent;
26624            this.isPropagationStopped = returnTrue;
26625            if (e11 && !this.isSimulated) {
26626              e11.stopPropagation();
26627            }
26628          },
26629          stopImmediatePropagation: function() {
26630            var e11 = this.originalEvent;
26631            this.isImmediatePropagationStopped = returnTrue;
26632            if (e11 && !this.isSimulated) {
26633              e11.stopImmediatePropagation();
26634            }
26635            this.stopPropagation();
26636          }
26637        };
26638        jQuery2.each({
26639          altKey: true,
26640          bubbles: true,
26641          cancelable: true,
26642          changedTouches: true,
26643          ctrlKey: true,
26644          detail: true,
26645          eventPhase: true,
26646          metaKey: true,
26647          pageX: true,
26648          pageY: true,
26649          shiftKey: true,
26650          view: true,
26651          "char": true,
26652          code: true,
26653          charCode: true,
26654          key: true,
26655          keyCode: true,
26656          button: true,
26657          buttons: true,
26658          clientX: true,
26659          clientY: true,
26660          offsetX: true,
26661          offsetY: true,
26662          pointerId: true,
26663          pointerType: true,
26664          screenX: true,
26665          screenY: true,
26666          targetTouches: true,
26667          toElement: true,
26668          touches: true,
26669          which: true
26670        }, jQuery2.event.addProp);
26671        jQuery2.each({ focus: "focusin", blur: "focusout" }, function(type, delegateType) {
26672          function focusMappedHandler(nativeEvent) {
26673            if (document2.documentMode) {
26674              var handle = dataPriv.get(this, "handle"), event = jQuery2.event.fix(nativeEvent);
26675              event.type = nativeEvent.type === "focusin" ? "focus" : "blur";
26676              event.isSimulated = true;
26677              handle(nativeEvent);
26678              if (event.target === event.currentTarget) {
26679                handle(event);
26680              }
26681            } else {
26682              jQuery2.event.simulate(
26683                delegateType,
26684                nativeEvent.target,
26685                jQuery2.event.fix(nativeEvent)
26686              );
26687            }
26688          }
26689          jQuery2.event.special[type] = {
26690            // Utilize native event if possible so blur/focus sequence is correct
26691            setup: function() {
26692              var attaches;
26693              leverageNative(this, type, true);
26694              if (document2.documentMode) {
26695                attaches = dataPriv.get(this, delegateType);
26696                if (!attaches) {
26697                  this.addEventListener(delegateType, focusMappedHandler);
26698                }
26699                dataPriv.set(this, delegateType, (attaches || 0) + 1);
26700              } else {
26701                return false;
26702              }
26703            },
26704            trigger: function() {
26705              leverageNative(this, type);
26706              return true;
26707            },
26708            teardown: function() {
26709              var attaches;
26710              if (document2.documentMode) {
26711                attaches = dataPriv.get(this, delegateType) - 1;
26712                if (!attaches) {
26713                  this.removeEventListener(delegateType, focusMappedHandler);
26714                  dataPriv.remove(this, delegateType);
26715                } else {
26716                  dataPriv.set(this, delegateType, attaches);
26717                }
26718              } else {
26719                return false;
26720              }
26721            },
26722            // Suppress native focus or blur if we're currently inside
26723            // a leveraged native-event stack
26724            _default: function(event) {
26725              return dataPriv.get(event.target, type);
26726            },
26727            delegateType
26728          };
26729          jQuery2.event.special[delegateType] = {
26730            setup: function() {
26731              var doc = this.ownerDocument || this.document || this, dataHolder = document2.documentMode ? this : doc, attaches = dataPriv.get(dataHolder, delegateType);
26732              if (!attaches) {
26733                if (document2.documentMode) {
26734                  this.addEventListener(delegateType, focusMappedHandler);
26735                } else {
26736                  doc.addEventListener(type, focusMappedHandler, true);
26737                }
26738              }
26739              dataPriv.set(dataHolder, delegateType, (attaches || 0) + 1);
26740            },
26741            teardown: function() {
26742              var doc = this.ownerDocument || this.document || this, dataHolder = document2.documentMode ? this : doc, attaches = dataPriv.get(dataHolder, delegateType) - 1;
26743              if (!attaches) {
26744                if (document2.documentMode) {
26745                  this.removeEventListener(delegateType, focusMappedHandler);
26746                } else {
26747                  doc.removeEventListener(type, focusMappedHandler, true);
26748                }
26749                dataPriv.remove(dataHolder, delegateType);
26750              } else {
26751                dataPriv.set(dataHolder, delegateType, attaches);
26752              }
26753            }
26754          };
26755        });
26756        jQuery2.each({
26757          mouseenter: "mouseover",
26758          mouseleave: "mouseout",
26759          pointerenter: "pointerover",
26760          pointerleave: "pointerout"
26761        }, function(orig, fix) {
26762          jQuery2.event.special[orig] = {
26763            delegateType: fix,
26764            bindType: fix,
26765            handle: function(event) {
26766              var ret, target = this, related = event.relatedTarget, handleObj = event.handleObj;
26767              if (!related || related !== target && !jQuery2.contains(target, related)) {
26768                event.type = handleObj.origType;
26769                ret = handleObj.handler.apply(this, arguments);
26770                event.type = fix;
26771              }
26772              return ret;
26773            }
26774          };
26775        });
26776        jQuery2.fn.extend({
26777          on: function(types, selector3, data, fn) {
26778            return on(this, types, selector3, data, fn);
26779          },
26780          one: function(types, selector3, data, fn) {
26781            return on(this, types, selector3, data, fn, 1);
26782          },
26783          off: function(types, selector3, fn) {
26784            var handleObj, type;
26785            if (types && types.preventDefault && types.handleObj) {
26786              handleObj = types.handleObj;
26787              jQuery2(types.delegateTarget).off(
26788                handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType,
26789                handleObj.selector,
26790                handleObj.handler
26791              );
26792              return this;
26793            }
26794            if (typeof types === "object") {
26795              for (type in types) {
26796                this.off(type, selector3, types[type]);
26797              }
26798              return this;
26799            }
26800            if (selector3 === false || typeof selector3 === "function") {
26801              fn = selector3;
26802              selector3 = void 0;
26803            }
26804            if (fn === false) {
26805              fn = returnFalse;
26806            }
26807            return this.each(function() {
26808              jQuery2.event.remove(this, types, fn, selector3);
26809            });
26810          }
26811        });
26812        var rnoInnerhtml = /<script|<style|<link/i, rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i, rcleanScript = /^\s*<!\[CDATA\[|\]\]>\s*$/g;
26813        function manipulationTarget(elem, content) {
26814          if (nodeName(elem, "table") && nodeName(content.nodeType !== 11 ? content : content.firstChild, "tr")) {
26815            return jQuery2(elem).children("tbody")[0] || elem;
26816          }
26817          return elem;
26818        }
26819        function disableScript(elem) {
26820          elem.type = (elem.getAttribute("type") !== null) + "/" + elem.type;
26821          return elem;
26822        }
26823        function restoreScript(elem) {
26824          if ((elem.type || "").slice(0, 5) === "true/") {
26825            elem.type = elem.type.slice(5);
26826          } else {
26827            elem.removeAttribute("type");
26828          }
26829          return elem;
26830        }
26831        function cloneCopyEvent(src, dest) {
26832          var i10, l10, type, pdataOld, udataOld, udataCur, events;
26833          if (dest.nodeType !== 1) {
26834            return;
26835          }
26836          if (dataPriv.hasData(src)) {
26837            pdataOld = dataPriv.get(src);
26838            events = pdataOld.events;
26839            if (events) {
26840              dataPriv.remove(dest, "handle events");
26841              for (type in events) {
26842                for (i10 = 0, l10 = events[type].length; i10 < l10; i10++) {
26843                  jQuery2.event.add(dest, type, events[type][i10]);
26844                }
26845              }
26846            }
26847          }
26848          if (dataUser.hasData(src)) {
26849            udataOld = dataUser.access(src);
26850            udataCur = jQuery2.extend({}, udataOld);
26851            dataUser.set(dest, udataCur);
26852          }
26853        }
26854        function fixInput(src, dest) {
26855          var nodeName2 = dest.nodeName.toLowerCase();
26856          if (nodeName2 === "input" && rcheckableType.test(src.type)) {
26857            dest.checked = src.checked;
26858          } else if (nodeName2 === "input" || nodeName2 === "textarea") {
26859            dest.defaultValue = src.defaultValue;
26860          }
26861        }
26862        function domManip(collection, args, callback, ignored) {
26863          args = flat(args);
26864          var fragment, first, scripts, hasScripts, node, doc, i10 = 0, l10 = collection.length, iNoClone = l10 - 1, value = args[0], valueIsFunction = isFunction(value);
26865          if (valueIsFunction || l10 > 1 && typeof value === "string" && !support.checkClone && rchecked.test(value)) {
26866            return collection.each(function(index) {
26867              var self2 = collection.eq(index);
26868              if (valueIsFunction) {
26869                args[0] = value.call(this, index, self2.html());
26870              }
26871              domManip(self2, args, callback, ignored);
26872            });
26873          }
26874          if (l10) {
26875            fragment = buildFragment(args, collection[0].ownerDocument, false, collection, ignored);
26876            first = fragment.firstChild;
26877            if (fragment.childNodes.length === 1) {
26878              fragment = first;
26879            }
26880            if (first || ignored) {
26881              scripts = jQuery2.map(getAll(fragment, "script"), disableScript);
26882              hasScripts = scripts.length;
26883              for (; i10 < l10; i10++) {
26884                node = fragment;
26885                if (i10 !== iNoClone) {
26886                  node = jQuery2.clone(node, true, true);
26887                  if (hasScripts) {
26888                    jQuery2.merge(scripts, getAll(node, "script"));
26889                  }
26890                }
26891                callback.call(collection[i10], node, i10);
26892              }
26893              if (hasScripts) {
26894                doc = scripts[scripts.length - 1].ownerDocument;
26895                jQuery2.map(scripts, restoreScript);
26896                for (i10 = 0; i10 < hasScripts; i10++) {
26897                  node = scripts[i10];
26898                  if (rscriptType.test(node.type || "") && !dataPriv.access(node, "globalEval") && jQuery2.contains(doc, node)) {
26899                    if (node.src && (node.type || "").toLowerCase() !== "module") {
26900                      if (jQuery2._evalUrl && !node.noModule) {
26901                        jQuery2._evalUrl(node.src, {
26902                          nonce: node.nonce || node.getAttribute("nonce")
26903                        }, doc);
26904                      }
26905                    } else {
26906                      DOMEval(node.textContent.replace(rcleanScript, ""), node, doc);
26907                    }
26908                  }
26909                }
26910              }
26911            }
26912          }
26913          return collection;
26914        }
26915        function remove(elem, selector3, keepData) {
26916          var node, nodes = selector3 ? jQuery2.filter(selector3, elem) : elem, i10 = 0;
26917          for (; (node = nodes[i10]) != null; i10++) {
26918            if (!keepData && node.nodeType === 1) {
26919              jQuery2.cleanData(getAll(node));
26920            }
26921            if (node.parentNode) {
26922              if (keepData && isAttached(node)) {
26923                setGlobalEval(getAll(node, "script"));
26924              }
26925              node.parentNode.removeChild(node);
26926            }
26927          }
26928          return elem;
26929        }
26930        jQuery2.extend({
26931          htmlPrefilter: function(html) {
26932            return html;
26933          },
26934          clone: function(elem, dataAndEvents, deepDataAndEvents) {
26935            var i10, l10, srcElements, destElements, clone = elem.cloneNode(true), inPage = isAttached(elem);
26936            if (!support.noCloneChecked && (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery2.isXMLDoc(elem)) {
26937              destElements = getAll(clone);
26938              srcElements = getAll(elem);
26939              for (i10 = 0, l10 = srcElements.length; i10 < l10; i10++) {
26940                fixInput(srcElements[i10], destElements[i10]);
26941              }
26942            }
26943            if (dataAndEvents) {
26944              if (deepDataAndEvents) {
26945                srcElements = srcElements || getAll(elem);
26946                destElements = destElements || getAll(clone);
26947                for (i10 = 0, l10 = srcElements.length; i10 < l10; i10++) {
26948                  cloneCopyEvent(srcElements[i10], destElements[i10]);
26949                }
26950              } else {
26951                cloneCopyEvent(elem, clone);
26952              }
26953            }
26954            destElements = getAll(clone, "script");
26955            if (destElements.length > 0) {
26956              setGlobalEval(destElements, !inPage && getAll(elem, "script"));
26957            }
26958            return clone;
26959          },
26960          cleanData: function(elems) {
26961            var data, elem, type, special = jQuery2.event.special, i10 = 0;
26962            for (; (elem = elems[i10]) !== void 0; i10++) {
26963              if (acceptData(elem)) {
26964                if (data = elem[dataPriv.expando]) {
26965                  if (data.events) {
26966                    for (type in data.events) {
26967                      if (special[type]) {
26968                        jQuery2.event.remove(elem, type);
26969                      } else {
26970                        jQuery2.removeEvent(elem, type, data.handle);
26971                      }
26972                    }
26973                  }
26974                  elem[dataPriv.expando] = void 0;
26975                }
26976                if (elem[dataUser.expando]) {
26977                  elem[dataUser.expando] = void 0;
26978                }
26979              }
26980            }
26981          }
26982        });
26983        jQuery2.fn.extend({
26984          detach: function(selector3) {
26985            return remove(this, selector3, true);
26986          },
26987          remove: function(selector3) {
26988            return remove(this, selector3);
26989          },
26990          text: function(value) {
26991            return access(this, function(value2) {
26992              return value2 === void 0 ? jQuery2.text(this) : this.empty().each(function() {
26993                if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {
26994                  this.textContent = value2;
26995                }
26996              });
26997            }, null, value, arguments.length);
26998          },
26999          append: function() {
27000            return domManip(this, arguments, function(elem) {
27001              if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {
27002                var target = manipulationTarget(this, elem);
27003                target.appendChild(elem);
27004              }
27005            });
27006          },
27007          prepend: function() {
27008            return domManip(this, arguments, function(elem) {
27009              if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {
27010                var target = manipulationTarget(this, elem);
27011                target.insertBefore(elem, target.firstChild);
27012              }
27013            });
27014          },
27015          before: function() {
27016            return domManip(this, arguments, function(elem) {
27017              if (this.parentNode) {
27018                this.parentNode.insertBefore(elem, this);
27019              }
27020            });
27021          },
27022          after: function() {
27023            return domManip(this, arguments, function(elem) {
27024              if (this.parentNode) {
27025                this.parentNode.insertBefore(elem, this.nextSibling);
27026              }
27027            });
27028          },
27029          empty: function() {
27030            var elem, i10 = 0;
27031            for (; (elem = this[i10]) != null; i10++) {
27032              if (elem.nodeType === 1) {
27033                jQuery2.cleanData(getAll(elem, false));
27034                elem.textContent = "";
27035              }
27036            }
27037            return this;
27038          },
27039          clone: function(dataAndEvents, deepDataAndEvents) {
27040            dataAndEvents = dataAndEvents == null ? false : dataAndEvents;
27041            deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;
27042            return this.map(function() {
27043              return jQuery2.clone(this, dataAndEvents, deepDataAndEvents);
27044            });
27045          },
27046          html: function(value) {
27047            return access(this, function(value2) {
27048              var elem = this[0] || {}, i10 = 0, l10 = this.length;
27049              if (value2 === void 0 && elem.nodeType === 1) {
27050                return elem.innerHTML;
27051              }
27052              if (typeof value2 === "string" && !rnoInnerhtml.test(value2) && !wrapMap[(rtagName.exec(value2) || ["", ""])[1].toLowerCase()]) {
27053                value2 = jQuery2.htmlPrefilter(value2);
27054                try {
27055                  for (; i10 < l10; i10++) {
27056                    elem = this[i10] || {};
27057                    if (elem.nodeType === 1) {
27058                      jQuery2.cleanData(getAll(elem, false));
27059                      elem.innerHTML = value2;
27060                    }
27061                  }
27062                  elem = 0;
27063                } catch (e11) {
27064                }
27065              }
27066              if (elem) {
27067                this.empty().append(value2);
27068              }
27069            }, null, value, arguments.length);
27070          },
27071          replaceWith: function() {
27072            var ignored = [];
27073            return domManip(this, arguments, function(elem) {
27074              var parent = this.parentNode;
27075              if (jQuery2.inArray(this, ignored) < 0) {
27076                jQuery2.cleanData(getAll(this));
27077                if (parent) {
27078                  parent.replaceChild(elem, this);
27079                }
27080              }
27081            }, ignored);
27082          }
27083        });
27084        jQuery2.each({
27085          appendTo: "append",
27086          prependTo: "prepend",
27087          insertBefore: "before",
27088          insertAfter: "after",
27089          replaceAll: "replaceWith"
27090        }, function(name, original) {
27091          jQuery2.fn[name] = function(selector3) {
27092            var elems, ret = [], insert = jQuery2(selector3), last = insert.length - 1, i10 = 0;
27093            for (; i10 <= last; i10++) {
27094              elems = i10 === last ? this : this.clone(true);
27095              jQuery2(insert[i10])[original](elems);
27096              push.apply(ret, elems.get());
27097            }
27098            return this.pushStack(ret);
27099          };
27100        });
27101        var rnumnonpx = new RegExp("^(" + pnum + ")(?!px)[a-z%]+$", "i");
27102        var rcustomProp = /^--/;
27103        var getStyles = function(elem) {
27104          var view = elem.ownerDocument.defaultView;
27105          if (!view || !view.opener) {
27106            view = window2;
27107          }
27108          return view.getComputedStyle(elem);
27109        };
27110        var swap = function(elem, options, callback) {
27111          var ret, name, old = {};
27112          for (name in options) {
27113            old[name] = elem.style[name];
27114            elem.style[name] = options[name];
27115          }
27116          ret = callback.call(elem);
27117          for (name in options) {
27118            elem.style[name] = old[name];
27119          }
27120          return ret;
27121        };
27122        var rboxStyle = new RegExp(cssExpand.join("|"), "i");
27123        (function() {
27124          function computeStyleTests() {
27125            if (!div) {
27126              return;
27127            }
27128            container.style.cssText = "position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0";
27129            div.style.cssText = "position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%";
27130            documentElement.appendChild(container).appendChild(div);
27131            var divStyle = window2.getComputedStyle(div);
27132            pixelPositionVal = divStyle.top !== "1%";
27133            reliableMarginLeftVal = roundPixelMeasures(divStyle.marginLeft) === 12;
27134            div.style.right = "60%";
27135            pixelBoxStylesVal = roundPixelMeasures(divStyle.right) === 36;
27136            boxSizingReliableVal = roundPixelMeasures(divStyle.width) === 36;
27137            div.style.position = "absolute";
27138            scrollboxSizeVal = roundPixelMeasures(div.offsetWidth / 3) === 12;
27139            documentElement.removeChild(container);
27140            div = null;
27141          }
27142          function roundPixelMeasures(measure) {
27143            return Math.round(parseFloat(measure));
27144          }
27145          var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal, reliableTrDimensionsVal, reliableMarginLeftVal, container = document2.createElement("div"), div = document2.createElement("div");
27146          if (!div.style) {
27147            return;
27148          }
27149          div.style.backgroundClip = "content-box";
27150          div.cloneNode(true).style.backgroundClip = "";
27151          support.clearCloneStyle = div.style.backgroundClip === "content-box";
27152          jQuery2.extend(support, {
27153            boxSizingReliable: function() {
27154              computeStyleTests();
27155              return boxSizingReliableVal;
27156            },
27157            pixelBoxStyles: function() {
27158              computeStyleTests();
27159              return pixelBoxStylesVal;
27160            },
27161            pixelPosition: function() {
27162              computeStyleTests();
27163              return pixelPositionVal;
27164            },
27165            reliableMarginLeft: function() {
27166              computeStyleTests();
27167              return reliableMarginLeftVal;
27168            },
27169            scrollboxSize: function() {
27170              computeStyleTests();
27171              return scrollboxSizeVal;
27172            },
27173            // Support: IE 9 - 11+, Edge 15 - 18+
27174            // IE/Edge misreport `getComputedStyle` of table rows with width/height
27175            // set in CSS while `offset*` properties report correct values.
27176            // Behavior in IE 9 is more subtle than in newer versions & it passes
27177            // some versions of this test; make sure not to make it pass there!
27178            //
27179            // Support: Firefox 70+
27180            // Only Firefox includes border widths
27181            // in computed dimensions. (gh-4529)
27182            reliableTrDimensions: function() {
27183              var table, tr, trChild, trStyle;
27184              if (reliableTrDimensionsVal == null) {
27185                table = document2.createElement("table");
27186                tr = document2.createElement("tr");
27187                trChild = document2.createElement("div");
27188                table.style.cssText = "position:absolute;left:-11111px;border-collapse:separate";
27189                tr.style.cssText = "box-sizing:content-box;border:1px solid";
27190                tr.style.height = "1px";
27191                trChild.style.height = "9px";
27192                trChild.style.display = "block";
27193                documentElement.appendChild(table).appendChild(tr).appendChild(trChild);
27194                trStyle = window2.getComputedStyle(tr);
27195                reliableTrDimensionsVal = parseInt(trStyle.height, 10) + parseInt(trStyle.borderTopWidth, 10) + parseInt(trStyle.borderBottomWidth, 10) === tr.offsetHeight;
27196                documentElement.removeChild(table);
27197              }
27198              return reliableTrDimensionsVal;
27199            }
27200          });
27201        })();
27202        function curCSS(elem, name, computed) {
27203          var width, minWidth, maxWidth, ret, isCustomProp = rcustomProp.test(name), style = elem.style;
27204          computed = computed || getStyles(elem);
27205          if (computed) {
27206            ret = computed.getPropertyValue(name) || computed[name];
27207            if (isCustomProp && ret) {
27208              ret = ret.replace(rtrimCSS, "$1") || void 0;
27209            }
27210            if (ret === "" && !isAttached(elem)) {
27211              ret = jQuery2.style(elem, name);
27212            }
27213            if (!support.pixelBoxStyles() && rnumnonpx.test(ret) && rboxStyle.test(name)) {
27214              width = style.width;
27215              minWidth = style.minWidth;
27216              maxWidth = style.maxWidth;
27217              style.minWidth = style.maxWidth = style.width = ret;
27218              ret = computed.width;
27219              style.width = width;
27220              style.minWidth = minWidth;
27221              style.maxWidth = maxWidth;
27222            }
27223          }
27224          return ret !== void 0 ? (
27225            // Support: IE <=9 - 11 only
27226            // IE returns zIndex value as an integer.
27227            ret + ""
27228          ) : ret;
27229        }
27230        function addGetHookIf(conditionFn, hookFn) {
27231          return {
27232            get: function() {
27233              if (conditionFn()) {
27234                delete this.get;
27235                return;
27236              }
27237              return (this.get = hookFn).apply(this, arguments);
27238            }
27239          };
27240        }
27241        var cssPrefixes = ["Webkit", "Moz", "ms"], emptyStyle = document2.createElement("div").style, vendorProps = {};
27242        function vendorPropName(name) {
27243          var capName = name[0].toUpperCase() + name.slice(1), i10 = cssPrefixes.length;
27244          while (i10--) {
27245            name = cssPrefixes[i10] + capName;
27246            if (name in emptyStyle) {
27247              return name;
27248            }
27249          }
27250        }
27251        function finalPropName(name) {
27252          var final = jQuery2.cssProps[name] || vendorProps[name];
27253          if (final) {
27254            return final;
27255          }
27256          if (name in emptyStyle) {
27257            return name;
27258          }
27259          return vendorProps[name] = vendorPropName(name) || name;
27260        }
27261        var rdisplayswap = /^(none|table(?!-c[ea]).+)/, cssShow = { position: "absolute", visibility: "hidden", display: "block" }, cssNormalTransform = {
27262          letterSpacing: "0",
27263          fontWeight: "400"
27264        };
27265        function setPositiveNumber(_elem, value, subtract) {
27266          var matches = rcssNum.exec(value);
27267          return matches ? (
27268            // Guard against undefined "subtract", e.g., when used as in cssHooks
27269            Math.max(0, matches[2] - (subtract || 0)) + (matches[3] || "px")
27270          ) : value;
27271        }
27272        function boxModelAdjustment(elem, dimension, box, isBorderBox, styles, computedVal) {
27273          var i10 = dimension === "width" ? 1 : 0, extra = 0, delta = 0, marginDelta = 0;
27274          if (box === (isBorderBox ? "border" : "content")) {
27275            return 0;
27276          }
27277          for (; i10 < 4; i10 += 2) {
27278            if (box === "margin") {
27279              marginDelta += jQuery2.css(elem, box + cssExpand[i10], true, styles);
27280            }
27281            if (!isBorderBox) {
27282              delta += jQuery2.css(elem, "padding" + cssExpand[i10], true, styles);
27283              if (box !== "padding") {
27284                delta += jQuery2.css(elem, "border" + cssExpand[i10] + "Width", true, styles);
27285              } else {
27286                extra += jQuery2.css(elem, "border" + cssExpand[i10] + "Width", true, styles);
27287              }
27288            } else {
27289              if (box === "content") {
27290                delta -= jQuery2.css(elem, "padding" + cssExpand[i10], true, styles);
27291              }
27292              if (box !== "margin") {
27293                delta -= jQuery2.css(elem, "border" + cssExpand[i10] + "Width", true, styles);
27294              }
27295            }
27296          }
27297          if (!isBorderBox && computedVal >= 0) {
27298            delta += Math.max(0, Math.ceil(
27299              elem["offset" + dimension[0].toUpperCase() + dimension.slice(1)] - computedVal - delta - extra - 0.5
27300              // If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter
27301              // Use an explicit zero to avoid NaN (gh-3964)
27302            )) || 0;
27303          }
27304          return delta + marginDelta;
27305        }
27306        function getWidthOrHeight(elem, dimension, extra) {
27307          var styles = getStyles(elem), boxSizingNeeded = !support.boxSizingReliable() || extra, isBorderBox = boxSizingNeeded && jQuery2.css(elem, "boxSizing", false, styles) === "border-box", valueIsBorderBox = isBorderBox, val = curCSS(elem, dimension, styles), offsetProp = "offset" + dimension[0].toUpperCase() + dimension.slice(1);
27308          if (rnumnonpx.test(val)) {
27309            if (!extra) {
27310              return val;
27311            }
27312            val = "auto";
27313          }
27314          if ((!support.boxSizingReliable() && isBorderBox || // Support: IE 10 - 11+, Edge 15 - 18+
27315          // IE/Edge misreport `getComputedStyle` of table rows with width/height
27316          // set in CSS while `offset*` properties report correct values.
27317          // Interestingly, in some cases IE 9 doesn't suffer from this issue.
27318          !support.reliableTrDimensions() && nodeName(elem, "tr") || // Fall back to offsetWidth/offsetHeight when value is "auto"
27319          // This happens for inline elements with no explicit setting (gh-3571)
27320          val === "auto" || // Support: Android <=4.1 - 4.3 only
27321          // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)
27322          !parseFloat(val) && jQuery2.css(elem, "display", false, styles) === "inline") && // Make sure the element is visible & connected
27323          elem.getClientRects().length) {
27324            isBorderBox = jQuery2.css(elem, "boxSizing", false, styles) === "border-box";
27325            valueIsBorderBox = offsetProp in elem;
27326            if (valueIsBorderBox) {
27327              val = elem[offsetProp];
27328            }
27329          }
27330          val = parseFloat(val) || 0;
27331          return val + boxModelAdjustment(
27332            elem,
27333            dimension,
27334            extra || (isBorderBox ? "border" : "content"),
27335            valueIsBorderBox,
27336            styles,
27337            // Provide the current computed size to request scroll gutter calculation (gh-3589)
27338            val
27339          ) + "px";
27340        }
27341        jQuery2.extend({
27342          // Add in style property hooks for overriding the default
27343          // behavior of getting and setting a style property
27344          cssHooks: {
27345            opacity: {
27346              get: function(elem, computed) {
27347                if (computed) {
27348                  var ret = curCSS(elem, "opacity");
27349                  return ret === "" ? "1" : ret;
27350                }
27351              }
27352            }
27353          },
27354          // Don't automatically add "px" to these possibly-unitless properties
27355          cssNumber: {
27356            animationIterationCount: true,
27357            aspectRatio: true,
27358            borderImageSlice: true,
27359            columnCount: true,
27360            flexGrow: true,
27361            flexShrink: true,
27362            fontWeight: true,
27363            gridArea: true,
27364            gridColumn: true,
27365            gridColumnEnd: true,
27366            gridColumnStart: true,
27367            gridRow: true,
27368            gridRowEnd: true,
27369            gridRowStart: true,
27370            lineHeight: true,
27371            opacity: true,
27372            order: true,
27373            orphans: true,
27374            scale: true,
27375            widows: true,
27376            zIndex: true,
27377            zoom: true,
27378            // SVG-related
27379            fillOpacity: true,
27380            floodOpacity: true,
27381            stopOpacity: true,
27382            strokeMiterlimit: true,
27383            strokeOpacity: true
27384          },
27385          // Add in properties whose names you wish to fix before
27386          // setting or getting the value
27387          cssProps: {},
27388          // Get and set the style property on a DOM Node
27389          style: function(elem, name, value, extra) {
27390            if (!elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style) {
27391              return;
27392            }
27393            var ret, type, hooks, origName = camelCase(name), isCustomProp = rcustomProp.test(name), style = elem.style;
27394            if (!isCustomProp) {
27395              name = finalPropName(origName);
27396            }
27397            hooks = jQuery2.cssHooks[name] || jQuery2.cssHooks[origName];
27398            if (value !== void 0) {
27399              type = typeof value;
27400              if (type === "string" && (ret = rcssNum.exec(value)) && ret[1]) {
27401                value = adjustCSS(elem, name, ret);
27402                type = "number";
27403              }
27404              if (value == null || value !== value) {
27405                return;
27406              }
27407              if (type === "number" && !isCustomProp) {
27408                value += ret && ret[3] || (jQuery2.cssNumber[origName] ? "" : "px");
27409              }
27410              if (!support.clearCloneStyle && value === "" && name.indexOf("background") === 0) {
27411                style[name] = "inherit";
27412              }
27413              if (!hooks || !("set" in hooks) || (value = hooks.set(elem, value, extra)) !== void 0) {
27414                if (isCustomProp) {
27415                  style.setProperty(name, value);
27416                } else {
27417                  style[name] = value;
27418                }
27419              }
27420            } else {
27421              if (hooks && "get" in hooks && (ret = hooks.get(elem, false, extra)) !== void 0) {
27422                return ret;
27423              }
27424              return style[name];
27425            }
27426          },
27427          css: function(elem, name, extra, styles) {
27428            var val, num, hooks, origName = camelCase(name), isCustomProp = rcustomProp.test(name);
27429            if (!isCustomProp) {
27430              name = finalPropName(origName);
27431            }
27432            hooks = jQuery2.cssHooks[name] || jQuery2.cssHooks[origName];
27433            if (hooks && "get" in hooks) {
27434              val = hooks.get(elem, true, extra);
27435            }
27436            if (val === void 0) {
27437              val = curCSS(elem, name, styles);
27438            }
27439            if (val === "normal" && name in cssNormalTransform) {
27440              val = cssNormalTransform[name];
27441            }
27442            if (extra === "" || extra) {
27443              num = parseFloat(val);
27444              return extra === true || isFinite(num) ? num || 0 : val;
27445            }
27446            return val;
27447          }
27448        });
27449        jQuery2.each(["height", "width"], function(_i2, dimension) {
27450          jQuery2.cssHooks[dimension] = {
27451            get: function(elem, computed, extra) {
27452              if (computed) {
27453                return rdisplayswap.test(jQuery2.css(elem, "display")) && // Support: Safari 8+
27454                // Table columns in Safari have non-zero offsetWidth & zero
27455                // getBoundingClientRect().width unless display is changed.
27456                // Support: IE <=11 only
27457                // Running getBoundingClientRect on a disconnected node
27458                // in IE throws an error.
27459                (!elem.getClientRects().length || !elem.getBoundingClientRect().width) ? swap(elem, cssShow, function() {
27460                  return getWidthOrHeight(elem, dimension, extra);
27461                }) : getWidthOrHeight(elem, dimension, extra);
27462              }
27463            },
27464            set: function(elem, value, extra) {
27465              var matches, styles = getStyles(elem), scrollboxSizeBuggy = !support.scrollboxSize() && styles.position === "absolute", boxSizingNeeded = scrollboxSizeBuggy || extra, isBorderBox = boxSizingNeeded && jQuery2.css(elem, "boxSizing", false, styles) === "border-box", subtract = extra ? boxModelAdjustment(
27466                elem,
27467                dimension,
27468                extra,
27469                isBorderBox,
27470                styles
27471              ) : 0;
27472              if (isBorderBox && scrollboxSizeBuggy) {
27473                subtract -= Math.ceil(
27474                  elem["offset" + dimension[0].toUpperCase() + dimension.slice(1)] - parseFloat(styles[dimension]) - boxModelAdjustment(elem, dimension, "border", false, styles) - 0.5
27475                );
27476              }
27477              if (subtract && (matches = rcssNum.exec(value)) && (matches[3] || "px") !== "px") {
27478                elem.style[dimension] = value;
27479                value = jQuery2.css(elem, dimension);
27480              }
27481              return setPositiveNumber(elem, value, subtract);
27482            }
27483          };
27484        });
27485        jQuery2.cssHooks.marginLeft = addGetHookIf(
27486          support.reliableMarginLeft,
27487          function(elem, computed) {
27488            if (computed) {
27489              return (parseFloat(curCSS(elem, "marginLeft")) || elem.getBoundingClientRect().left - swap(elem, { marginLeft: 0 }, function() {
27490                return elem.getBoundingClientRect().left;
27491              })) + "px";
27492            }
27493          }
27494        );
27495        jQuery2.each({
27496          margin: "",
27497          padding: "",
27498          border: "Width"
27499        }, function(prefix, suffix) {
27500          jQuery2.cssHooks[prefix + suffix] = {
27501            expand: function(value) {
27502              var i10 = 0, expanded = {}, parts = typeof value === "string" ? value.split(" ") : [value];
27503              for (; i10 < 4; i10++) {
27504                expanded[prefix + cssExpand[i10] + suffix] = parts[i10] || parts[i10 - 2] || parts[0];
27505              }
27506              return expanded;
27507            }
27508          };
27509          if (prefix !== "margin") {
27510            jQuery2.cssHooks[prefix + suffix].set = setPositiveNumber;
27511          }
27512        });
27513        jQuery2.fn.extend({
27514          css: function(name, value) {
27515            return access(this, function(elem, name2, value2) {
27516              var styles, len, map = {}, i10 = 0;
27517              if (Array.isArray(name2)) {
27518                styles = getStyles(elem);
27519                len = name2.length;
27520                for (; i10 < len; i10++) {
27521                  map[name2[i10]] = jQuery2.css(elem, name2[i10], false, styles);
27522                }
27523                return map;
27524              }
27525              return value2 !== void 0 ? jQuery2.style(elem, name2, value2) : jQuery2.css(elem, name2);
27526            }, name, value, arguments.length > 1);
27527          }
27528        });
27529        function Tween2(elem, options, prop, end, easing) {
27530          return new Tween2.prototype.init(elem, options, prop, end, easing);
27531        }
27532        jQuery2.Tween = Tween2;
27533        Tween2.prototype = {
27534          constructor: Tween2,
27535          init: function(elem, options, prop, end, easing, unit) {
27536            this.elem = elem;
27537            this.prop = prop;
27538            this.easing = easing || jQuery2.easing._default;
27539            this.options = options;
27540            this.start = this.now = this.cur();
27541            this.end = end;
27542            this.unit = unit || (jQuery2.cssNumber[prop] ? "" : "px");
27543          },
27544          cur: function() {
27545            var hooks = Tween2.propHooks[this.prop];
27546            return hooks && hooks.get ? hooks.get(this) : Tween2.propHooks._default.get(this);
27547          },
27548          run: function(percent) {
27549            var eased, hooks = Tween2.propHooks[this.prop];
27550            if (this.options.duration) {
27551              this.pos = eased = jQuery2.easing[this.easing](
27552                percent,
27553                this.options.duration * percent,
27554                0,
27555                1,
27556                this.options.duration
27557              );
27558            } else {
27559              this.pos = eased = percent;
27560            }
27561            this.now = (this.end - this.start) * eased + this.start;
27562            if (this.options.step) {
27563              this.options.step.call(this.elem, this.now, this);
27564            }
27565            if (hooks && hooks.set) {
27566              hooks.set(this);
27567            } else {
27568              Tween2.propHooks._default.set(this);
27569            }
27570            return this;
27571          }
27572        };
27573        Tween2.prototype.init.prototype = Tween2.prototype;
27574        Tween2.propHooks = {
27575          _default: {
27576            get: function(tween) {
27577              var result;
27578              if (tween.elem.nodeType !== 1 || tween.elem[tween.prop] != null && tween.elem.style[tween.prop] == null) {
27579                return tween.elem[tween.prop];
27580              }
27581              result = jQuery2.css(tween.elem, tween.prop, "");
27582              return !result || result === "auto" ? 0 : result;
27583            },
27584            set: function(tween) {
27585              if (jQuery2.fx.step[tween.prop]) {
27586                jQuery2.fx.step[tween.prop](tween);
27587              } else if (tween.elem.nodeType === 1 && (jQuery2.cssHooks[tween.prop] || tween.elem.style[finalPropName(tween.prop)] != null)) {
27588                jQuery2.style(tween.elem, tween.prop, tween.now + tween.unit);
27589              } else {
27590                tween.elem[tween.prop] = tween.now;
27591              }
27592            }
27593          }
27594        };
27595        Tween2.propHooks.scrollTop = Tween2.propHooks.scrollLeft = {
27596          set: function(tween) {
27597            if (tween.elem.nodeType && tween.elem.parentNode) {
27598              tween.elem[tween.prop] = tween.now;
27599            }
27600          }
27601        };
27602        jQuery2.easing = {
27603          linear: function(p2) {
27604            return p2;
27605          },
27606          swing: function(p2) {
27607            return 0.5 - Math.cos(p2 * Math.PI) / 2;
27608          },
27609          _default: "swing"
27610        };
27611        jQuery2.fx = Tween2.prototype.init;
27612        jQuery2.fx.step = {};
27613        var fxNow, inProgress, rfxtypes = /^(?:toggle|show|hide)$/, rrun = /queueHooks$/;
27614        function schedule() {
27615          if (inProgress) {
27616            if (document2.hidden === false && window2.requestAnimationFrame) {
27617              window2.requestAnimationFrame(schedule);
27618            } else {
27619              window2.setTimeout(schedule, jQuery2.fx.interval);
27620            }
27621            jQuery2.fx.tick();
27622          }
27623        }
27624        function createFxNow() {
27625          window2.setTimeout(function() {
27626            fxNow = void 0;
27627          });
27628          return fxNow = Date.now();
27629        }
27630        function genFx(type, includeWidth) {
27631          var which, i10 = 0, attrs = { height: type };
27632          includeWidth = includeWidth ? 1 : 0;
27633          for (; i10 < 4; i10 += 2 - includeWidth) {
27634            which = cssExpand[i10];
27635            attrs["margin" + which] = attrs["padding" + which] = type;
27636          }
27637          if (includeWidth) {
27638            attrs.opacity = attrs.width = type;
27639          }
27640          return attrs;
27641        }
27642        function createTween(value, prop, animation) {
27643          var tween, collection = (Animation2.tweeners[prop] || []).concat(Animation2.tweeners["*"]), index = 0, length = collection.length;
27644          for (; index < length; index++) {
27645            if (tween = collection[index].call(animation, prop, value)) {
27646              return tween;
27647            }
27648          }
27649        }
27650        function defaultPrefilter(elem, props, opts) {
27651          var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display, isBox = "width" in props || "height" in props, anim = this, orig = {}, style = elem.style, hidden = elem.nodeType && isHiddenWithinTree(elem), dataShow = dataPriv.get(elem, "fxshow");
27652          if (!opts.queue) {
27653            hooks = jQuery2._queueHooks(elem, "fx");
27654            if (hooks.unqueued == null) {
27655              hooks.unqueued = 0;
27656              oldfire = hooks.empty.fire;
27657              hooks.empty.fire = function() {
27658                if (!hooks.unqueued) {
27659                  oldfire();
27660                }
27661              };
27662            }
27663            hooks.unqueued++;
27664            anim.always(function() {
27665              anim.always(function() {
27666                hooks.unqueued--;
27667                if (!jQuery2.queue(elem, "fx").length) {
27668                  hooks.empty.fire();
27669                }
27670              });
27671            });
27672          }
27673          for (prop in props) {
27674            value = props[prop];
27675            if (rfxtypes.test(value)) {
27676              delete props[prop];
27677              toggle = toggle || value === "toggle";
27678              if (value === (hidden ? "hide" : "show")) {
27679                if (value === "show" && dataShow && dataShow[prop] !== void 0) {
27680                  hidden = true;
27681                } else {
27682                  continue;
27683                }
27684              }
27685              orig[prop] = dataShow && dataShow[prop] || jQuery2.style(elem, prop);
27686            }
27687          }
27688          propTween = !jQuery2.isEmptyObject(props);
27689          if (!propTween && jQuery2.isEmptyObject(orig)) {
27690            return;
27691          }
27692          if (isBox && elem.nodeType === 1) {
27693            opts.overflow = [style.overflow, style.overflowX, style.overflowY];
27694            restoreDisplay = dataShow && dataShow.display;
27695            if (restoreDisplay == null) {
27696              restoreDisplay = dataPriv.get(elem, "display");
27697            }
27698            display = jQuery2.css(elem, "display");
27699            if (display === "none") {
27700              if (restoreDisplay) {
27701                display = restoreDisplay;
27702              } else {
27703                showHide([elem], true);
27704                restoreDisplay = elem.style.display || restoreDisplay;
27705                display = jQuery2.css(elem, "display");
27706                showHide([elem]);
27707              }
27708            }
27709            if (display === "inline" || display === "inline-block" && restoreDisplay != null) {
27710              if (jQuery2.css(elem, "float") === "none") {
27711                if (!propTween) {
27712                  anim.done(function() {
27713                    style.display = restoreDisplay;
27714                  });
27715                  if (restoreDisplay == null) {
27716                    display = style.display;
27717                    restoreDisplay = display === "none" ? "" : display;
27718                  }
27719                }
27720                style.display = "inline-block";
27721              }
27722            }
27723          }
27724          if (opts.overflow) {
27725            style.overflow = "hidden";
27726            anim.always(function() {
27727              style.overflow = opts.overflow[0];
27728              style.overflowX = opts.overflow[1];
27729              style.overflowY = opts.overflow[2];
27730            });
27731          }
27732          propTween = false;
27733          for (prop in orig) {
27734            if (!propTween) {
27735              if (dataShow) {
27736                if ("hidden" in dataShow) {
27737                  hidden = dataShow.hidden;
27738                }
27739              } else {
27740                dataShow = dataPriv.access(elem, "fxshow", { display: restoreDisplay });
27741              }
27742              if (toggle) {
27743                dataShow.hidden = !hidden;
27744              }
27745              if (hidden) {
27746                showHide([elem], true);
27747              }
27748              anim.done(function() {
27749                if (!hidden) {
27750                  showHide([elem]);
27751                }
27752                dataPriv.remove(elem, "fxshow");
27753                for (prop in orig) {
27754                  jQuery2.style(elem, prop, orig[prop]);
27755                }
27756              });
27757            }
27758            propTween = createTween(hidden ? dataShow[prop] : 0, prop, anim);
27759            if (!(prop in dataShow)) {
27760              dataShow[prop] = propTween.start;
27761              if (hidden) {
27762                propTween.end = propTween.start;
27763                propTween.start = 0;
27764              }
27765            }
27766          }
27767        }
27768        function propFilter(props, specialEasing) {
27769          var index, name, easing, value, hooks;
27770          for (index in props) {
27771            name = camelCase(index);
27772            easing = specialEasing[name];
27773            value = props[index];
27774            if (Array.isArray(value)) {
27775              easing = value[1];
27776              value = props[index] = value[0];
27777            }
27778            if (index !== name) {
27779              props[name] = value;
27780              delete props[index];
27781            }
27782            hooks = jQuery2.cssHooks[name];
27783            if (hooks && "expand" in hooks) {
27784              value = hooks.expand(value);
27785              delete props[name];
27786              for (index in value) {
27787                if (!(index in props)) {
27788                  props[index] = value[index];
27789                  specialEasing[index] = easing;
27790                }
27791              }
27792            } else {
27793              specialEasing[name] = easing;
27794            }
27795          }
27796        }
27797        function Animation2(elem, properties, options) {
27798          var result, stopped, index = 0, length = Animation2.prefilters.length, deferred = jQuery2.Deferred().always(function() {
27799            delete tick.elem;
27800          }), tick = function() {
27801            if (stopped) {
27802              return false;
27803            }
27804            var currentTime = fxNow || createFxNow(), remaining = Math.max(0, animation.startTime + animation.duration - currentTime), temp = remaining / animation.duration || 0, percent = 1 - temp, index2 = 0, length2 = animation.tweens.length;
27805            for (; index2 < length2; index2++) {
27806              animation.tweens[index2].run(percent);
27807            }
27808            deferred.notifyWith(elem, [animation, percent, remaining]);
27809            if (percent < 1 && length2) {
27810              return remaining;
27811            }
27812            if (!length2) {
27813              deferred.notifyWith(elem, [animation, 1, 0]);
27814            }
27815            deferred.resolveWith(elem, [animation]);
27816            return false;
27817          }, animation = deferred.promise({
27818            elem,
27819            props: jQuery2.extend({}, properties),
27820            opts: jQuery2.extend(true, {
27821              specialEasing: {},
27822              easing: jQuery2.easing._default
27823            }, options),
27824            originalProperties: properties,
27825            originalOptions: options,
27826            startTime: fxNow || createFxNow(),
27827            duration: options.duration,
27828            tweens: [],
27829            createTween: function(prop, end) {
27830              var tween = jQuery2.Tween(
27831                elem,
27832                animation.opts,
27833                prop,
27834                end,
27835                animation.opts.specialEasing[prop] || animation.opts.easing
27836              );
27837              animation.tweens.push(tween);
27838              return tween;
27839            },
27840            stop: function(gotoEnd) {
27841              var index2 = 0, length2 = gotoEnd ? animation.tweens.length : 0;
27842              if (stopped) {
27843                return this;
27844              }
27845              stopped = true;
27846              for (; index2 < length2; index2++) {
27847                animation.tweens[index2].run(1);
27848              }
27849              if (gotoEnd) {
27850                deferred.notifyWith(elem, [animation, 1, 0]);
27851                deferred.resolveWith(elem, [animation, gotoEnd]);
27852              } else {
27853                deferred.rejectWith(elem, [animation, gotoEnd]);
27854              }
27855              return this;
27856            }
27857          }), props = animation.props;
27858          propFilter(props, animation.opts.specialEasing);
27859          for (; index < length; index++) {
27860            result = Animation2.prefilters[index].call(animation, elem, props, animation.opts);
27861            if (result) {
27862              if (isFunction(result.stop)) {
27863                jQuery2._queueHooks(animation.elem, animation.opts.queue).stop = result.stop.bind(result);
27864              }
27865              return result;
27866            }
27867          }
27868          jQuery2.map(props, createTween, animation);
27869          if (isFunction(animation.opts.start)) {
27870            animation.opts.start.call(elem, animation);
27871          }
27872          animation.progress(animation.opts.progress).done(animation.opts.done, animation.opts.complete).fail(animation.opts.fail).always(animation.opts.always);
27873          jQuery2.fx.timer(
27874            jQuery2.extend(tick, {
27875              elem,
27876              anim: animation,
27877              queue: animation.opts.queue
27878            })
27879          );
27880          return animation;
27881        }
27882        jQuery2.Animation = jQuery2.extend(Animation2, {
27883          tweeners: {
27884            "*": [function(prop, value) {
27885              var tween = this.createTween(prop, value);
27886              adjustCSS(tween.elem, prop, rcssNum.exec(value), tween);
27887              return tween;
27888            }]
27889          },
27890          tweener: function(props, callback) {
27891            if (isFunction(props)) {
27892              callback = props;
27893              props = ["*"];
27894            } else {
27895              props = props.match(rnothtmlwhite);
27896            }
27897            var prop, index = 0, length = props.length;
27898            for (; index < length; index++) {
27899              prop = props[index];
27900              Animation2.tweeners[prop] = Animation2.tweeners[prop] || [];
27901              Animation2.tweeners[prop].unshift(callback);
27902            }
27903          },
27904          prefilters: [defaultPrefilter],
27905          prefilter: function(callback, prepend) {
27906            if (prepend) {
27907              Animation2.prefilters.unshift(callback);
27908            } else {
27909              Animation2.prefilters.push(callback);
27910            }
27911          }
27912        });
27913        jQuery2.speed = function(speed, easing, fn) {
27914          var opt = speed && typeof speed === "object" ? jQuery2.extend({}, speed) : {
27915            complete: fn || !fn && easing || isFunction(speed) && speed,
27916            duration: speed,
27917            easing: fn && easing || easing && !isFunction(easing) && easing
27918          };
27919          if (jQuery2.fx.off) {
27920            opt.duration = 0;
27921          } else {
27922            if (typeof opt.duration !== "number") {
27923              if (opt.duration in jQuery2.fx.speeds) {
27924                opt.duration = jQuery2.fx.speeds[opt.duration];
27925              } else {
27926                opt.duration = jQuery2.fx.speeds._default;
27927              }
27928            }
27929          }
27930          if (opt.queue == null || opt.queue === true) {
27931            opt.queue = "fx";
27932          }
27933          opt.old = opt.complete;
27934          opt.complete = function() {
27935            if (isFunction(opt.old)) {
27936              opt.old.call(this);
27937            }
27938            if (opt.queue) {
27939              jQuery2.dequeue(this, opt.queue);
27940            }
27941          };
27942          return opt;
27943        };
27944        jQuery2.fn.extend({
27945          fadeTo: function(speed, to, easing, callback) {
27946            return this.filter(isHiddenWithinTree).css("opacity", 0).show().end().animate({ opacity: to }, speed, easing, callback);
27947          },
27948          animate: function(prop, speed, easing, callback) {
27949            var empty = jQuery2.isEmptyObject(prop), optall = jQuery2.speed(speed, easing, callback), doAnimation = function() {
27950              var anim = Animation2(this, jQuery2.extend({}, prop), optall);
27951              if (empty || dataPriv.get(this, "finish")) {
27952                anim.stop(true);
27953              }
27954            };
27955            doAnimation.finish = doAnimation;
27956            return empty || optall.queue === false ? this.each(doAnimation) : this.queue(optall.queue, doAnimation);
27957          },
27958          stop: function(type, clearQueue, gotoEnd) {
27959            var stopQueue = function(hooks) {
27960              var stop = hooks.stop;
27961              delete hooks.stop;
27962              stop(gotoEnd);
27963            };
27964            if (typeof type !== "string") {
27965              gotoEnd = clearQueue;
27966              clearQueue = type;
27967              type = void 0;
27968            }
27969            if (clearQueue) {
27970              this.queue(type || "fx", []);
27971            }
27972            return this.each(function() {
27973              var dequeue = true, index = type != null && type + "queueHooks", timers = jQuery2.timers, data = dataPriv.get(this);
27974              if (index) {
27975                if (data[index] && data[index].stop) {
27976                  stopQueue(data[index]);
27977                }
27978              } else {
27979                for (index in data) {
27980                  if (data[index] && data[index].stop && rrun.test(index)) {
27981                    stopQueue(data[index]);
27982                  }
27983                }
27984              }
27985              for (index = timers.length; index--; ) {
27986                if (timers[index].elem === this && (type == null || timers[index].queue === type)) {
27987                  timers[index].anim.stop(gotoEnd);
27988                  dequeue = false;
27989                  timers.splice(index, 1);
27990                }
27991              }
27992              if (dequeue || !gotoEnd) {
27993                jQuery2.dequeue(this, type);
27994              }
27995            });
27996          },
27997          finish: function(type) {
27998            if (type !== false) {
27999              type = type || "fx";
28000            }
28001            return this.each(function() {
28002              var index, data = dataPriv.get(this), queue = data[type + "queue"], hooks = data[type + "queueHooks"], timers = jQuery2.timers, length = queue ? queue.length : 0;
28003              data.finish = true;
28004              jQuery2.queue(this, type, []);
28005              if (hooks && hooks.stop) {
28006                hooks.stop.call(this, true);
28007              }
28008              for (index = timers.length; index--; ) {
28009                if (timers[index].elem === this && timers[index].queue === type) {
28010                  timers[index].anim.stop(true);
28011                  timers.splice(index, 1);
28012                }
28013              }
28014              for (index = 0; index < length; index++) {
28015                if (queue[index] && queue[index].finish) {
28016                  queue[index].finish.call(this);
28017                }
28018              }
28019              delete data.finish;
28020            });
28021          }
28022        });
28023        jQuery2.each(["toggle", "show", "hide"], function(_i2, name) {
28024          var cssFn = jQuery2.fn[name];
28025          jQuery2.fn[name] = function(speed, easing, callback) {
28026            return speed == null || typeof speed === "boolean" ? cssFn.apply(this, arguments) : this.animate(genFx(name, true), speed, easing, callback);
28027          };
28028        });
28029        jQuery2.each({
28030          slideDown: genFx("show"),
28031          slideUp: genFx("hide"),
28032          slideToggle: genFx("toggle"),
28033          fadeIn: { opacity: "show" },
28034          fadeOut: { opacity: "hide" },
28035          fadeToggle: { opacity: "toggle" }
28036        }, function(name, props) {
28037          jQuery2.fn[name] = function(speed, easing, callback) {
28038            return this.animate(props, speed, easing, callback);
28039          };
28040        });
28041        jQuery2.timers = [];
28042        jQuery2.fx.tick = function() {
28043          var timer, i10 = 0, timers = jQuery2.timers;
28044          fxNow = Date.now();
28045          for (; i10 < timers.length; i10++) {
28046            timer = timers[i10];
28047            if (!timer() && timers[i10] === timer) {
28048              timers.splice(i10--, 1);
28049            }
28050          }
28051          if (!timers.length) {
28052            jQuery2.fx.stop();
28053          }
28054          fxNow = void 0;
28055        };
28056        jQuery2.fx.timer = function(timer) {
28057          jQuery2.timers.push(timer);
28058          jQuery2.fx.start();
28059        };
28060        jQuery2.fx.interval = 13;
28061        jQuery2.fx.start = function() {
28062          if (inProgress) {
28063            return;
28064          }
28065          inProgress = true;
28066          schedule();
28067        };
28068        jQuery2.fx.stop = function() {
28069          inProgress = null;
28070        };
28071        jQuery2.fx.speeds = {
28072          slow: 600,
28073          fast: 200,
28074          // Default speed
28075          _default: 400
28076        };
28077        jQuery2.fn.delay = function(time, type) {
28078          time = jQuery2.fx ? jQuery2.fx.speeds[time] || time : time;
28079          type = type || "fx";
28080          return this.queue(type, function(next, hooks) {
28081            var timeout = window2.setTimeout(next, time);
28082            hooks.stop = function() {
28083              window2.clearTimeout(timeout);
28084            };
28085          });
28086        };
28087        (function() {
28088          var input = document2.createElement("input"), select2 = document2.createElement("select"), opt = select2.appendChild(document2.createElement("option"));
28089          input.type = "checkbox";
28090          support.checkOn = input.value !== "";
28091          support.optSelected = opt.selected;
28092          input = document2.createElement("input");
28093          input.value = "t";
28094          input.type = "radio";
28095          support.radioValue = input.value === "t";
28096        })();
28097        var boolHook, attrHandle = jQuery2.expr.attrHandle;
28098        jQuery2.fn.extend({
28099          attr: function(name, value) {
28100            return access(this, jQuery2.attr, name, value, arguments.length > 1);
28101          },
28102          removeAttr: function(name) {
28103            return this.each(function() {
28104              jQuery2.removeAttr(this, name);
28105            });
28106          }
28107        });
28108        jQuery2.extend({
28109          attr: function(elem, name, value) {
28110            var ret, hooks, nType = elem.nodeType;
28111            if (nType === 3 || nType === 8 || nType === 2) {
28112              return;
28113            }
28114            if (typeof elem.getAttribute === "undefined") {
28115              return jQuery2.prop(elem, name, value);
28116            }
28117            if (nType !== 1 || !jQuery2.isXMLDoc(elem)) {
28118              hooks = jQuery2.attrHooks[name.toLowerCase()] || (jQuery2.expr.match.bool.test(name) ? boolHook : void 0);
28119            }
28120            if (value !== void 0) {
28121              if (value === null) {
28122                jQuery2.removeAttr(elem, name);
28123                return;
28124              }
28125              if (hooks && "set" in hooks && (ret = hooks.set(elem, value, name)) !== void 0) {
28126                return ret;
28127              }
28128              elem.setAttribute(name, value + "");
28129              return value;
28130            }
28131            if (hooks && "get" in hooks && (ret = hooks.get(elem, name)) !== null) {
28132              return ret;
28133            }
28134            ret = jQuery2.find.attr(elem, name);
28135            return ret == null ? void 0 : ret;
28136          },
28137          attrHooks: {
28138            type: {
28139              set: function(elem, value) {
28140                if (!support.radioValue && value === "radio" && nodeName(elem, "input")) {
28141                  var val = elem.value;
28142                  elem.setAttribute("type", value);
28143                  if (val) {
28144                    elem.value = val;
28145                  }
28146                  return value;
28147                }
28148              }
28149            }
28150          },
28151          removeAttr: function(elem, value) {
28152            var name, i10 = 0, attrNames = value && value.match(rnothtmlwhite);
28153            if (attrNames && elem.nodeType === 1) {
28154              while (name = attrNames[i10++]) {
28155                elem.removeAttribute(name);
28156              }
28157            }
28158          }
28159        });
28160        boolHook = {
28161          set: function(elem, value, name) {
28162            if (value === false) {
28163              jQuery2.removeAttr(elem, name);
28164            } else {
28165              elem.setAttribute(name, name);
28166            }
28167            return name;
28168          }
28169        };
28170        jQuery2.each(jQuery2.expr.match.bool.source.match(/\w+/g), function(_i2, name) {
28171          var getter = attrHandle[name] || jQuery2.find.attr;
28172          attrHandle[name] = function(elem, name2, isXML) {
28173            var ret, handle, lowercaseName = name2.toLowerCase();
28174            if (!isXML) {
28175              handle = attrHandle[lowercaseName];
28176              attrHandle[lowercaseName] = ret;
28177              ret = getter(elem, name2, isXML) != null ? lowercaseName : null;
28178              attrHandle[lowercaseName] = handle;
28179            }
28180            return ret;
28181          };
28182        });
28183        var rfocusable = /^(?:input|select|textarea|button)$/i, rclickable = /^(?:a|area)$/i;
28184        jQuery2.fn.extend({
28185          prop: function(name, value) {
28186            return access(this, jQuery2.prop, name, value, arguments.length > 1);
28187          },
28188          removeProp: function(name) {
28189            return this.each(function() {
28190              delete this[jQuery2.propFix[name] || name];
28191            });
28192          }
28193        });
28194        jQuery2.extend({
28195          prop: function(elem, name, value) {
28196            var ret, hooks, nType = elem.nodeType;
28197            if (nType === 3 || nType === 8 || nType === 2) {
28198              return;
28199            }
28200            if (nType !== 1 || !jQuery2.isXMLDoc(elem)) {
28201              name = jQuery2.propFix[name] || name;
28202              hooks = jQuery2.propHooks[name];
28203            }
28204            if (value !== void 0) {
28205              if (hooks && "set" in hooks && (ret = hooks.set(elem, value, name)) !== void 0) {
28206                return ret;
28207              }
28208              return elem[name] = value;
28209            }
28210            if (hooks && "get" in hooks && (ret = hooks.get(elem, name)) !== null) {
28211              return ret;
28212            }
28213            return elem[name];
28214          },
28215          propHooks: {
28216            tabIndex: {
28217              get: function(elem) {
28218                var tabindex = jQuery2.find.attr(elem, "tabindex");
28219                if (tabindex) {
28220                  return parseInt(tabindex, 10);
28221                }
28222                if (rfocusable.test(elem.nodeName) || rclickable.test(elem.nodeName) && elem.href) {
28223                  return 0;
28224                }
28225                return -1;
28226              }
28227            }
28228          },
28229          propFix: {
28230            "for": "htmlFor",
28231            "class": "className"
28232          }
28233        });
28234        if (!support.optSelected) {
28235          jQuery2.propHooks.selected = {
28236            get: function(elem) {
28237              var parent = elem.parentNode;
28238              if (parent && parent.parentNode) {
28239                parent.parentNode.selectedIndex;
28240              }
28241              return null;
28242            },
28243            set: function(elem) {
28244              var parent = elem.parentNode;
28245              if (parent) {
28246                parent.selectedIndex;
28247                if (parent.parentNode) {
28248                  parent.parentNode.selectedIndex;
28249                }
28250              }
28251            }
28252          };
28253        }
28254        jQuery2.each([
28255          "tabIndex",
28256          "readOnly",
28257          "maxLength",
28258          "cellSpacing",
28259          "cellPadding",
28260          "rowSpan",
28261          "colSpan",
28262          "useMap",
28263          "frameBorder",
28264          "contentEditable"
28265        ], function() {
28266          jQuery2.propFix[this.toLowerCase()] = this;
28267        });
28268        function stripAndCollapse(value) {
28269          var tokens = value.match(rnothtmlwhite) || [];
28270          return tokens.join(" ");
28271        }
28272        function getClass(elem) {
28273          return elem.getAttribute && elem.getAttribute("class") || "";
28274        }
28275        function classesToArray(value) {
28276          if (Array.isArray(value)) {
28277            return value;
28278          }
28279          if (typeof value === "string") {
28280            return value.match(rnothtmlwhite) || [];
28281          }
28282          return [];
28283        }
28284        jQuery2.fn.extend({
28285          addClass: function(value) {
28286            var classNames, cur, curValue, className, i10, finalValue;
28287            if (isFunction(value)) {
28288              return this.each(function(j2) {
28289                jQuery2(this).addClass(value.call(this, j2, getClass(this)));
28290              });
28291            }
28292            classNames = classesToArray(value);
28293            if (classNames.length) {
28294              return this.each(function() {
28295                curValue = getClass(this);
28296                cur = this.nodeType === 1 && " " + stripAndCollapse(curValue) + " ";
28297                if (cur) {
28298                  for (i10 = 0; i10 < classNames.length; i10++) {
28299                    className = classNames[i10];
28300                    if (cur.indexOf(" " + className + " ") < 0) {
28301                      cur += className + " ";
28302                    }
28303                  }
28304                  finalValue = stripAndCollapse(cur);
28305                  if (curValue !== finalValue) {
28306                    this.setAttribute("class", finalValue);
28307                  }
28308                }
28309              });
28310            }
28311            return this;
28312          },
28313          removeClass: function(value) {
28314            var classNames, cur, curValue, className, i10, finalValue;
28315            if (isFunction(value)) {
28316              return this.each(function(j2) {
28317                jQuery2(this).removeClass(value.call(this, j2, getClass(this)));
28318              });
28319            }
28320            if (!arguments.length) {
28321              return this.attr("class", "");
28322            }
28323            classNames = classesToArray(value);
28324            if (classNames.length) {
28325              return this.each(function() {
28326                curValue = getClass(this);
28327                cur = this.nodeType === 1 && " " + stripAndCollapse(curValue) + " ";
28328                if (cur) {
28329                  for (i10 = 0; i10 < classNames.length; i10++) {
28330                    className = classNames[i10];
28331                    while (cur.indexOf(" " + className + " ") > -1) {
28332                      cur = cur.replace(" " + className + " ", " ");
28333                    }
28334                  }
28335                  finalValue = stripAndCollapse(cur);
28336                  if (curValue !== finalValue) {
28337                    this.setAttribute("class", finalValue);
28338                  }
28339                }
28340              });
28341            }
28342            return this;
28343          },
28344          toggleClass: function(value, stateVal) {
28345            var classNames, className, i10, self2, type = typeof value, isValidValue = type === "string" || Array.isArray(value);
28346            if (isFunction(value)) {
28347              return this.each(function(i11) {
28348                jQuery2(this).toggleClass(
28349                  value.call(this, i11, getClass(this), stateVal),
28350                  stateVal
28351                );
28352              });
28353            }
28354            if (typeof stateVal === "boolean" && isValidValue) {
28355              return stateVal ? this.addClass(value) : this.removeClass(value);
28356            }
28357            classNames = classesToArray(value);
28358            return this.each(function() {
28359              if (isValidValue) {
28360                self2 = jQuery2(this);
28361                for (i10 = 0; i10 < classNames.length; i10++) {
28362                  className = classNames[i10];
28363                  if (self2.hasClass(className)) {
28364                    self2.removeClass(className);
28365                  } else {
28366                    self2.addClass(className);
28367                  }
28368                }
28369              } else if (value === void 0 || type === "boolean") {
28370                className = getClass(this);
28371                if (className) {
28372                  dataPriv.set(this, "__className__", className);
28373                }
28374                if (this.setAttribute) {
28375                  this.setAttribute(
28376                    "class",
28377                    className || value === false ? "" : dataPriv.get(this, "__className__") || ""
28378                  );
28379                }
28380              }
28381            });
28382          },
28383          hasClass: function(selector3) {
28384            var className, elem, i10 = 0;
28385            className = " " + selector3 + " ";
28386            while (elem = this[i10++]) {
28387              if (elem.nodeType === 1 && (" " + stripAndCollapse(getClass(elem)) + " ").indexOf(className) > -1) {
28388                return true;
28389              }
28390            }
28391            return false;
28392          }
28393        });
28394        var rreturn = /\r/g;
28395        jQuery2.fn.extend({
28396          val: function(value) {
28397            var hooks, ret, valueIsFunction, elem = this[0];
28398            if (!arguments.length) {
28399              if (elem) {
28400                hooks = jQuery2.valHooks[elem.type] || jQuery2.valHooks[elem.nodeName.toLowerCase()];
28401                if (hooks && "get" in hooks && (ret = hooks.get(elem, "value")) !== void 0) {
28402                  return ret;
28403                }
28404                ret = elem.value;
28405                if (typeof ret === "string") {
28406                  return ret.replace(rreturn, "");
28407                }
28408                return ret == null ? "" : ret;
28409              }
28410              return;
28411            }
28412            valueIsFunction = isFunction(value);
28413            return this.each(function(i10) {
28414              var val;
28415              if (this.nodeType !== 1) {
28416                return;
28417              }
28418              if (valueIsFunction) {
28419                val = value.call(this, i10, jQuery2(this).val());
28420              } else {
28421                val = value;
28422              }
28423              if (val == null) {
28424                val = "";
28425              } else if (typeof val === "number") {
28426                val += "";
28427              } else if (Array.isArray(val)) {
28428                val = jQuery2.map(val, function(value2) {
28429                  return value2 == null ? "" : value2 + "";
28430                });
28431              }
28432              hooks = jQuery2.valHooks[this.type] || jQuery2.valHooks[this.nodeName.toLowerCase()];
28433              if (!hooks || !("set" in hooks) || hooks.set(this, val, "value") === void 0) {
28434                this.value = val;
28435              }
28436            });
28437          }
28438        });
28439        jQuery2.extend({
28440          valHooks: {
28441            option: {
28442              get: function(elem) {
28443                var val = jQuery2.find.attr(elem, "value");
28444                return val != null ? val : (
28445                  // Support: IE <=10 - 11 only
28446                  // option.text throws exceptions (trac-14686, trac-14858)
28447                  // Strip and collapse whitespace
28448                  // https://html.spec.whatwg.org/#strip-and-collapse-whitespace
28449                  stripAndCollapse(jQuery2.text(elem))
28450                );
28451              }
28452            },
28453            select: {
28454              get: function(elem) {
28455                var value, option, i10, options = elem.options, index = elem.selectedIndex, one = elem.type === "select-one", values = one ? null : [], max = one ? index + 1 : options.length;
28456                if (index < 0) {
28457                  i10 = max;
28458                } else {
28459                  i10 = one ? index : 0;
28460                }
28461                for (; i10 < max; i10++) {
28462                  option = options[i10];
28463                  if ((option.selected || i10 === index) && // Don't return options that are disabled or in a disabled optgroup
28464                  !option.disabled && (!option.parentNode.disabled || !nodeName(option.parentNode, "optgroup"))) {
28465                    value = jQuery2(option).val();
28466                    if (one) {
28467                      return value;
28468                    }
28469                    values.push(value);
28470                  }
28471                }
28472                return values;
28473              },
28474              set: function(elem, value) {
28475                var optionSet, option, options = elem.options, values = jQuery2.makeArray(value), i10 = options.length;
28476                while (i10--) {
28477                  option = options[i10];
28478                  if (option.selected = jQuery2.inArray(jQuery2.valHooks.option.get(option), values) > -1) {
28479                    optionSet = true;
28480                  }
28481                }
28482                if (!optionSet) {
28483                  elem.selectedIndex = -1;
28484                }
28485                return values;
28486              }
28487            }
28488          }
28489        });
28490        jQuery2.each(["radio", "checkbox"], function() {
28491          jQuery2.valHooks[this] = {
28492            set: function(elem, value) {
28493              if (Array.isArray(value)) {
28494                return elem.checked = jQuery2.inArray(jQuery2(elem).val(), value) > -1;
28495              }
28496            }
28497          };
28498          if (!support.checkOn) {
28499            jQuery2.valHooks[this].get = function(elem) {
28500              return elem.getAttribute("value") === null ? "on" : elem.value;
28501            };
28502          }
28503        });
28504        var location2 = window2.location;
28505        var nonce = { guid: Date.now() };
28506        var rquery = /\?/;
28507        jQuery2.parseXML = function(data) {
28508          var xml, parserErrorElem;
28509          if (!data || typeof data !== "string") {
28510            return null;
28511          }
28512          try {
28513            xml = new window2.DOMParser().parseFromString(data, "text/xml");
28514          } catch (e11) {
28515          }
28516          parserErrorElem = xml && xml.getElementsByTagName("parsererror")[0];
28517          if (!xml || parserErrorElem) {
28518            jQuery2.error("Invalid XML: " + (parserErrorElem ? jQuery2.map(parserErrorElem.childNodes, function(el) {
28519              return el.textContent;
28520            }).join("\n") : data));
28521          }
28522          return xml;
28523        };
28524        var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, stopPropagationCallback = function(e11) {
28525          e11.stopPropagation();
28526        };
28527        jQuery2.extend(jQuery2.event, {
28528          trigger: function(event, data, elem, onlyHandlers) {
28529            var i10, cur, tmp, bubbleType, ontype, handle, special, lastElement, eventPath = [elem || document2], type = hasOwn.call(event, "type") ? event.type : event, namespaces = hasOwn.call(event, "namespace") ? event.namespace.split(".") : [];
28530            cur = lastElement = tmp = elem = elem || document2;
28531            if (elem.nodeType === 3 || elem.nodeType === 8) {
28532              return;
28533            }
28534            if (rfocusMorph.test(type + jQuery2.event.triggered)) {
28535              return;
28536            }
28537            if (type.indexOf(".") > -1) {
28538              namespaces = type.split(".");
28539              type = namespaces.shift();
28540              namespaces.sort();
28541            }
28542            ontype = type.indexOf(":") < 0 && "on" + type;
28543            event = event[jQuery2.expando] ? event : new jQuery2.Event(type, typeof event === "object" && event);
28544            event.isTrigger = onlyHandlers ? 2 : 3;
28545            event.namespace = namespaces.join(".");
28546            event.rnamespace = event.namespace ? new RegExp("(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)") : null;
28547            event.result = void 0;
28548            if (!event.target) {
28549              event.target = elem;
28550            }
28551            data = data == null ? [event] : jQuery2.makeArray(data, [event]);
28552            special = jQuery2.event.special[type] || {};
28553            if (!onlyHandlers && special.trigger && special.trigger.apply(elem, data) === false) {
28554              return;
28555            }
28556            if (!onlyHandlers && !special.noBubble && !isWindow(elem)) {
28557              bubbleType = special.delegateType || type;
28558              if (!rfocusMorph.test(bubbleType + type)) {
28559                cur = cur.parentNode;
28560              }
28561              for (; cur; cur = cur.parentNode) {
28562                eventPath.push(cur);
28563                tmp = cur;
28564              }
28565              if (tmp === (elem.ownerDocument || document2)) {
28566                eventPath.push(tmp.defaultView || tmp.parentWindow || window2);
28567              }
28568            }
28569            i10 = 0;
28570            while ((cur = eventPath[i10++]) && !event.isPropagationStopped()) {
28571              lastElement = cur;
28572              event.type = i10 > 1 ? bubbleType : special.bindType || type;
28573              handle = (dataPriv.get(cur, "events") || /* @__PURE__ */ Object.create(null))[event.type] && dataPriv.get(cur, "handle");
28574              if (handle) {
28575                handle.apply(cur, data);
28576              }
28577              handle = ontype && cur[ontype];
28578              if (handle && handle.apply && acceptData(cur)) {
28579                event.result = handle.apply(cur, data);
28580                if (event.result === false) {
28581                  event.preventDefault();
28582                }
28583              }
28584            }
28585            event.type = type;
28586            if (!onlyHandlers && !event.isDefaultPrevented()) {
28587              if ((!special._default || special._default.apply(eventPath.pop(), data) === false) && acceptData(elem)) {
28588                if (ontype && isFunction(elem[type]) && !isWindow(elem)) {
28589                  tmp = elem[ontype];
28590                  if (tmp) {
28591                    elem[ontype] = null;
28592                  }
28593                  jQuery2.event.triggered = type;
28594                  if (event.isPropagationStopped()) {
28595                    lastElement.addEventListener(type, stopPropagationCallback);
28596                  }
28597                  elem[type]();
28598                  if (event.isPropagationStopped()) {
28599                    lastElement.removeEventListener(type, stopPropagationCallback);
28600                  }
28601                  jQuery2.event.triggered = void 0;
28602                  if (tmp) {
28603                    elem[ontype] = tmp;
28604                  }
28605                }
28606              }
28607            }
28608            return event.result;
28609          },
28610          // Piggyback on a donor event to simulate a different one
28611          // Used only for `focus(in | out)` events
28612          simulate: function(type, elem, event) {
28613            var e11 = jQuery2.extend(
28614              new jQuery2.Event(),
28615              event,
28616              {
28617                type,
28618                isSimulated: true
28619              }
28620            );
28621            jQuery2.event.trigger(e11, null, elem);
28622          }
28623        });
28624        jQuery2.fn.extend({
28625          trigger: function(type, data) {
28626            return this.each(function() {
28627              jQuery2.event.trigger(type, data, this);
28628            });
28629          },
28630          triggerHandler: function(type, data) {
28631            var elem = this[0];
28632            if (elem) {
28633              return jQuery2.event.trigger(type, data, elem, true);
28634            }
28635          }
28636        });
28637        var rbracket = /\[\]$/, rCRLF = /\r?\n/g, rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, rsubmittable = /^(?:input|select|textarea|keygen)/i;
28638        function buildParams(prefix, obj, traditional, add) {
28639          var name;
28640          if (Array.isArray(obj)) {
28641            jQuery2.each(obj, function(i10, v3) {
28642              if (traditional || rbracket.test(prefix)) {
28643                add(prefix, v3);
28644              } else {
28645                buildParams(
28646                  prefix + "[" + (typeof v3 === "object" && v3 != null ? i10 : "") + "]",
28647                  v3,
28648                  traditional,
28649                  add
28650                );
28651              }
28652            });
28653          } else if (!traditional && toType(obj) === "object") {
28654            for (name in obj) {
28655              buildParams(prefix + "[" + name + "]", obj[name], traditional, add);
28656            }
28657          } else {
28658            add(prefix, obj);
28659          }
28660        }
28661        jQuery2.param = function(a8, traditional) {
28662          var prefix, s13 = [], add = function(key, valueOrFunction) {
28663            var value = isFunction(valueOrFunction) ? valueOrFunction() : valueOrFunction;
28664            s13[s13.length] = encodeURIComponent(key) + "=" + encodeURIComponent(value == null ? "" : value);
28665          };
28666          if (a8 == null) {
28667            return "";
28668          }
28669          if (Array.isArray(a8) || a8.jquery && !jQuery2.isPlainObject(a8)) {
28670            jQuery2.each(a8, function() {
28671              add(this.name, this.value);
28672            });
28673          } else {
28674            for (prefix in a8) {
28675              buildParams(prefix, a8[prefix], traditional, add);
28676            }
28677          }
28678          return s13.join("&");
28679        };
28680        jQuery2.fn.extend({
28681          serialize: function() {
28682            return jQuery2.param(this.serializeArray());
28683          },
28684          serializeArray: function() {
28685            return this.map(function() {
28686              var elements = jQuery2.prop(this, "elements");
28687              return elements ? jQuery2.makeArray(elements) : this;
28688            }).filter(function() {
28689              var type = this.type;
28690              return this.name && !jQuery2(this).is(":disabled") && rsubmittable.test(this.nodeName) && !rsubmitterTypes.test(type) && (this.checked || !rcheckableType.test(type));
28691            }).map(function(_i2, elem) {
28692              var val = jQuery2(this).val();
28693              if (val == null) {
28694                return null;
28695              }
28696              if (Array.isArray(val)) {
28697                return jQuery2.map(val, function(val2) {
28698                  return { name: elem.name, value: val2.replace(rCRLF, "\r\n") };
28699                });
28700              }
28701              return { name: elem.name, value: val.replace(rCRLF, "\r\n") };
28702            }).get();
28703          }
28704        });
28705        var r20 = /%20/g, rhash = /#.*$/, rantiCache = /([?&])_=[^&]*/, rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg, rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, rnoContent = /^(?:GET|HEAD)$/, rprotocol = /^\/\//, prefilters = {}, transports = {}, allTypes = "*/".concat("*"), originAnchor = document2.createElement("a");
28706        originAnchor.href = location2.href;
28707        function addToPrefiltersOrTransports(structure) {
28708          return function(dataTypeExpression, func) {
28709            if (typeof dataTypeExpression !== "string") {
28710              func = dataTypeExpression;
28711              dataTypeExpression = "*";
28712            }
28713            var dataType, i10 = 0, dataTypes = dataTypeExpression.toLowerCase().match(rnothtmlwhite) || [];
28714            if (isFunction(func)) {
28715              while (dataType = dataTypes[i10++]) {
28716                if (dataType[0] === "+") {
28717                  dataType = dataType.slice(1) || "*";
28718                  (structure[dataType] = structure[dataType] || []).unshift(func);
28719                } else {
28720                  (structure[dataType] = structure[dataType] || []).push(func);
28721                }
28722              }
28723            }
28724          };
28725        }
28726        function inspectPrefiltersOrTransports(structure, options, originalOptions, jqXHR) {
28727          var inspected = {}, seekingTransport = structure === transports;
28728          function inspect(dataType) {
28729            var selected;
28730            inspected[dataType] = true;
28731            jQuery2.each(structure[dataType] || [], function(_2, prefilterOrFactory) {
28732              var dataTypeOrTransport = prefilterOrFactory(options, originalOptions, jqXHR);
28733              if (typeof dataTypeOrTransport === "string" && !seekingTransport && !inspected[dataTypeOrTransport]) {
28734                options.dataTypes.unshift(dataTypeOrTransport);
28735                inspect(dataTypeOrTransport);
28736                return false;
28737              } else if (seekingTransport) {
28738                return !(selected = dataTypeOrTransport);
28739              }
28740            });
28741            return selected;
28742          }
28743          return inspect(options.dataTypes[0]) || !inspected["*"] && inspect("*");
28744        }
28745        function ajaxExtend(target, src) {
28746          var key, deep, flatOptions = jQuery2.ajaxSettings.flatOptions || {};
28747          for (key in src) {
28748            if (src[key] !== void 0) {
28749              (flatOptions[key] ? target : deep || (deep = {}))[key] = src[key];
28750            }
28751          }
28752          if (deep) {
28753            jQuery2.extend(true, target, deep);
28754          }
28755          return target;
28756        }
28757        function ajaxHandleResponses(s13, jqXHR, responses) {
28758          var ct, type, finalDataType, firstDataType, contents = s13.contents, dataTypes = s13.dataTypes;
28759          while (dataTypes[0] === "*") {
28760            dataTypes.shift();
28761            if (ct === void 0) {
28762              ct = s13.mimeType || jqXHR.getResponseHeader("Content-Type");
28763            }
28764          }
28765          if (ct) {
28766            for (type in contents) {
28767              if (contents[type] && contents[type].test(ct)) {
28768                dataTypes.unshift(type);
28769                break;
28770              }
28771            }
28772          }
28773          if (dataTypes[0] in responses) {
28774            finalDataType = dataTypes[0];
28775          } else {
28776            for (type in responses) {
28777              if (!dataTypes[0] || s13.converters[type + " " + dataTypes[0]]) {
28778                finalDataType = type;
28779                break;
28780              }
28781              if (!firstDataType) {
28782                firstDataType = type;
28783              }
28784            }
28785            finalDataType = finalDataType || firstDataType;
28786          }
28787          if (finalDataType) {
28788            if (finalDataType !== dataTypes[0]) {
28789              dataTypes.unshift(finalDataType);
28790            }
28791            return responses[finalDataType];
28792          }
28793        }
28794        function ajaxConvert(s13, response, jqXHR, isSuccess) {
28795          var conv2, current, conv, tmp, prev, converters = {}, dataTypes = s13.dataTypes.slice();
28796          if (dataTypes[1]) {
28797            for (conv in s13.converters) {
28798              converters[conv.toLowerCase()] = s13.converters[conv];
28799            }
28800          }
28801          current = dataTypes.shift();
28802          while (current) {
28803            if (s13.responseFields[current]) {
28804              jqXHR[s13.responseFields[current]] = response;
28805            }
28806            if (!prev && isSuccess && s13.dataFilter) {
28807              response = s13.dataFilter(response, s13.dataType);
28808            }
28809            prev = current;
28810            current = dataTypes.shift();
28811            if (current) {
28812              if (current === "*") {
28813                current = prev;
28814              } else if (prev !== "*" && prev !== current) {
28815                conv = converters[prev + " " + current] || converters["* " + current];
28816                if (!conv) {
28817                  for (conv2 in converters) {
28818                    tmp = conv2.split(" ");
28819                    if (tmp[1] === current) {
28820                      conv = converters[prev + " " + tmp[0]] || converters["* " + tmp[0]];
28821                      if (conv) {
28822                        if (conv === true) {
28823                          conv = converters[conv2];
28824                        } else if (converters[conv2] !== true) {
28825                          current = tmp[0];
28826                          dataTypes.unshift(tmp[1]);
28827                        }
28828                        break;
28829                      }
28830                    }
28831                  }
28832                }
28833                if (conv !== true) {
28834                  if (conv && s13.throws) {
28835                    response = conv(response);
28836                  } else {
28837                    try {
28838                      response = conv(response);
28839                    } catch (e11) {
28840                      return {
28841                        state: "parsererror",
28842                        error: conv ? e11 : "No conversion from " + prev + " to " + current
28843                      };
28844                    }
28845                  }
28846                }
28847              }
28848            }
28849          }
28850          return { state: "success", data: response };
28851        }
28852        jQuery2.extend({
28853          // Counter for holding the number of active queries
28854          active: 0,
28855          // Last-Modified header cache for next request
28856          lastModified: {},
28857          etag: {},
28858          ajaxSettings: {
28859            url: location2.href,
28860            type: "GET",
28861            isLocal: rlocalProtocol.test(location2.protocol),
28862            global: true,
28863            processData: true,
28864            async: true,
28865            contentType: "application/x-www-form-urlencoded; charset=UTF-8",
28866            /*
28867            timeout: 0,
28868            data: null,
28869            dataType: null,
28870            username: null,
28871            password: null,
28872            cache: null,
28873            throws: false,
28874            traditional: false,
28875            headers: {},
28876            */
28877            accepts: {
28878              "*": allTypes,
28879              text: "text/plain",
28880              html: "text/html",
28881              xml: "application/xml, text/xml",
28882              json: "application/json, text/javascript"
28883            },
28884            contents: {
28885              xml: /\bxml\b/,
28886              html: /\bhtml/,
28887              json: /\bjson\b/
28888            },
28889            responseFields: {
28890              xml: "responseXML",
28891              text: "responseText",
28892              json: "responseJSON"
28893            },
28894            // Data converters
28895            // Keys separate source (or catchall "*") and destination types with a single space
28896            converters: {
28897              // Convert anything to text
28898              "* text": String,
28899              // Text to html (true = no transformation)
28900              "text html": true,
28901              // Evaluate text as a json expression
28902              "text json": JSON.parse,
28903              // Parse text as xml
28904              "text xml": jQuery2.parseXML
28905            },
28906            // For options that shouldn't be deep extended:
28907            // you can add your own custom options here if
28908            // and when you create one that shouldn't be
28909            // deep extended (see ajaxExtend)
28910            flatOptions: {
28911              url: true,
28912              context: true
28913            }
28914          },
28915          // Creates a full fledged settings object into target
28916          // with both ajaxSettings and settings fields.
28917          // If target is omitted, writes into ajaxSettings.
28918          ajaxSetup: function(target, settings) {
28919            return settings ? (
28920              // Building a settings object
28921              ajaxExtend(ajaxExtend(target, jQuery2.ajaxSettings), settings)
28922            ) : (
28923              // Extending ajaxSettings
28924              ajaxExtend(jQuery2.ajaxSettings, target)
28925            );
28926          },
28927          ajaxPrefilter: addToPrefiltersOrTransports(prefilters),
28928          ajaxTransport: addToPrefiltersOrTransports(transports),
28929          // Main method
28930          ajax: function(url, options) {
28931            if (typeof url === "object") {
28932              options = url;
28933              url = void 0;
28934            }
28935            options = options || {};
28936            var transport, cacheURL, responseHeadersString, responseHeaders, timeoutTimer, urlAnchor, completed2, fireGlobals, i10, uncached, s13 = jQuery2.ajaxSetup({}, options), callbackContext = s13.context || s13, globalEventContext = s13.context && (callbackContext.nodeType || callbackContext.jquery) ? jQuery2(callbackContext) : jQuery2.event, deferred = jQuery2.Deferred(), completeDeferred = jQuery2.Callbacks("once memory"), statusCode = s13.statusCode || {}, requestHeaders = {}, requestHeadersNames = {}, strAbort = "canceled", jqXHR = {
28937              readyState: 0,
28938              // Builds headers hashtable if needed
28939              getResponseHeader: function(key) {
28940                var match;
28941                if (completed2) {
28942                  if (!responseHeaders) {
28943                    responseHeaders = {};
28944                    while (match = rheaders.exec(responseHeadersString)) {
28945                      responseHeaders[match[1].toLowerCase() + " "] = (responseHeaders[match[1].toLowerCase() + " "] || []).concat(match[2]);
28946                    }
28947                  }
28948                  match = responseHeaders[key.toLowerCase() + " "];
28949                }
28950                return match == null ? null : match.join(", ");
28951              },
28952              // Raw string
28953              getAllResponseHeaders: function() {
28954                return completed2 ? responseHeadersString : null;
28955              },
28956              // Caches the header
28957              setRequestHeader: function(name, value) {
28958                if (completed2 == null) {
28959                  name = requestHeadersNames[name.toLowerCase()] = requestHeadersNames[name.toLowerCase()] || name;
28960                  requestHeaders[name] = value;
28961                }
28962                return this;
28963              },
28964              // Overrides response content-type header
28965              overrideMimeType: function(type) {
28966                if (completed2 == null) {
28967                  s13.mimeType = type;
28968                }
28969                return this;
28970              },
28971              // Status-dependent callbacks
28972              statusCode: function(map) {
28973                var code;
28974                if (map) {
28975                  if (completed2) {
28976                    jqXHR.always(map[jqXHR.status]);
28977                  } else {
28978                    for (code in map) {
28979                      statusCode[code] = [statusCode[code], map[code]];
28980                    }
28981                  }
28982                }
28983                return this;
28984              },
28985              // Cancel the request
28986              abort: function(statusText) {
28987                var finalText = statusText || strAbort;
28988                if (transport) {
28989                  transport.abort(finalText);
28990                }
28991                done(0, finalText);
28992                return this;
28993              }
28994            };
28995            deferred.promise(jqXHR);
28996            s13.url = ((url || s13.url || location2.href) + "").replace(rprotocol, location2.protocol + "//");
28997            s13.type = options.method || options.type || s13.method || s13.type;
28998            s13.dataTypes = (s13.dataType || "*").toLowerCase().match(rnothtmlwhite) || [""];
28999            if (s13.crossDomain == null) {
29000              urlAnchor = document2.createElement("a");
29001              try {
29002                urlAnchor.href = s13.url;
29003                urlAnchor.href = urlAnchor.href;
29004                s13.crossDomain = originAnchor.protocol + "//" + originAnchor.host !== urlAnchor.protocol + "//" + urlAnchor.host;
29005              } catch (e11) {
29006                s13.crossDomain = true;
29007              }
29008            }
29009            if (s13.data && s13.processData && typeof s13.data !== "string") {
29010              s13.data = jQuery2.param(s13.data, s13.traditional);
29011            }
29012            inspectPrefiltersOrTransports(prefilters, s13, options, jqXHR);
29013            if (completed2) {
29014              return jqXHR;
29015            }
29016            fireGlobals = jQuery2.event && s13.global;
29017            if (fireGlobals && jQuery2.active++ === 0) {
29018              jQuery2.event.trigger("ajaxStart");
29019            }
29020            s13.type = s13.type.toUpperCase();
29021            s13.hasContent = !rnoContent.test(s13.type);
29022            cacheURL = s13.url.replace(rhash, "");
29023            if (!s13.hasContent) {
29024              uncached = s13.url.slice(cacheURL.length);
29025              if (s13.data && (s13.processData || typeof s13.data === "string")) {
29026                cacheURL += (rquery.test(cacheURL) ? "&" : "?") + s13.data;
29027                delete s13.data;
29028              }
29029              if (s13.cache === false) {
29030                cacheURL = cacheURL.replace(rantiCache, "$1");
29031                uncached = (rquery.test(cacheURL) ? "&" : "?") + "_=" + nonce.guid++ + uncached;
29032              }
29033              s13.url = cacheURL + uncached;
29034            } else if (s13.data && s13.processData && (s13.contentType || "").indexOf("application/x-www-form-urlencoded") === 0) {
29035              s13.data = s13.data.replace(r20, "+");
29036            }
29037            if (s13.ifModified) {
29038              if (jQuery2.lastModified[cacheURL]) {
29039                jqXHR.setRequestHeader("If-Modified-Since", jQuery2.lastModified[cacheURL]);
29040              }
29041              if (jQuery2.etag[cacheURL]) {
29042                jqXHR.setRequestHeader("If-None-Match", jQuery2.etag[cacheURL]);
29043              }
29044            }
29045            if (s13.data && s13.hasContent && s13.contentType !== false || options.contentType) {
29046              jqXHR.setRequestHeader("Content-Type", s13.contentType);
29047            }
29048            jqXHR.setRequestHeader(
29049              "Accept",
29050              s13.dataTypes[0] && s13.accepts[s13.dataTypes[0]] ? s13.accepts[s13.dataTypes[0]] + (s13.dataTypes[0] !== "*" ? ", " + allTypes + "; q=0.01" : "") : s13.accepts["*"]
29051            );
29052            for (i10 in s13.headers) {
29053              jqXHR.setRequestHeader(i10, s13.headers[i10]);
29054            }
29055            if (s13.beforeSend && (s13.beforeSend.call(callbackContext, jqXHR, s13) === false || completed2)) {
29056              return jqXHR.abort();
29057            }
29058            strAbort = "abort";
29059            completeDeferred.add(s13.complete);
29060            jqXHR.done(s13.success);
29061            jqXHR.fail(s13.error);
29062            transport = inspectPrefiltersOrTransports(transports, s13, options, jqXHR);
29063            if (!transport) {
29064              done(-1, "No Transport");
29065            } else {
29066              jqXHR.readyState = 1;
29067              if (fireGlobals) {
29068                globalEventContext.trigger("ajaxSend", [jqXHR, s13]);
29069              }
29070              if (completed2) {
29071                return jqXHR;
29072              }
29073              if (s13.async && s13.timeout > 0) {
29074                timeoutTimer = window2.setTimeout(function() {
29075                  jqXHR.abort("timeout");
29076                }, s13.timeout);
29077              }
29078              try {
29079                completed2 = false;
29080                transport.send(requestHeaders, done);
29081              } catch (e11) {
29082                if (completed2) {
29083                  throw e11;
29084                }
29085                done(-1, e11);
29086              }
29087            }
29088            function done(status, nativeStatusText, responses, headers) {
29089              var isSuccess, success, error, response, modified, statusText = nativeStatusText;
29090              if (completed2) {
29091                return;
29092              }
29093              completed2 = true;
29094              if (timeoutTimer) {
29095                window2.clearTimeout(timeoutTimer);
29096              }
29097              transport = void 0;
29098              responseHeadersString = headers || "";
29099              jqXHR.readyState = status > 0 ? 4 : 0;
29100              isSuccess = status >= 200 && status < 300 || status === 304;
29101              if (responses) {
29102                response = ajaxHandleResponses(s13, jqXHR, responses);
29103              }
29104              if (!isSuccess && jQuery2.inArray("script", s13.dataTypes) > -1 && jQuery2.inArray("json", s13.dataTypes) < 0) {
29105                s13.converters["text script"] = function() {
29106                };
29107              }
29108              response = ajaxConvert(s13, response, jqXHR, isSuccess);
29109              if (isSuccess) {
29110                if (s13.ifModified) {
29111                  modified = jqXHR.getResponseHeader("Last-Modified");
29112                  if (modified) {
29113                    jQuery2.lastModified[cacheURL] = modified;
29114                  }
29115                  modified = jqXHR.getResponseHeader("etag");
29116                  if (modified) {
29117                    jQuery2.etag[cacheURL] = modified;
29118                  }
29119                }
29120                if (status === 204 || s13.type === "HEAD") {
29121                  statusText = "nocontent";
29122                } else if (status === 304) {
29123                  statusText = "notmodified";
29124                } else {
29125                  statusText = response.state;
29126                  success = response.data;
29127                  error = response.error;
29128                  isSuccess = !error;
29129                }
29130              } else {
29131                error = statusText;
29132                if (status || !statusText) {
29133                  statusText = "error";
29134                  if (status < 0) {
29135                    status = 0;
29136                  }
29137                }
29138              }
29139              jqXHR.status = status;
29140              jqXHR.statusText = (nativeStatusText || statusText) + "";
29141              if (isSuccess) {
29142                deferred.resolveWith(callbackContext, [success, statusText, jqXHR]);
29143              } else {
29144                deferred.rejectWith(callbackContext, [jqXHR, statusText, error]);
29145              }
29146              jqXHR.statusCode(statusCode);
29147              statusCode = void 0;
29148              if (fireGlobals) {
29149                globalEventContext.trigger(
29150                  isSuccess ? "ajaxSuccess" : "ajaxError",
29151                  [jqXHR, s13, isSuccess ? success : error]
29152                );
29153              }
29154              completeDeferred.fireWith(callbackContext, [jqXHR, statusText]);
29155              if (fireGlobals) {
29156                globalEventContext.trigger("ajaxComplete", [jqXHR, s13]);
29157                if (!--jQuery2.active) {
29158                  jQuery2.event.trigger("ajaxStop");
29159                }
29160              }
29161            }
29162            return jqXHR;
29163          },
29164          getJSON: function(url, data, callback) {
29165            return jQuery2.get(url, data, callback, "json");
29166          },
29167          getScript: function(url, callback) {
29168            return jQuery2.get(url, void 0, callback, "script");
29169          }
29170        });
29171        jQuery2.each(["get", "post"], function(_i2, method) {
29172          jQuery2[method] = function(url, data, callback, type) {
29173            if (isFunction(data)) {
29174              type = type || callback;
29175              callback = data;
29176              data = void 0;
29177            }
29178            return jQuery2.ajax(jQuery2.extend({
29179              url,
29180              type: method,
29181              dataType: type,
29182              data,
29183              success: callback
29184            }, jQuery2.isPlainObject(url) && url));
29185          };
29186        });
29187        jQuery2.ajaxPrefilter(function(s13) {
29188          var i10;
29189          for (i10 in s13.headers) {
29190            if (i10.toLowerCase() === "content-type") {
29191              s13.contentType = s13.headers[i10] || "";
29192            }
29193          }
29194        });
29195        jQuery2._evalUrl = function(url, options, doc) {
29196          return jQuery2.ajax({
29197            url,
29198            // Make this explicit, since user can override this through ajaxSetup (trac-11264)
29199            type: "GET",
29200            dataType: "script",
29201            cache: true,
29202            async: false,
29203            global: false,
29204            // Only evaluate the response if it is successful (gh-4126)
29205            // dataFilter is not invoked for failure responses, so using it instead
29206            // of the default converter is kludgy but it works.
29207            converters: {
29208              "text script": function() {
29209              }
29210            },
29211            dataFilter: function(response) {
29212              jQuery2.globalEval(response, options, doc);
29213            }
29214          });
29215        };
29216        jQuery2.fn.extend({
29217          wrapAll: function(html) {
29218            var wrap3;
29219            if (this[0]) {
29220              if (isFunction(html)) {
29221                html = html.call(this[0]);
29222              }
29223              wrap3 = jQuery2(html, this[0].ownerDocument).eq(0).clone(true);
29224              if (this[0].parentNode) {
29225                wrap3.insertBefore(this[0]);
29226              }
29227              wrap3.map(function() {
29228                var elem = this;
29229                while (elem.firstElementChild) {
29230                  elem = elem.firstElementChild;
29231                }
29232                return elem;
29233              }).append(this);
29234            }
29235            return this;
29236          },
29237          wrapInner: function(html) {
29238            if (isFunction(html)) {
29239              return this.each(function(i10) {
29240                jQuery2(this).wrapInner(html.call(this, i10));
29241              });
29242            }
29243            return this.each(function() {
29244              var self2 = jQuery2(this), contents = self2.contents();
29245              if (contents.length) {
29246                contents.wrapAll(html);
29247              } else {
29248                self2.append(html);
29249              }
29250            });
29251          },
29252          wrap: function(html) {
29253            var htmlIsFunction = isFunction(html);
29254            return this.each(function(i10) {
29255              jQuery2(this).wrapAll(htmlIsFunction ? html.call(this, i10) : html);
29256            });
29257          },
29258          unwrap: function(selector3) {
29259            this.parent(selector3).not("body").each(function() {
29260              jQuery2(this).replaceWith(this.childNodes);
29261            });
29262            return this;
29263          }
29264        });
29265        jQuery2.expr.pseudos.hidden = function(elem) {
29266          return !jQuery2.expr.pseudos.visible(elem);
29267        };
29268        jQuery2.expr.pseudos.visible = function(elem) {
29269          return !!(elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length);
29270        };
29271        jQuery2.ajaxSettings.xhr = function() {
29272          try {
29273            return new window2.XMLHttpRequest();
29274          } catch (e11) {
29275          }
29276        };
29277        var xhrSuccessStatus = {
29278          // File protocol always yields status code 0, assume 200
29279          0: 200,
29280          // Support: IE <=9 only
29281          // trac-1450: sometimes IE returns 1223 when it should be 204
29282          1223: 204
29283        }, xhrSupported = jQuery2.ajaxSettings.xhr();
29284        support.cors = !!xhrSupported && "withCredentials" in xhrSupported;
29285        support.ajax = xhrSupported = !!xhrSupported;
29286        jQuery2.ajaxTransport(function(options) {
29287          var callback, errorCallback;
29288          if (support.cors || xhrSupported && !options.crossDomain) {
29289            return {
29290              send: function(headers, complete) {
29291                var i10, xhr = options.xhr();
29292                xhr.open(
29293                  options.type,
29294                  options.url,
29295                  options.async,
29296                  options.username,
29297                  options.password
29298                );
29299                if (options.xhrFields) {
29300                  for (i10 in options.xhrFields) {
29301                    xhr[i10] = options.xhrFields[i10];
29302                  }
29303                }
29304                if (options.mimeType && xhr.overrideMimeType) {
29305                  xhr.overrideMimeType(options.mimeType);
29306                }
29307                if (!options.crossDomain && !headers["X-Requested-With"]) {
29308                  headers["X-Requested-With"] = "XMLHttpRequest";
29309                }
29310                for (i10 in headers) {
29311                  xhr.setRequestHeader(i10, headers[i10]);
29312                }
29313                callback = function(type) {
29314                  return function() {
29315                    if (callback) {
29316                      callback = errorCallback = xhr.onload = xhr.onerror = xhr.onabort = xhr.ontimeout = xhr.onreadystatechange = null;
29317                      if (type === "abort") {
29318                        xhr.abort();
29319                      } else if (type === "error") {
29320                        if (typeof xhr.status !== "number") {
29321                          complete(0, "error");
29322                        } else {
29323                          complete(
29324                            // File: protocol always yields status 0; see trac-8605, trac-14207
29325                            xhr.status,
29326                            xhr.statusText
29327                          );
29328                        }
29329                      } else {
29330                        complete(
29331                          xhrSuccessStatus[xhr.status] || xhr.status,
29332                          xhr.statusText,
29333                          // Support: IE <=9 only
29334                          // IE9 has no XHR2 but throws on binary (trac-11426)
29335                          // For XHR2 non-text, let the caller handle it (gh-2498)
29336                          (xhr.responseType || "text") !== "text" || typeof xhr.responseText !== "string" ? { binary: xhr.response } : { text: xhr.responseText },
29337                          xhr.getAllResponseHeaders()
29338                        );
29339                      }
29340                    }
29341                  };
29342                };
29343                xhr.onload = callback();
29344                errorCallback = xhr.onerror = xhr.ontimeout = callback("error");
29345                if (xhr.onabort !== void 0) {
29346                  xhr.onabort = errorCallback;
29347                } else {
29348                  xhr.onreadystatechange = function() {
29349                    if (xhr.readyState === 4) {
29350                      window2.setTimeout(function() {
29351                        if (callback) {
29352                          errorCallback();
29353                        }
29354                      });
29355                    }
29356                  };
29357                }
29358                callback = callback("abort");
29359                try {
29360                  xhr.send(options.hasContent && options.data || null);
29361                } catch (e11) {
29362                  if (callback) {
29363                    throw e11;
29364                  }
29365                }
29366              },
29367              abort: function() {
29368                if (callback) {
29369                  callback();
29370                }
29371              }
29372            };
29373          }
29374        });
29375        jQuery2.ajaxPrefilter(function(s13) {
29376          if (s13.crossDomain) {
29377            s13.contents.script = false;
29378          }
29379        });
29380        jQuery2.ajaxSetup({
29381          accepts: {
29382            script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
29383          },
29384          contents: {
29385            script: /\b(?:java|ecma)script\b/
29386          },
29387          converters: {
29388            "text script": function(text) {
29389              jQuery2.globalEval(text);
29390              return text;
29391            }
29392          }
29393        });
29394        jQuery2.ajaxPrefilter("script", function(s13) {
29395          if (s13.cache === void 0) {
29396            s13.cache = false;
29397          }
29398          if (s13.crossDomain) {
29399            s13.type = "GET";
29400          }
29401        });
29402        jQuery2.ajaxTransport("script", function(s13) {
29403          if (s13.crossDomain || s13.scriptAttrs) {
29404            var script, callback;
29405            return {
29406              send: function(_2, complete) {
29407                script = jQuery2("<script>").attr(s13.scriptAttrs || {}).prop({ charset: s13.scriptCharset, src: s13.url }).on("load error", callback = function(evt) {
29408                  script.remove();
29409                  callback = null;
29410                  if (evt) {
29411                    complete(evt.type === "error" ? 404 : 200, evt.type);
29412                  }
29413                });
29414                document2.head.appendChild(script[0]);
29415              },
29416              abort: function() {
29417                if (callback) {
29418                  callback();
29419                }
29420              }
29421            };
29422          }
29423        });
29424        var oldCallbacks = [], rjsonp = /(=)\?(?=&|$)|\?\?/;
29425        jQuery2.ajaxSetup({
29426          jsonp: "callback",
29427          jsonpCallback: function() {
29428            var callback = oldCallbacks.pop() || jQuery2.expando + "_" + nonce.guid++;
29429            this[callback] = true;
29430            return callback;
29431          }
29432        });
29433        jQuery2.ajaxPrefilter("json jsonp", function(s13, originalSettings, jqXHR) {
29434          var callbackName, overwritten, responseContainer, jsonProp = s13.jsonp !== false && (rjsonp.test(s13.url) ? "url" : typeof s13.data === "string" && (s13.contentType || "").indexOf("application/x-www-form-urlencoded") === 0 && rjsonp.test(s13.data) && "data");
29435          if (jsonProp || s13.dataTypes[0] === "jsonp") {
29436            callbackName = s13.jsonpCallback = isFunction(s13.jsonpCallback) ? s13.jsonpCallback() : s13.jsonpCallback;
29437            if (jsonProp) {
29438              s13[jsonProp] = s13[jsonProp].replace(rjsonp, "$1" + callbackName);
29439            } else if (s13.jsonp !== false) {
29440              s13.url += (rquery.test(s13.url) ? "&" : "?") + s13.jsonp + "=" + callbackName;
29441            }
29442            s13.converters["script json"] = function() {
29443              if (!responseContainer) {
29444                jQuery2.error(callbackName + " was not called");
29445              }
29446              return responseContainer[0];
29447            };
29448            s13.dataTypes[0] = "json";
29449            overwritten = window2[callbackName];
29450            window2[callbackName] = function() {
29451              responseContainer = arguments;
29452            };
29453            jqXHR.always(function() {
29454              if (overwritten === void 0) {
29455                jQuery2(window2).removeProp(callbackName);
29456              } else {
29457                window2[callbackName] = overwritten;
29458              }
29459              if (s13[callbackName]) {
29460                s13.jsonpCallback = originalSettings.jsonpCallback;
29461                oldCallbacks.push(callbackName);
29462              }
29463              if (responseContainer && isFunction(overwritten)) {
29464                overwritten(responseContainer[0]);
29465              }
29466              responseContainer = overwritten = void 0;
29467            });
29468            return "script";
29469          }
29470        });
29471        support.createHTMLDocument = (function() {
29472          var body = document2.implementation.createHTMLDocument("").body;
29473          body.innerHTML = "<form></form><form></form>";
29474          return body.childNodes.length === 2;
29475        })();
29476        jQuery2.parseHTML = function(data, context3, keepScripts) {
29477          if (typeof data !== "string") {
29478            return [];
29479          }
29480          if (typeof context3 === "boolean") {
29481            keepScripts = context3;
29482            context3 = false;
29483          }
29484          var base, parsed, scripts;
29485          if (!context3) {
29486            if (support.createHTMLDocument) {
29487              context3 = document2.implementation.createHTMLDocument("");
29488              base = context3.createElement("base");
29489              base.href = document2.location.href;
29490              context3.head.appendChild(base);
29491            } else {
29492              context3 = document2;
29493            }
29494          }
29495          parsed = rsingleTag.exec(data);
29496          scripts = !keepScripts && [];
29497          if (parsed) {
29498            return [context3.createElement(parsed[1])];
29499          }
29500          parsed = buildFragment([data], context3, scripts);
29501          if (scripts && scripts.length) {
29502            jQuery2(scripts).remove();
29503          }
29504          return jQuery2.merge([], parsed.childNodes);
29505        };
29506        jQuery2.fn.load = function(url, params, callback) {
29507          var selector3, type, response, self2 = this, off = url.indexOf(" ");
29508          if (off > -1) {
29509            selector3 = stripAndCollapse(url.slice(off));
29510            url = url.slice(0, off);
29511          }
29512          if (isFunction(params)) {
29513            callback = params;
29514            params = void 0;
29515          } else if (params && typeof params === "object") {
29516            type = "POST";
29517          }
29518          if (self2.length > 0) {
29519            jQuery2.ajax({
29520              url,
29521              // If "type" variable is undefined, then "GET" method will be used.
29522              // Make value of this field explicit since
29523              // user can override it through ajaxSetup method
29524              type: type || "GET",
29525              dataType: "html",
29526              data: params
29527            }).done(function(responseText) {
29528              response = arguments;
29529              self2.html(selector3 ? (
29530                // If a selector was specified, locate the right elements in a dummy div
29531                // Exclude scripts to avoid IE 'Permission Denied' errors
29532                jQuery2("<div>").append(jQuery2.parseHTML(responseText)).find(selector3)
29533              ) : (
29534                // Otherwise use the full result
29535                responseText
29536              ));
29537            }).always(callback && function(jqXHR, status) {
29538              self2.each(function() {
29539                callback.apply(this, response || [jqXHR.responseText, status, jqXHR]);
29540              });
29541            });
29542          }
29543          return this;
29544        };
29545        jQuery2.expr.pseudos.animated = function(elem) {
29546          return jQuery2.grep(jQuery2.timers, function(fn) {
29547            return elem === fn.elem;
29548          }).length;
29549        };
29550        jQuery2.offset = {
29551          setOffset: function(elem, options, i10) {
29552            var curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition, position = jQuery2.css(elem, "position"), curElem = jQuery2(elem), props = {};
29553            if (position === "static") {
29554              elem.style.position = "relative";
29555            }
29556            curOffset = curElem.offset();
29557            curCSSTop = jQuery2.css(elem, "top");
29558            curCSSLeft = jQuery2.css(elem, "left");
29559            calculatePosition = (position === "absolute" || position === "fixed") && (curCSSTop + curCSSLeft).indexOf("auto") > -1;
29560            if (calculatePosition) {
29561              curPosition = curElem.position();
29562              curTop = curPosition.top;
29563              curLeft = curPosition.left;
29564            } else {
29565              curTop = parseFloat(curCSSTop) || 0;
29566              curLeft = parseFloat(curCSSLeft) || 0;
29567            }
29568            if (isFunction(options)) {
29569              options = options.call(elem, i10, jQuery2.extend({}, curOffset));
29570            }
29571            if (options.top != null) {
29572              props.top = options.top - curOffset.top + curTop;
29573            }
29574            if (options.left != null) {
29575              props.left = options.left - curOffset.left + curLeft;
29576            }
29577            if ("using" in options) {
29578              options.using.call(elem, props);
29579            } else {
29580              curElem.css(props);
29581            }
29582          }
29583        };
29584        jQuery2.fn.extend({
29585          // offset() relates an element's border box to the document origin
29586          offset: function(options) {
29587            if (arguments.length) {
29588              return options === void 0 ? this : this.each(function(i10) {
29589                jQuery2.offset.setOffset(this, options, i10);
29590              });
29591            }
29592            var rect, win, elem = this[0];
29593            if (!elem) {
29594              return;
29595            }
29596            if (!elem.getClientRects().length) {
29597              return { top: 0, left: 0 };
29598            }
29599            rect = elem.getBoundingClientRect();
29600            win = elem.ownerDocument.defaultView;
29601            return {
29602              top: rect.top + win.pageYOffset,
29603              left: rect.left + win.pageXOffset
29604            };
29605          },
29606          // position() relates an element's margin box to its offset parent's padding box
29607          // This corresponds to the behavior of CSS absolute positioning
29608          position: function() {
29609            if (!this[0]) {
29610              return;
29611            }
29612            var offsetParent, offset, doc, elem = this[0], parentOffset = { top: 0, left: 0 };
29613            if (jQuery2.css(elem, "position") === "fixed") {
29614              offset = elem.getBoundingClientRect();
29615            } else {
29616              offset = this.offset();
29617              doc = elem.ownerDocument;
29618              offsetParent = elem.offsetParent || doc.documentElement;
29619              while (offsetParent && (offsetParent === doc.body || offsetParent === doc.documentElement) && jQuery2.css(offsetParent, "position") === "static") {
29620                offsetParent = offsetParent.parentNode;
29621              }
29622              if (offsetParent && offsetParent !== elem && offsetParent.nodeType === 1) {
29623                parentOffset = jQuery2(offsetParent).offset();
29624                parentOffset.top += jQuery2.css(offsetParent, "borderTopWidth", true);
29625                parentOffset.left += jQuery2.css(offsetParent, "borderLeftWidth", true);
29626              }
29627            }
29628            return {
29629              top: offset.top - parentOffset.top - jQuery2.css(elem, "marginTop", true),
29630              left: offset.left - parentOffset.left - jQuery2.css(elem, "marginLeft", true)
29631            };
29632          },
29633          // This method will return documentElement in the following cases:
29634          // 1) For the element inside the iframe without offsetParent, this method will return
29635          //    documentElement of the parent window
29636          // 2) For the hidden or detached element
29637          // 3) For body or html element, i.e. in case of the html node - it will return itself
29638          //
29639          // but those exceptions were never presented as a real life use-cases
29640          // and might be considered as more preferable results.
29641          //
29642          // This logic, however, is not guaranteed and can change at any point in the future
29643          offsetParent: function() {
29644            return this.map(function() {
29645              var offsetParent = this.offsetParent;
29646              while (offsetParent && jQuery2.css(offsetParent, "position") === "static") {
29647                offsetParent = offsetParent.offsetParent;
29648              }
29649              return offsetParent || documentElement;
29650            });
29651          }
29652        });
29653        jQuery2.each({ scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function(method, prop) {
29654          var top = "pageYOffset" === prop;
29655          jQuery2.fn[method] = function(val) {
29656            return access(this, function(elem, method2, val2) {
29657              var win;
29658              if (isWindow(elem)) {
29659                win = elem;
29660              } else if (elem.nodeType === 9) {
29661                win = elem.defaultView;
29662              }
29663              if (val2 === void 0) {
29664                return win ? win[prop] : elem[method2];
29665              }
29666              if (win) {
29667                win.scrollTo(
29668                  !top ? val2 : win.pageXOffset,
29669                  top ? val2 : win.pageYOffset
29670                );
29671              } else {
29672                elem[method2] = val2;
29673              }
29674            }, method, val, arguments.length);
29675          };
29676        });
29677        jQuery2.each(["top", "left"], function(_i2, prop) {
29678          jQuery2.cssHooks[prop] = addGetHookIf(
29679            support.pixelPosition,
29680            function(elem, computed) {
29681              if (computed) {
29682                computed = curCSS(elem, prop);
29683                return rnumnonpx.test(computed) ? jQuery2(elem).position()[prop] + "px" : computed;
29684              }
29685            }
29686          );
29687        });
29688        jQuery2.each({ Height: "height", Width: "width" }, function(name, type) {
29689          jQuery2.each({
29690            padding: "inner" + name,
29691            content: type,
29692            "": "outer" + name
29693          }, function(defaultExtra, funcName) {
29694            jQuery2.fn[funcName] = function(margin, value) {
29695              var chainable = arguments.length && (defaultExtra || typeof margin !== "boolean"), extra = defaultExtra || (margin === true || value === true ? "margin" : "border");
29696              return access(this, function(elem, type2, value2) {
29697                var doc;
29698                if (isWindow(elem)) {
29699                  return funcName.indexOf("outer") === 0 ? elem["inner" + name] : elem.document.documentElement["client" + name];
29700                }
29701                if (elem.nodeType === 9) {
29702                  doc = elem.documentElement;
29703                  return Math.max(
29704                    elem.body["scroll" + name],
29705                    doc["scroll" + name],
29706                    elem.body["offset" + name],
29707                    doc["offset" + name],
29708                    doc["client" + name]
29709                  );
29710                }
29711                return value2 === void 0 ? (
29712                  // Get width or height on the element, requesting but not forcing parseFloat
29713                  jQuery2.css(elem, type2, extra)
29714                ) : (
29715                  // Set width or height on the element
29716                  jQuery2.style(elem, type2, value2, extra)
29717                );
29718              }, type, chainable ? margin : void 0, chainable);
29719            };
29720          });
29721        });
29722        jQuery2.each([
29723          "ajaxStart",
29724          "ajaxStop",
29725          "ajaxComplete",
29726          "ajaxError",
29727          "ajaxSuccess",
29728          "ajaxSend"
29729        ], function(_i2, type) {
29730          jQuery2.fn[type] = function(fn) {
29731            return this.on(type, fn);
29732          };
29733        });
29734        jQuery2.fn.extend({
29735          bind: function(types, data, fn) {
29736            return this.on(types, null, data, fn);
29737          },
29738          unbind: function(types, fn) {
29739            return this.off(types, null, fn);
29740          },
29741          delegate: function(selector3, types, data, fn) {
29742            return this.on(types, selector3, data, fn);
29743          },
29744          undelegate: function(selector3, types, fn) {
29745            return arguments.length === 1 ? this.off(selector3, "**") : this.off(types, selector3 || "**", fn);
29746          },
29747          hover: function(fnOver, fnOut) {
29748            return this.on("mouseenter", fnOver).on("mouseleave", fnOut || fnOver);
29749          }
29750        });
29751        jQuery2.each(
29752          "blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),
29753          function(_i2, name) {
29754            jQuery2.fn[name] = function(data, fn) {
29755              return arguments.length > 0 ? this.on(name, null, data, fn) : this.trigger(name);
29756            };
29757          }
29758        );
29759        var rtrim = /^[\s\uFEFF\xA0]+|([^\s\uFEFF\xA0])[\s\uFEFF\xA0]+$/g;
29760        jQuery2.proxy = function(fn, context3) {
29761          var tmp, args, proxy;
29762          if (typeof context3 === "string") {
29763            tmp = fn[context3];
29764            context3 = fn;
29765            fn = tmp;
29766          }
29767          if (!isFunction(fn)) {
29768            return void 0;
29769          }
29770          args = slice.call(arguments, 2);
29771          proxy = function() {
29772            return fn.apply(context3 || this, args.concat(slice.call(arguments)));
29773          };
29774          proxy.guid = fn.guid = fn.guid || jQuery2.guid++;
29775          return proxy;
29776        };
29777        jQuery2.holdReady = function(hold) {
29778          if (hold) {
29779            jQuery2.readyWait++;
29780          } else {
29781            jQuery2.ready(true);
29782          }
29783        };
29784        jQuery2.isArray = Array.isArray;
29785        jQuery2.parseJSON = JSON.parse;
29786        jQuery2.nodeName = nodeName;
29787        jQuery2.isFunction = isFunction;
29788        jQuery2.isWindow = isWindow;
29789        jQuery2.camelCase = camelCase;
29790        jQuery2.type = toType;
29791        jQuery2.now = Date.now;
29792        jQuery2.isNumeric = function(obj) {
29793          var type = jQuery2.type(obj);
29794          return (type === "number" || type === "string") && // parseFloat NaNs numeric-cast false positives ("")
29795          // ...but misinterprets leading-number strings, particularly hex literals ("0x...")
29796          // subtraction forces infinities to NaN
29797          !isNaN(obj - parseFloat(obj));
29798        };
29799        jQuery2.trim = function(text) {
29800          return text == null ? "" : (text + "").replace(rtrim, "$1");
29801        };
29802        if (typeof define === "function" && define.amd) {
29803          define("jquery", [], function() {
29804            return jQuery2;
29805          });
29806        }
29807        var _jQuery = window2.jQuery, _$ = window2.$;
29808        jQuery2.noConflict = function(deep) {
29809          if (window2.$ === jQuery2) {
29810            window2.$ = _$;
29811          }
29812          if (deep && window2.jQuery === jQuery2) {
29813            window2.jQuery = _jQuery;
29814          }
29815          return jQuery2;
29816        };
29817        if (typeof noGlobal === "undefined") {
29818          window2.jQuery = window2.$ = jQuery2;
29819        }
29820        return jQuery2;
29821      });
29822    }
29823  });
29824
29825  
vendor: 2,735 bytes, lines 29825-29901
29825// node_modules/jquery-bridget/jquery-bridget.js
29826  var require_jquery_bridget = __commonJS({
29827    "node_modules/jquery-bridget/jquery-bridget.js"(exports, module) {
29828      (function(window2, factory) {
29829        if (typeof module == "object" && module.exports) {
29830          module.exports = factory(
29831            window2,
29832            require_jquery()
29833          );
29834        } else {
29835          window2.jQueryBridget = factory(
29836            window2,
29837            window2.jQuery
29838          );
29839        }
29840      })(window, function factory(window2, jQuery2) {
29841        let console2 = window2.console;
29842        let logError = typeof console2 == "undefined" ? function() {
29843        } : function(message) {
29844          console2.error(message);
29845        };
29846        function jQueryBridget2(namespace, PluginClass, $4) {
29847          $4 = $4 || jQuery2 || window2.jQuery;
29848          if (!$4) {
29849            return;
29850          }
29851          if (!PluginClass.prototype.option) {
29852            PluginClass.prototype.option = function(opts) {
29853              if (!opts) return;
29854              this.options = Object.assign(this.options || {}, opts);
29855            };
29856          }
29857          $4.fn[namespace] = function(arg0, ...args) {
29858            if (typeof arg0 == "string") {
29859              return methodCall(this, arg0, args);
29860            }
29861            plainCall(this, arg0);
29862            return this;
29863          };
29864          function methodCall($elems, methodName, args) {
29865            let returnValue;
29866            let pluginMethodStr = `$().${namespace}("${methodName}")`;
29867            $elems.each(function(i10, elem) {
29868              let instance = $4.data(elem, namespace);
29869              if (!instance) {
29870                logError(`${namespace} not initialized. Cannot call method ${pluginMethodStr}`);
29871                return;
29872              }
29873              let method = instance[methodName];
29874              if (!method || methodName.charAt(0) == "_") {
29875                logError(`${pluginMethodStr} is not a valid method`);
29876                return;
29877              }
29878              let value = method.apply(instance, args);
29879              returnValue = returnValue === void 0 ? value : returnValue;
29880            });
29881            return returnValue !== void 0 ? returnValue : $elems;
29882          }
29883          function plainCall($elems, options) {
29884            $elems.each(function(i10, elem) {
29885              let instance = $4.data(elem, namespace);
29886              if (instance) {
29887                instance.option(options);
29888                instance._init();
29889              } else {
29890                instance = new PluginClass(elem, options);
29891                $4.data(elem, namespace, instance);
29892              }
29893            });
29894          }
29895        }
29896        return jQueryBridget2;
29897      });
29898    }
29899  });
29900
29901  
29901// js/isotope.js
29902  var isotope_exports = {};
29903  var import_isotope_layout, import_imagesloaded, import_jquery_bridget, import_jquery;
29904  var init_isotope = __esm({
29905    "js/isotope.js"() {
29906      import_isotope_layout = __toESM(require_isotope());
29907      import_imagesloaded = __toESM(require_imagesloaded());
29908      import_jquery_bridget = __toESM(require_jquery_bridget());
29909      import_jquery = __toESM(require_jquery());
29910      window.$ = window.jQuery = import_jquery.default;
29911      (0, import_jquery_bridget.default)("isotope", import_isotope_layout.default, import_jquery.default);
29912      jQuery(document).ready(function() {
29913        var $grid = (0, import_jquery.default)(".grid-resources");
29914        var $resultsCount = (0, import_jquery.default)("#results");
29915        var searchQuery = "";
29916        var filterGroups = {};
29917        (0, import_jquery.default)(".resource-filter-select").each(function() {
29918          var group = (0, import_jquery.default)(this).data("filter-group");
29919          if (group && !filterGroups[group]) {
29920            filterGroups[group] = [];
29921          }
29922        });
29923        function updateFilterResultsCount() {
29924          if (!$resultsCount.length || !$grid.length) {
29925            return;
29926          }
29927          var iso = $grid.data("isotope");
29928          var visibleCount = iso && iso.filteredItems ? iso.filteredItems.length : $grid.find(".resource-list").length;
29929          $resultsCount.text(" (" + visibleCount + ")");
29930        }
29931        function getActiveFilterFn() {
29932          var hasFilters = Object.keys(filterGroups).some(function(group) {
29933            return filterGroups[group].length > 0;
29934          });
29935          if (!hasFilters && !searchQuery) {
29936            return "*";
29937          }
29938          return function(element) {
29939            var $el = (0, import_jquery.default)(element);
29940            var matchesSearch = !searchQuery || $el.find(".card-body").text().toLowerCase().indexOf(searchQuery) !== -1;
29941            return matchesSearch && Object.keys(filterGroups).every(function(group) {
29942              var filters = filterGroups[group];
29943              if (!filters.length) {
29944                return true;
29945              }
29946              return filters.some(function(f3) {
29947                return $el.is(f3);
29948              });
29949            });
29950          };
29951        }
29952        function applyFilter() {
29953          if (!$grid.length) {
29954            return;
29955          }
29956          $grid.isotope({
29957            itemSelector: ".resource-list",
29958            //			layoutMode: 'fitRows',
29959            filter: getActiveFilterFn()
29960          });
29961          updateFilterResultsCount();
29962          (0, import_imagesloaded.default)($grid.get(), function() {
29963            $grid.isotope("layout");
29964            updateFilterResultsCount();
29965          });
29966        }
29967        function getFilterLabel($select, filterValue) {
29968          var $option = $select.find('option[value="' + filterValue + '"]');
29969          return $option.length ? import_jquery.default.trim($option.text()) : filterValue;
29970        }
29971        function renderChips($select, $chips, group) {
29972          $chips.empty();
29973          filterGroups[group].forEach(function(filterValue) {
29974            var label = getFilterLabel($select, filterValue);
29975            var $chip = (0, import_jquery.default)('<button type="button" class="resource-filter-chip"></button>');
29976            $chip.attr("data-filter", filterValue);
29977            $chip.text(label + " \xD7");
29978            $chips.append($chip);
29979          });
29980        }
29981        (0, import_jquery.default)(".resource-filter-select").each(function() {
29982          var $select = (0, import_jquery.default)(this);
29983          var group = $select.data("filter-group");
29984          if (!group) {
29985            return;
29986          }
29987          var $chips = (0, import_jquery.default)('[data-filter-group-chips="' + group + '"]');
29988          $select.on("change", function() {
29989            var selectedValue = (0, import_jquery.default)(this).val();
29990            if (!selectedValue) {
29991              return;
29992            }
29993            if (selectedValue === "*") {
29994              filterGroups[group] = [];
29995            } else if (filterGroups[group].indexOf(selectedValue) === -1) {
29996              filterGroups[group].push(selectedValue);
29997            }
29998            (0, import_jquery.default)(this).val("");
29999            renderChips($select, $chips, group);
30000            applyFilter();
30001          });
30002          $chips.on("click", ".resource-filter-chip", function() {
30003            var filterToRemove = (0, import_jquery.default)(this).attr("data-filter");
30004            filterGroups[group] = filterGroups[group].filter(function(v3) {
30005              return v3 !== filterToRemove;
30006            });
30007            renderChips($select, $chips, group);
30008            applyFilter();
30009          });
30010        });
30011        (0, import_jquery.default)(".device-filter-select").each(function() {
30012          var $select = (0, import_jquery.default)(this);
30013          var group = $select.data("filter-group");
30014          if (!group) {
30015            return;
30016          }
30017          var $chips = (0, import_jquery.default)('[data-filter-group-chips="' + group + '"]');
30018          $select.on("change", function() {
30019            var selectedValue = (0, import_jquery.default)(this).val();
30020            if (!selectedValue) {
30021              return;
30022            }
30023            if (selectedValue === "*") {
30024              filterGroups[group] = [];
30025            } else if (filterGroups[group].indexOf(selectedValue) === -1) {
30026              filterGroups[group].push(selectedValue);
30027            }
30028            (0, import_jquery.default)(this).val("");
30029            renderChips($select, $chips, group);
30030            applyFilter();
30031          });
30032          $chips.on("click", ".resource-filter-chip", function() {
30033            var filterToRemove = (0, import_jquery.default)(this).attr("data-filter");
30034            filterGroups[group] = filterGroups[group].filter(function(v3) {
30035              return v3 !== filterToRemove;
30036            });
30037            renderChips($select, $chips, group);
30038            applyFilter();
30039          });
30040        });
30041        (0, import_jquery.default)("#quicksearch").on("input", function() {
30042          searchQuery = import_jquery.default.trim((0, import_jquery.default)(this).val()).toLowerCase();
30043          applyFilter();
30044        });
30045        applyFilter();
30046      });
30047    }
30048  });
30049
30050  
30050// js/bootstrap.js
30051  var bootstrap_exports = {};
30052  var bootstrap, tooltipTriggerList, tooltipList;
30053  var init_bootstrap = __esm({
30054    "js/bootstrap.js"() {
30055      bootstrap = __toESM(require_bootstrap());
30056      tooltipTriggerList = document.querySelectorAll('[data-bs-toggle="tooltip"]');
30057      tooltipList = [...tooltipTriggerList].map((tooltipTriggerEl) => new bootstrap.Tooltip(tooltipTriggerEl));
30058    }
30059  });
30060
30061  
vendor: 33,109 bytes, lines 30061-31018
30061// node_modules/typeit/dist/index.es.js
30062  function calculatePace(options) {
30063    let { speed, deleteSpeed, lifeLike } = options;
30064    deleteSpeed = deleteSpeed !== null ? deleteSpeed : speed / 3;
30065    return lifeLike ? [
30066      randomInRange(speed, range(speed)),
30067      randomInRange(deleteSpeed, range(deleteSpeed))
30068    ] : [speed, deleteSpeed];
30069  }
30070  function walkElementNodes(element, shouldReverse = false, shouldIncludeCursor = false) {
30071    let cursor = element.querySelector(`.${CURSOR_CLASS}`);
30072    let walker = document.createTreeWalker(element, NodeFilter.SHOW_ALL, {
30073      acceptNode: (node) => {
30074        if (cursor && shouldIncludeCursor) {
30075          if (node.classList?.contains(CURSOR_CLASS)) {
30076            return NodeFilter.FILTER_ACCEPT;
30077          }
30078          if (cursor.contains(node)) {
30079            return NodeFilter.FILTER_REJECT;
30080          }
30081        }
30082        return node.classList?.contains(CURSOR_CLASS) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;
30083      }
30084    });
30085    let nextNode;
30086    let nodes = [];
30087    while (nextNode = walker.nextNode()) {
30088      if (!nextNode.originalParent) {
30089        nextNode.originalParent = nextNode.parentNode;
30090      }
30091      nodes.push(nextNode);
30092    }
30093    return shouldReverse ? nodes.reverse() : nodes;
30094  }
30095  function chunkStringAsHtml(string) {
30096    return walkElementNodes(getParsedBody(string));
30097  }
30098  function maybeChunkStringAsHtml(str, asHtml = true) {
30099    return asHtml ? chunkStringAsHtml(str) : toArray3(str).map(createTextNode);
30100  }
30101  function selectorToElement(thing) {
30102    return typeof thing === "string" ? select(thing) : thing;
30103  }
30104  function splitOnBreak(str) {
30105    return str.replace(/<!--(.+?)-->/g, "").trim().split(/<br(?:\s*?)(?:\/)?>/);
30106  }
30107  var isArray, asArray, Queue, DATA_ATTRIBUTE, CURSOR_CLASS, END, DEFAULT_STATUSES, DEFAULT_OPTIONS, PLACEHOLDER_CSS, createElement, createTextNode, appendStyleBlock, calculateDelay, randomInRange, range, toArray3, expandTextNodes, getParsedBody, cleanUpSkipped, isNumber, countStepsToSelector, destroyTimeouts, duplicate, beforePaint, getAnimationFromElement, setCursorAnimation, rebuildCursorAnimation, execute, fireItem, fireWhenVisible, generateHash, isInput, getAllChars, handleFunctionalArg, select, isBodyElement, insertIntoElement, isNonVoidElement, merge, processCursorOptions, removeNode, repositionCursor, cursorFontStyles, setCursorStyles, updateCursorPosition, wait, TypeIt;
30108  var init_index_es = __esm({
30109    "node_modules/typeit/dist/index.es.js"() {
30110      isArray = (thing) => Array.isArray(thing);
30111      asArray = (value) => isArray(value) ? value : [value];
30112      Queue = function(initialItems) {
30113        let add = function(steps) {
30114          asArray(steps).forEach((step) => {
30115            return _q.set(Symbol(step.char?.innerText), buildQueueItem({ ...step }));
30116          });
30117          return this;
30118        };
30119        let getTypeable = () => rawValues().filter((value) => value.typeable);
30120        let set = function(index, item) {
30121          let keys = [..._q.keys()];
30122          _q.set(keys[index], buildQueueItem(item));
30123        };
30124        let buildQueueItem = (queueItem) => {
30125          queueItem.shouldPauseCursor = function() {
30126            return Boolean(this.typeable || this.cursorable || this.deletable);
30127          };
30128          return queueItem;
30129        };
30130        let reset = function() {
30131          _q.forEach((item) => delete item.done);
30132        };
30133        let wipe = function() {
30134          _q = /* @__PURE__ */ new Map();
30135          add(initialItems);
30136        };
30137        let getQueue = () => _q;
30138        let rawValues = () => Array.from(_q.values());
30139        let destroy = (key) => _q.delete(key);
30140        let getPendingQueueItems = () => {
30141          const pending = [];
30142          for (let [, value] of getQueue()) {
30143            if (!value.done) {
30144              pending.push(value);
30145            }
30146          }
30147          return pending;
30148        };
30149        let getItems = (all = false) => all ? rawValues() : rawValues().filter((i10) => !i10.done);
30150        let done = (key, shouldDestroy = false) => shouldDestroy ? _q.delete(key) : _q.get(key).done = true;
30151        let _q = /* @__PURE__ */ new Map();
30152        add(initialItems);
30153        return {
30154          add,
30155          set,
30156          wipe,
30157          done,
30158          reset,
30159          destroy,
30160          getItems,
30161          getQueue,
30162          getTypeable,
30163          getPendingQueueItems
30164        };
30165      };
30166      DATA_ATTRIBUTE = "data-typeit-id";
30167      CURSOR_CLASS = "ti-cursor";
30168      END = "END";
30169      DEFAULT_STATUSES = {
30170        started: false,
30171        completed: false,
30172        frozen: false,
30173        destroyed: false
30174      };
30175      DEFAULT_OPTIONS = {
30176        breakLines: true,
30177        cursor: {
30178          autoPause: true,
30179          autoPauseDelay: 500,
30180          animation: {
30181            frames: [0, 0, 1].map((n10) => {
30182              return { opacity: n10 };
30183            }),
30184            options: {
30185              iterations: Infinity,
30186              easing: "steps(2, start)",
30187              fill: "forwards"
30188            }
30189          }
30190        },
30191        cursorChar: "|",
30192        cursorSpeed: 1e3,
30193        deleteSpeed: null,
30194        html: true,
30195        lifeLike: true,
30196        loop: false,
30197        loopDelay: 750,
30198        nextStringDelay: 750,
30199        speed: 100,
30200        startDelay: 250,
30201        startDelete: false,
30202        strings: [],
30203        waitUntilVisible: false,
30204        beforeString: () => {
30205        },
30206        afterString: () => {
30207        },
30208        beforeStep: () => {
30209        },
30210        afterStep: () => {
30211        },
30212        afterComplete: () => {
30213        }
30214      };
30215      PLACEHOLDER_CSS = `[${DATA_ATTRIBUTE}]:before {content: '.'; display: inline-block; width: 0; visibility: hidden;}`;
30216      createElement = (el) => document.createElement(el);
30217      createTextNode = (content) => document.createTextNode(content);
30218      appendStyleBlock = (styles, id = "") => {
30219        let styleBlock = createElement("style");
30220        styleBlock.id = id;
30221        styleBlock.appendChild(createTextNode(styles));
30222        document.head.appendChild(styleBlock);
30223      };
30224      calculateDelay = (delayArg) => {
30225        if (!isArray(delayArg)) {
30226          delayArg = [delayArg / 2, delayArg / 2];
30227        }
30228        return delayArg;
30229      };
30230      randomInRange = (value, range2) => {
30231        return Math.abs(
30232          Math.random() * (value + range2 - (value - range2)) + (value - range2)
30233        );
30234      };
30235      range = (val) => val / 2;
30236      toArray3 = (val) => Array.from(val);
30237      expandTextNodes = (element) => {
30238        [...element.childNodes].forEach((child) => {
30239          if (child.nodeValue) {
30240            [...child.nodeValue].forEach((c5) => {
30241              child.parentNode.insertBefore(createTextNode(c5), child);
30242            });
30243            child.remove();
30244            return;
30245          }
30246          expandTextNodes(child);
30247        });
30248        return element;
30249      };
30250      getParsedBody = (content) => {
30251        let doc = document.implementation.createHTMLDocument();
30252        doc.body.innerHTML = content;
30253        return expandTextNodes(doc.body);
30254      };
30255      cleanUpSkipped = ({
30256        index,
30257        newIndex,
30258        queueItems,
30259        cleanUp
30260      }) => {
30261        for (let i10 = index + 1; i10 < newIndex + 1; i10++) {
30262          cleanUp(queueItems[i10][0]);
30263        }
30264      };
30265      isNumber = (value) => Number.isInteger(value);
30266      countStepsToSelector = ({
30267        queueItems,
30268        selector: selector3,
30269        cursorPosition,
30270        to
30271      }) => {
30272        if (isNumber(selector3)) {
30273          return selector3 * -1;
30274        }
30275        let isMovingToEnd = new RegExp(END, "i").test(to);
30276        let selectorIndex = selector3 ? [...queueItems].reverse().findIndex(({ char }) => {
30277          let parentElement = char.parentElement;
30278          let parentMatches = parentElement.matches(selector3);
30279          if (isMovingToEnd && parentMatches) {
30280            return true;
30281          }
30282          return parentMatches && parentElement.firstChild.isSameNode(char);
30283        }) : -1;
30284        if (selectorIndex < 0) {
30285          selectorIndex = isMovingToEnd ? 0 : queueItems.length - 1;
30286        }
30287        let offset = isMovingToEnd ? 0 : 1;
30288        return selectorIndex - cursorPosition + offset;
30289      };
30290      destroyTimeouts = (timeouts) => {
30291        timeouts.forEach(clearTimeout);
30292        return [];
30293      };
30294      duplicate = (value, times) => new Array(times).fill(value);
30295      beforePaint = (cb) => {
30296        return new Promise((resolve) => {
30297          requestAnimationFrame(async () => {
30298            resolve(await cb());
30299          });
30300        });
30301      };
30302      getAnimationFromElement = (element) => {
30303        return element?.getAnimations().find((animation) => {
30304          return animation.id === element.dataset.tiAnimationId;
30305        });
30306      };
30307      setCursorAnimation = ({
30308        cursor,
30309        frames,
30310        options
30311      }) => {
30312        let animation = cursor.animate(frames, options);
30313        animation.pause();
30314        animation.id = cursor.dataset.tiAnimationId;
30315        beforePaint(() => {
30316          beforePaint(() => {
30317            animation.play();
30318          });
30319        });
30320        return animation;
30321      };
30322      rebuildCursorAnimation = ({
30323        cursor,
30324        options,
30325        cursorOptions
30326      }) => {
30327        if (!cursor || !cursorOptions) return;
30328        let animation = getAnimationFromElement(cursor);
30329        let oldCurrentTime;
30330        if (animation) {
30331          options.delay = animation.effect.getComputedTiming().delay;
30332          oldCurrentTime = animation.currentTime;
30333          animation.cancel();
30334        }
30335        let newAnimation = setCursorAnimation({
30336          cursor,
30337          frames: cursorOptions.animation.frames,
30338          options
30339        });
30340        if (oldCurrentTime) {
30341          newAnimation.currentTime = oldCurrentTime;
30342        }
30343        return newAnimation;
30344      };
30345      execute = (queueItem) => queueItem.func?.call(null);
30346      fireItem = async ({
30347        index,
30348        queueItems,
30349        wait: wait2,
30350        cursor,
30351        cursorOptions
30352      }) => {
30353        let queueItem = queueItems[index][1];
30354        let instantQueue = [];
30355        let tempIndex = index;
30356        let futureItem = queueItem;
30357        let shouldBeGrouped = () => futureItem && !futureItem.delay;
30358        let shouldPauseCursor = queueItem.shouldPauseCursor() && cursorOptions.autoPause;
30359        while (shouldBeGrouped()) {
30360          instantQueue.push(futureItem);
30361          shouldBeGrouped() && tempIndex++;
30362          futureItem = queueItems[tempIndex] ? queueItems[tempIndex][1] : null;
30363        }
30364        if (instantQueue.length) {
30365          await beforePaint(async () => {
30366            for (let q2 of instantQueue) {
30367              await execute(q2);
30368            }
30369          });
30370          return tempIndex - 1;
30371        }
30372        let animation = getAnimationFromElement(cursor);
30373        let options;
30374        if (animation) {
30375          options = {
30376            ...animation.effect.getComputedTiming(),
30377            delay: shouldPauseCursor ? cursorOptions.autoPauseDelay : 0
30378          };
30379        }
30380        await wait2(async () => {
30381          if (animation && shouldPauseCursor) {
30382            animation.cancel();
30383          }
30384          await beforePaint(() => {
30385            execute(queueItem);
30386          });
30387        }, queueItem.delay);
30388        await rebuildCursorAnimation({
30389          cursor,
30390          options,
30391          cursorOptions
30392        });
30393        return index;
30394      };
30395      fireWhenVisible = (element, func) => {
30396        let observer = new IntersectionObserver(
30397          (entries, observer2) => {
30398            entries.forEach((entry) => {
30399              if (entry.isIntersecting) {
30400                func();
30401                observer2.unobserve(element);
30402              }
30403            });
30404          },
30405          { threshold: 1 }
30406        );
30407        observer.observe(element);
30408      };
30409      generateHash = () => Math.random().toString().substring(2, 9);
30410      isInput = (el) => {
30411        return "value" in el;
30412      };
30413      getAllChars = (element) => {
30414        if (isInput(element)) {
30415          return toArray3(element.value);
30416        }
30417        return walkElementNodes(element, true).filter(
30418          (c5) => !(c5.childNodes.length > 0)
30419        );
30420      };
30421      handleFunctionalArg = (arg) => {
30422        return typeof arg === "function" ? arg() : arg;
30423      };
30424      select = (selector3, element = document, all = false) => {
30425        return element[`querySelector${all ? "All" : ""}`](selector3);
30426      };
30427      isBodyElement = (node) => /body/i.test(node?.tagName);
30428      insertIntoElement = (originalTarget, character) => {
30429        if (isInput(originalTarget)) {
30430          originalTarget.value = `${originalTarget.value}${character.textContent}`;
30431          return;
30432        }
30433        character.innerHTML = "";
30434        let target = isBodyElement(character.originalParent) ? originalTarget : (
30435          // If we add one-off fresh elements, there will be no
30436          // "originalParent", so always fall back to the default target.
30437          character.originalParent || originalTarget
30438        );
30439        let cursorNode = select("." + CURSOR_CLASS, target) || null;
30440        if (cursorNode && cursorNode.parentElement !== target) {
30441          target = cursorNode.parentElement;
30442        }
30443        target.insertBefore(character, cursorNode);
30444      };
30445      isNonVoidElement = (el) => /<(.+)>(.*?)<\/(.+)>/.test(el.outerHTML);
30446      merge = (originalObj, newObj) => Object.assign({}, originalObj, newObj);
30447      processCursorOptions = (cursorOptions) => {
30448        if (typeof cursorOptions === "object") {
30449          let newOptions = {};
30450          let { frames: defaultFrames, options: defaultOptions } = DEFAULT_OPTIONS.cursor.animation;
30451          newOptions.animation = cursorOptions.animation || {};
30452          newOptions.animation.frames = cursorOptions.animation?.frames || defaultFrames;
30453          newOptions.animation.options = merge(
30454            defaultOptions,
30455            cursorOptions.animation?.options || {}
30456          );
30457          newOptions.autoPause = cursorOptions.autoPause ?? DEFAULT_OPTIONS.cursor.autoPause;
30458          newOptions.autoPauseDelay = cursorOptions.autoPauseDelay || DEFAULT_OPTIONS.cursor.autoPauseDelay;
30459          return newOptions;
30460        }
30461        if (cursorOptions === true) {
30462          return DEFAULT_OPTIONS.cursor;
30463        }
30464        return cursorOptions;
30465      };
30466      removeNode = (node, rootElement) => {
30467        if (!node) return;
30468        let nodeParent = node.parentNode;
30469        let nodeToRemove = nodeParent.childNodes.length > 1 || nodeParent.isSameNode(rootElement) ? (
30470          // This parent still needs to exist.
30471          node
30472        ) : (
30473          // There's nothing else in there, so just delete the entire thing.
30474          // By doing this, we clean up markup as we go along.
30475          nodeParent
30476        );
30477        nodeToRemove.remove();
30478      };
30479      repositionCursor = (element, allChars, newCursorPosition) => {
30480        let nodeToInsertBefore = allChars[newCursorPosition - 1];
30481        let cursor = select(`.${CURSOR_CLASS}`, element);
30482        element = nodeToInsertBefore?.parentNode || element;
30483        element.insertBefore(cursor, nodeToInsertBefore || null);
30484      };
30485      cursorFontStyles = {
30486        "font-family": "",
30487        "font-weight": "",
30488        "font-size": "",
30489        "font-style": "",
30490        "line-height": "",
30491        color: "",
30492        transform: "translateX(-.125em)"
30493      };
30494      setCursorStyles = (id, element) => {
30495        let rootSelector = `[${DATA_ATTRIBUTE}='${id}']`;
30496        let cursorSelector = `${rootSelector} .${CURSOR_CLASS}`;
30497        let computedStyles = getComputedStyle(element);
30498        let customProperties = Object.entries(cursorFontStyles).reduce(
30499          (accumulator, [item, value]) => {
30500            return `${accumulator} ${item}: var(--ti-cursor-${item}, ${value || computedStyles[item]});`;
30501          },
30502          ""
30503        );
30504        appendStyleBlock(
30505          `${cursorSelector} { display: inline-block; width: 0; ${customProperties} }`,
30506          id
30507        );
30508      };
30509      updateCursorPosition = (steps, cursorPosition, printedCharacters) => {
30510        return Math.min(
30511          Math.max(cursorPosition + steps, 0),
30512          printedCharacters.length
30513        );
30514      };
30515      wait = (callback, delay, timeouts) => {
30516        return new Promise((resolve) => {
30517          let cb = async () => {
30518            await callback();
30519            resolve();
30520          };
30521          timeouts.push(setTimeout(cb, delay || 0));
30522        });
30523      };
30524      TypeIt = class {
30525        element;
30526        timeouts;
30527        cursorPosition;
30528        predictedCursorPosition;
30529        statuses = {
30530          started: false,
30531          completed: false,
30532          frozen: false,
30533          destroyed: false,
30534          firing: false
30535        };
30536        opts;
30537        id;
30538        queue;
30539        cursor;
30540        flushCallback = null;
30541        unfreeze = () => {
30542        };
30543        constructor(element, options = {}) {
30544          this.opts = merge(DEFAULT_OPTIONS, options);
30545          this.element = selectorToElement(element);
30546          this.timeouts = [];
30547          this.cursorPosition = 0;
30548          this.unfreeze = () => {
30549          };
30550          this.predictedCursorPosition = null;
30551          this.statuses = merge({}, DEFAULT_STATUSES);
30552          this.id = generateHash();
30553          this.queue = Queue([{ delay: this.opts.startDelay }]);
30554          this.#buildOptions(options);
30555          this.cursor = this.#setUpCursor();
30556          this.element.dataset.typeitId = this.id;
30557          appendStyleBlock(PLACEHOLDER_CSS);
30558          if (this.opts.strings.length) {
30559            this.#generateQueue();
30560          }
30561        }
30562        /**
30563         * Can only be called once.
30564         */
30565        go() {
30566          if (this.statuses.started) {
30567            return this;
30568          }
30569          this.#attachCursor();
30570          if (!this.opts.waitUntilVisible) {
30571            this.#fire();
30572            return this;
30573          }
30574          fireWhenVisible(this.element, this.#fire.bind(this));
30575          return this;
30576        }
30577        destroy(shouldRemoveCursor = true) {
30578          this.timeouts = destroyTimeouts(this.timeouts);
30579          handleFunctionalArg(shouldRemoveCursor) && this.cursor && this.#removeNode(this.cursor);
30580          this.statuses.destroyed = true;
30581        }
30582        reset(rebuild) {
30583          !this.is("destroyed") && this.destroy();
30584          if (rebuild) {
30585            this.queue.wipe();
30586            rebuild(this);
30587          } else {
30588            this.queue.reset();
30589          }
30590          this.cursorPosition = 0;
30591          for (let property in this.statuses) {
30592            this.statuses[property] = false;
30593          }
30594          this.element[this.#elementIsInput() ? "value" : "innerHTML"] = "";
30595          return this;
30596        }
30597        is = function(key) {
30598          return this.statuses[key];
30599        };
30600        type(string, actionOpts = {}) {
30601          string = handleFunctionalArg(string);
30602          let { instant } = actionOpts;
30603          let bookEndQueueItems = this.#generateTemporaryOptionQueueItems(actionOpts);
30604          let chars = maybeChunkStringAsHtml(string, this.opts.html);
30605          let charsAsQueueItems = chars.map((char) => {
30606            return {
30607              func: () => this.#type(char),
30608              char,
30609              delay: instant || isNonVoidElement(char) ? 0 : this.#getPace(),
30610              typeable: char.nodeType === Node.TEXT_NODE
30611            };
30612          });
30613          let itemsToQueue = [
30614            bookEndQueueItems[0],
30615            { func: async () => await this.opts.beforeString(string, this) },
30616            ...charsAsQueueItems,
30617            { func: async () => await this.opts.afterString(string, this) },
30618            bookEndQueueItems[1]
30619          ];
30620          return this.#queueAndReturn(itemsToQueue, actionOpts);
30621        }
30622        break(actionOpts = {}) {
30623          return this.#queueAndReturn(
30624            {
30625              func: () => this.#type(createElement("BR")),
30626              typeable: true
30627            },
30628            actionOpts
30629          );
30630        }
30631        move(movementArg, actionOpts = {}) {
30632          movementArg = handleFunctionalArg(movementArg);
30633          let bookEndQueueItems = this.#generateTemporaryOptionQueueItems(actionOpts);
30634          let { instant, to } = actionOpts;
30635          let numberOfSteps = countStepsToSelector({
30636            queueItems: this.queue.getTypeable(),
30637            selector: movementArg === null ? "" : movementArg,
30638            to,
30639            cursorPosition: this.#derivedCursorPosition
30640          });
30641          let directionalStep = numberOfSteps < 0 ? -1 : 1;
30642          this.predictedCursorPosition = this.#derivedCursorPosition + numberOfSteps;
30643          return this.#queueAndReturn(
30644            [
30645              bookEndQueueItems[0],
30646              ...duplicate(
30647                {
30648                  func: () => this.#move(directionalStep),
30649                  delay: instant ? 0 : this.#getPace(),
30650                  cursorable: true
30651                },
30652                Math.abs(numberOfSteps)
30653              ),
30654              bookEndQueueItems[1]
30655            ],
30656            actionOpts
30657          );
30658        }
30659        exec(func, actionOpts = {}) {
30660          let bookEndQueueItems = this.#generateTemporaryOptionQueueItems(actionOpts);
30661          return this.#queueAndReturn(
30662            [bookEndQueueItems[0], { func: () => func(this) }, bookEndQueueItems[1]],
30663            actionOpts
30664          );
30665        }
30666        options(opts, actionOpts = {}) {
30667          opts = handleFunctionalArg(opts);
30668          this.#updateOptions(opts);
30669          return this.#queueAndReturn({}, actionOpts);
30670        }
30671        pause(milliseconds, actionOpts = {}) {
30672          return this.#queueAndReturn(
30673            { delay: handleFunctionalArg(milliseconds) },
30674            actionOpts
30675          );
30676        }
30677        delete(numCharacters = null, actionOpts = {}) {
30678          numCharacters = handleFunctionalArg(numCharacters);
30679          let bookEndQueueItems = this.#generateTemporaryOptionQueueItems(actionOpts);
30680          let num = numCharacters;
30681          let { instant, to } = actionOpts;
30682          let typeableQueueItems = this.queue.getTypeable();
30683          let rounds = (() => {
30684            if (num === null) {
30685              return typeableQueueItems.length;
30686            }
30687            if (isNumber(num)) {
30688              return num;
30689            }
30690            return countStepsToSelector({
30691              queueItems: typeableQueueItems,
30692              selector: num,
30693              cursorPosition: this.#derivedCursorPosition,
30694              to
30695            });
30696          })();
30697          return this.#queueAndReturn(
30698            [
30699              bookEndQueueItems[0],
30700              ...duplicate(
30701                {
30702                  func: this.#delete.bind(this),
30703                  delay: instant ? 0 : this.#getPace(1),
30704                  deletable: true
30705                },
30706                rounds
30707              ),
30708              bookEndQueueItems[1]
30709            ],
30710            actionOpts
30711          );
30712        }
30713        freeze() {
30714          this.statuses.frozen = true;
30715        }
30716        /**
30717         * Like `.go()`, but more... "off the grid."
30718         *
30719         * - won't trigger `afterComplete` callback
30720         * - items won't be replayed after `.reset()`
30721         *
30722         * When called, all non-done items will be "flushed" --
30723         * that is, executed, but not remembered.
30724         */
30725        flush(cb = null) {
30726          this.flushCallback = cb || this.flushCallback;
30727          if (this.statuses.firing) {
30728            return this;
30729          }
30730          this.#attachCursor();
30731          this.#fire(false).then(() => {
30732            if (this.queue.getPendingQueueItems().length > 0) {
30733              return this.flush();
30734            }
30735            this.flushCallback();
30736            this.flushCallback = null;
30737          });
30738          return this;
30739        }
30740        getQueue() {
30741          return this.queue;
30742        }
30743        getOptions() {
30744          return this.opts;
30745        }
30746        updateOptions(options) {
30747          return this.#updateOptions(options);
30748        }
30749        getElement() {
30750          return this.element;
30751        }
30752        empty(actionOpts = {}) {
30753          return this.#queueAndReturn({ func: this.#empty.bind(this) }, actionOpts);
30754        }
30755        async #empty() {
30756          if (this.#elementIsInput()) {
30757            this.element.value = "";
30758            return;
30759          }
30760          this.#allChars.forEach(this.#removeNode.bind(this));
30761          return;
30762        }
30763        /**
30764         * Execute items in the queue.
30765         *
30766         * @param remember If false, each queue item will be destroyed once executed.
30767         * @returns
30768         */
30769        async #fire(remember = true) {
30770          this.statuses.started = true;
30771          this.statuses.firing = true;
30772          let cleanUp = (qKey) => {
30773            this.queue.done(qKey, !remember);
30774          };
30775          try {
30776            let queueItems = [...this.queue.getQueue()];
30777            for (let index = 0; index < queueItems.length; index++) {
30778              let [queueKey, queueItem] = queueItems[index];
30779              if (queueItem.done) continue;
30780              if (!queueItem.deletable || queueItem.deletable && this.#allChars.length) {
30781                let newIndex = await this.#fireItemWithContext(index, queueItems);
30782                cleanUpSkipped({
30783                  index,
30784                  newIndex,
30785                  queueItems,
30786                  cleanUp
30787                });
30788                index = newIndex;
30789              }
30790              cleanUp(queueKey);
30791            }
30792            if (!remember) {
30793              this.statuses.firing = false;
30794              return this;
30795            }
30796            this.statuses.completed = true;
30797            this.statuses.firing = false;
30798            await this.opts.afterComplete(this);
30799            if (!this.opts.loop) {
30800              throw "";
30801            }
30802            let delay = this.opts.loopDelay;
30803            this.#wait(async () => {
30804              await this.#prepLoop(delay[0]);
30805              this.#fire();
30806            }, delay[1]);
30807          } catch (e11) {
30808          }
30809          this.statuses.firing = false;
30810          return this;
30811        }
30812        async #move(step) {
30813          this.cursorPosition = updateCursorPosition(
30814            step,
30815            this.cursorPosition,
30816            this.#allChars
30817          );
30818          repositionCursor(this.element, this.#allChars, this.cursorPosition);
30819        }
30820        /**
30821         * 1. Reset queue.
30822         * 2. Reset initial pause.
30823         */
30824        async #prepLoop(delay) {
30825          let derivedCursorPosition = this.#derivedCursorPosition;
30826          derivedCursorPosition && await this.#move({ value: derivedCursorPosition });
30827          let queueItems = this.#allChars.map((c5) => {
30828            return [
30829              Symbol(),
30830              {
30831                func: this.#delete.bind(this),
30832                delay: this.#getPace(1),
30833                deletable: true,
30834                shouldPauseCursor: () => true
30835              }
30836            ];
30837          });
30838          for (let index = 0; index < queueItems.length; index++) {
30839            await this.#fireItemWithContext(index, queueItems);
30840          }
30841          this.queue.reset();
30842          this.queue.set(0, { delay });
30843        }
30844        #fireItemWithContext(index, queueItems) {
30845          return fireItem({
30846            index,
30847            queueItems,
30848            wait: this.#wait.bind(this),
30849            cursor: this.cursor,
30850            cursorOptions: this.opts.cursor
30851          });
30852        }
30853        async #wait(callback, delay, silent = false) {
30854          if (this.statuses.frozen) {
30855            await new Promise((resolve) => {
30856              this.unfreeze = () => {
30857                this.statuses.frozen = false;
30858                resolve();
30859              };
30860            });
30861          }
30862          silent || await this.opts.beforeStep(this);
30863          await wait(callback, delay, this.timeouts);
30864          silent || await this.opts.afterStep(this);
30865        }
30866        /**
30867         * Attach it to the DOM so, along with the required CSS transition.
30868         */
30869        async #attachCursor() {
30870          !this.#elementIsInput() && this.cursor && this.element.appendChild(this.cursor);
30871          if (this.#shouldRenderCursor) {
30872            setCursorStyles(this.id, this.element);
30873            this.cursor.dataset.tiAnimationId = this.id;
30874            let { animation } = this.opts.cursor;
30875            let { frames, options } = animation;
30876            setCursorAnimation({
30877              frames,
30878              cursor: this.cursor,
30879              options: {
30880                duration: this.opts.cursorSpeed,
30881                ...options
30882              }
30883            });
30884          }
30885        }
30886        #elementIsInput() {
30887          return isInput(this.element);
30888        }
30889        #queueAndReturn(steps, opts) {
30890          this.queue.add(steps);
30891          this.#maybeAppendPause(opts);
30892          return this;
30893        }
30894        #maybeAppendPause(opts = {}) {
30895          let delay = opts.delay;
30896          delay && this.queue.add({ delay });
30897        }
30898        #generateTemporaryOptionQueueItems(newOptions = {}) {
30899          return [
30900            { func: () => this.#updateOptions(newOptions) },
30901            { func: () => this.#updateOptions(this.opts) }
30902          ];
30903        }
30904        async #updateOptions(opts) {
30905          this.opts = merge(this.opts, opts);
30906        }
30907        /**
30908         * Based on provided strings, generate a TypeIt queue
30909         * to be fired for each character in the string.
30910         */
30911        #generateQueue() {
30912          let strings = this.opts.strings.filter((string) => !!string);
30913          strings.forEach((string, index) => {
30914            this.type(string);
30915            if (index + 1 === strings.length) {
30916              return;
30917            }
30918            let splitItems = this.opts.breakLines ? [{ func: () => this.#type(createElement("BR")), typeable: true }] : duplicate(
30919              {
30920                func: this.#delete.bind(this),
30921                delay: this.#getPace(1)
30922              },
30923              this.queue.getTypeable().length
30924            );
30925            this.#addSplitPause(splitItems);
30926          });
30927        }
30928        #buildOptions = (options) => {
30929          this.opts.cursor = processCursorOptions(
30930            options.cursor ?? DEFAULT_OPTIONS.cursor
30931          );
30932          this.opts.strings = this.#prependHardcodedStrings(
30933            asArray(this.opts.strings)
30934          );
30935          this.opts = merge(this.opts, {
30936            html: !this.#isInput && this.opts.html,
30937            nextStringDelay: calculateDelay(this.opts.nextStringDelay),
30938            loopDelay: calculateDelay(this.opts.loopDelay)
30939          });
30940        };
30941        #prependHardcodedStrings(strings) {
30942          let existingMarkup = this.element.innerHTML;
30943          if (!existingMarkup) {
30944            return strings;
30945          }
30946          this.element.innerHTML = "";
30947          if (this.opts.startDelete) {
30948            this.element.innerHTML = existingMarkup;
30949            expandTextNodes(this.element);
30950            this.#addSplitPause(
30951              duplicate(
30952                {
30953                  func: this.#delete.bind(this),
30954                  delay: this.#getPace(1),
30955                  deletable: true
30956                },
30957                this.#allChars.length
30958              )
30959            );
30960            return strings;
30961          }
30962          return splitOnBreak(existingMarkup).concat(strings);
30963        }
30964        /**
30965         * Provided it's a non-form element and the options is provided,
30966         * set up the cursor element for the animation.
30967         */
30968        #setUpCursor() {
30969          if (this.#isInput) {
30970            return null;
30971          }
30972          let cursor = createElement("span");
30973          cursor.className = CURSOR_CLASS;
30974          if (!this.#shouldRenderCursor) {
30975            cursor.style.visibility = "hidden";
30976            return cursor;
30977          }
30978          cursor.innerHTML = getParsedBody(this.opts.cursorChar).innerHTML;
30979          return cursor;
30980        }
30981        #addSplitPause(items) {
30982          let delay = this.opts.nextStringDelay;
30983          this.queue.add([{ delay: delay[0] }, ...items, { delay: delay[1] }]);
30984        }
30985        #type(char) {
30986          insertIntoElement(this.element, char);
30987        }
30988        #delete() {
30989          if (!this.#allChars.length) return;
30990          if (this.#isInput) {
30991            this.element.value = this.element.value.slice(0, -1);
30992          } else {
30993            this.#removeNode(this.#allChars[this.cursorPosition]);
30994          }
30995        }
30996        #removeNode(node) {
30997          removeNode(node, this.element);
30998        }
30999        #getPace(index = 0) {
31000          return calculatePace(this.opts)[index];
31001        }
31002        get #derivedCursorPosition() {
31003          return this.predictedCursorPosition ?? this.cursorPosition;
31004        }
31005        get #isInput() {
31006          return isInput(this.element);
31007        }
31008        get #shouldRenderCursor() {
31009          return !!this.opts.cursor && !this.#isInput;
31010        }
31011        get #allChars() {
31012          return getAllChars(this.element);
31013        }
31014      };
31015    }
31016  });
31017
31018  
31018// js/typeit.js
31019  var typeit_exports = {};
31020  var initTypeIt;
31021  var init_typeit = __esm({
31022    "js/typeit.js"() {
31023      init_index_es();
31024      initTypeIt = () => {
31025        document.querySelectorAll(".typeIt").forEach((element) => {
31026          new TypeIt(element).go();
31027        });
31028      };
31029      if (document.readyState === "loading") {
31030        document.addEventListener("DOMContentLoaded", initTypeIt);
31031      } else {
31032        initTypeIt();
31033      }
31034    }
31035  });
31036
31037  
31037// js/template.js
31038  var template_exports = {};
31039  var import_jquery_min2;
31040  var init_template = __esm({
31041    "js/template.js"() {
31042      import_jquery_min2 = __toESM(require_jquery_min());
31043      if (!window.jQuery) {
31044        window.jQuery = window.$ = import_jquery_min2.default;
31045      }
31046      Number.prototype.numberFormat = function(n10, x2) {
31047        var re = "\\d(?=(\\d{" + (x2 || 3) + "})+" + (n10 > 0 ? "\\." : "$") + ")";
31048        return this.toFixed(Math.max(0, ~~n10)).replace(new RegExp(re, "g"), "$&,");
31049      };
31050      (function(window2, document2) {
31051        var iframes = document2.getElementsByTagName("iframe");
31052        for (var i10 = 0; i10 < iframes.length; i10++) {
31053          var iframe = iframes[i10], players = /www.youtube.com|player.vimeo.com/;
31054          if (iframe.src.search(players) > 0) {
31055            if (!iframe.parentNode.classList.contains("ratio-16x9")) {
31056              iframe.width = "100%";
31057              iframe.height = "100%";
31058              var wrap3 = document2.createElement("div");
31059              wrap3.className = "ratio ratio-16x9";
31060              var iframeParent = iframe.parentNode;
31061              iframeParent.insertBefore(wrap3, iframe);
31062              wrap3.appendChild(iframe);
31063            }
31064          }
31065        }
31066      })(window, document);
31067      window.addEventListener("load", function() {
31068        const hash = window.location.hash;
31069        if (hash) {
31070          const tabTriggerEl = document.querySelector(`button[data-bs-target="${hash}-content"]`);
31071          if (tabTriggerEl) {
31072            tabTriggerEl.click();
31073          }
31074        }
31075      });
31076      jQuery(document).ready(function() {
31077        "use strict";
31078        (0, import_jquery_min2.default)(".js-alert").each(function(index) {
31079          (0, import_jquery_min2.default)(".js-alert" + index + "-close").click(function() {
31080            Cookies.set("siteAlert" + index, (0, import_jquery_min2.default)("#alertText" + index).html());
31081            (0, import_jquery_min2.default)(".js-alert-" + index).slideUp();
31082          });
31083          var alertVal = Cookies.get("siteAlert" + index);
31084          if (alertVal == (0, import_jquery_min2.default)("#alertText" + index).html()) {
31085          } else {
31086            (0, import_jquery_min2.default)(".js-alert-" + index).show();
31087          }
31088        });
31089        var previousScroll = 0;
31090        var threshold = false;
31091        var hidezone = 0;
31092        var navHidden = true;
31093        (0, import_jquery_min2.default)(window).scroll(function() {
31094          var currentScroll = (0, import_jquery_min2.default)(this).scrollTop();
31095          if (currentScroll <= 0) {
31096            window.setTimeout(resetNav, 0);
31097            threshold = false;
31098            previousScroll = 0;
31099            navHidden = true;
31100            hidezone = 0;
31101          } else if (currentScroll > 300) {
31102            (0, import_jquery_min2.default)("header").addClass("is-primed");
31103            threshold = true;
31104            if (currentScroll < previousScroll) {
31105              window.setTimeout(showNav, 0);
31106              navHidden = false;
31107              hidezone = currentScroll;
31108            } else if (navHidden == false && currentScroll > previousScroll && currentScroll - hidezone > 100) {
31109              window.setTimeout(hideNav, 0);
31110              navHidden = true;
31111              hidezone = 0;
31112              console.log("hide");
31113            } else if (currentScroll < previousScroll) {
31114              hidezone = currentScroll;
31115            }
31116            previousScroll = currentScroll;
31117          }
31118        });
31119        function hideNav() {
31120          (0, import_jquery_min2.default)("header").removeClass("is-visible").addClass("is-hidden");
31121        }
31122        function showNav() {
31123          (0, import_jquery_min2.default)("header").removeClass("is-hidden").addClass("is-visible");
31124        }
31125        function resetNav() {
31126          (0, import_jquery_min2.default)("header").removeClass("is-hidden").removeClass("is-visible").removeClass("is-primed");
31127        }
31128        var parallaxImages = [];
31129        var parallaxObjects = [];
31130        var scrolledY = (0, import_jquery_min2.default)(window).scrollTop();
31131        var menuOffcanvas = document.getElementById("menuOffcanvas");
31132        menuOffcanvas.addEventListener("hide.bs.offcanvas", function(event) {
31133          (0, import_jquery_min2.default)("#nav-icon2").toggleClass("open");
31134        });
31135        menuOffcanvas.addEventListener("show.bs.offcanvas", function(event) {
31136          (0, import_jquery_min2.default)("#nav-icon2").toggleClass("open");
31137        });
31138        (0, import_jquery_min2.default)(".camallax").each(function(index) {
31139          var parallaxImage = {};
31140          parallaxImage.element = (0, import_jquery_min2.default)(this);
31141          parallaxImage.height = parallaxImage.element.outerHeight();
31142          parallaxImages.push(parallaxImage);
31143        });
31144        (0, import_jquery_min2.default)(".camallax-object").each(function(index) {
31145          var parallaxObject = {};
31146          parallaxObject.element = (0, import_jquery_min2.default)(this);
31147          parallaxObject.height = parallaxObject.element.height();
31148          parallaxObjects.push(parallaxObject);
31149        });
31150        (0, import_jquery_min2.default)(window).bind("scroll", function(e11) {
31151          parallaxScrollBanner();
31152          parallaxScrollObjects();
31153        });
31154        function parallaxScrollBanner() {
31155          import_jquery_min2.default.each(parallaxImages, function(index, parallaxImage) {
31156            var scrolledY2 = (0, import_jquery_min2.default)(window).scrollTop();
31157            var overallScrolledRatio = 100 * (0, import_jquery_min2.default)(window).scrollTop() / ((0, import_jquery_min2.default)(document).height() - (0, import_jquery_min2.default)(window).height());
31158            var background_parallax = parallaxImage.element;
31159            var zeroPos = (0, import_jquery_min2.default)(window).scrollTop() + (0, import_jquery_min2.default)(window).height() - background_parallax.offset().top;
31160            var hundredPos = background_parallax.outerHeight() + (0, import_jquery_min2.default)(window).height();
31161            var scrollSpeed = 1;
31162            var scrolledRatio = 100 * zeroPos / hundredPos * scrollSpeed;
31163            var scrolled = (0, import_jquery_min2.default)(window).scrollTop() + (0, import_jquery_min2.default)(window).height();
31164            var zeroNeg = (0, import_jquery_min2.default)(window).scrollTop() + (0, import_jquery_min2.default)(window).height() - background_parallax.offset().top;
31165            var hundredNeg = background_parallax.outerHeight() + (0, import_jquery_min2.default)(window).height();
31166            var scrolledNegRatio = 100 * ((hundredNeg - zeroNeg) / hundredNeg) * scrollSpeed;
31167            if (scrolledY2 >= parallaxImage.element.offset().top - (0, import_jquery_min2.default)(window).height() && scrolledY2 <= parallaxImage.element.offset().top + parallaxImage.element.outerHeight()) {
31168              if (background_parallax.hasClass("camallaxUp")) {
31169                parallaxImage.element.css({ "background-position-y": scrolledRatio + "%" });
31170                parallaxImage.element.find(".img").css({ "object-position": "50%" + scrolledRatio + "%" });
31171              } else {
31172                parallaxImage.element.css({ "background-position-y": scrolledNegRatio + "%" });
31173                parallaxImage.element.find(".img").css({ "object-position": "50%" + scrolledNegRatio + "%" });
31174              }
31175            }
31176          });
31177        }
31178        function parallaxScrollObjects() {
31179          import_jquery_min2.default.each(parallaxObjects, function(index, parallaxObject) {
31180            var scrolledY2 = (0, import_jquery_min2.default)(window).scrollTop();
31181            var overallScrolledRatio = 100 * (0, import_jquery_min2.default)(window).scrollTop() / ((0, import_jquery_min2.default)(document).height() - (0, import_jquery_min2.default)(window).height());
31182            var background_parallax = parallaxObject.element;
31183            var zeroPos = (0, import_jquery_min2.default)(window).scrollTop() + (0, import_jquery_min2.default)(window).height() - background_parallax.offset().top;
31184            var hundredPos = background_parallax.height() + (0, import_jquery_min2.default)(window).height();
31185            var scrollSpeed = 3;
31186            var scrolledRatio = 100 * zeroPos / hundredPos * scrollSpeed;
31187            var scrolled = (0, import_jquery_min2.default)(window).scrollTop() + (0, import_jquery_min2.default)(window).height();
31188            var zeroNeg = (0, import_jquery_min2.default)(window).scrollTop() + (0, import_jquery_min2.default)(window).height() - background_parallax.offset().top;
31189            var hundredNeg = background_parallax.height() + (0, import_jquery_min2.default)(window).height();
31190            var scrolledNegRatio = 100 * ((hundredNeg - zeroNeg) / hundredNeg) * scrollSpeed;
31191            if (scrolledY2 >= parallaxObject.element.offset().top - (0, import_jquery_min2.default)(window).height() && scrolledY2 <= parallaxObject.element.offset().top + parallaxObject.element.height()) {
31192              parallaxObject.element.css({ "margin-top": scrolledNegRatio + "px" });
31193            }
31194          });
31195        }
31196        parallaxScrollBanner();
31197        parallaxScrollObjects();
31198        function resizeSets() {
31199          var spacer = (0, import_jquery_min2.default)("header").outerHeight();
31200        }
31201        (0, import_jquery_min2.default)(window).resize(function(e11) {
31202          resizeSets();
31203        });
31204        resizeSets();
31205        (0, import_jquery_min2.default)("#search-btn").on("click", function(event) {
31206          (0, import_jquery_min2.default)("#search").focus();
31207        });
31208        (0, import_jquery_min2.default)("a").not(".collapse-toggle").on("click", function(event) {
31209          if (this.hash !== "") {
31210            var hash = this.hash;
31211            if (hash) {
31212              const tabTriggerEl = document.querySelector(`button[data-bs-target="${hash}-content"]`);
31213              if (tabTriggerEl) {
31214                tabTriggerEl.click();
31215              }
31216            }
31217          }
31218        });
31219        var touch = false;
31220        if ((0, import_jquery_min2.default)("html").hasClass("touch")) {
31221          touch = true;
31222        }
31223        if (touch) {
31224          (0, import_jquery_min2.default)(".nav-main > ul > li").hover(function() {
31225            (0, import_jquery_min2.default)(this).addClass("hover");
31226          }, function() {
31227            (0, import_jquery_min2.default)(this).removeClass("hover");
31228          });
31229          (0, import_jquery_min2.default)(".nav-main > ul > .has-children > a").click(function(e11) {
31230            if ((0, import_jquery_min2.default)(this).hasClass("hover") === false) {
31231              (0, import_jquery_min2.default)(".nav-main > ul > li").removeClass("hover");
31232              (0, import_jquery_min2.default)(this).addClass("hover");
31233              e11.preventDefault();
31234            }
31235          });
31236        }
31237      });
31238      (function() {
31239        var hb = document.getElementById("hb"), body = document.body;
31240        hb.addEventListener("click", function() {
31241          body.classList.toggle("menu-open");
31242        });
31243        document.querySelectorAll(".macc>button").forEach(function(b3) {
31244          b3.addEventListener("click", function() {
31245            b3.parentElement.classList.toggle("open");
31246          });
31247        });
31248        document.querySelectorAll("#mm a").forEach(function(a8) {
31249          a8.addEventListener("click", function() {
31250            body.classList.remove("menu-open");
31251          });
31252        });
31253        document.querySelectorAll(".nav-item > a.trigger").forEach(function(t11) {
31254          t11.addEventListener("click", function(e11) {
31255            e11.preventDefault();
31256            this.blur();
31257          });
31258        });
31259        function closeModals() {
31260          document.querySelectorAll(".pmodal.open").forEach(function(m3) {
31261            m3.classList.remove("open");
31262          });
31263          body.classList.remove("noscroll");
31264        }
31265        document.querySelectorAll(".pmore").forEach(function(btn
31265) {
31266          btn.addEventListener("click", function() {
31267            var m3 = document.getElementById(btn.dataset.modal);
31268            if (m3) {
31269              m3.classList.add("open");
31270              body.classList.add("noscroll");
31271            }
31272          });
31273        });
31274        document.querySelectorAll(".pmodal").forEach(function(m3) {
31275          m3.addEventListener("click", function(e11) {
31276            if (e11.target === m3 || e11.target.classList.contains("pmodal-x")) closeModals();
31277          });
31278        });
31279        document.addEventListener("keydown", function(e11) {
31280          if (e11.key === "Escape") {
31281            body.classList.remove("menu-open");
31282            closeModals();
31283          }
31284        });
31285      })();
31286    }
31287  });
31288
31289  
31289// js/main.js
31290  var import_bootstrap = __toESM(require_bootstrap());
31291
31292  
vendor: 3,080 bytes, lines 31292-31390
31292// node_modules/js-cookie/dist/js.cookie.mjs
31293  function assign(target) {
31294    for (var i10 = 1; i10 < arguments.length; i10++) {
31295      var source = arguments[i10];
31296      for (var key in source) {
31297        target[key] = source[key];
31298      }
31299    }
31300    return target;
31301  }
31302  var defaultConverter = {
31303    read: function(value) {
31304      if (value[0] === '"') {
31305        value = value.slice(1, -1);
31306      }
31307      return value.replace(/(%[\dA-F]{2})+/gi, decodeURIComponent);
31308    },
31309    write: function(value) {
31310      return encodeURIComponent(value).replace(
31311        /%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,
31312        decodeURIComponent
31313      );
31314    }
31315  };
31316  function init(converter, defaultAttributes) {
31317    function set(name, value, attributes) {
31318      if (typeof document === "undefined") {
31319        return;
31320      }
31321      attributes = assign({}, defaultAttributes, attributes);
31322      if (typeof attributes.expires === "number") {
31323        attributes.expires = new Date(Date.now() + attributes.expires * 864e5);
31324      }
31325      if (attributes.expires) {
31326        attributes.expires = attributes.expires.toUTCString();
31327      }
31328      name = encodeURIComponent(name).replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent).replace(/[()]/g, escape);
31329      var stringifiedAttributes = "";
31330      for (var attributeName in attributes) {
31331        if (!attributes[attributeName]) {
31332          continue;
31333        }
31334        stringifiedAttributes += "; " + attributeName;
31335        if (attributes[attributeName] === true) {
31336          continue;
31337        }
31338        stringifiedAttributes += "=" + attributes[attributeName].split(";")[0];
31339      }
31340      return document.cookie = name + "=" + converter.write(value, name) + stringifiedAttributes;
31341    }
31342    function get(name) {
31343      if (typeof document === "undefined" || arguments.length && !name) {
31344        return;
31345      }
31346      var cookies = document.cookie ? document.cookie.split("; ") : [];
31347      var jar = {};
31348      for (var i10 = 0; i10 < cookies.length; i10++) {
31349        var parts = cookies[i10].split("=");
31350        var value = parts.slice(1).join("=");
31351        try {
31352          var found = decodeURIComponent(parts[0]);
31353          jar[found] = converter.read(value, found);
31354          if (name === found) {
31355            break;
31356          }
31357        } catch (e11) {
31358        }
31359      }
31360      return name ? jar[name] : jar;
31361    }
31362    return Object.create(
31363      {
31364        set,
31365        get,
31366        remove: function(name, attributes) {
31367          set(
31368            name,
31369            "",
31370            assign({}, attributes, {
31371              expires: -1
31372            })
31373          );
31374        },
31375        withAttributes: function(attributes) {
31376          return init(this.converter, assign({}, this.attributes, attributes));
31377        },
31378        withConverter: function(converter2) {
31379          return init(assign({}, this.converter, converter2), this.attributes);
31380        }
31381      },
31382      {
31383        attributes: { value: Object.freeze(defaultAttributes) },
31384        converter: { value: Object.freeze(converter) }
31385      }
31386    );
31387  }
31388  var api = init(defaultConverter, { path: "/" });
31389
31390  
31390// js/main.js
31391  var flickity = (init_flickity2(), __toCommonJS(flickity_exports));
31392  var fancybox = (init_fancybox3(), __toCommonJS(fancybox_exports));
31393  var countUp = (init_countup(), __toCommonJS(countup_exports));
31394  var AOS2 = (init_aos2(), __toCommonJS(aos_exports));
31395  var gsap5 = (init_gsap2(), __toCommonJS(gsap_exports));
31396  window.Cookies = api;
31397  var isotope = (init_isotope(), __toCommonJS(isotope_exports));
31398  var bootstrap2 = (init_bootstrap(), __toCommonJS(bootstrap_exports));
31399  var typeIt = (init_typeit(), __toCommonJS(typeit_exports));
31400  init_template();
31401})();
31402/*! Bundled license information:
31403
31404bootstrap/dist/js/bootstrap.js:
31405  (*!
31406    * Bootstrap v5.3.8 (https://getbootstrap.com/)
31407    * Copyright 2011-2025 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
31408    * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
31409    *)
31410
31411get-size/get-size.js:
31412  (*!
31413   * Infinite Scroll v2.0.4
31414   * measure size of elements
31415   * MIT license
31416   *)
31417
31418unidragger/unidragger.js:
31419  (*!
31420   * Unidragger v3.0.1
31421   * Draggable base class
31422   * MIT license
31423   *)
31424
31425imagesloaded/imagesloaded.js:
31426  (*!
31427   * imagesLoaded v5.0.0
31428   * JavaScript is all like "You images are done yet or what?"
31429   * MIT License
31430   *)
31431
31432flickity/js/index.js:
31433  (*!
31434   * Flickity v3.0.0
31435   * Touch, responsive, flickable carousels
31436   *
31437   * Licensed GPLv3 for open source use
31438   * or Flickity Commercial License for commercial use
31439   *
31440   * https://flickity.metafizzy.co
31441   * Copyright 2015-2022 Metafizzy
31442   *)
31443
31444jquery/dist/jquery.min.js:
31445  (*! jQuery v3.7.1 | (c) OpenJS Foundation and other contributors | jquery.org/license *)
31446
31447@fancyapps/ui/dist/utils/isString.js:
31448@fancyapps/ui/dist/utils/isNode.js:
31449@fancyapps/ui/dist/utils/getScrollableParent.js:
31450@fancyapps/ui/dist/utils/strToHtml.js:
31451@fancyapps/ui/dist/utils/clamp.js:
31452@fancyapps/ui/dist/utils/isPlainObject.js:
31453@fancyapps/ui/dist/utils/isEqual.js:
31454@fancyapps/ui/dist/libs/tween.js:
31455@fancyapps/ui/dist/libs/gestures.js:
31456@fancyapps/ui/dist/panzoom/l10n/en_EN.js:
31457@fancyapps/ui/dist/utils/addClass.js:
31458@fancyapps/ui/dist/utils/removeClass.js:
31459@fancyapps/ui/dist/utils/toggleClass.js:
31460@fancyapps/ui/dist/panzoom/panzoom.js:
31461@fancyapps/ui/dist/utils/getDirectChildren.js:
31462@fancyapps/ui/dist/utils/extend.js:
31463@fancyapps/ui/dist/utils/map.js:
31464@fancyapps/ui/dist/carousel/l10n/en_EN.js:
31465@fancyapps/ui/dist/carousel/carousel.js:
31466@fancyapps/ui/dist/utils/scrollLock.js:
31467@fancyapps/ui/dist/utils/canUseDOM.js:
31468@fancyapps/ui/dist/utils/replaceAll.js:
31469@fancyapps/ui/dist/carousel/carousel.zoomable.js:
31470@fancyapps/ui/dist/carousel/carousel.sync.js:
31471@fancyapps/ui/dist/carousel/carousel.lazyload.js:
31472@fancyapps/ui/dist/carousel/carousel.arrows.js:
31473@fancyapps/ui/dist/shared/buttons.js:
31474@fancyapps/ui/dist/carousel/carousel.toolbar.js:
31475@fancyapps/ui/dist/carousel/carousel.autoplay.js:
31476@fancyapps/ui/dist/carousel/carousel.thumbs.js:
31477@fancyapps/ui/dist/carousel/carousel.html.js:
31478@fancyapps/ui/dist/carousel/carousel.video.js:
31479@fancyapps/ui/dist/carousel/carousel.fullscreen.js:
31480@fancyapps/ui/dist/fancybox/fancybox.hash.js:
31481@fancyapps/ui/dist/fancybox/l10n/en_EN.js:
31482@fancyapps/ui/dist/fancybox/fancybox.js:
31483@fancyapps/ui/dist/index.js:
31484@fancyapps/ui/dist/carousel/carousel.dots.js:
31485@fancyapps/ui/dist/carousel/carousel.autoscroll.js:
31486  (*! License details at fancyapps.com/license *)
31487
31488gsap/gsap-core.js:
31489  (*!
31490   * GSAP 3.14.2
31491   * https://gsap.com
31492   *
31493   * @license Copyright 2008-2025, GreenSock. All rights reserved.
31494   * Subject to the terms at https://gsap.com/standard-license
31495   * @author: Jack Doyle, [email protected]
31496  *)
31497
31498gsap/CSSPlugin.js:
31499  (*!
31500   * CSSPlugin 3.14.2
31501   * https://gsap.com
31502   *
31503   * Copyright 2008-2025, GreenSock. All rights reserved.
31504   * Subject to the terms at https://gsap.com/standard-license
31505   * @author: Jack Doyle, [email protected]
31506  *)
31507
31508gsap/Observer.js:
31509  (*!
31510   * Observer 3.14.2
31511   * https://gsap.com
31512   *
31513   * @license Copyright 2008-2025, GreenSock. All rights reserved.
31514   * Subject to the terms at https://gsap.com/standard-license
31515   * @author: Jack Doyle, [email protected]
31516  *)
31517
31518gsap/ScrollTrigger.js:
31519  (*!
31520   * ScrollTrigger 3.14.2
31521   * https://gsap.com
31522   *
31523   * @license Copyright 2008-2025, GreenSock. All rights reserved.
31524   * Subject to the terms at https://gsap.com/standard-license
31525   * @author: Jack Doyle, [email protected]
31526  *)
31527
31528gsap/ScrollSmoother.js:
31529  (*!
31530   * ScrollSmoother 3.14.2
31531   * https://gsap.com
31532   *
31533   * @license Copyright 2008-2025, GreenSock. All rights reserved.
31534   * Subject to the terms at https://gsap.com/standard-license
31535   * @author: Jack Doyle, [email protected]
31536  *)
31537
31538get-size/get-size.js:
31539  (*!
31540   * getSize v2.0.3
31541   * measure size of elements
31542   * MIT license
31543   *)
31544
31545outlayer/outlayer.js:
31546  (*!
31547   * Outlayer v2.1.1
31548   * the brains and guts of a layout library
31549   * MIT license
31550   *)
31551
31552masonry-layout/masonry.js:
31553  (*!
31554   * Masonry v4.2.2
31555   * Cascading grid layout library
31556   * https://masonry.desandro.com
31557   * MIT License
31558   * by David DeSandro
31559   *)
31560
31561isotope-layout/js/layout-modes/masonry.js:
31562  (*!
31563   * Masonry layout mode
31564   * sub-classes Masonry
31565   * https://masonry.desandro.com
31566   *)
31567
31568isotope-layout/js/isotope.js:
31569  (*!
31570   * Isotope v3.0.6
31571   *
31572   * Licensed GPLv3 for open source use
31573   * or Isotope Commercial License for commercial use
31574   *
31575   * https://isotope.metafizzy.co
31576   * Copyright 2010-2018 Metafizzy
31577   *)
31578
31579jquery/dist/jquery.js:
31580  (*!
31581   * jQuery JavaScript Library v3.7.1
31582   * https://jquery.com/
31583   *
31584   * Copyright OpenJS Foundation and other contributors
31585   * Released under the MIT license
31586   * https://jquery.org/license
31587   *
31588   * Date: 2023-08-28T13:37Z
31589   *)
31590
31591js-cookie/dist/js.cookie.mjs:
31592  (*! js-cookie v3.0.5 | MIT *)
31593*/

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.