function is_smooth_scroll() { return "undefined" == typeof jupiterxOptions || void 0 === jupiterxOptions.smoothScroll ? null : 0 != jupiterxOptions.smoothScroll } window.noZensmooth = !0, function() { var r = !1 , s = /xyz/.test(function() { xyz }) ? /\b_super\b/ : /.*/; this.Class = function() {} , Class.extend = function(e) { var n = this.prototype; r = !0; var t = new this; for (var i in r = !1, e) t[i] = "function" == typeof e[i] && "function" == typeof n[i] && s.test(e[i]) ? function(i, o) { return function() { var e = this._super; this._super = n[i]; var t = o.apply(this, arguments); return this._super = e, t } }(i, e[i]) : e[i]; function o() { !r && this.init && this.init.apply(this, arguments) } return ((o.prototype = t).constructor = o).extend = arguments.callee, o } }(), function(e, t, i) { "use strict"; "function" == typeof define && define.amd ? define(i) : "undefined" != typeof module && module.exports ? module.exports = i() : t.PubSub = i("PubSub", t) }(0, this, function(e, t) { "use strict"; function o(e, t, i) { var o; for (o in e) if (Object.prototype.hasOwnProperty.call(e, o) && t && !1 === t.call(i, e[o], o, e)) return; return e } function n(e, t, i) { for (var o, n, r = e._pubsub_topics, s = r[t] ? r[t].slice(0) : [], a = 0, l = s.length; a < l; a += 1) n = s[a].token, (o = s[a]).callback(i, { name: t, token: n }), !0 === o.once && e.unsubscribe(n) } function i(e) { var t = Array.prototype.slice.call(e, 1); return t.length <= 1 ? t[0] : t } function r(e, t, i, o) { return !!e._pubsub_topics[t] && (o ? n(e, t, i) : setTimeout(function() { n(e, t, i) }, 0), !0) } function s() { return this instanceof s ? (this._pubsub_topics = {}, this._pubsub_uid = -1, this) : new s } var a = (t || {})[e]; return s.prototype.subscribe = function(e, t, i) { var o = this._pubsub_topics , n = this._pubsub_uid += 1 , r = {}; if ("function" != typeof t) throw new TypeError("When subscribing for an event, a callback function must be defined."); return o[e] || (o[e] = []), r.token = n, r.callback = t, r.once = !!i, o[e].push(r), n } , s.prototype.subscribeOnce = function(e, t) { return this.subscribe(e, t, !0) } , s.prototype.publish = function(e) { return r(this, e, i(arguments), !1) } , s.prototype.publishSync = function(e) { return r(this, e, i(arguments), !0) } , s.prototype.unsubscribe = function(e) { var t, i, o = this._pubsub_topics, n = !1; for (t in o) if (Object.prototype.hasOwnProperty.call(o, t) && o[t]) { for (i = o[t].length; i; ) { if (i -= 1, o[t][i].token === e) return o[t].splice(i, 1), 0 === o[t].length && delete o[t], e; t === e && (o[t].splice(i, 1), 0 === o[t].length && delete o[t], n = !0) } if (!0 === n) return e } return !1 } , s.prototype.unsubscribeAll = function() { return this._pubsub_topics = {}, this } , s.prototype.hasSubscribers = function(e) { var t = this._pubsub_topics , i = !1; return null == e ? (o(t, function(e, t) { if (t) return !(i = !0) }), i) : Object.prototype.hasOwnProperty.call(t, e) } , s.prototype.subscribers = function() { var i = {}; return o(this._pubsub_topics, function(e, t) { i[t] = e.slice(0) }), i } , s.prototype.subscribersByTopic = function(e) { return this._pubsub_topics[e] ? this._pubsub_topics[e].slice(0) : [] } , s.prototype.alias = function(i) { return o(i, function(e, t) { s.prototype[t] && (s.prototype[i[t]] = function(e) { return function() { return this[e].apply(this, arguments) } }(t)) }), this } , s.noConflict = function() { return t && (t[e] = a), s } , s.version = "3.4.0", s }), function() { "use strict"; for (var t, i, e = ["webkit", "moz"], o = 0; o < e.length && !window.requestAnimationFrame; ++o) { var n = e[o]; window.requestAnimationFrame = window[n + "RequestAnimationFrame"], window.cancelAnimationFrame = window[n + "CancelAnimationFrame"] || window[n + "CancelRequestAnimationFrame"] } if (!/iP(ad|hone|od).*OS 6/.test(window.navigator.userAgent) && window.requestAnimationFrame && window.cancelAnimationFrame) window.jQuery && ((t = jQuery).fx.timer = function(e) { e() && t.timers.push(e) && !i && (i = !0, s()) } , t.fx.stop = function() { i = !1 } ); else { var r = 0; window.requestAnimationFrame = function(e) { var t = +new Date , i = Math.max(r + 16, t); return setTimeout(function() { e(r = i) }, i - t) } , window.cancelAnimationFrame = clearTimeout } function s() { i && (requestAnimationFrame(s), t.fx.tick()) } if (!!(!window.performance || !window.performance.now)) { var a = window.requestAnimationFrame , l = +new Date; window.requestAnimationFrame = function(t, e) { a(function(e) { return t(e < 1e12 ? e : e - l) }, e) } } }(), function(e, t) { "object" == typeof exports && "undefined" != typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define(t) : e.updwn = t() }(this, function() { var e = a() , r = e.x , s = e.y , h = []; function a() { return "undefined" == typeof window ? {} : { x: window.innerWidth, y: window.pageYOffset } } function i(n) { requestAnimationFrame(function() { for (var e = a(), t = e.x, i = e.y, o = 0; o < h.length; o++) h[o]({ y: i, prevY: s, x: t, prevX: r }, n); s = i, r = t }) } return function(e) { var a = e.speed; void 0 === a && (a = 20); var l = e.interval; void 0 === l && (l = 100); var t, d = null, c = 0, p = 0, u = [], f = []; return t = function(e, t) { var i = e.y , o = e.prevY; c = t.timeStamp - p, p = t.timeStamp; var n = (Math.abs(i - o) / c || 0) * l > a; if (o <= i && "down" !== d && n) { d = "down"; for (var r = 0; r < f.length; r++) f[r]() } else if (i <= o && "up" !== d && n) { d = "up"; for (var s = 0; s < u.length; s++) u[s]() } } , window.addEventListener("scroll", i), window.addEventListener("resize", i), h.indexOf(t) < 0 && h.push(t), { up: function(e) { return u.indexOf(e) < 0 && u.push(e), function() { return u.splice(u.indexOf(e), 1) } }, down: function(e) { return f.indexOf(e) < 0 && f.push(e), function() { return f.splice(f.indexOf(e), 1) } }, get position() { return d } } } }), function(e) { "use strict"; "function" == typeof define && define.amd ? define(["jquery"], e) : "undefined" != typeof exports ? module.exports = e(require("jquery")) : e(jQuery) }(function(d) { "use strict"; var n, s = window.Slick || {}; (n = 0, s = function(e, t) { var i, o = this; o.defaults = { accessibility: !0, adaptiveHeight: !1, appendArrows: d(e), appendDots: d(e), arrows: !0, asNavFor: null, prevArrow: '', nextArrow: '', autoplay: !1, autoplaySpeed: 3e3, centerMode: !1, centerPadding: "50px", cssEase: "ease", customPaging: function(e, t) { return d('').text(t + 1) }, dots: !1, dotsClass: "slick-dots", draggable: !0, easing: "linear", edgeFriction: .35, fade: !1, focusOnSelect: !1, focusOnChange: !1, infinite: !0, initialSlide: 0, lazyLoad: "ondemand", mobileFirst: !1, pauseOnHover: !0, pauseOnFocus: !0, pauseOnDotsHover: !1, respondTo: "window", responsive: null, rows: 1, rtl: !1, slide: "", slidesPerRow: 1, slidesToShow: 1, slidesToScroll: 1, speed: 500, swipe: !0, swipeToSlide: !1, touchMove: !0, touchThreshold: 5, useCSS: !0, useTransform: !0, variableWidth: !1, vertical: !1, verticalSwiping: !1, waitForAnimate: !0, zIndex: 1e3 }, o.initials = { animating: !1, dragging: !1, autoPlayTimer: null, currentDirection: 0, currentLeft: null, currentSlide: 0, direction: 1, $dots: null, listWidth: null, listHeight: null, loadIndex: 0, $nextArrow: null, $prevArrow: null, scrolling: !1, slideCount: null, slideWidth: null, $slideTrack: null, $slides: null, sliding: !1, slideOffset: 0, swipeLeft: null, swiping: !1, $list: null, touchObject: {}, transformsEnabled: !1, unslicked: !1 }, d.extend(o, o.initials), o.activeBreakpoint = null, o.animType = null, o.animProp = null, o.breakpoints = [], o.breakpointSettings = [], o.cssTransitions = !1, o.focussed = !1, o.interrupted = !1, o.hidden = "hidden", o.paused = !0, o.positionProp = null, o.respondTo = null, o.rowCount = 1, o.shouldClick = !0, o.$slider = d(e), o.$slidesCache = null, o.transformType = null, o.transitionType = null, o.visibilityChange = "visibilitychange", o.windowWidth = 0, o.windowTimer = null, i = d(e).data("slick") || {}, o.options = d.extend({}, o.defaults, t, i), o.currentSlide = o.options.initialSlide, o.originalSettings = o.options, void 0 !== document.mozHidden ? (o.hidden = "mozHidden", o.visibilityChange = "mozvisibilitychange") : void 0 !== document.webkitHidden && (o.hidden = "webkitHidden", o.visibilityChange = "webkitvisibilitychange"), o.autoPlay = d.proxy(o.autoPlay, o), o.autoPlayClear = d.proxy(o.autoPlayClear, o), o.autoPlayIterator = d.proxy(o.autoPlayIterator, o), o.changeSlide = d.proxy(o.changeSlide, o), o.clickHandler = d.proxy(o.clickHandler, o), o.selectHandler = d.proxy(o.selectHandler, o), o.setPosition = d.proxy(o.setPosition, o), o.swipeHandler = d.proxy(o.swipeHandler, o), o.dragHandler = d.proxy(o.dragHandler, o), o.keyHandler = d.proxy(o.keyHandler, o), o.instanceUid = n++, o.htmlExpr = /^(?:\s*(<[\w\W]+>)[^>]*)$/, o.registerBreakpoints(), o.init(!0) } ).prototype.activateADA = function() { this.$slideTrack.find(".slick-active").attr({ "aria-hidden": "false" }).find("a, input, button, select").attr({ tabindex: "0" }) } , s.prototype.addSlide = s.prototype.slickAdd = function(e, t, i) { var o = this; if ("boolean" == typeof t) i = t, t = null; else if (t < 0 || t >= o.slideCount) return !1; o.unload(), "number" == typeof t ? 0 === t && 0 === o.$slides.length ? d(e).appendTo(o.$slideTrack) : i ? d(e).insertBefore(o.$slides.eq(t)) : d(e).insertAfter(o.$slides.eq(t)) : !0 === i ? d(e).prependTo(o.$slideTrack) : d(e).appendTo(o.$slideTrack), o.$slides = o.$slideTrack.children(this.options.slide), o.$slideTrack.children(this.options.slide).detach(), o.$slideTrack.append(o.$slides), o.$slides.each(function(e, t) { d(t).attr("data-slick-index", e) }), o.$slidesCache = o.$slides, o.reinit() } , s.prototype.animateHeight = function() { var e = this; if (1 === e.options.slidesToShow && !0 === e.options.adaptiveHeight && !1 === e.options.vertical) { var t = e.$slides.eq(e.currentSlide).outerHeight(!0); e.$list.animate({ height: t }, e.options.speed) } } , s.prototype.animateSlide = function(e, t) { var i = {} , o = this; o.animateHeight(), !0 === o.options.rtl && !1 === o.options.vertical && (e = -e), !1 === o.transformsEnabled ? !1 === o.options.vertical ? o.$slideTrack.animate({ left: e }, o.options.speed, o.options.easing, t) : o.$slideTrack.animate({ top: e }, o.options.speed, o.options.easing, t) : !1 === o.cssTransitions ? (!0 === o.options.rtl && (o.currentLeft = -o.currentLeft), d({ animStart: o.currentLeft }).animate({ animStart: e }, { duration: o.options.speed, easing: o.options.easing, step: function(e) { e = Math.ceil(e), !1 === o.options.vertical ? i[o.animType] = "translate(" + e + "px, 0px)" : i[o.animType] = "translate(0px," + e + "px)", o.$slideTrack.css(i) }, complete: function() { t && t.call() } })) : (o.applyTransition(), e = Math.ceil(e), !1 === o.options.vertical ? i[o.animType] = "translate3d(" + e + "px, 0px, 0px)" : i[o.animType] = "translate3d(0px," + e + "px, 0px)", o.$slideTrack.css(i), t && setTimeout(function() { o.disableTransition(), t.call() }, o.options.speed)) } , s.prototype.getNavTarget = function() { var e = this.options.asNavFor; return e && null !== e && (e = d(e).not(this.$slider)), e } , s.prototype.asNavFor = function(t) { var e = this.getNavTarget(); null !== e && "object" == typeof e && e.each(function() { var e = d(this).slick("getSlick"); e.unslicked || e.slideHandler(t, !0) }) } , s.prototype.applyTransition = function(e) { var t = this , i = {}; !1 === t.options.fade ? i[t.transitionType] = t.transformType + " " + t.options.speed + "ms " + t.options.cssEase : i[t.transitionType] = "opacity " + t.options.speed + "ms " + t.options.cssEase, !1 === t.options.fade ? t.$slideTrack.css(i) : t.$slides.eq(e).css(i) } , s.prototype.autoPlay = function() { var e = this; e.autoPlayClear(), e.slideCount > e.options.slidesToShow && (e.autoPlayTimer = setInterval(e.autoPlayIterator, e.options.autoplaySpeed)) } , s.prototype.autoPlayClear = function() { this.autoPlayTimer && clearInterval(this.autoPlayTimer) } , s.prototype.autoPlayIterator = function() { var e = this , t = e.currentSlide + e.options.slidesToScroll; e.paused || e.interrupted || e.focussed || (!1 === e.options.infinite && (1 === e.direction && e.currentSlide + 1 === e.slideCount - 1 ? e.direction = 0 : 0 === e.direction && (t = e.currentSlide - e.options.slidesToScroll, e.currentSlide - 1 == 0 && (e.direction = 1))), e.slideHandler(t)) } , s.prototype.buildArrows = function() { var e = this; !0 === e.options.arrows && (e.$prevArrow = d(e.options.prevArrow).addClass("slick-arrow"), e.$nextArrow = d(e.options.nextArrow).addClass("slick-arrow"), e.slideCount > e.options.slidesToShow ? (e.$prevArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex"), e.$nextArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex"), e.htmlExpr.test(e.options.prevArrow) && e.$prevArrow.prependTo(e.options.appendArrows), e.htmlExpr.test(e.options.nextArrow) && e.$nextArrow.appendTo(e.options.appendArrows), !0 !== e.options.infinite && e.$prevArrow.addClass("slick-disabled").attr("aria-disabled", "true")) : e.$prevArrow.add(e.$nextArrow).addClass("slick-hidden").attr({ "aria-disabled": "true", tabindex: "-1" })) } , s.prototype.buildDots = function() { var e, t, i = this; if (!0 === i.options.dots) { for (i.$slider.addClass("slick-dotted"), t = d("").addClass(i.options.dotsClass), e = 0; e <= i.getDotCount(); e += 1) t.append(d("
  • ").append(i.options.customPaging.call(this, i, e))); i.$dots = t.appendTo(i.options.appendDots), i.$dots.find("li").first().addClass("slick-active") } } , s.prototype.buildOut = function() { var e = this; e.$slides = e.$slider.children(e.options.slide + ":not(.slick-cloned)").addClass("slick-slide"), e.slideCount = e.$slides.length, e.$slides.each(function(e, t) { d(t).attr("data-slick-index", e).data("originalStyling", d(t).attr("style") || "") }), e.$slider.addClass("slick-slider"), e.$slideTrack = 0 === e.slideCount ? d('
    ').appendTo(e.$slider) : e.$slides.wrapAll('
    ').parent(), e.$list = e.$slideTrack.wrap('
    ').parent(), e.$slideTrack.css("opacity", 0), !0 !== e.options.centerMode && !0 !== e.options.swipeToSlide || (e.options.slidesToScroll = 1), d("img[data-lazy]", e.$slider).not("[src]").addClass("slick-loading"), e.setupInfinite(), e.buildArrows(), e.buildDots(), e.updateDots(), e.setSlideClasses("number" == typeof e.currentSlide ? e.currentSlide : 0), !0 === e.options.draggable && e.$list.addClass("draggable") } , s.prototype.buildRows = function() { var e, t, i, o, n, r, s, a = this; if (o = document.createDocumentFragment(), r = a.$slider.children(), 1 < a.options.rows) { for (s = a.options.slidesPerRow * a.options.rows, n = Math.ceil(r.length / s), e = 0; e < n; e++) { var l = document.createElement("div"); for (t = 0; t < a.options.rows; t++) { var d = document.createElement("div"); for (i = 0; i < a.options.slidesPerRow; i++) { var c = e * s + (t * a.options.slidesPerRow + i); r.get(c) && d.appendChild(r.get(c)) } l.appendChild(d) } o.appendChild(l) } a.$slider.empty().append(o), a.$slider.children().children().children().css({ width: 100 / a.options.slidesPerRow + "%", display: "inline-block" }) } } , s.prototype.checkResponsive = function(e, t) { var i, o, n, r = this, s = !1, a = r.$slider.width(), l = window.innerWidth || d(window).width(); if ("window" === r.respondTo ? n = l : "slider" === r.respondTo ? n = a : "min" === r.respondTo && (n = Math.min(l, a)), r.options.responsive && r.options.responsive.length && null !== r.options.responsive) { for (i in o = null, r.breakpoints) r.breakpoints.hasOwnProperty(i) && (!1 === r.originalSettings.mobileFirst ? n < r.breakpoints[i] && (o = r.breakpoints[i]) : n > r.breakpoints[i] && (o = r.breakpoints[i])); null !== o ? null !== r.activeBreakpoint ? o === r.activeBreakpoint && !t || (r.activeBreakpoint = o, "unslick" === r.breakpointSettings[o] ? r.unslick(o) : (r.options = d.extend({}, r.originalSettings, r.breakpointSettings[o]), !0 === e && (r.currentSlide = r.options.initialSlide), r.refresh(e)), s = o) : (r.activeBreakpoint = o, "unslick" === r.breakpointSettings[o] ? r.unslick(o) : (r.options = d.extend({}, r.originalSettings, r.breakpointSettings[o]), !0 === e && (r.currentSlide = r.options.initialSlide), r.refresh(e)), s = o) : null !== r.activeBreakpoint && (r.activeBreakpoint = null, r.options = r.originalSettings, !0 === e && (r.currentSlide = r.options.initialSlide), r.refresh(e), s = o), e || !1 === s || r.$slider.trigger("breakpoint", [r, s]) } } , s.prototype.changeSlide = function(e, t) { var i, o, n = this, r = d(e.currentTarget); switch (r.is("a") && e.preventDefault(), r.is("li") || (r = r.closest("li")), i = n.slideCount % n.options.slidesToScroll != 0 ? 0 : (n.slideCount - n.currentSlide) % n.options.slidesToScroll, e.data.message) { case "previous": o = 0 == i ? n.options.slidesToScroll : n.options.slidesToShow - i, n.slideCount > n.options.slidesToShow && n.slideHandler(n.currentSlide - o, !1, t); break; case "next": o = 0 == i ? n.options.slidesToScroll : i, n.slideCount > n.options.slidesToShow && n.slideHandler(n.currentSlide + o, !1, t); break; case "index": var s = 0 === e.data.index ? 0 : e.data.index || r.index() * n.options.slidesToScroll; n.slideHandler(n.checkNavigable(s), !1, t), r.children().trigger("focus"); break; default: return } } , s.prototype.checkNavigable = function(e) { var t, i; if (i = 0, e > (t = this.getNavigableIndexes())[t.length - 1]) e = t[t.length - 1]; else for (var o in t) { if (e < t[o]) { e = i; break } i = t[o] } return e } , s.prototype.cleanUpEvents = function() { var e = this; e.options.dots && null !== e.$dots && (d("li", e.$dots).off("click.slick", e.changeSlide).off("mouseenter.slick", d.proxy(e.interrupt, e, !0)).off("mouseleave.slick", d.proxy(e.interrupt, e, !1)), !0 === e.options.accessibility && e.$dots.off("keydown.slick", e.keyHandler)), e.$slider.off("focus.slick blur.slick"), !0 === e.options.arrows && e.slideCount > e.options.slidesToShow && (e.$prevArrow && e.$prevArrow.off("click.slick", e.changeSlide), e.$nextArrow && e.$nextArrow.off("click.slick", e.changeSlide), !0 === e.options.accessibility && (e.$prevArrow && e.$prevArrow.off("keydown.slick", e.keyHandler), e.$nextArrow && e.$nextArrow.off("keydown.slick", e.keyHandler))), e.$list.off("touchstart.slick mousedown.slick", e.swipeHandler), e.$list.off("touchmove.slick mousemove.slick", e.swipeHandler), e.$list.off("touchend.slick mouseup.slick", e.swipeHandler), e.$list.off("touchcancel.slick mouseleave.slick", e.swipeHandler), e.$list.off("click.slick", e.clickHandler), d(document).off(e.visibilityChange, e.visibility), e.cleanUpSlideEvents(), !0 === e.options.accessibility && e.$list.off("keydown.slick", e.keyHandler), !0 === e.options.focusOnSelect && d(e.$slideTrack).children().off("click.slick", e.selectHandler), d(window).off("orientationchange.slick.slick-" + e.instanceUid, e.orientationChange), d(window).off("resize.slick.slick-" + e.instanceUid, e.resize), d("[draggable!=true]", e.$slideTrack).off("dragstart", e.preventDefault), d(window).off("load.slick.slick-" + e.instanceUid, e.setPosition) } , s.prototype.cleanUpSlideEvents = function() { var e = this; e.$list.off("mouseenter.slick", d.proxy(e.interrupt, e, !0)), e.$list.off("mouseleave.slick", d.proxy(e.interrupt, e, !1)) } , s.prototype.cleanUpRows = function() { var e; 1 < this.options.rows && ((e = this.$slides.children().children()).removeAttr("style"), this.$slider.empty().append(e)) } , s.prototype.clickHandler = function(e) { !1 === this.shouldClick && (e.stopImmediatePropagation(), e.stopPropagation(), e.preventDefault()) } , s.prototype.destroy = function(e) { var t = this; t.autoPlayClear(), t.touchObject = {}, t.cleanUpEvents(), d(".slick-cloned", t.$slider).detach(), t.$dots && t.$dots.remove(), t.$prevArrow && t.$prevArrow.length && (t.$prevArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display", ""), t.htmlExpr.test(t.options.prevArrow) && t.$prevArrow.remove()), t.$nextArrow && t.$nextArrow.length && (t.$nextArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display", ""), t.htmlExpr.test(t.options.nextArrow) && t.$nextArrow.remove()), t.$slides && (t.$slides.removeClass("slick-slide slick-active slick-center slick-visible slick-current").removeAttr("aria-hidden").removeAttr("data-slick-index").each(function() { d(this).attr("style", d(this).data("originalStyling")) }), t.$slideTrack.children(this.options.slide).detach(), t.$slideTrack.detach(), t.$list.detach(), t.$slider.append(t.$slides)), t.cleanUpRows(), t.$slider.removeClass("slick-slider"), t.$slider.removeClass("slick-initialized"), t.$slider.removeClass("slick-dotted"), t.unslicked = !0, e || t.$slider.trigger("destroy", [t]) } , s.prototype.disableTransition = function(e) { var t = {}; t[this.transitionType] = "", !1 === this.options.fade ? this.$slideTrack.css(t) : this.$slides.eq(e).css(t) } , s.prototype.fadeSlide = function(e, t) { var i = this; !1 === i.cssTransitions ? (i.$slides.eq(e).css({ zIndex: i.options.zIndex }), i.$slides.eq(e).animate({ opacity: 1 }, i.options.speed, i.options.easing, t)) : (i.applyTransition(e), i.$slides.eq(e).css({ opacity: 1, zIndex: i.options.zIndex }), t && setTimeout(function() { i.disableTransition(e), t.call() }, i.options.speed)) } , s.prototype.fadeSlideOut = function(e) { var t = this; !1 === t.cssTransitions ? t.$slides.eq(e).animate({ opacity: 0, zIndex: t.options.zIndex - 2 }, t.options.speed, t.options.easing) : (t.applyTransition(e), t.$slides.eq(e).css({ opacity: 0, zIndex: t.options.zIndex - 2 })) } , s.prototype.filterSlides = s.prototype.slickFilter = function(e) { var t = this; null !== e && (t.$slidesCache = t.$slides, t.unload(), t.$slideTrack.children(this.options.slide).detach(), t.$slidesCache.filter(e).appendTo(t.$slideTrack), t.reinit()) } , s.prototype.focusHandler = function() { var i = this; i.$slider.off("focus.slick blur.slick").on("focus.slick blur.slick", "*", function(e) { e.stopImmediatePropagation(); var t = d(this); setTimeout(function() { i.options.pauseOnFocus && (i.focussed = t.is(":focus"), i.autoPlay()) }, 0) }) } , s.prototype.getCurrent = s.prototype.slickCurrentSlide = function() { return this.currentSlide } , s.prototype.getDotCount = function() { var e = this , t = 0 , i = 0 , o = 0; if (!0 === e.options.infinite) if (e.slideCount <= e.options.slidesToShow) ++o; else for (; t < e.slideCount; ) ++o, t = i + e.options.slidesToScroll, i += e.options.slidesToScroll <= e.options.slidesToShow ? e.options.slidesToScroll : e.options.slidesToShow; else if (!0 === e.options.centerMode) o = e.slideCount; else if (e.options.asNavFor) for (; t < e.slideCount; ) ++o, t = i + e.options.slidesToScroll, i += e.options.slidesToScroll <= e.options.slidesToShow ? e.options.slidesToScroll : e.options.slidesToShow; else o = 1 + Math.ceil((e.slideCount - e.options.slidesToShow) / e.options.slidesToScroll); return o - 1 } , s.prototype.getLeft = function(e) { var t, i, o, n, r = this, s = 0; return r.slideOffset = 0, i = r.$slides.first().outerHeight(!0), !0 === r.options.infinite ? (r.slideCount > r.options.slidesToShow && (r.slideOffset = r.slideWidth * r.options.slidesToShow * -1, n = -1, !0 === r.options.vertical && !0 === r.options.centerMode && (2 === r.options.slidesToShow ? n = -1.5 : 1 === r.options.slidesToShow && (n = -2)), s = i * r.options.slidesToShow * n), r.slideCount % r.options.slidesToScroll != 0 && e + r.options.slidesToScroll > r.slideCount && r.slideCount > r.options.slidesToShow && (s = e > r.slideCount ? (r.slideOffset = (r.options.slidesToShow - (e - r.slideCount)) * r.slideWidth * -1, (r.options.slidesToShow - (e - r.slideCount)) * i * -1) : (r.slideOffset = r.slideCount % r.options.slidesToScroll * r.slideWidth * -1, r.slideCount % r.options.slidesToScroll * i * -1))) : e + r.options.slidesToShow > r.slideCount && (r.slideOffset = (e + r.options.slidesToShow - r.slideCount) * r.slideWidth, s = (e + r.options.slidesToShow - r.slideCount) * i), r.slideCount <= r.options.slidesToShow && (s = r.slideOffset = 0), !0 === r.options.centerMode && r.slideCount <= r.options.slidesToShow ? r.slideOffset = r.slideWidth * Math.floor(r.options.slidesToShow) / 2 - r.slideWidth * r.slideCount / 2 : !0 === r.options.centerMode && !0 === r.options.infinite ? r.slideOffset += r.slideWidth * Math.floor(r.options.slidesToShow / 2) - r.slideWidth : !0 === r.options.centerMode && (r.slideOffset = 0, r.slideOffset += r.slideWidth * Math.floor(r.options.slidesToShow / 2)), t = !1 === r.options.vertical ? e * r.slideWidth * -1 + r.slideOffset : e * i * -1 + s, !0 === r.options.variableWidth && (o = r.slideCount <= r.options.slidesToShow || !1 === r.options.infinite ? r.$slideTrack.children(".slick-slide").eq(e) : r.$slideTrack.children(".slick-slide").eq(e + r.options.slidesToShow), t = !0 === r.options.rtl ? o[0] ? -1 * (r.$slideTrack.width() - o[0].offsetLeft - o.width()) : 0 : o[0] ? -1 * o[0].offsetLeft : 0, !0 === r.options.centerMode && (o = r.slideCount <= r.options.slidesToShow || !1 === r.options.infinite ? r.$slideTrack.children(".slick-slide").eq(e) : r.$slideTrack.children(".slick-slide").eq(e + r.options.slidesToShow + 1), t = !0 === r.options.rtl ? o[0] ? -1 * (r.$slideTrack.width() - o[0].offsetLeft - o.width()) : 0 : o[0] ? -1 * o[0].offsetLeft : 0, t += (r.$list.width() - o.outerWidth()) / 2)), t } , s.prototype.getOption = s.prototype.slickGetOption = function(e) { return this.options[e] } , s.prototype.getNavigableIndexes = function() { var e, t = this, i = 0, o = 0, n = []; for (e = !1 === t.options.infinite ? t.slideCount : (i = -1 * t.options.slidesToScroll, o = -1 * t.options.slidesToScroll, 2 * t.slideCount); i < e; ) n.push(i), i = o + t.options.slidesToScroll, o += t.options.slidesToScroll <= t.options.slidesToShow ? t.options.slidesToScroll : t.options.slidesToShow; return n } , s.prototype.getSlick = function() { return this } , s.prototype.getSlideCount = function() { var i, o, n = this; return o = !0 === n.options.centerMode ? n.slideWidth * Math.floor(n.options.slidesToShow / 2) : 0, !0 === n.options.swipeToSlide ? (n.$slideTrack.find(".slick-slide").each(function(e, t) { if (t.offsetLeft - o + d(t).outerWidth() / 2 > -1 * n.swipeLeft) return i = t, !1 }), Math.abs(d(i).attr("data-slick-index") - n.currentSlide) || 1) : n.options.slidesToScroll } , s.prototype.goTo = s.prototype.slickGoTo = function(e, t) { this.changeSlide({ data: { message: "index", index: parseInt(e) } }, t) } , s.prototype.init = function(e) { var t = this; d(t.$slider).hasClass("slick-initialized") || (d(t.$slider).addClass("slick-initialized"), t.buildRows(), t.buildOut(), t.setProps(), t.startLoad(), t.loadSlider(), t.initializeEvents(), t.updateArrows(), t.updateDots(), t.checkResponsive(!0), t.focusHandler()), e && t.$slider.trigger("init", [t]), !0 === t.options.accessibility && t.initADA(), t.options.autoplay && (t.paused = !1, t.autoPlay()) } , s.prototype.initADA = function() { var i = this , o = Math.ceil(i.slideCount / i.options.slidesToShow) , n = i.getNavigableIndexes().filter(function(e) { return 0 <= e && e < i.slideCount }); i.$slides.add(i.$slideTrack.find(".slick-cloned")).attr({ "aria-hidden": "true", tabindex: "-1" }).find("a, input, button, select").attr({ tabindex: "-1" }), null !== i.$dots && (i.$slides.not(i.$slideTrack.find(".slick-cloned")).each(function(e) { var t = n.indexOf(e); d(this).attr({ role: "tabpanel", id: "slick-slide" + i.instanceUid + e, tabindex: -1 }), -1 !== t && d(this).attr({ "aria-describedby": "slick-slide-control" + i.instanceUid + t }) }), i.$dots.attr("role", "tablist").find("li").each(function(e) { var t = n[e]; d(this).attr({ role: "presentation" }), d(this).find("button").first().attr({ role: "tab", id: "slick-slide-control" + i.instanceUid + e, "aria-controls": "slick-slide" + i.instanceUid + t, "aria-label": e + 1 + " of " + o, "aria-selected": null, tabindex: "-1" }) }).eq(i.currentSlide).find("button").attr({ "aria-selected": "true", tabindex: "0" }).end()); for (var e = i.currentSlide, t = e + i.options.slidesToShow; e < t; e++) i.$slides.eq(e).attr("tabindex", 0); i.activateADA() } , s.prototype.initArrowEvents = function() { var e = this; !0 === e.options.arrows && e.slideCount > e.options.slidesToShow && (e.$prevArrow.off("click.slick").on("click.slick", { message: "previous" }, e.changeSlide), e.$nextArrow.off("click.slick").on("click.slick", { message: "next" }, e.changeSlide), !0 === e.options.accessibility && (e.$prevArrow.on("keydown.slick", e.keyHandler), e.$nextArrow.on("keydown.slick", e.keyHandler))) } , s.prototype.initDotEvents = function() { var e = this; !0 === e.options.dots && (d("li", e.$dots).on("click.slick", { message: "index" }, e.changeSlide), !0 === e.options.accessibility && e.$dots.on("keydown.slick", e.keyHandler)), !0 === e.options.dots && !0 === e.options.pauseOnDotsHover && d("li", e.$dots).on("mouseenter.slick", d.proxy(e.interrupt, e, !0)).on("mouseleave.slick", d.proxy(e.interrupt, e, !1)) } , s.prototype.initSlideEvents = function() { var e = this; e.options.pauseOnHover && (e.$list.on("mouseenter.slick", d.proxy(e.interrupt, e, !0)), e.$list.on("mouseleave.slick", d.proxy(e.interrupt, e, !1))) } , s.prototype.initializeEvents = function() { var e = this; e.initArrowEvents(), e.initDotEvents(), e.initSlideEvents(), e.$list.on("touchstart.slick mousedown.slick", { action: "start" }, e.swipeHandler), e.$list.on("touchmove.slick mousemove.slick", { action: "move" }, e.swipeHandler), e.$list.on("touchend.slick mouseup.slick", { action: "end" }, e.swipeHandler), e.$list.on("touchcancel.slick mouseleave.slick", { action: "end" }, e.swipeHandler), e.$list.on("click.slick", e.clickHandler), d(document).on(e.visibilityChange, d.proxy(e.visibility, e)), !0 === e.options.accessibility && e.$list.on("keydown.slick", e.keyHandler), !0 === e.options.focusOnSelect && d(e.$slideTrack).children().on("click.slick", e.selectHandler), d(window).on("orientationchange.slick.slick-" + e.instanceUid, d.proxy(e.orientationChange, e)), d(window).on("resize.slick.slick-" + e.instanceUid, d.proxy(e.resize, e)), d("[draggable!=true]", e.$slideTrack).on("dragstart", e.preventDefault), d(window).on("load.slick.slick-" + e.instanceUid, e.setPosition), d(e.setPosition) } , s.prototype.initUI = function() { var e = this; !0 === e.options.arrows && e.slideCount > e.options.slidesToShow && (e.$prevArrow.show(), e.$nextArrow.show()), !0 === e.options.dots && e.slideCount > e.options.slidesToShow && e.$dots.show() } , s.prototype.keyHandler = function(e) { var t = this; e.target.tagName.match("TEXTAREA|INPUT|SELECT") || (37 === e.keyCode && !0 === t.options.accessibility ? t.changeSlide({ data: { message: !0 === t.options.rtl ? "next" : "previous" } }) : 39 === e.keyCode && !0 === t.options.accessibility && t.changeSlide({ data: { message: !0 === t.options.rtl ? "previous" : "next" } })) } , s.prototype.lazyLoad = function() { function e(e) { d("img[data-lazy]", e).each(function() { var e = d(this) , t = d(this).attr("data-lazy") , i = d(this).attr("data-srcset") , o = d(this).attr("data-sizes") || r.$slider.attr("data-sizes") , n = document.createElement("img"); n.onload = function() { e.animate({ opacity: 0 }, 100, function() { i && (e.attr("srcset", i), o && e.attr("sizes", o)), e.attr("src", t).animate({ opacity: 1 }, 200, function() { e.removeAttr("data-lazy data-srcset data-sizes").removeClass("slick-loading") }), r.$slider.trigger("lazyLoaded", [r, e, t]) }) } , n.onerror = function() { e.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error"), r.$slider.trigger("lazyLoadError", [r, e, t]) } , n.src = t }) } var t, i, o, r = this; if (!0 === r.options.centerMode ? o = !0 === r.options.infinite ? (i = r.currentSlide + (r.options.slidesToShow / 2 + 1)) + r.options.slidesToShow + 2 : (i = Math.max(0, r.currentSlide - (r.options.slidesToShow / 2 + 1)), r.options.slidesToShow / 2 + 1 + 2 + r.currentSlide) : (i = r.options.infinite ? r.options.slidesToShow + r.currentSlide : r.currentSlide, o = Math.ceil(i + r.options.slidesToShow), !0 === r.options.fade && (0 < i && i--, o <= r.slideCount && o++)), t = r.$slider.find(".slick-slide").slice(i, o), "anticipated" === r.options.lazyLoad) for (var n = i - 1, s = o, a = r.$slider.find(".slick-slide"), l = 0; l < r.options.slidesToScroll; l++) n < 0 && (n = r.slideCount - 1), t = (t = t.add(a.eq(n))).add(a.eq(s)), n--, s++; e(t), r.slideCount <= r.options.slidesToShow ? e(r.$slider.find(".slick-slide")) : r.currentSlide >= r.slideCount - r.options.slidesToShow ? e(r.$slider.find(".slick-cloned").slice(0, r.options.slidesToShow)) : 0 === r.currentSlide && e(r.$slider.find(".slick-cloned").slice(-1 * r.options.slidesToShow)) } , s.prototype.loadSlider = function() { var e = this; e.setPosition(), e.$slideTrack.css({ opacity: 1 }), e.$slider.removeClass("slick-loading"), e.initUI(), "progressive" === e.options.lazyLoad && e.progressiveLazyLoad() } , s.prototype.next = s.prototype.slickNext = function() { this.changeSlide({ data: { message: "next" } }) } , s.prototype.orientationChange = function() { this.checkResponsive(), this.setPosition() } , s.prototype.pause = s.prototype.slickPause = function() { this.autoPlayClear(), this.paused = !0 } , s.prototype.play = s.prototype.slickPlay = function() { var e = this; e.autoPlay(), e.options.autoplay = !0, e.paused = !1, e.focussed = !1, e.interrupted = !1 } , s.prototype.postSlide = function(e) { var t = this; t.unslicked || (t.$slider.trigger("afterChange", [t, e]), t.animating = !1, t.slideCount > t.options.slidesToShow && t.setPosition(), t.swipeLeft = null, t.options.autoplay && t.autoPlay(), !0 === t.options.accessibility && (t.initADA(), t.options.focusOnChange && d(t.$slides.get(t.currentSlide)).attr("tabindex", 0).focus())) } , s.prototype.prev = s.prototype.slickPrev = function() { this.changeSlide({ data: { message: "previous" } }) } , s.prototype.preventDefault = function(e) { e.preventDefault() } , s.prototype.progressiveLazyLoad = function(e) { e = e || 1; var t, i, o, n, r, s = this, a = d("img[data-lazy]", s.$slider); a.length ? (t = a.first(), i = t.attr("data-lazy"), o = t.attr("data-srcset"), n = t.attr("data-sizes") || s.$slider.attr("data-sizes"), (r = document.createElement("img")).onload = function() { o && (t.attr("srcset", o), n && t.attr("sizes", n)), t.attr("src", i).removeAttr("data-lazy data-srcset data-sizes").removeClass("slick-loading"), !0 === s.options.adaptiveHeight && s.setPosition(), s.$slider.trigger("lazyLoaded", [s, t, i]), s.progressiveLazyLoad() } , r.onerror = function() { e < 3 ? setTimeout(function() { s.progressiveLazyLoad(e + 1) }, 500) : (t.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error"), s.$slider.trigger("lazyLoadError", [s, t, i]), s.progressiveLazyLoad()) } , r.src = i) : s.$slider.trigger("allImagesLoaded", [s]) } , s.prototype.refresh = function(e) { var t, i, o = this; i = o.slideCount - o.options.slidesToShow, !o.options.infinite && o.currentSlide > i && (o.currentSlide = i), o.slideCount <= o.options.slidesToShow && (o.currentSlide = 0), t = o.currentSlide, o.destroy(!0), d.extend(o, o.initials, { currentSlide: t }), o.init(), e || o.changeSlide({ data: { message: "index", index: t } }, !1) } , s.prototype.registerBreakpoints = function() { var e, t, i, o = this, n = o.options.responsive || null; if ("array" === d.type(n) && n.length) { for (e in o.respondTo = o.options.respondTo || "window", n) if (i = o.breakpoints.length - 1, n.hasOwnProperty(e)) { for (t = n[e].breakpoint; 0 <= i; ) o.breakpoints[i] && o.breakpoints[i] === t && o.breakpoints.splice(i, 1), i--; o.breakpoints.push(t), o.breakpointSettings[t] = n[e].settings } o.breakpoints.sort(function(e, t) { return o.options.mobileFirst ? e - t : t - e }) } } , s.prototype.reinit = function() { var e = this; e.$slides = e.$slideTrack.children(e.options.slide).addClass("slick-slide"), e.slideCount = e.$slides.length, e.currentSlide >= e.slideCount && 0 !== e.currentSlide && (e.currentSlide = e.currentSlide - e.options.slidesToScroll), e.slideCount <= e.options.slidesToShow && (e.currentSlide = 0), e.registerBreakpoints(), e.setProps(), e.setupInfinite(), e.buildArrows(), e.updateArrows(), e.initArrowEvents(), e.buildDots(), e.updateDots(), e.initDotEvents(), e.cleanUpSlideEvents(), e.initSlideEvents(), e.checkResponsive(!1, !0), !0 === e.options.focusOnSelect && d(e.$slideTrack).children().on("click.slick", e.selectHandler), e.setSlideClasses("number" == typeof e.currentSlide ? e.currentSlide : 0), e.setPosition(), e.focusHandler(), e.paused = !e.options.autoplay, e.autoPlay(), e.$slider.trigger("reInit", [e]) } , s.prototype.resize = function() { var e = this; d(window).width() !== e.windowWidth && (clearTimeout(e.windowDelay), e.windowDelay = window.setTimeout(function() { e.windowWidth = d(window).width(), e.checkResponsive(), e.unslicked || e.setPosition() }, 50)) } , s.prototype.removeSlide = s.prototype.slickRemove = function(e, t, i) { var o = this; if (e = "boolean" == typeof e ? !0 === (t = e) ? 0 : o.slideCount - 1 : !0 === t ? --e : e, o.slideCount < 1 || e < 0 || e > o.slideCount - 1) return !1; o.unload(), !0 === i ? o.$slideTrack.children().remove() : o.$slideTrack.children(this.options.slide).eq(e).remove(), o.$slides = o.$slideTrack.children(this.options.slide), o.$slideTrack.children(this.options.slide).detach(), o.$slideTrack.append(o.$slides), o.$slidesCache = o.$slides, o.reinit() } , s.prototype.setCSS = function(e) { var t, i, o = this, n = {}; !0 === o.options.rtl && (e = -e), t = "left" == o.positionProp ? Math.ceil(e) + "px" : "0px", i = "top" == o.positionProp ? Math.ceil(e) + "px" : "0px", n[o.positionProp] = e, !1 === o.transformsEnabled || (!(n = {}) === o.cssTransitions ? n[o.animType] = "translate(" + t + ", " + i + ")" : n[o.animType] = "translate3d(" + t + ", " + i + ", 0px)"), o.$slideTrack.css(n) } , s.prototype.setDimensions = function() { var e = this; !1 === e.options.vertical ? !0 === e.options.centerMode && e.$list.css({ padding: "0px " + e.options.centerPadding }) : (e.$list.height(e.$slides.first().outerHeight(!0) * e.options.slidesToShow), !0 === e.options.centerMode && e.$list.css({ padding: e.options.centerPadding + " 0px" })), e.listWidth = e.$list.width(), e.listHeight = e.$list.height(), !1 === e.options.vertical && !1 === e.options.variableWidth ? (e.slideWidth = Math.ceil(e.listWidth / e.options.slidesToShow), e.$slideTrack.width(Math.ceil(e.slideWidth * e.$slideTrack.children(".slick-slide").length))) : !0 === e.options.variableWidth ? e.$slideTrack.width(5e3 * e.slideCount) : (e.slideWidth = Math.ceil(e.listWidth), e.$slideTrack.height(Math.ceil(e.$slides.first().outerHeight(!0) * e.$slideTrack.children(".slick-slide").length))); var t = e.$slides.first().outerWidth(!0) - e.$slides.first().width(); !1 === e.options.variableWidth && e.$slideTrack.children(".slick-slide").width(e.slideWidth - t) } , s.prototype.setFade = function() { var i, o = this; o.$slides.each(function(e, t) { i = o.slideWidth * e * -1, !0 === o.options.rtl ? d(t).css({ position: "relative", right: i, top: 0, zIndex: o.options.zIndex - 2, opacity: 0 }) : d(t).css({ position: "relative", left: i, top: 0, zIndex: o.options.zIndex - 2, opacity: 0 }) }), o.$slides.eq(o.currentSlide).css({ zIndex: o.options.zIndex - 1, opacity: 1 }) } , s.prototype.setHeight = function() { var e = this; if (1 === e.options.slidesToShow && !0 === e.options.adaptiveHeight && !1 === e.options.vertical) { var t = e.$slides.eq(e.currentSlide).outerHeight(!0); e.$list.css("height", t) } } , s.prototype.setOption = s.prototype.slickSetOption = function() { var e, t, i, o, n, r = this, s = !1; if ("object" === d.type(arguments[0]) ? (i = arguments[0], s = arguments[1], n = "multiple") : "string" === d.type(arguments[0]) && (o = arguments[1], s = arguments[2], "responsive" === (i = arguments[0]) && "array" === d.type(arguments[1]) ? n = "responsive" : void 0 !== arguments[1] && (n = "single")), "single" === n) r.options[i] = o; else if ("multiple" === n) d.each(i, function(e, t) { r.options[e] = t }); else if ("responsive" === n) for (t in o) if ("array" !== d.type(r.options.responsive)) r.options.responsive = [o[t]]; else { for (e = r.options.responsive.length - 1; 0 <= e; ) r.options.responsive[e].breakpoint === o[t].breakpoint && r.options.responsive.splice(e, 1), e--; r.options.responsive.push(o[t]) } s && (r.unload(), r.reinit()) } , s.prototype.setPosition = function() { var e = this; e.setDimensions(), e.setHeight(), !1 === e.options.fade ? e.setCSS(e.getLeft(e.currentSlide)) : e.setFade(), e.$slider.trigger("setPosition", [e]) } , s.prototype.setProps = function() { var e = this , t = document.body.style; e.positionProp = !0 === e.options.vertical ? "top" : "left", "top" === e.positionProp ? e.$slider.addClass("slick-vertical") : e.$slider.removeClass("slick-vertical"), void 0 === t.WebkitTransition && void 0 === t.MozTransition && void 0 === t.msTransition || !0 === e.options.useCSS && (e.cssTransitions = !0), e.options.fade && ("number" == typeof e.options.zIndex ? e.options.zIndex < 3 && (e.options.zIndex = 3) : e.options.zIndex = e.defaults.zIndex), void 0 !== t.OTransform && (e.animType = "OTransform", e.transformType = "-o-transform", e.transitionType = "OTransition", void 0 === t.perspectiveProperty && void 0 === t.webkitPerspective && (e.animType = !1)), void 0 !== t.MozTransform && (e.animType = "MozTransform", e.transformType = "-moz-transform", e.transitionType = "MozTransition", void 0 === t.perspectiveProperty && void 0 === t.MozPerspective && (e.animType = !1)), void 0 !== t.webkitTransform && (e.animType = "webkitTransform", e.transformType = "-webkit-transform", e.transitionType = "webkitTransition", void 0 === t.perspectiveProperty && void 0 === t.webkitPerspective && (e.animType = !1)), void 0 !== t.msTransform && (e.animType = "msTransform", e.transformType = "-ms-transform", e.transitionType = "msTransition", void 0 === t.msTransform && (e.animType = !1)), void 0 !== t.transform && !1 !== e.animType && (e.animType = "transform", e.transformType = "transform", e.transitionType = "transition"), e.transformsEnabled = e.options.useTransform && null !== e.animType && !1 !== e.animType } , s.prototype.setSlideClasses = function(e) { var t, i, o, n, r = this; if (i = r.$slider.find(".slick-slide").removeClass("slick-active slick-center slick-current").attr("aria-hidden", "true"), r.$slides.eq(e).addClass("slick-current"), !0 === r.options.centerMode) { var s = r.options.slidesToShow % 2 == 0 ? 1 : 0; t = Math.floor(r.options.slidesToShow / 2), !0 === r.options.infinite && (t <= e && e <= r.slideCount - 1 - t ? r.$slides.slice(e - t + s, e + t + 1).addClass("slick-active").attr("aria-hidden", "false") : (o = r.options.slidesToShow + e, i.slice(o - t + 1 + s, o + t + 2).addClass("slick-active").attr("aria-hidden", "false")), 0 === e ? i.eq(i.length - 1 - r.options.slidesToShow).addClass("slick-center") : e === r.slideCount - 1 && i.eq(r.options.slidesToShow).addClass("slick-center")), r.$slides.eq(e).addClass("slick-center") } else 0 <= e && e <= r.slideCount - r.options.slidesToShow ? r.$slides.slice(e, e + r.options.slidesToShow).addClass("slick-active").attr("aria-hidden", "false") : i.length <= r.options.slidesToShow ? i.addClass("slick-active").attr("aria-hidden", "false") : (n = r.slideCount % r.options.slidesToShow, o = !0 === r.options.infinite ? r.options.slidesToShow + e : e, r.options.slidesToShow == r.options.slidesToScroll && r.slideCount - e < r.options.slidesToShow ? i.slice(o - (r.options.slidesToShow - n), o + n).addClass("slick-active").attr("aria-hidden", "false") : i.slice(o, o + r.options.slidesToShow).addClass("slick-active").attr("aria-hidden", "false")); "ondemand" !== r.options.lazyLoad && "anticipated" !== r.options.lazyLoad || r.lazyLoad() } , s.prototype.setupInfinite = function() { var e, t, i, o = this; if (!0 === o.options.fade && (o.options.centerMode = !1), !0 === o.options.infinite && !1 === o.options.fade && (t = null, o.slideCount > o.options.slidesToShow)) { for (i = !0 === o.options.centerMode ? o.options.slidesToShow + 1 : o.options.slidesToShow, e = o.slideCount; e > o.slideCount - i; e -= 1) t = e - 1, d(o.$slides[t]).clone(!0).attr("id", "").attr("data-slick-index", t - o.slideCount).prependTo(o.$slideTrack).addClass("slick-cloned"); for (e = 0; e < i + o.slideCount; e += 1) t = e, d(o.$slides[t]).clone(!0).attr("id", "").attr("data-slick-index", t + o.slideCount).appendTo(o.$slideTrack).addClass("slick-cloned"); o.$slideTrack.find(".slick-cloned").find("[id]").each(function() { d(this).attr("id", "") }) } } , s.prototype.interrupt = function(e) { e || this.autoPlay(), this.interrupted = e } , s.prototype.selectHandler = function(e) { var t = d(e.target).is(".slick-slide") ? d(e.target) : d(e.target).parents(".slick-slide") , i = parseInt(t.attr("data-slick-index")); i || (i = 0), this.slideCount <= this.options.slidesToShow ? this.slideHandler(i, !1, !0) : this.slideHandler(i) } , s.prototype.slideHandler = function(e, t, i) { var o, n, r, s, a, l = null, d = this; if (t = t || !1, !(!0 === d.animating && !0 === d.options.waitForAnimate || !0 === d.options.fade && d.currentSlide === e)) if (!1 === t && d.asNavFor(e), o = e, l = d.getLeft(o), s = d.getLeft(d.currentSlide), d.currentLeft = null === d.swipeLeft ? s : d.swipeLeft, !1 === d.options.infinite && !1 === d.options.centerMode && (e < 0 || e > d.getDotCount() * d.options.slidesToScroll)) !1 === d.options.fade && (o = d.currentSlide, !0 !== i ? d.animateSlide(s, function() { d.postSlide(o) }) : d.postSlide(o)); else if (!1 === d.options.infinite && !0 === d.options.centerMode && (e < 0 || e > d.slideCount - d.options.slidesToScroll)) !1 === d.options.fade && (o = d.currentSlide, !0 !== i ? d.animateSlide(s, function() { d.postSlide(o) }) : d.postSlide(o)); else { if (d.options.autoplay && clearInterval(d.autoPlayTimer), n = o < 0 ? d.slideCount % d.options.slidesToScroll != 0 ? d.slideCount - d.slideCount % d.options.slidesToScroll : d.slideCount + o : o >= d.slideCount ? d.slideCount % d.options.slidesToScroll != 0 ? 0 : o - d.slideCount : o, d.animating = !0, d.$slider.trigger("beforeChange", [d, d.currentSlide, n]), r = d.currentSlide, d.currentSlide = n, d.setSlideClasses(d.currentSlide), d.options.asNavFor && (a = (a = d.getNavTarget()).slick("getSlick")).slideCount <= a.options.slidesToShow && a.setSlideClasses(d.currentSlide), d.updateDots(), d.updateArrows(), !0 === d.options.fade) return !0 !== i ? (d.fadeSlideOut(r), d.fadeSlide(n, function() { d.postSlide(n) })) : d.postSlide(n), void d.animateHeight(); !0 !== i ? d.animateSlide(l, function() { d.postSlide(n) }) : d.postSlide(n) } } , s.prototype.startLoad = function() { var e = this; !0 === e.options.arrows && e.slideCount > e.options.slidesToShow && (e.$prevArrow.hide(), e.$nextArrow.hide()), !0 === e.options.dots && e.slideCount > e.options.slidesToShow && e.$dots.hide(), e.$slider.addClass("slick-loading") } , s.prototype.swipeDirection = function() { var e, t, i, o, n = this; return e = n.touchObject.startX - n.touchObject.curX, t = n.touchObject.startY - n.touchObject.curY, i = Math.atan2(t, e), (o = Math.round(180 * i / Math.PI)) < 0 && (o = 360 - Math.abs(o)), o <= 45 && 0 <= o ? !1 === n.options.rtl ? "left" : "right" : o <= 360 && 315 <= o ? !1 === n.options.rtl ? "left" : "right" : 135 <= o && o <= 225 ? !1 === n.options.rtl ? "right" : "left" : !0 === n.options.verticalSwiping ? 35 <= o && o <= 135 ? "down" : "up" : "vertical" } , s.prototype.swipeEnd = function(e) { var t, i, o = this; if (o.dragging = !1, o.swiping = !1, o.scrolling) return o.scrolling = !1; if (o.interrupted = !1, o.shouldClick = !(10 < o.touchObject.swipeLength), void 0 === o.touchObject.curX) return !1; if (!0 === o.touchObject.edgeHit && o.$slider.trigger("edge", [o, o.swipeDirection()]), o.touchObject.swipeLength >= o.touchObject.minSwipe) { switch (i = o.swipeDirection()) { case "left": case "down": t = o.options.swipeToSlide ? o.checkNavigable(o.currentSlide + o.getSlideCount()) : o.currentSlide + o.getSlideCount(), o.currentDirection = 0; break; case "right": case "up": t = o.options.swipeToSlide ? o.checkNavigable(o.currentSlide - o.getSlideCount()) : o.currentSlide - o.getSlideCount(), o.currentDirection = 1 } "vertical" != i && (o.slideHandler(t), o.touchObject = {}, o.$slider.trigger("swipe", [o, i])) } else o.touchObject.startX !== o.touchObject.curX && (o.slideHandler(o.currentSlide), o.touchObject = {}) } , s.prototype.swipeHandler = function(e) { var t = this; if (!(!1 === t.options.swipe || "ontouchend"in document && !1 === t.options.swipe || !1 === t.options.draggable && -1 !== e.type.indexOf("mouse"))) switch (t.touchObject.fingerCount = e.originalEvent && void 0 !== e.originalEvent.touches ? e.originalEvent.touches.length : 1, t.touchObject.minSwipe = t.listWidth / t.options.touchThreshold, !0 === t.options.verticalSwiping && (t.touchObject.minSwipe = t.listHeight / t.options.touchThreshold), e.data.action) { case "start": t.swipeStart(e); break; case "move": t.swipeMove(e); break; case "end": t.swipeEnd(e) } } , s.prototype.swipeMove = function(e) { var t, i, o, n, r, s, a = this; return r = void 0 !== e.originalEvent ? e.originalEvent.touches : null, !(!a.dragging || a.scrolling || r && 1 !== r.length) && (t = a.getLeft(a.currentSlide), a.touchObject.curX = void 0 !== r ? r[0].pageX : e.clientX, a.touchObject.curY = void 0 !== r ? r[0].pageY : e.clientY, a.touchObject.swipeLength = Math.round(Math.sqrt(Math.pow(a.touchObject.curX - a.touchObject.startX, 2))), s = Math.round(Math.sqrt(Math.pow(a.touchObject.curY - a.touchObject.startY, 2))), !a.options.verticalSwiping && !a.swiping && 4 < s ? !(a.scrolling = !0) : (!0 === a.options.verticalSwiping && (a.touchObject.swipeLength = s), i = a.swipeDirection(), void 0 !== e.originalEvent && 4 < a.touchObject.swipeLength && (a.swiping = !0, e.preventDefault()), n = (!1 === a.options.rtl ? 1 : -1) * (a.touchObject.curX > a.touchObject.startX ? 1 : -1), !0 === a.options.verticalSwiping && (n = a.touchObject.curY > a.touchObject.startY ? 1 : -1), o = a.touchObject.swipeLength, (a.touchObject.edgeHit = !1) === a.options.infinite && (0 === a.currentSlide && "right" === i || a.currentSlide >= a.getDotCount() && "left" === i) && (o = a.touchObject.swipeLength * a.options.edgeFriction, a.touchObject.edgeHit = !0), !1 === a.options.vertical ? a.swipeLeft = t + o * n : a.swipeLeft = t + o * (a.$list.height() / a.listWidth) * n, !0 === a.options.verticalSwiping && (a.swipeLeft = t + o * n), !0 !== a.options.fade && !1 !== a.options.touchMove && (!0 === a.animating ? (a.swipeLeft = null, !1) : void a.setCSS(a.swipeLeft)))) } , s.prototype.swipeStart = function(e) { var t, i = this; if (i.interrupted = !0, 1 !== i.touchObject.fingerCount || i.slideCount <= i.options.slidesToShow) return !(i.touchObject = {}); void 0 !== e.originalEvent && void 0 !== e.originalEvent.touches && (t = e.originalEvent.touches[0]), i.touchObject.startX = i.touchObject.curX = void 0 !== t ? t.pageX : e.clientX, i.touchObject.startY = i.touchObject.curY = void 0 !== t ? t.pageY : e.clientY, i.dragging = !0 } , s.prototype.unfilterSlides = s.prototype.slickUnfilter = function() { var e = this; null !== e.$slidesCache && (e.unload(), e.$slideTrack.children(this.options.slide).detach(), e.$slidesCache.appendTo(e.$slideTrack), e.reinit()) } , s.prototype.unload = function() { var e = this; d(".slick-cloned", e.$slider).remove(), e.$dots && e.$dots.remove(), e.$prevArrow && e.htmlExpr.test(e.options.prevArrow) && e.$prevArrow.remove(), e.$nextArrow && e.htmlExpr.test(e.options.nextArrow) && e.$nextArrow.remove(), e.$slides.removeClass("slick-slide slick-active slick-visible slick-current").attr("aria-hidden", "true").css("width", "") } , s.prototype.unslick = function(e) { this.$slider.trigger("unslick", [this, e]), this.destroy() } , s.prototype.updateArrows = function() { var e = this; Math.floor(e.options.slidesToShow / 2), !0 === e.options.arrows && e.slideCount > e.options.slidesToShow && !e.options.infinite && (e.$prevArrow.removeClass("slick-disabled").attr("aria-disabled", "false"), e.$nextArrow.removeClass("slick-disabled").attr("aria-disabled", "false"), 0 === e.currentSlide ? (e.$prevArrow.addClass("slick-disabled").attr("aria-disabled", "true"), e.$nextArrow.removeClass("slick-disabled").attr("aria-disabled", "false")) : e.currentSlide >= e.slideCount - e.options.slidesToShow && !1 === e.options.centerMode ? (e.$nextArrow.addClass("slick-disabled").attr("aria-disabled", "true"), e.$prevArrow.removeClass("slick-disabled").attr("aria-disabled", "false")) : e.currentSlide >= e.slideCount - 1 && !0 === e.options.centerMode && (e.$nextArrow.addClass("slick-disabled").attr("aria-disabled", "true"), e.$prevArrow.removeClass("slick-disabled").attr("aria-disabled", "false"))) } , s.prototype.updateDots = function() { var e = this; null !== e.$dots && (e.$dots.find("li").removeClass("slick-active").end(), e.$dots.find("li").eq(Math.floor(e.currentSlide / e.options.slidesToScroll)).addClass("slick-active")) } , s.prototype.visibility = function() { this.options.autoplay && (document[this.hidden] ? this.interrupted = !0 : this.interrupted = !1) } , d.fn.slick = function() { var e, t, i = this, o = arguments[0], n = Array.prototype.slice.call(arguments, 1), r = i.length; for (e = 0; e < r; e++) if ("object" == typeof o || void 0 === o ? i[e].slick = new s(i[e],o) : t = i[e].slick[o].apply(i[e].slick, n), void 0 !== t) return t; return i } }), function(p, u) { "use strict"; function f(e, t) { for (var i in t) t.hasOwnProperty(i) && (e[i] = t[i]) } function h(e) { return parseFloat(e) || 0 } function g(e) { for (var t = 0; e; ) t += e.offsetTop, e = e.offsetParent; return t } var e = function(e, t, i) { return t && o(e.prototype, t), i && o(e, i), e } , m = !1; function o(e, t) { for (var i = 0; i < t.length; i++) { var o = t[i]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value"in o && (o.writable = !0), Object.defineProperty(e, o.key, o) } } if (p.getComputedStyle) { var t = u.createElement("div"); ["", "-webkit-", "-moz-", "-ms-"].some(function(e) { try { t.style.position = e + "sticky" } catch (e) {} return "" != t.style.position }) && (m = !0) } else m = !0; var v = "undefined" != typeof ShadowRoot , r = { top: null, left: null } , s = [] , n = (e(i, [{ key: "refresh", value: function() { if (!m && !this._removed) { this._active && this._deactivate(); var e = this._node , t = getComputedStyle(e) , i = { top: t.top, display: t.display, marginTop: t.marginTop, marginBottom: t.marginBottom, marginLeft: t.marginLeft, marginRight: t.marginRight, cssFloat: t.cssFloat }; if (!isNaN(parseFloat(i.top)) && "table-cell" != i.display && "none" != i.display) { this._active = !0; var o = e.parentNode , n = v && o instanceof ShadowRoot ? o.host : o , r = e.getBoundingClientRect() , s = n.getBoundingClientRect() , a = getComputedStyle(n); this._parent = { node: n, styles: { position: n.style.position }, offsetHeight: n.offsetHeight }, this._offsetToWindow = { left: r.left, right: u.documentElement.clientWidth - r.right }, this._offsetToParent = { top: r.top - s.top - h(a.borderTopWidth), left: r.left - s.left - h(a.borderLeftWidth), right: -r.right + s.right - h(a.borderRightWidth) }, this._styles = { position: e.style.position, top: e.style.top, bottom: e.style.bottom, left: e.style.left, right: e.style.right, width: e.style.width, marginTop: e.style.marginTop, marginLeft: e.style.marginLeft, marginRight: e.style.marginRight }; var l = h(i.top); this._limits = { start: r.top + p.pageYOffset - l, end: s.top + p.pageYOffset + n.offsetHeight - h(a.borderBottomWidth) - e.offsetHeight - l - h(i.marginBottom) }; var d = a.position; "absolute" != d && "relative" != d && (n.style.position = "relative"), this._recalcPosition(); var c = this._clone = {}; c.node = u.createElement("div"), f(c.node.style, { width: r.right - r.left + "px", height: r.bottom - r.top + "px", marginTop: i.marginTop, marginBottom: i.marginBottom, marginLeft: i.marginLeft, marginRight: i.marginRight, cssFloat: i.cssFloat, padding: 0, border: 0, borderSpacing: 0, fontSize: "1em", position: "static" }), o.insertBefore(c.node, e), c.docOffsetTop = g(c.node) } } } }, { key: "_recalcPosition", value: function() { if (this._active && !this._removed) { var e = r.top <= this._limits.start ? "start" : r.top >= this._limits.end ? "end" : "middle"; if (this._stickyMode != e) { switch (e) { case "start": f(this._node.style, { position: "absolute", left: this._offsetToParent.left + "px", right: this._offsetToParent.right + "px", top: this._offsetToParent.top + "px", bottom: "auto", width: "auto", marginLeft: 0, marginRight: 0, marginTop: 0 }); break; case "middle": f(this._node.style, { position: "fixed", left: this._offsetToWindow.left + "px", right: this._offsetToWindow.right + "px", top: this._styles.top, bottom: "auto", width: "auto", marginLeft: 0, marginRight: 0, marginTop: 0 }); break; case "end": f(this._node.style, { position: "absolute", left: this._offsetToParent.left + "px", right: this._offsetToParent.right + "px", top: "auto", bottom: 0, width: "auto", marginLeft: 0, marginRight: 0 }) } this._stickyMode = e } } } }, { key: "_fastCheck", value: function() { this._active && !this._removed && (1 < Math.abs(g(this._clone.node) - this._clone.docOffsetTop) || 1 < Math.abs(this._parent.node.offsetHeight - this._parent.offsetHeight)) && this.refresh() } }, { key: "_deactivate", value: function() { var t = this; this._active && !this._removed && (this._clone.node.parentNode.removeChild(this._clone.node), delete this._clone, f(this._node.style, this._styles), delete this._styles, s.some(function(e) { return e !== t && e._parent && e._parent.node === t._parent.node }) || f(this._parent.node.style, this._parent.styles), delete this._parent, this._stickyMode = null, this._active = !1, delete this._offsetToWindow, delete this._offsetToParent, delete this._limits) } }, { key: "remove", value: function() { var i = this; this._deactivate(), s.some(function(e, t) { if (e._node === i._node) return s.splice(t, 1), !0 }), this._removed = !0 } }]), i) , a = { stickies: s, Sticky: n, addOne: function(e) { if (!(e instanceof HTMLElement)) { if (!e.length || !e[0]) return; e = e[0] } for (var t = 0; t < s.length; t++) if (s[t]._node === e) return s[t]; return new n(e) }, add: function(e) { if (e instanceof HTMLElement && (e = [e]), e.length) { for (var i = [], o = 0; o < e.length; o++) !function() { var t = e[o]; t instanceof HTMLElement ? s.some(function(e) { if (e._node === t) return i.push(e), !0 }) || i.push(new n(t)) : i.push(void 0) }(); return i } }, refreshAll: function() { s.forEach(function(e) { return e.refresh() }) }, removeOne: function(t) { if (!(t instanceof HTMLElement)) { if (!t.length || !t[0]) return; t = t[0] } s.some(function(e) { if (e._node === t) return e.remove(), !0 }) }, remove: function(e) { if (e instanceof HTMLElement && (e = [e]), e.length) for (var i = 0; i < e.length; i++) !function() { var t = e[i]; s.some(function(e) { if (e._node === t) return e.remove(), !0 }) }() }, removeAll: function() { for (; s.length; ) s[0].remove() } }; function i(t) { if (function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, i), !(t instanceof HTMLElement)) throw new Error("First argument must be HTMLElement"); if (s.some(function(e) { return e._node === t })) throw new Error("Stickyfill is already applied to this node"); this._node = t, this._stickyMode = null, this._active = !1, s.push(this), this.refresh() } m || function() { function e() { p.pageXOffset != r.left ? (r.top = p.pageYOffset, r.left = p.pageXOffset, a.refreshAll()) : p.pageYOffset != r.top && (r.top = p.pageYOffset, r.left = p.pageXOffset, s.forEach(function(e) { return e._recalcPosition() })) } function t() { i = setInterval(function() { s.forEach(function(e) { return e._fastCheck() }) }, 500) } e(), p.addEventListener("scroll", e), p.addEventListener("resize", a.refreshAll), p.addEventListener("orientationchange", a.refreshAll); var i = void 0 , o = void 0 , n = void 0; "hidden"in u ? (o = "hidden", n = "visibilitychange") : "webkitHidden"in u && (o = "webkitHidden", n = "webkitvisibilitychange"), n ? (u[o] || t(), u.addEventListener(n, function() { u[o] ? clearInterval(i) : t() })) : t() }(), "undefined" != typeof module && module.exports ? module.exports = a : p.Stickyfill = a }(window, document), function() { "use strict"; if ("undefined" != typeof window) { var e = window.navigator.userAgent.match(/Edge\/(\d{2})\./) , o = !!e && 16 <= parseInt(e[1], 10); if ("objectFit"in document.documentElement.style != 0 && !o) return window.objectFitPolyfill = function() { return !1 } ; var n = function(e, t, i) { var o, n, r, s, a; if ((i = i.split(" ")).length < 2 && (i[1] = i[0]), "x" === e) o = i[0], n = i[1], r = "left", s = "right", a = t.clientWidth; else { if ("y" !== e) return; o = i[1], n = i[0], r = "top", s = "bottom", a = t.clientHeight } return o === r || n === r ? void (t.style[r] = "0") : o === s || n === s ? void (t.style[s] = "0") : "center" === o || "50%" === o ? (t.style[r] = "50%", void (t.style["margin-" + r] = a / -2 + "px")) : 0 <= o.indexOf("%") ? void ((o = parseInt(o)) < 50 ? (t.style[r] = o + "%", t.style["margin-" + r] = a * (o / -100) + "px") : (o = 100 - o, t.style[s] = o + "%", t.style["margin-" + s] = a * (o / -100) + "px")) : void (t.style[r] = o) } , r = function(e) { var t = e.dataset ? e.dataset.objectFit : e.getAttribute("data-object-fit") , i = e.dataset ? e.dataset.objectPosition : e.getAttribute("data-object-position"); t = t || "cover", i = i || "50% 50%"; var o = e.parentNode; (function(e) { var t = window.getComputedStyle(e, null) , i = t.getPropertyValue("position") , o = t.getPropertyValue("overflow") , n = t.getPropertyValue("display"); i && "static" !== i || (e.style.position = "relative"), "hidden" !== o && (e.style.overflow = "hidden"), n && "inline" !== n || (e.style.display = "block"), 0 === e.clientHeight && (e.style.height = "100%"), -1 === e.className.indexOf("object-fit-polyfill") && (e.className = e.className + " object-fit-polyfill") } )(o), function(e) { var t = window.getComputedStyle(e, null) , i = { "max-width": "none", "max-height": "none", "min-width": "0px", "min-height": "0px", top: "auto", right: "auto", bottom: "auto", left: "auto", "margin-top": "0px", "margin-right": "0px", "margin-bottom": "0px", "margin-left": "0px" }; for (var o in i) t.getPropertyValue(o) !== i[o] && (e.style[o] = i[o]) }(e), e.style.position = "absolute", e.style.height = "100%", e.style.width = "auto", "scale-down" === t && (e.style.height = "auto", e.clientWidth < o.clientWidth && e.clientHeight < o.clientHeight ? (n("x", e, i), n("y", e, i)) : (t = "contain", e.style.height = "100%")), "none" === t ? (e.style.width = "auto", e.style.height = "auto", n("x", e, i), n("y", e, i)) : "cover" === t && e.clientWidth > o.clientWidth || "contain" === t && e.clientWidth < o.clientWidth ? (e.style.top = "0", e.style.marginTop = "0", n("x", e, i)) : "scale-down" !== t && (e.style.width = "100%", e.style.height = "auto", e.style.left = "0", e.style.marginLeft = "0", n("y", e, i)) } , t = function(e) { if (void 0 === e) e = document.querySelectorAll("[data-object-fit]"); else if (e && e.nodeName) e = [e]; else { if ("object" != typeof e || !e.length || !e[0].nodeName) return !1; e = e } for (var t = 0; t < e.length; t++) if (e[t].nodeName) { var i = e[t].nodeName.toLowerCase(); "img" !== i || o ? "video" === i && (0 < e[t].readyState ? r(e[t]) : e[t].addEventListener("loadedmetadata", function() { r(this) })) : e[t].complete ? r(e[t]) : e[t].addEventListener("load", function() { r(this) }) } return !0 }; document.addEventListener("DOMContentLoaded", function() { t() }), window.addEventListener("resize", function() { t() }), window.objectFitPolyfill = t } }(), function(t, i) { "function" == typeof define && define.amd ? define([], i()) : "object" == typeof module && module.exports ? module.exports = i() : function e() { document && document.body ? t.zenscroll = i() : setTimeout(e, 9) }() }(this, function() { "use strict"; if (!1 !== is_smooth_scroll()) { var g = function(e) { return e && "getComputedStyle"in window && "smooth" === window.getComputedStyle(e)["scroll-behavior"] }; if ("undefined" == typeof window || !("document"in window)) return {}; var o = function(l, i, d) { var t; i = i || 999, d || 0 === d || (d = 9); function c(e) { t = e } function p() { clearTimeout(t), c(0) } function u(e) { return Math.max(0, l.getTopOf(e) - d) } function f(e, o, n) { if (p(), 0 === o || o && o < 0 || g(l.body)) l.toY(e), n && n(); else { var r = l.getY() , s = Math.max(0, e) - r , a = (new Date).getTime(); o = o || Math.min(Math.abs(s), i), function i() { c(setTimeout(function() { var e = Math.min(1, ((new Date).getTime() - a) / o) , t = Math.max(0, Math.floor(r + s * (e < .5 ? 2 * e * e : e * (4 - 2 * e) - 1))); l.toY(t), e < 1 && l.getHeight() + t < l.body.scrollHeight ? i() : (setTimeout(p, 99), n && n()) }, 9)) }() } } function h(e, t, i) { f(u(e), t, i) } return { setup: function(e, t) { return 0 !== e && !e || (i = e), 0 !== t && !t || (d = t), { defaultDuration: i, edgeOffset: d } }, to: h, toY: f, intoView: function(e, t, i) { var o = e.getBoundingClientRect().height , n = l.getTopOf(e) + o , r = l.getHeight() , s = l.getY() , a = s + r; u(e) < s || r < o + d ? h(e, t, i) : a < n + d ? f(n - r + d, t, i) : i && i() }, center: function(e, t, i, o) { f(Math.max(0, l.getTopOf(e) - l.getHeight() / 2 + (i || e.getBoundingClientRect().height / 2)), t, o) }, stop: p, moving: function() { return !!t }, getY: l.getY, getTopOf: l.getTopOf } } , n = document.documentElement , t = function() { return window.scrollY || n.scrollTop } , l = o({ body: document.scrollingElement || document.body, toY: function(e) { window.scrollTo(0, e) }, getY: t, getHeight: function() { return window.innerHeight || n.clientHeight }, getTopOf: function(e) { return e.getBoundingClientRect().top + t() - n.offsetTop } }); if (l.createScroller = function(t, e, i) { return o({ body: t, toY: function(e) { t.scrollTop = e }, getY: function() { return t.scrollTop }, getHeight: function() { return Math.min(t.clientHeight, window.innerHeight || n.clientHeight) }, getTopOf: function(e) { return e.offsetTop } }, e, i) } , "addEventListener"in window && !window.noZensmooth && !g(document.body)) { var d = "history"in window && "pushState"in history , c = d && "scrollRestoration"in history; c && (history.scrollRestoration = "auto"), window.addEventListener("load", function() { c && (setTimeout(function() { history.scrollRestoration = "manual" }, 9), window.addEventListener("popstate", function(e) { e.state && "zenscrollY"in e.state && l.toY(e.state.zenscrollY) }, !1)), window.location.hash && setTimeout(function() { var e = l.setup().edgeOffset; if (e) { var t = document.getElementById(window.location.href.split("#")[1]); if (t) { var i = Math.max(0, l.getTopOf(t) - e) , o = l.getY() - i; 0 <= o && o < 9 && window.scrollTo(0, i) } } }, 9) }, !1); var p = new RegExp("(^|\\s)noZensmooth(\\s|$)"); window.addEventListener("click", function(e) { for (var t = e.target; t && "A" !== t.tagName; ) t = t.parentNode; if (!(!t || 1 !== e.which || e.shiftKey || e.metaKey || e.ctrlKey || e.altKey)) { if (c) { var i = history.state && "object" == typeof history.state ? history.state : {}; i.zenscrollY = l.getY(); try { history.replaceState(i, "") } catch (e) {} } var o = t.getAttribute("href") || ""; if (0 === o.indexOf("#") && !p.test(t.className)) { var n = 0 , r = document.getElementById(o.substring(1)); if ("#" !== o) { if (!r) return; n = l.getTopOf(r) } e.preventDefault(); var s = function() { window.location = o } , a = l.setup().edgeOffset; a && (n = Math.max(0, n - a), d && (s = function() { history.pushState({}, "", o) } )), l.toY(n, null, s) } } }, !1) } return l } }); var jupiterx = { components: {}, utils: {} }; jupiterx.components.Base = Class.extend({ setElements: function() { this.elements = {}, this.elements.window = window, this.elements.$window = $(window), this.elements.$document = $(document), this.elements.$body = $("body"), this.elements.$site = $(".jupiterx-site") }, setSettings: function() { this.settings = {}, this.settings.windowWidth = this.elements.$window.outerWidth() }, bindEvents: function() {}, init: function() { this.setElements(), this.setSettings(), this.bindEvents() } }), window.jupiterx = jupiterx, function(r) { var e = window.jupiterx || {}; e.utils = function() { this.resize = function() { var t = e.pubsub; r(window).on("resize", _.throttle(function() { var e = r(this).outerWidth(); t.publish("resize", e) }, 150)) } , this.scroll = function() { var t = e.pubsub , i = r("[data-jupiterx-scroll]") , o = _.defaults(i.data("jupiterxScroll") || {}, { offset: 1e3 }); r(window).on("scroll", _.throttle(function() { var e = r(this).scrollTop(); if (t.publish("scroll", e), !(_.size(i) < 1)) return e > o.offset ? i.addClass("jupiterx-scrolled") : void i.removeClass("jupiterx-scrolled") }, 100)) } , this.scrollSmooth = function() { r(document).on("click", "[data-jupiterx-scroll-target]", function(e) { var t = r(this).data("jupiterxScrollTarget") , i = "smooth"; e.preventDefault(), !1 === is_smooth_scroll() && (i = "auto"), _.isNumber(t) ? window.scrollTo({ top: t, left: 0, behavior: i }) : window.scrollTo({ top: r(t).offset().top, left: 0, behavior: i }) }) } , this.scrollDirection = function() { var e = this.pubsub , t = r("[data-jupiterx-scroll-direction]") , i = updwn({ speed: 50 }); i.up(function() { e.publish("scroll-up"), _.size(t) < 1 || (t.addClass("jupiterx-scroll-up"), t.removeClass("jupiterx-scroll-down")) }), i.down(function() { e.publish("scroll-down"), _.size(t) < 1 || (t.addClass("jupiterx-scroll-down"), t.removeClass("jupiterx-scroll-up")) }) } , this.alterClass = function(e, t, i) { var o = e; if (-1 === t.indexOf("*")) return o.removeClass(t), i ? o.addClass(i) : o; var n = new RegExp("\\s" + t.replace(/\*/g, "[A-Za-z0-9-_]+").split(" ").join("\\s|\\s") + "\\s","g"); return o.each(function(e, t) { for (var i = " " + t.className + " "; n.test(i); ) i = i.replace(n, " "); t.className = r.trim(i) }), i ? o.addClass(i) : o } , this.onMobile = function() { return jQuery(window).width() <= 575.98 } , this.onTablet = function() { var e = jQuery(window).width(); return 575.98 < e && e <= 767.98 } , this.onDesktop = function() { return 767.98 < jQuery(window).width() } , this.init = function() { this.resize(), this.scroll(), this.scrollSmooth() } , this.init() } }(jQuery), function(a) { var e = window.jupiterx || {}; e.components.Header = e.components.Base.extend({ setElements: function() { this._super(); var e = this.elements; e.header = ".jupiterx-header", e.$header = a(e.header), e.$navbar = e.$header.find(".navbar-nav"), e.$collapseMenu = e.$header.find(".navbar-collapse"), e.$dropdownToggler = e.$navbar.find(".dropdown-toggle-icon"), e.$window = a(window), e.$inPageMenuItems = e.$navbar.find('a[href^="#"]') }, setSettings: function() { this._super(); var e = this.settings , t = this.elements.$header.data("jupiterxSettings"); e.breakpoint = t.breakpoint, e.template = t.template, e.stickyTemplate = t.stickyTemplate, e.behavior = t.behavior, e.position = t.position || "top", e.offset = parseInt(t.offset) + this.tbarHeight(), e.overlap = t.overlap, e.headerHeight = this.elements.$header.height() }, bindEvents: function() { var t = this , i = this.elements , o = this.settings; t.focusToggler(), t.blurToggler(), t.setBehavior(), t.mobileMenuScroll(), i.$dropdownToggler.on("click", function(e) { t.initNavbarDropdown(e), t.setHeight() }), e.pubsub.subscribe("resize", function(e) { t.setBehavior(), t.setHeight(), e > o.breakpoint && i.$navbar.find(".dropdown-menu").removeClass("show") }), e.pubsub.subscribe("scroll", function(e) { t.setBehaviorSticky(e) }), t.responsiveMenuAutoClose(), a(document).on("click", "a.jupiterx-smooth-scroll, .jupiterx-smooth-scroll a", function(e) { t.handleSmoothScrollElements(e, a(this)) }) }, lastItemDepth: function(e, t) { var i = e; if ($li = t.find("> li:last-child"), $li.hasClass("dropdown")) i = i < (o = this.lastItemDepth(e + 1, $li.find(".dropdown-menu"))) ? o : i; else if (t.hasClass("dropdown-menu")) { var o; i = i < (o = e + 1) ? o : i } return i }, lastItemDepths: function(e) { for (var t = [], i = 0; i < e.find("> li").length; i++) $li = e.find("> li:nth-of-type(" + (i + 1) + ")"), $li.hasClass("dropdown") ? t[i] = this.lastItemDepth(1, $li.find(".dropdown-menu")) : t[i] = 1; return t }, focusToggler: function() { a(".jupiterx-site-navbar").find("a").on("focus", function() { a(".dropdown.hover, ul.dropdown-menu.hover").removeClass("hover show"), a(this).parents("ul, li").addClass("hover show focus"), a(this).next("ul.dropdown-menu").addClass("hover show focus") }) }, blurToggler: function() { var n = this; a(".jupiterx-nav-primary").find("a").on("blur", function() { for (var e = a(this), t = n.lastItemDepths(a(".jupiterx-nav-primary")), i = 0, o = !0; !e.hasClass("jupiterx-nav-primary"); ) "li" === e.prop("tagName").toLowerCase() && (o = o && -1 === e.next().index(), i++, e.parent().hasClass("jupiterx-nav-primary") && i === t[e.index()] && o && a(".dropdown.hover, ul.dropdown-menu.hover").removeClass("hover show")), e = e.parent() }) }, responsiveMenuAutoClose: function() { var e = this.elements.$collapseMenu , t = e.find('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])') , i = t[t.length - 1]; a(i).on("blur", function() { e.removeClass("show") }) }, setHeight: function() { var e = this.elements.$header.find(".navbar-collapse"); if (e.length) { var t = this.elements.$navbar; e.css("max-height", document.documentElement.clientHeight - e.offset().top + window.pageYOffset - parseInt(t.css("margin-top"))) } }, mobileMenuScroll: function() { for (var i = document.getElementsByClassName("navbar-collapse"), o = null, n = 0; n < i.length; n++) i[n].addEventListener("touchstart", function(e) { 1 === e.targetTouches.length && (o = e.targetTouches[0].clientY) }, !1), i[n].addEventListener("touchmove", function(e) { if (1 === e.targetTouches.length) { var t = e.targetTouches[0].clientY - o; 0 === i[n].scrollTop && 0 < t && e.cancelable && e.preventDefault(), i[n].scrollHeight - i[n].scrollTop <= i[n].clientHeight && t < 0 && e.cancelable && e.preventDefault() } }, !1) }, setBehavior: function() { this.setBehaviorFixed(), this.setBehaviorSticky() }, setBehaviorFixed: function() { "fixed" === this.settings.behavior && this.setSiteSpacing() }, setBehaviorSticky: function(e) { var t = this.elements , i = this.settings; if ("sticky" === i.behavior && void 0 !== e) { if (e > i.headerHeight) { t.$body.addClass("jupiterx-header-stick"), this.setSiteSpacing(); var o = a(".jupiterx-header.jupiterx-header-sticky-custom.jupiterx-header-custom > .elementor:last-of-type:not(:first-of-type)"); o.length && 0 < o.height() && t.$header.height(o.height()) } else t.$body.removeClass("jupiterx-header-stick"), this.clearSiteSpacing(), t.$header.attr("style", function(e, t) { return t && t.replace(/height[^;]+;?/g, "") }); e > i.offset ? t.$body.addClass("jupiterx-header-sticked") : t.$body.removeClass("jupiterx-header-sticked") } }, setSiteSpacing: function() { var e = this.elements , t = this.settings; if (this.isOverlap()) { if (this.clearSiteSpacing(), "fixed" === t.behavior && 0 < a(".jupiterx-tbar").length) { var i = window.jupiterx.utils.onMobile() ? "" : this.tbarHeight() || ""; i -= this.getJetScrollNavSectionOffset(), e.$site.css("padding-top", i) } } else { var o = e.$header; if ("fixed" === t.behavior && "bottom" === t.position) e.$site.css("padding-" + t.position, o.outerHeight()); else if ("sticky" === t.behavior) { var n = 0 , r = a(".jupiterx-header.jupiterx-header-sticky-custom.jupiterx-header-custom > .elementor:first-of-type:not(:last-of-type)"); n = r.length ? r.outerHeight() : o.outerHeight(), e.$site.css("padding-" + t.position, n) } else e.$header.css("position", "fixed"), e.$site.css("padding-" + t.position, o.outerHeight() + this.tbarHeight()) } }, getJetScrollNavSectionOffset: function() { if ($jetScroll = a(".jet-scroll-navigation"), 0 === $jetScroll.length) return 0; var e = $jetScroll.find(".jet-scroll-navigation__item"); if (0 === e.length) return 0; var t = e.data("anchor"); return t && 0 !== a("#" + t).length ? a("#" + t).offset().top : 0 }, clearSiteSpacing: function() { this.elements.$site.css("padding-" + this.settings.position, "") }, isOverlap: function() { var e = this.elements.$window.outerWidth() , t = this.settings.overlap; if (!t) return !1; var i = 768 < e && -1 < t.indexOf("desktop") , o = e < 767.98 && 576 < e && -1 < t.indexOf("tablet") , n = e < 575.98 && -1 < t.indexOf("mobile"); return i || o || n }, initNavbarDropdown: function(e) { if (e.preventDefault(), e.stopPropagation(), !(this.elements.$window.outerWidth() > this.settings.breakpoint)) return a(e.target).closest(".menu-item").hasClass("focus") ? (a(e.target).closest(".menu-item").removeClass("focus"), void a(e.target).closest(".menu-item").find("> .dropdown-menu").removeClass("focus")) : void a(e.target).closest(".menu-item").find("> .dropdown-menu").toggleClass("show") }, inPageMenuClick: function() { var n, r = this, s = this.getHeaderSettings(); this.elements.$navbar.on("click", function(e) { n = e.target.getAttribute("href") || ""; var t = null; try { t = new window.URL(a(e.target).prop("href")), a(e.target).parents("li").addClass("active") } catch (e) { return } if ((t.href.replace(t.hash, "") === window.location.href.replace(window.location.hash, "") || -1 !== n.search(/^#/)) && -1 !== t.hash.search(/^#/)) { n = t.hash, e.preventDefault(); var i = a(n); if (0 === i.length) return a("#jupiterxSiteNavbar").hasClass("show") && r.isBelowDesktop() && a("#jupiterxSiteNavbar").collapse("hide"), void window.history.pushState(null, null, t.hash); var o = i.offset().top; if (o -= r.getAdminbarHeight(), o -= r.getBodyBorderWidth(), s && "sticky" === s.behavior && s.overlap ? o -= r.isHeaderSticked() ? r.tbarHeight() : 2 * r.tbarHeight() : s && !s.behavior ? o -= r.isHeaderSticked() ? r.tbarHeight() : 2 * r.tbarHeight() : o -= r.tbarHeight(), (s && "fixed" === s.behavior && "top" === s.position || s && "sticky" === s.behavior) && (o -= r.getHeaderHeight()), !1 !== is_smooth_scroll()) return a("html, body").stop().animate({ scrollTop: o }, 500, "swing", function() { a("#jupiterxSiteNavbar").hasClass("show") && r.isBelowDesktop() && a("#jupiterxSiteNavbar").collapse("hide"), window.history.pushState(null, null, t.hash) }), !1; window.scroll({ top: o, behavior: "auto" }) } }) }, inPageMenuScroll: function() { var e = this; e.elements.$inPageMenuItems.length && (e.activateMenuItem(), window.addEventListener("scroll", _.throttle(function() { e.activateMenuItem() }, 200))) }, activateMenuItem: function() { var i, o, n = this, r = window.pageYOffset; n.elements.$inPageMenuItems.each(function(e, t) { return t.hash < 1 || (!(o = document.querySelector('[id="' + t.hash.replace("#", "") + '"]')) || (Math.abs(a(o).offset().top + a(o).outerHeight() - a(document).height()) < 10 && Math.abs(a(window).scrollTop() + window.innerHeight - a(document).height()) < 10 ? (i = t.hash, !1) : r + 10 >= a(o).offset().top - n.getHeaderHeight() - n.getAdminbarHeight() ? (i = t.hash, !0) : void 0)) }), n.elements.$inPageMenuItems.removeClass("active"), n.elements.$navbar.find('a[href="' + i + '"]').addClass("active") }, getHeaderHeight: function() { var e = a(".jupiterx-header"); if (0 === e.length) return 0; var t = e.data("jupiterx-settings").behavior; return "fixed" === t || "sticky" === t || window.pageYOffset < e.height() ? e.height() : 0 }, hasCustomStickyHeader: function() { if (0 === a(".jupiterx-header.jupiterx-header-custom").length) return !1; var e = this.getHeaderSettings(); return !!e && (!(!e.behavior || "sticky" !== e.behavior) && (!e.stickyTemplate || e.stickyTemplate !== e.template)) }, getHeaderSettings: function() { return a(".jupiterx-header").data("jupiterx-settings") }, getCustomStickyHeaderHeight: function() { if (!this.hasCustomStickyHeader()) return 0; var e = a(".jupiterx-header-custom .elementor:last-of-type"); return 0 === e.length ? 0 : e.outerHeight() }, getBodyBorderWidth: function() { var e = a(".jupiterx-site-body-border"); if (0 === e.length) return 0; var t = e.css("border-width"); return t ? parseInt(t.replace("px", "")) : 0 }, getAdminbarHeight: function() { var e = a("#wpadminbar"); return e.length ? e.height() : 0 }, tbarHeight: function() { var e = a(".jupiterx-tbar"); return "none" === e.css("display") ? 0 : e.length ? e.outerHeight() : 0 }, isBelowDesktop: function() { return window.jupiterx.utils.onMobile() || window.jupiterx.utils.onTablet() }, handlePageLoadScroll: function() { var i = this , o = this.getHeaderSettings(); a(document).ready(function() { if (!(window.jupiterx.utils.onMobile() && a("body").hasClass("jupiterx-header-mobile-behavior-off") || window.jupiterx.utils.onTablet() && a("body").hasClass("jupiterx-header-tablet-behavior-off"))) { var e = a(window.location.hash); if (0 !== e.length) { var t = e.offset().top; t -= i.getAdminbarHeight(), t -= i.getBodyBorderWidth(), o && "sticky" === o.behavior && o.overlap ? t -= i.isHeaderSticked() ? i.tbarHeight() : 2 * i.tbarHeight() : o && !o.behavior ? t -= i.isTbarFixed() ? i.tbarHeight() : 2 * i.tbarHeight() : t -= i.tbarHeight(), i.hasCustomStickyHeader() ? t -= i.getCustomStickyHeaderHeight() : (o && "fixed" === o.behavior && "top" === o.position || o && "sticky" === o.behavior) && (t -= i.getHeaderHeight()), a("#jupiterxSiteNavbar").find("a").each(function(e, t) { window.location.hash == "#" + a(t).attr("href").split("#")[1] && (a(t).addClass("active"), a(t).parent().addClass("active")) }), !1 !== is_smooth_scroll() ? a("html, body").stop().animate({ scrollTop: t }, 500, "swing") : window.scroll({ top: t, behavior: "auto" }) } } }) }, handleSmoothScrollElements: function(e, t) { var i = this , o = i.getHeaderSettings() , n = t.attr("href") || "" , r = null; try { r = new window.URL(t.prop("href")) } catch (e) { return } if ((r.href.replace(r.hash, "") === window.location.href.replace(window.location.hash, "") || -1 !== n.search(/^#/)) && -1 !== r.hash.search(/^#/)) { n = r.hash, e.preventDefault(); var s = a(n).offset().top; return s -= i.getAdminbarHeight(), s -= i.getBodyBorderWidth(), o && "sticky" === o.behavior && o.overlap ? s -= i.isHeaderSticked() ? i.tbarHeight() : 2 * i.tbarHeight() : o && !o.behavior ? s -= i.isHeaderSticked() ? i.tbarHeight() : 2 * i.tbarHeight() : s -= i.tbarHeight(), i.hasCustomStickyHeader() ? s -= i.getCustomStickyHeaderHeight() : (o && "fixed" === o.behavior && "top" === o.position || o && "sticky" === o.behavior) && (s -= i.getHeaderHeight()), window.elementorFrontend && window.elementorFrontend.hooks.addFilter("frontend/handlers/menu_anchor/scroll_top_distance", function() { return s }), a("html, body").stop().animate({ scrollTop: s }, 500, "swing", function() { window.history.pushState(null, null, r.hash) }), !1 } }, isHeaderSticked: function() { return 0 < a(".jupiterx-header-sticked").length }, isTbarFixed: function() { return "fixed" === a(".jupiterx-tbar").css("position") }, init: function() { this.handlePageLoadScroll(), this.setElements(), this.elements.$header.length && (this.setSettings(), this.bindEvents(), this.inPageMenuClick(), this.inPageMenuScroll()) } }) }(jQuery), jQuery(document).ready(function(t) { var e = t(".jupiterx-widget.widget_nav_menu").find(".current_page_item, .current-cat"); e.length && e.parents(".sub-menu, .children").slideToggle().parents(".menu-item-has-children, .cat-parent").toggleClass("jupiterx-icon-plus jupiterx-icon-minus"), t(document).on("click", ".jupiterx-widget .menu-item-has-children, .jupiterx-widget .cat-parent", function(e) { e.stopPropagation(), "A" !== e.target.nodeName && t(this).toggleClass("jupiterx-icon-plus jupiterx-icon-minus").find("> ul").slideToggle() }) }), jQuery(document).ready(function(n) { n(".jupiterx-footer-fixed").each(function(e, t) { var i, o = n(t); i = n("", { class: "jupiterx-footer-dummy" }), o.after(i), n(window).resize(function() { i && i.height(o.outerHeight()) }), i.height(o.outerHeight()) }), n("body").is(".elementor-editor-active.jupiterx-header-overlapped") && n("header.jupiterx-header").length && (n("body").prepend('
    Hide Header
    '), n(".jupiterx-header-overlapped header").addClass("jupiterx-disableable-overlapped"), n(".jupiterx-toggle-overlapped").on("click", function() { var e = n(this).find("span") , t = n(this).find("i"); n(".jupiterx-header-overlapped header").toggle(), t.hasClass("jupiterx-icon-eye-slash") ? (e.text("Show Header"), t.removeClass("jupiterx-icon-eye-slash").addClass("jupiterx-icon-eye-regular")) : (e.text("Hide Header"), t.removeClass("jupiterx-icon-eye-regular").addClass("jupiterx-icon-eye-slash")) })) }), jQuery(document).ready(function() { var e = window.jupiterx || {}; e.initComponents = function() { for (component in this.components) new this.components[component] } , e.init = function() { this.pubsub = new PubSub, this.pubsub.publish("init"), this.utils = new this.utils, this.initComponents() } , e.init() }), void 0 !== window.jQuery && ($ = window.jQuery), function(e) { if (void 0 === e) throw new TypeError("Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript."); var t = e.fn.jquery.split(" ")[0].split("."); if (t[0] < 2 && t[1] < 9 || 1 === t[0] && 9 === t[1] && t[2] < 1 || 4 <= t[0]) throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0") }($); var Util = function(o) { var t = "transitionend"; function e(e) { var t = this , i = !1; return o(this).one(l.TRANSITION_END, function() { i = !0 }), setTimeout(function() { i || l.triggerTransitionEnd(t) }, e), this } var l = { TRANSITION_END: "bsTransitionEnd", getUID: function(e) { for (; e += ~~(1e6 * Math.random()), document.getElementById(e); ) ; return e }, getSelectorFromElement: function(e) { var t = e.getAttribute("data-target"); t && "#" !== t || (t = e.getAttribute("href") || ""); try { return 0 < o(document).find(t).length ? t : null } catch (e) { return null } }, getTransitionDurationFromElement: function(e) { if (!e) return 0; var t = o(e).css("transition-duration"); return parseFloat(t) ? (t = t.split(",")[0], 1e3 * parseFloat(t)) : 0 }, reflow: function(e) { return e.offsetHeight }, triggerTransitionEnd: function(e) { o(e).trigger(t) }, supportsTransitionEnd: function() { return Boolean(t) }, isElement: function(e) { return (e[0] || e).nodeType }, typeCheckConfig: function(e, t, i) { for (var o in i) if (Object.prototype.hasOwnProperty.call(i, o)) { var n = i[o] , r = t[o] , s = r && l.isElement(r) ? "element" : (a = r, {}.toString.call(a).match(/\s([a-z]+)/i)[1].toLowerCase()); if (!new RegExp(n).test(s)) throw new Error(e.toUpperCase() + ': Option "' + o + '" provided type "' + s + '" but expected type "' + n + '".') } var a } }; return o.fn.emulateTransitionEnd = e, o.event.special[l.TRANSITION_END] = { bindType: t, delegateType: t, handle: function(e) { if (o(e.target).is(this)) return e.handleObj.handler.apply(this, arguments) } }, l }($); function _objectSpread(t) { for (var e = 1; e < arguments.length; e++) { var i = null != arguments[e] ? arguments[e] : {} , o = Object.keys(i); "function" == typeof Object.getOwnPropertySymbols && (o = o.concat(Object.getOwnPropertySymbols(i).filter(function(e) { return Object.getOwnPropertyDescriptor(i, e).enumerable }))), o.forEach(function(e) { _defineProperty(t, e, i[e]) }) } return t } function _defineProperty(e, t, i) { return t in e ? Object.defineProperty(e, t, { value: i, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = i, e } function _defineProperties(e, t) { for (var i = 0; i < t.length; i++) { var o = t[i]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value"in o && (o.writable = !0), Object.defineProperty(e, o.key, o) } } function _createClass(e, t, i) { return t && _defineProperties(e.prototype, t), i && _defineProperties(e, i), e } !function(e, t) { "object" == typeof exports && "undefined" != typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define(t) : e.Popper = t() }(this, function() { "use strict"; for (var e = "undefined" != typeof window && "undefined" != typeof document, t = ["Edge", "Trident", "Firefox"], i = 0, o = 0; o < t.length; o += 1) if (e && 0 <= navigator.userAgent.indexOf(t[o])) { i = 1; break } var r = e && window.Promise ? function(e) { var t = !1; return function() { t || (t = !0, window.Promise.resolve().then(function() { t = !1, e() })) } } : function(e) { var t = !1; return function() { t || (t = !0, setTimeout(function() { t = !1, e() }, i)) } } ; function s(e) { return e && "[object Function]" === {}.toString.call(e) } function b(e, t) { if (1 !== e.nodeType) return []; var i = getComputedStyle(e, null); return t ? i[t] : i } function f(e) { return "HTML" === e.nodeName ? e : e.parentNode || e.host } function g(e) { if (!e) return document.body; switch (e.nodeName) { case "HTML": case "BODY": return e.ownerDocument.body; case "#document": return e.body } var t = b(e) , i = t.overflow , o = t.overflowX , n = t.overflowY; return /(auto|scroll|overlay)/.test(i + n + o) ? e : g(f(e)) } var n = e && !(!window.MSInputMethodContext || !document.documentMode) , a = e && /MSIE 10/.test(navigator.userAgent); function m(e) { return 11 === e ? n : 10 === e ? a : n || a } function w(e) { if (!e) return document.documentElement; for (var t = m(10) ? document.body : null, i = e.offsetParent; i === t && e.nextElementSibling; ) i = (e = e.nextElementSibling).offsetParent; var o = i && i.nodeName; return o && "BODY" !== o && "HTML" !== o ? -1 !== ["TD", "TABLE"].indexOf(i.nodeName) && "static" === b(i, "position") ? w(i) : i : e ? e.ownerDocument.documentElement : document.documentElement } function l(e) { return null !== e.parentNode ? l(e.parentNode) : e } function h(e, t) { if (!(e && e.nodeType && t && t.nodeType)) return document.documentElement; var i = e.compareDocumentPosition(t) & Node.DOCUMENT_POSITION_FOLLOWING , o = i ? e : t , n = i ? t : e , r = document.createRange(); r.setStart(o, 0), r.setEnd(n, 0); var s = r.commonAncestorContainer; if (e !== s && t !== s || o.contains(n)) return function(e) { var t = e.nodeName; return "BODY" !== t && ("HTML" === t || w(e.firstElementChild) === e) }(s) ? s : w(s); var a = l(e); return a.host ? h(a.host, t) : h(e, l(t).host) } function v(e, t) { var i = "top" === (1 < arguments.length && void 0 !== t ? t : "top") ? "scrollTop" : "scrollLeft" , o = e.nodeName; if ("BODY" !== o && "HTML" !== o) return e[i]; var n = e.ownerDocument.documentElement; return (e.ownerDocument.scrollingElement || n)[i] } function p(e, t) { var i = "x" === t ? "Left" : "Top" , o = "Left" == i ? "Right" : "Bottom"; return parseFloat(e["border" + i + "Width"], 10) + parseFloat(e["border" + o + "Width"], 10) } function d(e, t, i, o) { return Math.max(t["offset" + e], t["scroll" + e], i["client" + e], i["offset" + e], i["scroll" + e], m(10) ? i["offset" + e] + o["margin" + ("Height" === e ? "Top" : "Left")] + o["margin" + ("Height" === e ? "Bottom" : "Right")] : 0) } function y() { var e = document.body , t = document.documentElement , i = m(10) && getComputedStyle(t); return { height: d("Height", e, t, i), width: d("Width", e, t, i) } } var c = function(e, t, i) { return t && u(e.prototype, t), i && u(e, i), e }; function u(e, t) { for (var i = 0; i < t.length; i++) { var o = t[i]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value"in o && (o.writable = !0), Object.defineProperty(e, o.key, o) } } function k(e, t, i) { return t in e ? Object.defineProperty(e, t, { value: i, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = i, e } var x = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var i = arguments[t]; for (var o in i) Object.prototype.hasOwnProperty.call(i, o) && (e[o] = i[o]) } return e } ; function T(e) { return x({}, e, { right: e.left + e.width, bottom: e.top + e.height }) } function C(e) { var t = {}; try { if (m(10)) { t = e.getBoundingClientRect(); var i = v(e, "top") , o = v(e, "left"); t.top += i, t.left += o, t.bottom += i, t.right += o } else t = e.getBoundingClientRect() } catch (e) {} var n = { left: t.left, top: t.top, width: t.right - t.left, height: t.bottom - t.top } , r = "HTML" === e.nodeName ? y() : {} , s = r.width || e.clientWidth || n.right - n.left , a = r.height || e.clientHeight || n.bottom - n.top , l = e.offsetWidth - s , d = e.offsetHeight - a; if (l || d) { var c = b(e); l -= p(c, "x"), d -= p(c, "y"), n.width -= l, n.height -= d } return T(n) } function S(e, t, i) { var o = 2 < arguments.length && void 0 !== i && i , n = m(10) , r = "HTML" === t.nodeName , s = C(e) , a = C(t) , l = g(e) , d = b(t) , c = parseFloat(d.borderTopWidth, 10) , p = parseFloat(d.borderLeftWidth, 10); o && "HTML" === t.nodeName && (a.top = Math.max(a.top, 0), a.left = Math.max(a.left, 0)); var u = T({ top: s.top - a.top - c, left: s.left - a.left - p, width: s.width, height: s.height }); if (u.marginTop = 0, u.marginLeft = 0, !n && r) { var f = parseFloat(d.marginTop, 10) , h = parseFloat(d.marginLeft, 10); u.top -= c - f, u.bottom -= c - f, u.left -= p - h, u.right -= p - h, u.marginTop = f, u.marginLeft = h } return (n && !o ? t.contains(l) : t === l && "BODY" !== l.nodeName) && (u = function(e, t, i) { var o = 2 < arguments.length && void 0 !== i && i , n = v(t, "top") , r = v(t, "left") , s = o ? -1 : 1; return e.top += n * s, e.bottom += n * s, e.left += r * s, e.right += r * s, e }(u, t)), u } function _(e) { if (!e || !e.parentElement || m()) return document.documentElement; for (var t = e.parentElement; t && "none" === b(t, "transform"); ) t = t.parentElement; return t || document.documentElement } function $(e, t, i, o, n) { var r = 4 < arguments.length && void 0 !== n && n , s = { top: 0, left: 0 } , a = r ? _(e) : h(e, t); if ("viewport" === o) s = function(e, t) { var i = 1 < arguments.length && void 0 !== t && t , o = e.ownerDocument.documentElement , n = S(e, o) , r = Math.max(o.clientWidth, window.innerWidth || 0) , s = Math.max(o.clientHeight, window.innerHeight || 0) , a = i ? 0 : v(o) , l = i ? 0 : v(o, "left"); return T({ top: a - n.top + n.marginTop, left: l - n.left + n.marginLeft, width: r, height: s }) }(a, r); else { var l = void 0; "scrollParent" === o ? "BODY" === (l = g(f(t))).nodeName && (l = e.ownerDocument.documentElement) : l = "window" === o ? e.ownerDocument.documentElement : o; var d = S(l, a, r); if ("HTML" !== l.nodeName || function e(t) { var i = t.nodeName; return "BODY" !== i && "HTML" !== i && ("fixed" === b(t, "position") || e(f(t))) }(a)) s = d; else { var c = y() , p = c.height , u = c.width; s.top += d.top - d.marginTop, s.bottom = p + d.top, s.left += d.left - d.marginLeft, s.right = u + d.left } } return s.left += i, s.top += i, s.right -= i, s.bottom -= i, s } function j(e, t, o, i, n, r) { var s = 5 < arguments.length && void 0 !== r ? r : 0; if (-1 === e.indexOf("auto")) return e; var a = $(o, i, s, n) , l = { top: { width: a.width, height: t.top - a.top }, right: { width: a.right - t.right, height: a.height }, bottom: { width: a.width, height: a.bottom - t.bottom }, left: { width: t.left - a.left, height: a.height } } , d = Object.keys(l).map(function(e) { return x({ key: e }, l[e], { area: function(e) { return e.width * e.height }(l[e]) }) }).sort(function(e, t) { return t.area - e.area }) , c = d.filter(function(e) { var t = e.width , i = e.height; return t >= o.clientWidth && i >= o.clientHeight }) , p = 0 < c.length ? c[0].key : d[0].key , u = e.split("-")[1]; return p + (u ? "-" + u : "") } function O(e, t, i, o) { var n = 3 < arguments.length && void 0 !== o ? o : null; return S(i, n ? _(t) : h(t, i), n) } function E(e) { var t = getComputedStyle(e) , i = parseFloat(t.marginTop) + parseFloat(t.marginBottom) , o = parseFloat(t.marginLeft) + parseFloat(t.marginRight); return { width: e.offsetWidth + o, height: e.offsetHeight + i } } function A(e) { var t = { left: "right", right: "left", bottom: "top", top: "bottom" }; return e.replace(/left|right|bottom|top/g, function(e) { return t[e] }) } function H(e, t, i) { i = i.split("-")[0]; var o = E(e) , n = { width: o.width, height: o.height } , r = -1 !== ["right", "left"].indexOf(i) , s = r ? "top" : "left" , a = r ? "left" : "top" , l = r ? "height" : "width" , d = r ? "width" : "height"; return n[s] = t[s] + t[l] / 2 - o[l] / 2, n[a] = i === a ? t[a] - o[d] : t[A(a)], n } function P(e, t) { return Array.prototype.find ? e.find(t) : e.filter(t)[0] } function D(e, i, t) { return (void 0 === t ? e : e.slice(0, function(e, t, i) { if (Array.prototype.findIndex) return e.findIndex(function(e) { return e[t] === i }); var o = P(e, function(e) { return e[t] === i }); return e.indexOf(o) }(e, "name", t))).forEach(function(e) { e.function && console.warn("`modifier.function` is deprecated, use `modifier.fn`!"); var t = e.function || e.fn; e.enabled && s(t) && (i.offsets.popper = T(i.offsets.popper), i.offsets.reference = T(i.offsets.reference), i = t(i, e)) }), i } function M(e, i) { return e.some(function(e) { var t = e.name; return e.enabled && t === i }) } function L(e) { for (var t = [!1, "ms", "Webkit", "Moz", "O"], i = e.charAt(0).toUpperCase() + e.slice(1), o = 0; o < t.length; o++) { var n = t[o] , r = n ? "" + n + i : e; if (void 0 !== document.body.style[r]) return r } return null } function I(e) { var t = e.ownerDocument; return t ? t.defaultView : window } function N(e, t, i, o) { i.updateBound = o, I(e).addEventListener("resize", i.updateBound, { passive: !0 }); var n = g(e); return function e(t, i, o, n) { var r = "BODY" === t.nodeName , s = r ? t.ownerDocument.defaultView : t; s.addEventListener(i, o, { passive: !0 }), r || e(g(s.parentNode), i, o, n), n.push(s) }(n, "scroll", i.updateBound, i.scrollParents), i.scrollElement = n, i.eventsEnabled = !0, i } function F() { this.state.eventsEnabled && (cancelAnimationFrame(this.scheduleUpdate), this.state = function(e, t) { return I(e).removeEventListener("resize", t.updateBound), t.scrollParents.forEach(function(e) { e.removeEventListener("scroll", t.updateBound) }), t.updateBound = null, t.scrollParents = [], t.scrollElement = null, t.eventsEnabled = !1, t }(this.reference, this.state)) } function z(e) { return "" !== e && !isNaN(parseFloat(e)) && isFinite(e) } function W(i, o) { Object.keys(o).forEach(function(e) { var t = ""; -1 !== ["width", "height", "top", "right", "bottom", "left"].indexOf(e) && z(o[e]) && (t = "px"), i.style[e] = o[e] + t }) } function B(e, t, i) { var o = P(e, function(e) { return e.name === t }) , n = !!o && e.some(function(e) { return e.name === i && e.enabled && e.order < o.order }); if (!n) { var r = "`" + t + "`" , s = "`" + i + "`"; console.warn(s + " modifier is required by " + r + " modifier in order to work, be sure to include it before " + r + "!") } return n } var q = ["auto-start", "auto", "auto-end", "top-start", "top", "top-end", "right-start", "right", "right-end", "bottom-end", "bottom", "bottom-start", "left-end", "left", "left-start"] , R = q.slice(3); function Y(e, t) { var i = 1 < arguments.length && void 0 !== t && t , o = R.indexOf(e) , n = R.slice(o + 1).concat(R.slice(0, o)); return i ? n.reverse() : n } var U = "flip" , Q = "clockwise" , V = "counterclockwise"; function X(e, n, r, t) { var s = [0, 0] , a = -1 !== ["right", "left"].indexOf(t) , i = e.split(/(\+|\-)/).map(function(e) { return e.trim() }) , o = i.indexOf(P(i, function(e) { return -1 !== e.search(/,|\s/) })); i[o] && -1 === i[o].indexOf(",") && console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead."); var l = /\s*,\s*|\s+/ , d = -1 !== o ? [i.slice(0, o).concat([i[o].split(l)[0]]), [i[o].split(l)[1]].concat(i.slice(o + 1))] : [i]; return (d = d.map(function(e, t) { var i = (1 === t ? !a : a) ? "height" : "width" , o = !1; return e.reduce(function(e, t) { return "" === e[e.length - 1] && -1 !== ["+", "-"].indexOf(t) ? (e[e.length - 1] = t, o = !0, e) : o ? (e[e.length - 1] += t, o = !1, e) : e.concat(t) }, []).map(function(e) { return function(e, t, i, o) { var n = e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/) , r = +n[1] , s = n[2]; if (!r) return e; if (0 !== s.indexOf("%")) return "vh" !== s && "vw" !== s ? r : ("vh" === s ? Math.max(document.documentElement.clientHeight, window.innerHeight || 0) : Math.max(document.documentElement.clientWidth, window.innerWidth || 0)) / 100 * r; var a = void 0; switch (s) { case "%p": a = i; break; case "%": case "%r": default: a = o } return T(a)[t] / 100 * r }(e, i, n, r) }) })).forEach(function(i, o) { i.forEach(function(e, t) { z(e) && (s[o] += e * ("-" === i[t - 1] ? -1 : 1)) }) }), s } var K = { placement: "bottom", positionFixed: !1, eventsEnabled: !0, removeOnDestroy: !1, onCreate: function() {}, onUpdate: function() {}, modifiers: { shift: { order: 100, enabled: !0, fn: function(e) { var t = e.placement , i = t.split("-")[0] , o = t.split("-")[1]; if (o) { var n = e.offsets , r = n.reference , s = n.popper , a = -1 !== ["bottom", "top"].indexOf(i) , l = a ? "left" : "top" , d = a ? "width" : "height" , c = { start: k({}, l, r[l]), end: k({}, l, r[l] + r[d] - s[d]) }; e.offsets.popper = x({}, s, c[o]) } return e } }, offset: { order: 200, enabled: !0, fn: function(e, t) { var i = t.offset , o = e.placement , n = e.offsets , r = n.popper , s = n.reference , a = o.split("-")[0] , l = void 0; return l = z(+i) ? [+i, 0] : X(i, r, s, a), "left" === a ? (r.top += l[0], r.left -= l[1]) : "right" === a ? (r.top += l[0], r.left += l[1]) : "top" === a ? (r.left += l[0], r.top -= l[1]) : "bottom" === a && (r.left += l[0], r.top += l[1]), e.popper = r, e }, offset: 0 }, preventOverflow: { order: 300, enabled: !0, fn: function(e, o) { var t = o.boundariesElement || w(e.instance.popper); e.instance.reference === t && (t = w(t)); var i = L("transform") , n = e.instance.popper.style , r = n.top , s = n.left , a = n[i]; n.top = "", n.left = "", n[i] = ""; var l = $(e.instance.popper, e.instance.reference, o.padding, t, e.positionFixed); n.top = r, n.left = s, n[i] = a, o.boundaries = l; var d = o.priority , c = e.offsets.popper , p = { primary: function(e) { var t = c[e]; return c[e] < l[e] && !o.escapeWithReference && (t = Math.max(c[e], l[e])), k({}, e, t) }, secondary: function(e) { var t = "right" === e ? "left" : "top" , i = c[t]; return c[e] > l[e] && !o.escapeWithReference && (i = Math.min(c[t], l[e] - ("right" === e ? c.width : c.height))), k({}, t, i) } }; return d.forEach(function(e) { var t = -1 !== ["left", "top"].indexOf(e) ? "primary" : "secondary"; c = x({}, c, p[t](e)) }), e.offsets.popper = c, e }, priority: ["left", "right", "top", "bottom"], padding: 5, boundariesElement: "scrollParent" }, keepTogether: { order: 400, enabled: !0, fn: function(e) { var t = e.offsets , i = t.popper , o = t.reference , n = e.placement.split("-")[0] , r = Math.floor , s = -1 !== ["top", "bottom"].indexOf(n) , a = s ? "right" : "bottom" , l = s ? "left" : "top" , d = s ? "width" : "height"; return i[a] < r(o[l]) && (e.offsets.popper[l] = r(o[l]) - i[d]), i[l] > r(o[a]) && (e.offsets.popper[l] = r(o[a])), e } }, arrow: { order: 500, enabled: !0, fn: function(e, t) { var i; if (!B(e.instance.modifiers, "arrow", "keepTogether")) return e; var o = t.element; if ("string" == typeof o) { if (!(o = e.instance.popper.querySelector(o))) return e } else if (!e.instance.popper.contains(o)) return console.warn("WARNING: `arrow.element` must be child of its popper element!"), e; var n = e.placement.split("-")[0] , r = e.offsets , s = r.popper , a = r.reference , l = -1 !== ["left", "right"].indexOf(n) , d = l ? "height" : "width" , c = l ? "Top" : "Left" , p = c.toLowerCase() , u = l ? "left" : "top" , f = l ? "bottom" : "right" , h = E(o)[d]; a[f] - h < s[p] && (e.offsets.popper[p] -= s[p] - (a[f] - h)), a[p] + h > s[f] && (e.offsets.popper[p] += a[p] + h - s[f]), e.offsets.popper = T(e.offsets.popper); var g = a[p] + a[d] / 2 - h / 2 , m = b(e.instance.popper) , v = parseFloat(m["margin" + c], 10) , w = parseFloat(m["border" + c + "Width"], 10) , y = g - e.offsets.popper[p] - v - w; return y = Math.max(Math.min(s[d] - h, y), 0), e.arrowElement = o, e.offsets.arrow = (k(i = {}, p, Math.round(y)), k(i, u, ""), i), e }, element: "[x-arrow]" }, flip: { order: 600, enabled: !0, fn: function(f, h) { if (M(f.instance.modifiers, "inner")) return f; if (f.flipped && f.placement === f.originalPlacement) return f; var g = $(f.instance.popper, f.instance.reference, h.padding, h.boundariesElement, f.positionFixed) , m = f.placement.split("-")[0] , v = A(m) , w = f.placement.split("-")[1] || "" , y = []; switch (h.behavior) { case U: y = [m, v]; break; case Q: y = Y(m); break; case V: y = Y(m, !0); break; default: y = h.behavior } return y.forEach(function(e, t) { if (m !== e || y.length === t + 1) return f; m = f.placement.split("-")[0], v = A(m); var i = f.offsets.popper , o = f.offsets.reference , n = Math.floor , r = "left" === m && n(i.right) > n(o.left) || "right" === m && n(i.left) < n(o.right) || "top" === m && n(i.bottom) > n(o.top) || "bottom" === m && n(i.top) < n(o.bottom) , s = n(i.left) < n(g.left) , a = n(i.right) > n(g.right) , l = n(i.top) < n(g.top) , d = n(i.bottom) > n(g.bottom) , c = "left" === m && s || "right" === m && a || "top" === m && l || "bottom" === m && d , p = -1 !== ["top", "bottom"].indexOf(m) , u = !!h.flipVariations && (p && "start" === w && s || p && "end" === w && a || !p && "start" === w && l || !p && "end" === w && d); (r || c || u) && (f.flipped = !0, (r || c) && (m = y[t + 1]), u && (w = function(e) { return "end" === e ? "start" : "start" === e ? "end" : e }(w)), f.placement = m + (w ? "-" + w : ""), f.offsets.popper = x({}, f.offsets.popper, H(f.instance.popper, f.offsets.reference, f.placement)), f = D(f.instance.modifiers, f, "flip")) }), f }, behavior: "flip", padding: 5, boundariesElement: "viewport" }, inner: { order: 700, enabled: !1, fn: function(e) { var t = e.placement , i = t.split("-")[0] , o = e.offsets , n = o.popper , r = o.reference , s = -1 !== ["left", "right"].indexOf(i) , a = -1 === ["top", "left"].indexOf(i); return n[s ? "left" : "top"] = r[i] - (a ? n[s ? "width" : "height"] : 0), e.placement = A(t), e.offsets.popper = T(n), e } }, hide: { order: 800, enabled: !0, fn: function(e) { if (!B(e.instance.modifiers, "hide", "preventOverflow")) return e; var t = e.offsets.reference , i = P(e.instance.modifiers, function(e) { return "preventOverflow" === e.name }).boundaries; if (t.bottom < i.top || t.left > i.right || t.top > i.bottom || t.right < i.left) { if (!0 === e.hide) return e; e.hide = !0, e.attributes["x-out-of-boundaries"] = "" } else { if (!1 === e.hide) return e; e.hide = !1, e.attributes["x-out-of-boundaries"] = !1 } return e } }, computeStyle: { order: 850, enabled: !0, fn: function(e, t) { var i = t.x , o = t.y , n = e.offsets.popper , r = P(e.instance.modifiers, function(e) { return "applyStyle" === e.name }).gpuAcceleration; void 0 !== r && console.warn("WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!"); var s = void 0 !== r ? r : t.gpuAcceleration , a = C(w(e.instance.popper)) , l = { position: n.position } , d = { left: Math.floor(n.left), top: Math.round(n.top), bottom: Math.round(n.bottom), right: Math.floor(n.right) } , c = "bottom" === i ? "top" : "bottom" , p = "right" === o ? "left" : "right" , u = L("transform") , f = void 0 , h = void 0; if (h = "bottom" == c ? -a.height + d.bottom : d.top, f = "right" == p ? -a.width + d.right : d.left, s && u) l[u] = "translate3d(" + f + "px, " + h + "px, 0)", l[c] = 0, l[p] = 0, l.willChange = "transform"; else { var g = "bottom" == c ? -1 : 1 , m = "right" == p ? -1 : 1; l[c] = h * g, l[p] = f * m, l.willChange = c + ", " + p } var v = { "x-placement": e.placement }; return e.attributes = x({}, v, e.attributes), e.styles = x({}, l, e.styles), e.arrowStyles = x({}, e.offsets.arrow, e.arrowStyles), e }, gpuAcceleration: !0, x: "bottom", y: "right" }, applyStyle: { order: 900, enabled: !0, fn: function(e) { return W(e.instance.popper, e.styles), function(t, i) { Object.keys(i).forEach(function(e) { !1 !== i[e] ? t.setAttribute(e, i[e]) : t.removeAttribute(e) }) }(e.instance.popper, e.attributes), e.arrowElement && Object.keys(e.arrowStyles).length && W(e.arrowElement, e.arrowStyles), e }, onLoad: function(e, t, i, o, n) { var r = O(n, t, e, i.positionFixed) , s = j(i.placement, r, t, e, i.modifiers.flip.boundariesElement, i.modifiers.flip.padding); return t.setAttribute("x-placement", s), W(t, { position: i.positionFixed ? "fixed" : "absolute" }), i }, gpuAcceleration: void 0 } } } , G = (c(Z, [{ key: "update", value: function() { return function() { if (!this.state.isDestroyed) { var e = { instance: this, styles: {}, arrowStyles: {}, attributes: {}, flipped: !1, offsets: {} }; e.offsets.reference = O(this.state, this.popper, this.reference, this.options.positionFixed), e.placement = j(this.options.placement, e.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding), e.originalPlacement = e.placement, e.positionFixed = this.options.positionFixed, e.offsets.popper = H(this.popper, e.offsets.reference, e.placement), e.offsets.popper.position = this.options.positionFixed ? "fixed" : "absolute", e = D(this.modifiers, e), this.state.isCreated ? this.options.onUpdate(e) : (this.state.isCreated = !0, this.options.onCreate(e)) } } .call(this) } }, { key: "destroy", value: function() { return function() { return this.state.isDestroyed = !0, M(this.modifiers, "applyStyle") && (this.popper.removeAttribute("x-placement"), this.popper.style.position = "", this.popper.style.top = "", this.popper.style.left = "", this.popper.style.right = "", this.popper.style.bottom = "", this.popper.style.willChange = "", this.popper.style[L("transform")] = ""), this.disableEventListeners(), this.options.removeOnDestroy && this.popper.parentNode.removeChild(this.popper), this } .call(this) } }, { key: "enableEventListeners", value: function() { return function() { this.state.eventsEnabled || (this.state = N(this.reference, this.options, this.state, this.scheduleUpdate)) } .call(this) } }, { key: "disableEventListeners", value: function() { return F.call(this) } }]), Z); function Z(e, t) { var i = this , o = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : {}; !function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }(this, Z), this.scheduleUpdate = function() { return requestAnimationFrame(i.update) } , this.update = r(this.update.bind(this)), this.options = x({}, Z.Defaults, o), this.state = { isDestroyed: !1, isCreated: !1, scrollParents: [] }, this.reference = e && e.jquery ? e[0] : e, this.popper = t && t.jquery ? t[0] : t, this.options.modifiers = {}, Object.keys(x({}, Z.Defaults.modifiers, o.modifiers)).forEach(function(e) { i.options.modifiers[e] = x({}, Z.Defaults.modifiers[e] || {}, o.modifiers ? o.modifiers[e] : {}) }), this.modifiers = Object.keys(this.options.modifiers).map(function(e) { return x({ name: e }, i.options.modifiers[e]) }).sort(function(e, t) { return e.order - t.order }), this.modifiers.forEach(function(e) { e.enabled && s(e.onLoad) && e.onLoad(i.reference, i.popper, i.options, e, i.state) }), this.update(); var n = this.options.eventsEnabled; n && this.enableEventListeners(), this.state.eventsEnabled = n } return G.Utils = ("undefined" != typeof window ? window : global).PopperUtils, G.placements = q, G.Defaults = K, G }); var Dropdown = function(d) { var t = "dropdown" , c = "bs.dropdown" , i = "." + c , e = ".data-api" , o = d.fn[t] , s = new RegExp("38|40|27") , p = { HIDE: "hide" + i, HIDDEN: "hidden" + i, SHOW: "show" + i, SHOWN: "shown" + i, CLICK: "click" + i, CLICK_DATA_API: "click" + i + e, KEYDOWN_DATA_API: "keydown" + i + e, KEYUP_DATA_API: "keyup" + i + e } , a = "disabled" , u = "show" , n = "dropup" , r = "dropright" , f = "dropleft" , h = "dropdown-menu-right" , g = "position-static" , m = '[data-toggle="dropdown"]' , l = ".dropdown form" , v = ".dropdown-menu" , w = ".navbar-nav" , y = ".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)" , b = "top-start" , k = "top-end" , x = "bottom-start" , T = "bottom-end" , C = "right-start" , S = "left-start" , _ = { offset: 0, flip: !0, boundary: "scrollParent", reference: "toggle", display: "dynamic" } , $ = { offset: "(number|string|function)", flip: "boolean", boundary: "(string|element)", reference: "(string|element)", display: "string" } , j = function() { function l(e, t) { this._element = e, this._popper = null, this._config = this._getConfig(t), this._menu = this._getMenuElement(), this._inNavbar = this._detectNavbar(), this._addEventListeners() } var e = l.prototype; return e.toggle = function() { if (!this._element.disabled && !d(this._element).hasClass(a)) { var e = l._getParentFromElement(this._element) , t = d(this._menu).hasClass(u); if (l._clearMenus(), !t) { var i = { relatedTarget: this._element } , o = d.Event(p.SHOW, i); if (d(e).trigger(o), !o.isDefaultPrevented()) { if (!this._inNavbar) { if ("undefined" == typeof Popper) throw new TypeError("Bootstrap dropdown require Popper.js (https://popper.js.org)"); var n = this._element; "parent" === this._config.reference ? n = e : Util.isElement(this._config.reference) && (n = this._config.reference, void 0 !== this._config.reference.jquery && (n = this._config.reference[0])), "scrollParent" !== this._config.boundary && d(e).addClass(g), this._popper = new Popper(n,this._menu,this._getPopperConfig()) } "ontouchstart"in document.documentElement && 0 === d(e).closest(w).length && d(document.body).children().on("mouseover", null, d.noop), this._element.focus(), this._element.setAttribute("aria-expanded", !0), d(this._menu).toggleClass(u), d(e).toggleClass(u).trigger(d.Event(p.SHOWN, i)) } } } } , e.dispose = function() { d.removeData(this._element, c), d(this._element).off(i), this._element = null, (this._menu = null) !== this._popper && (this._popper.destroy(), this._popper = null) } , e.update = function() { this._inNavbar = this._detectNavbar(), null !== this._popper && this._popper.scheduleUpdate() } , e._addEventListeners = function() { var t = this; d(this._element).on(p.CLICK, function(e) { e.preventDefault(), e.stopPropagation(), t.toggle() }) } , e._getConfig = function(e) { return e = _objectSpread({}, this.constructor.Default, d(this._element).data(), e), Util.typeCheckConfig(t, e, this.constructor.DefaultType), e } , e._getMenuElement = function() { if (!this._menu) { var e = l._getParentFromElement(this._element); this._menu = d(e).find(v)[0] } return this._menu } , e._getPlacement = function() { var e = d(this._element).parent() , t = x; return e.hasClass(n) ? (t = b, d(this._menu).hasClass(h) && (t = k)) : e.hasClass(r) ? t = C : e.hasClass(f) ? t = S : d(this._menu).hasClass(h) && (t = T), t } , e._detectNavbar = function() { return 0 < d(this._element).closest(".navbar").length } , e._getPopperConfig = function() { var t = this , e = {}; "function" == typeof this._config.offset ? e.fn = function(e) { return e.offsets = _objectSpread({}, e.offsets, t._config.offset(e.offsets) || {}), e } : e.offset = this._config.offset; var i = { placement: this._getPlacement(), modifiers: { offset: e, flip: { enabled: this._config.flip }, preventOverflow: { boundariesElement: this._config.boundary } } }; return "static" === this._config.display && (i.modifiers.applyStyle = { enabled: !1 }), i } , l._jQueryInterface = function(t) { return this.each(function() { var e = d(this).data(c); if (e || (e = new l(this,"object" == typeof t ? t : null), d(this).data(c, e)), "string" == typeof t) { if (void 0 === e[t]) throw new TypeError('No method named "' + t + '"'); e[t]() } }) } , l._clearMenus = function(e) { if (!e || 3 !== e.which && ("keyup" !== e.type || 9 === e.which)) for (var t = d.makeArray(d(m)), i = 0; i < t.length; i++) { var o = l._getParentFromElement(t[i]) , n = d(t[i]).data(c) , r = { relatedTarget: t[i] }; if (n) { var s = n._menu; if (d(o).hasClass(u) && !(e && ("click" === e.type && /input|textarea/i.test(e.target.tagName) || "keyup" === e.type && 9 === e.which) && d.contains(o, e.target))) { var a = d.Event(p.HIDE, r); d(o).trigger(a), a.isDefaultPrevented() || ("ontouchstart"in document.documentElement && d(document.body).children().off("mouseover", null, d.noop), t[i].setAttribute("aria-expanded", "false"), d(s).removeClass(u), d(o).removeClass(u).trigger(d.Event(p.HIDDEN, r))) } } } } , l._getParentFromElement = function(e) { var t, i = Util.getSelectorFromElement(e); return i && (t = d(i)[0]), t || e.parentNode } , l._dataApiKeydownHandler = function(e) { if ((/input|textarea/i.test(e.target.tagName) ? !(32 === e.which || 27 !== e.which && (40 !== e.which && 38 !== e.which || d(e.target).closest(v).length)) : s.test(e.which)) && (e.preventDefault(), e.stopPropagation(), !this.disabled && !d(this).hasClass(a))) { var t = l._getParentFromElement(this) , i = d(t).hasClass(u); if ((i || 27 === e.which && 32 === e.which) && (!i || 27 !== e.which && 32 !== e.which)) { var o = d(t).find(y).get(); if (0 !== o.length) { var n = o.indexOf(e.target); 38 === e.which && 0 < n && n--, 40 === e.which && n < o.length - 1 && n++, n < 0 && (n = 0), o[n].focus() } } else { if (27 === e.which) { var r = d(t).find(m)[0]; d(r).trigger("focus") } d(this).trigger("click") } } } , _createClass(l, null, [{ key: "VERSION", get: function() { return "4.1.0" } }, { key: "Default", get: function() { return _ } }, { key: "DefaultType", get: function() { return $ } }]), l }(); return d(document).on(p.KEYDOWN_DATA_API, m, j._dataApiKeydownHandler).on(p.KEYDOWN_DATA_API, v, j._dataApiKeydownHandler).on(p.CLICK_DATA_API + " " + p.KEYUP_DATA_API, j._clearMenus).on(p.CLICK_DATA_API, m, function(e) { e.preventDefault(), e.stopPropagation(), j._jQueryInterface.call(d(this), "toggle") }).on(p.CLICK_DATA_API, l, function(e) { e.stopPropagation() }), d.fn[t] = j._jQueryInterface, d.fn[t].Constructor = j, d.fn[t].noConflict = function() { return d.fn[t] = o, j._jQueryInterface } , j }($, Popper); !function(e, t) { "object" == typeof exports && "undefined" != typeof module ? module.exports = t(require("jquery"), require("./util.js")) : "function" == typeof define && define.amd ? define(["jquery", "./util"], t) : (e = "undefined" != typeof globalThis ? globalThis : e || self).Collapse = t(e.jQuery, e.Util) }(this, function(e, t) { "use strict"; function i(e) { return e && "object" == typeof e && "default"in e ? e : { default: e } } var l = i(e) , d = i(t); function o(e, t) { for (var i = 0; i < t.length; i++) { var o = t[i]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value"in o && (o.writable = !0), Object.defineProperty(e, o.key, o) } } function n() { return (n = Object.assign ? Object.assign.bind() : function(e) { for (var t = 1; t < arguments.length; t++) { var i = arguments[t]; for (var o in i) Object.prototype.hasOwnProperty.call(i, o) && (e[o] = i[o]) } return e } ).apply(this, arguments) } var r = "collapse" , c = "bs.collapse" , s = l.default.fn[r] , p = "show" , u = "collapse" , f = "collapsing" , h = "collapsed" , g = '[data-toggle="collapse"]' , m = { toggle: !0, parent: "" } , v = { toggle: "boolean", parent: "(string|element)" } , a = function() { function a(t, e) { this._isTransitioning = !1, this._element = t, this._config = this._getConfig(e), this._triggerArray = [].slice.call(document.querySelectorAll('[data-toggle="collapse"][href="#' + t.id + '"],[data-toggle="collapse"][data-target="#' + t.id + '"]')); for (var i = [].slice.call(document.querySelectorAll(g)), o = 0, n = i.length; o < n; o++) { var r = i[o] , s = d.default.getSelectorFromElement(r) , a = [].slice.call(document.querySelectorAll(s)).filter(function(e) { return e === t }); null !== s && 0 < a.length && (this._selector = s, this._triggerArray.push(r)) } this._parent = this._config.parent ? this._getParent() : null, this._config.parent || this._addAriaAndCollapsedClass(this._element, this._triggerArray), this._config.toggle && this.toggle() } var e = a.prototype; return e.toggle = function() { l.default(this._element).hasClass(p) ? this.hide() : this.show() } , e.show = function() { var e, t, i = this; if (!this._isTransitioning && !l.default(this._element).hasClass(p) && (this._parent && 0 === (e = [].slice.call(this._parent.querySelectorAll(".show, .collapsing")).filter(function(e) { return "string" == typeof i._config.parent ? e.getAttribute("data-parent") === i._config.parent : e.classList.contains(u) })).length && (e = null), !(e && (t = l.default(e).not(this._selector).data(c)) && t._isTransitioning))) { var o = l.default.Event("show.bs.collapse"); if (l.default(this._element).trigger(o), !o.isDefaultPrevented()) { e && (a._jQueryInterface.call(l.default(e).not(this._selector), "hide"), t || l.default(e).data(c, null)); var n = this._getDimension(); l.default(this._element).removeClass(u).addClass(f), this._element.style[n] = 0, this._triggerArray.length && l.default(this._triggerArray).removeClass(h).attr("aria-expanded", !0), this.setTransitioning(!0); var r = "scroll" + (n[0].toUpperCase() + n.slice(1)) , s = d.default.getTransitionDurationFromElement(this._element); l.default(this._element).one(d.default.TRANSITION_END, function() { l.default(i._element).removeClass(f).addClass(u + " " + p), i._element.style[n] = "", i.setTransitioning(!1), l.default(i._element).trigger("shown.bs.collapse") }).emulateTransitionEnd(s), this._element.style[n] = this._element[r] + "px" } } } , e.hide = function() { var e = this; if (!this._isTransitioning && l.default(this._element).hasClass(p)) { var t = l.default.Event("hide.bs.collapse"); if (l.default(this._element).trigger(t), !t.isDefaultPrevented()) { var i = this._getDimension(); this._element.style[i] = this._element.getBoundingClientRect()[i] + "px", d.default.reflow(this._element), l.default(this._element).addClass(f).removeClass(u + " " + p); var o = this._triggerArray.length; if (0 < o) for (var n = 0; n < o; n++) { var r = this._triggerArray[n] , s = d.default.getSelectorFromElement(r); if (null !== s) l.default([].slice.call(document.querySelectorAll(s))).hasClass(p) || l.default(r).addClass(h).attr("aria-expanded", !1) } this.setTransitioning(!0); this._element.style[i] = ""; var a = d.default.getTransitionDurationFromElement(this._element); l.default(this._element).one(d.default.TRANSITION_END, function() { e.setTransitioning(!1), l.default(e._element).removeClass(f).addClass(u).trigger("hidden.bs.collapse") }).emulateTransitionEnd(a) } } } , e.setTransitioning = function(e) { this._isTransitioning = e } , e.dispose = function() { l.default.removeData(this._element, c), this._config = null, this._parent = null, this._element = null, this._triggerArray = null, this._isTransitioning = null } , e._getConfig = function(e) { return (e = n({}, m, e)).toggle = Boolean(e.toggle), d.default.typeCheckConfig(r, e, v), e } , e._getDimension = function() { return l.default(this._element).hasClass("width") ? "width" : "height" } , e._getParent = function() { var e, i = this; d.default.isElement(this._config.parent) ? (e = this._config.parent, void 0 !== this._config.parent.jquery && (e = this._config.parent[0])) : e = document.querySelector(this._config.parent); var t = '[data-toggle="collapse"][data-parent="' + this._config.parent + '"]' , o = [].slice.call(e.querySelectorAll(t)); return l.default(o).each(function(e, t) { i._addAriaAndCollapsedClass(a._getTargetFromElement(t), [t]) }), e } , e._addAriaAndCollapsedClass = function(e, t) { var i = l.default(e).hasClass(p); t.length && l.default(t).toggleClass(h, !i).attr("aria-expanded", i) } , a._getTargetFromElement = function(e) { var t = d.default.getSelectorFromElement(e); return t ? document.querySelector(t) : null } , a._jQueryInterface = function(o) { return this.each(function() { var e = l.default(this) , t = e.data(c) , i = n({}, m, e.data(), "object" == typeof o && o ? o : {}); if (!t && i.toggle && "string" == typeof o && /show|hide/.test(o) && (i.toggle = !1), t || (t = new a(this,i), e.data(c, t)), "string" == typeof o) { if (void 0 === t[o]) throw new TypeError('No method named "' + o + '"'); t[o]() } }) } , function(e, t, i) { t && o(e.prototype, t), i && o(e, i), Object.defineProperty(e, "prototype", { writable: !1 }) }(a, null, [{ key: "VERSION", get: function() { return "4.6.2" } }, { key: "Default", get: function() { return m } }]), a }(); return l.default(document).on("click.bs.collapse.data-api", g, function(e) { "A" === e.currentTarget.tagName && e.preventDefault(); var i = l.default(this) , t = d.default.getSelectorFromElement(this) , o = [].slice.call(document.querySelectorAll(t)); l.default(o).each(function() { var e = l.default(this) , t = e.data(c) ? "toggle" : i.data(); a._jQueryInterface.call(e, t) }) }), l.default.fn[r] = a._jQueryInterface, l.default.fn[r].Constructor = a, l.default.fn[r].noConflict = function() { return l.default.fn[r] = s, a._jQueryInterface } , a }), function(c) { "use strict"; if (void 0 !== c) if (c.fn.jquery.match(/-ajax/)) "console"in window && window.console.info("Featherlight needs regular jQuery, not the slim version."); else { var o = [] , n = function(t) { return o = c.grep(o, function(e) { return e !== t && 0 < e.$instance.closest("body").length }) } , r = { allow: 1, allowfullscreen: 1, frameborder: 1, height: 1, longdesc: 1, marginheight: 1, marginwidth: 1, mozallowfullscreen: 1, name: 1, referrerpolicy: 1, sandbox: 1, scrolling: 1, src: 1, srcdoc: 1, style: 1, webkitallowfullscreen: 1, width: 1 } , i = { keyup: "onKeyUp", resize: "onResize" } , s = function(e) { c.each(l.opened().reverse(), function() { if (!e.isDefaultPrevented() && !1 === this[i[e.type]](e)) return e.preventDefault(), e.stopPropagation(), !1 }) } , a = function(e) { if (e !== l._globalHandlerInstalled) { l._globalHandlerInstalled = e; var t = c.map(i, function(e, t) { return t + "." + l.prototype.namespace }).join(" "); c(window)[e ? "on" : "off"](t, s) } }; l.prototype = { constructor: l, namespace: "featherlight", targetAttr: "data-featherlight", variant: null, resetCss: !1, background: null, openTrigger: "click", closeTrigger: "click", filter: null, root: "body", openSpeed: 250, closeSpeed: 250, closeOnClick: "background", closeOnEsc: !0, closeIcon: "✕", loading: "", persist: !1, otherClose: null, beforeOpen: c.noop, beforeContent: c.noop, beforeClose: c.noop, afterOpen: c.noop, afterContent: c.noop, afterClose: c.noop, onKeyUp: c.noop, onResize: c.noop, type: null, contentFilters: ["jquery", "image", "html", "ajax", "iframe", "text"], setup: function(e, t) { "object" != typeof e || e instanceof c != !1 || t || (t = e, e = void 0); var i = c.extend(this, t, { target: e }) , o = i.resetCss ? i.namespace + "-reset" : i.namespace , n = c(i.background || ['
    ', '
    ', '", '
    ' + i.loading + "
    ", "
    ", "
    "].join("")) , r = "." + i.namespace + "-close" + (i.otherClose ? "," + i.otherClose : ""); return i.$instance = n.clone().addClass(i.variant), i.$instance.on(i.closeTrigger + "." + i.namespace, function(e) { if (!e.isDefaultPrevented()) { var t = c(e.target); ("background" === i.closeOnClick && t.is("." + i.namespace) || "anywhere" === i.closeOnClick || t.closest(r).length) && (i.close(e), e.preventDefault()) } }), this }, getContent: function() { if (!1 !== this.persist && this.$content) return this.$content; function e(e) { return t.$currentTarget && t.$currentTarget.attr(e) } var t = this , i = this.constructor.contentFilters , o = e(t.targetAttr) , n = t.target || o || "" , r = i[t.type]; if (!r && n in i && (r = i[n], n = t.target && o), n = n || e("href") || "", !r) for (var s in i) t[s] && (r = i[s], n = t[s]); if (!r) { var a = n; if (n = null, c.each(t.contentFilters, function() { return (r = i[this]).test && (n = r.test(a)), !n && r.regex && a.match && a.match(r.regex) && (n = a), !n }), !n) return "console"in window && window.console.error("Featherlight: no content filter found " + (a ? ' for "' + a + '"' : " (no target specified)")), !1 } return r.process.call(t, n) }, setContent: function(e) { return this.$instance.removeClass(this.namespace + "-loading"), this.$instance.toggleClass(this.namespace + "-iframe", e.is("iframe")), this.$instance.find("." + this.namespace + "-inner").not(e).slice(1).remove().end().replaceWith(c.contains(this.$instance[0], e[0]) ? "" : e), this.$content = e.addClass(this.namespace + "-inner"), this }, open: function(t) { var i = this; if (i.$instance.hide().appendTo(i.root), !(t && t.isDefaultPrevented() || !1 === i.beforeOpen(t))) { t && t.preventDefault(); var e = i.getContent(); if (e) return o.push(i), a(!0), i.$instance.fadeIn(i.openSpeed), i.beforeContent(t), c.when(e).always(function(e) { i.setContent(e), i.afterContent(t) }).then(i.$instance.promise()).done(function() { i.afterOpen(t) }) } return i.$instance.detach(), c.Deferred().reject().promise() }, close: function(e) { var t = this , i = c.Deferred(); return !1 === t.beforeClose(e) ? i.reject() : (0 === n(t).length && a(!1), t.$instance.fadeOut(t.closeSpeed, function() { t.$instance.detach(), t.afterClose(e), i.resolve() })), i.promise() }, resize: function(e, t) { if (e && t) { this.$content.css("width", "").css("height", ""); var i = Math.max(e / (this.$content.parent().width() - 1), t / (this.$content.parent().height() - 1)); 1 < i && (i = t / Math.floor(t / i), this.$content.css("width", e / i + "px").css("height", t / i + "px")) } }, chainCallbacks: function(e) { for (var t in e) this[t] = c.proxy(e[t], this, c.proxy(this[t], this)) } }, c.extend(l, { id: 0, autoBind: "[data-featherlight]", defaults: l.prototype, contentFilters: { jquery: { regex: /^[#.]\w/, test: function(e) { return e instanceof c && e }, process: function(e) { return !1 !== this.persist ? c(e) : c(e).clone(!0) } }, image: { regex: /\.(png|jpg|jpeg|gif|tiff?|bmp|svg)(\?\S*)?$/i, process: function(e) { var t = c.Deferred() , i = new Image , o = c(''); return i.onload = function() { o.naturalWidth = i.width, o.naturalHeight = i.height, t.resolve(o) } , i.onerror = function() { t.reject(o) } , i.src = e, t.promise() } }, html: { regex: /^\s*<[\w!][^<]*>/, process: function(e) { return c(e) } }, ajax: { regex: /./, process: function(e) { var i = c.Deferred() , o = c("
    ").load(e, function(e, t) { "error" !== t && i.resolve(o.contents()), i.fail() }); return i.promise() } }, iframe: { process: function(e) { var t = new c.Deferred , i = c("") , o = function(e, t) { var i = {} , o = new RegExp("^" + t + "([A-Z])(.*)"); for (var n in e) { var r = n.match(o); if (r) i[(r[1] + r[2].replace(/([A-Z])/g, "-$1")).toLowerCase()] = e[n] } return i }(this, "iframe") , n = function(e, t) { var i = {}; for (var o in e) o in t && (i[o] = e[o], delete e[o]); return i }(o, r); return i.hide().attr("src", e).attr(n).css(o).on("load", function() { t.resolve(i.show()) }).appendTo(this.$instance.find("." + this.namespace + "-content")), t.promise() } }, text: { process: function(e) { return c("
    ", { text: e }) } } }, functionAttributes: ["beforeOpen", "afterOpen", "beforeContent", "afterContent", "beforeClose", "afterClose"], readElementConfig: function(e, t) { var o = this , n = new RegExp("^data-" + t + "-(.*)") , r = {}; return e && e.attributes && c.each(e.attributes, function() { var e = this.name.match(n); if (e) { var t = this.value , i = c.camelCase(e[1]); if (0 <= c.inArray(i, o.functionAttributes)) t = new Function(t); else try { t = JSON.parse(t) } catch (e) {} r[i] = t } }), r }, extend: function(e, t) { function i() { this.constructor = e } return i.prototype = this.prototype, e.prototype = new i, e.__super__ = this.prototype, c.extend(e, this, t), e.defaults = e.prototype, e }, attach: function(n, r, s) { var a = this; "object" != typeof r || r instanceof c != !1 || s || (s = r, r = void 0); function e(e) { var t = c(e.currentTarget) , i = c.extend({ $source: n, $currentTarget: t }, a.readElementConfig(n[0], d.namespace), a.readElementConfig(e.currentTarget, d.namespace), s) , o = l || t.data("featherlight-persisted") || new a(r,i); "shared" === o.persist ? l = o : !1 !== o.persist && t.data("featherlight-persisted", o), i.$currentTarget.blur && i.$currentTarget.blur(), o.open(e) } var l, t = (s = c.extend({}, s)).namespace || a.defaults.namespace, d = c.extend({}, a.defaults, a.readElementConfig(n[0], t), s); return n.on(d.openTrigger + "." + d.namespace, d.filter, e), { filter: d.filter, handler: e } }, current: function() { var e = this.opened(); return e[e.length - 1] || null }, opened: function() { var t = this; return n(), c.grep(o, function(e) { return e instanceof t }) }, close: function(e) { var t = this.current(); if (t) return t.close(e) }, _onReady: function() { var o = this; if (o.autoBind) { var n = c(o.autoBind); n.each(function() { o.attach(c(this)) }), c(document).on("click", o.autoBind, function(e) { if (!e.isDefaultPrevented()) { var t = c(e.currentTarget); if (n.length !== (n = n.add(t)).length) { var i = o.attach(t); (!i.filter || 0 < c(e.target).parentsUntil(t, i.filter).length) && i.handler(e) } } }) } }, _callbackChain: { onKeyUp: function(e, t) { return 27 === t.keyCode ? (this.closeOnEsc && c.featherlight.close(t), !1) : e(t) }, beforeOpen: function(e, t) { return c(document.documentElement).addClass("with-featherlight"), this._previouslyActive = document.activeElement, this._$previouslyTabbable = c("a, input, select, textarea, iframe, button, iframe, [contentEditable=true]").not("[tabindex]").not(this.$instance.find("button")), this._$previouslyWithTabIndex = c("[tabindex]").not('[tabindex="-1"]'), this._previousWithTabIndices = this._$previouslyWithTabIndex.map(function(e, t) { return c(t).attr("tabindex") }), this._$previouslyWithTabIndex.add(this._$previouslyTabbable).attr("tabindex", -1), document.activeElement.blur && document.activeElement.blur(), e(t) }, afterClose: function(e, t) { var i = e(t) , o = this; return this._$previouslyTabbable.removeAttr("tabindex"), this._$previouslyWithTabIndex.each(function(e, t) { c(t).attr("tabindex", o._previousWithTabIndices[e]) }), this._previouslyActive.focus(), 0 === l.opened().length && c(document.documentElement).removeClass("with-featherlight"), i }, onResize: function(e, t) { return this.resize(this.$content.naturalWidth, this.$content.naturalHeight), e(t) }, afterContent: function(e, t) { var i = e(t); return this.$instance.find("[autofocus]:not([disabled])").focus(), this.onResize(t), i } } }), c.featherlight = l, c.fn.featherlight = function(e, t) { return l.attach(this, e, t), this } , c(document).ready(function() { l._onReady() }) } else "console"in window && window.console.info("Too much lightness, Featherlight needs jQuery."); function l(e, t) { if (!(this instanceof l)) { var i = new l(e,t); return i.open(), i } this.id = l.id++, this.setup(e, t), this.chainCallbacks(l._callbackChain) } }(jQuery), function(E) { "use strict"; var A = !1 , t = E.fn.val; function H(e, t) { e.addEventListener("mousedown", function(e) { e.preventDefault(), t(e) }), e.addEventListener("touchstart", function(e) { e.cancelable && e.preventDefault(), t(e) }), e.addEventListener("keydown", function(e) { 32 !== e.keyCode && 13 !== e.keyCode || A || (A = !0, t(e)) }) } E.fn.val = function(e) { return 1 <= arguments.length && void 0 !== this[0] && this[0]["bootstrap-input-spinner"] && this[0].setValue && this[0].setValue(e), t.apply(this, arguments) } , E.fn.InputSpinner = E.fn.inputSpinner = function(e) { if ("1" === jupiterxOptions.quantityFieldSwitch || "undefined" === jupiterxOptions.quantityFieldSwitch) { var $ = { decrementButton: "-", incrementButton: "+", groupClass: "", buttonsClass: "btn-outline-secondary", buttonsWidth: "2.5rem", textAlign: "center", autoDelay: 500, autoInterval: 100, boostThreshold: 10, boostMultiplier: "auto", locale: null }; for (var t in e) $[t] = e[t]; var j = '
    " , O = $.locale || navigator.language || "en-US"; this.each(function() { var o = E(this); o[0]["bootstrap-input-spinner"] = !0, o.hide(); var t = null , i = null , n = "auto" === $.boostMultiplier , r = n ? 1 : $.boostMultiplier , s = E(j) , a = s.find(".btn-decrement") , l = s.find(".btn-increment") , d = s.find("input") , c = parseFloat(o.prop("min")) || 0 , p = isNaN(o.prop("max")) || "" === o.prop("max") ? 1 / 0 : parseFloat(o.prop("max")) , e = parseFloat(o.prop("step")) || 1 , u = parseInt(o.attr("data-step-max")) || 0 , f = parseInt(o.attr("data-decimals")) || 0 , h = new Intl.NumberFormat(O,{ minimumFractionDigits: f, maximumFractionDigits: f }) , g = parseFloat(o[0].value) , m = 0 , v = o.attr("data-prefix") || "" , w = o.attr("data-suffix") || ""; if (v) { var y = E('' + v + ""); s.find(".input-group-prepend").append(y) } if (w) { var b = E('' + w + ""); s.find(".input-group-append").prepend(b) } function k(e, t) { void 0 === t && (t = !0), g = isNaN(e) || "" === e ? (o[0].value = "", t && (d[0].value = ""), NaN) : (e = parseFloat(e), c = parseFloat(o.prop("min")) || 0, p = isNaN(o.prop("max")) || "" === o.prop("max") ? 1 / 0 : parseFloat(o.prop("max")), e = Math.min(Math.max(e, c), p), e = Math.round(e * Math.pow(10, f)) / Math.pow(10, f), o[0].value = e, t && (d[0].value = h.format(e)), e) } function x(t, i) { i && setTimeout(function() { var e; "function" == typeof Event ? e = new Event(i,{ bubbles: !0 }) : (e = document.createEvent("Event")).initEvent(i, !0, !0), t[0].dispatchEvent(e) }) } function T(e) { d[0].disabled || d[0].readOnly || (C(e), S(), t = setTimeout(function() { i = setInterval(function() { m > $.boostThreshold ? n ? (C(e * parseInt(r, 10)), r < 1e8 && (r *= 1.1), u && (r = Math.min(u, r))) : C(e * r) : C(e), m++ }, $.autoInterval) }, $.autoDelay)) } function C(e) { isNaN(g) && (g = 0), k(Math.round(g / e) * e + e), x(o, "input"), x(o, "change") } function S() { m = 0, r = r = n ? 1 : $.boostMultiplier, clearTimeout(t), clearTimeout(i) } function _() { d.prop("required", o.prop("required")), d.prop("placeholder", o.prop("placeholder")); var e = o.prop("disabled"); d.prop("disabled", e), l.prop("disabled", e), a.prop("disabled", e), d.prop("class", "form-control " + o.prop("class")), s.prop("class", "input-group " + o.prop("class") + " " + $.groupClass) } o[0].setValue = function(e) { k(e) } , new MutationObserver(function() { _() } ).observe(o[0], { attributes: !0 }), _(), o.after(s), k(g), d.on("paste input change focusout", function(e) { var t = d[0].value , i = "focusout" === e.type; "en-US" !== O && "en-GB" !== O && "th-TH" !== O && (t = t.replace(/[. ]/g, "").replace(/,/g, ".")), k(t, i), x(o, e.type) }), H(a[0], function() { T(-e) }), H(l[0], function() { T(e) }), function(e, t) { e.addEventListener("mouseup", function(e) { t(e) }), e.addEventListener("touchend", function(e) { t(e) }), e.addEventListener("keyup", function(e) { 32 !== e.keyCode && 13 !== e.keyCode || (A = !1, t(e)) }) }(document.body, function() { S() }) }) } } }(jQuery), $(document).on("wc_fragments_refreshed wc_fragments_loaded", function() { var e = $(document).find(".woocommerce-mini-cart__buttons"); 0 < e.parents(".elementor-widget-raven-shopping-cart").length || ($.each(e, function() { $(this).find("a").eq(0).addClass("jupiterx-icon-shopping-cart-6") }), $(document).find(".woocommerce-mini-cart-item .remove").addClass("jupiterx-icon-solid-times-circle").html(" "), $(document).find(".woocommerce-mini-cart__empty-message").addClass("jupiterx-icon-shopping-cart-6")) }), jQuery(document).ready(function(t) { function e() { t(".quantity > input").InputSpinner({ buttonsClass: "btn-sm btn-outline-secondary", buttonsWidth: 0 }) } 0 === t('.elementor[ data-elementor-type="jet-woo-builder" ], .elementor[ data-elementor-type="product" ]').length && (e(), t(document).on("updated_wc_div", function() { e() })), t(document).on("click", ".jupiterx-navbar-cart", function(e) { "#" === t(this).attr("href") && (e.preventDefault(), t("body").addClass("jupiterx-cart-quick-view-overlay")) }), t(document).on("click", ".jupiterx-mini-cart-close", function() { t("body").alterClass("jupiterx-cart-quick-view-*", "") }) }), jQuery(document).ready(function(d) { function i() { return "undefined" == typeof jupiterxOptions || void 0 === jupiterxOptions.videMedia ? null : 0 != jupiterxOptions.videMedia } function l() { d("video").on("ended", function(e) { d(e.currentTarget).parent().find("i").removeClass("circle-pause").addClass("circle-play") }) } function c(e) { this.$target = e, this.$images = e.find(".woocommerce-product-gallery__image"), this.$target.hasClass("jupiterx-product-gallery-static") ? this.initZoom() : (this.createSlickThumbnailsSlider(), this.repositionDirectionNav(), this.disableProductElementorLighBox()), this.preventSmoothScroll(), i() && (this.playIconTrigger(), this.handleVideo(), this.handlePhotoswipe(), this.handleVideoOnChangeSlide(), this.handlePhotoswipeIcon(), this.handleIframe(), this.handleVideoWithoutSlider(), this.handleVideoWithoutGallery(), l()), this.handleWcModal() } if (c.prototype.handleVideoWithoutSlider = function() { var a = this.$target; (d("body").hasClass("jupiterx-product-template-9") || d("body").hasClass("jupiterx-product-template-10")) && (a.ready(function() { var e = a.find("video") , t = a.find("iframe") , i = a.find(".flex-active-slide"); 0 < e.length && e.each(function() { d(this).parent().find("i").removeClass("circle-pause").addClass("circle-play"), d(this).get(0).pause() }), 0 < t.length && (c.prototype.resetIframes(t), t.on("load", function(e) { d(e.currentTarget).parent().removeClass("iframe-on-load"), d(e.currentTarget).show(), d(e.currentTarget).next().hide() })), 0 < i.length && 0 < i.find("video").length && void 0 !== i.find("video").attr("autoplay") && (i.find("video").parent().find("i").removeClass("circle-play").addClass("circle-pause"), i.find("video").get(0).play()) }), a.on("click", ".jupiterx-attachment-media-custom-video-icons", function(e) { var t = d(e.currentTarget) , i = d(e.currentTarget).find("i") , o = t.prev() , n = a.find(".jupiterx-attachment-media-iframe") , r = a.find("video") , s = a.find("iframe"); if (0 < s.length && c.prototype.resetIframes(s), !o.get(0).paused) return i.removeClass("circle-pause").addClass("circle-play"), void o.get(0).pause(); n.find("i").removeClass("circle-pause").addClass("circle-play"), r.trigger("pause"), i.removeClass("circle-play").addClass("circle-pause"), o.get(0).play() })) } , c.prototype.handleWcModal = function() { d(".pswp__button--close").on("click touchend", function(e) { d(e.target).closest(".pswp--open").removeClass("pswp--open") }) } , c.prototype.disableProductElementorLighBox = function() { var e = d(this.$target).find("a"); d(e).attr("data-elementor-open-lightbox", "no") } , c.prototype.handleIframe = function() { var e = d(this.$target) , t = e.find(".flex-active-slide"); 0 === t.length && (t = e.find(".woocommerce-product-gallery__image")), t.find("iframe").on("load", function(e) { d(e.currentTarget).parent().removeClass("iframe-on-load"), d(e.currentTarget).show(), d(e.currentTarget).next().hide() }) } , c.prototype.handlePhotoswipeIcon = function() { var t = d(this.$target) , e = t.find(".flex-active-slide") , i = t.data("flexslider") , o = this; e.ready(function() { ifram = e.find(".jupiterx-attachment-media-iframe"), o.initZoom(), 0 < ifram.length ? t.find(".woocommerce-product-gallery__trigger").hide(0) : t.find(".woocommerce-product-gallery__trigger").show(0) }), void 0 !== i && (i.vars.after = function() { var e = t.find(".flex-active-slide"); if (0 < e.find(".jupiterx-attachment-media-iframe").length) return t.find(".woocommerce-product-gallery__trigger").hide(0), void e.find("iframe").on("load", function(e) { d(e.currentTarget).parent().removeClass("iframe-on-load"), d(e.currentTarget).show(), d(e.currentTarget).next().hide() }); t.find(".woocommerce-product-gallery__trigger").show(0) } ) } , c.prototype.handleVideoOnChangeSlide = function() { var o = this.$target; o.on("click", ".flex-direction-nav a, .flex-control-thumbs li, .woocommerce-product-gallery__image a, .woocommerce-product-gallery__trigger", function() { var e = o.find("video") , t = o.find("iframe") , i = o.find(".flex-active-slide"); 0 < e.length && (e.parent().find("i").removeClass("circle-pause").addClass("circle-play"), e.each(function(e, t) { d(t).get(0).pause() })); 0 < t.length && (c.prototype.resetIframes(t), t.on("load", function(e) { d(e.currentTarget).parent().removeClass("iframe-on-load"), d(e.currentTarget).show(), d(e.currentTarget).next().hide() })), 0 < i.length && void 0 !== i.find("video").attr("autoplay") && (e.parent().find("i").removeClass("circle-play").addClass("circle-pause"), i.find("video").get(0).play()) }) } , c.prototype.resetIframes = function(e) { e.each(function(e, t) { var i = d(t).attr("src"); d(t).attr("src", i) }) } , c.prototype.playIconTrigger = function() { d(document).on("click", ".jupiterx-product-single-play-icon", function() { d(this).next().click() }) } , c.prototype.getGalleryItems = function() { var e = d(".woocommerce-product-gallery__image") , l = []; return 0 < e.length && e.each(function(e, t) { var i = d(t).find("img"); if (0 < i.length) { var o = i.attr("data-large_image") , n = i.attr("data-large_image_width") , r = i.attr("data-large_image_height") , s = { alt: i.attr("alt"), src: o, w: n, h: r, title: i.attr("data-caption") ? i.attr("data-caption") : i.attr("title") }; l.push(s) } else { var a = d(t).find(".jupiterx-attachment-media-iframe").parent().html(); l.push({ html: '
    ' + a + "
    " }) } }), l } , c.prototype.handleVideoOnPhotoSwipe = function(n, e) { d(n).hasClass("pswp--open") && e.listen("beforeChange", function() { var i = d(n).find("video") , e = d(n).find("iframe") , t = d(n).find(".pswp__item"); 0 < i.length && (i.parent().find("i").removeClass("circle-pause").addClass("circle-play"), i.get(0).pause()); if (0 < e.length) { var o = e.attr("src"); e = e.attr("src", o), d(n).find("iframe").on("load", function(e) { d(e.currentTarget).parent().removeClass("iframe-on-load"), d(e.currentTarget).show(), d(e.currentTarget).next().hide() }) } t.each(function(e, t) { if ("block" === d(t).css("display") && void 0 !== d(t).find("video").attr("autoplay")) return i.parent().find("i").removeClass("circle-play").addClass("circle-pause"), void d(t).find("video").get(0).play() }) }) } , c.prototype.openPhotoswipe = function(e) { if (wc_single_product_params.photoswipe_enabled) { e.preventDefault(); var t, i = d(".pswp")[0], o = c.prototype.getGalleryItems(), n = d(e.target); t = n.is(".woocommerce-product-gallery__trigger") || n.is(".woocommerce-product-gallery__trigger img") ? d(".flex-active-slide") : n.closest(".woocommerce-product-gallery__image"); var r = d.extend({ index: d(t).index(), addCaptionHTMLFn: function(e, t) { return e.title ? (t.children[0].textContent = e.title, !0) : (t.children[0].textContent = "", !1) } }, wc_single_product_params.photoswipe_options) , s = new PhotoSwipe(i,PhotoSwipeUI_Default,o,r); s.init(), c.prototype.handleVideoOnPhotoSwipe(i, s) } } , c.prototype.handlePhotoswipe = function() { this.$target.off("click", ".woocommerce-product-gallery__trigger"), this.$target.off("click", ".woocommerce-product-gallery__image a"), wc_single_product_params.zoom_enabled ? (this.$target.on("click", ".woocommerce-product-gallery__trigger", this.openPhotoswipe), this.$target.on("click", ".woocommerce-product-gallery__image a", function(e) { e.preventDefault() }), wc_single_product_params.flexslider_enabled || this.$target.on("click", ".woocommerce-product-gallery__image a", this.openPhotoswipe)) : this.$target.on("click", ".woocommerce-product-gallery__image a", this.openPhotoswipe) } , c.prototype.handleVideoWithoutGallery = function() { var e = this.$target; 0 === e.find(".flex-viewport").length && e.on("click", ".jupiterx-attachment-media-custom-video-icons", function(e) { var t = d(e.currentTarget) , i = d(e.currentTarget).find("i") , o = t.prev(); if (!o.get(0).paused) return i.removeClass("circle-pause").addClass("circle-play"), void o.get(0).pause(); i.removeClass("circle-play").addClass("circle-pause"), o.get(0).play() }) } , c.prototype.handleVideo = function() { d("body").hasClass("jupiterx-product-template-9") || d("body").hasClass("jupiterx-product-template-10") || d(document).on("click", ".jupiterx-attachment-media-custom-video-icons", function(e) { var t = d(e.currentTarget) , i = d(e.currentTarget).find("i") , o = t.prev() , n = 0 < o.closest(".flex-active-slide").length , r = 0 < o.closest(".pswp").length; if (n || r) { if (!o.get(0).paused) return i.removeClass("circle-pause").addClass("circle-play"), void o.get(0).pause(); i.removeClass("circle-play").addClass("circle-pause"), o.get(0).play() } }) } , c.prototype.createSlickThumbnailsSlider = function() { var e = this.$target , t = { infinite: !1, draggable: !1, slidesToShow: 7, slidesToScroll: 1, prevArrow: '', nextArrow: '' }; e.hasClass("jupiterx-product-gallery-vertical") && (t = d.extend(t, { vertical: !0, slidesToShow: 5 })), e.find(".flex-control-thumbs").slick(t), i() && (galleryItems = e.find(".woocommerce-product-gallery__image"), galleryItems.each(function(e, t) { void 0 !== d(t).data("poster") && d(".flex-control-nav").find("li[data-slick-index=" + e + "]").prepend('') })), e.on("click", ".flex-direction-nav a", function() { e.find(".flex-control-nav").slick("slickGoTo", e.find(".flex-active-slide").index()) }) } , c.prototype.repositionDirectionNav = function() { var e, i = this.$target; i.hasClass("jupiterx-product-gallery-vertical") && (e = function() { var e = i.find(".flex-direction-nav") , t = i.find(".flex-control-thumbs"); e.css("left", t.outerWidth(!0)) } , d(window).resize(e), e()) } , c.prototype.initZoom = function() { if (d.isFunction(d.fn.zoom) || wc_single_product_params.zoom_enabled) { var e = this.$target , t = e.find(".woocommerce-product-gallery__image") , i = e.width() , o = !1; if (d(t).each(function(e, t) { if (d(t).find("img").data("large_image_width") > i) return !(o = !0) }), o) { var n = { touch: !1 }; "ontouchstart"in window && (n.on = "click"), t.trigger("zoom.destroy"), t.zoom(n) } } } , c.prototype.preventSmoothScroll = function() { this.$target.on("click", ".flex-direction-nav a", function(e) { e.preventDefault(), e.stopPropagation() }) } , 0 === d('.elementor[ data-elementor-type="jet-woo-builder" ]').length && d(".woocommerce-product-gallery").each(function(e, t) { new c(d(t)) }), 0 < d("form.variations_form").length) { var p = new function e(t) { var i = this; this.$variationsForm = t, this.$outOfStockBadge = d(".jupiterx-out-of-stock"), this.$onSaleBadge = d(".jupiterx-product-badges .jupiterx-sale-badge"), this.variations = this.$variationsForm.data("product_variations") || [], void 0 === e._initialized && (e.prototype.bindEvents = function() { this.$variationsForm.on("woocommerce_variation_select_change", this.onVariationAttributeChange), d(".single_variation_wrap").on("show_variation", this.onVariationSelected) } , e.prototype.checkOutOfStockStatus = function() { this.isProductInStock() || (this.$onSaleBadge.hide(), this.$outOfStockBadge.show()) } , e.prototype.onVariationAttributeChange = function() { 0 === (i.$variationsForm.find("input[name=variation_id]").val() || 0) && (i.isProductInStock() ? i.isProductOnSale() && (i.$onSaleBadge.show(), i.$outOfStockBadge.hide()) : i.$outOfStockBadge.show()) } , e.prototype.onVariationSelected = function(e, t) { t && i.toggleOutOfStockBadgeVisibility(t) } , e.prototype.toggleOutOfStockBadgeVisibility = function(e) { e.is_in_stock ? (this.isVariationOnSale(e.variation_id) ? this.$onSaleBadge.show() : this.$onSaleBadge.hide(), this.$outOfStockBadge.hide()) : (this.$onSaleBadge.hide(), this.$outOfStockBadge.show()) } , e.prototype.isProductOnSale = function() { for (var e = 0; e < this.variations.length; e++) { var t = this.variations[e]; if (t.display_price !== t.display_regular_price) return !0 } return !1 } , e.prototype.isVariationOnSale = function(e) { for (var t = 0; t < this.variations.length; t++) { var i = this.variations[t]; if (i.display_price !== i.display_regular_price && e === i.variation_id) return !0 } return !1 } , e.prototype.isProductInStock = function() { for (var e = 0; e < this.variations.length; e++) if (this.variations[e].is_in_stock) return !0; return !1 } , e.prototype.selectOptionControl = function() { var e = { selected: ".woocommerce div.product form.cart .variations select", outOfStockClassName: "jupiterx-out-of-stock", outOfStockClass: this.$outOfStockBadge }; d("body").find(e.outOfStockClassName) && d(e.selected).change(function() { "" == d(e.selected).children("option:selected").val() && d(e.outOfStockClass).css("display", "none") }) } , e.prototype.handleVariation = function() { if (this.$variationsForm && this.variations) { var a = this.variations; this.$variationsForm.on("woocommerce_update_variation_values", function(e) { var t = null , i = "" , o = "" , n = "" , r = d(".woocommerce-product-gallery__image:first-child") , s = r.attr("data-default") ? JSON.parse(r.attr("data-default")) : {}; setTimeout(function() { price = d(e.currentTarget).find(".woocommerce-variation-price"), 0 !== price.length && "none" !== price.parents(".woocommerce-variation").css("display") && ("" === (t = d(e.currentTarget).attr("current-image")) && (i = s.content, o = s.video_type, n = s.poster, p.handleNavControl(s.enabled)), a.forEach(function(e) { e.image_id === parseInt(t) && (i = e.jupiterx_attached_media, o = e.jupiterx_attached_media_type, n = e.jupiterx_attached_media_poster, p.handleNavControl(e.jupiterx_attached_media_enabled)) }), i && i.includes("jupiterx-attachment-media-iframe") ? d(".woocommerce-product-gallery__trigger").hide(0) : d(".woocommerce-product-gallery__trigger").show(0), r.html(i), r.attr("data-video-type", o), r.attr("data-poster", n), r.find("a").attr("data-elementor-open-lightbox", "no"), d(window).trigger("resize"), p.handleIframe(r), r.parents(".images").trigger("woocommerce_gallery_init_zoom"), l()) }, 50) }) } } , e.prototype.handleIframe = function(e) { var t = e.closest(".flex-viewport") , i = e.find("video"); e.find("iframe").on("load", function(e) { d(e.currentTarget).parent().removeClass("iframe-on-load"), d(e.currentTarget).show(), d(e.currentTarget).next().hide(), t.height(d(e.currentTarget).height()) }), 0 < i.length && t.height(i.height()) } , e.prototype.handleNavControl = function(e) { var t = d(".slick-slide:first-child") , i = t.find(".jupiterx-product-single-play-icon"); e ? 0 === i.length && t.prepend('') : i.remove() } , e._initialized = !0) } (d("form.variations_form")); p.bindEvents(), p.selectOptionControl(), p.checkOutOfStockStatus(), i() && p.handleVariation() } if (d("body").find("jupiterx-out-of-stock")) { var e = ".woocommerce div.product form.cart .variations select" , t = ".jupiterx-out-of-stock"; d(t).css("display", "inline-block"), checkOptions = d(e).children("option:selected").val(), "" == checkOptions && d(t).css("display", "none") } d("body").find(".woocommerce-product-gallery__trigger") && d(".pswp__button--close").attr("ontouchstart", "return false;"), d("body").find(".woocommerce-product-rating") && "jet-woo-builder" != d("main .elementor").data("elementor-type") && (d(".woocommerce-review-link").attr("href", "#jupiterx-wc-header-reviews"), d("#tab-title-reviews").attr("id", "jupiterx-wc-header-reviews"), "#jupiterx-wc-header-reviews" === window.location.hash && (d(".wc-tabs").children("li").removeClass("active"), d("#jupiterx-wc-header-reviews").addClass("active"), d("#jupiterx-wc-header-reviews a").trigger("click")), jQuery(".woocommerce-product-rating > a").click(function(e) { d = jQuery, e.preventDefault(), e.stopPropagation(); var t = d(".woocommerce-review-link").attr("href"); if ("#jupiterx-wc-header-reviews" === t && (d(".wc-tabs").children("li").removeClass("active"), d("#jupiterx-wc-header-reviews").addClass("active"), d("#jupiterx-wc-header-reviews a").trigger("click"), history.pushState(null, null, t)), !(window.jupiterx.utils.onMobile() && d("body").hasClass("jupiterx-header-mobile-behavior-off") || window.jupiterx.utils.onTablet() && d("body").hasClass("jupiterx-header-tablet-behavior-off"))) { var i = d(t); if (0 !== i.length) { var o = d("body").hasClass("jupiterx-header-overlapped") , n = i.offset().top; n -= o ? 2 * d(".jupiterx-header").height() : d(".jupiterx-header").height() + 50, !1 !== is_smooth_scroll() ? d("html, body").stop().animate({ scrollTop: n }, 500, "swing") : d("html, body").stop().animate({ scrollTop: n }, 0) } } })), 0 < d(".elementor-jet-single-images").length && (d(".elementor-jet-single-images").find(".woocommerce-product-gallery").addClass("jupiterx-jet-woo-gallery"), d(".elementor-jet-single-images").find(".flex-active").addClass("jupiterx-jet-woo-gallery-active-item"), d(".elementor-jet-single-images").find(".flex-control-thumbs img").on("click", function(e) { d(".elementor-jet-single-images").find(".flex-active").removeClass("jupiterx-jet-woo-gallery-active-item"), d(e.currentTarget).addClass("jupiterx-jet-woo-gallery-active-item") })), window.elementorFrontend && window.elementorFrontend.hooks && elementorFrontend.hooks.addAction("frontend/element_ready/widget", function(e) { "jet-single-images.default" === e.data("widget_type") && (e.find(".woocommerce-product-gallery").addClass("jupiterx-jet-woo-gallery"), e.find(".flex-active").addClass("jupiterx-jet-woo-gallery-active-item"), e.find(".flex-control-thumbs img").on("click", function(e) { d(".elementor-jet-single-images").find(".flex-active").removeClass("jupiterx-jet-woo-gallery-active-item"), d(e.currentTarget).addClass("jupiterx-jet-woo-gallery-active-item") })) }) }), jQuery(document).ready(function(o) { (new function e() { var i = this; this.$productContainer = o(".jupiterx-product-container"), this.modals = {}, void 0 === e._initialized && (e.prototype.init = function() { this.hasQuickView() && this.bindEvents() } , e.prototype.bindEvents = function() { this.hasQuickViewBtn() ? o(document).add(this.$productContainer).on("click", ".jupiterx-product-quick-view-btn", function(e) { e.preventDefault(), e.stopPropagation(); var t = o(this).closest(".jupiterx-product-container").data("product-id"); i.showQuickView(t) }) : (o(document).add(this.$productContainer).on("click", ".woocommerce-loop-product__link", function(e) { e.preventDefault(), e.stopPropagation() }), o(document).add(this.$productContainer).on("click", ".woocommerce-loop-product__title", function() { var e = o(this).closest(".jupiterx-product-container").data("product-id"); i.showQuickView(e) }), o(document).add(this.$productContainer).on("click", ".jupiterx-wc-loop-product-image", function() { var e = o(this).closest(".jupiterx-product-container").data("product-id"); i.showQuickView(e) })) } , e.prototype.showQuickView = function(e) { i.modals[e] ? i.modals[e].open() : i.modals[e] = o.featherlight(o("#jupiterx-product-quick-view-modal-" + e), { persist: !0, variant: "jupiterx-product-quick-view-featherlight" }) } , e.prototype.hasQuickViewBtn = function() { return 0 < this.$productContainer.find(".jupiterx-product-quick-view-btn").length } , e.prototype.hasQuickView = function() { return this.$productContainer.hasClass("jupiterx-product-has-quick-view") } ) } ).init() }), jQuery(document).ready(function(o) { function e() { o(".entry-summary").css({ top: 50 }) } o.scrollDetection = function(e) { var t = o.extend({ scrollDown: function() {}, scrollUp: function() {} }, e) , i = 0; o(window).scroll(function() { var e = o(this).scrollTop(); i < e ? t.scrollDown() : e < i && t.scrollUp(), i = e }) } , 0 !== o(".jupiterx-product-sticky-info").length && (e(), o.scrollDetection({ scrollUp: function() { e() }, scrollDown: function() { !function() { var e = 50 , t = o(".entry-summary").outerHeight() , i = o(window).height(); i < t && (e = i - t), o(".entry-summary").css({ top: e }) }() } })) }), function(e) { e(".jet-portfolio__list, .jet-image-comparison").each(function() { e(this).find("img[data-lazy-src]").each(function(e, t) { var i = jQuery(t) , o = i.attr("data-lazy-src"); o && (i.unbind("scrollin").hide().removeAttr("data-lazy-src").attr("data-lazy-loaded", "true"), t.src = o, i.fadeIn()) }) }) }(jQuery);