! function(o) { "use strict"; o.fn.menumaker = function(t) { var e = o(this), i = o.extend({ format: "dropdown", sticky: !1 }, t); return this.each(function() { function t() { 991 < o(window).width() && e.find("ul").show() } return o(this).find(".navbar-toggler").on("click", function() { o(this).toggleClass("menu-opened"); var t = o(this).next("ul"); t.hasClass("open") ? t.slideToggle().removeClass("open") : (t.slideToggle().addClass("open"), "dropdown" === i.format && t.find("ul").show()) }), e.find(".navbar-nav li ul").parent().addClass("has-sub"), e.find(".navbar-nav li ul li").parent().addClass("sub-menu"), "multitoggle" === i.format ? (e.find(".has-sub").prepend(''), e.find(".navbar-nav > li.has-sub > .submenu-button").on("click", function() { o(this).next(".sub-menu").slideToggle(), o(this).siblings("ul").addClass("open").slideToggle(), o(this).parents(".navbar-nav > li.has-sub").toggleClass("active").siblings(".has-sub").children(".sub-menu").slideUp().removeClass("open").parents("li").removeClass("active") }), e.find(".sub-menu > li.has-sub > .submenu-button").on("click", function() { o(this).next(".sub-menu").slideToggle(), o(this).siblings("ul").addClass("open").slideToggle(), o(this).parents(".sub-menu > li").toggleClass("active").siblings(".has-sub").children(".sub-menu").slideUp().removeClass("open").parents("li").removeClass("active"), o(this).siblings("ul").hasClass("open") && o(this).parents("li").eq(1).addClass("active") })) : e.addClass("dropdown"), !0 === i.sticky && e.css("position", "fixed"), t(), o(window).on("resize", t) }) }, o(document).ready(function() { o("nav").menumaker({ format: "multitoggle" }); var t = window.location.pathname.split("/"), e = window.location.pathname, e = 0 < t[t.length - 1].length ? t[t.length - 1] : t[t.length - 2]; o(".navbar-nav li").find('a[href="' + e + '"]').closest("li").addClass("active").parents().eq(1).addClass("current"), o(".navbar-nav li.has-sub ul li").find('a[href="' + e + '"]').parents().eq(4).addClass("current") }), o(".navbar-default .attr-nav").each(function() { o("li.search > a", this).on("click", function(t) { t.preventDefault(), o(".top-search").slideToggle() }) }), o(".input-group-addon.close-search").on("click", function() { o(".top-search").slideUp() }) }(jQuery), function(f) { f.fn.extend({ easyResponsiveTabs: function(l) { var c = (l = f.extend({ type: "default", width: "auto", fit: !0, closed: !1, tabidentify: "", activate: function() {} }, l)).type, h = l.fit, u = l.width, d = window.location.hash, p = !(!window.history || !history.replaceState); f(this).on("bind", "tabactivate", function(t, e) { "function" == typeof l.activate && l.activate.call(e, t) }), this.each(function() { var i, o = f(this), t = o.find("ul.resp-tabs-list." + l.tabidentify), s = o.attr("id"); o.find("ul.resp-tabs-list." + l.tabidentify + " li").addClass("resp-tab-item").addClass(l.tabidentify), o.css({ display: "block", width: u }), "vertical" == l.type && o.find(".resp-tabs-container." + l.tabidentify).css("border-color", l.active_content_border_color), o.find(".resp-tabs-container." + l.tabidentify + " > div").addClass("resp-tab-content").addClass(l.tabidentify), "vertical" == c && o.addClass("resp-vtabs").addClass(l.tabidentify), 1 == h && o.css({ width: "100%", margin: "0px" }), "accordion" == c && (o.addClass("resp-easy-accordion").addClass(l.tabidentify), o.find(".resp-tabs-list").css("display", "none")), o.find(".resp-tab-content." + l.tabidentify).before(""), o.find(".resp-tab-content." + l.tabidentify).prev("h2").css({ "background-color": l.inactive_bg, "border-color": l.active_border_color }); var n = 0; o.find(".resp-accordion").each(function() { i = f(this); var t = o.find(".resp-tab-item:eq(" + n + ")"), e = o.find(".resp-accordion:eq(" + n + ")"); e.append(t.html()), e.data(t.data()), i.attr("aria-controls", l.tabidentify + "_tab_item-" + n), n++ }); var e = 0; o.find(".resp-tab-item").each(function() { $tabItem = f(this), $tabItem.attr("aria-controls", l.tabidentify + "_tab_item-" + e), $tabItem.attr("role", "tab"), $tabItem.css({ "background-color": l.inactive_bg, "border-color": "none" }); var t = 0; o.find(".resp-tab-content." + l.tabidentify).each(function() { f(this).attr("aria-labelledby", l.tabidentify + "_tab_item-" + t).css({ "border-color": l.active_border_color }), t++ }), e++ }); var r, a = 0; "" == d || null !== (r = d.match(new RegExp(s + "([0-9]+)"))) && 2 === r.length && (a = parseInt(r[1], 10) - 1, e < a && (a = 0)), f(o.find(".resp-tab-item." + l.tabidentify)[a]).addClass("resp-tab-active").css({ "background-color": l.activetab_bg, "border-color": l.active_border_color }), !0 === l.closed || "accordion" === l.closed && !t.is(":visible") || "tabs" === l.closed && t.is(":visible") || (f(o.find(".resp-accordion." + l.tabidentify)[a]).addClass("resp-tab-active").css({ "background-color": l.activetab_bg + " !important", "border-color": l.active_border_color, background: "none" }), f(o.find(".resp-tab-content." + l.tabidentify)[a]).addClass("resp-tab-content-active").addClass(l.tabidentify).attr("style", "display:block")), o.find("[role=tab]").each(function() { f(this).on("click", function() { var t, e = f(this), i = e.attr("aria-controls"); if (e.hasClass("resp-accordion") && e.hasClass("resp-tab-active")) return o.find(".resp-tab-content-active." + l.tabidentify).slideUp("", function() { f(this).addClass("resp-accordion-closed") }), e.removeClass("resp-tab-active").css({}), !1; !e.hasClass("resp-tab-active") && e.hasClass("resp-accordion") ? (o.find(".resp-tab-active." + l.tabidentify).removeClass("resp-tab-active").css({}), o.find(".resp-tab-content-active." + l.tabidentify).slideUp().removeClass("resp-tab-content-active resp-accordion-closed"), o.find("[aria-controls=" + i + "]").addClass("resp-tab-active").css({}), o.find(".resp-tab-content[aria-labelledby = " + i + "]." + l.tabidentify).slideDown().addClass("resp-tab-content-active")) : (o.find(".resp-tab-active." + l.tabidentify).removeClass("resp-tab-active").css({}), o.find(".resp-tab-content-active." + l.tabidentify).removeAttr("style").removeClass("resp-tab-content-active").removeClass("resp-accordion-closed"), o.find("[aria-controls=" + i + "]").addClass("resp-tab-active").css({}), o.find(".resp-tab-content[aria-labelledby = " + i + "]." + l.tabidentify).addClass("resp-tab-content-active").attr("style", "display:block")), e.trigger("tabactivate", e), p && (t = window.location.hash, i.split("tab_item-"), e = (e = "") != t ? (i = new RegExp(s + "[0-9]+"), null != t.match(i) ? t.replace(i, e) : t + "|" + e) : "" + e, history.replaceState(null, null, e)) }) }), f(window).resize(function() { o.find(".resp-accordion-closed").removeAttr("style") }) }) } }) }(jQuery), function(l, i, o, a) { function c(t, e) { this.settings = null, this.options = l.extend({}, c.Defaults, e), this.$element = l(t), this._handlers = {}, this._plugins = {}, this._supress = {}, this._current = null, this._speed = null, this._coordinates = [], this._breakpoint = null, this._width = null, this._items = [], this._clones = [], this._mergers = [], this._widths = [], this._invalidated = {}, this._pipe = [], this._drag = { time: null, target: null, pointer: null, stage: { start: null, current: null }, direction: null }, this._states = { current: {}, tags: { initializing: ["busy"], animating: ["busy"], dragging: ["interacting"] } }, l.each(["onResize", "onThrottledResize"], l.proxy(function(t, e) { this._handlers[e] = l.proxy(this[e], this) }, this)), l.each(c.Plugins, l.proxy(function(t, e) { this._plugins[t.charAt(0).toLowerCase() + t.slice(1)] = new e(this) }, this)), l.each(c.Workers, l.proxy(function(t, e) { this._pipe.push({ filter: e.filter, run: l.proxy(e.run, this) }) }, this)), this.setup(), this.initialize() } c.Defaults = { items: 3, loop: !1, center: !1, rewind: !1, checkVisibility: !0, mouseDrag: !0, touchDrag: !0, pullDrag: !0, freeDrag: !1, margin: 0, stagePadding: 0, merge: !1, mergeFit: !0, autoWidth: !1, startPosition: 0, rtl: !1, smartSpeed: 250, fluidSpeed: !1, dragEndSpeed: !1, responsive: {}, responsiveRefreshRate: 200, responsiveBaseElement: i, fallbackEasing: "swing", slideTransition: "", info: !1, nestedItemSelector: !1, itemElement: "div", stageElement: "div", refreshClass: "owl-refresh", loadedClass: "owl-loaded", loadingClass: "owl-loading", rtlClass: "owl-rtl", responsiveClass: "owl-responsive", dragClass: "owl-drag", itemClass: "owl-item", stageClass: "owl-stage", stageOuterClass: "owl-stage-outer", grabClass: "owl-grab" }, c.Width = { Default: "default", Inner: "inner", Outer: "outer" }, c.Type = { Event: "event", State: "state" }, c.Plugins = {}, c.Workers = [{ filter: ["width", "settings"], run: function() { this._width = this.$element.width() } }, { filter: ["width", "items", "settings"], run: function(t) { t.current = this._items && this._items[this.relative(this._current)] } }, { filter: ["items", "settings"], run: function() { this.$stage.children(".cloned").remove() } }, { filter: ["width", "items", "settings"], run: function(t) { var e = this.settings.margin || "", i = !this.settings.autoWidth, o = this.settings.rtl, e = { width: "auto", "margin-left": o ? e : "", "margin-right": o ? "" : e }; i || this.$stage.children().css(e), t.css = e } }, { filter: ["width", "items", "settings"], run: function(t) { var e = (this.width() / this.settings.items).toFixed(3) - this.settings.margin, i = null, o = this._items.length, s = !this.settings.autoWidth, n = []; for (t.items = { merge: !1, width: e }; o--;) i = this._mergers[o], i = this.settings.mergeFit && Math.min(i, this.settings.items) || i, t.items.merge = 1 < i || t.items.merge, n[o] = s ? e * i : this._items[o].width(); this._widths = n } }, { filter: ["items", "settings"], run: function() { var t = [], e = this._items, i = this.settings, o = Math.max(2 * i.items, 4), s = 2 * Math.ceil(e.length / 2), n = i.loop && e.length ? i.rewind ? o : Math.max(o, s) : 0, r = "", a = ""; for (n /= 2; 0 < n;) t.push(this.normalize(t.length / 2, !0)), r += e[t[t.length - 1]][0].outerHTML, t.push(this.normalize(e.length - 1 - (t.length - 1) / 2, !0)), a = e[t[t.length - 1]][0].outerHTML + a, --n; this._clones = t, l(r).addClass("cloned").appendTo(this.$stage), l(a).addClass("cloned").prependTo(this.$stage) } }, { filter: ["width", "items", "settings"], run: function() { for (var t, e, i = this.settings.rtl ? 1 : -1, o = this._clones.length + this._items.length, s = -1, n = []; ++s < o;) t = n[s - 1] || 0, e = this._widths[this.relative(s)] + this.settings.margin, n.push(t + e * i); this._coordinates = n } }, { filter: ["width", "items", "settings"], run: function() { var t = this.settings.stagePadding, e = this._coordinates, t = { width: Math.ceil(Math.abs(e[e.length - 1])) + 2 * t, "padding-left": t || "", "padding-right": t || "" }; this.$stage.css(t) } }, { filter: ["width", "items", "settings"], run: function(t) { var e = this._coordinates.length, i = !this.settings.autoWidth, o = this.$stage.children(); if (i && t.items.merge) for (; e--;) t.css.width = this._widths[this.relative(e)], o.eq(e).css(t.css); else i && (t.css.width = t.items.width, o.css(t.css)) } }, { filter: ["items"], run: function() { this._coordinates.length < 1 && this.$stage.removeAttr("style") } }, { filter: ["width", "items", "settings"], run: function(t) { t.current = t.current ? this.$stage.children().index(t.current) : 0, t.current = Math.max(this.minimum(), Math.min(this.maximum(), t.current)), this.reset(t.current) } }, { filter: ["position"], run: function() { this.animate(this.coordinates(this._current)) } }, { filter: ["width", "position", "items", "settings"], run: function() { for (var t, e, i = this.settings.rtl ? 1 : -1, o = 2 * this.settings.stagePadding, s = this.coordinates(this.current()) + o, n = s + this.width() * i, r = [], a = 0, l = this._coordinates.length; a < l; a++) t = this._coordinates[a - 1] || 0, e = Math.abs(this._coordinates[a]) + o * i, (this.op(t, "<=", s) && this.op(t, ">", n) || this.op(e, "<", s) && this.op(e, ">", n)) && r.push(a); this.$stage.children(".active").removeClass("active"), this.$stage.children(":eq(" + r.join("), :eq(") + ")").addClass("active"), this.$stage.children(".center").removeClass("center"), this.settings.center && this.$stage.children().eq(this.current()).addClass("center") } }], c.prototype.initializeStage = function() { this.$stage = this.$element.find("." + this.settings.stageClass), this.$stage.length || (this.$element.addClass(this.options.loadingClass), this.$stage = l("<" + this.settings.stageElement + ">", { class: this.settings.stageClass }).wrap(l("
", { class: this.settings.stageOuterClass })), this.$element.append(this.$stage.parent())) }, c.prototype.initializeItems = function() { var t = this.$element.find(".owl-item"); if (t.length) return this._items = t.get().map(function(t) { return l(t) }), this._mergers = this._items.map(function() { return 1 }), void this.refresh(); this.replace(this.$element.children().not(this.$stage.parent())), this.isVisible() ? this.refresh() : this.invalidate("width"), this.$element.removeClass(this.options.loadingClass).addClass(this.options.loadedClass) }, c.prototype.initialize = function() { var t, e; this.enter("initializing"), this.trigger("initialize"), this.$element.toggleClass(this.settings.rtlClass, this.settings.rtl), this.settings.autoWidth && !this.is("pre-loading") && (t = this.$element.find("img"), e = this.settings.nestedItemSelector ? "." + this.settings.nestedItemSelector : a, e = this.$element.children(e).width(), t.length && e <= 0 && this.preloadAutoWidthImages(t)), this.initializeStage(), this.initializeItems(), this.registerEventHandlers(), this.leave("initializing"), this.trigger("initialized") }, c.prototype.isVisible = function() { return !this.settings.checkVisibility || this.$element.is(":visible") }, c.prototype.setup = function() { var e = this.viewport(), t = this.options.responsive, i = -1, o = null; t ? (l.each(t, function(t) { t <= e && i < t && (i = Number(t)) }), "function" == typeof(o = l.extend({}, this.options, t[i])).stagePadding && (o.stagePadding = o.stagePadding()), delete o.responsive, o.responsiveClass && this.$element.attr("class", this.$element.attr("class").replace(new RegExp("(" + this.options.responsiveClass + "-)\\S+\\s", "g"), "$1" + i))) : o = l.extend({}, this.options), this.trigger("change", { property: { name: "settings", value: o } }), this._breakpoint = i, this.settings = o, this.invalidate("settings"), this.trigger("changed", { property: { name: "settings", value: this.settings } }) }, c.prototype.optionsLogic = function() { this.settings.autoWidth && (this.settings.stagePadding = !1, this.settings.merge = !1) }, c.prototype.prepare = function(t) { var e = this.trigger("prepare", { content: t }); return e.data || (e.data = l("<" + this.settings.itemElement + "/>").addClass(this.options.itemClass).append(t)), this.trigger("prepared", { content: e.data }), e.data }, c.prototype.update = function() { for (var t = 0, e = this._pipe.length, i = l.proxy(function(t) { return this[t] }, this._invalidated), o = {}; t < e;)(this._invalidated.all || 0 < l.grep(this._pipe[t].filter, i).length) && this._pipe[t].run(o), t++; this._invalidated = {}, this.is("valid") || this.enter("valid") }, c.prototype.width = function(t) { switch (t = t || c.Width.Default) { case c.Width.Inner: case c.Width.Outer: return this._width; default: return this._width - 2 * this.settings.stagePadding + this.settings.margin } }, c.prototype.refresh = function() { this.enter("refreshing"), this.trigger("refresh"), this.setup(), this.optionsLogic(), this.$element.addClass(this.options.refreshClass), this.update(), this.$element.removeClass(this.options.refreshClass), this.leave("refreshing"), this.trigger("refreshed") }, c.prototype.onThrottledResize = function() { i.clearTimeout(this.resizeTimer), this.resizeTimer = i.setTimeout(this._handlers.onResize, this.settings.responsiveRefreshRate) }, c.prototype.onResize = function() { return !!this._items.length && this._width !== this.$element.width() && !!this.isVisible() && (this.enter("resizing"), this.trigger("resize").isDefaultPrevented() ? (this.leave("resizing"), !1) : (this.invalidate("width"), this.refresh(), this.leave("resizing"), void this.trigger("resized"))) }, c.prototype.registerEventHandlers = function() { l.support.transition && this.$stage.on(l.support.transition.end + ".owl.core", l.proxy(this.onTransitionEnd, this)), !1 !== this.settings.responsive && this.on(i, "resize", this._handlers.onThrottledResize), this.settings.mouseDrag && (this.$element.addClass(this.options.dragClass), this.$stage.on("mousedown.owl.core", l.proxy(this.onDragStart, this)), this.$stage.on("dragstart.owl.core selectstart.owl.core", function() { return !1 })), this.settings.touchDrag && (this.$stage.on("touchstart.owl.core", l.proxy(this.onDragStart, this)), this.$stage.on("touchcancel.owl.core", l.proxy(this.onDragEnd, this))) }, c.prototype.onDragStart = function(t) { var e = null; 3 !== t.which && (e = l.support.transform ? { x: (e = this.$stage.css("transform").replace(/.*\(|\)| /g, "").split(","))[16 === e.length ? 12 : 4], y: e[16 === e.length ? 13 : 5] } : (e = this.$stage.position(), { x: this.settings.rtl ? e.left + this.$stage.width() - this.width() + this.settings.margin : e.left, y: e.top }), this.is("animating") && (l.support.transform ? this.animate(e.x) : this.$stage.stop(), this.invalidate("position")), this.$element.toggleClass(this.options.grabClass, "mousedown" === t.type), this.speed(0), this._drag.time = (new Date).getTime(), this._drag.target = l(t.target), this._drag.stage.start = e, this._drag.stage.current = e, this._drag.pointer = this.pointer(t), l(o).on("mouseup.owl.core touchend.owl.core", l.proxy(this.onDragEnd, this)), l(o).one("mousemove.owl.core touchmove.owl.core", l.proxy(function(t) { var e = this.difference(this._drag.pointer, this.pointer(t)); l(o).on("mousemove.owl.core touchmove.owl.core", l.proxy(this.onDragMove, this)), Math.abs(e.x) < Math.abs(e.y) && this.is("valid") || (t.preventDefault(), this.enter("dragging"), this.trigger("drag")) }, this))) }, c.prototype.onDragMove = function(t) { var e = null, i = null, o = this.difference(this._drag.pointer, this.pointer(t)), s = this.difference(this._drag.stage.start, o); this.is("dragging") && (t.preventDefault(), this.settings.loop ? (e = this.coordinates(this.minimum()), i = this.coordinates(this.maximum() + 1) - e, s.x = ((s.x - e) % i + i) % i + e) : (e = this.settings.rtl ? this.coordinates(this.maximum()) : this.coordinates(this.minimum()), i = this.settings.rtl ? this.coordinates(this.minimum()) : this.coordinates(this.maximum()), o = this.settings.pullDrag ? -1 * o.x / 5 : 0, s.x = Math.max(Math.min(s.x, e + o), i + o)), this._drag.stage.current = s, this.animate(s.x)) }, c.prototype.onDragEnd = function(t) { var e = this.difference(this._drag.pointer, this.pointer(t)), i = this._drag.stage.current, t = 0 < e.x ^ this.settings.rtl ? "left" : "right"; l(o).off(".owl.core"), this.$element.removeClass(this.options.grabClass), (0 !== e.x && this.is("dragging") || !this.is("valid")) && (this.speed(this.settings.dragEndSpeed || this.settings.smartSpeed), this.current(this.closest(i.x, 0 !== e.x ? t : this._drag.direction)), this.invalidate("position"), this.update(), this._drag.direction = t, (3 < Math.abs(e.x) || 300 < (new Date).getTime() - this._drag.time) && this._drag.target.one("click.owl.core", function() { return !1 })), this.is("dragging") && (this.leave("dragging"), this.trigger("dragged")) }, c.prototype.closest = function(i, o) { var s = -1, n = this.width(), r = this.coordinates(); return this.settings.freeDrag || l.each(r, l.proxy(function(t, e) { return "left" === o && e - 30 < i && i < e + 30 ? s = t : "right" === o && e - n - 30 < i && i < e - n + 30 ? s = t + 1 : this.op(i, "<", e) && this.op(i, ">", r[t + 1] !== a ? r[t + 1] : e - n) && (s = "left" === o ? t + 1 : t), -1 === s }, this)), this.settings.loop || (this.op(i, ">", r[this.minimum()]) ? s = i = this.minimum() : this.op(i, "<", r[this.maximum()]) && (s = i = this.maximum())), s }, c.prototype.animate = function(t) { var e = 0 < this.speed(); this.is("animating") && this.onTransitionEnd(), e && (this.enter("animating"), this.trigger("translate")), l.support.transform3d && l.support.transition ? this.$stage.css({ transform: "translate3d(" + t + "px,0px,0px)", transition: this.speed() / 1e3 + "s" + (this.settings.slideTransition ? " " + this.settings.slideTransition : "") }) : e ? this.$stage.animate({ left: t + "px" }, this.speed(), this.settings.fallbackEasing, l.proxy(this.onTransitionEnd, this)) : this.$stage.css({ left: t + "px" }) }, c.prototype.is = function(t) { return this._states.current[t] && 0 < this._states.current[t] }, c.prototype.current = function(t) { return t === a ? this._current : 0 === this._items.length ? a : (t = this.normalize(t), this._current !== t && ((e = this.trigger("change", { property: { name: "position", value: t } })).data !== a && (t = this.normalize(e.data)), this._current = t, this.invalidate("position"), this.trigger("changed", { property: { name: "position", value: this._current } })), this._current); var e }, c.prototype.invalidate = function(t) { return "string" === l.type(t) && (this._invalidated[t] = !0, this.is("valid") && this.leave("valid")), l.map(this._invalidated, function(t, e) { return e }) }, c.prototype.reset = function(t) { (t = this.normalize(t)) !== a && (this._speed = 0, this._current = t, this.suppress(["translate", "translated"]), this.animate(this.coordinates(t)), this.release(["translate", "translated"])) }, c.prototype.normalize = function(t, e) { var i = this._items.length, e = e ? 0 : this._clones.length; return !this.isNumeric(t) || i < 1 ? t = a : (t < 0 || i + e <= t) && (t = ((t - e / 2) % i + i) % i + e / 2), t }, c.prototype.relative = function(t) { return t -= this._clones.length / 2, this.normalize(t, !0) }, c.prototype.maximum = function(t) { var e, i, o, s = this.settings, n = this._coordinates.length; if (s.loop) n = this._clones.length / 2 + this._items.length - 1; else if (s.autoWidth || s.merge) { if (e = this._items.length) for (i = this._items[--e].width(), o = this.$element.width(); e-- && !(o < (i += this._items[e].width() + this.settings.margin));); n = e + 1 } else n = s.center ? this._items.length - 1 : this._items.length - s.items; return t && (n -= this._clones.length / 2), Math.max(n, 0) }, c.prototype.minimum = function(t) { return t ? 0 : this._clones.length / 2 }, c.prototype.items = function(t) { return t === a ? this._items.slice() : (t = this.normalize(t, !0), this._items[t]) }, c.prototype.mergers = function(t) { return t === a ? this._mergers.slice() : (t = this.normalize(t, !0), this._mergers[t]) }, c.prototype.clones = function(i) { function o(t) { return t % 2 == 0 ? s + t / 2 : e - (t + 1) / 2 } var e = this._clones.length / 2, s = e + this._items.length; return i === a ? l.map(this._clones, function(t, e) { return o(e) }) : l.map(this._clones, function(t, e) { return t === i ? o(e) : null }) }, c.prototype.speed = function(t) { return t !== a && (this._speed = t), this._speed }, c.prototype.coordinates = function(t) { var e, i = 1, o = t - 1; return t === a ? l.map(this._coordinates, l.proxy(function(t, e) { return this.coordinates(e) }, this)) : (this.settings.center ? (this.settings.rtl && (i = -1, o = t + 1), e = this._coordinates[t], e += (this.width() - e + (this._coordinates[o] || 0)) / 2 * i) : e = this._coordinates[o] || 0, e = Math.ceil(e)) }, c.prototype.duration = function(t, e, i) { return 0 === i ? 0 : Math.min(Math.max(Math.abs(e - t), 1), 6) * Math.abs(i || this.settings.smartSpeed) }, c.prototype.to = function(t, e) { var i = this.current(), o = t - this.relative(i), s = (0 < o) - (o < 0), n = this._items.length, r = this.minimum(), a = this.maximum(); this.settings.loop ? (!this.settings.rewind && Math.abs(o) > n / 2 && (o += -1 * s * n), (n = (((t = i + o) - r) % n + n) % n + r) !== t && n - o <= a && 0 < n - o && (i = n - o, t = n, this.reset(i))) : t = this.settings.rewind ? (t % (a += 1) + a) % a : Math.max(r, Math.min(a, t)), this.speed(this.duration(i, t, e)), this.current(t), this.isVisible() && this.update() }, c.prototype.next = function(t) { t = t || !1, this.to(this.relative(this.current()) + 1, t) }, c.prototype.prev = function(t) { t = t || !1, this.to(this.relative(this.current()) - 1, t) }, c.prototype.onTransitionEnd = function(t) { if (t !== a && (t.stopPropagation(), (t.target || t.srcElement || t.originalTarget) !== this.$stage.get(0))) return !1; this.leave("animating"), this.trigger("translated") }, c.prototype.viewport = function() { var t; return this.options.responsiveBaseElement !== i ? t = l(this.options.responsiveBaseElement).width() : i.innerWidth ? t = i.innerWidth : o.documentElement && o.documentElement.clientWidth ? t = o.documentElement.clientWidth : console.warn("Can not detect viewport width."), t }, c.prototype.replace = function(t) { this.$stage.empty(), this._items = [], t = t && (t instanceof jQuery ? t : l(t)), this.settings.nestedItemSelector && (t = t.find("." + this.settings.nestedItemSelector)), t.filter(function() { return 1 === this.nodeType }).each(l.proxy(function(t, e) { e = this.prepare(e), this.$stage.append(e), this._items.push(e), this._mergers.push(+e.find("[data-merge]").addBack("[data-merge]").attr("data-merge") || 1) }, this)), this.reset(this.isNumeric(this.settings.startPosition) ? this.settings.startPosition : 0), this.invalidate("items") }, c.prototype.add = function(t, e) { var i = this.relative(this._current); e = e === a ? this._items.length : this.normalize(e, !0), t = t instanceof jQuery ? t : l(t), this.trigger("add", { content: t, position: e }), t = this.prepare(t), 0 === this._items.length || e === this._items.length ? (0 === this._items.length && this.$stage.append(t), 0 !== this._items.length && this._items[e - 1].after(t), this._items.push(t), this._mergers.push(+t.find("[data-merge]").addBack("[data-merge]").attr("data-merge") || 1)) : (this._items[e].before(t), this._items.splice(e, 0, t), this._mergers.splice(e, 0, +t.find("[data-merge]").addBack("[data-merge]").attr("data-merge") || 1)), this._items[i] && this.reset(this._items[i].index()), this.invalidate("items"), this.trigger("added", { content: t, position: e }) }, c.prototype.remove = function(t) { (t = this.normalize(t, !0)) !== a && (this.trigger("remove", { content: this._items[t], position: t }), this._items[t].remove(), this._items.splice(t, 1), this._mergers.splice(t, 1), this.invalidate("items"), this.trigger("removed", { content: null, position: t })) }, c.prototype.preloadAutoWidthImages = function(t) { t.each(l.proxy(function(t, e) { this.enter("pre-loading"), e = l(e), l(new Image).one("load", l.proxy(function(t) { e.attr("src", t.target.src), e.css("opacity", 1), this.leave("pre-loading"), this.is("pre-loading") || this.is("initializing") || this.refresh() }, this)).attr("src", e.attr("src") || e.attr("data-src") || e.attr("data-src-retina")) }, this)) }, c.prototype.destroy = function() { for (var t in this.$element.off(".owl.core"), this.$stage.off(".owl.core"), l(o).off(".owl.core"), !1 !== this.settings.responsive && (i.clearTimeout(this.resizeTimer), this.off(i, "resize", this._handlers.onThrottledResize)), this._plugins) this._plugins[t].destroy(); this.$stage.children(".cloned").remove(), this.$stage.unwrap(), this.$stage.children().contents().unwrap(), this.$stage.children().unwrap(), this.$stage.remove(), this.$element.removeClass(this.options.refreshClass).removeClass(this.options.loadingClass).removeClass(this.options.loadedClass).removeClass(this.options.rtlClass).removeClass(this.options.dragClass).removeClass(this.options.grabClass).attr("class", this.$element.attr("class").replace(new RegExp(this.options.responsiveClass + "-\\S+\\s", "g"), "")).removeData("owl.carousel") }, c.prototype.op = function(t, e, i) { var o = this.settings.rtl; switch (e) { case "<": return o ? i < t : t < i; case ">": return o ? t < i : i < t; case ">=": return o ? t <= i : i <= t; case "<=": return o ? i <= t : t <= i } }, c.prototype.on = function(t, e, i, o) { t.addEventListener ? t.addEventListener(e, i, o) : t.attachEvent && t.attachEvent("on" + e, i) }, c.prototype.off = function(t, e, i, o) { t.removeEventListener ? t.removeEventListener(e, i, o) : t.detachEvent && t.detachEvent("on" + e, i) }, c.prototype.trigger = function(t, e, i, o, s) { var n = { item: { count: this._items.length, index: this.current() } }, r = l.camelCase(l.grep(["on", t, i], function(t) { return t }).join("-").toLowerCase()), a = l.Event([t, "owl", i || "carousel"].join(".").toLowerCase(), l.extend({ relatedTarget: this }, n, e)); return this._supress[t] || (l.each(this._plugins, function(t, e) { e.onTrigger && e.onTrigger(a) }), this.register({ type: c.Type.Event, name: t }), this.$element.trigger(a), this.settings && "function" == typeof this.settings[r] && this.settings[r].call(this, a)), a }, c.prototype.enter = function(t) { l.each([t].concat(this._states.tags[t] || []), l.proxy(function(t, e) { this._states.current[e] === a && (this._states.current[e] = 0), this._states.current[e]++ }, this)) }, c.prototype.leave = function(t) { l.each([t].concat(this._states.tags[t] || []), l.proxy(function(t, e) { this._states.current[e]-- }, this)) }, c.prototype.register = function(i) { var e; i.type === c.Type.Event ? (l.event.special[i.name] || (l.event.special[i.name] = {}), l.event.special[i.name].owl || (e = l.event.special[i.name]._default, l.event.special[i.name]._default = function(t) { return !e || !e.apply || t.namespace && -1 !== t.namespace.indexOf("owl") ? t.namespace && -1 < t.namespace.indexOf("owl") : e.apply(this, arguments) }, l.event.special[i.name].owl = !0)) : i.type === c.Type.State && (this._states.tags[i.name] ? this._states.tags[i.name] = this._states.tags[i.name].concat(i.tags) : this._states.tags[i.name] = i.tags, this._states.tags[i.name] = l.grep(this._states.tags[i.name], l.proxy(function(t, e) { return l.inArray(t, this._states.tags[i.name]) === e }, this))) }, c.prototype.suppress = function(t) { l.each(t, l.proxy(function(t, e) { this._supress[e] = !0 }, this)) }, c.prototype.release = function(t) { l.each(t, l.proxy(function(t, e) { delete this._supress[e] }, this)) }, c.prototype.pointer = function(t) { var e = { x: null, y: null }; return (t = (t = t.originalEvent || t || i.event).touches && t.touches.length ? t.touches[0] : t.changedTouches && t.changedTouches.length ? t.changedTouches[0] : t).pageX ? (e.x = t.pageX, e.y = t.pageY) : (e.x = t.clientX, e.y = t.clientY), e }, c.prototype.isNumeric = function(t) { return !isNaN(parseFloat(t)) }, c.prototype.difference = function(t, e) { return { x: t.x - e.x, y: t.y - e.y } }, l.fn.owlCarousel = function(e) { var o = Array.prototype.slice.call(arguments, 1); return this.each(function() { var t = l(this), i = t.data("owl.carousel"); i || (i = new c(this, "object" == typeof e && e), t.data("owl.carousel", i), l.each(["next", "prev", "to", "destroy", "refresh", "replace", "add", "remove"], function(t, e) { i.register({ type: c.Type.Event, name: e }), i.$element.on(e + ".owl.carousel.core", l.proxy(function(t) { t.namespace && t.relatedTarget !== this && (this.suppress([e]), i[e].apply(this, [].slice.call(arguments, 1)), this.release([e])) }, i)) })), "string" == typeof e && "_" !== e.charAt(0) && i[e].apply(i, o) }) }, l.fn.owlCarousel.Constructor = c }(window.Zepto || window.jQuery, window, document), function(e, i) { var o = function(t) { this._core = t, this._interval = null, this._visible = null, this._handlers = { "initialized.owl.carousel": e.proxy(function(t) { t.namespace && this._core.settings.autoRefresh && this.watch() }, this) }, this._core.options = e.extend({}, o.Defaults, this._core.options), this._core.$element.on(this._handlers) }; o.Defaults = { autoRefresh: !0, autoRefreshInterval: 500 }, o.prototype.watch = function() { this._interval || (this._visible = this._core.isVisible(), this._interval = i.setInterval(e.proxy(this.refresh, this), this._core.settings.autoRefreshInterval)) }, o.prototype.refresh = function() { this._core.isVisible() !== this._visible && (this._visible = !this._visible, this._core.$element.toggleClass("owl-hidden", !this._visible), this._visible && this._core.invalidate("width") && this._core.refresh()) }, o.prototype.destroy = function() { var t, e; for (t in i.clearInterval(this._interval), this._handlers) this._core.$element.off(t, this._handlers[t]); for (e in Object.getOwnPropertyNames(this)) "function" != typeof this[e] && (this[e] = null) }, e.fn.owlCarousel.Constructor.Plugins.AutoRefresh = o }(window.Zepto || window.jQuery, window, document), function(a, s) { var e = function(t) { this._core = t, this._loaded = [], this._handlers = { "initialized.owl.carousel change.owl.carousel resized.owl.carousel": a.proxy(function(t) { if (t.namespace && this._core.settings && this._core.settings.lazyLoad && (t.property && "position" == t.property.name || "initialized" == t.type)) { var e = this._core.settings, i = e.center && Math.ceil(e.items / 2) || e.items, o = e.center && -1 * i || 0, s = (t.property && void 0 !== t.property.value ? t.property.value : this._core.current()) + o, n = this._core.clones().length, r = a.proxy(function(t, e) { this.load(e) }, this); for (0 < e.lazyLoadEager && (i += e.lazyLoadEager, e.loop && (s -= e.lazyLoadEager, i++)); o++ < i;) this.load(n / 2 + this._core.relative(s)), n && a.each(this._core.clones(this._core.relative(s)), r), s++ } }, this) }, this._core.options = a.extend({}, e.Defaults, this._core.options), this._core.$element.on(this._handlers) }; e.Defaults = { lazyLoad: !1, lazyLoadEager: 0 }, e.prototype.load = function(t) { var e = this._core.$stage.children().eq(t); !(t = e && e.find(".owl-lazy")) || -1 < a.inArray(e.get(0), this._loaded) || (t.each(a.proxy(function(t, e) { var i = a(e), o = 1 < s.devicePixelRatio && i.attr("data-src-retina") || i.attr("data-src") || i.attr("data-srcset"); this._core.trigger("load", { element: i, url: o }, "lazy"), i.is("img") ? i.one("load.owl.lazy", a.proxy(function() { i.css("opacity", 1), this._core.trigger("loaded", { element: i, url: o }, "lazy") }, this)).attr("src", o) : i.is("source") ? i.one("load.owl.lazy", a.proxy(function() { this._core.trigger("loaded", { element: i, url: o }, "lazy") }, this)).attr("srcset", o) : ((e = new Image).onload = a.proxy(function() { i.css({ "background-image": 'url("' + o + '")', opacity: "1" }), this._core.trigger("loaded", { element: i, url: o }, "lazy") }, this), e.src = o) }, this)), this._loaded.push(e.get(0))) }, e.prototype.destroy = function() { var t, e; for (t in this.handlers) this._core.$element.off(t, this.handlers[t]); for (e in Object.getOwnPropertyNames(this)) "function" != typeof this[e] && (this[e] = null) }, a.fn.owlCarousel.Constructor.Plugins.Lazy = e }(window.Zepto || window.jQuery, window, document), function(s, i) { var o = function(t) { this._core = t, this._previousHeight = null, this._handlers = { "initialized.owl.carousel refreshed.owl.carousel": s.proxy(function(t) { t.namespace && this._core.settings.autoHeight && this.update() }, this), "changed.owl.carousel": s.proxy(function(t) { t.namespace && this._core.settings.autoHeight && "position" === t.property.name && this.update() }, this), "loaded.owl.lazy": s.proxy(function(t) { t.namespace && this._core.settings.autoHeight && t.element.closest("." + this._core.settings.itemClass).index() === this._core.current() && this.update() }, this) }, this._core.options = s.extend({}, o.Defaults, this._core.options), this._core.$element.on(this._handlers), this._intervalId = null; var e = this; s(i).on("load", function() { e._core.settings.autoHeight && e.update() }), s(i).resize(function() { e._core.settings.autoHeight && (null != e._intervalId && clearTimeout(e._intervalId), e._intervalId = setTimeout(function() { e.update() }, 250)) }) }; o.Defaults = { autoHeight: !1, autoHeightClass: "owl-height" }, o.prototype.update = function() { var t = (i = this._core._current) + this._core.settings.items, e = this._core.settings.lazyLoad, i = this._core.$stage.children().toArray().slice(i, t), o = [], t = 0; s.each(i, function(t, e) { o.push(s(e).height()) }), (t = Math.max.apply(null, o)) <= 1 && e && this._previousHeight && (t = this._previousHeight), this._previousHeight = t, this._core.$stage.parent().height(t).addClass(this._core.settings.autoHeightClass) }, o.prototype.destroy = function() { var t, e; for (t in this._handlers) this._core.$element.off(t, this._handlers[t]); for (e in Object.getOwnPropertyNames(this)) "function" != typeof this[e] && (this[e] = null) }, s.fn.owlCarousel.Constructor.Plugins.AutoHeight = o }(window.Zepto || window.jQuery, window, document), function(c, e) { var i = function(t) { this._core = t, this._videos = {}, this._playing = null, this._handlers = { "initialized.owl.carousel": c.proxy(function(t) { t.namespace && this._core.register({ type: "state", name: "playing", tags: ["interacting"] }) }, this), "resize.owl.carousel": c.proxy(function(t) { t.namespace && this._core.settings.video && this.isInFullScreen() && t.preventDefault() }, this), "refreshed.owl.carousel": c.proxy(function(t) { t.namespace && this._core.is("resizing") && this._core.$stage.find(".cloned .owl-video-frame").remove() }, this), "changed.owl.carousel": c.proxy(function(t) { t.namespace && "position" === t.property.name && this._playing && this.stop() }, this), "prepared.owl.carousel": c.proxy(function(t) { var e; !t.namespace || (e = c(t.content).find(".owl-video")).length && (e.css("display", "none"), this.fetch(e, c(t.content))) }, this) }, this._core.options = c.extend({}, i.Defaults, this._core.options), this._core.$element.on(this._handlers), this._core.$element.on("click.owl.video", ".owl-video-play-icon", c.proxy(function(t) { this.play(t) }, this)) }; i.Defaults = { video: !1, videoHeight: !1, videoWidth: !1 }, i.prototype.fetch = function(t, e) { var i = t.attr("data-vimeo-id") ? "vimeo" : t.attr("data-vzaar-id") ? "vzaar" : "youtube", o = t.attr("data-vimeo-id") || t.attr("data-youtube-id") || t.attr("data-vzaar-id"), s = t.attr("data-width") || this._core.settings.videoWidth, n = t.attr("data-height") || this._core.settings.videoHeight, r = t.attr("href"); if (!r) throw new Error("Missing video URL."); if (-1 < (o = r.match(/(http:|https:|)\/\/(player.|www.|app.)?(vimeo\.com|youtu(be\.com|\.be|be\.googleapis\.com|be\-nocookie\.com)|vzaar\.com)\/(video\/|videos\/|embed\/|channels\/.+\/|groups\/.+\/|watch\?v=|v\/)?([A-Za-z0-9._%-]*)(\&\S+)?/))[3].indexOf("youtu")) i = "youtube"; else if (-1 < o[3].indexOf("vimeo")) i = "vimeo"; else { if (!(-1 < o[3].indexOf("vzaar"))) throw new Error("Video URL not supported."); i = "vzaar" } o = o[6], this._videos[r] = { type: i, id: o, width: s, height: n }, e.attr("data-video", r), this.thumbnail(t, this._videos[r]) }, i.prototype.thumbnail = function(e, t) { function i(t) { o = l.lazyLoad ? c("
", { class: "owl-video-tn " + a, srcType: t }) : c("
", { class: "owl-video-tn", style: "opacity:1;background-image:url(" + t + ")" }), e.after(o), e.after('
') } var o, s = t.width && t.height ? "width:" + t.width + "px;height:" + t.height + "px;" : "", n = e.find("img"), r = "src", a = "", l = this._core.settings; if (e.wrap(c("
", { class: "owl-video-wrapper", style: s })), this._core.settings.lazyLoad && (r = "data-src", a = "owl-lazy"), n.length) return i(n.attr(r)), n.remove(), !1; "youtube" === t.type ? i("//img.youtube.com/vi/" + t.id + "/hqdefault.jpg") : "vimeo" === t.type ? c.ajax({ type: "GET", url: "//vimeo.com/api/v2/video/" + t.id + ".json", jsonp: "callback", dataType: "jsonp", success: function(t) { i(t[0].thumbnail_large) } }) : "vzaar" === t.type && c.ajax({ type: "GET", url: "//vzaar.com/api/videos/" + t.id + ".json", jsonp: "callback", dataType: "jsonp", success: function(t) { i(t.framegrab_url) } }) }, i.prototype.stop = function() { this._core.trigger("stop", null, "video"), this._playing.find(".owl-video-frame").remove(), this._playing.removeClass("owl-video-playing"), this._playing = null, this._core.leave("playing"), this._core.trigger("stopped", null, "video") }, i.prototype.play = function(t) { var e = c(t.target).closest("." + this._core.settings.itemClass), i = this._videos[e.attr("data-video")], o = i.width || "100%", s = i.height || this._core.$stage.height(); this._playing || (this._core.enter("playing"), this._core.trigger("play", null, "video"), e = this._core.items(this._core.relative(e.index())), this._core.reset(e.index()), (t = c('')).attr("height", s), t.attr("width", o), "youtube" === i.type ? t.attr("src", "//www.youtube.com/embed/" + i.id + "?autoplay=1&rel=0&v=" + i.id) : "vimeo" === i.type ? t.attr("src", "//player.vimeo.com/video/" + i.id + "?autoplay=1") : "vzaar" === i.type && t.attr("src", "//view.vzaar.com/" + i.id + "/player?autoplay=true"), c(t).wrap('
').insertAfter(e.find(".owl-video")), this._playing = e.addClass("owl-video-playing")) }, i.prototype.isInFullScreen = function() { var t = e.fullscreenElement || e.mozFullScreenElement || e.webkitFullscreenElement; return t && c(t).parent().hasClass("owl-video-frame") }, i.prototype.destroy = function() { var t, e; for (t in this._core.$element.off("click.owl.video"), this._handlers) this._core.$element.off(t, this._handlers[t]); for (e in Object.getOwnPropertyNames(this)) "function" != typeof this[e] && (this[e] = null) }, c.fn.owlCarousel.Constructor.Plugins.Video = i }(window.Zepto || window.jQuery, (window, document)), function(r) { var e = function(t) { this.core = t, this.core.options = r.extend({}, e.Defaults, this.core.options), this.swapping = !0, this.previous = void 0, this.next = void 0, this.handlers = { "change.owl.carousel": r.proxy(function(t) { t.namespace && "position" == t.property.name && (this.previous = this.core.current(), this.next = t.property.value) }, this), "drag.owl.carousel dragged.owl.carousel translated.owl.carousel": r.proxy(function(t) { t.namespace && (this.swapping = "translated" == t.type) }, this), "translate.owl.carousel": r.proxy(function(t) { t.namespace && this.swapping && (this.core.options.animateOut || this.core.options.animateIn) && this.swap() }, this) }, this.core.$element.on(this.handlers) }; e.Defaults = { animateOut: !1, animateIn: !1 }, e.prototype.swap = function() { var t, e, i, o, s, n; 1 === this.core.settings.items && r.support.animation && r.support.transition && (this.core.speed(0), e = r.proxy(this.clear, this), i = this.core.$stage.children().eq(this.previous), o = this.core.$stage.children().eq(this.next), s = this.core.settings.animateIn, n = this.core.settings.animateOut, this.core.current() !== this.previous && (n && (t = this.core.coordinates(this.previous) - this.core.coordinates(this.next), i.one(r.support.animation.end, e).css({ left: t + "px" }).addClass("animated owl-animated-out").addClass(n)), s && o.one(r.support.animation.end, e).addClass("animated owl-animated-in").addClass(s))) }, e.prototype.clear = function(t) { r(t.target).css({ left: "" }).removeClass("animated owl-animated-out owl-animated-in").removeClass(this.core.settings.animateIn).removeClass(this.core.settings.animateOut), this.core.onTransitionEnd() }, e.prototype.destroy = function() { var t, e; for (t in this.handlers) this.core.$element.off(t, this.handlers[t]); for (e in Object.getOwnPropertyNames(this)) "function" != typeof this[e] && (this[e] = null) }, r.fn.owlCarousel.Constructor.Plugins.Animate = e }(window.Zepto || window.jQuery, (window, document)), function(o, s, e) { var i = function(t) { this._core = t, this._call = null, this._time = 0, this._timeout = 0, this._paused = !0, this._handlers = { "changed.owl.carousel": o.proxy(function(t) { t.namespace && "settings" === t.property.name ? this._core.settings.autoplay ? this.play() : this.stop() : t.namespace && "position" === t.property.name && this._paused && (this._time = 0) }, this), "initialized.owl.carousel": o.proxy(function(t) { t.namespace && this._core.settings.autoplay && this.play() }, this), "play.owl.autoplay": o.proxy(function(t, e, i) { t.namespace && this.play(e, i) }, this), "stop.owl.autoplay": o.proxy(function(t) { t.namespace && this.stop() }, this), "mouseover.owl.autoplay": o.proxy(function() { this._core.settings.autoplayHoverPause && this._core.is("rotating") && this.pause() }, this), "mouseleave.owl.autoplay": o.proxy(function() { this._core.settings.autoplayHoverPause && this._core.is("rotating") && this.play() }, this), "touchstart.owl.core": o.proxy(function() { this._core.settings.autoplayHoverPause && this._core.is("rotating") && this.pause() }, this), "touchend.owl.core": o.proxy(function() { this._core.settings.autoplayHoverPause && this.play() }, this) }, this._core.$element.on(this._handlers), this._core.options = o.extend({}, i.Defaults, this._core.options) }; i.Defaults = { autoplay: !1, autoplayTimeout: 5e3, autoplayHoverPause: !1, autoplaySpeed: !1 }, i.prototype._next = function(t) { this._call = s.setTimeout(o.proxy(this._next, this, t), this._timeout * (Math.round(this.read() / this._timeout) + 1) - this.read()), this._core.is("interacting") || e.hidden || this._core.next(t || this._core.settings.autoplaySpeed) }, i.prototype.read = function() { return (new Date).getTime() - this._time }, i.prototype.play = function(t, e) { var i; this._core.is("rotating") || this._core.enter("rotating"), t = t || this._core.settings.autoplayTimeout, i = Math.min(this._time % (this._timeout || t), t), this._paused ? (this._time = this.read(), this._paused = !1) : s.clearTimeout(this._call), this._time += this.read() % t - i, this._timeout = t, this._call = s.setTimeout(o.proxy(this._next, this, e), t - i) }, i.prototype.stop = function() { this._core.is("rotating") && (this._time = 0, this._paused = !0, s.clearTimeout(this._call), this._core.leave("rotating")) }, i.prototype.pause = function() { this._core.is("rotating") && !this._paused && (this._time = this.read(), this._paused = !0, s.clearTimeout(this._call)) }, i.prototype.destroy = function() { var t, e; for (t in this.stop(), this._handlers) this._core.$element.off(t, this._handlers[t]); for (e in Object.getOwnPropertyNames(this)) "function" != typeof this[e] && (this[e] = null) }, o.fn.owlCarousel.Constructor.Plugins.autoplay = i }(window.Zepto || window.jQuery, window, document), function(s) { "use strict"; var e = function(t) { this._core = t, this._initialized = !1, this._pages = [], this._controls = {}, this._templates = [], this.$element = this._core.$element, this._overrides = { next: this._core.next, prev: this._core.prev, to: this._core.to }, this._handlers = { "prepared.owl.carousel": s.proxy(function(t) { t.namespace && this._core.settings.dotsData && this._templates.push('
' + s(t.content).find("[data-dot]").addBack("[data-dot]").attr("data-dot") + "
") }, this), "added.owl.carousel": s.proxy(function(t) { t.namespace && this._core.settings.dotsData && this._templates.splice(t.position, 0, this._templates.pop()) }, this), "remove.owl.carousel": s.proxy(function(t) { t.namespace && this._core.settings.dotsData && this._templates.splice(t.position, 1) }, this), "changed.owl.carousel": s.proxy(function(t) { t.namespace && "position" == t.property.name && this.draw() }, this), "initialized.owl.carousel": s.proxy(function(t) { t.namespace && !this._initialized && (this._core.trigger("initialize", null, "navigation"), this.initialize(), this.update(), this.draw(), this._initialized = !0, this._core.trigger("initialized", null, "navigation")) }, this), "refreshed.owl.carousel": s.proxy(function(t) { t.namespace && this._initialized && (this._core.trigger("refresh", null, "navigation"), this.update(), this.draw(), this._core.trigger("refreshed", null, "navigation")) }, this) }, this._core.options = s.extend({}, e.Defaults, this._core.options), this.$element.on(this._handlers) }; e.Defaults = { nav: !1, navText: ['', ''], navSpeed: !1, navElement: 'button type="button" role="presentation"', navContainer: !1, navContainerClass: "owl-nav", navClass: ["owl-prev", "owl-next"], slideBy: 1, dotClass: "owl-dot", dotsClass: "owl-dots", dots: !0, dotsEach: !1, dotsData: !1, dotsSpeed: !1, dotsContainer: !1 }, e.prototype.initialize = function() { var t, i = this._core.settings; for (t in this._controls.$relative = (i.navContainer ? s(i.navContainer) : s("
").addClass(i.navContainerClass).appendTo(this.$element)).addClass("disabled"), this._controls.$previous = s("<" + i.navElement + ">").addClass(i.navClass[0]).html(i.navText[0]).prependTo(this._controls.$relative).on("click", s.proxy(function(t) { this.prev(i.navSpeed) }, this)), this._controls.$next = s("<" + i.navElement + ">").addClass(i.navClass[1]).html(i.navText[1]).appendTo(this._controls.$relative).on("click", s.proxy(function(t) { this.next(i.navSpeed) }, this)), i.dotsData || (this._templates = [s('', tClose: "Close (Esc)", tLoading: "Loading...", autoFocusLast: !0 } }, c.fn.magnificPopup = function(t) { n(); var e, i, o, s = c(this); return "string" == typeof t ? "open" === t ? (e = a ? s.data("magnificPopup") : s[0].magnificPopup, i = parseInt(arguments[1], 10) || 0, o = e.items ? e.items[i] : (o = s, e.delegate && (o = o.find(e.delegate)), o.eq(i)), f._openClick({ mfpEl: o }, s, e)) : f.isOpen && f[t].apply(f, Array.prototype.slice.call(arguments, 1)) : (t = c.extend(!0, {}, t), a ? s.data("magnificPopup", t) : s[0].magnificPopup = t, f.addGroup(s, t)), s }; var $, T, S, k = "inline"; function z() { I && c(document.body).removeClass(I) } function E() { z(), f.req && f.req.abort() } c.magnificPopup.registerModule(k, { options: { hiddenClass: "hide", markup: "", tNotFound: "Content not found" }, proto: { initInline: function() { f.types.push(k), h(l + "." + k, function() { C() }) }, getInline: function(t, e) { if (C(), t.src) { var i, o = f.st.inline, s = c(t.src); return s.length ? ((i = s[0].parentNode) && i.tagName && (T || ($ = o.hiddenClass, T = u($), $ = "mfp-" + $), S = s.after(T).detach().removeClass($)), f.updateStatus("ready")) : (f.updateStatus("error", o.tNotFound), s = c("
")), t.inlineElement = s } return f.updateStatus("ready"), f._parseMarkup(e, {}, t), e } } }); var I, O, A, P = "ajax"; function L(t) { var e; !f.currTemplate[M] || (e = f.currTemplate[M].find("iframe")).length && (t || (e[0].src = "//about:blank"), f.isIE8 && e.css("display", t ? "block" : "none")) } c.magnificPopup.registerModule(P, { options: { settings: null, cursor: "mfp-ajax-cur", tError: 'The content could not be loaded.' }, proto: { initAjax: function() { f.types.push(P), I = f.st.ajax.cursor, h(l + "." + P, E), h("BeforeChange." + P, E) }, getAjax: function(o) { I && c(document.body).addClass(I), f.updateStatus("loading"); var t = c.extend({ url: o.src, success: function(t, e, i) { d("ParseAjax", i = { data: t, xhr: i }), f.appendContent(c(i.data), P), o.finished = !0, z(), f._setFocus(), setTimeout(function() { f.wrap.addClass(_) }, 16), f.updateStatus("ready"), d("AjaxContentAdded") }, error: function() { z(), o.finished = o.loadError = !0, f.updateStatus("error", f.st.ajax.tError.replace("%url%", o.src)) } }, f.st.ajax.settings); return f.req = c.ajax(t), "" } } }), c.magnificPopup.registerModule("image", { options: { markup: '
', cursor: "mfp-zoom-out-cur", titleSrc: "title", verticalFit: !0, tError: 'The image could not be loaded.' }, proto: { initImage: function() { var t = f.st.image, e = ".image"; f.types.push("image"), h(b + e, function() { "image" === f.currItem.type && t.cursor && c(document.body).addClass(t.cursor) }), h(l + e, function() { t.cursor && c(document.body).removeClass(t.cursor), x.off("resize" + w) }), h("Resize" + e, f.resizeImage), f.isLowIE && h("AfterChange", f.resizeImage) }, resizeImage: function() { var t, e = f.currItem; e && e.img && f.st.image.verticalFit && (t = 0, f.isLowIE && (t = parseInt(e.img.css("padding-top"), 10) + parseInt(e.img.css("padding-bottom"), 10)), e.img.css("max-height", f.wH - t)) }, _onImageHasSize: function(t) { t.img && (t.hasSize = !0, O && clearInterval(O), t.isCheckingImgSize = !1, d("ImageHasSize", t), t.imgHidden && (f.content && f.content.removeClass("mfp-loading"), t.imgHidden = !1)) }, findImageSize: function(e) { var i = 0, o = e.img[0], s = function(t) { O && clearInterval(O), O = setInterval(function() { return 0 < o.naturalWidth ? void f._onImageHasSize(e) : (200 < i && clearInterval(O), void(3 == ++i ? s(10) : 40 === i ? s(50) : 100 === i && s(500))) }, t) }; s(1) }, getImage: function(t, e) { var i, o = 0, s = function() { t && (t.img[0].complete ? (t.img.off(".mfploader"), t === f.currItem && (f._onImageHasSize(t), f.updateStatus("ready")), t.hasSize = !0, t.loaded = !0, d("ImageLoadComplete")) : ++o < 200 ? setTimeout(s, 100) : n()) }, n = function() { t && (t.img.off(".mfploader"), t === f.currItem && (f._onImageHasSize(t), f.updateStatus("error", r.tError.replace("%url%", t.src))), t.hasSize = !0, t.loaded = !0, t.loadError = !0) }, r = f.st.image, a = e.find(".mfp-img"); return a.length && ((i = document.createElement("img")).className = "mfp-img", t.el && t.el.find("img").length && (i.alt = t.el.find("img").attr("alt")), t.img = c(i).on("load.mfploader", s).on("error.mfploader", n), i.src = t.src, a.is("img") && (t.img = t.img.clone()), 0 < (i = t.img[0]).naturalWidth ? t.hasSize = !0 : i.width || (t.hasSize = !1)), f._parseMarkup(e, { title: function(t) { if (t.data && void 0 !== t.data.title) return t.data.title; var e = f.st.image.titleSrc; if (e) { if (c.isFunction(e)) return e.call(f, t); if (t.el) return t.el.attr(e) || "" } return "" }(t), img_replaceWith: t.img }, t), f.resizeImage(), t.hasSize ? (O && clearInterval(O), t.loadError ? (e.addClass("mfp-loading"), f.updateStatus("error", r.tError.replace("%url%", t.src))) : (e.removeClass("mfp-loading"), f.updateStatus("ready"))) : (f.updateStatus("loading"), t.loading = !0, t.hasSize || (t.imgHidden = !0, e.addClass("mfp-loading"), f.findImageSize(t))), e } } }), c.magnificPopup.registerModule("zoom", { options: { enabled: !1, easing: "ease-in-out", duration: 300, opener: function(t) { return t.is("img") ? t : t.find("img") } }, proto: { initZoom: function() { var t, e, i, o, s, n, r = f.st.zoom, a = ".zoom"; r.enabled && f.supportsTransition && (o = r.duration, s = function(t) { var e = t.clone().removeAttr("style").removeAttr("class").addClass("mfp-animated-image"), i = "all " + r.duration / 1e3 + "s " + r.easing, o = { position: "fixed", zIndex: 9999, left: 0, top: 0, "-webkit-backface-visibility": "hidden" }; return o["-webkit-" + (t = "transition")] = o["-moz-" + t] = o["-o-" + t] = o[t] = i, e.css(o), e }, n = function() { f.content.css("visibility", "visible") }, h("BuildControls" + a, function() { f._allowZoom() && (clearTimeout(e), f.content.css("visibility", "hidden"), (t = f._getItemToZoom()) ? ((i = s(t)).css(f._getOffset()), f.wrap.append(i), e = setTimeout(function() { i.css(f._getOffset(!0)), e = setTimeout(function() { n(), setTimeout(function() { i.remove(), t = i = null, d("ZoomAnimationEnded") }, 16) }, o) }, 16)) : n()) }), h(y + a, function() { if (f._allowZoom()) { if (clearTimeout(e), f.st.removalDelay = o, !t) { if (!(t = f._getItemToZoom())) return; i = s(t) } i.css(f._getOffset(!0)), f.wrap.append(i), f.content.css("visibility", "hidden"), setTimeout(function() { i.css(f._getOffset()) }, 16) } }), h(l + a, function() { f._allowZoom() && (n(), i && i.remove(), t = null) })) }, _allowZoom: function() { return "image" === f.currItem.type }, _getItemToZoom: function() { return !!f.currItem.hasSize && f.currItem.img }, _getOffset: function(t) { var e = t ? f.currItem.img : f.st.zoom.opener(f.currItem.el || f.currItem), i = e.offset(), o = parseInt(e.css("padding-top"), 10), t = parseInt(e.css("padding-bottom"), 10); return i.top -= c(window).scrollTop() - o, o = { width: e.width(), height: (a ? e.innerHeight() : e[0].offsetHeight) - t - o }, void 0 === A && (A = void 0 !== document.createElement("p").style.MozTransform), A ? o["-moz-transform"] = o.transform = "translate(" + i.left + "px," + i.top + "px)" : (o.left = i.left, o.top = i.top), o } } }); var M = "iframe"; function j(t) { var e = f.items.length; return e - 1 < t ? t - e : t < 0 ? e + t : t } function F(t, e, i) { return t.replace(/%curr%/gi, e + 1).replace(/%total%/gi, i) } c.magnificPopup.registerModule(M, { options: { markup: '
', srcAction: "iframe_src", patterns: { youtube: { index: "youtube.com", id: "v=", src: "//www.youtube.com/embed/%id%?autoplay=1" }, vimeo: { index: "vimeo.com/", id: "/", src: "//player.vimeo.com/video/%id%?autoplay=1" }, gmaps: { index: "//maps.google.", src: "%id%&output=embed" } } }, proto: { initIframe: function() { f.types.push(M), h("BeforeChange", function(t, e, i) { e !== i && (e === M ? L() : i === M && L(!0)) }), h(l + "." + M, function() { L() }) }, getIframe: function(t, e) { var i = t.src, o = f.st.iframe; c.each(o.patterns, function() { return -1 < i.indexOf(this.index) ? (this.id && (i = "string" == typeof this.id ? i.substr(i.lastIndexOf(this.id) + this.id.length, i.length) : this.id.call(this, i)), i = this.src.replace("%id%", i), !1) : void 0 }); var s = {}; return o.srcAction && (s[o.srcAction] = i), f._parseMarkup(e, s, t), f.updateStatus("ready"), e } } }), c.magnificPopup.registerModule("gallery", { options: { enabled: !1, arrowMarkup: '', preload: [0, 2], navigateByImgClick: !0, arrows: !0, tPrev: "Previous (Left arrow key)", tNext: "Next (Right arrow key)", tCounter: "%curr% of %total%" }, proto: { initGallery: function() { var n = f.st.gallery, t = ".mfp-gallery"; return f.direction = !0, !(!n || !n.enabled) && (m += " mfp-gallery", h(b + t, function() { n.navigateByImgClick && f.wrap.on("click" + t, ".mfp-img", function() { return 1 < f.items.length ? (f.next(), !1) : void 0 }), g.on("keydown" + t, function(t) { 37 === t.keyCode ? f.prev() : 39 === t.keyCode && f.next() }) }), h("UpdateStatus" + t, function(t, e) { e.text && (e.text = F(e.text, f.currItem.index, f.items.length)) }), h(v + t, function(t, e, i, o) { var s = f.items.length; i.counter = 1 < s ? F(n.tCounter, o.index, s) : "" }), h("BuildControls" + t, function() { var t, e; 1 < f.items.length && n.arrows && !f.arrowLeft && (e = n.arrowMarkup, t = f.arrowLeft = c(e.replace(/%title%/gi, n.tPrev).replace(/%dir%/gi, "left")).addClass(r), e = f.arrowRight = c(e.replace(/%title%/gi, n.tNext).replace(/%dir%/gi, "right")).addClass(r), t.click(function() { f.prev() }), e.click(function() { f.next() }), f.container.append(t.add(e))) }), h("Change" + t, function() { f._preloadTimeout && clearTimeout(f._preloadTimeout), f._preloadTimeout = setTimeout(function() { f.preloadNearbyImages(), f._preloadTimeout = null }, 16) }), void h(l + t, function() { g.off(t), f.wrap.off("click" + t), f.arrowRight = f.arrowLeft = null })) }, next: function() { f.direction = !0, f.index = j(f.index + 1), f.updateItemHTML() }, prev: function() { f.direction = !1, f.index = j(f.index - 1), f.updateItemHTML() }, goTo: function(t) { f.direction = t >= f.index, f.index = t, f.updateItemHTML() }, preloadNearbyImages: function() { for (var t = f.st.gallery.preload, e = Math.min(t[0], f.items.length), i = Math.min(t[1], f.items.length), o = 1; o <= (f.direction ? i : e); o++) f._preloadItem(f.index + o); for (o = 1; o <= (f.direction ? e : i); o++) f._preloadItem(f.index - o) }, _preloadItem: function(t) { var e; t = j(t), f.items[t].preloaded || ((e = f.items[t]).parsed || (e = f.parseEl(t)), d("LazyLoad", e), "image" === e.type && (e.img = c('').on("load.mfploader", function() { e.hasSize = !0 }).on("error.mfploader", function() { e.hasSize = !0, e.loadError = !0, d("LazyLoadError", e) }).attr("src", e.src)), e.preloaded = !0) } } }); var q = "retina"; c.magnificPopup.registerModule(q, { options: { replaceSrc: function(t) { return t.src.replace(/\.\w+$/, function(t) { return "@2x" + t }) }, ratio: 1 }, proto: { initRetina: function() { var i, o; 1 < window.devicePixelRatio && (i = f.st.retina, o = i.ratio, 1 < (o = isNaN(o) ? o() : o) && (h("ImageHasSize." + q, function(t, e) { e.img.css({ "max-width": e.img[0].naturalWidth / o, width: "100%" }) }), h("ElementParse." + q, function(t, e) { e.src = i.replaceSrc(e, o) }))) } } }), n() }), function(t, e) { "function" == typeof define && define.amd ? define(["jquery"], e) : "object" == typeof module && module.exports ? module.exports = e(require("jquery")) : e(t.jQuery) }(this, function(f) { ! function() { "use strict"; var i = { mode: "lg-slide", cssEasing: "ease", easing: "linear", speed: 600, height: "100%", width: "100%", addClass: "", startClass: "lg-start-zoom", backdropDuration: 150, hideBarsDelay: 6e3, useLeft: !1, ariaLabelledby: "", ariaDescribedby: "", closable: !0, loop: !0, escKey: !0, keyPress: !0, controls: !0, slideEndAnimatoin: !0, hideControlOnEnd: !1, mousewheel: !0, getCaptionFromTitleOrAlt: !0, appendSubHtmlTo: ".lg-sub-html", subHtmlSelectorRelative: !1, preload: 1, showAfterLoad: !0, selector: "", selectWithin: "", nextHtml: "", prevHtml: "", index: !1, iframeMaxWidth: "100%", download: !0, counter: !0, appendCounterTo: ".lg-toolbar", swipeThreshold: 50, enableSwipe: !0, enableDrag: !0, dynamic: !1, dynamicEl: [], galleryId: 1, supportLegacyBrowser: !0 }; function e(t, e) { if (this.el = t, this.$el = f(t), this.s = f.extend({}, i, e), this.s.dynamic && "undefined" !== this.s.dynamicEl && this.s.dynamicEl.constructor === Array && !this.s.dynamicEl.length) throw "When using dynamic mode, you must also define dynamicEl as an Array."; return this.modules = {}, this.lGalleryOn = !1, this.lgBusy = !1, this.hideBarTimeout = !1, this.isTouch = "ontouchstart" in document.documentElement, this.s.slideEndAnimatoin && (this.s.hideControlOnEnd = !1), this.s.dynamic ? this.$items = this.s.dynamicEl : "this" === this.s.selector ? this.$items = this.$el : "" !== this.s.selector ? this.s.selectWithin ? this.$items = f(this.s.selectWithin).find(this.s.selector) : this.$items = this.$el.find(f(this.s.selector)) : this.$items = this.$el.children(), this.$slide = "", this.$outer = "", this.init(), this } e.prototype.init = function() { var t = this; t.s.preload > t.$items.length && (t.s.preload = t.$items.length); var e = window.location.hash; 0 < e.indexOf("lg=" + this.s.galleryId) && (t.index = parseInt(e.split("&slide=")[1], 10), f("body").addClass("lg-from-hash"), f("body").hasClass("lg-on") || (setTimeout(function() { t.build(t.index) }), f("body").addClass("lg-on"))), t.s.dynamic ? (t.$el.trigger("onBeforeOpen.lg"), t.index = t.s.index || 0, f("body").hasClass("lg-on") || setTimeout(function() { t.build(t.index), f("body").addClass("lg-on") })) : t.$items.on("click.lgcustom", function(e) { try { e.preventDefault(), e.preventDefault() } catch (t) { e.returnValue = !1 } t.$el.trigger("onBeforeOpen.lg"), t.index = t.s.index || t.$items.index(this), f("body").hasClass("lg-on") || (t.build(t.index), f("body").addClass("lg-on")) }) }, e.prototype.build = function(t) { var e = this; e.structure(), f.each(f.fn.lightGallery.modules, function(t) { e.modules[t] = new f.fn.lightGallery.modules[t](e.el) }), e.slide(t, !1, !1, !1), e.s.keyPress && e.keyPress(), 1 < e.$items.length ? (e.arrow(), setTimeout(function() { e.enableDrag(), e.enableSwipe() }, 50), e.s.mousewheel && e.mousewheel()) : e.$slide.on("click.lg", function() { e.$el.trigger("onSlideClick.lg") }), e.counter(), e.closeGallery(), e.$el.trigger("onAfterOpen.lg"), 0 < e.s.hideBarsDelay && e.$outer.on("mousemove.lg click.lg touchstart.lg", function() { e.$outer.removeClass("lg-hide-items"), clearTimeout(e.hideBarTimeout), e.hideBarTimeout = setTimeout(function() { e.$outer.addClass("lg-hide-items") }, e.s.hideBarsDelay) }), e.$outer.trigger("mousemove.lg") }, e.prototype.structure = function() { var t = "", e = "", i = 0, o = "", s = this; for (f("body").append('
'), f(".lg-backdrop").css("transition-duration", this.s.backdropDuration + "ms"), i = 0; i < this.$items.length; i++) t += '
'; this.s.controls && 1 < this.$items.length && (e = '
"), ".lg-sub-html" === this.s.appendSubHtmlTo && (o = '
'); o = '"; f("body").append(o), this.$outer = f(".lg-outer"), this.$outer.focus(), this.$slide = this.$outer.find(".lg-item"), this.s.useLeft ? (this.$outer.addClass("lg-use-left"), this.s.mode = "lg-slide") : this.$outer.addClass("lg-use-css3"), s.setTop(), f(window).on("resize.lg orientationchange.lg", function() { setTimeout(function() { s.setTop() }, 100) }), this.$slide.eq(this.index).addClass("lg-current"), this.doCss() ? this.$outer.addClass("lg-css3") : (this.$outer.addClass("lg-css"), this.s.speed = 0), this.$outer.addClass(this.s.mode), this.s.enableDrag && 1 < this.$items.length && this.$outer.addClass("lg-grab"), this.s.showAfterLoad && this.$outer.addClass("lg-show-after-load"), this.doCss() && ((o = this.$outer.find(".lg-inner")).css("transition-timing-function", this.s.cssEasing), o.css("transition-duration", this.s.speed + "ms")), setTimeout(function() { f(".lg-backdrop").addClass("in") }), setTimeout(function() { s.$outer.addClass("lg-visible") }, this.s.backdropDuration), this.s.download && this.$outer.find(".lg-toolbar").append(''), this.prevScrollTop = f(window).scrollTop() }, e.prototype.setTop = function() { var t, e, i; "100%" !== this.s.height && (e = ((t = f(window).height()) - parseInt(this.s.height, 10)) / 2, i = this.$outer.find(".lg"), t >= parseInt(this.s.height, 10) ? i.css("top", e + "px") : i.css("top", "0px")) }, e.prototype.doCss = function() { return !! function() { for (var t = ["transition", "MozTransition", "WebkitTransition", "OTransition", "msTransition", "KhtmlTransition"], e = document.documentElement, i = 0, i = 0; i < t.length; i++) if (t[i] in e.style) return 1 }() }, e.prototype.isVideo = function(t, e) { var i = this.s.dynamic ? this.s.dynamicEl[e].html : this.$items.eq(e).attr("data-html"); if (!t) return i ? { html5: !0 } : (console.error("lightGallery :- data-src is not provided on slide item " + (e + 1) + ". Please make sure the selector property is properly configured. More info - http://sachinchoolur.github.io/lightGallery/demos/html-markup.html"), !1); var o = t.match(/\/\/(?:www\.)?youtu(?:\.be|be\.com|be-nocookie\.com)\/(?:watch\?v=|embed\/)?([a-z0-9\-\_\%]+)/i), i = t.match(/\/\/(?:www\.)?vimeo.com\/([0-9a-z\-_]+)/i), e = t.match(/\/\/(?:www\.)?dai.ly\/([0-9a-z\-_]+)/i), t = t.match(/\/\/(?:www\.)?(?:vk\.com|vkontakte\.ru)\/(?:video_ext\.php\?)(.*)/i); return o ? { youtube: o } : i ? { vimeo: i } : e ? { dailymotion: e } : t ? { vk: t } : void 0 }, e.prototype.counter = function() { this.s.counter && f(this.s.appendCounterTo).append('
' + (parseInt(this.index, 10) + 1) + ' / ' + this.$items.length + "
") }, e.prototype.addHtml = function(t) { var e, i, o, s = null; this.s.dynamic ? this.s.dynamicEl[t].subHtmlUrl ? e = this.s.dynamicEl[t].subHtmlUrl : s = this.s.dynamicEl[t].subHtml : (i = this.$items.eq(t)).attr("data-sub-html-url") ? e = i.attr("data-sub-html-url") : (s = i.attr("data-sub-html"), this.s.getCaptionFromTitleOrAlt && !s && (s = i.attr("title") || i.find("img").first().attr("alt"))), e || (null != s ? "." !== (o = s.substring(0, 1)) && "#" !== o || (s = (this.s.subHtmlSelectorRelative && !this.s.dynamic ? i.find(s) : f(s)).html()) : s = ""), ".lg-sub-html" === this.s.appendSubHtmlTo ? e ? this.$outer.find(this.s.appendSubHtmlTo).load(e) : this.$outer.find(this.s.appendSubHtmlTo).html(s) : e ? this.$slide.eq(t).load(e) : this.$slide.eq(t).append(s), null != s && ("" === s ? this.$outer.find(this.s.appendSubHtmlTo).addClass("lg-empty-html") : this.$outer.find(this.s.appendSubHtmlTo).removeClass("lg-empty-html")), this.$el.trigger("onAfterAppendSubHtml.lg", [t]) }, e.prototype.preload = function(t) { for (var e = 1, i = 1, e = 1; e <= this.s.preload && !(e >= this.$items.length - t); e++) this.loadContent(t + e, !1, 0); for (i = 1; i <= this.s.preload && !(t - i < 0); i++) this.loadContent(t - i, !1, 0) }, e.prototype.loadContent = function(e, t, i) { var o, a, s, n, r, l, c = this, h = !1, u = function(t) { for (var e = [], i = [], o = 0; o < t.length; o++) { var s = t[o].split(" "); "" === s[0] && s.splice(0, 1), i.push(s[0]), e.push(s[1]) } for (var n = f(window).width(), r = 0; r < e.length; r++) if (parseInt(e[r], 10) > n) { a = i[r]; break } }, d = c.s.dynamic ? (c.s.dynamicEl[e].poster && (h = !0, s = c.s.dynamicEl[e].poster), r = c.s.dynamicEl[e].html, a = c.s.dynamicEl[e].src, l = c.s.dynamicEl[e].alt, c.s.dynamicEl[e].responsive && u(c.s.dynamicEl[e].responsive.split(",")), n = c.s.dynamicEl[e].srcset, c.s.dynamicEl[e].sizes) : ((p = c.$items.eq(e)).attr("data-poster") && (h = !0, s = p.attr("data-poster")), r = p.attr("data-html"), a = p.attr("href") || p.attr("data-src"), l = p.attr("title") || p.find("img").first().attr("alt"), p.attr("data-responsive") && u(p.attr("data-responsive").split(",")), n = p.attr("data-srcset"), p.attr("data-sizes")), u = !1; c.s.dynamic ? c.s.dynamicEl[e].iframe && (u = !0) : "true" === c.$items.eq(e).attr("data-iframe") && (u = !0); var p = c.isVideo(a, e); if (!c.$slide.eq(e).hasClass("lg-loaded")) { if (u ? c.$slide.eq(e).prepend('
') : h ? (u = "", u = p && p.youtube ? "lg-has-youtube" : p && p.vimeo ? "lg-has-vimeo" : "lg-has-html5", c.$slide.eq(e).prepend('
')) : p ? (c.$slide.eq(e).prepend('
'), c.$el.trigger("hasVideo.lg", [e, a, r])) : (l = l ? 'alt="' + l + '"' : "", c.$slide.eq(e).prepend('
')), c.$el.trigger("onAferAppendSlide.lg", [e]), o = c.$slide.eq(e).find(".lg-object"), d && o.attr("sizes", d), n && (o.attr("srcset", n), this.s.supportLegacyBrowser)) try { picturefill({ elements: [o[0]] }) } catch (t) { console.warn("lightGallery :- If you want srcset to be supported for older browser please include picturefil version 2 javascript library in your document.") } ".lg-sub-html" !== this.s.appendSubHtmlTo && c.addHtml(e), c.$slide.eq(e).addClass("lg-loaded") } c.$slide.eq(e).find(".lg-object").on("load.lg error.lg", function() { var t = 0; i && !f("body").hasClass("lg-from-hash") && (t = i), setTimeout(function() { c.$slide.eq(e).addClass("lg-complete"), c.$el.trigger("onSlideItemLoad.lg", [e, i || 0]) }, t) }), p && p.html5 && !h && c.$slide.eq(e).addClass("lg-complete"), !0 === t && (c.$slide.eq(e).hasClass("lg-complete") ? c.preload(e) : c.$slide.eq(e).find(".lg-object").on("load.lg error.lg", function() { c.preload(e) })) }, e.prototype.slide = function(t, e, i, o) { var s, n, r, a, l, c = this.$outer.find(".lg-current").index(), h = this; h.lGalleryOn && c === t || (s = this.$slide.length, n = h.lGalleryOn ? this.s.speed : 0, h.lgBusy || (this.s.download && ((r = h.s.dynamic ? !1 !== h.s.dynamicEl[t].downloadUrl && (h.s.dynamicEl[t].downloadUrl || h.s.dynamicEl[t].src) : "false" !== h.$items.eq(t).attr("data-download-url") && (h.$items.eq(t).attr("data-download-url") || h.$items.eq(t).attr("href") || h.$items.eq(t).attr("data-src"))) ? (f("#lg-download").attr("href", r), h.$outer.removeClass("lg-hide-download")) : h.$outer.addClass("lg-hide-download")), this.$el.trigger("onBeforeSlide.lg", [c, t, e, i]), h.lgBusy = !0, clearTimeout(h.hideBarTimeout), ".lg-sub-html" === this.s.appendSubHtmlTo && setTimeout(function() { h.addHtml(t) }, n), this.arrowDisable(t), o || (t < c ? o = "prev" : c < t && (o = "next")), e ? (this.$slide.removeClass("lg-prev-slide lg-current lg-next-slide"), 2 < s ? (a = t - 1, l = t + 1, (0 === t && c === s - 1 || t === s - 1 && 0 === c) && (l = 0, a = s - 1)) : (a = 0, l = 1), "prev" === o ? h.$slide.eq(l).addClass("lg-next-slide") : h.$slide.eq(a).addClass("lg-prev-slide"), h.$slide.eq(t).addClass("lg-current")) : (h.$outer.addClass("lg-no-trans"), this.$slide.removeClass("lg-prev-slide lg-next-slide"), "prev" === o ? (this.$slide.eq(t).addClass("lg-prev-slide"), this.$slide.eq(c).addClass("lg-next-slide")) : (this.$slide.eq(t).addClass("lg-next-slide"), this.$slide.eq(c).addClass("lg-prev-slide")), setTimeout(function() { h.$slide.removeClass("lg-current"), h.$slide.eq(t).addClass("lg-current"), h.$outer.removeClass("lg-no-trans") }, 50)), h.lGalleryOn ? (setTimeout(function() { h.loadContent(t, !0, 0) }, this.s.speed + 50), setTimeout(function() { h.lgBusy = !1, h.$el.trigger("onAfterSlide.lg", [c, t, e, i]) }, this.s.speed)) : (h.loadContent(t, !0, h.s.backdropDuration), h.lgBusy = !1, h.$el.trigger("onAfterSlide.lg", [c, t, e, i])), h.lGalleryOn = !0, this.s.counter && f("#lg-counter-current").text(t + 1)), h.index = t) }, e.prototype.goToNextSlide = function(t) { var e = this, i = e.s.loop; t && e.$slide.length < 3 && (i = !1), e.lgBusy || (e.index + 1 < e.$slide.length ? (e.index++, e.$el.trigger("onBeforeNextSlide.lg", [e.index]), e.slide(e.index, t, !1, "next")) : i ? (e.index = 0, e.$el.trigger("onBeforeNextSlide.lg", [e.index]), e.slide(e.index, t, !1, "next")) : e.s.slideEndAnimatoin && !t && (e.$outer.addClass("lg-right-end"), setTimeout(function() { e.$outer.removeClass("lg-right-end") }, 400))) }, e.prototype.goToPrevSlide = function(t) { var e = this, i = e.s.loop; t && e.$slide.length < 3 && (i = !1), e.lgBusy || (0 < e.index ? (e.index--, e.$el.trigger("onBeforePrevSlide.lg", [e.index, t]), e.slide(e.index, t, !1, "prev")) : i ? (e.index = e.$items.length - 1, e.$el.trigger("onBeforePrevSlide.lg", [e.index, t]), e.slide(e.index, t, !1, "prev")) : e.s.slideEndAnimatoin && !t && (e.$outer.addClass("lg-left-end"), setTimeout(function() { e.$outer.removeClass("lg-left-end") }, 400))) }, e.prototype.keyPress = function() { var e = this; 1 < this.$items.length && f(window).on("keyup.lg", function(t) { 1 < e.$items.length && (37 === t.keyCode && (t.preventDefault(), e.goToPrevSlide()), 39 === t.keyCode && (t.preventDefault(), e.goToNextSlide())) }), f(window).on("keydown.lg", function(t) { !0 === e.s.escKey && 27 === t.keyCode && (t.preventDefault(), e.$outer.hasClass("lg-thumb-open") ? e.$outer.removeClass("lg-thumb-open") : e.destroy()) }) }, e.prototype.arrow = function() { var t = this; this.$outer.find(".lg-prev").on("click.lg", function() { t.goToPrevSlide() }), this.$outer.find(".lg-next").on("click.lg", function() { t.goToNextSlide() }) }, e.prototype.arrowDisable = function(t) { !this.s.loop && this.s.hideControlOnEnd && (t + 1 < this.$slide.length ? this.$outer.find(".lg-next").removeAttr("disabled").removeClass("disabled") : this.$outer.find(".lg-next").attr("disabled", "disabled").addClass("disabled"), 0 < t ? this.$outer.find(".lg-prev").removeAttr("disabled").removeClass("disabled") : this.$outer.find(".lg-prev").attr("disabled", "disabled").addClass("disabled")) }, e.prototype.setTranslate = function(t, e, i) { this.s.useLeft ? t.css("left", e) : t.css({ transform: "translate3d(" + e + "px, " + i + "px, 0px)" }) }, e.prototype.touchMove = function(t, e) { t = e - t, 15 < Math.abs(t) && (this.$outer.addClass("lg-dragging"), this.setTranslate(this.$slide.eq(this.index), t, 0), this.setTranslate(f(".lg-prev-slide"), -this.$slide.eq(this.index).width() + t, 0), this.setTranslate(f(".lg-next-slide"), this.$slide.eq(this.index).width() + t, 0)) }, e.prototype.touchEnd = function(t) { var e = this; "lg-slide" !== e.s.mode && e.$outer.addClass("lg-slide"), this.$slide.not(".lg-current, .lg-prev-slide, .lg-next-slide").css("opacity", "0"), setTimeout(function() { e.$outer.removeClass("lg-dragging"), t < 0 && Math.abs(t) > e.s.swipeThreshold ? e.goToNextSlide(!0) : 0 < t && Math.abs(t) > e.s.swipeThreshold ? e.goToPrevSlide(!0) : Math.abs(t) < 5 && e.$el.trigger("onSlideClick.lg"), e.$slide.removeAttr("style") }), setTimeout(function() { e.$outer.hasClass("lg-dragging") || "lg-slide" === e.s.mode || e.$outer.removeClass("lg-slide") }, e.s.speed + 100) }, e.prototype.enableSwipe = function() { var e = this, i = 0, o = 0, s = !1; e.s.enableSwipe && e.doCss() && (e.$slide.on("touchstart.lg", function(t) { e.$outer.hasClass("lg-zoomed") || e.lgBusy || (t.preventDefault(), e.manageSwipeClass(), i = t.originalEvent.targetTouches[0].pageX) }), e.$slide.on("touchmove.lg", function(t) { e.$outer.hasClass("lg-zoomed") || (t.preventDefault(), o = t.originalEvent.targetTouches[0].pageX, e.touchMove(i, o), s = !0) }), e.$slide.on("touchend.lg", function() { e.$outer.hasClass("lg-zoomed") || (s ? (s = !1, e.touchEnd(o - i)) : e.$el.trigger("onSlideClick.lg")) })) }, e.prototype.enableDrag = function() { var e = this, i = 0, o = 0, s = !1, n = !1; e.s.enableDrag && e.doCss() && (e.$slide.on("mousedown.lg", function(t) { e.$outer.hasClass("lg-zoomed") || e.lgBusy || f(t.target).text().trim() || (t.preventDefault(), e.manageSwipeClass(), i = t.pageX, s = !0, e.$outer.scrollLeft += 1, --e.$outer.scrollLeft, e.$outer.removeClass("lg-grab").addClass("lg-grabbing"), e.$el.trigger("onDragstart.lg")) }), f(window).on("mousemove.lg", function(t) { s && (n = !0, o = t.pageX, e.touchMove(i, o), e.$el.trigger("onDragmove.lg")) }), f(window).on("mouseup.lg", function(t) { n ? (n = !1, e.touchEnd(o - i), e.$el.trigger("onDragend.lg")) : (f(t.target).hasClass("lg-object") || f(t.target).hasClass("lg-video-play")) && e.$el.trigger("onSlideClick.lg"), s && (s = !1, e.$outer.removeClass("lg-grabbing").addClass("lg-grab")) })) }, e.prototype.manageSwipeClass = function() { var t = this.index + 1, e = this.index - 1; this.s.loop && 2 < this.$slide.length && (0 === this.index ? e = this.$slide.length - 1 : this.index === this.$slide.length - 1 && (t = 0)), this.$slide.removeClass("lg-next-slide lg-prev-slide"), -1 < e && this.$slide.eq(e).addClass("lg-prev-slide"), this.$slide.eq(t).addClass("lg-next-slide") }, e.prototype.mousewheel = function() { var e = this; e.$outer.on("mousewheel.lg", function(t) { t.deltaY && (0 < t.deltaY ? e.goToPrevSlide() : e.goToNextSlide(), t.preventDefault()) }) }, e.prototype.closeGallery = function() { var e = this, i = !1; this.$outer.find(".lg-close").on("click.lg", function() { e.destroy() }), e.s.closable && (e.$outer.on("mousedown.lg", function(t) { i = !!(f(t.target).is(".lg-outer") || f(t.target).is(".lg-item ") || f(t.target).is(".lg-img-wrap")) }), e.$outer.on("mousemove.lg", function() { i = !1 }), e.$outer.on("mouseup.lg", function(t) { (f(t.target).is(".lg-outer") || f(t.target).is(".lg-item ") || f(t.target).is(".lg-img-wrap") && i) && (e.$outer.hasClass("lg-dragging") || e.destroy()) })) }, e.prototype.destroy = function(t) { var e = this; t || (e.$el.trigger("onBeforeClose.lg"), f(window).scrollTop(e.prevScrollTop)), t && (e.s.dynamic || this.$items.off("click.lg click.lgcustom"), f.removeData(e.el, "lightGallery")), this.$el.off(".lg.tm"), f.each(f.fn.lightGallery.modules, function(t) { e.modules[t] && e.modules[t].destroy() }), this.lGalleryOn = !1, clearTimeout(e.hideBarTimeout), this.hideBarTimeout = !1, f(window).off(".lg"), f("body").removeClass("lg-on lg-from-hash"), e.$outer && e.$outer.removeClass("lg-visible"), f(".lg-backdrop").removeClass("in"), setTimeout(function() { e.$outer && e.$outer.remove(), f(".lg-backdrop").remove(), t || e.$el.trigger("onCloseAfter.lg"), e.$el.focus() }, e.s.backdropDuration + 50) }, f.fn.lightGallery = function(t) { return this.each(function() { if (f.data(this, "lightGallery")) try { f(this).data("lightGallery").init() } catch (t) { console.error("lightGallery has not initiated properly", t) } else f.data(this, "lightGallery", new e(this, t)) }) }, f.fn.lightGallery.modules = {} }() }), function(t, e) { "function" == typeof define && define.amd ? define(["jquery"], e) : "object" == typeof module && module.exports ? module.exports = e(require("jquery")) : e(t.jQuery) }(this, function(i) { ! function() { "use strict"; function t(t) { return this.core = i(t).data("lightGallery"), this.$el = i(t), !(this.core.$items.length < 2) && (this.core.s = i.extend({}, e, this.core.s), this.interval = !1, this.fromAuto = !0, this.canceledOnTouch = !1, this.fourceAutoplayTemp = this.core.s.fourceAutoplay, this.core.doCss() || (this.core.s.progressBar = !1), this.init(), this) } var e = { autoplay: !1, pause: 5e3, progressBar: !0, fourceAutoplay: !1, autoplayControls: !0, appendAutoplayControlsTo: ".lg-toolbar" }; t.prototype.init = function() { var t = this; t.core.s.autoplayControls && t.controls(), t.core.s.progressBar && t.core.$outer.find(".lg").append('
'), t.progress(), t.core.s.autoplay && t.$el.one("onSlideItemLoad.lg.tm", function() { t.startlAuto() }), t.$el.on("onDragstart.lg.tm touchstart.lg.tm", function() { t.interval && (t.cancelAuto(), t.canceledOnTouch = !0) }), t.$el.on("onDragend.lg.tm touchend.lg.tm onSlideClick.lg.tm", function() { !t.interval && t.canceledOnTouch && (t.startlAuto(), t.canceledOnTouch = !1) }) }, t.prototype.progress = function() { var t, e, i = this; i.$el.on("onBeforeSlide.lg.tm", function() { i.core.s.progressBar && i.fromAuto && (t = i.core.$outer.find(".lg-progress-bar"), e = i.core.$outer.find(".lg-progress"), i.interval && (e.removeAttr("style"), t.removeClass("lg-start"), setTimeout(function() { e.css("transition", "width " + (i.core.s.speed + i.core.s.pause) + "ms ease 0s"), t.addClass("lg-start") }, 20))), i.fromAuto || i.core.s.fourceAutoplay || i.cancelAuto(), i.fromAuto = !1 }) }, t.prototype.controls = function() { var t = this; i(this.core.s.appendAutoplayControlsTo).append(''), t.core.$outer.find(".lg-autoplay-button").on("click.lg", function() { i(t.core.$outer).hasClass("lg-show-autoplay") ? (t.cancelAuto(), t.core.s.fourceAutoplay = !1) : t.interval || (t.startlAuto(), t.core.s.fourceAutoplay = t.fourceAutoplayTemp) }) }, t.prototype.startlAuto = function() { var t = this; t.core.$outer.find(".lg-progress").css("transition", "width " + (t.core.s.speed + t.core.s.pause) + "ms ease 0s"), t.core.$outer.addClass("lg-show-autoplay"), t.core.$outer.find(".lg-progress-bar").addClass("lg-start"), t.interval = setInterval(function() { t.core.index + 1 < t.core.$items.length ? t.core.index++ : t.core.index = 0, t.fromAuto = !0, t.core.slide(t.core.index, !1, !1, "next") }, t.core.s.speed + t.core.s.pause) }, t.prototype.cancelAuto = function() { clearInterval(this.interval), this.interval = !1, this.core.$outer.find(".lg-progress").removeAttr("style"), this.core.$outer.removeClass("lg-show-autoplay"), this.core.$outer.find(".lg-progress-bar").removeClass("lg-start") }, t.prototype.destroy = function() { this.cancelAuto(), this.core.$outer.find(".lg-progress-bar").remove() }, i.fn.lightGallery.modules.autoplay = t }() }), function(t, e) { "function" == typeof define && define.amd ? define(["jquery"], e) : "object" == typeof module && module.exports ? module.exports = e(require("jquery")) : e(t.jQuery) }(this, function(o) { ! function() { "use strict"; var e = { fullScreen: !0 }; function i() { return document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || document.msFullscreenElement } function t(t) { return this.core = o(t).data("lightGallery"), this.$el = o(t), this.core.s = o.extend({}, e, this.core.s), this.init(), this } t.prototype.init = function() { this.core.s.fullScreen && (document.fullscreenEnabled || document.webkitFullscreenEnabled || document.mozFullScreenEnabled || document.msFullscreenEnabled) && (this.core.$outer.find(".lg-toolbar").append(''), this.fullScreen()) }, t.prototype.requestFullscreen = function() { var t = document.documentElement; t.requestFullscreen ? t.requestFullscreen() : t.msRequestFullscreen ? t.msRequestFullscreen() : t.mozRequestFullScreen ? t.mozRequestFullScreen() : t.webkitRequestFullscreen && t.webkitRequestFullscreen() }, t.prototype.exitFullscreen = function() { document.exitFullscreen ? document.exitFullscreen() : document.msExitFullscreen ? document.msExitFullscreen() : document.mozCancelFullScreen ? document.mozCancelFullScreen() : document.webkitExitFullscreen && document.webkitExitFullscreen() }, t.prototype.fullScreen = function() { var t = this; o(document).on("fullscreenchange.lg webkitfullscreenchange.lg mozfullscreenchange.lg MSFullscreenChange.lg", function() { t.core.$outer.toggleClass("lg-fullscreen-on") }), this.core.$outer.find(".lg-fullscreen").on("click.lg", function() { i() ? t.exitFullscreen() : t.requestFullscreen() }) }, t.prototype.destroy = function() { i() && this.exitFullscreen(), o(document).off("fullscreenchange.lg webkitfullscreenchange.lg mozfullscreenchange.lg MSFullscreenChange.lg") }, o.fn.lightGallery.modules.fullscreen = t }() }), function(t) { "function" == typeof define && define.amd ? define(["jquery"], t) : "object" == typeof exports ? module.exports = t(require("jquery")) : t(jQuery) }(function(r) { ! function() { "use strict"; function t(t) { return this.core = r(t).data("lightGallery"), this.$el = r(t), this.core.s = r.extend({}, e, this.core.s), this.core.s.pager && 1 < this.core.$items.length && this.init(), this } var e = { pager: !1 }; t.prototype.init = function() { var o, t, e, i = this, s = ""; if (i.core.$outer.find(".lg").append('
'), i.core.s.dynamic) for (var n = 0; n < i.core.s.dynamicEl.length; n++) s += '
'; else i.core.$items.each(function() { i.core.s.exThumbImage ? s += '
' : s += '
' }); (t = i.core.$outer.find(".lg-pager-outer")).html(s), (o = i.core.$outer.find(".lg-pager-cont")).on("click.lg touchend.lg", function() { var t = r(this); i.core.index = t.index(), i.core.slide(i.core.index, !1, !0, !1) }), t.on("mouseover.lg", function() { clearTimeout(e), t.addClass("lg-pager-hover") }), t.on("mouseout.lg", function() { e = setTimeout(function() { t.removeClass("lg-pager-hover") }) }), i.core.$el.on("onBeforeSlide.lg.tm", function(t, e, i) { o.removeClass("lg-pager-active"), o.eq(i).addClass("lg-pager-active") }) }, t.prototype.destroy = function() {}, r.fn.lightGallery.modules.pager = t }() }), function(t, e) { "function" == typeof define && define.amd ? define(["jquery"], e) : "object" == typeof module && module.exports ? module.exports = e(require("jquery")) : e(t.jQuery) }(this, function(a) { ! function() { "use strict"; function t(t) { return this.core = a(t).data("lightGallery"), this.core.s = a.extend({}, e, this.core.s), this.$el = a(t), this.$thumbOuter = null, this.thumbOuterWidth = 0, this.thumbTotalWidth = this.core.$items.length * (this.core.s.thumbWidth + this.core.s.thumbMargin), this.thumbIndex = this.core.index, this.core.s.animateThumb && (this.core.s.thumbHeight = "100%"), this.left = 0, this.init(), this } var e = { thumbnail: !0, animateThumb: !0, currentPagerPosition: "middle", thumbWidth: 100, thumbHeight: "80px", thumbContHeight: 100, thumbMargin: 5, exThumbImage: !1, showThumbByDefault: !0, toogleThumb: !0, pullCaptionUp: !0, enableThumbDrag: !0, enableThumbSwipe: !0, swipeThreshold: 50, loadYoutubeThumbnail: !0, youtubeThumbSize: 1, loadVimeoThumbnail: !0, vimeoThumbSize: "thumbnail_small", loadDailymotionThumbnail: !0 }; t.prototype.init = function() { var t = this; this.core.s.thumbnail && 1 < this.core.$items.length && (this.core.s.showThumbByDefault && setTimeout(function() { t.core.$outer.addClass("lg-thumb-open") }, 700), this.core.s.pullCaptionUp && this.core.$outer.addClass("lg-pull-caption-up"), this.build(), this.core.s.animateThumb && this.core.doCss() ? (this.core.s.enableThumbDrag && this.enableThumbDrag(), this.core.s.enableThumbSwipe && this.enableThumbSwipe(), this.thumbClickable = !1) : this.thumbClickable = !0, this.toogle(), this.thumbkeyPress()) }, t.prototype.build = function() { var t, s = this, n = "", r = ""; switch (this.core.s.vimeoThumbSize) { case "thumbnail_large": r = "640"; break; case "thumbnail_medium": r = "200x150"; break; case "thumbnail_small": r = "100x75" } function e(t, e, i) { var o, t = s.core.isVideo(t, i) || {}, i = ""; t.youtube || t.vimeo || t.dailymotion ? t.youtube ? o = s.core.s.loadYoutubeThumbnail ? "//img.youtube.com/vi/" + t.youtube[1] + "/" + s.core.s.youtubeThumbSize + ".jpg" : e : t.vimeo ? s.core.s.loadVimeoThumbnail ? (o = "//i.vimeocdn.com/video/error_" + r + ".jpg", i = t.vimeo[1]) : o = e : t.dailymotion && (o = s.core.s.loadDailymotionThumbnail ? "//www.dailymotion.com/thumbnail/video/" + t.dailymotion[1] : e) : o = e, n += '
', i = "" } if (s.core.$outer.addClass("lg-has-thumb"), s.core.$outer.find(".lg").append('
'), s.$thumbOuter = s.core.$outer.find(".lg-thumb-outer"), s.thumbOuterWidth = s.$thumbOuter.width(), s.core.s.animateThumb && s.core.$outer.find(".lg-thumb").css({ width: s.thumbTotalWidth + "px", position: "relative" }), this.core.s.animateThumb && s.$thumbOuter.css("height", s.core.s.thumbContHeight + "px"), s.core.s.dynamic) for (var i = 0; i < s.core.s.dynamicEl.length; i++) e(s.core.s.dynamicEl[i].src, s.core.s.dynamicEl[i].thumb, i); else s.core.$items.each(function(t) { s.core.s.exThumbImage ? e(a(this).attr("href") || a(this).attr("data-src"), a(this).attr(s.core.s.exThumbImage), t) : e(a(this).attr("href") || a(this).attr("data-src"), a(this).find("img").attr("src"), t) }); s.core.$outer.find(".lg-thumb").html(n), (t = s.core.$outer.find(".lg-thumb-item")).each(function() { var e = a(this), t = e.attr("data-vimeo-id"); t && a.getJSON("//www.vimeo.com/api/v2/video/" + t + ".json?callback=?", { format: "json" }, function(t) { e.find("img").attr("src", t[0][s.core.s.vimeoThumbSize]) }) }), t.eq(s.core.index).addClass("active"), s.core.$el.on("onBeforeSlide.lg.tm", function() { t.removeClass("active"), t.eq(s.core.index).addClass("active") }), t.on("click.lg touchend.lg", function() { var t = a(this); setTimeout(function() { (!s.thumbClickable || s.core.lgBusy) && s.core.doCss() || (s.core.index = t.index(), s.core.slide(s.core.index, !1, !0, !1)) }, 50) }), s.core.$el.on("onBeforeSlide.lg.tm", function() { s.animateThumb(s.core.index) }), a(window).on("resize.lg.thumb orientationchange.lg.thumb", function() { setTimeout(function() { s.animateThumb(s.core.index), s.thumbOuterWidth = s.$thumbOuter.width() }, 200) }) }, t.prototype.setTranslate = function(t) { this.core.$outer.find(".lg-thumb").css({ transform: "translate3d(-" + t + "px, 0px, 0px)" }) }, t.prototype.animateThumb = function(t) { var e, i = this.core.$outer.find(".lg-thumb"); if (this.core.s.animateThumb) { switch (this.core.s.currentPagerPosition) { case "left": e = 0; break; case "middle": e = this.thumbOuterWidth / 2 - this.core.s.thumbWidth / 2; break; case "right": e = this.thumbOuterWidth - this.core.s.thumbWidth } this.left = (this.core.s.thumbWidth + this.core.s.thumbMargin) * t - 1 - e, this.left > this.thumbTotalWidth - this.thumbOuterWidth && (this.left = this.thumbTotalWidth - this.thumbOuterWidth), this.left < 0 && (this.left = 0), this.core.lGalleryOn ? (i.hasClass("on") || this.core.$outer.find(".lg-thumb").css("transition-duration", this.core.s.speed + "ms"), this.core.doCss() || i.animate({ left: -this.left + "px" }, this.core.s.speed)) : this.core.doCss() || i.css("left", -this.left + "px"), this.setTranslate(this.left) } }, t.prototype.enableThumbDrag = function() { var e = this, i = 0, o = 0, s = !1, n = !1, r = 0; e.$thumbOuter.addClass("lg-grab"), e.core.$outer.find(".lg-thumb").on("mousedown.lg.thumb", function(t) { e.thumbTotalWidth > e.thumbOuterWidth && (t.preventDefault(), i = t.pageX, s = !0, e.core.$outer.scrollLeft += 1, --e.core.$outer.scrollLeft, e.thumbClickable = !1, e.$thumbOuter.removeClass("lg-grab").addClass("lg-grabbing")) }), a(window).on("mousemove.lg.thumb", function(t) { s && (r = e.left, n = !0, o = t.pageX, e.$thumbOuter.addClass("lg-dragging"), (r -= o - i) > e.thumbTotalWidth - e.thumbOuterWidth && (r = e.thumbTotalWidth - e.thumbOuterWidth), r < 0 && (r = 0), e.setTranslate(r)) }), a(window).on("mouseup.lg.thumb", function() { n ? (n = !1, e.$thumbOuter.removeClass("lg-dragging"), e.left = r, Math.abs(o - i) < e.core.s.swipeThreshold && (e.thumbClickable = !0)) : e.thumbClickable = !0, s && (s = !1, e.$thumbOuter.removeClass("lg-grabbing").addClass("lg-grab")) }) }, t.prototype.enableThumbSwipe = function() { var e = this, i = 0, o = 0, s = !1, n = 0; e.core.$outer.find(".lg-thumb").on("touchstart.lg", function(t) { e.thumbTotalWidth > e.thumbOuterWidth && (t.preventDefault(), i = t.originalEvent.targetTouches[0].pageX, e.thumbClickable = !1) }), e.core.$outer.find(".lg-thumb").on("touchmove.lg", function(t) { e.thumbTotalWidth > e.thumbOuterWidth && (t.preventDefault(), o = t.originalEvent.targetTouches[0].pageX, s = !0, e.$thumbOuter.addClass("lg-dragging"), n = e.left, (n -= o - i) > e.thumbTotalWidth - e.thumbOuterWidth && (n = e.thumbTotalWidth - e.thumbOuterWidth), n < 0 && (n = 0), e.setTranslate(n)) }), e.core.$outer.find(".lg-thumb").on("touchend.lg", function() { e.thumbTotalWidth > e.thumbOuterWidth && s ? (s = !1, e.$thumbOuter.removeClass("lg-dragging"), Math.abs(o - i) < e.core.s.swipeThreshold && (e.thumbClickable = !0), e.left = n) : e.thumbClickable = !0 }) }, t.prototype.toogle = function() { var t = this; t.core.s.toogleThumb && (t.core.$outer.addClass("lg-can-toggle"), t.$thumbOuter.append(''), t.core.$outer.find(".lg-toogle-thumb").on("click.lg", function() { t.core.$outer.toggleClass("lg-thumb-open") })) }, t.prototype.thumbkeyPress = function() { var e = this; a(window).on("keydown.lg.thumb", function(t) { 38 === t.keyCode ? (t.preventDefault(), e.core.$outer.addClass("lg-thumb-open")) : 40 === t.keyCode && (t.preventDefault(), e.core.$outer.removeClass("lg-thumb-open")) }) }, t.prototype.destroy = function() { this.core.s.thumbnail && 1 < this.core.$items.length && (a(window).off("resize.lg.thumb orientationchange.lg.thumb keydown.lg.thumb"), this.$thumbOuter.remove(), this.core.$outer.removeClass("lg-has-thumb")) }, a.fn.lightGallery.modules.Thumbnail = t }() }), function(t, e) { "function" == typeof define && define.amd ? define(["jquery"], e) : "object" == typeof module && module.exports ? module.exports = e(require("jquery")) : e(t.jQuery) }(this, function(c) { ! function() { "use strict"; function t(t) { return this.core = c(t).data("lightGallery"), this.$el = c(t), this.core.s = c.extend({}, e, this.core.s), this.videoLoaded = !1, this.init(), this } var e = { videoMaxWidth: "855px", autoplayFirstVideo: !0, youtubePlayerParams: !1, vimeoPlayerParams: !1, dailymotionPlayerParams: !1, vkPlayerParams: !1, videojs: !1, videojsOptions: {} }; t.prototype.init = function() { var o = this; o.core.$el.on("hasVideo.lg.tm", function(t, e, i, o) { var s = this; if (s.core.$slide.eq(e).find(".lg-video").append(s.loadVideo(i, "lg-object", !0, e, o)), o) if (s.core.s.videojs) try { videojs(s.core.$slide.eq(e).find(".lg-html5").get(0), s.core.s.videojsOptions, function() { !s.videoLoaded && s.core.s.autoplayFirstVideo && this.play() }) } catch (t) { console.error("Make sure you have included videojs") } else !s.videoLoaded && s.core.s.autoplayFirstVideo && s.core.$slide.eq(e).find(".lg-html5").get(0).play() }.bind(this)), o.core.$el.on("onAferAppendSlide.lg.tm", function(t, e) { (e = this.core.$slide.eq(e).find(".lg-video-cont")).hasClass("lg-has-iframe") || (e.css("max-width", this.core.s.videoMaxWidth), this.videoLoaded = !0) }.bind(this)), o.core.doCss() && 1 < o.core.$items.length && (o.core.s.enableSwipe || o.core.s.enableDrag) ? o.core.$el.on("onSlideClick.lg.tm", function() { var t = o.core.$slide.eq(o.core.index); o.loadVideoOnclick(t) }) : o.core.$slide.on("click.lg", function() { o.loadVideoOnclick(c(this)) }), o.core.$el.on("onBeforeSlide.lg.tm", function(t, e, i) { var o = this, s = o.core.$slide.eq(e), n = s.find(".lg-youtube").get(0), r = s.find(".lg-vimeo").get(0), a = s.find(".lg-dailymotion").get(0), e = s.find(".lg-vk").get(0), l = s.find(".lg-html5").get(0); if (n) n.contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}', "*"); else if (r) try { $f(r).api("pause") } catch (t) { console.error("Make sure you have included froogaloop2 js") } else if (a) a.contentWindow.postMessage("pause", "*"); else if (l) if (o.core.s.videojs) try { videojs(l).pause() } catch (t) { console.error("Make sure you have included videojs") } else l.pause(); e && c(e).attr("src", c(e).attr("src").replace("&autoplay", "&noplay")), e = o.core.s.dynamic ? o.core.s.dynamicEl[i].src : o.core.$items.eq(i).attr("href") || o.core.$items.eq(i).attr("data-src"), ((i = o.core.isVideo(e, i) || {}).youtube || i.vimeo || i.dailymotion || i.vk) && o.core.$outer.addClass("lg-hide-download") }.bind(this)), o.core.$el.on("onAfterSlide.lg.tm", function(t, e) { o.core.$slide.eq(e).removeClass("lg-video-playing") }), o.core.s.autoplayFirstVideo && o.core.$el.on("onAferAppendSlide.lg.tm", function(t, e) { var i; o.core.lGalleryOn || (i = o.core.$slide.eq(e), setTimeout(function() { o.loadVideoOnclick(i) }, 100)) }) }, t.prototype.loadVideo = function(t, e, i, o, s) { var n = this, r = "", a = 1, l = "", o = this.core.isVideo(t, o) || {}; return n = (n = n.core.s.dynamic ? n.core.s.dynamicEl[n.core.index].title : n.core.$items.eq(n.core.index).attr("title") || n.core.$items.eq(n.core.index).find("img").first().attr("alt")) ? 'title="' + n + '"' : "", i && (a = !this.videoLoaded && this.core.s.autoplayFirstVideo ? 1 : 0), o.youtube ? (l = "?wmode=opaque&autoplay=" + a + "&enablejsapi=1", this.core.s.youtubePlayerParams && (l = l + "&" + c.param(this.core.s.youtubePlayerParams)), r = '') : o.vimeo ? (l = "?autoplay=" + a + "&api=1", this.core.s.vimeoPlayerParams && (l = l + "&" + c.param(this.core.s.vimeoPlayerParams)), r = '') : o.dailymotion ? (l = "?wmode=opaque&autoplay=" + a + "&api=postMessage", this.core.s.dailymotionPlayerParams && (l = l + "&" + c.param(this.core.s.dailymotionPlayerParams)), r = '') : o.html5 ? ("." !== (i = s.substring(0, 1)) && "#" !== i || (s = c(s).html()), r = s) : o.vk && (l = "&autoplay=" + a, this.core.s.vkPlayerParams && (l = l + "&" + c.param(this.core.s.vkPlayerParams)), r = ''), r }, t.prototype.loadVideoOnclick = function(i) { var o = this; if (i.find(".lg-object").hasClass("lg-has-poster") && i.find(".lg-object").is(":visible")) if (i.hasClass("lg-has-video")) { var t = i.find(".lg-youtube").get(0), e = i.find(".lg-vimeo").get(0), s = i.find(".lg-dailymotion").get(0), n = i.find(".lg-html5").get(0); if (t) t.contentWindow.postMessage('{"event":"command","func":"playVideo","args":""}', "*"); else if (e) try { $f(e).api("play") } catch (t) { console.error("Make sure you have included froogaloop2 js") } else if (s) s.contentWindow.postMessage("play", "*"); else if (n) if (o.core.s.videojs) try { videojs(n).play() } catch (t) { console.error("Make sure you have included videojs") } else n.play(); i.addClass("lg-video-playing") } else i.addClass("lg-video-playing lg-has-video"), s = function(t, e) { if (i.find(".lg-video").append(o.loadVideo(t, "", !1, o.core.index, e)), e) if (o.core.s.videojs) try { videojs(o.core.$slide.eq(o.core.index).find(".lg-html5").get(0), o.core.s.videojsOptions, function() { this.play() }) } catch (t) { console.error("Make sure you have included videojs") } else o.core.$slide.eq(o.core.index).find(".lg-html5").get(0).play() }, o.core.s.dynamic ? s(o.core.s.dynamicEl[o.core.index].src, o.core.s.dynamicEl[o.core.index].html) : s(o.core.$items.eq(o.core.index).attr("href") || o.core.$items.eq(o.core.index).attr("data-src"), o.core.$items.eq(o.core.index).attr("data-html")), s = i.find(".lg-object"), i.find(".lg-video").append(s), i.find(".lg-video-object").hasClass("lg-html5") || (i.removeClass("lg-complete"), i.find(".lg-video-object").on("load.lg error.lg", function() { i.addClass("lg-complete") })) }, t.prototype.destroy = function() { this.videoLoaded = !1 }, c.fn.lightGallery.modules.video = t }() }), function(t, e) { "function" == typeof define && define.amd ? define(["jquery"], e) : "object" == typeof module && module.exports ? module.exports = e(require("jquery")) : e(t.jQuery) }(this, function(d) { ! function() { "use strict"; function t(t) { return this.core = d(t).data("lightGallery"), this.core.s = d.extend({}, o, this.core.s), this.core.s.zoom && this.core.doCss() && (this.init(), this.zoomabletimeout = !1, this.pageX = d(window).width() / 2, this.pageY = d(window).height() / 2 + d(window).scrollTop()), this } var e, i, o = { scale: 1, zoom: !0, actualSize: !0, enableZoomAfter: 300, useLeftForZoom: (e = !1, (i = navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./)) && parseInt(i[2], 10) < 54 && (e = !0), e) }; t.prototype.init = function() { var n = this, t = ''; function e(t) { var e = n.core.$outer.find(".lg-current .lg-image"), i = (d(window).width() - e.prop("offsetWidth")) / 2, o = (d(window).height() - e.prop("offsetHeight")) / 2 + d(window).scrollTop(), i = (t - 1) * (n.pageX - i), o = (t - 1) * (n.pageY - o); e.css("transform", "scale3d(" + t + ", " + t + ", 1)").attr("data-scale", t), (n.core.s.useLeftForZoom ? e.parent().css({ left: -i + "px", top: -o + "px" }) : e.parent().css("transform", "translate3d(-" + i + "px, -" + o + "px, 0)")).attr("data-x", i).attr("data-y", o) } function r() { 1 < a ? n.core.$outer.addClass("lg-zoomed") : n.resetZoom(), a < 1 && (a = 1), e(a) } function o(t, e, i, o) { var s = e.prop("offsetWidth"), e = n.core.s.dynamic ? n.core.s.dynamicEl[i].width || e[0].naturalWidth || s : n.core.$items.eq(i).attr("data-width") || e[0].naturalWidth || s; n.core.$outer.hasClass("lg-zoomed") ? a = 1 : s < e && (a = e / s || 2), o ? (n.pageX = d(window).width() / 2, n.pageY = d(window).height() / 2 + d(window).scrollTop()) : (n.pageX = t.pageX || t.originalEvent.targetTouches[0].pageX, n.pageY = t.pageY || t.originalEvent.targetTouches[0].pageY), r(), setTimeout(function() { n.core.$outer.removeClass("lg-grabbing").addClass("lg-grab") }, 10) } n.core.s.actualSize && (t += ''), n.core.s.useLeftForZoom ? n.core.$outer.addClass("lg-use-left-for-zoom") : n.core.$outer.addClass("lg-use-transition-for-zoom"), this.core.$outer.find(".lg-toolbar").append(t), n.core.$el.on("onSlideItemLoad.lg.tm.zoom", function(t, e, i) { var o = n.core.s.enableZoomAfter + i; d("body").hasClass("lg-from-hash") && i ? o = 0 : d("body").removeClass("lg-from-hash"), n.zoomabletimeout = setTimeout(function() { n.core.$slide.eq(e).addClass("lg-zoomable") }, o + 30) }); var a = 1, s = !1; n.core.$el.on("onAferAppendSlide.lg.tm.zoom", function(t, e) { var i = n.core.$slide.eq(e).find(".lg-image"); i.on("dblclick", function(t) { o(t, i, e) }), i.on("touchstart", function(t) { s ? (clearTimeout(s), s = null, o(t, i, e)) : s = setTimeout(function() { s = null }, 300), t.preventDefault() }) }), d(window).on("resize.lg.zoom scroll.lg.zoom orientationchange.lg.zoom", function() { n.pageX = d(window).width() / 2, n.pageY = d(window).height() / 2 + d(window).scrollTop(), e(a) }), d("#lg-zoom-out").on("click.lg", function() { n.core.$outer.find(".lg-current .lg-image").length && (a -= n.core.s.scale, r()) }), d("#lg-zoom-in").on("click.lg", function() { n.core.$outer.find(".lg-current .lg-image").length && (a += n.core.s.scale, r()) }), d("#lg-actual-size").on("click.lg", function(t) { o(t, n.core.$slide.eq(n.core.index).find(".lg-image"), n.core.index, !0) }), n.core.$el.on("onBeforeSlide.lg.tm", function() { a = 1, n.resetZoom() }), n.zoomDrag(), n.zoomSwipe() }, t.prototype.getCurrentTransform = function(t) { return t && "none" !== (t = (t = window.getComputedStyle(t, null)).getPropertyValue("-webkit-transform") || t.getPropertyValue("-moz-transform") || t.getPropertyValue("-ms-transform") || t.getPropertyValue("-o-transform") || t.getPropertyValue("transform") || "none") ? t.split("(")[1].split(")")[0].split(",") : 0 }, t.prototype.getCurrentRotation = function(t) { return (t = t && this.getCurrentTransform(t)) ? Math.round(Math.atan2(t[1], t[0]) * (180 / Math.PI)) : 0 }, t.prototype.getModifier = function(t, e, i) { var o = t; t = Math.abs(t); var s = this.getCurrentTransform(i); if (!s) return 1; var n, i = 1; return "X" === e ? (n = Math.sign(parseFloat(s[0])), 0 === t || 180 === t ? i = 1 : 90 === t && (i = -90 === o && 1 === n || 90 === o && -1 === n ? -1 : 1)) : (n = Math.sign(parseFloat(s[3])), 0 === t || 180 === t ? i = 1 : 90 === t && (t = parseFloat(s[1]), s = parseFloat(s[2]), i = Math.sign(t * s * o * n))), i *= n }, t.prototype.getImageSize = function(t, e, i) { return 90 === e && (i = "x" === i ? "y" : "x"), t.prop({ y: "offsetHeight", x: "offsetWidth" } [i]) }, t.prototype.getDragCords = function(t, e) { return 90 === e ? { x: t.pageY, y: t.pageX } : { x: t.pageX, y: t.pageY } }, t.prototype.getSwipeCords = function(t, e) { var i = t.originalEvent.targetTouches[0].pageX, t = t.originalEvent.targetTouches[0].pageY; return 90 === e ? { x: t, y: i } : { x: i, y: t } }, t.prototype.getPossibleDragCords = function(t, e) { var i = (this.core.$outer.find(".lg").height() - this.getImageSize(t, e, "y")) / 2, o = Math.abs(this.getImageSize(t, e, "y") * Math.abs(t.attr("data-scale")) - this.core.$outer.find(".lg").height() + i), s = (this.core.$outer.find(".lg").width() - this.getImageSize(t, e, "x")) / 2, t = Math.abs(this.getImageSize(t, e, "x") * Math.abs(t.attr("data-scale")) - this.core.$outer.find(".lg").width() + s); return 90 === e ? { minY: s, maxY: t, minX: i, maxX: o } : { minY: i, maxY: o, minX: s, maxX: t } }, t.prototype.getDragAllowedAxises = function(t, e) { var i = this.getImageSize(t, e, "y") * t.attr("data-scale") > this.core.$outer.find(".lg").height(), t = this.getImageSize(t, e, "x") * t.attr("data-scale") > this.core.$outer.find(".lg").width(); return 90 === e ? { allowX: i, allowY: t } : { allowX: t, allowY: i } }, t.prototype.resetZoom = function() { this.core.$outer.removeClass("lg-zoomed"), this.core.$slide.find(".lg-img-wrap").removeAttr("style data-x data-y"), this.core.$slide.find(".lg-image").removeAttr("style data-scale"), this.pageX = d(window).width() / 2, this.pageY = d(window).height() / 2 + d(window).scrollTop() }, t.prototype.zoomSwipe = function() { var o, s = this, n = {}, r = {}, a = !1, l = !1, c = !1, h = 0; s.core.$slide.on("touchstart.lg", function(t) { var e; s.core.$outer.hasClass("lg-zoomed") && (e = s.core.$slide.eq(s.core.index).find(".lg-object"), o = s.core.$slide.eq(s.core.index).find(".lg-img-rotate")[0], h = s.getCurrentRotation(o), e = s.getDragAllowedAxises(e, Math.abs(h)), c = e.allowY, ((l = e.allowX) || c) && (t.preventDefault(), n = s.getSwipeCords(t, Math.abs(h)))) }), s.core.$slide.on("touchmove.lg", function(t) { var e, i; s.core.$outer.hasClass("lg-zoomed") && (e = s.core.$slide.eq(s.core.index).find(".lg-img-wrap"), t.preventDefault(), a = !0, r = s.getSwipeCords(t, Math.abs(h)), s.core.$outer.addClass("lg-zoom-dragging"), i = c ? -Math.abs(e.attr("data-y")) + (r.y - n.y) * s.getModifier(h, "Y", o) : -Math.abs(e.attr("data-y")), t = l ? -Math.abs(e.attr("data-x")) + (r.x - n.x) * s.getModifier(h, "X", o) : -Math.abs(e.attr("data-x")), (15 < Math.abs(r.x - n.x) || 15 < Math.abs(r.y - n.y)) && (s.core.s.useLeftForZoom ? e.css({ left: t + "px", top: i + "px" }) : e.css("transform", "translate3d(" + t + "px, " + i + "px, 0)"))) }), s.core.$slide.on("touchend.lg", function() { s.core.$outer.hasClass("lg-zoomed") && a && (a = !1, s.core.$outer.removeClass("lg-zoom-dragging"), s.touchendZoom(n, r, l, c, h)) }) }, t.prototype.zoomDrag = function() { var o, s = this, n = {}, r = {}, a = !1, l = !1, c = !1, h = !1, u = 0; s.core.$slide.on("mousedown.lg.zoom", function(t) { o = s.core.$slide.eq(s.core.index).find(".lg-img-rotate")[0], u = s.getCurrentRotation(o); var e = s.core.$slide.eq(s.core.index).find(".lg-object"), e = s.getDragAllowedAxises(e, Math.abs(u)); h = e.allowY, c = e.allowX, s.core.$outer.hasClass("lg-zoomed") && d(t.target).hasClass("lg-object") && (c || h) && (t.preventDefault(), n = s.getDragCords(t, Math.abs(u)), a = !0, s.core.$outer.scrollLeft += 1, --s.core.$outer.scrollLeft, s.core.$outer.removeClass("lg-grab").addClass("lg-grabbing")) }), d(window).on("mousemove.lg.zoom", function(t) { var e, i; a && (e = s.core.$slide.eq(s.core.index).find(".lg-img-wrap"), l = !0, r = s.getDragCords(t, Math.abs(u)), s.core.$outer.addClass("lg-zoom-dragging"), i = h ? -Math.abs(e.attr("data-y")) + (r.y - n.y) * s.getModifier(u, "Y", o) : -Math.abs(e.attr("data-y")), t = c ? -Math.abs(e.attr("data-x")) + (r.x - n.x) * s.getModifier(u, "X", o) : -Math.abs(e.attr("data-x")), s.core.s.useLeftForZoom ? e.css({ left: t + "px", top: i + "px" }) : e.css("transform", "translate3d(" + t + "px, " + i + "px, 0)")) }), d(window).on("mouseup.lg.zoom", function(t) { a && (a = !1, s.core.$outer.removeClass("lg-zoom-dragging"), !l || n.x === r.x && n.y === r.y || (r = s.getDragCords(t, Math.abs(u)), s.touchendZoom(n, r, c, h, u)), l = !1), s.core.$outer.removeClass("lg-grabbing").addClass("lg-grab") }) }, t.prototype.touchendZoom = function(t, e, i, o, s) { var n = this, r = n.core.$slide.eq(n.core.index).find(".lg-img-wrap"), a = n.core.$slide.eq(n.core.index).find(".lg-object"), l = n.core.$slide.eq(n.core.index).find(".lg-img-rotate")[0], c = -Math.abs(r.attr("data-x")) + (e.x - t.x) * n.getModifier(s, "X", l), l = -Math.abs(r.attr("data-y")) + (e.y - t.y) * n.getModifier(s, "Y", l), s = n.getPossibleDragCords(a, Math.abs(s)); (15 < Math.abs(e.x - t.x) || 15 < Math.abs(e.y - t.y)) && (o && (l <= -s.maxY ? l = -s.maxY : l >= -s.minY && (l = -s.minY)), i && (c <= -s.maxX ? c = -s.maxX : c >= -s.minX && (c = -s.minX)), o ? r.attr("data-y", Math.abs(l)) : l = -Math.abs(r.attr("data-y")), i ? r.attr("data-x", Math.abs(c)) : c = -Math.abs(r.attr("data-x")), n.core.s.useLeftForZoom ? r.css({ left: c + "px", top: l + "px" }) : r.css("transform", "translate3d(" + c + "px, " + l + "px, 0)")) }, t.prototype.destroy = function() { var t = this; t.core.$el.off(".lg.zoom"), d(window).off(".lg.zoom"), t.core.$slide.off(".lg.zoom"), t.core.$el.off(".lg.tm.zoom"), t.resetZoom(), clearTimeout(t.zoomabletimeout), t.zoomabletimeout = !1 }, d.fn.lightGallery.modules.zoom = t }() }), function(t) { "function" == typeof define && define.amd ? define(["jquery"], t) : "object" == typeof exports ? module.exports = t(require("jquery")) : t(jQuery) }(function(i) { ! function() { "use strict"; function t(t) { return this.core = i(t).data("lightGallery"), this.core.s = i.extend({}, e, this.core.s), this.core.s.hash && (this.oldHash = window.location.hash, this.init()), this } var e = { hash: !0 }; t.prototype.init = function() { var e, o = this; o.core.$el.on("onAfterSlide.lg.tm", function(t, e, i) { history.replaceState ? history.replaceState(null, null, window.location.pathname + window.location.search + "#lg=" + o.core.s.galleryId + "&slide=" + i) : window.location.hash = "lg=" + o.core.s.galleryId + "&slide=" + i }), i(window).on("hashchange.lg.hash", function() { e = window.location.hash; var t = parseInt(e.split("&slide=")[1], 10); - 1 < e.indexOf("lg=" + o.core.s.galleryId) ? o.core.slide(t, !1, !1) : o.core.lGalleryOn && o.core.destroy() }) }, t.prototype.destroy = function() { this.core.s.hash && (this.oldHash && this.oldHash.indexOf("lg=" + this.core.s.galleryId) < 0 ? history.replaceState ? history.replaceState(null, null, this.oldHash) : window.location.hash = this.oldHash : history.replaceState ? history.replaceState(null, document.title, window.location.pathname + window.location.search) : window.location.hash = "", this.core.$el.off(".lg.hash")) }, i.fn.lightGallery.modules.hash = t }() }), function(t, e) { "function" == typeof define && define.amd ? define(["jquery"], e) : "object" == typeof module && module.exports ? module.exports = e(require("jquery")) : e(t.jQuery) }(this, function(s) { ! function() { "use strict"; function t(t) { return this.core = s(t).data("lightGallery"), this.core.s = s.extend({}, e, this.core.s), this.core.s.share && this.init(), this } var e = { share: !0, facebook: !0, facebookDropdownText: "Facebook", twitter: !0, twitterDropdownText: "Twitter", pinterest: !0, pinterestDropdownText: "Pinterest" }; t.prototype.init = function() { var o = this, t = '", this.core.$outer.find(".lg-toolbar").append(t), this.core.$outer.find(".lg").append('
'), s("#lg-share").on("click.lg", function() { o.core.$outer.toggleClass("lg-dropdown-active"); var t = s("#lg-share").attr("aria-expanded"); s("#lg-share").attr("aria-expanded", "true" !== t) }), s("#lg-dropdown-overlay").on("click.lg", function() { o.core.$outer.removeClass("lg-dropdown-active"), s("#lg-share").attr("aria-expanded", !1) }), o.core.$el.on("onAfterSlide.lg.tm", function(t, e, i) { setTimeout(function() { s("#lg-share-facebook").attr("href", "https://www.facebook.com/sharer/sharer.php?u=" + encodeURIComponent(o.getSahreProps(i, "facebookShareUrl") || window.location.href)), s("#lg-share-twitter").attr("href", "https://twitter.com/intent/tweet?text=" + o.getSahreProps(i, "tweetText") + "&url=" + encodeURIComponent(o.getSahreProps(i, "twitterShareUrl") || window.location.href)), s("#lg-share-pinterest").attr("href", "http://www.pinterest.com/pin/create/button/?url=" + encodeURIComponent(o.getSahreProps(i, "pinterestShareUrl") || window.location.href) + "&media=" + encodeURIComponent(o.getSahreProps(i, "src")) + "&description=" + o.getSahreProps(i, "pinterestText")) }, 100) }) }, t.prototype.getSahreProps = function(t, e) { var i; return this.core.s.dynamic ? this.core.s.dynamicEl[t][e] : (i = this.core.$items.eq(t).attr("href"), t = this.core.$items.eq(t).data(e), "src" === e && i || t) }, t.prototype.destroy = function() {}, s.fn.lightGallery.modules.share = t }() }), function(t, e) { "function" == typeof define && define.amd ? define(["jquery"], e) : "object" == typeof module && module.exports ? module.exports = e(require("jquery")) : e(t.jQuery) }(this, function(i) { ! function() { "use strict"; function t(t) { return this.core = i(t).data("lightGallery"), this.core.s = i.extend({}, e, this.core.s), this.core.s.rotate && this.core.doCss() && this.init(), this } var e = { rotate: !0, rotateLeft: !0, rotateRight: !0, flipHorizontal: !0, flipVertical: !0 }; t.prototype.buildTemplates = function() { var t = ""; this.core.s.flipVertical && (t += ''), this.core.s.flipHorizontal && (t += ''), this.core.s.rotateLeft && (t += ''), this.core.s.rotateRight && (t += ''), this.core.$outer.find(".lg-toolbar").append(t) }, t.prototype.init = function() { var o = this; this.buildTemplates(), this.rotateValuesList = {}, this.core.$el.on("onAferAppendSlide.lg.tm.rotate", function(t, e) { o.core.$slide.eq(e).find(".lg-img-wrap").wrap('
') }), this.core.$outer.find(".lg-rotate-left").on("click.lg", this.rotateLeft.bind(this)), this.core.$outer.find(".lg-rotate-right").on("click.lg", this.rotateRight.bind(this)), this.core.$outer.find(".lg-flip-hor").on("click.lg", this.flipHorizontal.bind(this)), this.core.$outer.find(".lg-flip-ver").on("click.lg", this.flipVertical.bind(this)), this.core.$el.on("onBeforeSlide.lg.tm.rotate", function(t, e, i) { o.rotateValuesList[i] || (o.rotateValuesList[i] = { rotate: 0, flipHorizontal: 1, flipVertical: 1 }) }) }, t.prototype.applyStyles = function() { this.core.$slide.eq(this.core.index).find(".lg-img-rotate").css("transform", "rotate(" + this.rotateValuesList[this.core.index].rotate + "deg) scale3d(" + this.rotateValuesList[this.core.index].flipHorizontal + ", " + this.rotateValuesList[this.core.index].flipVertical + ", 1)") }, t.prototype.getCurrentRotation = function(t) { return t && "none" !== (t = (t = window.getComputedStyle(t, null)).getPropertyValue("-webkit-transform") || t.getPropertyValue("-moz-transform") || t.getPropertyValue("-ms-transform") || t.getPropertyValue("-o-transform") || t.getPropertyValue("transform") || "none") && (t = t.split("(")[1].split(")")[0].split(",")) ? (t = Math.round(Math.atan2(t[1], t[0]) * (180 / Math.PI))) < 0 ? t + 360 : t : 0 }, t.prototype.rotateLeft = function() { this.rotateValuesList[this.core.index].rotate -= 90, this.applyStyles() }, t.prototype.rotateRight = function() { this.rotateValuesList[this.core.index].rotate += 90, this.applyStyles() }, t.prototype.flipHorizontal = function() { var t = this.core.$slide.eq(this.core.index).find(".lg-img-rotate")[0], t = 90 !== (t = this.getCurrentRotation(t)) && 270 !== t ? "flipHorizontal" : "flipVertical"; this.rotateValuesList[this.core.index][t] *= -1, this.applyStyles() }, t.prototype.flipVertical = function() { var t = this.core.$slide.eq(this.core.index).find(".lg-img-rotate")[0], t = 90 !== (t = this.getCurrentRotation(t)) && 270 !== t ? "flipVertical" : "flipHorizontal"; this.rotateValuesList[this.core.index][t] *= -1, this.applyStyles() }, t.prototype.destroy = function() { this.core.$el.off(".lg.tm.rotate"), this.rotateValuesList = {} }, i.fn.lightGallery.modules.rotate = t }() }), function(t) { "function" == typeof define && define.amd ? define(["jquery"], t) : "object" == typeof exports ? module.exports = t : t(jQuery) }(function(h) { function e(t) { var e, i = t || window.event, o = g.call(arguments, 1), s = 0, n = 0, r = 0, a = 0, l = 0, c = 0; if ((t = h.event.fix(i)).type = "mousewheel", "detail" in i && (r = -1 * i.detail), "wheelDelta" in i && (r = i.wheelDelta), "wheelDeltaY" in i && (r = i.wheelDeltaY), "wheelDeltaX" in i && (n = -1 * i.wheelDeltaX), "axis" in i && i.axis === i.HORIZONTAL_AXIS && (n = -1 * r, r = 0), s = 0 === r ? n : r, "deltaY" in i && (s = r = -1 * i.deltaY), "deltaX" in i && (n = i.deltaX, 0 === r && (s = -1 * n)), 0 !== r || 0 !== n) { 1 === i.deltaMode ? (s *= e = h.data(this, "mousewheel-line-height"), r *= e, n *= e) : 2 === i.deltaMode && (s *= e = h.data(this, "mousewheel-page-height"), r *= e, n *= e); a = Math.max(Math.abs(r), Math.abs(n)); return f && !(a < f) || d(i, f = a) && (f /= 40), d(i, a) && (s /= 40, n /= 40, r /= 40), s = Math[1 <= s ? "floor" : "ceil"](s / f), n = Math[1 <= n ? "floor" : "ceil"](n / f), r = Math[1 <= r ? "floor" : "ceil"](r / f), m.settings.normalizeOffset && this.getBoundingClientRect && (a = this.getBoundingClientRect(), l = t.clientX - a.left, c = t.clientY - a.top), t.deltaX = n, t.deltaY = r, t.deltaFactor = f, t.offsetX = l, t.offsetY = c, t.deltaMode = 0, o.unshift(t, s, n, r), p && clearTimeout(p), p = setTimeout(u, 200), (h.event.dispatch || h.event.handle).apply(this, o) } } function u() { f = null } function d(t, e) { return m.settings.adjustOldDeltas && "mousewheel" === t.type && e % 120 == 0 } var p, f, t = ["wheel", "mousewheel", "DOMMouseScroll", "MozMousePixelScroll"], i = "onwheel" in document || 9 <= document.documentMode ? ["wheel"] : ["mousewheel", "DomMouseScroll", "MozMousePixelScroll"], g = Array.prototype.slice; if (h.event.fixHooks) for (var o = t.length; o;) h.event.fixHooks[t[--o]] = h.event.mouseHooks; var m = h.event.special.mousewheel = { version: "3.1.12", setup: function() { if (this.addEventListener) for (var t = i.length; t;) this.addEventListener(i[--t], e, !1); else this.onmousewheel = e; h.data(this, "mousewheel-line-height", m.getLineHeight(this)), h.data(this, "mousewheel-page-height", m.getPageHeight(this)) }, teardown: function() { if (this.removeEventListener) for (var t = i.length; t;) this.removeEventListener(i[--t], e, !1); else this.onmousewheel = null; h.removeData(this, "mousewheel-line-height"), h.removeData(this, "mousewheel-page-height") }, getLineHeight: function(t) { var e = h(t); return (t = e["offsetParent" in h.fn ? "offsetParent" : "parent"]()).length || (t = h("body")), parseInt(t.css("fontSize"), 10) || parseInt(e.css("fontSize"), 10) || 16 }, getPageHeight: function(t) { return h(t).height() }, settings: { adjustOldDeltas: !0, normalizeOffset: !0 } }; h.fn.extend({ mousewheel: function(t) { return t ? this.bind("mousewheel", t) : this.trigger("mousewheel") }, unmousewheel: function(t) { return this.unbind("mousewheel", t) } }) }), function() { function e(t, e) { return function() { return t.apply(e, arguments) } } var o, t, i, l, s, r = [].indexOf || function(t) { for (var e = 0, i = this.length; e < i; e++) if (e in this && this[e] === t) return e; return -1 }; function n(t) { null == t && (t = {}), this.scrollCallback = e(this.scrollCallback, this), this.scrollHandler = e(this.scrollHandler, this), this.resetAnimation = e(this.resetAnimation, this), this.start = e(this.start, this), this.scrolled = !0, this.config = this.util().extend(t, this.defaults), null != t.scrollContainer && (this.config.scrollContainer = document.querySelector(t.scrollContainer)), this.animationNameCache = new i, this.wowEvent = this.util().createEvent(this.config.boxClass) } function a() { "undefined" != typeof console && null !== console && console.warn("MutationObserver is not supported by your browser."), "undefined" != typeof console && null !== console && console.warn("WOW.js cannot detect dom mutations, please call .sync() after loading new content.") } function c() { this.keys = [], this.values = [] } function h() {} h.prototype.extend = function(t, e) { var i, o; for (i in e) o = e[i], null == t[i] && (t[i] = o); return t }, h.prototype.isMobile = function(t) { return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(t) }, h.prototype.createEvent = function(t, e, i, o) { var s; return null == e && (e = !1), null == i && (i = !1), null == o && (o = null), null != document.createEvent ? (s = document.createEvent("CustomEvent")).initCustomEvent(t, e, i, o) : null != document.createEventObject ? (s = document.createEventObject()).eventType = t : s.eventName = t, s }, h.prototype.emitEvent = function(t, e) { return null != t.dispatchEvent ? t.dispatchEvent(e) : e in (null != t) ? t[e]() : "on" + e in (null != t) ? t["on" + e]() : void 0 }, h.prototype.addEvent = function(t, e, i) { return null != t.addEventListener ? t.addEventListener(e, i, !1) : null != t.attachEvent ? t.attachEvent("on" + e, i) : t[e] = i }, h.prototype.removeEvent = function(t, e, i) { return null != t.removeEventListener ? t.removeEventListener(e, i, !1) : null != t.detachEvent ? t.detachEvent("on" + e, i) : delete t[e] }, h.prototype.innerHeight = function() { return "innerHeight" in window ? window.innerHeight : document.documentElement.clientHeight }, t = h, i = this.WeakMap || this.MozWeakMap || (c.prototype.get = function(t) { for (var e, i, o = e = 0, s = (i = this.keys).length; e < s; o = ++e) if (i[o] === t) return this.values[o] }, c.prototype.set = function(t, e) { for (var i, o, s = i = 0, n = (o = this.keys).length; i < n; s = ++i) if (o[s] === t) return void(this.values[s] = e); return this.keys.push(t), this.values.push(e) }, c), o = this.MutationObserver || this.WebkitMutationObserver || this.MozMutationObserver || (a.notSupported = !0, a.prototype.observe = function() {}, a), l = this.getComputedStyle || function(i, t) { return this.getPropertyValue = function(t) { var e; return "float" === t && (t = "styleFloat"), s.test(t) && t.replace(s, function(t, e) { return e.toUpperCase() }), (null != (e = i.currentStyle) ? e[t] : void 0) || null }, this }, s = /(\-([a-z]){1})/g, this.WOW = (n.prototype.defaults = { boxClass: "wow", animateClass: "animated", offset: 0, mobile: !0, live: !0, callback: null, scrollContainer: null }, n.prototype.init = function() { var t; return this.element = window.document.documentElement, "interactive" === (t = document.readyState) || "complete" === t ? this.start() : this.util().addEvent(document, "DOMContentLoaded", this.start), this.finished = [] }, n.prototype.start = function() { var s, t, e, i, r; if (this.stopped = !1, this.boxes = function() { for (var t, e = [], i = 0, o = (t = this.element.querySelectorAll("." + this.config.boxClass)).length; i < o; i++) s = t[i], e.push(s); return e }.call(this), this.all = function() { for (var t, e = [], i = 0, o = (t = this.boxes).length; i < o; i++) s = t[i], e.push(s); return e }.call(this), this.boxes.length) if (this.disabled()) this.resetStyle(); else for (t = 0, e = (i = this.boxes).length; t < e; t++) s = i[t], this.applyStyle(s, !0); return this.disabled() || (this.util().addEvent(this.config.scrollContainer || window, "scroll", this.scrollHandler), this.util().addEvent(window, "resize", this.scrollHandler), this.interval = setInterval(this.scrollCallback, 50)), this.config.live ? new o((r = this, function(t) { for (var s, n, e = [], i = 0, o = t.length; i < o; i++) n = t[i], e.push(function() { for (var t, e = [], i = 0, o = (t = n.addedNodes || []).length; i < o; i++) s = t[i], e.push(this.doSync(s)); return e }.call(r)); return e })).observe(document.body, { childList: !0, subtree: !0 }) : void 0 }, n.prototype.stop = function() { return this.stopped = !0, this.util().removeEvent(this.config.scrollContainer || window, "scroll", this.scrollHandler), this.util().removeEvent(window, "resize", this.scrollHandler), null != this.interval ? clearInterval(this.interval) : void 0 }, n.prototype.sync = function(t) { return o.notSupported ? this.doSync(this.element) : void 0 }, n.prototype.doSync = function(t) { var e, i, o, s, n; if (null == t && (t = this.element), 1 === t.nodeType) { for (n = [], i = 0, o = (s = (t = t.parentNode || t).querySelectorAll("." + this.config.boxClass)).length; i < o; i++) e = s[i], r.call(this.all, e) < 0 ? (this.boxes.push(e), this.all.push(e), this.stopped || this.disabled() ? this.resetStyle() : this.applyStyle(e, !0), n.push(this.scrolled = !0)) : n.push(void 0); return n } }, n.prototype.show = function(t) { return this.applyStyle(t), t.className = t.className + " " + this.config.animateClass, null != this.config.callback && this.config.callback(t), this.util().emitEvent(t, this.wowEvent), this.util().addEvent(t, "animationend", this.resetAnimation), this.util().addEvent(t, "oanimationend", this.resetAnimation), this.util().addEvent(t, "webkitAnimationEnd", this.resetAnimation), this.util().addEvent(t, "MSAnimationEnd", this.resetAnimation), t }, n.prototype.applyStyle = function(t, e) { var i, o = t.getAttribute("data-wow-duration"), s = t.getAttribute("data-wow-delay"), n = t.getAttribute("data-wow-iteration"); return this.animate((i = this, function() { return i.customStyle(t, e, o, s, n) })) }, n.prototype.animate = "requestAnimationFrame" in window ? function(t) { return window.requestAnimationFrame(t) } : function(t) { return t() }, n.prototype.resetStyle = function() { for (var t, e, i = [], o = 0, s = (e = this.boxes).length; o < s; o++) t = e[o], i.push(t.style.visibility = "visible"); return i }, n.prototype.resetAnimation = function(t) { return 0 <= t.type.toLowerCase().indexOf("animationend") ? (t = t.target || t.srcElement).className = t.className.replace(this.config.animateClass, "").trim() : void 0 }, n.prototype.customStyle = function(t, e, i, o, s) { return e && this.cacheAnimationName(t), t.style.visibility = e ? "hidden" : "visible", i && this.vendorSet(t.style, { animationDuration: i }), o && this.vendorSet(t.style, { animationDelay: o }), s && this.vendorSet(t.style, { animationIterationCount: s }), this.vendorSet(t.style, { animationName: e ? "none" : this.cachedAnimationName(t) }), t }, n.prototype.vendors = ["moz", "webkit"], n.prototype.vendorSet = function(s, t) { var n, r, a, e = []; for (n in t) r = t[n], s["" + n] = r, e.push(function() { for (var t, e = [], i = 0, o = (t = this.vendors).length; i < o; i++) a = t[i], e.push(s["" + a + n.charAt(0).toUpperCase() + n.substr(1)] = r); return e }.call(this)); return e }, n.prototype.vendorCSS = function(t, e) { for (var i, o, s, n = (o = l(t)).getPropertyCSSValue(e), r = 0, a = (i = this.vendors).length; r < a; r++) s = i[r], n = n || o.getPropertyCSSValue("-" + s + "-" + e); return n }, n.prototype.animationName = function(e) { var i; try { i = this.vendorCSS(e, "animation-name").cssText } catch (t) { i = l(e).getPropertyValue("animation-name") } return "none" === i ? "" : i }, n.prototype.cacheAnimationName = function(t) { return this.animationNameCache.set(t, this.animationName(t)) }, n.prototype.cachedAnimationName = function(t) { return this.animationNameCache.get(t) }, n.prototype.scrollHandler = function() { return this.scrolled = !0 }, n.prototype.scrollCallback = function() { var s; return !this.scrolled || (this.scrolled = !1, this.boxes = function() { for (var t, e = [], i = 0, o = (t = this.boxes).length; i < o; i++)(s = t[i]) && (this.isVisible(s) ? this.show(s) : e.push(s)); return e }.call(this), this.boxes.length || this.config.live) ? void 0 : this.stop() }, n.prototype.offsetTop = function(t) { for (var e; void 0 === t.offsetTop;) t = t.parentNode; for (e = t.offsetTop; t = t.offsetParent;) e += t.offsetTop; return e }, n.prototype.isVisible = function(t) { var e = t.getAttribute("data-wow-offset") || this.config.offset, i = this.config.scrollContainer && this.config.scrollContainer.scrollTop || window.pageYOffset, o = i + Math.min(this.element.clientHeight, this.util().innerHeight()) - e, t = (e = this.offsetTop(t)) + t.clientHeight; return e <= o && i <= t }, n.prototype.util = function() { return null != this._util ? this._util : this._util = new t }, n.prototype.disabled = function() { return !this.config.mobile && this.util().isMobile(navigator.userAgent) }, n.prototype.removeBox = function(t) { -1 < (t = this.boxes.indexOf(t)) && this.boxes.splice(t, 1) }, n) }.call(this), function(e, i) { "function" == typeof define && define.amd ? define("jquery-bridget/jquery-bridget", ["jquery"], function(t) { return i(e, t) }) : "object" == typeof module && module.exports ? module.exports = i(e, require("jquery")) : e.jQueryBridget = i(e, e.jQuery) }(window, function(t, e) { "use strict"; function i(l, c, h) { (h = h || e || t.jQuery) && (c.prototype.option || (c.prototype.option = function(t) { h.isPlainObject(t) && (this.options = h.extend(!0, this.options, t)) }), h.fn[l] = function(t) { if ("string" != typeof t) return n = t, this.each(function(t, e) { var i = h.data(e, l); i ? (i.option(n), i._init()) : (i = new c(e, n), h.data(e, l, i)) }), this; var o, s, n, r = u.call(arguments, 1), a = "$()." + l + '("' + (o = t) + '")'; return (t = this).each(function(t, e) { var i = h.data(e, l); i ? (e = i[o]) && "_" != o.charAt(0) ? (i = e.apply(i, r), s = void 0 === s ? i : s) : d(a + " is not a valid method") : d(l + " not initialized. Cannot call methods, i.e. " + a) }), void 0 !== s ? s : t }, o(h)) } function o(t) { !t || t && t.bridget || (t.bridget = i) } var u = Array.prototype.slice, s = t.console, d = void 0 === s ? function() {} : function(t) { s.error(t) }; return o(e || t.jQuery), i }), function(t, e) { "function" == typeof define && define.amd ? define("ev-emitter/ev-emitter", e) : "object" == typeof module && module.exports ? module.exports = e() : t.EvEmitter = e() }("undefined" != typeof window ? window : this, function() { function t() {} var e = t.prototype; return e.on = function(t, e) { if (t && e) { var i = this._events = this._events || {}; return -1 == (t = i[t] = i[t] || []).indexOf(e) && t.push(e), this } }, e.once = function(t, e) { if (t && e) { this.on(t, e); var i = this._onceEvents = this._onceEvents || {}; return (i[t] = i[t] || {})[e] = !0, this } }, e.off = function(t, e) { if ((t = this._events && this._events[t]) && t.length) return -1 != (e = t.indexOf(e)) && t.splice(e, 1), this }, e.emitEvent = function(t, e) { var i = this._events && this._events[t]; if (i && i.length) { var o = 0, s = i[o]; e = e || []; for (var n = this._onceEvents && this._onceEvents[t]; s;) { var r = n && n[s]; r && (this.off(t, s), delete n[s]), s.apply(this, e), s = i[o += r ? 0 : 1] } return this } }, t }), function(t, e) { "use strict"; "function" == typeof define && define.amd ? define("get-size/get-size", [], e) : "object" == typeof module && module.exports ? module.exports = e() : t.getSize = e() }(window, function() { "use strict"; function p(t) { var e = parseFloat(t); return -1 == t.indexOf("%") && !isNaN(e) && e } function f(t) { return (t = getComputedStyle(t)) || e("Style returned " + t + ". Are you running this code in a hidden iframe on Firefox? See http://bit.ly/getsizebug1"), t } function g(t) { if (b || (b = !0, (d = document.createElement("div")).style.width = "200px", d.style.padding = "1px 2px 3px 4px", d.style.borderStyle = "solid", d.style.borderWidth = "1px 2px 3px 4px", d.style.boxSizing = "border-box", (u = document.body || document.documentElement).appendChild(d), h = f(d), g.isBoxSizeOuter = m = 200 == p(h.width), u.removeChild(d)), "string" == typeof t && (t = document.querySelector(t)), t && "object" == typeof t && t.nodeType) { var e = f(t); if ("none" == e.display) return function() { for (var t = { width: 0, height: 0, innerWidth: 0, innerHeight: 0, outerWidth: 0, outerHeight: 0 }, e = 0; e < v; e++) t[y[e]] = 0; return t }(); var i = {}; i.width = t.offsetWidth, i.height = t.offsetHeight; for (var o = i.isBorderBox = "border-box" == e.boxSizing, s = 0; s < v; s++) { var n = y[s], r = e[n], r = parseFloat(r); i[n] = isNaN(r) ? 0 : r } var a = i.paddingLeft + i.paddingRight, l = i.paddingTop + i.paddingBottom, c = i.marginLeft + i.marginRight, h = i.marginTop + i.marginBottom, u = i.borderLeftWidth + i.borderRightWidth, d = i.borderTopWidth + i.borderBottomWidth, t = o && m; return !1 !== (o = p(e.width)) && (i.width = o + (t ? 0 : a + u)), !1 !== (o = p(e.height)) && (i.height = o + (t ? 0 : l + d)), i.innerWidth = i.width - (a + u), i.innerHeight = i.height - (l + d), i.outerWidth = i.width + c, i.outerHeight = i.height + h, i } } var m, e = "undefined" == typeof console ? function() {} : function(t) { console.error(t) }, y = ["paddingLeft", "paddingRight", "paddingTop", "paddingBottom", "marginLeft", "marginRight", "marginTop", "marginBottom", "borderLeftWidth", "borderRightWidth", "borderTopWidth", "borderBottomWidth"], v = y.length, b = !1; return g }), function(t, e) { "use strict"; "function" == typeof define && define.amd ? define("desandro-matches-selector/matches-selector", e) : "object" == typeof module && module.exports ? module.exports = e() : t.matchesSelector = e() }(window, function() { "use strict"; var i = function() { var t = window.Element.prototype; if (t.matches) return "matches"; if (t.matchesSelector) return "matchesSelector"; for (var e = ["webkit", "moz", "ms", "o"], i = 0; i < e.length; i++) { var o = e[i] + "MatchesSelector"; if (t[o]) return o } }(); return function(t, e) { return t[i](e) } }), function(e, i) { "function" == typeof define && define.amd ? define("fizzy-ui-utils/utils", ["desandro-matches-selector/matches-selector"], function(t) { return i(e, t) }) : "object" == typeof module && module.exports ? module.exports = i(e, require("desandro-matches-selector")) : e.fizzyUIUtils = i(e, e.matchesSelector) }(window, function(i, n) { var c = { extend: function(t, e) { for (var i in e) t[i] = e[i]; return t }, modulo: function(t, e) { return (t % e + e) % e }, makeArray: function(t) { var e = []; if (Array.isArray(t)) e = t; else if (t && "object" == typeof t && "number" == typeof t.length) for (var i = 0; i < t.length; i++) e.push(t[i]); else e.push(t); return e }, removeFrom: function(t, e) { -1 != (e = t.indexOf(e)) && t.splice(e, 1) }, getParent: function(t, e) { for (; t.parentNode && t != document.body;) if (t = t.parentNode, n(t, e)) return t }, getQueryElement: function(t) { return "string" == typeof t ? document.querySelector(t) : t }, handleEvent: function(t) { var e = "on" + t.type; this[e] && this[e](t) }, filterFindElements: function(t, o) { t = c.makeArray(t); var s = []; return t.forEach(function(t) { if (t instanceof HTMLElement) if (o) { n(t, o) && s.push(t); for (var e = t.querySelectorAll(o), i = 0; i < e.length; i++) s.push(e[i]) } else s.push(t) }), s }, debounceMethod: function(t, e, o) { var s = t.prototype[e], n = e + "Timeout"; t.prototype[e] = function() { var t = this[n]; t && clearTimeout(t); var e = arguments, i = this; this[n] = setTimeout(function() { s.apply(i, e), delete i[n] }, o || 100) } }, docReady: function(t) { var e = document.readyState; "complete" == e || "interactive" == e ? setTimeout(t) : document.addEventListener("DOMContentLoaded", t) }, toDashed: function(t) { return t.replace(/(.)([A-Z])/g, function(t, e, i) { return e + "-" + i }).toLowerCase() } }, h = i.console; return c.htmlInit = function(a, l) { c.docReady(function() { var s = "data-" + (e = c.toDashed(l)), t = document.querySelectorAll("[" + s + "]"), e = document.querySelectorAll(".js-" + e), e = c.makeArray(t).concat(c.makeArray(e)), n = s + "-options", r = i.jQuery; e.forEach(function(t) { var e, i = t.getAttribute(s) || t.getAttribute(n); try { e = i && JSON.parse(i) } catch (e) { return void(h && h.error("Error parsing " + s + " on " + t.className + ": " + e)) } var o = new a(t, e); r && r.data(t, l, o) }) }) }, c }), function(t, e) { "function" == typeof define && define.amd ? define("outlayer/item", ["ev-emitter/ev-emitter", "get-size/get-size"], e) : "object" == typeof module && module.exports ? module.exports = e(require("ev-emitter"), require("get-size")) : (t.Outlayer = {}, t.Outlayer.Item = e(t.EvEmitter, t.getSize)) }(window, function(t, e) { "use strict"; function i(t, e) { t && (this.element = t, this.layout = e, this.position = { x: 0, y: 0 }, this._create()) } var o = document.documentElement.style, s = "string" == typeof o.transition ? "transition" : "WebkitTransition", o = "string" == typeof o.transform ? "transform" : "WebkitTransform", n = { WebkitTransition: "webkitTransitionEnd", transition: "transitionend" } [s], r = { transform: o, transition: s, transitionDuration: s + "Duration", transitionProperty: s + "Property", transitionDelay: s + "Delay" }; (t = i.prototype = Object.create(t.prototype)).constructor = i, t._create = function() { this._transn = { ingProperties: {}, clean: {}, onEnd: {} }, this.css({ position: "absolute" }) }, t.handleEvent = function(t) { var e = "on" + t.type; this[e] && this[e](t) }, t.getSize = function() { this.size = e(this.element) }, t.css = function(t) { var e, i = this.element.style; for (e in t) i[r[e] || e] = t[e] }, t.getPosition = function() { var t = getComputedStyle(this.element), e = this.layout._getOption("originLeft"), i = this.layout._getOption("originTop"), o = t[e ? "left" : "right"], s = t[i ? "top" : "bottom"], t = this.layout.size, o = -1 != o.indexOf("%") ? parseFloat(o) / 100 * t.width : parseInt(o, 10), s = -1 != s.indexOf("%") ? parseFloat(s) / 100 * t.height : parseInt(s, 10), o = isNaN(o) ? 0 : o, s = isNaN(s) ? 0 : s; o -= e ? t.paddingLeft : t.paddingRight, s -= i ? t.paddingTop : t.paddingBottom, this.position.x = o, this.position.y = s }, t.layoutPosition = function() { var t = this.layout.size, e = {}, i = this.layout._getOption("originLeft"), o = this.layout._getOption("originTop"), s = i ? "paddingLeft" : "paddingRight", n = i ? "left" : "right", i = i ? "right" : "left", s = this.position.x + t[s]; e[n] = this.getXValue(s), e[i] = "", s = o ? "paddingTop" : "paddingBottom", i = o ? "top" : "bottom", o = o ? "bottom" : "top", s = this.position.y + t[s], e[i] = this.getYValue(s), e[o] = "", this.css(e), this.emitEvent("layout", [this]) }, t.getXValue = function(t) { var e = this.layout._getOption("horizontal"); return this.layout.options.percentPosition && !e ? t / this.layout.size.width * 100 + "%" : t + "px" }, t.getYValue = function(t) { var e = this.layout._getOption("horizontal"); return this.layout.options.percentPosition && e ? t / this.layout.size.height * 100 + "%" : t + "px" }, t._transitionTo = function(t, e) { this.getPosition(); var i = this.position.x, o = this.position.y, s = parseInt(t, 10), n = parseInt(e, 10), n = s === this.position.x && n === this.position.y; this.setPosition(t, e), !n || this.isTransitioning ? (i = t - i, e -= o, (o = {}).transform = this.getTranslate(i, e), this.transition({ to: o, onTransitionEnd: { transform: this.layoutPosition }, isCleaning: !0 })) : this.layoutPosition() }, t.getTranslate = function(t, e) { return "translate3d(" + (t = this.layout._getOption("originLeft") ? t : -t) + "px, " + (e = this.layout._getOption("originTop") ? e : -e) + "px, 0)" }, t.goTo = function(t, e) { this.setPosition(t, e), this.layoutPosition() }, t.moveTo = t._transitionTo, t.setPosition = function(t, e) { this.position.x = parseInt(t, 10), this.position.y = parseInt(e, 10) }, t._nonTransition = function(t) { for (var e in this.css(t.to), t.isCleaning && this._removeStyles(t.to), t.onTransitionEnd) t.onTransitionEnd[e].call(this) }, t.transition = function(t) { if (parseFloat(this.layout.options.transitionDuration)) { var e, i = this._transn; for (e in t.onTransitionEnd) i.onEnd[e] = t.onTransitionEnd[e]; for (e in t.to) i.ingProperties[e] = !0, t.isCleaning && (i.clean[e] = !0); t.from && (this.css(t.from), this.element.offsetHeight), this.enableTransition(t.to), this.css(t.to), this.isTransitioning = !0 } else this._nonTransition(t) }; var a = "opacity," + o.replace(/([A-Z])/g, function(t) { return "-" + t.toLowerCase() }); t.enableTransition = function() { var t; this.isTransitioning || (t = "number" == typeof(t = this.layout.options.transitionDuration) ? t + "ms" : t, this.css({ transitionProperty: a, transitionDuration: t, transitionDelay: this.staggerDelay || 0 }), this.element.addEventListener(n, this, !1)) }, t.onwebkitTransitionEnd = function(t) { this.ontransitionend(t) }, t.onotransitionend = function(t) { this.ontransitionend(t) }; var l = { "-webkit-transform": "transform" }; t.ontransitionend = function(t) { var e, i; t.target === this.element && (e = this._transn, i = l[t.propertyName] || t.propertyName, delete e.ingProperties[i], function() { for (var t in e.ingProperties) return; return 1 }() && this.disableTransition(), i in e.clean && (this.element.style[t.propertyName] = "", delete e.clean[i]), i in e.onEnd && (e.onEnd[i].call(this), delete e.onEnd[i]), this.emitEvent("transitionEnd", [this])) }, t.disableTransition = function() { this.removeTransitionStyles(), this.element.removeEventListener(n, this, !1), this.isTransitioning = !1 }, t._removeStyles = function(t) { var e, i = {}; for (e in t) i[e] = ""; this.css(i) }; var c = { transitionProperty: "", transitionDuration: "", transitionDelay: "" }; return t.removeTransitionStyles = function() { this.css(c) }, t.stagger = function(t) { t = isNaN(t) ? 0 : t, this.staggerDelay = t + "ms" }, t.removeElem = function() { this.element.parentNode.removeChild(this.element), this.css({ display: "" }), this.emitEvent("remove", [this]) }, t.remove = function() { return s && parseFloat(this.layout.options.transitionDuration) ? (this.once("transitionEnd", function() { this.removeElem() }), void this.hide()) : void this.removeElem() }, t.reveal = function() { delete this.isHidden, this.css({ display: "" }); var t = this.layout.options, e = {}; e[this.getHideRevealTransitionEndProperty("visibleStyle")] = this.onRevealTransitionEnd, this.transition({ from: t.hiddenStyle, to: t.visibleStyle, isCleaning: !0, onTransitionEnd: e }) }, t.onRevealTransitionEnd = function() { this.isHidden || this.emitEvent("reveal") }, t.getHideRevealTransitionEndProperty = function(t) { if ((t = this.layout.options[t]).opacity) return "opacity"; for (var e in t) return e }, t.hide = function() { this.isHidden = !0, this.css({ display: "" }); var t = this.layout.options, e = {}; e[this.getHideRevealTransitionEndProperty("hiddenStyle")] = this.onHideTransitionEnd, this.transition({ from: t.visibleStyle, to: t.hiddenStyle, isCleaning: !0, onTransitionEnd: e }) }, t.onHideTransitionEnd = function() { this.isHidden && (this.css({ display: "none" }), this.emitEvent("hide")) }, t.destroy = function() { this.css({ position: "", left: "", right: "", top: "", bottom: "", transition: "", transform: "" }) }, i }), function(s, n) { "use strict"; "function" == typeof define && define.amd ? define("outlayer/outlayer", ["ev-emitter/ev-emitter", "get-size/get-size", "fizzy-ui-utils/utils", "./item"], function(t, e, i, o) { return n(s, t, e, i, o) }) : "object" == typeof module && module.exports ? module.exports = n(s, require("ev-emitter"), require("get-size"), require("fizzy-ui-utils"), require("./item")) : s.Outlayer = n(s, s.EvEmitter, s.getSize, s.fizzyUIUtils, s.Outlayer.Item) }(window, function(t, e, s, o, n) { "use strict"; function r(t, e) { var i = o.getQueryElement(t); i ? (this.element = i, c && (this.$element = c(this.element)), this.options = o.extend({}, this.constructor.defaults), this.option(e), e = ++h, this.element.outlayerGUID = e, (u[e] = this)._create(), this._getOption("initLayout") && this.layout()) : l && l.error("Bad element for " + this.constructor.namespace + ": " + (i || t)) } function a(t) { function e() { t.apply(this, arguments) } return (e.prototype = Object.create(t.prototype)).constructor = e } function i() {} var l = t.console, c = t.jQuery, h = 0, u = {}; r.namespace = "outlayer", r.Item = n, r.defaults = { containerStyle: { position: "relative" }, initLayout: !0, originLeft: !0, originTop: !0, resize: !0, resizeContainer: !0, transitionDuration: "0.4s", hiddenStyle: { opacity: 0, transform: "scale(0.001)" }, visibleStyle: { opacity: 1, transform: "scale(1)" } }; var d = r.prototype; o.extend(d, e.prototype), d.option = function(t) { o.extend(this.options, t) }, d._getOption = function(t) { var e = this.constructor.compatOptions[t]; return e && void 0 !== this.options[e] ? this.options[e] : this.options[t] }, r.compatOptions = { initLayout: "isInitLayout", horizontal: "isHorizontal", layoutInstant: "isLayoutInstant", originLeft: "isOriginLeft", originTop: "isOriginTop", resize: "isResizeBound", resizeContainer: "isResizingContainer" }, d._create = function() { this.reloadItems(), this.stamps = [], this.stamp(this.options.stamp), o.extend(this.element.style, this.options.containerStyle), this._getOption("resize") && this.bindResize() }, d.reloadItems = function() { this.items = this._itemize(this.element.children) }, d._itemize = function(t) { for (var e = this._filterFindItemElements(t), i = this.constructor.Item, o = [], s = 0; s < e.length; s++) { var n = new i(e[s], this); o.push(n) } return o }, d._filterFindItemElements = function(t) { return o.filterFindElements(t, this.options.itemSelector) }, d.getItemElements = function() { return this.items.map(function(t) { return t.element }) }, d.layout = function() { this._resetLayout(), this._manageStamps(); var t = void 0 !== (t = this._getOption("layoutInstant")) ? t : !this._isLayoutInited; this.layoutItems(this.items, t), this._isLayoutInited = !0 }, d._init = d.layout, d._resetLayout = function() { this.getSize() }, d.getSize = function() { this.size = s(this.element) }, d._getMeasurement = function(t, e) { var i, o = this.options[t]; o ? ("string" == typeof o ? i = this.element.querySelector(o) : o instanceof HTMLElement && (i = o), this[t] = i ? s(i)[e] : o) : this[t] = 0 }, d.layoutItems = function(t, e) { t = this._getItemsForLayout(t), this._layoutItems(t, e), this._postLayout() }, d._getItemsForLayout = function(t) { return t.filter(function(t) { return !t.isIgnored }) }, d._layoutItems = function(t, i) { var o; this._emitCompleteOnItems("layout", t), t && t.length && (o = [], t.forEach(function(t) { var e = this._getItemLayoutPosition(t); e.item = t, e.isInstant = i || t.isLayoutInstant, o.push(e) }, this), this._processLayoutQueue(o)) }, d._getItemLayoutPosition = function() { return { x: 0, y: 0 } }, d._processLayoutQueue = function(t) { this.updateStagger(), t.forEach(function(t, e) { this._positionItem(t.item, t.x, t.y, t.isInstant, e) }, this) }, d.updateStagger = function() { var t = this.options.stagger; return null == t ? void(this.stagger = 0) : (this.stagger = function(t) { if ("number" == typeof t) return t; var t = (e = t.match(/(^\d*\.?\d*)(\w*)/)) && e[1], e = e && e[2]; return t.length ? (t = parseFloat(t)) * (p[e] || 1) : 0 }(t), this.stagger) }, d._positionItem = function(t, e, i, o, s) { o ? t.goTo(e, i) : (t.stagger(s * this.stagger), t.moveTo(e, i)) }, d._postLayout = function() { this.resizeContainer() }, d.resizeContainer = function() { var t; !this._getOption("resizeContainer") || (t = this._getContainerSize()) && (this._setContainerMeasure(t.width, !0), this._setContainerMeasure(t.height, !1)) }, d._getContainerSize = i, d._setContainerMeasure = function(t, e) { var i; void 0 !== t && ((i = this.size).isBorderBox && (t += e ? i.paddingLeft + i.paddingRight + i.borderLeftWidth + i.borderRightWidth : i.paddingBottom + i.paddingTop + i.borderTopWidth + i.borderBottomWidth), t = Math.max(t, 0), this.element.style[e ? "width" : "height"] = t + "px") }, d._emitCompleteOnItems = function(e, t) { function i() { n.dispatchEvent(e + "Complete", null, [t]) } function o() { ++s == r && i() } var s, n = this, r = t.length; t && r ? (s = 0, t.forEach(function(t) { t.once(e, o) })) : i() }, d.dispatchEvent = function(t, e, i) { var o = e ? [e].concat(i) : i; this.emitEvent(t, o), c && (this.$element = this.$element || c(this.element), e ? ((e = c.Event(e)).type = t, this.$element.trigger(e, i)) : this.$element.trigger(t, i)) }, d.ignore = function(t) { (t = this.getItem(t)) && (t.isIgnored = !0) }, d.unignore = function(t) { (t = this.getItem(t)) && delete t.isIgnored }, d.stamp = function(t) { (t = this._find(t)) && (this.stamps = this.stamps.concat(t), t.forEach(this.ignore, this)) }, d.unstamp = function(t) { (t = this._find(t)) && t.forEach(function(t) { o.removeFrom(this.stamps, t), this.unignore(t) }, this) }, d._find = function(t) { if (t) return "string" == typeof t && (t = this.element.querySelectorAll(t)), o.makeArray(t) }, d._manageStamps = function() { this.stamps && this.stamps.length && (this._getBoundingRect(), this.stamps.forEach(this._manageStamp, this)) }, d._getBoundingRect = function() { var t = this.element.getBoundingClientRect(), e = this.size; this._boundingRect = { left: t.left + e.paddingLeft + e.borderLeftWidth, top: t.top + e.paddingTop + e.borderTopWidth, right: t.right - (e.paddingRight + e.borderRightWidth), bottom: t.bottom - (e.paddingBottom + e.borderBottomWidth) } }, d._manageStamp = i, d._getElementOffset = function(t) { var e = t.getBoundingClientRect(), i = this._boundingRect, t = s(t); return { left: e.left - i.left - t.marginLeft, top: e.top - i.top - t.marginTop, right: i.right - e.right - t.marginRight, bottom: i.bottom - e.bottom - t.marginBottom } }, d.handleEvent = o.handleEvent, d.bindResize = function() { t.addEventListener("resize", this), this.isResizeBound = !0 }, d.unbindResize = function() { t.removeEventListener("resize", this), this.isResizeBound = !1 }, d.onresize = function() { this.resize() }, o.debounceMethod(r, "onresize", 100), d.resize = function() { this.isResizeBound && this.needsResizeLayout() && this.layout() }, d.needsResizeLayout = function() { var t = s(this.element); return this.size && t && t.innerWidth !== this.size.innerWidth }, d.addItems = function(t) { return (t = this._itemize(t)).length && (this.items = this.items.concat(t)), t }, d.appended = function(t) { (t = this.addItems(t)).length && (this.layoutItems(t, !0), this.reveal(t)) }, d.prepended = function(t) { var e = this._itemize(t); e.length && (t = this.items.slice(0), this.items = e.concat(t), this._resetLayout(), this._manageStamps(), this.layoutItems(e, !0), this.reveal(e), this.layoutItems(t)) }, d.reveal = function(t) { var i; this._emitCompleteOnItems("reveal", t), t && t.length && (i = this.updateStagger(), t.forEach(function(t, e) { t.stagger(e * i), t.reveal() })) }, d.hide = function(t) { var i; this._emitCompleteOnItems("hide", t), t && t.length && (i = this.updateStagger(), t.forEach(function(t, e) { t.stagger(e * i), t.hide() })) }, d.revealItemElements = function(t) { t = this.getItems(t), this.reveal(t) }, d.hideItemElements = function(t) { t = this.getItems(t), this.hide(t) }, d.getItem = function(t) { for (var e = 0; e < this.items.length; e++) { var i = this.items[e]; if (i.element == t) return i } }, d.getItems = function(t) { t = o.makeArray(t); var e = []; return t.forEach(function(t) { (t = this.getItem(t)) && e.push(t) }, this), e }, d.remove = function(t) { t = this.getItems(t), this._emitCompleteOnItems("remove", t), t && t.length && t.forEach(function(t) { t.remove(), o.removeFrom(this.items, t) }, this) }, d.destroy = function() { var t = this.element.style; t.height = "", t.position = "", t.width = "", this.items.forEach(function(t) { t.destroy() }), this.unbindResize(), t = this.element.outlayerGUID, delete u[t], delete this.element.outlayerGUID, c && c.removeData(this.element, this.constructor.namespace) }, r.data = function(t) { return (t = (t = o.getQueryElement(t)) && t.outlayerGUID) && u[t] }, r.create = function(t, e) { var i = a(r); return i.defaults = o.extend({}, r.defaults), o.extend(i.defaults, e), i.compatOptions = o.extend({}, r.compatOptions), i.namespace = t, i.data = r.data, i.Item = a(n), o.htmlInit(i, t), c && c.bridget && c.bridget(t, i), i }; var p = { ms: 1, s: 1e3 }; return r.Item = n, r }), function(t, e) { "function" == typeof define && define.amd ? define("isotope/js/item", ["outlayer/outlayer"], e) : "object" == typeof module && module.exports ? module.exports = e(require("outlayer")) : (t.Isotope = t.Isotope || {}, t.Isotope.Item = e(t.Outlayer)) }(window, function(t) { "use strict"; function e() { t.Item.apply(this, arguments) } var i = e.prototype = Object.create(t.Item.prototype), o = i._create; i._create = function() { this.id = this.layout.itemGUID++, o.call(this), this.sortData = {} }, i.updateSortData = function() { if (!this.isIgnored) { this.sortData.id = this.id, this.sortData["original-order"] = this.id, this.sortData.random = Math.random(); var t, e = this.layout.options.getSortData, i = this.layout._sorters; for (t in e) { var o = i[t]; this.sortData[t] = o(this.element, this) } } }; var s = i.destroy; return i.destroy = function() { s.apply(this, arguments), this.css({ display: "" }) }, e }), function(t, e) { "function" == typeof define && define.amd ? define("isotope/js/layout-mode", ["get-size/get-size", "outlayer/outlayer"], e) : "object" == typeof module && module.exports ? module.exports = e(require("get-size"), require("outlayer")) : (t.Isotope = t.Isotope || {}, t.Isotope.LayoutMode = e(t.getSize, t.Outlayer)) }(window, function(e, i) { "use strict"; function o(t) { (this.isotope = t) && (this.options = t.options[this.namespace], this.element = t.element, this.items = t.filteredItems, this.size = t.size) } var s = o.prototype; return ["_resetLayout", "_getItemLayoutPosition", "_manageStamp", "_getContainerSize", "_getElementOffset", "needsResizeLayout", "_getOption"].forEach(function(t) { s[t] = function() { return i.prototype[t].apply(this.isotope, arguments) } }), s.needsVerticalResizeLayout = function() { var t = e(this.isotope.element); return this.isotope.size && t && t.innerHeight != this.isotope.size.innerHeight }, s._getMeasurement = function() { this.isotope._getMeasurement.apply(this, arguments) }, s.getColumnWidth = function() { this.getSegmentSize("column", "Width") }, s.getRowHeight = function() { this.getSegmentSize("row", "Height") }, s.getSegmentSize = function(t, e) { var i = t + e, o = "outer" + e; this._getMeasurement(i, o), this[i] || (t = this.getFirstItemSize(), this[i] = t && t[o] || this.isotope.size["inner" + e]) }, s.getFirstItemSize = function() { var t = this.isotope.filteredItems[0]; return t && t.element && e(t.element) }, s.layout = function() { this.isotope.layout.apply(this.isotope, arguments) }, s.getSize = function() { this.isotope.getSize(), this.size = this.isotope.size }, o.modes = {}, o.create = function(t, e) { function i() { o.apply(this, arguments) } return (i.prototype = Object.create(s)).constructor = i, e && (i.options = e), o.modes[i.prototype.namespace = t] = i }, o }), function(t, e) { "function" == typeof define && define.amd ? define("masonry/masonry", ["outlayer/outlayer", "get-size/get-size"], e) : "object" == typeof module && module.exports ? module.exports = e(require("outlayer"), require("get-size")) : t.Masonry = e(t.Outlayer, t.getSize) }(window, function(t, a) { var e = t.create("masonry"); return e.compatOptions.fitWidth = "isFitWidth", (t = e.prototype)._resetLayout = function() { this.getSize(), this._getMeasurement("columnWidth", "outerWidth"), this._getMeasurement("gutter", "outerWidth"), this.measureColumns(), this.colYs = []; for (var t = 0; t < this.cols; t++) this.colYs.push(0); this.maxY = 0, this.horizontalColIndex = 0 }, t.measureColumns = function() { this.getContainerWidth(), this.columnWidth || (i = (e = this.items[0]) && e.element, this.columnWidth = i && a(i).outerWidth || this.containerWidth); var t = this.columnWidth += this.gutter, e = this.containerWidth + this.gutter, i = e / t, t = t - e % t, i = Math[t && t < 1 ? "round" : "floor"](i); this.cols = Math.max(i, 1) }, t.getContainerWidth = function() { var t = this._getOption("fitWidth") ? this.element.parentNode : this.element, t = a(t); this.containerWidth = t && t.innerWidth }, t._getItemLayoutPosition = function(t) { t.getSize(); for (var e = t.size.outerWidth % this.columnWidth, i = Math[e && e < 1 ? "round" : "ceil"](t.size.outerWidth / this.columnWidth), i = Math.min(i, this.cols), o = this[this.options.horizontalOrder ? "_getHorizontalColPosition" : "_getTopColPosition"](i, t), e = { x: this.columnWidth * o.col, y: o.y }, s = o.y + t.size.outerHeight, n = i + o.col, r = o.col; r < n; r++) this.colYs[r] = s; return e }, t._getTopColPosition = function(t) { var e = this._getTopColGroup(t), t = Math.min.apply(Math, e); return { col: e.indexOf(t), y: t } }, t._getTopColGroup = function(t) { if (t < 2) return this.colYs; for (var e = [], i = this.cols + 1 - t, o = 0; o < i; o++) e[o] = this._getColGroupY(o, t); return e }, t._getColGroupY = function(t, e) { return e < 2 ? this.colYs[t] : (e = this.colYs.slice(t, t + e), Math.max.apply(Math, e)) }, t._getHorizontalColPosition = function(t, e) { var i = this.horizontalColIndex % this.cols, i = 1 < t && i + t > this.cols ? 0 : i, e = e.size.outerWidth && e.size.outerHeight; return this.horizontalColIndex = e ? i + t : this.horizontalColIndex, { col: i, y: this._getColGroupY(i, t) } }, t._manageStamp = function(t) { var e = a(t), i = this._getElementOffset(t), t = (o = this._getOption("originLeft") ? i.left : i.right) + e.outerWidth, o = Math.floor(o / this.columnWidth), o = Math.max(0, o), s = Math.floor(t / this.columnWidth); s -= t % this.columnWidth ? 0 : 1, s = Math.min(this.cols - 1, s); for (var n = (this._getOption("originTop") ? i.top : i.bottom) + e.outerHeight, r = o; r <= s; r++) this.colYs[r] = Math.max(n, this.colYs[r]) }, t._getContainerSize = function() { this.maxY = Math.max.apply(Math, this.colYs); var t = { height: this.maxY }; return this._getOption("fitWidth") && (t.width = this._getContainerFitWidth()), t }, t._getContainerFitWidth = function() { for (var t = 0, e = this.cols; --e && 0 === this.colYs[e];) t++; return (this.cols - t) * this.columnWidth - this.gutter }, t.needsResizeLayout = function() { var t = this.containerWidth; return this.getContainerWidth(), t != this.containerWidth }, e }), function(t, e) { "function" == typeof define && define.amd ? define("isotope/js/layout-modes/masonry", ["../layout-mode", "masonry/masonry"], e) : "object" == typeof module && module.exports ? module.exports = e(require("../layout-mode"), require("masonry-layout")) : e(t.Isotope.LayoutMode, t.Masonry) }(window, function(t, e) { "use strict"; var i, o = (t = t.create("masonry")).prototype, s = { _getElementOffset: !0, layout: !0, _getMeasurement: !0 }; for (i in e.prototype) s[i] || (o[i] = e.prototype[i]); var n = o.measureColumns; o.measureColumns = function() { this.items = this.isotope.filteredItems, n.call(this) }; var r = o._getOption; return o._getOption = function(t) { return "fitWidth" == t ? void 0 !== this.options.isFitWidth ? this.options.isFitWidth : this.options.fitWidth : r.apply(this.isotope, arguments) }, t }), function(t, e) { "function" == typeof define && define.amd ? define("isotope/js/layout-modes/fit-rows", ["../layout-mode"], e) : "object" == typeof exports ? module.exports = e(require("../layout-mode")) : e(t.Isotope.LayoutMode) }(window, function(t) { "use strict"; var e = t.create("fitRows"); return (t = e.prototype)._resetLayout = function() { this.x = 0, this.y = 0, this.maxY = 0, this._getMeasurement("gutter", "outerWidth") }, t._getItemLayoutPosition = function(t) { t.getSize(); var e = t.size.outerWidth + this.gutter, i = this.isotope.size.innerWidth + this.gutter; return 0 !== this.x && e + this.x > i && (this.x = 0, this.y = this.maxY), i = { x: this.x, y: this.y }, this.maxY = Math.max(this.maxY, this.y + t.size.outerHeight), this.x += e, i }, t._getContainerSize = function() { return { height: this.maxY } }, e }), function(t, e) { "function" == typeof define && define.amd ? define("isotope/js/layout-modes/vertical", ["../layout-mode"], e) : "object" == typeof module && module.exports ? module.exports = e(require("../layout-mode")) : e(t.Isotope.LayoutMode) }(window, function(t) { "use strict"; var e = t.create("vertical", { horizontalAlignment: 0 }); return (t = e.prototype)._resetLayout = function() { this.y = 0 }, t._getItemLayoutPosition = function(t) { t.getSize(); var e = (this.isotope.size.innerWidth - t.size.outerWidth) * this.options.horizontalAlignment, i = this.y; return this.y += t.size.outerHeight, { x: e, y: i } }, t._getContainerSize = function() { return { height: this.y } }, e }), function(r, a) { "function" == typeof define && define.amd ? define(["outlayer/outlayer", "get-size/get-size", "desandro-matches-selector/matches-selector", "fizzy-ui-utils/utils", "isotope/js/item", "isotope/js/layout-mode", "isotope/js/layout-modes/masonry", "isotope/js/layout-modes/fit-rows", "isotope/js/layout-modes/vertical"], function(t, e, i, o, s, n) { return a(r, t, 0, i, o, s, n) }) : "object" == typeof module && module.exports ? module.exports = a(r, require("outlayer"), require("get-size"), require("desandro-matches-selector"), require("fizzy-ui-utils"), require("isotope/js/item"), require("isotope/js/layout-mode"), require("isotope/js/layout-modes/masonry"), require("isotope/js/layout-modes/fit-rows"), require("isotope/js/layout-modes/vertical")) : r.Isotope = a(r, r.Outlayer, r.getSize, r.matchesSelector, r.fizzyUIUtils, r.Isotope.Item, r.Isotope.LayoutMode) }(window, function(t, i, e, o, n, s, r) { var a = t.jQuery, l = String.prototype.trim ? function(t) { return t.trim() } : function(t) { return t.replace(/^\s+|\s+$/g, "") }, c = i.create("isotope", { layoutMode: "masonry", isJQueryFiltering: !0, sortAscending: !0 }); c.Item = s, c.LayoutMode = r, (s = c.prototype)._create = function() { for (var t in this.itemGUID = 0, this._sorters = {}, this._getSorters(), i.prototype._create.call(this), this.modes = {}, this.filteredItems = this.items, this.sortHistory = ["original-order"], r.modes) this._initLayoutMode(t) }, s.reloadItems = function() { this.itemGUID = 0, i.prototype.reloadItems.call(this) }, s._itemize = function() { for (var t = i.prototype._itemize.apply(this, arguments), e = 0; e < t.length; e++) t[e].id = this.itemGUID++; return this._updateItemsSortData(t), t }, s._initLayoutMode = function(t) { var e = r.modes[t], i = this.options[t] || {}; this.options[t] = e.options ? n.extend(e.options, i) : i, this.modes[t] = new e(this) }, s.layout = function() { return !this._isLayoutInited && this._getOption("initLayout") ? void this.arrange() : void this._layout() }, s._layout = function() { var t = this._getIsInstant(); this._resetLayout(), this._manageStamps(), this.layoutItems(this.filteredItems, t), this._isLayoutInited = !0 }, s.arrange = function(t) { this.option(t), this._getIsInstant(), t = this._filter(this.items), this.filteredItems = t.matches, this._bindArrangeComplete(), this._isInstant ? this._noTransition(this._hideReveal, [t]) : this._hideReveal(t), this._sort(), this._layout() }, s._init = s.arrange, s._hideReveal = function(t) { this.reveal(t.needReveal), this.hide(t.needHide) }, s._getIsInstant = function() { var t = void 0 !== (t = this._getOption("layoutInstant")) ? t : !this._isLayoutInited; return this._isInstant = t }, s._bindArrangeComplete = function() { function t() { e && i && o && s.dispatchEvent("arrangeComplete", null, [s.filteredItems]) } var e, i, o, s = this; this.once("layoutComplete", function() { e = !0, t() }), this.once("hideComplete", function() { i = !0, t() }), this.once("revealComplete", function() { o = !0, t() }) }, s._filter = function(t) { for (var e = this.options.filter || "*", i = [], o = [], s = [], n = this._getFilterTest(e), r = 0; r < t.length; r++) { var a, l = t[r]; l.isIgnored || ((a = n(l)) && i.push(l), a && l.isHidden ? o.push(l) : a || l.isHidden || s.push(l)) } return { matches: i, needReveal: o, needHide: s } }, s._getFilterTest = function(e) { return a && this.options.isJQueryFiltering ? function(t) { return a(t.element).is(e) } : "function" == typeof e ? function(t) { return e(t.element) } : function(t) { return o(t.element, e) } }, s.updateSortData = function(t) { t = t ? (t = n.makeArray(t), this.getItems(t)) : this.items, this._getSorters(), this._updateItemsSortData(t) }, s._getSorters = function() { var t, e = this.options.getSortData; for (t in e) { var i = e[t]; this._sorters[t] = h(i) } }, s._updateItemsSortData = function(t) { for (var e = t && t.length, i = 0; e && i < e; i++) t[i].updateSortData() }; var h = function(t) { if ("string" != typeof t) return t; var e, i, o = l(t).split(" "), s = o[0], t = (t = s.match(/^\[(.+)\]$/)) && t[1], n = (i = s, (e = t) ? function(t) { return t.getAttribute(e) } : function(t) { return (t = t.querySelector(i)) && t.textContent }), r = c.sortDataParsers[o[1]]; return r ? function(t) { return t && r(n(t)) } : function(t) { return t && n(t) } }; c.sortDataParsers = { parseInt: function(t) { return parseInt(t, 10) }, parseFloat: function(t) { return parseFloat(t) } }, s._sort = function() { var t, r, a; this.options.sortBy && (t = n.makeArray(this.options.sortBy), this._getIsSameSortBy(t) || (this.sortHistory = t.concat(this.sortHistory)), r = this.sortHistory, a = this.options.sortAscending, t = function(t, e) { for (var i = 0; i < r.length; i++) { var o = r[i], s = t.sortData[o], n = e.sortData[o]; if (n < s || s < n) return (n < s ? 1 : -1) * ((void 0 !== a[o] ? a[o] : a) ? 1 : -1) } return 0 }, this.filteredItems.sort(t)) }, s._getIsSameSortBy = function(t) { for (var e = 0; e < t.length; e++) if (t[e] != this.sortHistory[e]) return !1; return !0 }, s._mode = function() { var t = this.options.layoutMode, e = this.modes[t]; if (!e) throw new Error("No layout mode: " + t); return e.options = this.options[t], e }, s._resetLayout = function() { i.prototype._resetLayout.call(this), this._mode()._resetLayout() }, s._getItemLayoutPosition = function(t) { return this._mode()._getItemLayoutPosition(t) }, s._manageStamp = function(t) { this._mode()._manageStamp(t) }, s._getContainerSize = function() { return this._mode()._getContainerSize() }, s.needsResizeLayout = function() { return this._mode().needsResizeLayout() }, s.appended = function(t) { (t = this.addItems(t)).length && (t = this._filterRevealAdded(t), this.filteredItems = this.filteredItems.concat(t)) }, s.prepended = function(t) { var e = this._itemize(t); e.length && (this._resetLayout(), this._manageStamps(), t = this._filterRevealAdded(e), this.layoutItems(this.filteredItems), this.filteredItems = t.concat(this.filteredItems), this.items = e.concat(this.items)) }, s._filterRevealAdded = function(t) { return t = this._filter(t), this.hide(t.needHide), this.reveal(t.matches), this.layoutItems(t.matches, !0), t.matches }, s.insert = function(t) { var e = this.addItems(t); if (e.length) { for (var i, o = e.length, s = 0; s < o; s++) i = e[s], this.element.appendChild(i.element); for (t = this._filter(e).matches, s = 0; s < o; s++) e[s].isLayoutInstant = !0; for (this.arrange(), s = 0; s < o; s++) delete e[s].isLayoutInstant; this.reveal(t) } }; var u = s.remove; return s.remove = function(t) { t = n.makeArray(t); var e = this.getItems(t); u.call(this, t); for (var i = e && e.length, o = 0; i && o < i; o++) { var s = e[o]; n.removeFrom(this.filteredItems, s) } }, s.shuffle = function() { for (var t = 0; t < this.items.length; t++) this.items[t].sortData.random = Math.random(); this.options.sortBy = "random", this._sort(), this._layout() }, s._noTransition = function(t, e) { var i = this.options.transitionDuration; return this.options.transitionDuration = 0, e = t.apply(this, e), this.options.transitionDuration = i, e }, s.getFilteredItemElements = function() { return this.filteredItems.map(function(t) { return t.element }) }, c }), function(t, e) { "object" == typeof exports && "object" == typeof module ? module.exports = e() : "function" == typeof define && define.amd ? define([], e) : "object" == typeof exports ? exports.ClipboardJS = e() : t.ClipboardJS = e() }(this, function() { return o = {}, s.m = i = [function(t, e, i) { "use strict"; var o = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) { return typeof t } : function(t) { return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t }, s = function(t, e, i) { return e && l(t.prototype, e), i && l(t, i), t }, n = c(i(1)), r = c(i(3)), a = c(i(4)); function l(t, e) { for (var i = 0; i < e.length; i++) { var o = e[i]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(t, o.key, o) } } function c(t) { return t && t.__esModule ? t : { default: t } } function h(t, e) { ! function(t) { if (!(t instanceof h)) throw new TypeError("Cannot call a class as a function") }(this); var i = function(t, e) { if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !e || "object" != typeof e && "function" != typeof e ? t : e }(this, (h.__proto__ || Object.getPrototypeOf(h)).call(this)); return i.resolveOptions(e), i.listenClick(t), i } function u(t, e) { if (t = "data-clipboard-" + t, e.hasAttribute(t)) return e.getAttribute(t) }(function(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, enumerable: !1, writable: !0, configurable: !0 } }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e) })(h, r.default), s(h, [{ key: "resolveOptions", value: function() { var t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : {}; this.action = "function" == typeof t.action ? t.action : this.defaultAction, this.target = "function" == typeof t.target ? t.target : this.defaultTarget, this.text = "function" == typeof t.text ? t.text : this.defaultText, this.container = "object" === o(t.container) ? t.container : document.body } }, { key: "listenClick", value: function(t) { var e = this; this.listener = (0, a.default)(t, "click", function(t) { return e.onClick(t) }) } }, { key: "onClick", value: function(t) { t = t.delegateTarget || t.currentTarget, this.clipboardAction && (this.clipboardAction = null), this.clipboardAction = new n.default({ action: this.action(t), target: this.target(t), text: this.text(t), container: this.container, trigger: t, emitter: this }) } }, { key: "defaultAction", value: function(t) { return u("action", t) } }, { key: "defaultTarget", value: function(t) { if (t = u("target", t)) return document.querySelector(t) } }, { key: "defaultText", value: function(t) { return u("text", t) } }, { key: "destroy", value: function() { this.listener.destroy(), this.clipboardAction && (this.clipboardAction.destroy(), this.clipboardAction = null) } }], [{ key: "isSupported", value: function() { var t = "string" == typeof(t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : ["copy", "cut"]) ? [t] : t, e = !!document.queryCommandSupported; return t.forEach(function(t) { e = e && !!document.queryCommandSupported(t) }), e } }]), s = h, t.exports = s }, function(t, e, i) { "use strict"; var o = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) { return typeof t } : function(t) { return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t }, s = function(t, e, i) { return e && r(t.prototype, e), i && r(t, i), t }, n = (i = i(2)) && i.__esModule ? i : { default: i }; function r(t, e) { for (var i = 0; i < e.length; i++) { var o = e[i]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(t, o.key, o) } } function a(t) { ! function(t) { if (!(t instanceof a)) throw new TypeError("Cannot call a class as a function") }(this), this.resolveOptions(t), this.initSelection() } s(a, [{ key: "resolveOptions", value: function() { var t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : {}; this.action = t.action, this.container = t.container, this.emitter = t.emitter, this.target = t.target, this.text = t.text, this.trigger = t.trigger, this.selectedText = "" } }, { key: "initSelection", value: function() { this.text ? this.selectFake() : this.target && this.selectTarget() } }, { key: "selectFake", value: function() { var t = this, e = "rtl" == document.documentElement.getAttribute("dir"); this.removeFake(), this.fakeHandlerCallback = function() { return t.removeFake() }, this.fakeHandler = this.container.addEventListener("click", this.fakeHandlerCallback) || !0, this.fakeElem = document.createElement("textarea"), this.fakeElem.style.fontSize = "12pt", this.fakeElem.style.border = "0", this.fakeElem.style.padding = "0", this.fakeElem.style.margin = "0", this.fakeElem.style.position = "absolute", this.fakeElem.style[e ? "right" : "left"] = "-9999px", e = window.pageYOffset || document.documentElement.scrollTop, this.fakeElem.style.top = e + "px", this.fakeElem.setAttribute("readonly", ""), this.fakeElem.value = this.text, this.container.appendChild(this.fakeElem), this.selectedText = (0, n.default)(this.fakeElem), this.copyText() } }, { key: "removeFake", value: function() { this.fakeHandler && (this.container.removeEventListener("click", this.fakeHandlerCallback), this.fakeHandler = null, this.fakeHandlerCallback = null), this.fakeElem && (this.container.removeChild(this.fakeElem), this.fakeElem = null) } }, { key: "selectTarget", value: function() { this.selectedText = (0, n.default)(this.target), this.copyText() } }, { key: "copyText", value: function() { var e = void 0; try { e = document.execCommand(this.action) } catch (t) { e = !1 } this.handleResult(e) } }, { key: "handleResult", value: function(t) { this.emitter.emit(t ? "success" : "error", { action: this.action, text: this.selectedText, trigger: this.trigger, clearSelection: this.clearSelection.bind(this) }) } }, { key: "clearSelection", value: function() { this.trigger && this.trigger.focus(), window.getSelection().removeAllRanges() } }, { key: "destroy", value: function() { this.removeFake() } }, { key: "action", set: function() { var t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : "copy"; if (this._action = t, "copy" !== this._action && "cut" !== this._action) throw new Error('Invalid "action" value, use either "copy" or "cut"') }, get: function() { return this._action } }, { key: "target", set: function(t) { if (void 0 !== t) { if (!t || "object" !== (void 0 === t ? "undefined" : o(t)) || 1 !== t.nodeType) throw new Error('Invalid "target" value, use a valid Element'); if ("copy" === this.action && t.hasAttribute("disabled")) throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute'); if ("cut" === this.action && (t.hasAttribute("readonly") || t.hasAttribute("disabled"))) throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes'); this._target = t } }, get: function() { return this._target } }]), s = a, t.exports = s }, function(t, e) { t.exports = function(t) { var e, i = "SELECT" === t.nodeName ? (t.focus(), t.value) : "INPUT" === t.nodeName || "TEXTAREA" === t.nodeName ? ((e = t.hasAttribute("readonly")) || t.setAttribute("readonly", ""), t.select(), t.setSelectionRange(0, t.value.length), e || t.removeAttribute("readonly"), t.value) : (t.hasAttribute("contenteditable") && t.focus(), i = window.getSelection(), (e = document.createRange()).selectNodeContents(t), i.removeAllRanges(), i.addRange(e), i.toString()); return i } }, function(t, e) { function i() {} i.prototype = { on: function(t, e, i) { var o = this.e || (this.e = {}); return (o[t] || (o[t] = [])).push({ fn: e, ctx: i }), this }, once: function(t, e, i) { var o = this; function s() { o.off(t, s), e.apply(i, arguments) } return s._ = e, this.on(t, s, i) }, emit: function(t) { for (var e = [].slice.call(arguments, 1), i = ((this.e || (this.e = {}))[t] || []).slice(), o = 0, s = i.length; o < s; o++) i[o].fn.apply(i[o].ctx, e); return this }, off: function(t, e) { var i = this.e || (this.e = {}), o = i[t], s = []; if (o && e) for (var n = 0, r = o.length; n < r; n++) o[n].fn !== e && o[n].fn._ !== e && s.push(o[n]); return s.length ? i[t] = s : delete i[t], this } }, t.exports = i }, function(t, e, i) { var c = i(5), h = i(6); t.exports = function(t, e, i) { if (!t && !e && !i) throw new Error("Missing required arguments"); if (!c.string(e)) throw new TypeError("Second argument must be a String"); if (!c.fn(i)) throw new TypeError("Third argument must be a Function"); if (c.node(t)) return a = e, l = i, (r = t).addEventListener(a, l), { destroy: function() { r.removeEventListener(a, l) } }; if (c.nodeList(t)) return o = t, s = e, n = i, Array.prototype.forEach.call(o, function(t) { t.addEventListener(s, n) }), { destroy: function() { Array.prototype.forEach.call(o, function(t) { t.removeEventListener(s, n) }) } }; if (c.string(t)) return h(document.body, t, e, i); throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList"); var o, s, n, r, a, l } }, function(t, i) { i.node = function(t) { return void 0 !== t && t instanceof HTMLElement && 1 === t.nodeType }, i.nodeList = function(t) { var e = Object.prototype.toString.call(t); return void 0 !== t && ("[object NodeList]" === e || "[object HTMLCollection]" === e) && "length" in t && (0 === t.length || i.node(t[0])) }, i.string = function(t) { return "string" == typeof t || t instanceof String }, i.fn = function(t) { return "[object Function]" === Object.prototype.toString.call(t) } }, function(t, e, i) { var r = i(7); function n(t, e, i, o, s) { var n = function(e, i, t, o) { return function(t) { t.delegateTarget = r(t.target, i), t.delegateTarget && o.call(e, t) } }.apply(this, arguments); return t.addEventListener(i, n, s), { destroy: function() { t.removeEventListener(i, n, s) } } } t.exports = function(t, e, i, o, s) { return "function" == typeof t.addEventListener ? n.apply(null, arguments) : "function" == typeof i ? n.bind(null, document).apply(null, arguments) : ("string" == typeof t && (t = document.querySelectorAll(t)), Array.prototype.map.call(t, function(t) { return n(t, e, i, o, s) })) } }, function(t, e) { var i; "undefined" == typeof Element || Element.prototype.matches || ((i = Element.prototype).matches = i.matchesSelector || i.mozMatchesSelector || i.msMatchesSelector || i.oMatchesSelector || i.webkitMatchesSelector), t.exports = function(t, e) { for (; t && 9 !== t.nodeType;) { if ("function" == typeof t.matches && t.matches(e)) return t; t = t.parentNode } } }], s.c = o, s.d = function(t, e, i) { s.o(t, e) || Object.defineProperty(t, e, { enumerable: !0, get: i }) }, s.r = function(t) { "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(t, "__esModule", { value: !0 }) }, s.t = function(e, t) { if (1 & t && (e = s(e)), 8 & t) return e; if (4 & t && "object" == typeof e && e && e.__esModule) return e; var i = Object.create(null); if (s.r(i), Object.defineProperty(i, "default", { enumerable: !0, value: e }), 2 & t && "string" != typeof e) for (var o in e) s.d(i, o, function(t) { return e[t] }.bind(null, o)); return i }, s.n = function(t) { var e = t && t.__esModule ? function() { return t.default } : function() { return t }; return s.d(e, "a", e), e }, s.o = function(t, e) { return Object.prototype.hasOwnProperty.call(t, e) }, s.p = "", s(s.s = 0); function s(t) { if (o[t]) return o[t].exports; var e = o[t] = { i: t, l: !1, exports: {} }; return i[t].call(e.exports, e, e.exports, s), e.l = !0, e.exports } var i, o }); var _self = "undefined" != typeof window ? window : "undefined" != typeof WorkerGlobalScope && self instanceof WorkerGlobalScope ? self : {}, Prism = function(l) { var c = /\blang(?:uage)?-([\w-]+)\b/i, e = 0, E = { manual: l.Prism && l.Prism.manual, disableWorkerMessageHandler: l.Prism && l.Prism.disableWorkerMessageHandler, util: { encode: function(t) { return t instanceof I ? new I(t.type, E.util.encode(t.content), t.alias) : Array.isArray(t) ? t.map(E.util.encode) : t.replace(/&/g, "&").replace(/ t.length) return; if (!(b instanceof I)) { if (f && y != e.length - 1) { if (u.lastIndex = v, !(T = u.exec(t))) break; for (var w = T.index + (p ? T[1].length : 0), _ = T.index + T[0].length, x = y, C = v, $ = e.length; x < $ && (C < _ || !e[x].type && !e[x - 1].greedy); ++x)(C += e[x].length) <= w && (++y, v = C); if (e[y] instanceof I) continue; S = x - y, b = t.slice(v, C), T.index -= v } else { u.lastIndex = 0; var T = u.exec(b), S = 1 } if (T) { p && (g = T[1] ? T[1].length : 0), _ = (w = T.index + g) + (T = T[0].slice(g)).length; var k = b.slice(0, w), z = b.slice(_), b = [y, S]; if (k && (++y, v += k.length, b.push(k)), k = new I(a, d ? E.tokenize(T, d) : T, m, T, f), b.push(k), z && b.push(z), Array.prototype.splice.apply(e, b), 1 != S && E.matchGrammar(t, e, i, y, v, !0, a), n) break } else if (n) break } } } } }, tokenize: function(t, e) { var i = [t], o = e.rest; if (o) { for (var s in o) e[s] = o[s]; delete e.rest } return E.matchGrammar(t, i, e, 0, 0, !1), i }, hooks: { all: {}, add: function(t, e) { var i = E.hooks.all; i[t] = i[t] || [], i[t].push(e) }, run: function(t, e) { var i = E.hooks.all[t]; if (i && i.length) for (var o, s = 0; o = i[s++];) o(e) } }, Token: I }; function I(t, e, i, o, s) { this.type = t, this.content = e, this.alias = i, this.length = 0 | (o || "").length, this.greedy = !!s } if (l.Prism = E, I.stringify = function(t, e) { if ("string" == typeof t) return t; if (Array.isArray(t)) return t.map(function(t) { return I.stringify(t, e) }).join(""); var i = { type: t.type, content: I.stringify(t.content, e), tag: "span", classes: ["token", t.type], attributes: {}, language: e }; t.alias && (o = Array.isArray(t.alias) ? t.alias : [t.alias], Array.prototype.push.apply(i.classes, o)), E.hooks.run("wrap", i); var o = Object.keys(i.attributes).map(function(t) { return t + '="' + (i.attributes[t] || "").replace(/"/g, """) + '"' }).join(" "); return "<" + i.tag + ' class="' + i.classes.join(" ") + '"' + (o ? " " + o : "") + ">" + i.content + "" }, !l.document) return l.addEventListener && (E.disableWorkerMessageHandler || l.addEventListener("message", function(t) { var e = (i = JSON.parse(t.data)).language, t = i.code, i = i.immediateClose; l.postMessage(E.highlight(t, E.languages[e], e)), i && l.close() }, !1)), E; var t = document.currentScript || [].slice.call(document.getElementsByTagName("script")).pop(); return t && (E.filename = t.src, E.manual || t.hasAttribute("data-manual") || ("loading" !== document.readyState ? window.requestAnimationFrame ? window.requestAnimationFrame(E.highlightAll) : window.setTimeout(E.highlightAll, 16) : document.addEventListener("DOMContentLoaded", E.highlightAll))), E }(_self); "undefined" != typeof module && module.exports && (module.exports = Prism), "undefined" != typeof global && (global.Prism = Prism), Prism.languages.markup = { comment: //, prolog: /<\?[\s\S]+?\?>/, doctype: //i, cdata: //i, tag: { pattern: /<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/i, greedy: !0, inside: { tag: { pattern: /^<\/?[^\s>\/]+/i, inside: { punctuation: /^<\/?/, namespace: /^[^\s>\/:]+:/ } }, "attr-value": { pattern: /=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/i, inside: { punctuation: [/^=/, { pattern: /^(\s*)["']|["']$/, lookbehind: !0 }] } }, punctuation: /\/?>/, "attr-name": { pattern: /[^\s>\/]+/, inside: { namespace: /^[^\s>\/:]+:/ } } } }, entity: /&#?[\da-z]{1,8};/i }, Prism.languages.markup.tag.inside["attr-value"].inside.entity = Prism.languages.markup.entity, Prism.hooks.add("wrap", function(t) { "entity" === t.type && (t.attributes.title = t.content.replace(/&/, "&")) }), Object.defineProperty(Prism.languages.markup.tag, "addInlined", { value: function(t, e) { var i = {}; i["language-" + e] = { pattern: /(^$)/i, lookbehind: !0, inside: Prism.languages[e] }, i.cdata = /^$/i, (i = { "included-cdata": { pattern: //i, inside: i } })["language-" + e] = { pattern: /[\s\S]+/, inside: Prism.languages[e] }, (e = {})[t] = { pattern: RegExp("(<__[\\s\\S]*?>)(?:\\s*|[\\s\\S])*?(?=<\\/__>)".replace(/__/g, t), "i"), lookbehind: !0, greedy: !0, inside: i }, Prism.languages.insertBefore("markup", "cdata", e) } }), Prism.languages.xml = Prism.languages.extend("markup", {}), Prism.languages.html = Prism.languages.markup, Prism.languages.mathml = Prism.languages.markup, Prism.languages.svg = Prism.languages.markup, function(t) { var e = /("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/; t.languages.css = { comment: /\/\*[\s\S]*?\*\//, atrule: { pattern: /@[\w-]+[\s\S]*?(?:;|(?=\s*\{))/, inside: { rule: /@[\w-]+/ } }, url: { pattern: RegExp("url\\((?:" + e.source + "|[^\n\r()]*)\\)", "i"), inside: { function: /^url/i, punctuation: /^\(|\)$/ } }, selector: RegExp("[^{}\\s](?:[^{};\"']|" + e.source + ")*?(?=\\s*\\{)"), string: { pattern: e, greedy: !0 }, property: /[-_a-z\xA0-\uFFFF][-\w\xA0-\uFFFF]*(?=\s*:)/i, important: /!important\b/i, function: /[-a-z0-9]+(?=\()/i, punctuation: /[(){};:,]/ }, t.languages.css.atrule.inside.rest = t.languages.css, (e = t.languages.markup) && (e.tag.addInlined("style", "css"), t.languages.insertBefore("inside", "attr-value", { "style-attr": { pattern: /\s*style=("|')(?:\\[\s\S]|(?!\1)[^\\])*\1/i, inside: { "attr-name": { pattern: /^\s*style/i, inside: e.tag.inside }, punctuation: /^\s*=\s*['"]|['"]\s*$/, "attr-value": { pattern: /.+/i, inside: t.languages.css } }, alias: "language-css" } }, e.tag)) }(Prism), Prism.languages.clike = { comment: [{ pattern: /(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/, lookbehind: !0 }, { pattern: /(^|[^\\:])\/\/.*/, lookbehind: !0, greedy: !0 }], string: { pattern: /(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/, greedy: !0 }, "class-name": { pattern: /((?:\b(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[\w.\\]+/i, lookbehind: !0, inside: { punctuation: /[.\\]/ } }, keyword: /\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/, boolean: /\b(?:true|false)\b/, function: /\w+(?=\()/, number: /\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i, operator: /--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*|\/|~|\^|%/, punctuation: /[{}[\];(),.:]/ }, Prism.languages.javascript = Prism.languages.extend("clike", { "class-name": [Prism.languages.clike["class-name"], { pattern: /(^|[^$\w\xA0-\uFFFF])[_$A-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\.(?:prototype|constructor))/, lookbehind: !0 }], keyword: [{ pattern: /((?:^|})\s*)(?:catch|finally)\b/, lookbehind: !0 }, { pattern: /(^|[^.])\b(?:as|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/, lookbehind: !0 }], number: /\b(?:(?:0[xX](?:[\dA-Fa-f](?:_[\dA-Fa-f])?)+|0[bB](?:[01](?:_[01])?)+|0[oO](?:[0-7](?:_[0-7])?)+)n?|(?:\d(?:_\d)?)+n|NaN|Infinity)\b|(?:\b(?:\d(?:_\d)?)+\.?(?:\d(?:_\d)?)*|\B\.(?:\d(?:_\d)?)+)(?:[Ee][+-]?(?:\d(?:_\d)?)+)?/, function: /[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/, operator: /-[-=]?|\+[+=]?|!=?=?|<>?>?=?|=(?:==?|>)?|&[&=]?|\|[|=]?|\*\*?=?|\/=?|~|\^=?|%=?|\?|\.{3}/ }), Prism.languages.javascript["class-name"][0].pattern = /(\b(?:class|interface|extends|implements|instanceof|new)\s+)[\w.\\]+/, Prism.languages.insertBefore("javascript", "keyword", { regex: { pattern: /((?:^|[^$\w\xA0-\uFFFF."'\])\s])\s*)\/(\[(?:[^\]\\\r\n]|\\.)*]|\\.|[^/\\\[\r\n])+\/[gimyus]{0,6}(?=\s*($|[\r\n,.;})\]]))/, lookbehind: !0, greedy: !0 }, "function-variable": { pattern: /[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)\s*=>))/, alias: "function" }, parameter: [{ pattern: /(function(?:\s+[_$A-Za-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)?\s*\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\))/, lookbehind: !0, inside: Prism.languages.javascript }, { pattern: /[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*=>)/i, inside: Prism.languages.javascript }, { pattern: /(\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\)\s*=>)/, lookbehind: !0, inside: Prism.languages.javascript }, { pattern: /((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:[_$A-Za-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*\s*)\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\)\s*\{)/, lookbehind: !0, inside: Prism.languages.javascript }], constant: /\b[A-Z](?:[A-Z_]|\dx?)*\b/ }), Prism.languages.insertBefore("javascript", "string", { "template-string": { pattern: /`(?:\\[\s\S]|\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})+}|[^\\`])*`/, greedy: !0, inside: { interpolation: { pattern: /\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})+}/, inside: { "interpolation-punctuation": { pattern: /^\${|}$/, alias: "punctuation" }, rest: Prism.languages.javascript } }, string: /[\s\S]+/ } } }), Prism.languages.markup && Prism.languages.markup.tag.addInlined("script", "javascript"), Prism.languages.js = Prism.languages.javascript;