PageSourceSearch

https://www.salzburgerfestspiele.at/wp-content/themes/salzburgerfe…?ver=2f25c74827066a6e503fb3c08236ae85

js salzburgerfestspiele.at collected 2026-09-24 18:14:20 UTC 61,428 bytes, 1,568 lines download raw bytes

1const St = {
2  name: "sticky-element",
3  selector: ".en-sticky-element",
4  isActivatedClassName: "sticky-is-activated",
5  isStickyClassName: "is-sticky",
6  slideInClassName: "slide-in",
7  stickTo: "bottom",
8  useBem: !1,
9  snapDistance: 0,
10  throttleScroll: 5,
11  slideOutOnNotScrollingDelay: null,
12  onAfterLoop: null,
13  initialeIsSticky: !0,
14  initialeIsSlideIn: !0,
15  isStickyOnBottom: !0,
16  isStickyOnTop: !0,
17  showOnScrollUp: !0,
18  showOnScrollDown: !1,
19  showOnScrollTop: !0,
20  showOnScrollBottom: !0
21};
22function $(t = {}) {
23  if (t = { ...St, ...t }, !t.selector) return;
24  const i = document.querySelector(t.selector);
25  if (!i) return;
26  const o = t.useBem ? `${t.selector}--${t.isStickyClassName}` : t.isStickyClassName, c = t.useBem ? `${t.selector}--${t.slideInClassName}:` : t.slideInClassName;
27  let h = t.initialeIsSticky, a = t.initialeIsSlideIn, m = null, s = window.scrollY;
28  i.classList.toggle(t._slideInClassName, a);
29  const l = () => {
30    const f = i.offsetHeight;
31    document.documentElement.style.setProperty(
32      "--" + t.name + "-height",
33      `${f}px`
34    );
35  };
36  let p = null;
37  const y = (f = 0) => {
38    f = f instanceof Event ? f.timeStamp : f;
39    const v = window.scrollY, d = window.innerHeight, w = i.offsetHeight, b = document.body.offsetHeight, u = v <= t.snapDistance, e = v + d > b - t.snapDistance - (h ? 0 : w), n = v > s, r = v < s, g = Math.abs(v - s) > t.throttleScroll;
40    e && !t.isStickyOnBottom || u && !t.isStickyOnTop ? h = !1 : h = !0, h ? i.style.position = "sticky" : i.style.position = "relative", h ? (r && (a = t.showOnScrollUp), n && (a = t.showOnScrollDown), e && f !== 0 && (a = t.showOnScrollBottom), u && f !== 0 && (a = t.showOnScrollTop)) : a = t.initialeIsSlideIn, h ? i.classList.add(o) : i.classList.remove(o), a ? (i.classList.add(c), g && t.slideOutOnNotScrollingDelay && (clearTimeout(m), m = setTimeout(() => {
41      i.classList.remove(c);
42    }, t.slideOutOnNotScrollingDelay))) : (clearTimeout(m), i.classList.remove(c)), u && t.showOnScrollTop && clearTimeout(m), i.setAttribute("data-is-sticky", h), i.setAttribute("data-is-visible", a), i.classList.add(t.isActivatedClassName), i.classList.toggle("sticky-scrolled-to-top", u), i.classList.toggle("sticky-scrolled-to-bottom", e), i.classList.toggle("sticky-is-scrolled-down", n), i.classList.toggle("sticky-is-scrolled-up", r), i.classList.toggle("sticky-is-not-scrolling", g), t.onAfterLoop && t.onAfterLoop({
43      stickyElement: i,
44      isSticky: h,
45      isSlideIn: a,
46      isNotScrolling: g,
47      isScollingDown: n,
48      isScollingUp: r,
49      isScrolledToTop: u,
50      isScrolledToBottom: e,
51      scrollY: v,
52      viewportHeight: d,
53      stickyElementHeight: w,
54      bodyHeight: b,
55      timeStamp: f
56    }), s = v, f === 0 ? window.setTimeout(() => {
57      y(20);
58    }, 20) : (p && clearTimeout(p), p = window.setTimeout(() => {
59      l();
60    }, 500));
61  };
62  y(0), addEventListener("scroll", y), addEventListener("resize", y), addEventListener("resize", l);
63}
64const W = {
65  isScrollingClassName: "is-scrolling",
66  isScrolledToTopClassName: "is-scrolled-to-top",
67  isScrolledToBottomClassName: "is-scrolled-to-bottom",
68  scrollingDirectionClassName: {
69    down: "scrolling-down",
70    up: "scrolling-up",
71    none: "scrolling-none"
72  },
73  offsetTop: 20,
74  offsetBottom: 200,
75  throttle: 100
76};
77function Et(t = {}) {
78  const {
79    isScrollingClassName: i,
80    isScrolledToTopClassName: o,
81    isScrolledToBottomClassName: c,
82    scrollingDirectionClassName: h,
83    offsetTop: a,
84    offsetBottom: m,
85    throttle: s
86  } = {
87    ...W,
88    ...t
89  }, l = document.body;
90  let p = window.scrollY, y = window.scrollY, f = !1, v = "none", d = !1, w = !1, b = null, u = 16;
91  const e = () => window.innerWidth - document.documentElement.clientWidth, n = () => {
92    y = window.scrollY, u = e(), document.documentElement.style.setProperty("--en-scrollbar-width", `${u}px`), Math.abs(y - p) > 0 ? (f = !0, v = y > p ? "down" : "up") : (f = !1, v = "none"), d = y <= a, w = y + window.innerHeight >= document.body.offsetHeight - m, l.setAttribute("data-is-scrolling", f), l.setAttribute("data-scroll-direction", v), l.setAttribute("data-scroll-on-top", d), l.setAttribute("data-scroll-at-bottom", w), l.setAttribute("data-scroll-direction", v), l.classList.toggle(i, f), l.classList.toggle(o, d), l.classList.toggle(c, w), l.classList.remove(...Object.values(W.scrollingDirectionClassName)), l.classList.add(h[v]), f && (clearTimeout(b), b = setTimeout(() => {
93      Math.abs(window.scrollY - p) < 5 && (f = !1), l.setAttribute("data-is-scrolling", f), l.classList.toggle(i, f), l.classList.remove(...Object.values(W.scrollingDirectionClassName)), l.classList.add(h[v]);
94    }, s)), p = y;
95  };
96  window.addEventListener("scroll", n), n();
97}
98const _t = {
99  selector: ".en-slider",
100  slideSelector: ".en-slider__slide",
101  nextButton: ".en-slider__next",
102  prevButton: ".en-slider__prev",
103  counterCurrent: ".en-slider__counter-current"
104};
105function Lt(t = {}) {
106  t = { ..._t, ...t };
107  const i = document.querySelectorAll(t.selector);
108  i.length && i.forEach((o) => {
109    const c = o.querySelectorAll(t.slideSelector), h = o.dataset.sliderNext, a = h ? document.getElementById(h) : o.querySelector(t.nextButton), m = o.dataset.sliderPrev, s = m ? document.getElementById(m) : o.querySelector(t.prevButton), l = o.dataset.counterCurrent, p = l ? document.getElementById(l) : o.querySelector(t.counterCurrent), y = () => {
110      const d = o.scrollWidth > o.offsetWidth;
111      if (s.classList.toggle("tw-hidden", !d), a.classList.toggle("tw-hidden", !d), s.disabled = o.scrollLeft <= 0, a.disabled = o.scrollLeft + o.offsetWidth >= o.scrollWidth, p) {
112        const w = Array.from(c).findIndex(
113          (b) => Math.floor(b.offsetLeft) >= Math.floor(o.scrollLeft)
114        );
115        p.innerHTML = w + 1;
116      }
117    };
118    y(), o.addEventListener("scroll", () => {
119      y();
120    });
121    const f = () => {
122      const w = Array.from(c).find((b, u) => {
123        const e = b.offsetLeft + b.offsetWidth, n = o.scrollLeft + o.offsetWidth;
124        return console.log(`Check slide ${u}: ${e} > ${n + 2}`), e > n + 2;
125      });
126      o.scrollTo({ left: w.offsetLeft, behavior: "smooth" });
127    }, v = () => {
128      const d = Math.floor(o.offsetWidth / c[0].offsetWidth), w = Array.from(c).findIndex(
129        (e) => Math.floor(e.offsetLeft) >= Math.floor(o.scrollLeft)
130      ), b = Math.max(0, w - d), u = c[b];
131      o.scrollTo({ left: u.offsetLeft, behavior: "smooth" });
132    };
133    a.addEventListener("click", f), s.addEventListener("click", v), window.addEventListener("resize", () => {
134      y();
135    });
136  });
137}
138const zt = {
139  selector: 'article.en-content > [data-theme="dark"]',
140  threshold: 0.4
141};
142function Tt(t = {}) {
143  t = { ...zt, ...t };
144  const i = document.querySelector("body"), o = document.querySelectorAll(t.selector);
145  !i.dataset.themeInitial && i.dataset.theme && (i.dataset.themeInitial = i.dataset.theme);
146  let c = /* @__PURE__ */ new Set();
147  const h = new IntersectionObserver(
148    (a) => {
149      const m = window.innerHeight;
150      let s = 0, l = !1;
151      a.forEach((p) => {
152        p.isIntersecting ? c.add(p.target) : c.delete(p.target);
153      }), c.forEach((p) => {
154        const y = p.getBoundingClientRect(), f = Math.min(y.bottom, m) - Math.max(y.top, 0);
155        s += f;
156      }), s >= m * t.threshold && (l = !0), l ? i.setAttribute("data-theme", "dark") : (i.removeAttribute("data-theme"), i.dataset.themeInitial && i.setAttribute("data-theme", i.dataset.themeInitial));
157    },
158    {
159      // every 10% of any element is visible
160      threshold: [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1]
161    }
162  );
163  o.forEach((a) => {
164    h.observe(a);
165  });
166}
167const ht = {
168  selector: {
169    headerMenu: ".sff-header-menu",
170    mobileTicketsMenu: ".sff-mobile-tickets-menu",
171    menuLayoutContainer: ".sff-layout-header-menu",
172    backdrop: ".sff-header-mobile-menu-backdrop",
173    submenu: ".sff-header-menu-megamenu-dropdown-container",
174    openMobileMenuButton: "#sff-header-menu-mobile--open-button",
175    closeMobileMenuButton: "#sff-header-menu-mobile--close-button",
176    topLevelItem: ".sff-header-menu-item--toplevel",
177    hasChildren: ".en-menu-item-has-children",
178    mobileTicketsTopLevelItem: ".sff-mobile-tickets-menu-item--level_0"
179  },
180  classNames: {
181    isMobileMenuOpen: "en-mobile-menu-is-open",
182    isSubmenuOpen: "en-submenu-is-open",
183    isOpen: "is-open",
184    isActive: "is-active"
185  },
186  speed: 200,
187  /** When another top-level mega is already open, wait before switching (diagonal mouse path). */
188  hoverSwitchDelayMs: 200,
189  /** After leaving a top-level item, keep it open briefly so the pointer can reach its fixed mega panel. */
190  hoverCloseDelayMs: 220
191};
192function Mt(t, i = {}) {
193  const { selector: o, classNames: c, speed: h, hoverSwitchDelayMs: a, hoverCloseDelayMs: m } = i = {
194    ...ht,
195    ...i
196  }, s = t(o.headerMenu);
197  if (!s.length) return;
198  const l = t(o.menuLayoutContainer);
199  l.data("mobile-menu-is-open", !1);
200  const p = t(o.backdrop);
201  e(s), n(!1), t(document).on("keydown", function(r) {
202    r.metaKey && r.key === "k" && n(!0);
203  }), t(document).on("keydown", function(r) {
204    r.key === "Escape" && n(!1);
205  }), t(window).on("resize", function() {
206    d(), e(s), n(!1);
207  }), t(o.openMobileMenuButton).on("click", function() {
208    n(!0);
209  }), t(o.closeMobileMenuButton).on("click", function() {
210    n(!1);
211  });
212  const y = s.find(o.topLevelItem + o.hasChildren);
213  let f = null, v = null;
214  function d() {
215    f !== null && (clearTimeout(f), f = null), v !== null && (clearTimeout(v), v = null);
216  }
217  function w() {
218    return window.matchMedia("(min-width: 980px)").matches && window.matchMedia("(hover: hover)").matches;
219  }
220  y.each(function() {
221    const r = t(this);
222    r.data("submenu-is-open", !1), r.on("click", ">.menu-item__inner", function(g) {
223      if (window.matchMedia("(max-width: 979px)").matches)
224        g.preventDefault(), e(s, r), u(r);
225      else if (window.matchMedia("(hover: none)").matches) {
226        g.preventDefault();
227        const S = r.data("submenu-is-open");
228        e(s), u(r, !S);
229      }
230    }), r.on("mouseenter focusin", function(g) {
231      if (!(g.type === "mouseenter" && w())) {
232        d(), y.not(r).removeClass(c.isOpen), r.addClass(c.isOpen);
233        return;
234      }
235      v !== null && (clearTimeout(v), v = null);
236      const E = y.filter("." + c.isOpen);
237      if (E.length === 0 || E.is(r)) {
238        f !== null && (clearTimeout(f), f = null), r.addClass(c.isOpen);
239        return;
240      }
241      f !== null && (clearTimeout(f), f = null), f = window.setTimeout(() => {
242        f = null, y.not(r).removeClass(c.isOpen), r.addClass(c.isOpen);
243      }, a);
244    }), r.on("mouseleave", function(g) {
245      if (!w()) {
246        r.removeClass(c.isOpen);
247        return;
248      }
249      f !== null && (clearTimeout(f), f = null);
250      const S = g.relatedTarget;
251      S && r[0].contains(S) || (v = window.setTimeout(() => {
252        v = null, r.removeClass(c.isOpen);
253      }, m));
254    }), r.on("focusout", function(g) {
255      r[0].contains(g.relatedTarget) || (d(), r.removeClass(c.isOpen));
256    });
257  });
258  function b(r = !1, g = null) {
259    r ? (p.addClass(c.isActive), document.body.style.overflow = "hidden") : (p.removeClass(c.isActive), document.body.style.overflow = "visible"), g ? p.on("click", g) : p.off("
259click", g);
260  }
261  function u(r, g) {
262    const S = g !== void 0 ? g : !r.data("submenu-is-open");
263    window.matchMedia("(max-width: 980px)").matches ? (r.data("submenu-is-open", S).toggleClass(c.isSubmenuOpen, S).attr("aria-expanded", S), S ? r.find(o.submenu).slideDown(h) : r.find(o.submenu).slideUp(h)) : r.data("submenu-is-open", S).toggleClass(c.isOpen, S).attr("aria-expanded", S);
264  }
265  function e(r, g = null) {
266    const S = window.matchMedia("(max-width: 980px)").matches;
267    r.find(o.topLevelItem + o.hasChildren).not(g).removeClass(c.isOpen).data("submenu-is-open", !1).attr("aria-expanded", !1);
268    const E = r.find(o.topLevelItem + o.hasChildren).not(g);
269    S ? E.removeClass(c.isSubmenuOpen).find(o.submenu).slideUp(300) : E.removeClass(c.isSubmenuOpen).find(o.submenu).stop(!0, !0).removeAttr("style");
270  }
271  function n(r) {
272    l.data("mobile-menu-is-open", r), l.attr("data-mobile-menu-is-open", r), l.attr("aria-hidden", !r), l.toggleClass(c.isMobileMenuOpen, r), b(r, function() {
273      return n(!1), !1;
274    });
275  }
276}
277function xt(t, i = {}) {
278  const { selector: o, classNames: c, speed: h } = i = {
279    ...ht,
280    ...i
281  }, a = t(o.mobileTicketsMenu);
282  if (!a.length) return;
283  a.find(o.mobileTicketsTopLevelItem + o.hasChildren).each(function() {
284    const s = t(this);
285    s.data("submenu-is-open", !1), s.on("click", ">.menu-item__inner", function(l) {
286      window.matchMedia("(max-width: 980px)").matches && (l.preventDefault(), a.find(o.mobileTicketsTopLevelItem + o.hasChildren).not(s).removeClass(c.isSubmenuOpen).data("submenu-is-open", !1), m(s));
287    });
288  });
289  function m(s) {
290    const l = !s.data("submenu-is-open");
291    s.toggleClass(c.isSubmenuOpen, l), s.data("submenu-is-open", l);
292  }
293}
294function At(t) {
295  return t && t.__esModule && Object.prototype.hasOwnProperty.call(t, "default") ? t.default : t;
296}
297var k = { exports: {} }, R = { exports: {} }, C = { exports: {} }, Ct = C.exports, j;
298function ft() {
299  return j || (j = 1, (function(t) {
300    (function(i, o) {
301      t.exports ? t.exports = o() : i.EvEmitter = o();
302    })(typeof window < "u" ? window : Ct, function() {
303      function i() {
304      }
305      var o = i.prototype;
306      return o.on = function(c, h) {
307        if (!(!c || !h)) {
308          var a = this._events = this._events || {}, m = a[c] = a[c] || [];
309          return m.indexOf(h) == -1 && m.push(h), this;
310        }
311      }, o.once = function(c, h) {
312        if (!(!c || !h)) {
313          this.on(c, h);
314          var a = this._onceEvents = this._onceEvents || {}, m = a[c] = a[c] || {};
315          return m[h] = !0, this;
316        }
317      }, o.off = function(c, h) {
318        var a = this._events && this._events[c];
319        if (!(!a || !a.length)) {
320          var m = a.indexOf(h);
321          return m != -1 && a.splice(m, 1), this;
322        }
323      }, o.emitEvent = function(c, h) {
324        var a = this._events && this._events[c];
325        if (!(!a || !a.length)) {
326          a = a.slice(0), h = h || [];
327          for (var m = this._onceEvents && this._onceEvents[c], s = 0; s < a.length; s++) {
328            var l = a[s], p = m && m[l];
329            p && (this.off(c, l), delete m[l]), l.apply(this, h);
330          }
331          return this;
332        }
333      }, o.allOff = function() {
334        delete this._events, delete this._onceEvents;
335      }, i;
336    });
337  })(C)), C.exports;
338}
339var D = { exports: {} };
340var Q;
341function G() {
342  return Q || (Q = 1, (function(t) {
343    (function(i, o) {
344      t.exports ? t.exports = o() : i.getSize = o();
345    })(window, function() {
346      function o(d) {
347        var w = parseFloat(d), b = d.indexOf("%") == -1 && !isNaN(w);
348        return b && w;
349      }
350      function c() {
351      }
352      var h = typeof console > "u" ? c : function(d) {
353        console.error(d);
354      }, a = [
355        "paddingLeft",
356        "paddingRight",
357        "paddingTop",
358        "paddingBottom",
359        "marginLeft",
360        "marginRight",
361        "marginTop",
362        "marginBottom",
363        "borderLeftWidth",
364        "borderRightWidth",
365        "borderTopWidth",
366        "borderBottomWidth"
367      ], m = a.length;
368      function s() {
369        for (var d = {
370          width: 0,
371          height: 0,
372          innerWidth: 0,
373          innerHeight: 0,
374          outerWidth: 0,
375          outerHeight: 0
376        }, w = 0; w < m; w++) {
377          var b = a[w];
378          d[b] = 0;
379        }
380        return d;
381      }
382      function l(d) {
383        var w = getComputedStyle(d);
384        return w || h("Style returned " + w + ". Are you running this code in a hidden iframe on Firefox? See https://bit.ly/getsizebug1"), w;
385      }
386      var p = !1, y;
387      function f() {
388        if (!p) {
389          p = !0;
390          var d = document.createElement("div");
391          d.style.width = "200px", d.style.padding = "1px 2px 3px 4px", d.style.borderStyle = "solid", d.style.borderWidth = "1px 2px 3px 4px", d.style.boxSizing = "border-box";
392          var w = document.body || document.documentElement;
393          w.appendChild(d);
394          var b = l(d);
395          y = Math.round(o(b.width)) == 200, v.isBoxSizeOuter = y, w.removeChild(d);
396        }
397      }
398      function v(d) {
399        if (f(), typeof d == "string" && (d = document.querySelector(d)), !(!d || typeof d != "object" || !d.nodeType)) {
400          var w = l(d);
401          if (w.display == "none")
402            return s();
403          var b = {};
404          b.width = d.offsetWidth, b.height = d.offsetHeight;
405          for (var u = b.isBorderBox = w.boxSizing == "border-box", e = 0; e < m;
405 e++) {
406            var n = a[e], r = w[n], g = parseFloat(r);
407            b[n] = isNaN(g) ? 0 : g;
408          }
409          var S = b.paddingLeft + b.paddingRight, E = b.paddingTop + b.paddingBottom, _ = b.marginLeft + b.marginRight, T = b.marginTop + b.marginBottom, M = b.borderLeftWidth + b.borderRightWidth, x = b.borderTopWidth + b.borderBottomWidth, A = u && y, V = o(w.width);
410          V !== !1 && (b.width = V + // add padding and border unless it's already including it
411          (A ? 0 : S + M));
412          var Z = o(w.height);
413          return Z !== !1 && (b.height = Z + // add padding and border unless it's already including it
414          (A ? 0 : E + x)), b.innerWidth = b.width - (S + M), b.innerHeight = b.height - (E + x), b.outerWidth = b.width + _, b.outerHeight = b.height + T, b;
415        }
416      }
417      return v;
418    });
419  })(D)), D.exports;
420}
421var P = { exports: {} }, q = { exports: {} }, K;
422function Ot() {
423  return K || (K = 1, (function(t) {
424    (function(i, o) {
425      t.exports ? t.exports = o() : i.matchesSelector = o();
426    })(window, function() {
427      var o = (function() {
428        var c = window.Element.prototype;
429        if (c.matches)
430          return "matches";
431        if (c.matchesSelector)
432          return "matchesSelector";
433        for (var h = ["webkit", "moz", "ms", "o"], a = 0; a < h.length; a++) {
434          var m = h[a], s = m + "MatchesSelector";
435          if (c[s])
436            return s;
437        }
438      })();
439      return function(h, a) {
440        return h[o](a);
441      };
442    });
443  })(q)), q.exports;
444}
445var X;
446function It() {
447  return X || (X = 1, (function(t) {
448    (function(i, o) {
449      t.exports ? t.exports = o(
450        i,
451        Ot()
452      ) : i.fizzyUIUtils = o(
453        i,
454        i.matchesSelector
455      );
456    })(window, function(o, c) {
457      var h = {};
458      h.extend = function(s, l) {
459        for (var p in l)
460          s[p] = l[p];
461        return s;
462      }, h.modulo = function(s, l) {
463        return (s % l + l) % l;
464      };
465      var a = Array.prototype.slice;
466      h.makeArray = function(s) {
467        if (Array.isArray(s))
468          return s;
469        if (s == null)
470          return [];
471        var l = typeof s == "object" && typeof s.length == "number";
472        return l ? a.call(s) : [s];
473      }, h.removeFrom = function(s, l) {
474        var p = s.indexOf(l);
475        p != -1 && s.splice(p, 1);
476      }, h.getParent = function(s, l) {
477        for (; s.parentNode && s != document.body; )
478          if (s = s.parentNode, c(s, l))
479            return s;
480      }, h.getQueryElement = function(s) {
481        return typeof s == "string" ? document.querySelector(s) : s;
482      }, h.handleEvent = function(s) {
483        var l = "on" + s.type;
484        this[l] && this[l](s);
485      }, h.filterFindElements = function(s, l) {
486        s = h.makeArray(s);
487        var p = [];
488        return s.forEach(function(y) {
489          if (y instanceof HTMLElement) {
490            if (!l) {
491              p.push(y);
492              return;
493            }
494            c(y, l) && p.push(y);
495            for (var f = y.querySelectorAll(l), v = 0; v < f.length; v++)
496              p.push(f[v]);
497          }
498        }), p;
499      }, h.debounceMethod = function(s, l, p) {
500        p = p || 100;
501        var y = s.prototype[l], f = l + "Timeout";
502        s.prototype[l] = function() {
503          var v = this[f];
504          clearTimeout(v);
505          var d = arguments, w = this;
506          this[f] = setTimeout(function() {
507            y.apply(w, d), delete w[f];
508          }, p);
509        };
510      }, h.docReady = function(s) {
511        var l = document.readyState;
512        l == "complete" || l == "interactive" ? setTimeout(s) : document.addEventListener("DOMContentLoaded", s);
513      }, h.toDashed = function(s) {
514        return s.replace(/(.)([A-Z])/g, function(l, p, y) {
515          return p + "-" + y;
516        }).toLowerCase();
517      };
518      var m = o.console;
519      return h.htmlInit = function(s, l) {
520        h.docReady(function() {
521          var p = h.toDashed(l), y = "data-" + p, f = document.querySelectorAll("[" + y + "]"), v = document.querySelectorAll(".js-" + p), d = h.makeArray(f).concat(h.makeArray(v)), w = y + "-options", b = o.jQuery;
522          d.forEach(function(u) {
523            var e = u.getAttribute(y) || u.getAttribute(w), n;
524            try {
525              n = e && JSON.parse(e);
526            } catch (g) {
527              m && m.error("Error parsing " + y + " on " + u.className + ": " + g);
528              return;
529            }
530            var r = new s(u, n);
531            b && b.data(u, l, r);
532          });
533        });
534      }, h;
535    });
536  })(P)), P.exports;
537}
538var N = { exports: {} }, J;
539function Wt() {
540  return J || (J = 1, (function(t) {
541    (function(i, o) {
542      t.exports ? t.exports = o(
543        ft(),
544        G()
545      ) : (i.Outlayer = {}, i.Outlayer.Item = o(
546        i.EvEmitter,
547        i.getSize
548      ));
549    })(window, function(o, c) {
550      function h(u) {
551        for (var e in u)
552          return !1;
553        return e = null, !0;
554      }
555      var a = document.documentElement.style, m = typeof a.transition == "string" ? "transition" : "WebkitTransition", s = typeof a.transform == "string" ? "transform" : "WebkitTransform", l = {
556        WebkitTransition: "webkitTransitionEnd",
557        transition: "transitionend"
558      }[m], p = {
559        transform: s,
560        transition: m,
561        transitionDuration: m + "Duration",
562        transitionProperty: m + "Property",
563        transitionDelay: m + "Delay"
564      };
565      function y(u, e) {
566        u && (this.element = u, this.layout = e, this.position = {
567          x: 0,
568          y: 0
569        }, this._create());
570      }
571      var f = y.prototype = Object.create(o.prototype);
572      f.constructor = y, f._create = function() {
573        this._transn = {
574          ingProperties: {},
575          clean: {},
576          onEnd: {}
577        }, this.css({
578          position: "absolute"
579        });
580      }, f.handleEvent = function(u) {
581        var e = "on" + u.type;
582        this[e] && this[e](u);
583      }, f.getSize = function() {
584        this.size = c(this.element);
585      }, f.css = function(u) {
586        var e = this.element.style;
587        for (var n in u) {
588          var r = p[n] || n;
589          e[r] = u[n];
590        }
591      }, f.getPosition = function() {
592        var u = getComputedStyle(this.element), e = this.layout._getOption("originLeft"), n = this.layout._getOption("originTop"), r = u[e ? "left" : "right"], g = u[n ? "top" : "bottom"], S = parseFloat(r), E = parseFloat(g), _ = this.layout.size;
593        r.indexOf("%") != -1 && (S = S / 100 * _.width), g.indexOf("%") != -1 && (E = E / 100 * _.height), S = isNaN(S) ? 0 : S, E = isNaN(E) ? 0 : E, S -= e ? _.paddingLeft : _.paddingRight, E -= n ? _.paddingTop : _.paddingBottom, this.position.x = S, this.position.y = E;
594      }, f.layoutPosition = function() {
595        var u = this.layout.size, e = {}, n = this.layout._getOption("originLeft"), r = this.layout._getOption("originTop"), g = n ? "paddingLeft" : "paddingRight", S = n ? "left" : "right", E = n ? "right" : "left", _ = this.position.x + u[g];
596        e[S] = this.getXValue(_), e[E] = "";
597        var T = r ? "paddingTop" : "paddingBottom", M = r ? "top" : "bottom", x = r ? "bottom" : "top", A = this.position.y + u[T];
598        e[M] = this.getYValue(A), e[x] = "", this.css(e), this.emitEvent("layout", [this]);
599      }, f.getXValue = function(u) {
600        var e = this.layout._getOption("horizontal");
601        return this.layout.options.percentPosition && !e ? u / this.layout.size.width * 100 + "%" : u + "px";
602      }, f.getYValue = function(u) {
603        var e = this.layout._getOption("horizontal");
604        return this.layout.options.percentPosition && e ? u / this.layout.size.height * 100 + "%" : u + "px";
605      }
605, f._transitionTo = function(u, e) {
606        this.getPosition();
607        var n = this.position.x, r = this.position.y, g = u == this.position.x && e == this.position.y;
608        if (this.setPosition(u, e), g && !this.isTransitioning) {
609          this.layoutPosition();
610          return;
611        }
612        var S = u - n, E = e - r, _ = {};
613        _.transform = this.getTranslate(S, E), this.transition({
614          to: _,
615          onTransitionEnd: {
616            transform: this.layoutPosition
617          },
618          isCleaning: !0
619        });
620      }, f.getTranslate = function(u, e) {
621        var n = this.layout._getOption("originLeft"), r = this.layout._getOption("originTop");
622        return u = n ? u : -u, e = r ? e : -e, "translate3d(" + u + "px, " + e + "px, 0)";
623      }, f.goTo = function(u, e) {
624        this.setPosition(u, e), this.layoutPosition();
625      }, f.moveTo = f._transitionTo, f.setPosition = function(u, e) {
626        this.position.x = parseFloat(u), this.position.y = parseFloat(e);
627      }, f._nonTransition = function(u) {
628        this.css(u.to), u.isCleaning && this._removeStyles(u.to);
629        for (var e in u.onTransitionEnd)
630          u.onTransitionEnd[e].call(this);
631      }, f.transition = function(u) {
632        if (!parseFloat(this.layout.options.transitionDuration)) {
633          this._nonTransition(u);
634          return;
635        }
636        var e = this._transn;
637        for (var n in u.onTransitionEnd)
638          e.onEnd[n] = u.onTransitionEnd[n];
639        for (n in u.to)
640          e.ingProperties[n] = !0, u.isCleaning && (e.clean[n] = !0);
641        u.from && (this.css(u.from), this.element.offsetHeight), this.enableTransition(u.to), this.css(u.to), this.isTransitioning = !0;
642      };
643      function v(u) {
644        return u.replace(/([A-Z])/g, function(e) {
645          return "-" + e.toLowerCase();
646        });
647      }
648      var d = "opacity," + v(s);
649      f.enableTransition = function() {
650        if (!this.isTransitioning) {
651          var u = this.layout.options.transitionDuration;
652          u = typeof u == "number" ? u + "ms" : u, this.css({
653            transitionProperty: d,
654            transitionDuration: u,
655            transitionDelay: this.staggerDelay || 0
656          }), this.element.addEventListener(l, this, !1);
657        }
658      }, f.onwebkitTransitionEnd = function(u) {
659        this.ontransitionend(u);
660      }, f.onotransitionend = function(u) {
661        this.ontransitionend(u);
662      };
663      var w = {
664        "-webkit-transform": "transform"
665      };
666      f.ontransitionend = function(u) {
667        if (u.target === this.element) {
668          var e = this._transn, n = w[u.propertyName] || u.propertyName;
669          if (delete e.ingProperties[n], h(e.ingProperties) && this.disableTransition(), n in e.clean && (this.element.style[u.propertyName] = "", delete e.clean[n]), n in e.onEnd) {
670            var r = e.onEnd[n];
671            r.call(this), delete e.onEnd[n];
672          }
673          this.emitEvent("transitionEnd", [this]);
674        }
675      }, f.disableTransition = function() {
676        this.removeTransitionStyles(), this.element.removeEventListener(l, this, !1), this.isTransitioning = !1;
677      }, f._removeStyles = function(u) {
678        var e = {};
679        for (var n in u)
680          e[n] = "";
681        this.css(e);
682      };
683      var b = {
684        transitionProperty: "",
685        transitionDuration: "",
686        transitionDelay: ""
687      };
688      return f.removeTransitionStyles = function() {
689        this.css(b);
690      }, f.stagger = function(u) {
691        u = isNaN(u) ? 0 : u, this.staggerDelay = u + "ms";
692      }, f.removeElem = function() {
693        this.element.parentNode.removeChild(this.element), this.css({ display: "" }), this.emitEvent("remove", [this]);
694      }, f.remove = function() {
695        if (!parseFloat(this.layout.options.transitionDuration)) {
696          this.removeElem();
697          return;
698        }
699        this.once("transitionEnd", function() {
700          this.removeElem();
701        }), this.hide();
702      }, f.reveal = function() {
703        delete this.isHidden, this.css({ display: "" });
704        var u = this.layout.options, e = {}, n = this.getHideRevealTransitionEndProperty("visibleStyle");
705        e[n] = this.onRevealTransitionEnd, this.transition({
706          from: u.hiddenStyle,
707          to: u.visibleStyle,
708          isCleaning: !0,
709          onTransitionEnd: e
710        });
711      }, f.onRevealTransitionEnd = function() {
712        this.isHidden || this.emitEvent("reveal");
713      }, f.getHideRevealTransitionEndProperty = function(u) {
714        var e = this.layout.options[u];
715        if (e.opacity)
716          return "opacity";
717        for (var n in e)
718          return n;
719      }, f.hide = function() {
720        this.isHidden = !0, this.css({ display: "" });
721        var u = this.layout.options, e = {}, n = this.getHideRevealTransitionEndProperty("hiddenStyle");
722        e[n] = this.onHideTransitionEnd, this.transition({
723          from: u.visibleStyle,
724          to: u.hiddenStyle,
725          // keep hidden stuff hidden
726          isCleaning: !0,
727          onTransitionEnd: e
728        });
729      }, f.onHideTransitionEnd = function() {
730        this.isHidden && (this.css({ display: "none" }), this.emitEvent("hide"));
731      }, f.destroy = function() {
732        this.css({
733          position: "",
734          left: "",
735          right: "",
736          top: "",
737          bottom: "",
738          transition: "",
739          transform: ""
740        });
741      }, y;
742    });
743  })(N)), N.exports;
744}
745var tt;
746function kt() {
747  return tt || (tt = 1, (function(t) {
748    (function(i, o) {
749      t.exports ? t.exports = o(
750        i,
751        ft(),
752        G(),
753        It(),
754        Wt()
755      ) : i.Outlayer = o(
756        i,
757        i.EvEmitter,
758        i.getSize,
759        i.fizzyUIUtils,
760        i.Outlayer.Item
761      );
762    })(window, function(o, c, h, a, m) {
763      var s = o.console, l = o.jQuery, p = function() {
764      }, y = 0, f = {};
765      function v(e, n) {
766        var r = a.getQueryElement(e);
767        if (!r) {
768          s && s.error("Bad element for " + this.constructor.namespace + ": " + (r || e));
769          return;
770        }
771        this.element = r, l && (this.$element = l(this.element)), this.options = a.extend({}, this.constructor.defaults), this.option(n);
772        var g = ++y;
773        this.element.outlayerGUID = g, f[g] = this, this._create();
774        var S = this._getOption("initLayout");
775        S && this.layout();
776      }
777      v.namespace = "outlayer", v.Item = m, v.defaults = {
778        containerStyle: {
779          position: "relative"
780        },
781        initLayout: !0,
782        originLeft: !0,
783        originTop: !0,
784        resize: !0,
785        resizeContainer: !0,
786        // item options
787        transitionDuration: "0.4s",
788        hiddenStyle: {
789          opacity: 0,
790          transform: "scale(0.001)"
791        },
792        visibleStyle: {
793          opacity: 1,
794          transform: "scale(1)"
795        }
796      };
797      var d = v.prototype;
798      a.extend(d, c.prototype), d.option = function(e) {
799        a.extend(this.options, e);
800      }, d._getOption = function(e) {
801        var n = this.constructor.compatOptions[e];
802        return n && this.options[n] !== void 0 ? this.options[n] : this.options[e];
803      }, v.compatOptions = {
804        // currentName: oldName
805        initLayout: "isInitLayout",
806        horizontal: "isHorizontal",
807        layoutInstant: "isLayoutInstant",
808        originLeft: "isOriginLeft",
809        originTop: "isOriginTop",
810        resize: "isResizeBound",
811        resizeContainer: "isResizingContainer"
812      }, d._create = function() {
813        this.reloadItems(), this.stamps = [], this.stamp(this.options.stamp), a.extend(this.element.style, this.options.containerStyle);
814        var e = this._getOption("resize");
815        e && this.bindResize();
816      }, d.reloadItems = function() {
817        this.items = this._itemize(this.element.children);
818      }, d._itemize = function(e) {
819        for (var n = this._filterFindItemElements(e), r = this.constructor.Item, g = [], S = 0; S < n.length; S++) {
820          var E = n[S], _ = new r(E, this);
821          g.push(_);
822        }
823        return g;
824      }, d._filterFindItemElements = function(e) {
825        return a.filterFindElements(e, this.options.itemSelector);
826      }, d.getItemElements = function() {
827        return this.items.map(function(e) {
828          return e.element;
829        });
830      }, d.layout = function() {
831        this._resetLayout(), this._manageStamps();
832        var e = this._getOption("layoutInstant"), n = e !== void 0 ? e : !this._isLayoutInited;
833        this.layoutItems(this.items, n), this._isLayoutInited = !0;
834      }, d._init = d.layout, d._resetLayout = function() {
835        this.getSize();
836      }, d.getSize = function() {
837        this.size = h(this.element);
838      }, d._getMeasurement = function(e, n) {
839        var r = this.options[e], g;
840        r ? (typeof r == "string" ? g = this.element.querySelector(r) : r instanceof HTMLElement && (g = r), this[e] = g ? h(g)[n] : r) : this[e] = 0;
841      }, d.layoutItems = function(e, n) {
842        e = this._getItemsForLayout(e), this._layoutItems(e, n), this._postLayout();
843      }, d._getItemsForLayout = function(e) {
844        return e.filter(function(n) {
845          return !n.isIgnored;
846        });
847      }, d._layoutItems = function(e, n) {
848        if (this._emitCompleteOnItems("layout", e), !(!e || !e.length)) {
849          var r = [];
850          e.forEach(function(g) {
851            var S = this._getItemLayoutPosition(g);
852            S.item = g, S.isInstant = n || g.isLayoutInstant, r.push(S);
853          }, this), this._processLayoutQueue(r);
854        }
855      }, d._getItemLayoutPosition = function() {
856        return {
857          x: 0,
858          y: 0
859        };
860      }, d._processLayoutQueue = function(e) {
861        this.updateStagger(), e.forEach(function(n, r) {
862          this._positionItem(n.item, n.x, n.y, n.isInstant, r);
863        }, this);
864      }, d.updateStagger = function() {
865        var e = this.options.stagger;
866        if (e == null) {
867          this.stagger = 0;
868          return;
869        }
870        return this.stagger = u(e), this.stagger;
871      }, d._positionItem = function(e, n, r, g, S) {
872        g ? e.goTo(n, r) : (e.stagger(S * this.stagger), e.moveTo(n, r));
873      }, d._postLayout = function() {
874        this.resizeContainer();
875      }, d.resizeContainer = function() {
876        var e = this._getOption("resizeContainer");
877        if (e) {
878          var n = this._getContainerSize();
879          n && (this._setContainerMeasure(n.width, !0), this._setContainerMeasure(n.height, !1));
880        }
881      }, d._getContainerSize = p, d._setContainerMeasure = function(e, n) {
882        if (e !== void 0) {
883          var r = this.size;
884          r.isBorderBox && (e += n ? r.paddingLeft + r.paddingRight + r.borderLeftWidth + r.borderRightWidth : r.paddingBottom + r.paddingTop + r.borderTopWidth + r.borderBottomWidth), e = Math.max(e, 0), this.element.style[n ? "width" : "height"] = e + "px";
885        }
886      }, d._emitCompleteOnItems = function(e, n) {
887        var r = this;
888        function g() {
889          r.dispatchEvent(e + "Complete", null, [n]);
890        }
891        var S = n.length;
892        if (!n || !S) {
893          g();
894          return;
895        }
896        var E = 0;
897        function _() {
898          E++, E == S && g();
899        }
900        n.forEach(function(T) {
901          T.once(e, _);
902        });
903      }, d.dispatchEvent = function(e, n, r) {
904        var g = n ? [n].concat(r) : r;
905        if (this.emitEvent(e, g), l)
906          if (this.$element = this.$element || l(this.element), n) {
907            var S = l.Event(n);
908            S.type = e, this.$element.trigger(S, r);
909          } else
910            this.$element.trigger(e, r);
911      }, d.ignore = function(e) {
912        var n = this.getItem(e);
913        n && (n.isIgnored = !0);
914      }, d.unignore = function(e) {
915        var n = this.getItem(e);
916        n && delete n.isIgnored;
917      }, d.stamp = function(e) {
918        e = this._find(e), e && (this.stamps = this.stamps.concat(e), e.forEach(this.ignore, this));
919      }, d.unstamp = function(e) {
920        e = this._find(e), e && e.forEach(function(n) {
921          a.removeFrom(this.stamps, n), this.unignore(n);
922        }, this);
923      }, d._find = function(e) {
924        if (e)
925          return typeof e == "string" && (e = this.element.querySelectorAll(e)), e = a.makeArray(e), e;
926      }, d._manageStamps = function() {
927        !this.stamps || !this.stamps.length || (this._getBoundingRect(), this.stamps.forEach(this._manageStamp, this));
928      }, d._getBoundingRect = function() {
929        var e = this.element.getBoundingClientRect(), n = this.size;
930        this._boundingRect = {
931          left: e.left + n.paddingLeft + n.borderLeftWidth,
932          top: e.top + n.paddingTop + n.borderTopWidth,
933          right: e.right - (n.paddingRight + n.borderRightWidth),
934          bottom: e.bottom - (n.paddingBottom + n.borderBottomWidth)
935        };
936      }, d._manageStamp = p, d._getElementOffset = function(e) {
937        var n = e.getBoundingClientRect(), r = this._boundingRect, g = h(e), S = {
938          left: n.left - r.left - g.marginLeft,
939          top: n.top - r.top - g.marginTop,
940          right: r.right - n.right - g.marginRight,
941          bottom: r.bottom - n.bottom - g.marginBottom
942        };
943        return S;
944      }, d.handleEvent = a.handleEvent, d.bindResize = function() {
945        o.addEventListener("resize", this), this.isResizeBound = !0;
946      }, d.unbindResize = function() {
947        o.removeEventListener("resize", this), this.isResizeBound = !1;
948      }, d.onresize = function() {
949        this.resize();
950      }, a.debounceMethod(v, "onresize", 100), d.resize = function() {
951        !this.isResizeBound || !this.needsResizeLayout() || this.layout();
952      }, d.needsResizeLayout = function() {
953        var e = h(this.element), n = this.size && e;
954        return n && e.innerWidth !== this.size.innerWidth;
955      }, d.addItems = function(e) {
956        var n = this._itemize(e);
957        return n.length && (this.items = this.items.concat(n)), n;
958      }, d.appended = function(e) {
959        var n = this.addItems(e);
960        n.length && (this.layoutItems(n, !0), this.reveal(n));
961      }, d.prepended = function(e) {
962        var n = this._itemize(e);
963        if (n.length) {
964          var r = this.items.slice(0);
965          this.items = n.concat(r), this._resetLayout(), this._manageStamps(), this.layoutItems(n, !0), this.reveal(n), this.layoutItems(r);
966        }
967      }, d.reveal = function(e) {
968        if (this._emitCompleteOnItems("reveal", e), !(!e || !e.length)) {
969          var n = this.updateStagger();
970          e.forEach(function(r, g) {
971            r.stagger(g * n), r.reveal();
972          });
973        }
974      }, d.hide = function(e) {
975        if (this._emitCompleteOnItems("hide", e), !(!e || !e.length)) {
976          var n = this.updateStagger();
977          e.forEach(function(r, g) {
978            r.stagger(g * n), r.hide();
979          });
980        }
981      }, d.revealItemElements = function(e) {
982        var n = this.getItems(e);
983        this.reveal(n);
984      }, d.hideItemElements = function(e) {
985        var n = this.getItems(e);
986        this.hide(n);
987      }, d.getItem = function(e) {
988        for (var n = 0; n < this.items.length; n++) {
989          var r = this.items[n];
990          if (r.element == e)
991            return r;
992        }
993      }, d.getItems = function(e) {
994        e = a.makeArray(e);
995        var n = [];
996        return e.forEach(function(r) {
997          var g = this.getItem(r);
998          g && n.push(g);
999        }, this), n;
1000      }, d.remove = function(e) {
1001        var n = this.getItems(e);
1002        this._emitCompleteOnItems("remove", n), !(!n || !n.length) && n.forEac
1002h(function(r) {
1003          r.remove(), a.removeFrom(this.items, r);
1004        }, this);
1005      }, d.destroy = function() {
1006        var e = this.element.style;
1007        e.height = "", e.position = "", e.width = "", this.items.forEach(function(r) {
1008          r.destroy();
1009        }), this.unbindResize();
1010        var n = this.element.outlayerGUID;
1011        delete f[n], delete this.element.outlayerGUID, l && l.removeData(this.element, this.constructor.namespace);
1012      }, v.data = function(e) {
1013        e = a.getQueryElement(e);
1014        var n = e && e.outlayerGUID;
1015        return n && f[n];
1016      }, v.create = function(e, n) {
1017        var r = w(v);
1018        return r.defaults = a.extend({}, v.defaults), a.extend(r.defaults, n), r.compatOptions = a.extend({}, v.compatOptions), r.namespace = e, r.data = v.data, r.Item = w(m), a.htmlInit(r, e), l && l.bridget && l.bridget(e, r), r;
1019      };
1020      function w(e) {
1021        function n() {
1022          e.apply(this, arguments);
1023        }
1024        return n.prototype = Object.create(e.prototype), n.prototype.constructor = n, n;
1025      }
1026      var b = {
1027        ms: 1,
1028        s: 1e3
1029      };
1030      function u(e) {
1031        if (typeof e == "number")
1032          return e;
1033        var n = e.match(/(^\d*\.?\d*)(\w*)/), r = n && n[1], g = n && n[2];
1034        if (!r.length)
1035          return 0;
1036        r = parseFloat(r);
1037        var S = b[g] || 1;
1038        return r * S;
1039      }
1040      return v.Item = m, v;
1041    });
1042  })(R)), R.exports;
1043}
1044var et;
1045function Rt() {
1046  return et || (et = 1, (function(t) {
1047    (function(i, o) {
1048      t.exports ? t.exports = o(
1049        kt(),
1050        G()
1051      ) : i.Masonry = o(
1052        i.Outlayer,
1053        i.getSize
1054      );
1055    })(window, function(o, c) {
1056      var h = o.create("masonry");
1057      h.compatOptions.fitWidth = "isFitWidth";
1058      var a = h.prototype;
1059      return a._resetLayout = function() {
1060        this.getSize(), this._getMeasurement("columnWidth", "outerWidth"), this._getMeasurement("gutter", "outerWidth"), this.measureColumns(), this.colYs = [];
1061        for (var m = 0; m < this.cols; m++)
1062          this.colYs.push(0);
1063        this.maxY = 0, this.horizontalColIndex = 0;
1064      }, a.measureColumns = function() {
1065        if (this.getContainerWidth(), !this.columnWidth) {
1066          var m = this.items[0], s = m && m.element;
1067          this.columnWidth = s && c(s).outerWidth || // if first elem has no width, default to size of container
1068          this.containerWidth;
1069        }
1070        var l = this.columnWidth += this.gutter, p = this.containerWidth + this.gutter, y = p / l, f = l - p % l, v = f && f < 1 ? "round" : "floor";
1071        y = Math[v](y), this.cols = Math.max(y, 1);
1072      }, a.getContainerWidth = function() {
1073        var m = this._getOption("fitWidth"), s = m ? this.element.parentNode : this.element, l = c(s);
1074        this.containerWidth = l && l.innerWidth;
1075      }, a._getItemLayoutPosition = function(m) {
1076        m.getSize();
1077        var s = m.size.outerWidth % this.columnWidth, l = s && s < 1 ? "round" : "ceil", p = Math[l](m.size.outerWidth / this.columnWidth);
1078        p = Math.min(p, this.cols);
1079        for (var y = this.options.horizontalOrder ? "_getHorizontalColPosition" : "_getTopColPosition", f = this[y](p, m), v = {
1080          x: this.columnWidth * f.col,
1081          y: f.y
1082        }, d = f.y + m.size.outerHeight, w = p + f.col, b = f.col; b < w; b++)
1083          this.colYs[b] = d;
1084        return v;
1085      }, a._getTopColPosition = function(m) {
1086        var s = this._getTopColGroup(m), l = Math.min.apply(Math, s);
1087        return {
1088          col: s.indexOf(l),
1089          y: l
1090        };
1091      }, a._getTopColGroup = function(m) {
1092        if (m < 2)
1093          return this.colYs;
1094        for (var s = [], l = this.cols + 1 - m, p = 0; p < l; p++)
1095          s[p] = this._getColGroupY(p, m);
1096        return s;
1097      }, a._getColGroupY = function(m, s) {
1098        if (s < 2)
1099          return this.colYs[m];
1100        var l = this.colYs.slice(m, m + s);
1101        return Math.max.apply(Math, l);
1102      }, a._getHorizontalColPosition = function(m, s) {
1103        var l = this.horizontalColIndex % this.cols, p = m > 1 && l + m > this.cols;
1104        l = p ? 0 : l;
1105        var y = s.size.outerWidth && s.size.outerHeight;
1106        return this.horizontalColIndex = y ? l + m : this.horizontalColIndex, {
1107          col: l,
1108          y: this._getColGroupY(l, m)
1109        };
1110      }, a._manageStamp = function(m) {
1111        var s = c(m), l = this._getElementOffset(m), p = this._getOption("originLeft"), y = p ? l.left : l.right, f = y + s.outerWidth, v = Math.floor(y / this.columnWidth);
1112        v = Math.max(0, v);
1113        var d = Math.floor(f / this.columnWidth);
1114        d -= f % this.columnWidth ? 0 : 1, d = Math.min(this.cols - 1, d);
1115        for (var w = this._getOption("originTop"), b = (w ? l.top : l.bottom) + s.outerHeight, u = v; u <= d; u++)
1116          this.colYs[u] = Math.max(b, this.colYs[u]);
1117      }, a._getContainerSize = function() {
1118        this.maxY = Math.max.apply(Math, this.colYs);
1119        var m = {
1120          height: this.maxY
1121        };
1122        return this._getOption("fitWidth") && (m.width = this._getContainerFitWidth()), m;
1123      }, a._getContainerFitWidth = function() {
1124        for (var m = 0, s = this.cols; --s && this.colYs[s] === 0; )
1125          m++;
1126        return (this.cols - m) * this.columnWidth - this.gutter;
1127      }, a.needsResizeLayout = function() {
1128        var m = this.containerWidth;
1129        return this.getContainerWidth(), m != this.containerWidth;
1130      }, h;
1131    });
1132  })(k)), k.exports;
1133}
1134var Dt = Rt();
1135const Pt = /* @__PURE__ */ At(Dt);
1136let it = !1, nt = !1;
1137const qt = 640, ot = 980, Nt = 426, rt = 576, Bt = 16, st = 32, Ht = 64, Ft = 8, Gt = 426, Yt = 180, O = /* @__PURE__ */ new WeakMap(), mt = "en-magazine-wall-items-appended";
1138typeof window < "u" && !window.__sffMagazineWallAppendListening && (window.__sffMagazineWallAppendListening = !0, window.addEventListener(mt, (t) => {
1139  const i = t.detail && t.detail.wall;
1140  if (!(i instanceof HTMLElement))
1141    return;
1142  const o = O.get(i), c = H(i), h = F(i, c);
1143  if (o && o.masonry && o.columnCount === c && o.gutter === h) {
1144    o.masonry.reloadItems(), o.masonry.layout(), pt(i, o.masonry), window.requestAnimationFrame(() => {
1145      o.masonry.layout();
1146    });
1147    return;
1148  }
1149  I(i), Y(i);
1150}));
1151function Ut(t, i) {
1152  let o;
1153  const c = (...h) => {
1154    window.clearTimeout(o), o = window.setTimeout(() => t(...h), i);
1155  };
1156  return c.cancel = () => {
1157    window.clearTimeout(o);
1158  }, c;
1159}
1160function H(t = null) {
1161  const i = window.innerWidth;
1162  return t?.closest?.(".en-magazine-related") ? i < Gt ? 1 : i < ot ? 2 : 3 : i < Nt ? 1 : i < ot ? 2 : 3;
1163}
1164function F(t, i) {
1165  const o = window.innerWidth;
1166  return i >= 3 ? Math.min(Ht, Math.round(window.innerWidth * 0.05)) : i === 2 ? t?.closest?.(".en-magazine-related") && o < rt ? Ft : o < rt ? Math.min(Bt, Math.round(window.innerWidth * 0.05)) : st : st;
1167}
1168function I(t) {
1169  if (!t)
1170    return;
1171  const i = O.get(t);
1172  i && (i.onLayoutDebounced.cancel(), window.removeEventListener("resize", i.onLayoutDebounced), i.resizeObserver && (i.resizeObserver.disconnect(), i.resizeObserver = null), i.masonry?.destroy(), O.delete(t), t.removeAttribute("data-masonry-active"));
1173}
1174function pt(t, i) {
1175  const o = () => {
1176    i.reloadItems(), i.layout();
1177  };
1178  t.querySelectorAll("img").forEach((c) => {
1179    const h = () => {
1180      const a = c.closest(".en-mdl-magazine-list__media");
1181      c.remove(), a && a.classList.add("en-mdl-magazine-list__media--empty"), o();
1182    };
1183    c.addEventListener("error", h, { once: !0 }), !c.complete && c.addEventListener("load", () => o(), { once: !0 });
1184  });
1185}
1186function Y(t) {
1187  if (I(t), !t)
1188    return;
1189  const i = H(t);
1190  if (i < 2 || !t.querySelector(".en-mdl-magazine-list__card"))
1191    return;
1192  const o = F(t, i);
1193  t.setAttribute("data-masonry-active", "1");
1194  const c = new Pt(t, {
1195    itemSelector: ".en-mdl-magazine-list__card",
1196    columnWidth: ".en-mdl-magazine-list__column-sizer",
1197    gutter: o,
1198    percentPosition: !0,
1199    transitionDuration: 0
1200  });
1201  pt(t, c);
1202  const h = { masonry: c, columnCount: i, gutter: o, wall: t }, m = Ut(() => {
1203    const s = H(t), l = F(t, s);
1204    if (s !== h.columnCount || l !== h.gutter) {
1205      I(t), Y(t);
1206      return;
1207    }
1208    c.reloadItems(), window.requestAnimationFrame(() => {
1209      c.layout();
1210    });
1211  }, Yt);
1212  if (h.onLayoutDebounced = m, window.addEventListener("resize", m), typeof ResizeObserver < "u") {
1213    const s = new ResizeObserver(() => {
1214      m();
1215    });
1216    s.observe(t), h.resizeObserver = s;
1217  }
1218  O.set(t, h), window.requestAnimationFrame(() => {
1219    c.layout();
1220  });
1221}
1222function Vt() {
1223  return window.matchMedia("(prefers-reduced-motion: reduce)").matches;
1224}
1225function Zt() {
1226  return window.matchMedia(`(min-width: ${qt}px)`).matches;
1227}
1228function $t() {
1229  return Zt() && !Vt();
1230}
1231function jt(t) {
1232  const i = t.getAttribute("data-magazine-list-instance") || "magazine-list";
1233  return String(i).replace(/[^a-zA-Z0-9_-]/g, "-");
1234}
1235function gt(t) {
1236  const i = t.querySelector("[data-magazine-wall]");
1237  return i ? [...i.querySelectorAll(":scope > .en-mdl-magazine-list__card")] : [];
1238}
1239function at(t) {
1240  t.forEach((i) => {
1241    const o = jt(i);
1242    gt(i).forEach((c, h) => {
1243      c.style.viewTransitionName = `${o}-slot-${h}`;
1244    });
1245  });
1246}
1247function Qt(t) {
1248  t.forEach((i) => {
1249    gt(i).forEach((o) => {
1250      o.style.removeProperty("view-transition-name");
1251    }), i.style.removeProperty("view-transition-name");
1252  });
1253}
1254function U() {
1255  L(document).forEach((t) => {
1256    t.removeAttribute("data-loading"), t.removeAttribute("aria-busy");
1257  });
1258}
1259function Kt() {
1260  L(document).forEach((t) => {
1261    t.setAttribute("data-loading", "1"), t.setAttribute("aria-busy", "true");
1262  });
1263}
1264function Xt() {
1265  return new Promise((t) => {
1266    window.requestAnimationFrame(() => {
1267      window.requestAnimationFrame(t);
1268    });
1269  });
1270}
1271function lt(t, i = 400) {
1272  return new Promise((o) => {
1273    if (!t) {
1274      o();
1275      return;
1276    }
1277    const c = () => {
1278      t.removeEventListener("transitionend", h), window.clearTimeout(a), o();
1279    }, h = (m) => {
1280      m.target === t && m.propertyName === "opacity" && c();
1281    }, a = window.setTimeout(c, i);
1282    t.addEventListener("transitionend", h);
1283  });
1284}
1285function L(t = document) {
1286  const i = [];
1287  return t.matches && t.matches("[data-magazine-list]") && i.push(t), i.push(...t.querySelectorAll("[data-magazine-list]")), i;
1288}
1289function z(t) {
1290  if (!t)
1291    return;
1292  const i = t.querySelector("[data-magazine-more-toggle]"), o = t.querySelector("[data-magazine-more-panel]");
1293  t.classList.remove("is-open"), i && i.setAttribute("aria-expanded", "false"), o && (o.hidden = !0);
1294}
1295function Jt(t) {
1296  document.querySelectorAll("[data-magazine-more].is-open").forEach((c) => {
1297    c !== t && z(c);
1298  });
1299  const i = t.querySelector("[data-magazine-more-toggle]"), o = t.querySelector("[data-magazine-more-panel]");
1300  t.classList.add("is-open"), i && i.setAttribute("aria-expanded", "true"), o && (o.hidden = !1);
1301}
1302function te() {
1303  nt || (nt = !0, document.addEventListener("click", (t) => {
1304    document.querySelectorAll("[data-magazine-more].is-open").forEach((i) => {
1305      i.contains(t.target) || z(i);
1306    });
1307  }), document.addEventListener("keydown", (t) => {
1308    t.key === "Escape" && document.querySelectorAll("[data-magazine-more].is-open").forEach(z);
1309  }));
1310}
1311function ee(t) {
1312  te();
1313  const i = t.querySelector("[data-magazine-more]");
1314  if (!i)
1315    return;
1316  const o = i.querySelector("[data-magazine-more-toggle]"), c = i.querySelector("[data-magazine-more-panel]");
1317  !o || !c || o.getAttribute("data-magazine-more-bound") !== "1" && (o.setAttribute("data-magazine-more-bound", "1"), o.addEventListener("click", (h) => {
1318    h.preventDefault(), i.classList.contains("is-open") ? z(i) : Jt(i);
1319  }), c.querySelectorAll("[data-magazine-filter-link]").forEach((h) => {
1320    h.addEventListener("click", () => {
1321      window.requestAnimationFrame(() => z(i));
1322    });
1323  }));
1324}
1325function ie(t) {
1326  if (t.getAttribute("data-magazine-wall-more") !== "1" || t.getAttribute("data-magazine-wall-more-bound") === "1")
1327    return;
1328  const i = t.getAttribute("data-magazine-wall-ajax-url"), o = t.getAttribute("data-magazine-wall-payload"), c = t.getAttribute("data-magazine-wall-nonce"), h = t.getAttribute("data-magazine-wall-lang"), a = t.querySelector("[data-magazine-wall]"), m = t.querySelector(".en-mdl-magazine-list__wall-more"), s = m && m.querySelector(".en-mdl-paging__item--next"), l = s && (s.matches("a") ? s : s.querySelector("a"));
1329  if (!i || !o || !c || !a || !l)
1330    return;
1331  t.setAttribute("data-magazine-wall-more-bound", "1");
1332  let p = 2;
1333  l.addEventListener("click", async (y) => {
1334    if (y.metaKey || y.ctrlKey || y.shiftKey || y.altKey)
1335      return;
1336    y.preventDefault();
1337    const f = l.closest(".en-mdl-paging__item--next");
1338    if (!(f && f.classList.contains("en_is_disabled")) && t.getAttribute("data-loading") !== "1") {
1339      t.setAttribute("data-loading", "1"), t.setAttribute("aria-busy", "true");
1340      try {
1341        const v = new FormData();
1342        v.append("action", "en_magazine_wall_more"), v.append("nonce", c), v.append("payload", o), v.append("page", String(p)), h && v.append("lang", h);
1343        const w = await (await fetch(i, {
1344          method: "POST",
1345          body: v,
1346          credentials: "same-origin"
1347        })).json().catch(() => null);
1348        if (!w || w.success !== !0 || !w.data)
1349          throw new Error("load_more_failed");
1350        const { fragments: b, has_more: u, next_page: e } = w.data;
1351        if (!Array.isArray(b))
1352          throw new Error("load_more_bad_shape");
1353        const n = document.createElement("template");
1354        n.innerHTML = b.join(""), Array.from(n.content.children).forEac
1354h((g) => a.appendChild(g)), window.dispatchEvent(
1355          new CustomEvent(mt, { detail: { wall: a } })
1356        ), u ? typeof e == "number" && e > 0 ? p = e : p += 1 : (m.remove(), t.removeAttribute("data-magazine-wall-more"), t.removeAttribute("data-magazine-wall-ajax-url"), t.removeAttribute("data-magazine-wall-payload"), t.removeAttribute("data-magazine-wall-nonce"), t.removeAttribute("data-magazine-wall-more-bound"));
1357      } catch {
1358      } finally {
1359        t.removeAttribute("data-loading"), t.removeAttribute("aria-busy");
1360      }
1361    }
1362  });
1363}
1364function ne(t) {
1365  return t.button === 0 && !t.metaKey && !t.ctrlKey && !t.shiftKey && !t.altKey;
1366}
1367function oe(t, i) {
1368  const o = i.getAttribute("data-magazine-list-instance");
1369  return o ? t.querySelector(`[data-magazine-list-instance="${o}"]`) : t.querySelector("[data-magazine-list]");
1370}
1371function re(t) {
1372  const i = [];
1373  return L(document).forEach((o) => {
1374    const c = o.querySelector("[data-magazine-wall]");
1375    I(c);
1376    const h = oe(t, o);
1377    if (!h) return;
1378    const a = document.importNode(h, !0);
1379    o.replaceWith(a), i.push(a);
1380  }), i.forEach((o) => {
1381    yt(o);
1382  }), i.length;
1383}
1384function B(t) {
1385  const i = re(t);
1386  if (i < 1)
1387    throw new Error("Magazine list replacement not found");
1388  return i;
1389}
1390async function se(t, i) {
1391  if (!$t()) {
1392    B(t);
1393    return;
1394  }
1395  if (typeof document.startViewTransition == "function") {
1396    at(i);
1397    const a = document.startViewTransition(() => {
1398      B(t), at(L(document));
1399    });
1400    try {
1401      await a.finished;
1402    } finally {
1403      Qt(L(document));
1404    }
1405    return;
1406  }
1407  i.forEach((a) => {
1408    a.classList.add("en-mdl-magazine-list--vt-fallback-out");
1409  });
1410  const c = i[0];
1411  await lt(c), B(t);
1412  const h = L(document);
1413  h.forEach((a) => {
1414    a.style.opacity = "0", a.style.transition = "opacity 0.28s ease";
1415  }), h[0]?.offsetWidth, window.requestAnimationFrame(() => {
1416    h.forEach((a) => {
1417      a.style.opacity = "1";
1418    });
1419  }), await lt(h[0]), h.forEach((a) => {
1420    a.style.removeProperty("opacity"), a.style.removeProperty("transition");
1421  });
1422}
1423function ae(t) {
1424  return !t || t.state === null ? !0 : t.state.magazineList === !0;
1425}
1426function le(t) {
1427  L(document).length < 1 || ae(t) && vt(window.location.href, { updateHistory: !1 }).catch(() => {
1428    U(), window.location.assign(window.location.href);
1429  });
1430}
1431async function vt(t, { updateHistory: i = !0 } = {}) {
1432  const o = L(document);
1433  if (!(o.length < 1)) {
1434    Kt(), await Xt();
1435    try {
1436      const c = await fetch(t, {
1437        credentials: "same-origin",
1438        headers: {
1439          "X-Requested-With": "XMLHttpRequest"
1440        }
1441      });
1442      if (!c.ok)
1443        throw new Error(`Magazine list request failed with ${c.status}`);
1444      const h = await c.text(), a = new DOMParser().parseFromString(h, "text/html");
1445      await se(a, o), a.title && (document.title = a.title), i && window.history.pushState({ magazineList: !0 }, "", t);
1446    } finally {
1447      U();
1448    }
1449  }
1450}
1451function yt(t = document) {
1452  const i = L(t);
1453  i.forEach((o) => {
1454    if (o.getAttribute("data-magazine-list-enhanced") === "1") return;
1455    o.setAttribute("data-magazine-list-enhanced", "1"), o.querySelectorAll("[data-magazine-filter-link]").forEach((h) => {
1456      h.addEventListener("click", (a) => {
1457        if (!ne(a)) return;
1458        const m = new URL(h.href, window.location.href);
1459        if (m.origin !== window.location.origin) return;
1460        a.preventDefault();
1461        const s = o.querySelector("[data-magazine-more].is-open");
1462        s && z(s), vt(m.href).catch(() => {
1463          U(), window.location.assign(m.href);
1464        });
1465      });
1466    }), ee(o), ie(o);
1467    const c = o.querySelector("[data-magazine-wall]");
1468    c && Y(c);
1469  }), !it && i.length > 0 && (window.addEventListener("popstate", le), it = !0);
1470}
1471const ut = ({ stickyElement: t, isScrolledToTop: i }) => {
1472  t.dataset.originalTheme || (t.dataset.originalTheme = t.dataset.theme), t.dataset.theme = i ? t.dataset.originalTheme : t.dataset.scrolledTheme;
1473}, bt = (t, { behavior: i = "smooth" } = {}) => {
1474  if (!t || t === "#") return !1;
1475  let o = null;
1476  try {
1477    o = document.querySelector(t);
1478  } catch {
1479    return !1;
1480  }
1481  return o ? (o.scrollIntoView({ behavior: i, block: "start" }), !0) : !1;
1482}, wt = () => {
1483  const t = window.location.hash;
1484  if (!t || t === "#") return !1;
1485  try {
1486    return !!document.querySelector(t);
1487  } catch {
1488    return !1;
1489  }
1490}, ct = () => {
1491  if (!window.__sffAnchorScrollToPatched) {
1492    window.__sffAnchorScrollToPatched = !0;
1493    const t = window.scrollTo.bind(window);
1494    window.scrollTo = (...i) => {
1495      const o = i[0];
1496      if (!(o && typeof o == "object" && o.top === 0 && (o.left === void 0 || o.left === 0) && o.behavior === void 0 && wt()))
1497        return t(...i);
1498    };
1499  }
1500  try {
1501    history.scrollRestoration === "manual" && (history.scrollRestoration = "auto");
1502  } catch {
1503  }
1504}, ue = () => {
1505  const t = window.location.hash;
1506  !t || !wt() || setTimeout(() => {
1507    bt(t, { behavior: "smooth" });
1508  }, 2e3);
1509}, ce = () => {
1510  document.addEventListener(
1511    "click",
1512    (t) => {
1513      const i = t.target.closest("a.en-mdl-anchor_nav__item-inner");
1514      if (!i) return;
1515      const o = i.getAttribute("href");
1516      !o || o.charAt(0) !== "#" || document.querySelector(o) && (t.preventDefault(), t.stopPropagation(), window.location.hash !== o && history.replaceState(null, "", o), bt(o, { behavior: "smooth" }));
1517    },
1518    !0
1519  );
1520}, dt = () => {
1521  const t = document.querySelector(".sff-footer-notification--pinned");
1522  if (!t) {
1523    document.documentElement.style.removeProperty("--sff-footer-notification-height");
1524    return;
1525  }
1526  document.documentElement.style.setProperty(
1527    "--sff-footer-notification-height",
1528    `${t.offsetHeight}px`
1529  );
1530};
1531document.addEventListener("DOMContentLoaded", () => {
1532  dt(), addEventListener("resize", dt), yt(), ct(), ce(), ue(), window.addEventListener("load", ct), document.cookie.indexOf("_experiments_theme_preference") > -1 && (window.matchMedia("(prefers-color-scheme: dark)").matches && document.body.setAttribute("data-theme-initial", "dark"), window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change", (t) => {
1533    const i = t.matches ? "dark" : "light";
1534    document.body.setAttribute("data-theme", i), document.body.setAttribute("data-theme-initial", i);
1535  })), Tt({
1536    selector: 'article.en-content > [data-theme="dark"]',
1537    threshold: 0.4
1538  }
1538), Et(), Lt(), window.setTimeout(() => {
1539    $({
1540      name: "sff-sticky-footer",
1541      selector: ".sff-sticky-footer",
1542      isStickyOnBottom: !1,
1543      onAfterLoop: ut,
1544      snapDistance: 200,
1545      showOnScrollUp: !1,
1546      showOnScrollDown: !1,
1547      slideOutOnNotScrollingDelay: 3e3,
1548      initialeIsSticky: !1,
1549      initialeIsSlideIn: !1
1550    }), $({
1551      name: "sff-sticky-header",
1552      selector: ".sff-sticky-header",
1553      snapDistance: 0,
1554      // slideOutOnNotScrollingDelay: 3000,
1555      isStickyOnTop: !0,
1556      showOnScrollUp: !0,
1557      showOnScrollDown: !0,
1558      showOnScrollTop: !0,
1559      showOnScrollBottom: !0,
1560      initialeIsSticky: !1,
1561      initialeIsSlideIn: !0,
1562      onAfterLoop: ut
1563    });
1564  }, 20);
1565});
1566jQuery(document).ready(function(t) {
1567  Mt(t, {}), xt(t, {});
1568});

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.