!function (t) { if ("object" == typeof exports && "undefined" != typeof module) module.exports = t(); else if ("function" == typeof define && define.amd) define([], t); else { var e; e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : this, e.Clipboard = t() } }(function () { var t, e, n; return function t(e, n, r) { function o(a, c) { if (!n[a]) { if (!e[a]) { var s = "function" == typeof require && require; if (!c && s) return s(a, !0); if (i) return i(a, !0); var u = new Error("Cannot find module '" + a + "'"); throw u.code = "MODULE_NOT_FOUND", u } var l = n[a] = { exports: {} }; e[a][0].call(l.exports, function (t) { var n = e[a][1][t]; return o(n ? n : t) }, l, l.exports, t, e, n, r) } return n[a].exports } for (var i = "function" == typeof require && require, a = 0; a < r.length; a++)o(r[a]); return o }({ 1: [function (t, e, n) { var r = t("matches-selector"); e.exports = function (t, e, n) { for (var o = n ? t : t.parentNode; o && o !== document;) { if (r(o, e)) return o; o = o.parentNode } } }, { "matches-selector": 2 }], 2: [function (t, e, n) { function r(t, e) { if (i) return i.call(t, e); for (var n = t.parentNode.querySelectorAll(e), r = 0; r < n.length; ++r)if (n[r] == t) return !0; return !1 } var o = Element.prototype, i = o.matchesSelector || o.webkitMatchesSelector || o.mozMatchesSelector || o.msMatchesSelector || o.oMatchesSelector; e.exports = r }, {}], 3: [function (t, e, n) { function r(t, e, n, r) { var i = o.apply(this, arguments); return t.addEventListener(n, i), { destroy: function () { t.removeEventListener(n, i) } } } function o(t, e, n, r) { return function (n) { n.delegateTarget = i(n.target, e, !0), n.delegateTarget && r.call(t, n) } } var i = t("closest"); e.exports = r }, { closest: 1 }], 4: [function (t, e, n) { n.node = function (t) { return void 0 !== t && t instanceof HTMLElement && 1 === t.nodeType }, n.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 || n.node(t[0])) }, n.string = function (t) { return "string" == typeof t || t instanceof String }, n.function = function (t) { var e = Object.prototype.toString.call(t); return "[object Function]" === e } }, {}], 5: [function (t, e, n) { function r(t, e, n) { if (!t && !e && !n) throw new Error("Missing required arguments"); if (!c.string(e)) throw new TypeError("Second argument must be a String"); if (!c.function(n)) throw new TypeError("Third argument must be a Function"); if (c.node(t)) return o(t, e, n); if (c.nodeList(t)) return i(t, e, n); if (c.string(t)) return a(t, e, n); throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList") } function o(t, e, n) { return t.addEventListener(e, n), { destroy: function () { t.removeEventListener(e, n) } } } function i(t, e, n) { return Array.prototype.forEach.call(t, function (t) { t.addEventListener(e, n) }), { destroy: function () { Array.prototype.forEach.call(t, function (t) { t.removeEventListener(e, n) }) } } } function a(t, e, n) { return s(document.body, t, e, n) } var c = t("./is"), s = t("delegate"); e.exports = r }, { "./is": 4, delegate: 3 }], 6: [function (t, e, n) { function r(t) { var e; if ("INPUT" === t.nodeName || "TEXTAREA" === t.nodeName) t.focus(), t.setSelectionRange(0, t.value.length), e = t.value; else { t.hasAttribute("contenteditable") && t.focus(); var n = window.getSelection(), r = document.createRange(); r.selectNodeContents(t), n.removeAllRanges(), n.addRange(r), e = n.toString() } return e } e.exports = r }, {}], 7: [function (t, e, n) { function r() { } r.prototype = { on: function (t, e, n) { var r = this.e || (this.e = {}); return (r[t] || (r[t] = [])).push({ fn: e, ctx: n }), this }, once: function (t, e, n) { function r() { o.off(t, r), e.apply(n, arguments) } var o = this; return r._ = e, this.on(t, r, n) }, emit: function (t) { var e = [].slice.call(arguments, 1), n = ((this.e || (this.e = {}))[t] || []).slice(), r = 0, o = n.length; for (r; o > r; r++)n[r].fn.apply(n[r].ctx, e); return this }, off: function (t, e) { var n = this.e || (this.e = {}), r = n[t], o = []; if (r && e) for (var i = 0, a = r.length; a > i; i++)r[i].fn !== e && r[i].fn._ !== e && o.push(r[i]); return o.length ? n[t] = o : delete n[t], this } }, e.exports = r }, {}], 8: [function (t, e, n) { "use strict"; function r(t) { return t && t.__esModule ? t : { "default": t } } function o(t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function") } n.__esModule = !0; var i = function () { function t(t, e) { for (var n = 0; n < e.length; n++) { var r = e[n]; r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(t, r.key, r) } } return function (e, n, r) { return n && t(e.prototype, n), r && t(e, r), e } }(), a = t("select"), c = r(a), s = function () { function t(e) { o(this, t), this.resolveOptions(e), this.initSelection() } return t.prototype.resolveOptions = function t() { var e = arguments.length <= 0 || void 0 === arguments[0] ? {} : arguments[0]; this.action = e.action, this.emitter = e.emitter, this.target = e.target, this.text = e.text, this.trigger = e.trigger, this.selectedText = "" }, t.prototype.initSelection = function t() { if (this.text && this.target) throw new Error('Multiple attributes declared, use either "target" or "text"'); if (this.text) this.selectFake(); else { if (!this.target) throw new Error('Missing required attributes, use either "target" or "text"'); this.selectTarget() } }, t.prototype.selectFake = function t() { var e = this; this.removeFake(), this.fakeHandler = document.body.addEventListener("click", function () { return e.removeFake() }), this.fakeElem = document.createElement("textarea"), this.fakeElem.style.position = "absolute", this.fakeElem.style.left = "-9999px", this.fakeElem.style.top = (window.pageYOffset || document.documentElement.scrollTop) + "px", this.fakeElem.setAttribute("readonly", ""), this.fakeElem.value = this.text, document.body.appendChild(this.fakeElem), this.selectedText = c.default(this.fakeElem), this.copyText() }, t.prototype.removeFake = function t() { this.fakeHandler && (document.body.removeEventListener("click"), this.fakeHandler = null), this.fakeElem && (document.body.removeChild(this.fakeElem), this.fakeElem = null) }, t.prototype.selectTarget = function t() { this.selectedText = c.default(this.target), this.copyText() }, t.prototype.copyText = function t() { var e = void 0; try { e = document.execCommand(this.action) } catch (n) { e = !1 } this.handleResult(e) }, t.prototype.handleResult = function t(e) { e ? this.emitter.emit("success", { action: this.action, text: this.selectedText, trigger: this.trigger, clearSelection: this.clearSelection.bind(this) }) : this.emitter.emit("error", { action: this.action, trigger: this.trigger, clearSelection: this.clearSelection.bind(this) }) }, t.prototype.clearSelection = function t() { this.target && this.target.blur(), window.getSelection().removeAllRanges() }, t.prototype.destroy = function t() { this.removeFake() }, i(t, [{ key: "action", set: function t() { var e = arguments.length <= 0 || void 0 === arguments[0] ? "copy" : arguments[0]; if (this._action = e, "copy" !== this._action && "cut" !== this._action) throw new Error('Invalid "action" value, use either "copy" or "cut"') }, get: function t() { return this._action } }, { key: "target", set: function t(e) { if (void 0 !== e) { if (!e || "object" != typeof e || 1 !== e.nodeType) throw new Error('Invalid "target" value, use a valid Element'); this._target = e } }, get: function t() { return this._target } }]), t }(); n.default = s, e.exports = n.default }, { select: 6 }], 9: [function (t, e, n) { "use strict"; function r(t) { return t && t.__esModule ? t : { "default": t } } function o(t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function") } function i(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) } function a(t, e) { var n = "data-clipboard-" + t; if (e.hasAttribute(n)) return e.getAttribute(n) } n.__esModule = !0; var c = t("./clipboard-action"), s = r(c), u = t("tiny-emitter"), l = r(u), f = t("good-listener"), d = r(f), h = function (t) { function e(n, r) { o(this, e), t.call(this), this.resolveOptions(r), this.listenClick(n) } return i(e, t), e.prototype.resolveOptions = function t() { var e = arguments.length <= 0 || void 0 === arguments[0] ? {} : arguments[0]; this.action = "function" == typeof e.action ? e.action : this.defaultAction, this.target = "function" == typeof e.target ? e.target : this.defaultTarget, this.text = "function" == typeof e.text ? e.text : this.defaultText }, e.prototype.listenClick = function t(e) { var n = this; this.listener = d.default(e, "click", function (t) { return n.onClick(t) }) }, e.prototype.onClick = function t(e) { var n = e.delegateTarget || e.currentTarget; this.clipboardAction && (this.clipboardAction = null), this.clipboardAction = new s.default({ action: this.action(n), target: this.target(n), text: this.text(n), trigger: n, emitter: this }) }, e.prototype.defaultAction = function t(e) { return a("action", e) }, e.prototype.defaultTarget = function t(e) { var n = a("target", e); return n ? document.querySelector(n) : void 0 }, e.prototype.defaultText = function t(e) { return a("text", e) }, e.prototype.destroy = function t() { this.listener.destroy(), this.clipboardAction && (this.clipboardAction.destroy(), this.clipboardAction = null) }, e }(l.default); n.default = h, e.exports = n.default }, { "./clipboard-action": 8, "good-listener": 5, "tiny-emitter": 7 }] }, {}, [9])(9) }); !function (a, b) { "function" == typeof define && define.amd ? define([], b) : "object" == typeof exports ? module.exports = b() : a.Headroom = b() }(this, function () { function a(a) { this.callback = a, this.ticking = !1 } function b(a) { return a && "undefined" != typeof window && (a === window || a.nodeType) } function c(a) { if (arguments.length <= 0) { throw new Error("Missing arguments in extend function") } var d, e, f = a || {}; for (e = 1; e < arguments.length; e++) { var g = arguments[e] || {}; for (d in g) { "object" != typeof f[d] || b(f[d]) ? f[d] = f[d] || g[d] : f[d] = c(f[d], g[d]) } } return f } function d(a) { return a === Object(a) ? a : { down: a, up: a } } function e(a, b) { b = c(b, e.options), this.lastKnownScrollY = 0, this.elem = a, this.tolerance = d(b.tolerance), this.classes = b.classes, this.offset = b.offset, this.scroller = b.scroller, this.initialised = !1, this.onPin = b.onPin, this.onUnpin = b.onUnpin, this.onTop = b.onTop, this.onNotTop = b.onNotTop, this.onBottom = b.onBottom, this.onNotBottom = b.onNotBottom } var f = { bind: !!function () { }.bind, classList: "classList" in document.documentElement, rAF: !!(window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame) }; return window.requestAnimationFrame = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame, a.prototype = { constructor: a, update: function () { this.callback && this.callback(), this.ticking = !1 }, requestTick: function () { this.ticking || (requestAnimationFrame(this.rafCallback || (this.rafCallback = this.update.bind(this))), this.ticking = !0) }, handleEvent: function () { this.requestTick() } }, e.prototype = { constructor: e, init: function () { if (e.cutsTheMustard) { return this.debouncer = new a(this.update.bind(this)), this.elem.classList.add(this.classes.initial), setTimeout(this.attachEvent.bind(this), 100), this } }, destroy: function () { var a = this.classes; this.initialised = !1; for (var b in a) { a.hasOwnProperty(b) && this.elem.classList.remove(a[b]) } this.scroller.removeEventListener("scroll", this.debouncer, !1) }, attachEvent: function () { this.initialised || (this.lastKnownScrollY = this.getScrollY(), this.initialised = !0, this.scroller.addEventListener("scroll", this.debouncer, !1), this.debouncer.handleEvent()) }, unpin: function () { var a = this.elem.classList, b = this.classes; !a.contains(b.pinned) && a.contains(b.unpinned) || (a.add(b.unpinned), a.remove(b.pinned), this.onUnpin && this.onUnpin.call(this)) }, pin: function () { var a = this.elem.classList, b = this.classes; a.contains(b.unpinned) && (a.remove(b.unpinned), a.add(b.pinned), this.onPin && this.onPin.call(this)) }, top: function () { var a = this.elem.classList, b = this.classes; a.contains(b.top) || (a.add(b.top), a.remove(b.notTop), this.onTop && this.onTop.call(this)) }, notTop: function () { var a = this.elem.classList, b = this.classes; a.contains(b.notTop) || (a.add(b.notTop), a.remove(b.top), this.onNotTop && this.onNotTop.call(this)) }, bottom: function () { var a = this.elem.classList, b = this.classes; a.contains(b.bottom) || (a.add(b.bottom), a.remove(b.notBottom), this.onBottom && this.onBottom.call(this)) }, notBottom: function () { var a = this.elem.classList, b = this.classes; a.contains(b.notBottom) || (a.add(b.notBottom), a.remove(b.bottom), this.onNotBottom && this.onNotBottom.call(this)) }, getScrollY: function () { return void 0 !== this.scroller.pageYOffset ? this.scroller.pageYOffset : void 0 !== this.scroller.scrollTop ? this.scroller.scrollTop : (document.documentElement || document.body.parentNode || document.body).scrollTop }, getViewportHeight: function () { return window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight }, getElementPhysicalHeight: function (a) { return Math.max(a.offsetHeight, a.clientHeight) }, getScrollerPhysicalHeight: function () { return this.scroller === window || this.scroller === document.body ? this.getViewportHeight() : this.getElementPhysicalHeight(this.scroller) }, getDocumentHeight: function () { var a = document.body, b = document.documentElement; return Math.max(a.scrollHeight, b.scrollHeight, a.offsetHeight, b.offsetHeight, a.clientHeight, b.clientHeight) }, getElementHeight: function (a) { return Math.max(a.scrollHeight, a.offsetHeight, a.clientHeight) }, getScrollerHeight: function () { return this.scroller === window || this.scroller === document.body ? this.getDocumentHeight() : this.getElementHeight(this.scroller) }, isOutOfBounds: function (a) { var b = a < 0, c = a + this.getScrollerPhysicalHeight() > this.getScrollerHeight(); return b || c }, toleranceExceeded: function (a, b) { return Math.abs(a - this.lastKnownScrollY) >= this.tolerance[b] }, shouldUnpin: function (a, b) { var c = a > this.lastKnownScrollY, d = a >= this.offset; return c && d && b }, shouldPin: function (a, b) { var c = a < this.lastKnownScrollY, d = a <= this.offset; return c && b || d }, update: function () { var a = this.getScrollY(), b = a > this.lastKnownScrollY ? "down" : "up", c = this.toleranceExceeded(a, b); this.isOutOfBounds(a) || (a <= this.offset ? this.top() : this.notTop(), a + this.getViewportHeight() >= this.getScrollerHeight() ? this.bottom() : this.notBottom(), this.shouldUnpin(a, c) ? this.unpin() : this.shouldPin(a, c) && this.pin(), this.lastKnownScrollY = a) } }, e.options = { tolerance: { up: 0, down: 0 }, offset: 0, scroller: window, classes: { pinned: "headroom--pinned", unpinned: "headroom--unpinned", top: "headroom--top", notTop: "headroom--not-top", bottom: "headroom--bottom", notBottom: "headroom--not-bottom", initial: "headroom" } }, e.cutsTheMustard = "undefined" != typeof f && f.rAF && f.bind && f.classList, e }); !function (a) { "function" == typeof define && define.amd ? define(["jquery"], a) : "object" == typeof exports ? a(require("jquery")) : a(jQuery) }(function (a) { function b(a) { return h.raw ? a : encodeURIComponent(a) } function c(a) { return h.raw ? a : decodeURIComponent(a) } function d(a) { return b(h.json ? JSON.stringify(a) : String(a)) } function e(a) { 0 === a.indexOf('"') && (a = a.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, "\\")); try { return a = decodeURIComponent(a.replace(g, " ")), h.json ? JSON.parse(a) : a } catch (b) { } } function f(b, c) { var d = h.raw ? b : e(b); return a.isFunction(c) ? c(d) : d } var g = /\+/g, h = a.cookie = function (e, g, i) { if (void 0 !== g && !a.isFunction(g)) { if (i = a.extend({}, h.defaults, i), "number" == typeof i.expires) { var j = i.expires, k = i.expires = new Date; k.setTime(+k + 86400000 * j) } return document.cookie = [b(e), "=", d(g), i.expires ? "; expires=" + i.expires.toUTCString() : "", i.path ? "; path=" + i.path : "", i.domain ? "; domain=" + i.domain : "", i.secure ? "; secure" : ""].join("") } for (var l = e ? void 0 : {}, m = document.cookie ? document.cookie.split("; ") : [], n = 0, o = m.length; o > n; n++) { var p = m[n].split("="), q = c(p.shift()), r = p.join("="); if (e && e === q) { l = f(r, g); break } e || void 0 === (r = f(r)) || (l[q] = r) } return l }; h.defaults = {}, a.removeCookie = function (b, c) { return void 0 === a.cookie(b) ? !1 : (a.cookie(b, "", a.extend({}, c, { expires: -1 })), !a.cookie(b)) } }); if ("undefined" == typeof jQuery) { throw new Error("Bootstrap's JavaScript requires jQuery") } +function (a) { var b = a.fn.jquery.split(" ")[0].split("."); if (b[0] < 2 && b[1] < 9 || 1 == b[0] && 9 == b[1] && b[2] < 1 || b[0] > 3) { throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4") } }(jQuery), +function (a) { function b() { var a = document.createElement("bootstrap"), b = { WebkitTransition: "webkitTransitionEnd", MozTransition: "transitionend", OTransition: "oTransitionEnd otransitionend", transition: "transitionend" }; for (var c in b) { if (void 0 !== a.style[c]) { return { end: b[c] } } } return !1 } a.fn.emulateTransitionEnd = function (b) { var c = !1, d = this; a(this).one("bsTransitionEnd", function () { c = !0 }); var e = function () { c || a(d).trigger(a.support.transition.end) }; return setTimeout(e, b), this }, a(function () { a.support.transition = b(), a.support.transition && (a.event.special.bsTransitionEnd = { bindType: a.support.transition.end, delegateType: a.support.transition.end, handle: function (b) { if (a(b.target).is(this)) { return b.handleObj.handler.apply(this, arguments) } } }) }) }(jQuery), +function (a) { function b(b) { return this.each(function () { var c = a(this), e = c.data("bs.alert"); e || c.data("bs.alert", e = new d(this)), "string" == typeof b && e[b].call(c) }) } var c = '[data-dismiss="alert"]', d = function (b) { a(b).on("click", c, this.close) }; d.VERSION = "3.3.7", d.TRANSITION_DURATION = 150, d.prototype.close = function (b) { function c() { g.detach().trigger("closed.bs.alert").remove() } var e = a(this), f = e.attr("data-target"); f || (f = e.attr("href"), f = f && f.replace(/.*(?=#[^\s]*$)/, "")); var g = a("#" === f ? [] : f); b && b.preventDefault(), g.length || (g = e.closest(".alert")), g.trigger(b = a.Event("close.bs.alert")), b.isDefaultPrevented() || (g.removeClass("in"), a.support.transition && g.hasClass("fade") ? g.one("bsTransitionEnd", c).emulateTransitionEnd(d.TRANSITION_DURATION) : c()) }; var e = a.fn.alert; a.fn.alert = b, a.fn.alert.Constructor = d, a.fn.alert.noConflict = function () { return a.fn.alert = e, this }, a(document).on("click.bs.alert.data-api", c, d.prototype.close) }(jQuery), +function (a) { function b(b) { return this.each(function () { var d = a(this), e = d.data("bs.button"), f = "object" == typeof b && b; e || d.data("bs.button", e = new c(this, f)), "toggle" == b ? e.toggle() : b && e.setState(b) }) } var c = function (b, d) { this.$element = a(b), this.options = a.extend({}, c.DEFAULTS, d), this.isLoading = !1 }; c.VERSION = "3.3.7", c.DEFAULTS = { loadingText: "loading..." }, c.prototype.setState = function (b) { var c = "disabled", d = this.$element, e = d.is("input") ? "val" : "html", f = d.data(); b += "Text", null == f.resetText && d.data("resetText", d[e]()), setTimeout(a.proxy(function () { d[e](null == f[b] ? this.options[b] : f[b]), "loadingText" == b ? (this.isLoading = !0, d.addClass(c).attr(c, c).prop(c, !0)) : this.isLoading && (this.isLoading = !1, d.removeClass(c).removeAttr(c).prop(c, !1)) }, this), 0) }, c.prototype.toggle = function () { var a = !0, b = this.$element.closest('[data-toggle="buttons"]'); if (b.length) { var c = this.$element.find("input"); "radio" == c.prop("type") ? (c.prop("checked") && (a = !1), b.find(".active").removeClass("active"), this.$element.addClass("active")) : "checkbox" == c.prop("type") && (c.prop("checked") !== this.$element.hasClass("active") && (a = !1), this.$element.toggleClass("active")), c.prop("checked", this.$element.hasClass("active")), a && c.trigger("change") } else { this.$element.attr("aria-pressed", !this.$element.hasClass("active")), this.$element.toggleClass("active") } }; var d = a.fn.button; a.fn.button = b, a.fn.button.Constructor = c, a.fn.button.noConflict = function () { return a.fn.button = d, this }, a(document).on("click.bs.button.data-api", '[data-toggle^="button"]', function (c) { var d = a(c.target).closest(".btn"); b.call(d, "toggle"), a(c.target).is('input[type="radio"], input[type="checkbox"]') || (c.preventDefault(), d.is("input,button") ? d.trigger("focus") : d.find("input:visible,button:visible").first().trigger("focus")) }).on("focus.bs.button.data-api blur.bs.button.data-api", '[data-toggle^="button"]', function (b) { a(b.target).closest(".btn").toggleClass("focus", /^focus(in)?$/.test(b.type)) }) }(jQuery), +function (a) { function b(b) { return this.each(function () { var d = a(this), e = d.data("bs.carousel"), f = a.extend({}, c.DEFAULTS, d.data(), "object" == typeof b && b), g = "string" == typeof b ? b : f.slide; e || d.data("bs.carousel", e = new c(this, f)), "number" == typeof b ? e.to(b) : g ? e[g]() : f.interval && e.pause().cycle() }) } var c = function (b, c) { this.$element = a(b), this.$indicators = this.$element.find(".carousel-indicators"), this.options = c, this.paused = null, this.sliding = null, this.interval = null, this.$active = null, this.$items = null, this.options.keyboard && this.$element.on("keydown.bs.carousel", a.proxy(this.keydown, this)), "hover" == this.options.pause && !("ontouchstart" in document.documentElement) && this.$element.on("mouseenter.bs.carousel", a.proxy(this.pause, this)).on("mouseleave.bs.carousel", a.proxy(this.cycle, this)) }; c.VERSION = "3.3.7", c.TRANSITION_DURATION = 600, c.DEFAULTS = { interval: 5000, pause: "hover", wrap: !0, keyboard: !0 }, c.prototype.keydown = function (a) { if (!/input|textarea/i.test(a.target.tagName)) { switch (a.which) { case 37: this.prev(); break; case 39: this.next(); break; default: return }a.preventDefault() } }, c.prototype.cycle = function (b) { return b || (this.paused = !1), this.interval && clearInterval(this.interval), this.options.interval && !this.paused && (this.interval = setInterval(a.proxy(this.next, this), this.options.interval)), this }, c.prototype.getItemIndex = function (a) { return this.$items = a.parent().children(".item"), this.$items.index(a || this.$active) }, c.prototype.getItemForDirection = function (a, b) { var c = this.getItemIndex(b), d = "prev" == a && 0 === c || "next" == a && c == this.$items.length - 1; if (d && !this.options.wrap) { return b } var e = "prev" == a ? -1 : 1, f = (c + e) % this.$items.length; return this.$items.eq(f) }, c.prototype.to = function (a) { var b = this, c = this.getItemIndex(this.$active = this.$element.find(".item.active")); if (!(a > this.$items.length - 1 || a < 0)) { return this.sliding ? this.$element.one("slid.bs.carousel", function () { b.to(a) }) : c == a ? this.pause().cycle() : this.slide(a > c ? "next" : "prev", this.$items.eq(a)) } }, c.prototype.pause = function (b) { return b || (this.paused = !0), this.$element.find(".next, .prev").length && a.support.transition && (this.$element.trigger(a.support.transition.end), this.cycle(!0)), this.interval = clearInterval(this.interval), this }, c.prototype.next = function () { if (!this.sliding) { return this.slide("next") } }, c.prototype.prev = function () { if (!this.sliding) { return this.slide("prev") } }, c.prototype.slide = function (b, d) { var e = this.$element.find(".item.active"), f = d || this.getItemForDirection(b, e), g = this.interval, h = "next" == b ? "left" : "right", i = this; if (f.hasClass("active")) { return this.sliding = !1 } var j = f[0], k = a.Event("slide.bs.carousel", { relatedTarget: j, direction: h }); if (this.$element.trigger(k), !k.isDefaultPrevented()) { if (this.sliding = !0, g && this.pause(), this.$indicators.length) { this.$indicators.find(".active").removeClass("active"); var l = a(this.$indicators.children()[this.getItemIndex(f)]); l && l.addClass("active") } var m = a.Event("slid.bs.carousel", { relatedTarget: j, direction: h }); return a.support.transition && this.$element.hasClass("slide") ? (f.addClass(b), f[0].offsetWidth, e.addClass(h), f.addClass(h), e.one("bsTransitionEnd", function () { f.removeClass([b, h].join(" ")).addClass("active"), e.removeClass(["active", h].join(" ")), i.sliding = !1, setTimeout(function () { i.$element.trigger(m) }, 0) }).emulateTransitionEnd(c.TRANSITION_DURATION)) : (e.removeClass("active"), f.addClass("active"), this.sliding = !1, this.$element.trigger(m)), g && this.cycle(), this } }; var d = a.fn.carousel; a.fn.carousel = b, a.fn.carousel.Constructor = c, a.fn.carousel.noConflict = function () { return a.fn.carousel = d, this }; var e = function (c) { var d, e = a(this), f = a(e.attr("data-target") || (d = e.attr("href")) && d.replace(/.*(?=#[^\s]+$)/, "")); if (f.hasClass("carousel")) { var g = a.extend({}, f.data(), e.data()), h = e.attr("data-slide-to"); h && (g.interval = !1), b.call(f, g), h && f.data("bs.carousel").to(h), c.preventDefault() } }; a(document).on("click.bs.carousel.data-api", "[data-slide]", e).on("click.bs.carousel.data-api", "[data-slide-to]", e), a(window).on("load", function () { a('[data-ride="carousel"]').each(function () { var c = a(this); b.call(c, c.data()) }) }) }(jQuery), +function (a) { function b(b) { var c, d = b.attr("data-target") || (c = b.attr("href")) && c.replace(/.*(?=#[^\s]+$)/, ""); return a(d) } function c(b) { return this.each(function () { var c = a(this), e = c.data("bs.collapse"), f = a.extend({}, d.DEFAULTS, c.data(), "object" == typeof b && b); !e && f.toggle && /show|hide/.test(b) && (f.toggle = !1), e || c.data("bs.collapse", e = new d(this, f)), "string" == typeof b && e[b]() }) } var d = function (b, c) { this.$element = a(b), this.options = a.extend({}, d.DEFAULTS, c), this.$trigger = a('[data-toggle="collapse"][href="#' + b.id + '"],[data-toggle="collapse"][data-target="#' + b.id + '"]'), this.transitioning = null, this.options.parent ? this.$parent = this.getParent() : this.addAriaAndCollapsedClass(this.$element, this.$trigger), this.options.toggle && this.toggle() }; d.VERSION = "3.3.7", d.TRANSITION_DURATION = 350, d.DEFAULTS = { toggle: !0 }, d.prototype.dimension = function () { var a = this.$element.hasClass("width"); return a ? "width" : "height" }, d.prototype.show = function () { if (!this.transitioning && !this.$element.hasClass("in")) { var b, e = this.$parent && this.$parent.children(".panel").children(".in, .collapsing"); if (!(e && e.length && (b = e.data("bs.collapse"), b && b.transitioning))) { var f = a.Event("show.bs.collapse"); if (this.$element.trigger(f), !f.isDefaultPrevented()) { e && e.length && (c.call(e, "hide"), b || e.data("bs.collapse", null)); var g = this.dimension(); this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded", !0), this.$trigger.removeClass("collapsed").attr("aria-expanded", !0), this.transitioning = 1; var h = function () { this.$element.removeClass("collapsing").addClass("collapse in")[g](""), this.transitioning = 0, this.$element.trigger("shown.bs.collapse") }; if (!a.support.transition) { return h.call(this) } var i = a.camelCase(["scroll", g].join("-")); this.$element.one("bsTransitionEnd", a.proxy(h, this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i]) } } } }, d.prototype.hide = function () { if (!this.transitioning && this.$element.hasClass("in")) { var b = a.Event("hide.bs.collapse"); if (this.$element.trigger(b), !b.isDefaultPrevented()) { var c = this.dimension(); this.$element[c](this.$element[c]())[0].offsetHeight, this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded", !1), this.$trigger.addClass("collapsed").attr("aria-expanded", !1), this.transitioning = 1; var e = function () { this.transitioning = 0, this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse") }; return a.support.transition ? void this.$element[c](0).one("bsTransitionEnd", a.proxy(e, this)).emulateTransitionEnd(d.TRANSITION_DURATION) : e.call(this) } } }, d.prototype.toggle = function () { this[this.$element.hasClass("in") ? "hide" : "show"]() }, d.prototype.getParent = function () { return a(this.options.parent).find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]').each(a.proxy(function (c, d) { var e = a(d); this.addAriaAndCollapsedClass(b(e), e) }, this)).end() }, d.prototype.addAriaAndCollapsedClass = function (a, b) { var c = a.hasClass("in"); a.attr("aria-expanded", c), b.toggleClass("collapsed", !c).attr("aria-expanded", c) }; var e = a.fn.collapse; a.fn.collapse = c, a.fn.collapse.Constructor = d, a.fn.collapse.noConflict = function () { return a.fn.collapse = e, this }, a(document).on("click.bs.collapse.data-api", '[data-toggle="collapse"]', function (d) { var e = a(this); e.attr("data-target") || d.preventDefault(); var f = b(e), g = f.data("bs.collapse"), h = g ? "toggle" : e.data(); c.call(f, h) }) }(jQuery), +function (a) { function b(b) { var c = b.attr("data-target"); c || (c = b.attr("href"), c = c && /#[A-Za-z]/.test(c) && c.replace(/.*(?=#[^\s]*$)/, "")); var d = c && a(c); return d && d.length ? d : b.parent() } function c(c) { c && 3 === c.which || (a(e).remove(), a(f).each(function () { var d = a(this), e = b(d), f = { relatedTarget: this }; e.hasClass("open") && (c && "click" == c.type && /input|textarea/i.test(c.target.tagName) && a.contains(e[0], c.target) || (e.trigger(c = a.Event("hide.bs.dropdown", f)), c.isDefaultPrevented() || (d.attr("aria-expanded", "false"), e.removeClass("open").trigger(a.Event("hidden.bs.dropdown", f))))) })) } function d(b) { return this.each(function () { var c = a(this), d = c.data("bs.dropdown"); d || c.data("bs.dropdown", d = new g(this)), "string" == typeof b && d[b].call(c) }) } var e = ".dropdown-backdrop", f = '[data-toggle="dropdown"]', g = function (b) { a(b).on("click.bs.dropdown", this.toggle) }; g.VERSION = "3.3.7", g.prototype.toggle = function (d) { var e = a(this); if (!e.is(".disabled, :disabled")) { var f = b(e), g = f.hasClass("open"); if (c(), !g) { "ontouchstart" in document.documentElement && !f.closest(".navbar-nav").length && a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click", c); var h = { relatedTarget: this }; if (f.trigger(d = a.Event("show.bs.dropdown", h)), d.isDefaultPrevented()) { return } e.trigger("focus").attr("aria-expanded", "true"), f.toggleClass("open").trigger(a.Event("shown.bs.dropdown", h)) } return !1 } }, g.prototype.keydown = function (c) { if (/(38|40|27|32)/.test(c.which) && !/input|textarea/i.test(c.target.tagName)) { var d = a(this); if (c.preventDefault(), c.stopPropagation(), !d.is(".disabled, :disabled")) { var e = b(d), g = e.hasClass("open"); if (!g && 27 != c.which || g && 27 == c.which) { return 27 == c.which && e.find(f).trigger("focus"), d.trigger("click") } var h = " li:not(.disabled):visible a", i = e.find(".dropdown-menu" + h); if (i.length) { var j = i.index(c.target); 38 == c.which && j > 0 && j--, 40 == c.which && j < i.length - 1 && j++, ~j || (j = 0), i.eq(j).trigger("focus") } } } }; var h = a.fn.dropdown; a.fn.dropdown = d, a.fn.dropdown.Constructor = g, a.fn.dropdown.noConflict = function () { return a.fn.dropdown = h, this }, a(document).on("click.bs.dropdown.data-api", c).on("click.bs.dropdown.data-api", ".dropdown form", function (a) { a.stopPropagation() }).on("click.bs.dropdown.data-api", f, g.prototype.toggle).on("keydown.bs.dropdown.data-api", f, g.prototype.keydown).on("keydown.bs.dropdown.data-api", ".dropdown-menu", g.prototype.keydown) }(jQuery), +function (a) { function b(b, d) { return this.each(function () { var e = a(this), f = e.data("bs.modal"), g = a.extend({}, c.DEFAULTS, e.data(), "object" == typeof b && b); f || e.data("bs.modal", f = new c(this, g)), "string" == typeof b ? f[b](d) : g.show && f.show(d) }) } var c = function (b, c) { this.options = c, this.$body = a(document.body), this.$element = a(b), this.$dialog = this.$element.find(".modal-dialog"), this.$backdrop = null, this.isShown = null, this.originalBodyPad = null, this.scrollbarWidth = 0, this.ignoreBackdropClick = !1, this.options.remote && this.$element.find(".modal-content").load(this.options.remote, a.proxy(function () { this.$element.trigger("loaded.bs.modal") }, this)) }; c.VERSION = "3.3.7", c.TRANSITION_DURATION = 300, c.BACKDROP_TRANSITION_DURATION = 150, c.DEFAULTS = { backdrop: !0, keyboard: !0, show: !0 }, c.prototype.toggle = function (a) { return this.isShown ? this.hide() : this.show(a) }, c.prototype.show = function (b) { var d = this, e = a.Event("show.bs.modal", { relatedTarget: b }); this.$element.trigger(e), this.isShown || e.isDefaultPrevented() || (this.isShown = !0, this.checkScrollbar(), this.setScrollbar(), this.$body.addClass("modal-open"), this.escape(), this.resize(), this.$element.on("click.dismiss.bs.modal", '[data-dismiss="modal"]', a.proxy(this.hide, this)), this.$dialog.on("mousedown.dismiss.bs.modal", function () { d.$element.one("mouseup.dismiss.bs.modal", function (b) { a(b.target).is(d.$element) && (d.ignoreBackdropClick = !0) }) }), this.backdrop(function () { var e = a.support.transition && d.$element.hasClass("fade"); d.$element.parent().length || d.$element.appendTo(d.$body), d.$element.show().scrollTop(0), d.adjustDialog(), e && d.$element[0].offsetWidth, d.$element.addClass("in"), d.enforceFocus(); var f = a.Event("shown.bs.modal", { relatedTarget: b }); e ? d.$dialog.one("bsTransitionEnd", function () { d.$element.trigger("focus").trigger(f) }).emulateTransitionEnd(c.TRANSITION_DURATION) : d.$element.trigger("focus").trigger(f) })) }, c.prototype.hide = function (b) { b && b.preventDefault(), b = a.Event("hide.bs.modal"), this.$element.trigger(b), this.isShown && !b.isDefaultPrevented() && (this.isShown = !1, this.escape(), this.resize(), a(document).off("focusin.bs.modal"), this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"), this.$dialog.off("mousedown.dismiss.bs.modal"), a.support.transition && this.$element.hasClass("fade") ? this.$element.one("bsTransitionEnd", a.proxy(this.hideModal, this)).emulateTransitionEnd(c.TRANSITION_DURATION) : this.hideModal()) }, c.prototype.enforceFocus = function () { a(document).off("focusin.bs.modal").on("focusin.bs.modal", a.proxy(function (a) { document === a.target || this.$element[0] === a.target || this.$element.has(a.target).length || this.$element.trigger("focus") }, this)) }, c.prototype.escape = function () { this.isShown && this.options.keyboard ? this.$element.on("keydown.dismiss.bs.modal", a.proxy(function (a) { 27 == a.which && this.hide() }, this)) : this.isShown || this.$element.off("keydown.dismiss.bs.modal") }, c.prototype.resize = function () { this.isShown ? a(window).on("resize.bs.modal", a.proxy(this.handleUpdate, this)) : a(window).off("resize.bs.modal") }, c.prototype.hideModal = function () { var a = this; this.$element.hide(), this.backdrop(function () { a.$body.removeClass("modal-open"), a.resetAdjustments(), a.resetScrollbar(), a.$element.trigger("hidden.bs.modal") }) }, c.prototype.removeBackdrop = function () { this.$backdrop && this.$backdrop.remove(), this.$backdrop = null }, c.prototype.backdrop = function (b) { var d = this, e = this.$element.hasClass("fade") ? "fade" : ""; if (this.isShown && this.options.backdrop) { var f = a.support.transition && e; if (this.$backdrop = a(document.createElement("div")).addClass("modal-backdrop " + e).appendTo(this.$body), this.$element.on("click.dismiss.bs.modal", a.proxy(function (a) { return this.ignoreBackdropClick ? void (this.ignoreBackdropClick = !1) : void (a.target === a.currentTarget && ("static" == this.options.backdrop ? this.$element[0].focus() : this.hide())) }, this)), f && this.$backdrop[0].offsetWidth, this.$backdrop.addClass("in"), !b) { return } f ? this.$backdrop.one("bsTransitionEnd", b).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION) : b() } else { if (!this.isShown && this.$backdrop) { this.$backdrop.removeClass("in"); var g = function () { d.removeBackdrop(), b && b() }; a.support.transition && this.$element.hasClass("fade") ? this.$backdrop.one("bsTransitionEnd", g).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION) : g() } else { b && b() } } }, c.prototype.handleUpdate = function () { this.adjustDialog() }, c.prototype.adjustDialog = function () { var a = this.$element[0].scrollHeight > document.documentElement.clientHeight; this.$element.css({ paddingLeft: !this.bodyIsOverflowing && a ? this.scrollbarWidth : "", paddingRight: this.bodyIsOverflowing && !a ? this.scrollbarWidth : "" }) }, c.prototype.resetAdjustments = function () { this.$element.css({ paddingLeft: "", paddingRight: "" }) }, c.prototype.checkScrollbar = function () { var a = window.innerWidth; if (!a) { var b = document.documentElement.getBoundingClientRect(); a = b.right - Math.abs(b.left) } this.bodyIsOverflowing = document.body.clientWidth < a, this.scrollbarWidth = this.measureScrollbar() }, c.prototype.setScrollbar = function () { var a = parseInt(this.$body.css("padding-right") || 0, 10); this.originalBodyPad = document.body.style.paddingRight || "", this.bodyIsOverflowing && this.$body.css("padding-right", a + this.scrollbarWidth) }, c.prototype.resetScrollbar = function () { this.$body.css("padding-right", this.originalBodyPad) }, c.prototype.measureScrollbar = function () { var a = document.createElement("div"); a.className = "modal-scrollbar-measure", this.$body.append(a); var b = a.offsetWidth - a.clientWidth; return this.$body[0].removeChild(a), b }; var d = a.fn.modal; a.fn.modal = b, a.fn.modal.Constructor = c, a.fn.modal.noConflict = function () { return a.fn.modal = d, this }, a(document).on("click.bs.modal.data-api", '[data-toggle="modal"]', function (c) { var d = a(this), e = d.attr("href"), f = a(d.attr("data-target") || e && e.replace(/.*(?=#[^\s]+$)/, "")), g = f.data("bs.modal") ? "toggle" : a.extend({ remote: !/#/.test(e) && e }, f.data(), d.data()); d.is("a") && c.preventDefault(), f.one("show.bs.modal", function (a) { a.isDefaultPrevented() || f.one("hidden.bs.modal", function () { d.is(":visible") && d.trigger("focus") }) }), b.call(f, g, this) }) }(jQuery), +function (a) { function b(b) { return this.each(function () { var d = a(this), e = d.data("bs.tooltip"), f = "object" == typeof b && b; !e && /destroy|hide/.test(b) || (e || d.data("bs.tooltip", e = new c(this, f)), "string" == typeof b && e[b]()) }) } var c = function (a, b) { this.type = null, this.options = null, this.enabled = null, this.timeout = null, this.hoverState = null, this.$element = null, this.inState = null, this.init("tooltip", a, b) }; c.VERSION = "3.3.7", c.TRANSITION_DURATION = 150, c.DEFAULTS = { animation: !0, placement: "top", selector: !1, template: '', trigger: "hover focus", title: "", delay: 0, html: !1, container: !1, viewport: { selector: "body", padding: 0 } }, c.prototype.init = function (b, c, d) { if (this.enabled = !0, this.type = b, this.$element = a(c), this.options = this.getOptions(d), this.$viewport = this.options.viewport && a(a.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : this.options.viewport.selector || this.options.viewport), this.inState = { click: !1, hover: !1, focus: !1 }, this.$element[0] instanceof document.constructor && !this.options.selector) { throw new Error("`selector` option must be specified when initializing " + this.type + " on the window.document object!") } for (var e = this.options.trigger.split(" "), f = e.length; f--;) { var g = e[f]; if ("click" == g) { this.$element.on("click." + this.type, this.options.selector, a.proxy(this.toggle, this)) } else { if ("manual" != g) { var h = "hover" == g ? "mouseenter" : "focusin", i = "hover" == g ? "mouseleave" : "focusout"; this.$element.on(h + "." + this.type, this.options.selector, a.proxy(this.enter, this)), this.$element.on(i + "." + this.type, this.options.selector, a.proxy(this.leave, this)) } } } this.options.selector ? this._options = a.extend({}, this.options, { trigger: "manual", selector: "" }) : this.fixTitle() }, c.prototype.getDefaults = function () { return c.DEFAULTS }, c.prototype.getOptions = function (b) { return b = a.extend({}, this.getDefaults(), this.$element.data(), b), b.delay && "number" == typeof b.delay && (b.delay = { show: b.delay, hide: b.delay }), b }, c.prototype.getDelegateOptions = function () { var b = {}, c = this.getDefaults(); return this._options && a.each(this._options, function (a, d) { c[a] != d && (b[a] = d) }), b }, c.prototype.enter = function (b) { var c = b instanceof this.constructor ? b : a(b.currentTarget).data("bs." + this.type); return c || (c = new this.constructor(b.currentTarget, this.getDelegateOptions()), a(b.currentTarget).data("bs." + this.type, c)), b instanceof a.Event && (c.inState["focusin" == b.type ? "focus" : "hover"] = !0), c.tip().hasClass("in") || "in" == c.hoverState ? void (c.hoverState = "in") : (clearTimeout(c.timeout), c.hoverState = "in", c.options.delay && c.options.delay.show ? void (c.timeout = setTimeout(function () { "in" == c.hoverState && c.show() }, c.options.delay.show)) : c.show()) }, c.prototype.isInStateTrue = function () { for (var a in this.inState) { if (this.inState[a]) { return !0 } } return !1 }, c.prototype.leave = function (b) { var c = b instanceof this.constructor ? b : a(b.currentTarget).data("bs." + this.type); if (c || (c = new this.constructor(b.currentTarget, this.getDelegateOptions()), a(b.currentTarget).data("bs." + this.type, c)), b instanceof a.Event && (c.inState["focusout" == b.type ? "focus" : "hover"] = !1), !c.isInStateTrue()) { return clearTimeout(c.timeout), c.hoverState = "out", c.options.delay && c.options.delay.hide ? void (c.timeout = setTimeout(function () { "out" == c.hoverState && c.hide() }, c.options.delay.hide)) : c.hide() } }, c.prototype.show = function () { var b = a.Event("show.bs." + this.type); if (this.hasContent() && this.enabled) { this.$element.trigger(b); var d = a.contains(this.$element[0].ownerDocument.documentElement, this.$element[0]); if (b.isDefaultPrevented() || !d) { return } var e = this, f = this.tip(), g = this.getUID(this.type); this.setContent(), f.attr("id", g), this.$element.attr("aria-describedby", g), this.options.animation && f.addClass("fade"); var h = "function" == typeof this.options.placement ? this.options.placement.call(this, f[0], this.$element[0]) : this.options.placement, i = /\s?auto?\s?/i, j = i.test(h); j && (h = h.replace(i, "") || "top"), f.detach().css({ top: 0, left: 0, display: "block" }).addClass(h).data("bs." + this.type, this), this.options.container ? f.appendTo(this.options.container) : f.insertAfter(this.$element), this.$element.trigger("inserted.bs." + this.type); var k = this.getPosition(), l = f[0].offsetWidth, m = f[0].offsetHeight; if (j) { var n = h, o = this.getPosition(this.$viewport); h = "bottom" == h && k.bottom + m > o.bottom ? "top" : "top" == h && k.top - m < o.top ? "bottom" : "right" == h && k.right + l > o.width ? "left" : "left" == h && k.left - l < o.left ? "right" : h, f.removeClass(n).addClass(h) } var p = this.getCalculatedOffset(h, k, l, m); this.applyPlacement(p, h); var q = function () { var a = e.hoverState; e.$element.trigger("shown.bs." + e.type), e.hoverState = null, "out" == a && e.leave(e) }; a.support.transition && this.$tip.hasClass("fade") ? f.one("bsTransitionEnd", q).emulateTransitionEnd(c.TRANSITION_DURATION) : q() } }, c.prototype.applyPlacement = function (b, c) { var d = this.tip(), e = d[0].offsetWidth, f = d[0].offsetHeight, g = parseInt(d.css("margin-top"), 10), h = parseInt(d.css("margin-left"), 10); isNaN(g) && (g = 0), isNaN(h) && (h = 0), b.top += g, b.left += h, a.offset.setOffset(d[0], a.extend({ using: function (a) { d.css({ top: Math.round(a.top), left: Math.round(a.left) }) } }, b), 0), d.addClass("in"); var i = d[0].offsetWidth, j = d[0].offsetHeight; "top" == c && j != f && (b.top = b.top + f - j); var k = this.getViewportAdjustedDelta(c, b, i, j); k.left ? b.left += k.left : b.top += k.top; var l = /top|bottom/.test(c), m = l ? 2 * k.left - e + i : 2 * k.top - f + j, n = l ? "offsetWidth" : "offsetHeight"; d.offset(b), this.replaceArrow(m, d[0][n], l) }, c.prototype.replaceArrow = function (a, b, c) { this.arrow().css(c ? "left" : "top", 50 * (1 - a / b) + "%").css(c ? "top" : "left", "") }, c.prototype.setContent = function () { var a = this.tip(), b = this.getTitle(); a.find(".tooltip-inner")[this.options.html ? "html" : "text"](b), a.removeClass("fade in top bottom left right") }, c.prototype.hide = function (b) { function d() { "in" != e.hoverState && f.detach(), e.$element && e.$element.removeAttr("aria-describedby").trigger("hidden.bs." + e.type), b && b() } var e = this, f = a(this.$tip), g = a.Event("hide.bs." + this.type); if (this.$element.trigger(g), !g.isDefaultPrevented()) { return f.removeClass("in"), a.support.transition && f.hasClass("fade") ? f.one("bsTransitionEnd", d).emulateTransitionEnd(c.TRANSITION_DURATION) : d(), this.hoverState = null, this } }, c.prototype.fixTitle = function () { var a = this.$element; (a.attr("title") || "string" != typeof a.attr("data-original-title")) && a.attr("data-original-title", a.attr("title") || "").attr("title", "") }, c.prototype.hasContent = function () { return this.getTitle() }, c.prototype.getPosition = function (b) { b = b || this.$element; var c = b[0], d = "BODY" == c.tagName, e = c.getBoundingClientRect(); null == e.width && (e = a.extend({}, e, { width: e.right - e.left, height: e.bottom - e.top })); var f = window.SVGElement && c instanceof window.SVGElement, g = d ? { top: 0, left: 0 } : f ? null : b.offset(), h = { scroll: d ? document.documentElement.scrollTop || document.body.scrollTop : b.scrollTop() }, i = d ? { width: a(window).width(), height: a(window).height() } : null; return a.extend({}, e, h, i, g) }, c.prototype.getCalculatedOffset = function (a, b, c, d) { return "bottom" == a ? { top: b.top + b.height, left: b.left + b.width / 2 - c / 2 } : "top" == a ? { top: b.top - d, left: b.left + b.width / 2 - c / 2 } : "left" == a ? { top: b.top + b.height / 2 - d / 2, left: b.left - c } : { top: b.top + b.height / 2 - d / 2, left: b.left + b.width } }, c.prototype.getViewportAdjustedDelta = function (a, b, c, d) { var e = { top: 0, left: 0 }; if (!this.$viewport) { return e } var f = this.options.viewport && this.options.viewport.padding || 0, g = this.getPosition(this.$viewport); if (/right|left/.test(a)) { var h = b.top - f - g.scroll, i = b.top + f - g.scroll + d; h < g.top ? e.top = g.top - h : i > g.top + g.height && (e.top = g.top + g.height - i) } else { var j = b.left - f, k = b.left + f + c; j < g.left ? e.left = g.left - j : k > g.right && (e.left = g.left + g.width - k) } return e }, c.prototype.getTitle = function () { var a, b = this.$element, c = this.options; return a = b.attr("data-original-title") || ("function" == typeof c.title ? c.title.call(b[0]) : c.title) }, c.prototype.getUID = function (a) { do { a += ~~(1000000 * Math.random()) } while (document.getElementById(a)); return a }, c.prototype.tip = function () { if (!this.$tip && (this.$tip = a(this.options.template), 1 != this.$tip.length)) { throw new Error(this.type + " `template` option must consist of exactly 1 top-level element!") } return this.$tip }, c.prototype.arrow = function () { return this.$arrow = this.$arrow || this.tip().find(".tooltip-arrow") }, c.prototype.enable = function () { this.enabled = !0 }, c.prototype.disable = function () { this.enabled = !1 }, c.prototype.toggleEnabled = function () { this.enabled = !this.enabled }, c.prototype.toggle = function (b) { var c = this; b && (c = a(b.currentTarget).data("bs." + this.type), c || (c = new this.constructor(b.currentTarget, this.getDelegateOptions()), a(b.currentTarget).data("bs." + this.type, c))), b ? (c.inState.click = !c.inState.click, c.isInStateTrue() ? c.enter(c) : c.leave(c)) : c.tip().hasClass("in") ? c.leave(c) : c.enter(c) }, c.prototype.destroy = function () { var a = this; clearTimeout(this.timeout), this.hide(function () { a.$element.off("." + a.type).removeData("bs." + a.type), a.$tip && a.$tip.detach(), a.$tip = null, a.$arrow = null, a.$viewport = null, a.$element = null }) }; var d = a.fn.tooltip; a.fn.tooltip = b, a.fn.tooltip.Constructor = c, a.fn.tooltip.noConflict = function () { return a.fn.tooltip = d, this } }(jQuery), +function (a) { function b(b) { return this.each(function () { var d = a(this), e = d.data("bs.popover"), f = "object" == typeof b && b; !e && /destroy|hide/.test(b) || (e || d.data("bs.popover", e = new c(this, f)), "string" == typeof b && e[b]()) }) } var c = function (a, b) { this.init("popover", a, b) }; if (!a.fn.tooltip) { throw new Error("Popover requires tooltip.js") } c.VERSION = "3.3.7", c.DEFAULTS = a.extend({}, a.fn.tooltip.Constructor.DEFAULTS, { placement: "right", trigger: "click", content: "", template: '' }), c.prototype = a.extend({}, a.fn.tooltip.Constructor.prototype), c.prototype.constructor = c, c.prototype.getDefaults = function () { return c.DEFAULTS }, c.prototype.setContent = function () { var a = this.tip(), b = this.getTitle(), c = this.getContent(); a.find(".popover-title")[this.options.html ? "html" : "text"](b), a.find(".popover-content").children().detach().end()[this.options.html ? "string" == typeof c ? "html" : "append" : "text"](c), a.removeClass("fade top bottom left right in"), a.find(".popover-title").html() || a.find(".popover-title").hide() }, c.prototype.hasContent = function () { return this.getTitle() || this.getContent() }, c.prototype.getContent = function () { var a = this.$element, b = this.options; return a.attr("data-content") || ("function" == typeof b.content ? b.content.call(a[0]) : b.content) }, c.prototype.arrow = function () { return this.$arrow = this.$arrow || this.tip().find(".arrow") }; var d = a.fn.popover; a.fn.popover = b, a.fn.popover.Constructor = c, a.fn.popover.noConflict = function () { return a.fn.popover = d, this } }(jQuery), +function (a) { function b(c, d) { this.$body = a(document.body), this.$scrollElement = a(a(c).is(document.body) ? window : c), this.options = a.extend({}, b.DEFAULTS, d), this.selector = (this.options.target || "") + " .nav li > a", this.offsets = [], this.targets = [], this.activeTarget = null, this.scrollHeight = 0, this.$scrollElement.on("scroll.bs.scrollspy", a.proxy(this.process, this)), this.refresh(), this.process() } function c(c) { return this.each(function () { var d = a(this), e = d.data("bs.scrollspy"), f = "object" == typeof c && c; e || d.data("bs.scrollspy", e = new b(this, f)), "string" == typeof c && e[c]() }) } b.VERSION = "3.3.7", b.DEFAULTS = { offset: 10 }, b.prototype.getScrollHeight = function () { return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight) }, b.prototype.refresh = function () { var b = this, c = "offset", d = 0; this.offsets = [], this.targets = [], this.scrollHeight = this.getScrollHeight(), a.isWindow(this.$scrollElement[0]) || (c = "position", d = this.$scrollElement.scrollTop()), this.$body.find(this.selector).map(function () { var b = a(this), e = b.data("target") || b.attr("href"), f = /^#./.test(e) && a(e); return f && f.length && f.is(":visible") && [[f[c]().top + d, e]] || null }).sort(function (a, b) { return a[0] - b[0] }).each(function () { b.offsets.push(this[0]), b.targets.push(this[1]) }) }, b.prototype.process = function () { var a, b = this.$scrollElement.scrollTop() + this.options.offset, c = this.getScrollHeight(), d = this.options.offset + c - this.$scrollElement.height(), e = this.offsets, f = this.targets, g = this.activeTarget; if (this.scrollHeight != c && this.refresh(), b >= d) { return g != (a = f[f.length - 1]) && this.activate(a) } if (g && b < e[0]) { return this.activeTarget = null, this.clear() } for (a = e.length; a--;) { g != f[a] && b >= e[a] && (void 0 === e[a + 1] || b < e[a + 1]) && this.activate(f[a]) } }, b.prototype.activate = function (b) { this.activeTarget = b, this.clear(); var c = this.selector + '[data-target="' + b + '"],' + this.selector + '[href="' + b + '"]', d = a(c).parents("li").addClass("active"); d.parent(".dropdown-menu").length && (d = d.closest("li.dropdown").addClass("active")), d.trigger("activate.bs.scrollspy") }, b.prototype.clear = function () { a(this.selector).parentsUntil(this.options.target, ".active").removeClass("active") }; var d = a.fn.scrollspy; a.fn.scrollspy = c, a.fn.scrollspy.Constructor = b, a.fn.scrollspy.noConflict = function () { return a.fn.scrollspy = d, this }, a(window).on("load.bs.scrollspy.data-api", function () { a('[data-spy="scroll"]').each(function () { var b = a(this); c.call(b, b.data()) }) }) }(jQuery), +function (a) { function b(b) { return this.each(function () { var d = a(this), e = d.data("bs.tab"); e || d.data("bs.tab", e = new c(this)), "string" == typeof b && e[b]() }) } var c = function (b) { this.element = a(b) }; c.VERSION = "3.3.7", c.TRANSITION_DURATION = 150, c.prototype.show = function () { var b = this.element, c = b.closest("ul:not(.dropdown-menu)"), d = b.data("target"); if (d || (d = b.attr("href"), d = d && d.replace(/.*(?=#[^\s]*$)/, "")), !b.parent("li").hasClass("active")) { var e = c.find(".active:last a"), f = a.Event("hide.bs.tab", { relatedTarget: b[0] }), g = a.Event("show.bs.tab", { relatedTarget: e[0] }); if (e.trigger(f), b.trigger(g), !g.isDefaultPrevented() && !f.isDefaultPrevented()) { var h = a(d); this.activate(b.closest("li"), c), this.activate(h, h.parent(), function () { e.trigger({ type: "hidden.bs.tab", relatedTarget: b[0] }), b.trigger({ type: "shown.bs.tab", relatedTarget: e[0] }) }) } } }, c.prototype.activate = function (b, d, e) { function f() { g.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded", !1), b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded", !0), h ? (b[0].offsetWidth, b.addClass("in")) : b.removeClass("fade"), b.parent(".dropdown-menu").length && b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded", !0), e && e() } var g = d.find("> .active"), h = e && a.support.transition && (g.length && g.hasClass("fade") || !!d.find("> .fade").length); g.length && h ? g.one("bsTransitionEnd", f).emulateTransitionEnd(c.TRANSITION_DURATION) : f(), g.removeClass("in") }; var d = a.fn.tab; a.fn.tab = b, a.fn.tab.Constructor = c, a.fn.tab.noConflict = function () { return a.fn.tab = d, this }; var e = function (c) { c.preventDefault(), b.call(a(this), "show") }; a(document).on("click.bs.tab.data-api", '[data-toggle="tab"]', e).on("click.bs.tab.data-api", '[data-toggle="pill"]', e) }(jQuery), +function (a) { function b(b) { return this.each(function () { var d = a(this), e = d.data("bs.affix"), f = "object" == typeof b && b; e || d.data("bs.affix", e = new c(this, f)), "string" == typeof b && e[b]() }) } var c = function (b, d) { this.options = a.extend({}, c.DEFAULTS, d), this.$target = a(this.options.target).on("scroll.bs.affix.data-api", a.proxy(this.checkPosition, this)).on("click.bs.affix.data-api", a.proxy(this.checkPositionWithEventLoop, this)), this.$element = a(b), this.affixed = null, this.unpin = null, this.pinnedOffset = null, this.checkPosition() }; c.VERSION = "3.3.7", c.RESET = "affix affix-top affix-bottom", c.DEFAULTS = { offset: 0, target: window }, c.prototype.getState = function (a, b, c, d) { var e = this.$target.scrollTop(), f = this.$element.offset(), g = this.$target.height(); if (null != c && "top" == this.affixed) { return e < c && "top" } if ("bottom" == this.affixed) { return null != c ? !(e + this.unpin <= f.top) && "bottom" : !(e + g <= a - d) && "bottom" } var h = null == this.affixed, i = h ? e : f.top, j = h ? g : b; return null != c && e <= c ? "top" : null != d && i + j >= a - d && "bottom" }, c.prototype.getPinnedOffset = function () { if (this.pinnedOffset) { return this.pinnedOffset } this.$element.removeClass(c.RESET).addClass("affix"); var a = this.$target.scrollTop(), b = this.$element.offset(); return this.pinnedOffset = b.top - a }, c.prototype.checkPositionWithEventLoop = function () { setTimeout(a.proxy(this.checkPosition, this), 1) }, c.prototype.checkPosition = function () { if (this.$element.is(":visible")) { var b = this.$element.height(), d = this.options.offset, e = d.top, f = d.bottom, g = Math.max(a(document).height(), a(document.body).height()); "object" != typeof d && (f = e = d), "function" == typeof e && (e = d.top(this.$element)), "function" == typeof f && (f = d.bottom(this.$element)); var h = this.getState(g, b, e, f); if (this.affixed != h) { null != this.unpin && this.$element.css("top", ""); var i = "affix" + (h ? "-" + h : ""), j = a.Event(i + ".bs.affix"); if (this.$element.trigger(j), j.isDefaultPrevented()) { return } this.affixed = h, this.unpin = "bottom" == h ? this.getPinnedOffset() : null, this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix", "affixed") + ".bs.affix") } "bottom" == h && this.$element.offset({ top: g - b - f }) } }; var d = a.fn.affix; a.fn.affix = b, a.fn.affix.Constructor = c, a.fn.affix.noConflict = function () { return a.fn.affix = d, this }, a(window).on("load", function () { a('[data-spy="affix"]').each(function () { var c = a(this), d = c.data(); d.offset = d.offset || {}, null != d.offsetBottom && (d.offset.bottom = d.offsetBottom), null != d.offsetTop && (d.offset.top = d.offsetTop), b.call(c, d) }) }) }(jQuery); var QRCode; !function () { function a(a) { this.mode = c.MODE_8BIT_BYTE, this.data = a, this.parsedData = []; for (var b = [], d = 0, e = this.data.length; e > d; d++) { var f = this.data.charCodeAt(d); f > 65536 ? (b[0] = 240 | (1835008 & f) >>> 18, b[1] = 128 | (258048 & f) >>> 12, b[2] = 128 | (4032 & f) >>> 6, b[3] = 128 | 63 & f) : f > 2048 ? (b[0] = 224 | (61440 & f) >>> 12, b[1] = 128 | (4032 & f) >>> 6, b[2] = 128 | 63 & f) : f > 128 ? (b[0] = 192 | (1984 & f) >>> 6, b[1] = 128 | 63 & f) : b[0] = f, this.parsedData = this.parsedData.concat(b) } this.parsedData.length != this.data.length && (this.parsedData.unshift(191), this.parsedData.unshift(187), this.parsedData.unshift(239)) } function b(a, b) { this.typeNumber = a, this.errorCorrectLevel = b, this.modules = null, this.moduleCount = 0, this.dataCache = null, this.dataList = [] } function i(a, b) { if (void 0 == a.length) { throw new Error(a.length + "/" + b) } for (var c = 0; c < a.length && 0 == a[c];) { c++ } this.num = new Array(a.length - c + b); for (var d = 0; d < a.length - c; d++) { this.num[d] = a[d + c] } } function j(a, b) { this.totalCount = a, this.dataCount = b } function k() { this.buffer = [], this.length = 0 } function m() { return "undefined" != typeof CanvasRenderingContext2D } function n() { var a = !1, b = navigator.userAgent; return /android/i.test(b) && (a = !0, aMat = b.toString().match(/android ([0-9]\.[0-9])/i), aMat && aMat[1] && (a = parseFloat(aMat[1]))), a } function r(a, b) { for (var c = 1, e = s(a), f = 0, g = l.length; g >= f; f++) { var h = 0; switch (b) { case d.L: h = l[f][0]; break; case d.M: h = l[f][1]; break; case d.Q: h = l[f][2]; break; case d.H: h = l[f][3] }if (h >= e) { break } c++ } if (c > l.length) { throw new Error("Too long data") } return c } function s(a) { var b = encodeURI(a).toString().replace(/\%[0-9a-fA-F]{2}/g, "a"); return b.length + (b.length != a ? 3 : 0) } a.prototype = { getLength: function () { return this.parsedData.length }, write: function (a) { for (var b = 0, c = this.parsedData.length; c > b; b++) { a.put(this.parsedData[b], 8) } } }, b.prototype = { addData: function (b) { var c = new a(b); this.dataList.push(c), this.dataCache = null }, isDark: function (a, b) { if (0 > a || this.moduleCount <= a || 0 > b || this.moduleCount <= b) { throw new Error(a + "," + b) } return this.modules[a][b] }, getModuleCount: function () { return this.moduleCount }, make: function () { this.makeImpl(!1, this.getBestMaskPattern()) }, makeImpl: function (a, c) { this.moduleCount = 4 * this.typeNumber + 17, this.modules = new Array(this.moduleCount); for (var d = 0; d < this.moduleCount; d++) { this.modules[d] = new Array(this.moduleCount); for (var e = 0; e < this.moduleCount; e++) { this.modules[d][e] = null } } this.setupPositionProbePattern(0, 0), this.setupPositionProbePattern(this.moduleCount - 7, 0), this.setupPositionProbePattern(0, this.moduleCount - 7), this.setupPositionAdjustPattern(), this.setupTimingPattern(), this.setupTypeInfo(a, c), this.typeNumber >= 7 && this.setupTypeNumber(a), null == this.dataCache && (this.dataCache = b.createData(this.typeNumber, this.errorCorrectLevel, this.dataList)), this.mapData(this.dataCache, c) }, setupPositionProbePattern: function (a, b) { for (var c = -1; 7 >= c; c++) { if (!(-1 >= a + c || this.moduleCount <= a + c)) { for (var d = -1; 7 >= d; d++) { -1 >= b + d || this.moduleCount <= b + d || (this.modules[a + c][b + d] = c >= 0 && 6 >= c && (0 == d || 6 == d) || d >= 0 && 6 >= d && (0 == c || 6 == c) || c >= 2 && 4 >= c && d >= 2 && 4 >= d ? !0 : !1) } } } }, getBestMaskPattern: function () { for (var a = 0, b = 0, c = 0; 8 > c; c++) { this.makeImpl(!0, c); var d = f.getLostPoint(this); (0 == c || a > d) && (a = d, b = c) } return b }, createMovieClip: function (a, b, c) { var d = a.createEmptyMovieClip(b, c), e = 1; this.make(); for (var f = 0; f < this.modules.length; f++) { for (var g = f * e, h = 0; h < this.modules[f].length; h++) { var i = h * e, j = this.modules[f][h]; j && (d.beginFill(0, 100), d.moveTo(i, g), d.lineTo(i + e, g), d.lineTo(i + e, g + e), d.lineTo(i, g + e), d.endFill()) } } return d }, setupTimingPattern: function () { for (var a = 8; a < this.moduleCount - 8; a++) { null == this.modules[a][6] && (this.modules[a][6] = 0 == a % 2) } for (var b = 8; b < this.moduleCount - 8; b++) { null == this.modules[6][b] && (this.modules[6][b] = 0 == b % 2) } }, setupPositionAdjustPattern: function () { for (var a = f.getPatternPosition(this.typeNumber), b = 0; b < a.length; b++) { for (var c = 0; c < a.length; c++) { var d = a[b], e = a[c]; if (null == this.modules[d][e]) { for (var g = -2; 2 >= g; g++) { for (var h = -2; 2 >= h; h++) { this.modules[d + g][e + h] = -2 == g || 2 == g || -2 == h || 2 == h || 0 == g && 0 == h ? !0 : !1 } } } } } }, setupTypeNumber: function (a) { for (var b = f.getBCHTypeNumber(this.typeNumber), c = 0; 18 > c; c++) { var d = !a && 1 == (1 & b >> c); this.modules[Math.floor(c / 3)][c % 3 + this.moduleCount - 8 - 3] = d } for (var c = 0; 18 > c; c++) { var d = !a && 1 == (1 & b >> c); this.modules[c % 3 + this.moduleCount - 8 - 3][Math.floor(c / 3)] = d } }, setupTypeInfo: function (a, b) { for (var c = this.errorCorrectLevel << 3 | b, d = f.getBCHTypeInfo(c), e = 0; 15 > e; e++) { var g = !a && 1 == (1 & d >> e); 6 > e ? this.modules[e][8] = g : 8 > e ? this.modules[e + 1][8] = g : this.modules[this.moduleCount - 15 + e][8] = g } for (var e = 0; 15 > e; e++) { var g = !a && 1 == (1 & d >> e); 8 > e ? this.modules[8][this.moduleCount - e - 1] = g : 9 > e ? this.modules[8][15 - e - 1 + 1] = g : this.modules[8][15 - e - 1] = g } this.modules[this.moduleCount - 8][8] = !a }, mapData: function (a, b) { for (var c = -1, d = this.moduleCount - 1, e = 7, g = 0, h = this.moduleCount - 1; h > 0; h -= 2) { for (6 == h && h--; ;) { for (var i = 0; 2 > i; i++) { if (null == this.modules[d][h - i]) { var j = !1; g < a.length && (j = 1 == (1 & a[g] >>> e)); var k = f.getMask(b, d, h - i); k && (j = !j), this.modules[d][h - i] = j, e--, -1 == e && (g++, e = 7) } } if (d += c, 0 > d || this.moduleCount <= d) { d -= c, c = -c; break } } } } }, b.PAD0 = 236, b.PAD1 = 17, b.createData = function (a, c, d) { for (var e = j.getRSBlocks(a, c), g = new k, h = 0; h < d.length; h++) { var i = d[h]; g.put(i.mode, 4), g.put(i.getLength(), f.getLengthInBits(i.mode, a)), i.write(g) } for (var l = 0, h = 0; h < e.length; h++) { l += e[h].dataCount } if (g.getLengthInBits() > 8 * l) { throw new Error("code length overflow. (" + g.getLengthInBits() + ">" + 8 * l + ")") } for (g.getLengthInBits() + 4 <= 8 * l && g.put(0, 4); 0 != g.getLengthInBits() % 8;) { g.putBit(!1) } for (; ;) { if (g.getLengthInBits() >= 8 * l) { break } if (g.put(b.PAD0, 8), g.getLengthInBits() >= 8 * l) { break } g.put(b.PAD1, 8) } return b.createBytes(g, e) }, b.createBytes = function (a, b) { for (var c = 0, d = 0, e = 0, g = new Array(b.length), h = new Array(b.length), j = 0; j < b.length; j++) { var k = b[j].dataCount, l = b[j].totalCount - k; d = Math.max(d, k), e = Math.max(e, l), g[j] = new Array(k); for (var m = 0; m < g[j].length; m++) { g[j][m] = 255 & a.buffer[m + c] } c += k; var n = f.getErrorCorrectPolynomial(l), o = new i(g[j], n.getLength() - 1), p = o.mod(n); h[j] = new Array(n.getLength() - 1); for (var m = 0; m < h[j].length; m++) { var q = m + p.getLength() - h[j].length; h[j][m] = q >= 0 ? p.get(q) : 0 } } for (var r = 0, m = 0; m < b.length; m++) { r += b[m].totalCount } for (var s = new Array(r), t = 0, m = 0; d > m; m++) { for (var j = 0; j < b.length; j++) { m < g[j].length && (s[t++] = g[j][m]) } } for (var m = 0; e > m; m++) { for (var j = 0; j < b.length; j++) { m < h[j].length && (s[t++] = h[j][m]) } } return s }; for (var c = { MODE_NUMBER: 1, MODE_ALPHA_NUM: 2, MODE_8BIT_BYTE: 4, MODE_KANJI: 8 }, d = { L: 1, M: 0, Q: 3, H: 2 }, e = { PATTERN000: 0, PATTERN001: 1, PATTERN010: 2, PATTERN011: 3, PATTERN100: 4, PATTERN101: 5, PATTERN110: 6, PATTERN111: 7 }, f = { PATTERN_POSITION_TABLE: [[], [6, 18], [6, 22], [6, 26], [6, 30], [6, 34], [6, 22, 38], [6, 24, 42], [6, 26, 46], [6, 28, 50], [6, 30, 54], [6, 32, 58], [6, 34, 62], [6, 26, 46, 66], [6, 26, 48, 70], [6, 26, 50, 74], [6, 30, 54, 78], [6, 30, 56, 82], [6, 30, 58, 86], [6, 34, 62, 90], [6, 28, 50, 72, 94], [6, 26, 50, 74, 98], [6, 30, 54, 78, 102], [6, 28, 54, 80, 106], [6, 32, 58, 84, 110], [6, 30, 58, 86, 114], [6, 34, 62, 90, 118], [6, 26, 50, 74, 98, 122], [6, 30, 54, 78, 102, 126], [6, 26, 52, 78, 104, 130], [6, 30, 56, 82, 108, 134], [6, 34, 60, 86, 112, 138], [6, 30, 58, 86, 114, 142], [6, 34, 62, 90, 118, 146], [6, 30, 54, 78, 102, 126, 150], [6, 24, 50, 76, 102, 128, 154], [6, 28, 54, 80, 106, 132, 158], [6, 32, 58, 84, 110, 136, 162], [6, 26, 54, 82, 110, 138, 166], [6, 30, 58, 86, 114, 142, 170]], G15: 1335, G18: 7973, G15_MASK: 21522, getBCHTypeInfo: function (a) { for (var b = a << 10; f.getBCHDigit(b) - f.getBCHDigit(f.G15) >= 0;) { b ^= f.G15 << f.getBCHDigit(b) - f.getBCHDigit(f.G15) } return (a << 10 | b) ^ f.G15_MASK }, getBCHTypeNumber: function (a) { for (var b = a << 12; f.getBCHDigit(b) - f.getBCHDigit(f.G18) >= 0;) { b ^= f.G18 << f.getBCHDigit(b) - f.getBCHDigit(f.G18) } return a << 12 | b }, getBCHDigit: function (a) { for (var b = 0; 0 != a;) { b++, a >>>= 1 } return b }, getPatternPosition: function (a) { return f.PATTERN_POSITION_TABLE[a - 1] }, getMask: function (a, b, c) { switch (a) { case e.PATTERN000: return 0 == (b + c) % 2; case e.PATTERN001: return 0 == b % 2; case e.PATTERN010: return 0 == c % 3; case e.PATTERN011: return 0 == (b + c) % 3; case e.PATTERN100: return 0 == (Math.floor(b / 2) + Math.floor(c / 3)) % 2; case e.PATTERN101: return 0 == b * c % 2 + b * c % 3; case e.PATTERN110: return 0 == (b * c % 2 + b * c % 3) % 2; case e.PATTERN111: return 0 == (b * c % 3 + (b + c) % 2) % 2; default: throw new Error("bad maskPattern:" + a) } }, getErrorCorrectPolynomial: function (a) { for (var b = new i([1], 0), c = 0; a > c; c++) { b = b.multiply(new i([1, g.gexp(c)], 0)) } return b }, getLengthInBits: function (a, b) { if (b >= 1 && 10 > b) { switch (a) { case c.MODE_NUMBER: return 10; case c.MODE_ALPHA_NUM: return 9; case c.MODE_8BIT_BYTE: return 8; case c.MODE_KANJI: return 8; default: throw new Error("mode:" + a) } } else { if (27 > b) { switch (a) { case c.MODE_NUMBER: return 12; case c.MODE_ALPHA_NUM: return 11; case c.MODE_8BIT_BYTE: return 16; case c.MODE_KANJI: return 10; default: throw new Error("mode:" + a) } } else { if (!(41 > b)) { throw new Error("type:" + b) } switch (a) { case c.MODE_NUMBER: return 14; case c.MODE_ALPHA_NUM: return 13; case c.MODE_8BIT_BYTE: return 16; case c.MODE_KANJI: return 12; default: throw new Error("mode:" + a) } } } }, getLostPoint: function (a) { for (var b = a.getModuleCount(), c = 0, d = 0; b > d; d++) { for (var e = 0; b > e; e++) { for (var f = 0, g = a.isDark(d, e), h = -1; 1 >= h; h++) { if (!(0 > d + h || d + h >= b)) { for (var i = -1; 1 >= i; i++) { 0 > e + i || e + i >= b || (0 != h || 0 != i) && g == a.isDark(d + h, e + i) && f++ } } } f > 5 && (c += 3 + f - 5) } } for (var d = 0; b - 1 > d; d++) { for (var e = 0; b - 1 > e; e++) { var j = 0; a.isDark(d, e) && j++, a.isDark(d + 1, e) && j++, a.isDark(d, e + 1) && j++, a.isDark(d + 1, e + 1) && j++, (0 == j || 4 == j) && (c += 3) } } for (var d = 0; b > d; d++) { for (var e = 0; b - 6 > e; e++) { a.isDark(d, e) && !a.isDark(d, e + 1) && a.isDark(d, e + 2) && a.isDark(d, e + 3) && a.isDark(d, e + 4) && !a.isDark(d, e + 5) && a.isDark(d, e + 6) && (c += 40) } } for (var e = 0; b > e; e++) { for (var d = 0; b - 6 > d; d++) { a.isDark(d, e) && !a.isDark(d + 1, e) && a.isDark(d + 2, e) && a.isDark(d + 3, e) && a.isDark(d + 4, e) && !a.isDark(d + 5, e) && a.isDark(d + 6, e) && (c += 40) } } for (var k = 0, e = 0; b > e; e++) { for (var d = 0; b > d; d++) { a.isDark(d, e) && k++ } } var l = Math.abs(100 * k / b / b - 50) / 5; return c += 10 * l } }, g = { glog: function (a) { if (1 > a) { throw new Error("glog(" + a + ")") } return g.LOG_TABLE[a] }, gexp: function (a) { for (; 0 > a;) { a += 255 } for (; a >= 256;) { a -= 255 } return g.EXP_TABLE[a] }, EXP_TABLE: new Array(256), LOG_TABLE: new Array(256) }, h = 0; 8 > h; h++) { g.EXP_TABLE[h] = 1 << h } for (var h = 8; 256 > h; h++) { g.EXP_TABLE[h] = g.EXP_TABLE[h - 4] ^ g.EXP_TABLE[h - 5] ^ g.EXP_TABLE[h - 6] ^ g.EXP_TABLE[h - 8] } for (var h = 0; 255 > h; h++) { g.LOG_TABLE[g.EXP_TABLE[h]] = h } i.prototype = { get: function (a) { return this.num[a] }, getLength: function () { return this.num.length }, multiply: function (a) { for (var b = new Array(this.getLength() + a.getLength() - 1), c = 0; c < this.getLength(); c++) { for (var d = 0; d < a.getLength(); d++) { b[c + d] ^= g.gexp(g.glog(this.get(c)) + g.glog(a.get(d))) } } return new i(b, 0) }, mod: function (a) { if (this.getLength() - a.getLength() < 0) { return this } for (var b = g.glog(this.get(0)) - g.glog(a.get(0)), c = new Array(this.getLength()), d = 0; d < this.getLength(); d++) { c[d] = this.get(d) } for (var d = 0; d < a.getLength(); d++) { c[d] ^= g.gexp(g.glog(a.get(d)) + b) } return new i(c, 0).mod(a) } }, j.RS_BLOCK_TABLE = [[1, 26, 19], [1, 26, 16], [1, 26, 13], [1, 26, 9], [1, 44, 34], [1, 44, 28], [1, 44, 22], [1, 44, 16], [1, 70, 55], [1, 70, 44], [2, 35, 17], [2, 35, 13], [1, 100, 80], [2, 50, 32], [2, 50, 24], [4, 25, 9], [1, 134, 108], [2, 67, 43], [2, 33, 15, 2, 34, 16], [2, 33, 11, 2, 34, 12], [2, 86, 68], [4, 43, 27], [4, 43, 19], [4, 43, 15], [2, 98, 78], [4, 49, 31], [2, 32, 14, 4, 33, 15], [4, 39, 13, 1, 40, 14], [2, 121, 97], [2, 60, 38, 2, 61, 39], [4, 40, 18, 2, 41, 19], [4, 40, 14, 2, 41, 15], [2, 146, 116], [3, 58, 36, 2, 59, 37], [4, 36, 16, 4, 37, 17], [4, 36, 12, 4, 37, 13], [2, 86, 68, 2, 87, 69], [4, 69, 43, 1, 70, 44], [6, 43, 19, 2, 44, 20], [6, 43, 15, 2, 44, 16], [4, 101, 81], [1, 80, 50, 4, 81, 51], [4, 50, 22, 4, 51, 23], [3, 36, 12, 8, 37, 13], [2, 116, 92, 2, 117, 93], [6, 58, 36, 2, 59, 37], [4, 46, 20, 6, 47, 21], [7, 42, 14, 4, 43, 15], [4, 133, 107], [8, 59, 37, 1, 60, 38], [8, 44, 20, 4, 45, 21], [12, 33, 11, 4, 34, 12], [3, 145, 115, 1, 146, 116], [4, 64, 40, 5, 65, 41], [11, 36, 16, 5, 37, 17], [11, 36, 12, 5, 37, 13], [5, 109, 87, 1, 110, 88], [5, 65, 41, 5, 66, 42], [5, 54, 24, 7, 55, 25], [11, 36, 12], [5, 122, 98, 1, 123, 99], [7, 73, 45, 3, 74, 46], [15, 43, 19, 2, 44, 20], [3, 45, 15, 13, 46, 16], [1, 135, 107, 5, 136, 108], [10, 74, 46, 1, 75, 47], [1, 50, 22, 15, 51, 23], [2, 42, 14, 17, 43, 15], [5, 150, 120, 1, 151, 121], [9, 69, 43, 4, 70, 44], [17, 50, 22, 1, 51, 23], [2, 42, 14, 19, 43, 15], [3, 141, 113, 4, 142, 114], [3, 70, 44, 11, 71, 45], [17, 47, 21, 4, 48, 22], [9, 39, 13, 16, 40, 14], [3, 135, 107, 5, 136, 108], [3, 67, 41, 13, 68, 42], [15, 54, 24, 5, 55, 25], [15, 43, 15, 10, 44, 16], [4, 144, 116, 4, 145, 117], [17, 68, 42], [17, 50, 22, 6, 51, 23], [19, 46, 16, 6, 47, 17], [2, 139, 111, 7, 140, 112], [17, 74, 46], [7, 54, 24, 16, 55, 25], [34, 37, 13], [4, 151, 121, 5, 152, 122], [4, 75, 47, 14, 76, 48], [11, 54, 24, 14, 55, 25], [16, 45, 15, 14, 46, 16], [6, 147, 117, 4, 148, 118], [6, 73, 45, 14, 74, 46], [11, 54, 24, 16, 55, 25], [30, 46, 16, 2, 47, 17], [8, 132, 106, 4, 133, 107], [8, 75, 47, 13, 76, 48], [7, 54, 24, 22, 55, 25], [22, 45, 15, 13, 46, 16], [10, 142, 114, 2, 143, 115], [19, 74, 46, 4, 75, 47], [28, 50, 22, 6, 51, 23], [33, 46, 16, 4, 47, 17], [8, 152, 122, 4, 153, 123], [22, 73, 45, 3, 74, 46], [8, 53, 23, 26, 54, 24], [12, 45, 15, 28, 46, 16], [3, 147, 117, 10, 148, 118], [3, 73, 45, 23, 74, 46], [4, 54, 24, 31, 55, 25], [11, 45, 15, 31, 46, 16], [7, 146, 116, 7, 147, 117], [21, 73, 45, 7, 74, 46], [1, 53, 23, 37, 54, 24], [19, 45, 15, 26, 46, 16], [5, 145, 115, 10, 146, 116], [19, 75, 47, 10, 76, 48], [15, 54, 24, 25, 55, 25], [23, 45, 15, 25, 46, 16], [13, 145, 115, 3, 146, 116], [2, 74, 46, 29, 75, 47], [42, 54, 24, 1, 55, 25], [23, 45, 15, 28, 46, 16], [17, 145, 115], [10, 74, 46, 23, 75, 47], [10, 54, 24, 35, 55, 25], [19, 45, 15, 35, 46, 16], [17, 145, 115, 1, 146, 116], [14, 74, 46, 21, 75, 47], [29, 54, 24, 19, 55, 25], [11, 45, 15, 46, 46, 16], [13, 145, 115, 6, 146, 116], [14, 74, 46, 23, 75, 47], [44, 54, 24, 7, 55, 25], [59, 46, 16, 1, 47, 17], [12, 151, 121, 7, 152, 122], [12, 75, 47, 26, 76, 48], [39, 54, 24, 14, 55, 25], [22, 45, 15, 41, 46, 16], [6, 151, 121, 14, 152, 122], [6, 75, 47, 34, 76, 48], [46, 54, 24, 10, 55, 25], [2, 45, 15, 64, 46, 16], [17, 152, 122, 4, 153, 123], [29, 74, 46, 14, 75, 47], [49, 54, 24, 10, 55, 25], [24, 45, 15, 46, 46, 16], [4, 152, 122, 18, 153, 123], [13, 74, 46, 32, 75, 47], [48, 54, 24, 14, 55, 25], [42, 45, 15, 32, 46, 16], [20, 147, 117, 4, 148, 118], [40, 75, 47, 7, 76, 48], [43, 54, 24, 22, 55, 25], [10, 45, 15, 67, 46, 16], [19, 148, 118, 6, 149, 119], [18, 75, 47, 31, 76, 48], [34, 54, 24, 34, 55, 25], [20, 45, 15, 61, 46, 16]], j.getRSBlocks = function (a, b) { var c = j.getRsBlockTable(a, b); if (void 0 == c) { throw new Error("bad rs block @ typeNumber:" + a + "/errorCorrectLevel:" + b) } for (var d = c.length / 3, e = [], f = 0; d > f; f++) { for (var g = c[3 * f + 0], h = c[3 * f + 1], i = c[3 * f + 2], k = 0; g > k; k++) { e.push(new j(h, i)) } } return e }, j.getRsBlockTable = function (a, b) { switch (b) { case d.L: return j.RS_BLOCK_TABLE[4 * (a - 1) + 0]; case d.M: return j.RS_BLOCK_TABLE[4 * (a - 1) + 1]; case d.Q: return j.RS_BLOCK_TABLE[4 * (a - 1) + 2]; case d.H: return j.RS_BLOCK_TABLE[4 * (a - 1) + 3]; default: return void 0 } }, k.prototype = { get: function (a) { var b = Math.floor(a / 8); return 1 == (1 & this.buffer[b] >>> 7 - a % 8) }, put: function (a, b) { for (var c = 0; b > c; c++) { this.putBit(1 == (1 & a >>> b - c - 1)) } }, getLengthInBits: function () { return this.length }, putBit: function (a) { var b = Math.floor(this.length / 8); this.buffer.length <= b && this.buffer.push(0), a && (this.buffer[b] |= 128 >>> this.length % 8), this.length++ } }; var l = [[17, 14, 11, 7], [32, 26, 20, 14], [53, 42, 32, 24], [78, 62, 46, 34], [106, 84, 60, 44], [134, 106, 74, 58], [154, 122, 86, 64], [192, 152, 108, 84], [230, 180, 130, 98], [271, 213, 151, 119], [321, 251, 177, 137], [367, 287, 203, 155], [425, 331, 241, 177], [458, 362, 258, 194], [520, 412, 292, 220], [586, 450, 322, 250], [644, 504, 364, 280], [718, 560, 394, 310], [792, 624, 442, 338], [858, 666, 482, 382], [929, 711, 509, 403], [1003, 779, 565, 439], [1091, 857, 611, 461], [1171, 911, 661, 511], [1273, 997, 715, 535], [1367, 1059, 751, 593], [1465, 1125, 805, 625], [1528, 1190, 868, 658], [1628, 1264, 908, 698], [1732, 1370, 982, 742], [1840, 1452, 1030, 790], [1952, 1538, 1112, 842], [2068, 1628, 1168, 898], [2188, 1722, 1228, 958], [2303, 1809, 1283, 983], [2431, 1911, 1351, 1051], [2563, 1989, 1423, 1093], [2699, 2099, 1499, 1139], [2809, 2213, 1579, 1219], [2953, 2331, 1663, 1273]], o = function () { var a = function (a, b) { this._el = a, this._htOption = b }; return a.prototype.draw = function (a) { function g(a, b) { var c = document.createElementNS("http://www.w3.org/2000/svg", a); for (var d in b) { b.hasOwnProperty(d) && c.setAttribute(d, b[d]) } return c } var b = this._htOption, c = this._el, d = a.getModuleCount(); Math.floor(b.width / d), Math.floor(b.height / d), this.clear(); var h = g("svg", { viewBox: "0 0 " + String(d) + " " + String(d), width: "100%", height: "100%", fill: b.colorLight }); h.setAttributeNS("http://www.w3.org/2000/xmlns/", "xmlns:xlink", "http://www.w3.org/1999/xlink"), c.appendChild(h), h.appendChild(g("rect", { fill: b.colorDark, width: "1", height: "1", id: "template" })); for (var i = 0; d > i; i++) { for (var j = 0; d > j; j++) { if (a.isDark(i, j)) { var k = g("use", { x: String(i), y: String(j) }); k.setAttributeNS("http://www.w3.org/1999/xlink", "href", "#template"), h.appendChild(k) } } } }, a.prototype.clear = function () { for (; this._el.hasChildNodes();) { this._el.removeChild(this._el.lastChild) } }, a }(), p = "svg" === document.documentElement.tagName.toLowerCase(), q = p ? o : m() ? function () { function a() { this._elImage.src = this._elCanvas.toDataURL("image/png"), this._elImage.style.display = "inline-block", this._elCanvas.style.display = "none" } function d(a, b) { var c = this; if (c._fFail = b, c._fSuccess = a, null === c._bSupportDataURI) { var d = document.createElement("img"), e = function () { c._bSupportDataURI = !1, c._fFail && _fFail.call(c) }, f = function () { c._bSupportDataURI = !0, c._fSuccess && c._fSuccess.call(c) }; return d.onabort = e, d.onerror = e, d.onload = f, d.src = "data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==", void 0 } c._bSupportDataURI === !0 && c._fSuccess ? c._fSuccess.call(c) : c._bSupportDataURI === !1 && c._fFail && c._fFail.call(c) } if (this._android && this._android <= 2.1) { var b = 1 / window.devicePixelRatio, c = CanvasRenderingContext2D.prototype.drawImage; CanvasRenderingContext2D.prototype.drawImage = function (a, d, e, f, g, h, i, j) { if ("nodeName" in a && /img/i.test(a.nodeName)) { for (var l = arguments.length - 1; l >= 1; l--) { arguments[l] = arguments[l] * b } } else { "undefined" == typeof j && (arguments[1] *= b, arguments[2] *= b, arguments[3] *= b, arguments[4] *= b) } c.apply(this, arguments) } } var e = function (a, b) { this._bIsPainted = !1, this._android = n(), this._htOption = b, this._elCanvas = document.createElement("canvas"), this._elCanvas.width = b.width, this._elCanvas.height = b.height, a.appendChild(this._elCanvas), this._el = a, this._oContext = this._elCanvas.getContext("2d"), this._bIsPainted = !1, this._elImage = document.createElement("img"), this._elImage.style.display = "none", this._el.appendChild(this._elImage), this._bSupportDataURI = null }; return e.prototype.draw = function (a) { var b = this._elImage, c = this._oContext, d = this._htOption, e = a.getModuleCount(), f = d.width / e, g = d.height / e, h = Math.round(f), i = Math.round(g); b.style.display = "none", this.clear(); for (var j = 0; e > j; j++) { for (var k = 0; e > k; k++) { var l = a.isDark(j, k), m = k * f, n = j * g; c.strokeStyle = l ? d.colorDark : d.colorLight, c.lineWidth = 1, c.fillStyle = l ? d.colorDark : d.colorLight, c.fillRect(m, n, f, g), c.strokeRect(Math.floor(m) + 0.5, Math.floor(n) + 0.5, h, i), c.strokeRect(Math.ceil(m) - 0.5, Math.ceil(n) - 0.5, h, i) } } this._bIsPainted = !0 }, e.prototype.makeImage = function () { this._bIsPainted && d.call(this, a) }, e.prototype.isPainted = function () { return this._bIsPainted }, e.prototype.clear = function () { this._oContext.clearRect(0, 0, this._elCanvas.width, this._elCanvas.height), this._bIsPainted = !1 }, e.prototype.round = function (a) { return a ? Math.floor(1000 * a) / 1000 : a }, e }() : function () { var a = function (a, b) { this._el = a, this._htOption = b }; return a.prototype.draw = function (a) { for (var b = this._htOption, c = this._el, d = a.getModuleCount(), e = Math.floor(b.width / d), f = Math.floor(b.height / d), g = [''], h = 0; d > h; h++) { g.push(""); for (var i = 0; d > i; i++) { g.push('') } g.push("") } g.push("
"), c.innerHTML = g.join(""); var j = c.childNodes[0], k = (b.width - j.offsetWidth) / 2, l = (b.height - j.offsetHeight) / 2; k > 0 && l > 0 && (j.style.margin = l + "px " + k + "px") }, a.prototype.clear = function () { this._el.innerHTML = "" }, a }(); QRCode = function (a, b) { if (this._htOption = { width: 256, height: 256, typeNumber: 4, colorDark: "#000000", colorLight: "#ffffff", correctLevel: d.H }, "string" == typeof b && (b = { text: b }), b) { for (var c in b) { this._htOption[c] = b[c] } } "string" == typeof a && (a = document.getElementById(a)), this._android = n(), this._el = a, this._oQRCode = null, this._oDrawing = new q(this._el, this._htOption), this._htOption.text && this.makeCode(this._htOption.text) }, QRCode.prototype.makeCode = function (a) { this._oQRCode = new b(r(a, this._htOption.correctLevel), this._htOption.correctLevel), this._oQRCode.addData(a), this._oQRCode.make(), this._el.title = a, this._oDrawing.draw(this._oQRCode), this.makeImage() }, QRCode.prototype.makeImage = function () { "function" == typeof this._oDrawing.makeImage && (!this._android || this._android >= 3) && this._oDrawing.makeImage() }, QRCode.prototype.clear = function () { this._oDrawing.clear() }, QRCode.CorrectLevel = d }(); !function (a, b, c, d) { var e = a(b); a.fn.lazyload = function (f) { function g() { var b = 0; i.each(function () { var c = a(this); if (!j.skip_invisible || c.is(":visible")) { if (a.abovethetop(this, j) || a.leftofbegin(this, j)) { } else { if (a.belowthefold(this, j) || a.rightoffold(this, j)) { if (++b > j.failure_limit) { return !1 } } else { c.trigger("appear"), b = 0 } } } }) } var h, i = this, j = { threshold: 0, failure_limit: 0, event: "scroll", effect: "show", container: b, data_attribute: "original", skip_invisible: !0, appear: null, load: null, placeholder: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" }; return f && (d !== f.failurelimit && (f.failure_limit = f.failurelimit, delete f.failurelimit), d !== f.effectspeed && (f.effect_speed = f.effectspeed, delete f.effectspeed), a.extend(j, f)), h = j.container === d || j.container === b ? e : a(j.container), 0 === j.event.indexOf("scroll") && h.bind(j.event, function () { return g() }), this.each(function () { var b = this, c = a(b); b.loaded = !1, (c.attr("src") === d || c.attr("src") === !1) && c.is("img") && c.attr("src", j.placeholder), c.one("appear", function () { if (!this.loaded) { if (j.appear) { var d = i.length; j.appear.call(b, d, j) } a("").bind("load", function () { var d = c.attr("data-" + j.data_attribute); c.hide(), c.is("img") ? c.attr("src", d) : c.css("background-image", "url('" + d + "')"), c[j.effect](j.effect_speed), b.loaded = !0; var e = a.grep(i, function (a) { return !a.loaded }); if (i = a(e), j.load) { var f = i.length; j.load.call(b, f, j) } }).attr("src", c.attr("data-" + j.data_attribute)) } }), 0 !== j.event.indexOf("scroll") && c.bind(j.event, function () { b.loaded || c.trigger("appear") }) }), e.bind("resize", function () { g() }), /(?:iphone|ipod|ipad).*os 5/gi.test(navigator.appVersion) && e.bind("pageshow", function (b) { b.originalEvent && b.originalEvent.persisted && i.each(function () { a(this).trigger("appear") }) }), a(c).ready(function () { g() }), this }, a.belowthefold = function (c, f) { var g; return g = f.container === d || f.container === b ? (b.innerHeight ? b.innerHeight : e.height()) + e.scrollTop() : a(f.container).offset().top + a(f.container).height(), g <= a(c).offset().top - f.threshold }, a.rightoffold = function (c, f) { var g; return g = f.container === d || f.container === b ? e.width() + e.scrollLeft() : a(f.container).offset().left + a(f.container).width(), g <= a(c).offset().left - f.threshold }, a.abovethetop = function (c, f) { var g; return g = f.container === d || f.container === b ? e.scrollTop() : a(f.container).offset().top, g >= a(c).offset().top + f.threshold + a(c).height() }, a.leftofbegin = function (c, f) { var g; return g = f.container === d || f.container === b ? e.scrollLeft() : a(f.container).offset().left, g >= a(c).offset().left + f.threshold + a(c).width() }, a.inviewport = function (b, c) { return !(a.rightoffold(b, c) || a.leftofbegin(b, c) || a.belowthefold(b, c) || a.abovethetop(b, c)) }, a.extend(a.expr[":"], { "below-the-fold": function (b) { return a.belowthefold(b, { threshold: 0 }) }, "above-the-top": function (b) { return !a.belowthefold(b, { threshold: 0 }) }, "right-of-screen": function (b) { return a.rightoffold(b, { threshold: 0 }) }, "left-of-screen": function (b) { return !a.rightoffold(b, { threshold: 0 }) }, "in-viewport": function (b) { return a.inviewport(b, { threshold: 0 }) }, "above-the-fold": function (b) { return !a.belowthefold(b, { threshold: 0 }) }, "right-of-fold": function (b) { return a.rightoffold(b, { threshold: 0 }) }, "left-of-fold": function (b) { return !a.rightoffold(b, { threshold: 0 }) } }) }(jQuery, window, document); !function (t, e) { "function" == typeof define && define.amd ? define("jquery-bridget/jquery-bridget", ["jquery"], function (i) { return e(t, i) }) : "object" == typeof module && module.exports ? module.exports = e(t, require("jquery")) : t.jQueryBridget = e(t, t.jQuery) }(window, function (t, e) { function i(i, o, a) { function h(t, e, n) { var s, o = "$()." + i + '("' + e + '")'; return t.each(function (t, h) { var l = a.data(h, i); if (!l) { return void r(i + " not initialized. Cannot call methods, i.e. " + o) } var c = l[e]; if (!c || "_" == e.charAt(0)) { return void r(o + " is not a valid method") } var d = c.apply(l, n); s = void 0 === s ? d : s }), void 0 !== s ? s : t } function l(t, e) { t.each(function (t, n) { var s = a.data(n, i); s ? (s.option(e), s._init()) : (s = new o(n, e), a.data(n, i, s)) }) } a = a || e || t.jQuery, a && (o.prototype.option || (o.prototype.option = function (t) { a.isPlainObject(t) && (this.options = a.extend(!0, this.options, t)) }), a.fn[i] = function (t) { if ("string" == typeof t) { var e = s.call(arguments, 1); return h(this, t, e) } return l(this, t), this }, n(a)) } function n(t) { !t || t && t.bridget || (t.bridget = i) } var s = Array.prototype.slice, o = t.console, r = "undefined" == typeof o ? function () { } : function (t) { o.error(t) }; return n(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 || {}, n = i[t] = i[t] || []; return n.indexOf(e) == -1 && n.push(e), this } }, e.once = function (t, e) { if (t && e) { this.on(t, e); var i = this._onceEvents = this._onceEvents || {}, n = i[t] = i[t] || {}; return n[e] = !0, this } }, e.off = function (t, e) { var i = this._events && this._events[t]; if (i && i.length) { var n = i.indexOf(e); return n != -1 && i.splice(n, 1), this } }, e.emitEvent = function (t, e) { var i = this._events && this._events[t]; if (i && i.length) { i = i.slice(0), e = e || []; for (var n = this._onceEvents && this._onceEvents[t], s = 0; s < i.length; s++) { var o = i[s], r = n && n[o]; r && (this.off(t, o), delete n[o]), o.apply(this, e) } return this } }, e.allOff = function () { delete this._events, delete this._onceEvents }, t }), function (t, e) { "function" == typeof define && define.amd ? define("get-size/get-size", [], function () { return e() }) : "object" == typeof module && module.exports ? module.exports = e() : t.getSize = e() }(window, function () { function t(t) { var e = parseFloat(t), i = t.indexOf("%") == -1 && !isNaN(e); return i && e } function e() { } function i() { for (var t = { width: 0, height: 0, innerWidth: 0, innerHeight: 0, outerWidth: 0, outerHeight: 0 }, e = 0; e < l; e++) { var i = h[e]; t[i] = 0 } return t } function n(t) { var e = getComputedStyle(t); return e || a("Style returned " + e + ". Are you running this code in a hidden iframe on Firefox? See http://bit.ly/getsizebug1"), e } function s() { if (!c) { c = !0; var e = document.createElement("div"); e.style.width = "200px", e.style.padding = "1px 2px 3px 4px", e.style.borderStyle = "solid", e.style.borderWidth = "1px 2px 3px 4px", e.style.boxSizing = "border-box"; var i = document.body || document.documentElement; i.appendChild(e); var s = n(e); o.isBoxSizeOuter = r = 200 == t(s.width), i.removeChild(e) } } function o(e) { if (s(), "string" == typeof e && (e = document.querySelector(e)), e && "object" == typeof e && e.nodeType) { var o = n(e); if ("none" == o.display) { return i() } var a = {}; a.width = e.offsetWidth, a.height = e.offsetHeight; for (var c = a.isBorderBox = "border-box" == o.boxSizing, d = 0; d < l; d++) { var u = h[d], f = o[u], p = parseFloat(f); a[u] = isNaN(p) ? 0 : p } var v = a.paddingLeft + a.paddingRight, g = a.paddingTop + a.paddingBottom, m = a.marginLeft + a.marginRight, y = a.marginTop + a.marginBottom, E = a.borderLeftWidth + a.borderRightWidth, S = a.borderTopWidth + a.borderBottomWidth, b = c && r, x = t(o.width); x !== !1 && (a.width = x + (b ? 0 : v + E)); var C = t(o.height); return C !== !1 && (a.height = C + (b ? 0 : g + S)), a.innerWidth = a.width - (v + E), a.innerHeight = a.height - (g + S), a.outerWidth = a.width + m, a.outerHeight = a.height + y, a } } var r, a = "undefined" == typeof console ? e : function (t) { console.error(t) }, h = ["paddingLeft", "paddingRight", "paddingTop", "paddingBottom", "marginLeft", "marginRight", "marginTop", "marginBottom", "borderLeftWidth", "borderRightWidth", "borderTopWidth", "borderBottomWidth"], l = h.length, c = !1; return o }), function (t, e) { "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 () { var t = 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 n = e[i], s = n + "MatchesSelector"; if (t[s]) { return s } } }(); return function (e, i) { return e[t](i) } }), function (t, e) { "function" == typeof define && define.amd ? define("fizzy-ui-utils/utils", ["desandro-matches-selector/matches-selector"], function (i) { return e(t, i) }) : "object" == typeof module && module.exports ? module.exports = e(t, require("desandro-matches-selector")) : t.fizzyUIUtils = e(t, t.matchesSelector) }(window, function (t, e) { var i = {}; i.extend = function (t, e) { for (var i in e) { t[i] = e[i] } return t }, i.modulo = function (t, e) { return (t % e + e) % e }, i.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 }, i.removeFrom = function (t, e) { var i = t.indexOf(e); i != -1 && t.splice(i, 1) }, i.getParent = function (t, i) { for (; t.parentNode && t != document.body;) { if (t = t.parentNode, e(t, i)) { return t } } }, i.getQueryElement = function (t) { return "string" == typeof t ? document.querySelector(t) : t }, i.handleEvent = function (t) { var e = "on" + t.type; this[e] && this[e](t) }, i.filterFindElements = function (t, n) { t = i.makeArray(t); var s = []; return t.forEach(function (t) { if (t instanceof HTMLElement) { if (!n) { return void s.push(t) } e(t, n) && s.push(t); for (var i = t.querySelectorAll(n), o = 0; o < i.length; o++) { s.push(i[o]) } } }), s }, i.debounceMethod = function (t, e, i) { var n = t.prototype[e], s = e + "Timeout"; t.prototype[e] = function () { var t = this[s]; t && clearTimeout(t); var e = arguments, o = this; this[s] = setTimeout(function () { n.apply(o, e), delete o[s] }, i || 100) } }, i.docReady = function (t) { var e = document.readyState; "complete" == e || "interactive" == e ? setTimeout(t) : document.addEventListener("DOMContentLoaded", t) }, i.toDashed = function (t) { return t.replace(/(.)([A-Z])/g, function (t, e, i) { return e + "-" + i }).toLowerCase() }; var n = t.console; return i.htmlInit = function (e, s) { i.docReady(function () { var o = i.toDashed(s), r = "data-" + o, a = document.querySelectorAll("[" + r + "]"), h = document.querySelectorAll(".js-" + o), l = i.makeArray(a).concat(i.makeArray(h)), c = r + "-options", d = t.jQuery; l.forEach(function (t) { var i, o = t.getAttribute(r) || t.getAttribute(c); try { i = o && JSON.parse(o) } catch (a) { return void (n && n.error("Error parsing " + r + " on " + t.className + ": " + a)) } var h = new e(t, i); d && d.data(t, s, h) }) }) }, i }), function (t, e) { "function" == typeof define && define.amd ? define("flickity/js/cell", ["get-size/get-size"], function (i) { return e(t, i) }) : "object" == typeof module && module.exports ? module.exports = e(t, require("get-size")) : (t.Flickity = t.Flickity || {}, t.Flickity.Cell = e(t, t.getSize)) }(window, function (t, e) { function i(t, e) { this.element = t, this.parent = e, this.create() } var n = i.prototype; return n.create = function () { this.element.style.position = "absolute", this.x = 0, this.shift = 0 }, n.destroy = function () { this.element.style.position = ""; var t = this.parent.originSide; this.element.style[t] = "" }, n.getSize = function () { this.size = e(this.element) }, n.setPosition = function (t) { this.x = t, this.updateTarget(), this.renderPosition(t) }, n.updateTarget = n.setDefaultTarget = function () { var t = "left" == this.parent.originSide ? "marginLeft" : "marginRight"; this.target = this.x + this.size[t] + this.size.width * this.parent.cellAlign }, n.renderPosition = function (t) { var e = this.parent.originSide; this.element.style[e] = this.parent.getPositionValue(t) }, n.wrapShift = function (t) { this.shift = t, this.renderPosition(this.x + this.parent.slideableWidth * t) }, n.remove = function () { this.element.parentNode.removeChild(this.element) }, i }), function (t, e) { "function" == typeof define && define.amd ? define("flickity/js/slide", e) : "object" == typeof module && module.exports ? module.exports = e() : (t.Flickity = t.Flickity || {}, t.Flickity.Slide = e()) }(window, function () { function t(t) { this.parent = t, this.isOriginLeft = "left" == t.originSide, this.cells = [], this.outerWidth = 0, this.height = 0 } var e = t.prototype; return e.addCell = function (t) { if (this.cells.push(t), this.outerWidth += t.size.outerWidth, this.height = Math.max(t.size.outerHeight, this.height), 1 == this.cells.length) { this.x = t.x; var e = this.isOriginLeft ? "marginLeft" : "marginRight"; this.firstMargin = t.size[e] } }, e.updateTarget = function () { var t = this.isOriginLeft ? "marginRight" : "marginLeft", e = this.getLastCell(), i = e ? e.size[t] : 0, n = this.outerWidth - (this.firstMargin + i); this.target = this.x + this.firstMargin + n * this.parent.cellAlign }, e.getLastCell = function () { return this.cells[this.cells.length - 1] }, e.select = function () { this.changeSelectedClass("add") }, e.unselect = function () { this.changeSelectedClass("remove") }, e.changeSelectedClass = function (t) { this.cells.forEach(function (e) { e.element.classList[t]("is-selected") }) }, e.getCellElements = function () { return this.cells.map(function (t) { return t.element }) }, t }), function (t, e) { "function" == typeof define && define.amd ? define("flickity/js/animate", ["fizzy-ui-utils/utils"], function (i) { return e(t, i) }) : "object" == typeof module && module.exports ? module.exports = e(t, require("fizzy-ui-utils")) : (t.Flickity = t.Flickity || {}, t.Flickity.animatePrototype = e(t, t.fizzyUIUtils)) }(window, function (t, e) { var i = t.requestAnimationFrame || t.webkitRequestAnimationFrame, n = 0; i || (i = function (t) { var e = (new Date).getTime(), i = Math.max(0, 16 - (e - n)), s = setTimeout(t, i); return n = e + i, s }); var s = {}; s.startAnimation = function () { this.isAnimating || (this.isAnimating = !0, this.restingFrames = 0, this.animate()) }, s.animate = function () { this.applyDragForce(), this.applySelectedAttraction(); var t = this.x; if (this.integratePhysics(), this.positionSlider(), this.settle(t), this.isAnimating) { var e = this; i(function () { e.animate() }) } }; var o = function () { var t = document.documentElement.style; return "string" == typeof t.transform ? "transform" : "WebkitTransform" }(); return s.positionSlider = function () { var t = this.x; this.options.wrapAround && this.cells.length > 1 && (t = e.modulo(t, this.slideableWidth), t -= this.slideableWidth, this.shiftWrapCells(t)), t += this.cursorPosition, t = this.options.rightToLeft && o ? -t : t; var i = this.getPositionValue(t); this.slider.style[o] = this.isAnimating ? "translate3d(" + i + ",0,0)" : "translateX(" + i + ")"; var n = this.slides[0]; if (n) { var s = -this.x - n.target, r = s / this.slidesWidth; this.dispatchEvent("scroll", null, [r, s]) } }, s.positionSliderAtSelected = function () { this.cells.length && (this.x = -this.selectedSlide.target, this.positionSlider()) }, s.getPositionValue = function (t) { return this.options.percentPosition ? 0.01 * Math.round(t / this.size.innerWidth * 10000) + "%" : Math.round(t) + "px" }, s.settle = function (t) { this.isPointerDown || Math.round(100 * this.x) != Math.round(100 * t) || this.restingFrames++, this.restingFrames > 2 && (this.isAnimating = !1, delete this.isFreeScrolling, this.positionSlider(), this.dispatchEvent("settle")) }, s.shiftWrapCells = function (t) { var e = this.cursorPosition + t; this._shiftCells(this.beforeShiftCells, e, -1); var i = this.size.innerWidth - (t + this.slideableWidth + this.cursorPosition); this._shiftCells(this.afterShiftCells, i, 1) }, s._shiftCells = function (t, e, i) { for (var n = 0; n < t.length; n++) { var s = t[n], o = e > 0 ? i : 0; s.wrapShift(o), e -= s.size.outerWidth } }, s._unshiftCells = function (t) { if (t && t.length) { for (var e = 0; e < t.length; e++) { t[e].wrapShift(0) } } }, s.integratePhysics = function () { this.x += this.velocity, this.velocity *= this.getFrictionFactor() }, s.applyForce = function (t) { this.velocity += t }, s.getFrictionFactor = function () { return 1 - this.options[this.isFreeScrolling ? "freeScrollFriction" : "friction"] }, s.getRestingPosition = function () { return this.x + this.velocity / (1 - this.getFrictionFactor()) }, s.applyDragForce = function () { if (this.isPointerDown) { var t = this.dragX - this.x, e = t - this.velocity; this.applyForce(e) } }, s.applySelectedAttraction = function () { if (!this.isPointerDown && !this.isFreeScrolling && this.cells.length) { var t = this.selectedSlide.target * -1 - this.x, e = t * this.options.selectedAttraction; this.applyForce(e) } }, s }), function (t, e) { if ("function" == typeof define && define.amd) { define("flickity/js/flickity", ["ev-emitter/ev-emitter", "get-size/get-size", "fizzy-ui-utils/utils", "./cell", "./slide", "./animate"], function (i, n, s, o, r, a) { return e(t, i, n, s, o, r, a) }) } else { if ("object" == typeof module && module.exports) { module.exports = e(t, require("ev-emitter"), require("get-size"), require("fizzy-ui-utils"), require("./cell"), require("./slide"), require("./animate")) } else { var i = t.Flickity; t.Flickity = e(t, t.EvEmitter, t.getSize, t.fizzyUIUtils, i.Cell, i.Slide, i.animatePrototype) } } }(window, function (t, e, i, n, s, o, r) { function a(t, e) { for (t = n.makeArray(t); t.length;) { e.appendChild(t.shift()) } } function h(t, e) { var i = n.getQueryElement(t); if (!i) { return void (d && d.error("Bad element for Flickity: " + (i || t))) } if (this.element = i, this.element.flickityGUID) { var s = f[this.element.flickityGUID]; return s.option(e), s } l && (this.$element = l(this.element)), this.options = n.extend({}, this.constructor.defaults), this.option(e), this._create() } var l = t.jQuery, c = t.getComputedStyle, d = t.console, u = 0, f = {}; h.defaults = { accessibility: !0, cellAlign: "center", freeScrollFriction: 0.075, friction: 0.28, namespaceJQueryEvents: !0, percentPosition: !0, resize: !0, selectedAttraction: 0.025, setGallerySize: !0 }, h.createMethods = []; var p = h.prototype; n.extend(p, e.prototype), p._create = function () { var e = this.guid = ++u; this.element.flickityGUID = e, f[e] = this, this.selectedIndex = 0, this.restingFrames = 0, this.x = 0, this.velocity = 0, this.originSide = this.options.rightToLeft ? "right" : "left", this.viewport = document.createElement("div"), this.viewport.className = "flickity-viewport", this._createSlider(), (this.options.resize || this.options.watchCSS) && t.addEventListener("resize", this), h.createMethods.forEach(function (t) { this[t]() }, this), this.options.watchCSS ? this.watchCSS() : this.activate() }, p.option = function (t) { n.extend(this.options, t) }, p.activate = function () { if (!this.isActive) { this.isActive = !0, this.element.classList.add("flickity-enabled"), this.options.rightToLeft && this.element.classList.add("flickity-rtl"), this.getSize(); var t = this._filterFindCellElements(this.element.children); a(t, this.slider), this.viewport.appendChild(this.slider), this.element.appendChild(this.viewport), this.reloadCells(), this.options.accessibility && (this.element.tabIndex = 0, this.element.addEventListener("keydown", this)), this.emitEvent("activate"); var e, i = this.options.initialIndex; e = this.isInitActivated ? this.selectedIndex : void 0 !== i && this.cells[i] ? i : 0, this.select(e, !1, !0), this.isInitActivated = !0 } }, p._createSlider = function () { var t = document.createElement("div"); t.className = "flickity-slider", t.style[this.originSide] = 0, this.slider = t }, p._filterFindCellElements = function (t) { return n.filterFindElements(t, this.options.cellSelector) }, p.reloadCells = function () { this.cells = this._makeCells(this.slider.children), this.positionCells(), this._getWrapShiftCells(), this.setGallerySize() }, p._makeCells = function (t) { var e = this._filterFindCellElements(t), i = e.map(function (t) { return new s(t, this) }, this); return i }, p.getLastCell = function () { return this.cells[this.cells.length - 1] }, p.getLastSlide = function () { return this.slides[this.slides.length - 1] }, p.positionCells = function () { this._sizeCells(this.cells), this._positionCells(0) }, p._positionCells = function (t) { t = t || 0, this.maxCellHeight = t ? this.maxCellHeight || 0 : 0; var e = 0; if (t > 0) { var i = this.cells[t - 1]; e = i.x + i.size.outerWidth } for (var n = this.cells.length, s = t; s < n; s++) { var o = this.cells[s]; o.setPosition(e), e += o.size.outerWidth, this.maxCellHeight = Math.max(o.size.outerHeight, this.maxCellHeight) } this.slideableWidth = e, this.updateSlides(), this._containSlides(), this.slidesWidth = n ? this.getLastSlide().target - this.slides[0].target : 0 }, p._sizeCells = function (t) { t.forEach(function (t) { t.getSize() }) }, p.updateSlides = function () { if (this.slides = [], this.cells.length) { var t = new o(this); this.slides.push(t); var e = "left" == this.originSide, i = e ? "marginRight" : "marginLeft", n = this._getCanCellFit(); this.cells.forEach(function (e, s) { if (!t.cells.length) { return void t.addCell(e) } var r = t.outerWidth - t.firstMargin + (e.size.outerWidth - e.size[i]); n.call(this, s, r) ? t.addCell(e) : (t.updateTarget(), t = new o(this), this.slides.push(t), t.addCell(e)) }, this), t.updateTarget(), this.updateSelectedSlide() } }, p._getCanCellFit = function () { var t = this.options.groupCells; if (!t) { return function () { return !1 } } if ("number" == typeof t) { var e = parseInt(t, 10); return function (t) { return t % e !== 0 } } var i = "string" == typeof t && t.match(/^(\d+)%$/), n = i ? parseInt(i[1], 10) / 100 : 1; return function (t, e) { return e <= (this.size.innerWidth + 1) * n } }, p._init = p.reposition = function () { this.positionCells(), this.positionSliderAtSelected() }, p.getSize = function () { this.size = i(this.element), this.setCellAlign(), this.cursorPosition = this.size.innerWidth * this.cellAlign }; var v = { center: { left: 0.5, right: 0.5 }, left: { left: 0, right: 1 }, right: { right: 0, left: 1 } }; return p.setCellAlign = function () { var t = v[this.options.cellAlign]; this.cellAlign = t ? t[this.originSide] : this.options.cellAlign }, p.setGallerySize = function () { if (this.options.setGallerySize) { var t = this.options.adaptiveHeight && this.selectedSlide ? this.selectedSlide.height : this.maxCellHeight; this.viewport.style.height = t + "px" } }, p._getWrapShiftCells = function () { if (this.options.wrapAround) { this._unshiftCells(this.beforeShiftCells), this._unshiftCells(this.afterShiftCells); var t = this.cursorPosition, e = this.cells.length - 1; this.beforeShiftCells = this._getGapCells(t, e, -1), t = this.size.innerWidth - this.cursorPosition, this.afterShiftCells = this._getGapCells(t, 0, 1) } }, p._getGapCells = function (t, e, i) { for (var n = []; t > 0;) { var s = this.cells[e]; if (!s) { break } n.push(s), e += i, t -= s.size.outerWidth } return n }, p._containSlides = function () { if (this.options.contain && !this.options.wrapAround && this.cells.length) { var t = this.options.rightToLeft, e = t ? "marginRight" : "marginLeft", i = t ? "marginLeft" : "marginRight", n = this.slideableWidth - this.getLastCell().size[i], s = n < this.size.innerWidth, o = this.cursorPosition + this.cells[0].size[e], r = n - this.size.innerWidth * (1 - this.cellAlign); this.slides.forEach(function (t) { s ? t.target = n * this.cellAlign : (t.target = Math.max(t.target, o), t.target = Math.min(t.target, r)) }, this) } }, p.dispatchEvent = function (t, e, i) { var n = e ? [e].concat(i) : i; if (this.emitEvent(t, n), l && this.$element) { t += this.options.namespaceJQueryEvents ? ".flickity" : ""; var s = t; if (e) { var o = l.Event(e); o.type = t, s = o } this.$element.trigger(s, i) } }, p.select = function (t, e, i) { this.isActive && (t = parseInt(t, 10), this._wrapSelect(t), (this.options.wrapAround || e) && (t = n.modulo(t, this.slides.length)), this.slides[t] && (this.selectedIndex = t, this.updateSelectedSlide(), i ? this.positionSliderAtSelected() : this.startAnimation(), this.options.adaptiveHeight && this.setGallerySize(), this.dispatchEvent("select"), this.dispatchEvent("cellSelect"))) }, p._wrapSelect = function (t) { var e = this.slides.length, i = this.options.wrapAround && e > 1; if (!i) { return t } var s = n.modulo(t, e), o = Math.abs(s - this.selectedIndex), r = Math.abs(s + e - this.selectedIndex), a = Math.abs(s - e - this.selectedIndex); !this.isDragSelect && r < o ? t += e : !this.isDragSelect && a < o && (t -= e), t < 0 ? this.x -= this.slideableWidth : t >= e && (this.x += this.slideableWidth) }, p.previous = function (t, e) { this.select(this.selectedIndex - 1, t, e) }, p.next = function (t, e) { this.select(this.selectedIndex + 1, t, e) }, p.updateSelectedSlide = function () { var t = this.slides[this.selectedIndex]; t && (this.unselectSelectedSlide(), this.selectedSlide = t, t.select(), this.selectedCells = t.cells, this.selectedElements = t.getCellElements(), this.selectedCell = t.cells[0], this.selectedElement = this.selectedElements[0]) }, p.unselectSelectedSlide = function () { this.selectedSlide && this.selectedSlide.unselect() }, p.selectCell = function (t, e, i) { var n; "number" == typeof t ? n = this.cells[t] : ("string" == typeof t && (t = this.element.querySelector(t)), n = this.getCell(t)); for (var s = 0; n && s < this.slides.length; s++) { var o = this.slides[s], r = o.cells.indexOf(n); if (r != -1) { return void this.select(s, e, i) } } }, p.getCell = function (t) { for (var e = 0; e < this.cells.length; e++) { var i = this.cells[e]; if (i.element == t) { return i } } }, p.getCells = function (t) { t = n.makeArray(t); var e = []; return t.forEach(function (t) { var i = this.getCell(t); i && e.push(i) }, this), e }, p.getCellElements = function () { return this.cells.map(function (t) { return t.element }) }, p.getParentCell = function (t) { var e = this.getCell(t); return e ? e : (t = n.getParent(t, ".flickity-slider > *"), this.getCell(t)) }, p.getAdjacentCellElements = function (t, e) { if (!t) { return this.selectedSlide.getCellElements() } e = void 0 === e ? this.selectedIndex : e; var i = this.slides.length; if (1 + 2 * t >= i) { return this.getCellElements() } for (var s = [], o = e - t; o <= e + t; o++) { var r = this.options.wrapAround ? n.modulo(o, i) : o, a = this.slides[r]; a && (s = s.concat(a.getCellElements())) } return s }, p.uiChange = function () { this.emitEvent("uiChange") }, p.childUIPointerDown = function (t) { this.emitEvent("childUIPointerDown", [t]) }, p.onresize = function () { this.watchCSS(), this.resize() }, n.debounceMethod(h, "onresize", 150), p.resize = function () { if (this.isActive) { this.getSize(), this.options.wrapAround && (this.x = n.modulo(this.x, this.slideableWidth)), this.positionCells(), this._getWrapShiftCells(), this.setGallerySize(), this.emitEvent("resize"); var t = this.selectedElements && this.selectedElements[0]; this.selectCell(t, !1, !0) } }, p.watchCSS = function () { var t = this.options.watchCSS; if (t) { var e = c(this.element, ":after").content; e.indexOf("flickity") != -1 ? this.activate() : this.deactivate() } }, p.onkeydown = function (t) { if (this.options.accessibility && (!document.activeElement || document.activeElement == this.element)) { if (37 == t.keyCode) { var e = this.options.rightToLeft ? "next" : "previous"; this.uiChange(), this[e]() } else { if (39 == t.keyCode) { var i = this.options.rightToLeft ? "previous" : "next"; this.uiChange(), this[i]() } } } }, p.deactivate = function () { this.isActive && (this.element.classList.remove("flickity-enabled"), this.element.classList.remove("flickity-rtl"), this.cells.forEach(function (t) { t.destroy() }), this.unselectSelectedSlide(), this.element.removeChild(this.viewport), a(this.slider.children, this.element), this.options.accessibility && (this.element.removeAttribute("tabIndex"), this.element.removeEventListener("keydown", this)), this.isActive = !1, this.emitEvent("deactivate")) }, p.destroy = function () { this.deactivate(), t.removeEventListener("resize", this), this.emitEvent("destroy"), l && this.$element && l.removeData(this.element, "flickity"), delete this.element.flickityGUID, delete f[this.guid] }, n.extend(p, r), h.data = function (t) { t = n.getQueryElement(t); var e = t && t.flickityGUID; return e && f[e] }, n.htmlInit(h, "flickity"), l && l.bridget && l.bridget("flickity", h), h.setJQuery = function (t) { l = t }, h.Cell = s, h }), function (t, e) { "function" == typeof define && define.amd ? define("unipointer/unipointer", ["ev-emitter/ev-emitter"], function (i) { return e(t, i) }) : "object" == typeof module && module.exports ? module.exports = e(t, require("ev-emitter")) : t.Unipointer = e(t, t.EvEmitter) }(window, function (t, e) { function i() { } function n() { } var s = n.prototype = Object.create(e.prototype); s.bindStartEvent = function (t) { this._bindStartEvent(t, !0) }, s.unbindStartEvent = function (t) { this._bindStartEvent(t, !1) }, s._bindStartEvent = function (e, i) { i = void 0 === i || !!i; var n = i ? "addEventListener" : "removeEventListener"; t.PointerEvent ? e[n]("pointerdown", this) : (e[n]("mousedown", this), e[n]("touchstart", this)) }, s.handleEvent = function (t) { var e = "on" + t.type; this[e] && this[e](t) }, s.getTouch = function (t) { for (var e = 0; e < t.length; e++) { var i = t[e]; if (i.identifier == this.pointerIdentifier) { return i } } }, s.onmousedown = function (t) { var e = t.button; e && 0 !== e && 1 !== e || this._pointerDown(t, t) }, s.ontouchstart = function (t) { this._pointerDown(t, t.changedTouches[0]) }, s.onpointerdown = function (t) { this._pointerDown(t, t) }, s._pointerDown = function (t, e) { this.isPointerDown || (this.isPointerDown = !0, this.pointerIdentifier = void 0 !== e.pointerId ? e.pointerId : e.identifier, this.pointerDown(t, e)) }, s.pointerDown = function (t, e) { this._bindPostStartEvents(t), this.emitEvent("pointerDown", [t, e]) }; var o = { mousedown: ["mousemove", "mouseup"], touchstart: ["touchmove", "touchend", "touchcancel"], pointerdown: ["pointermove", "pointerup", "pointercancel"] }; return s._bindPostStartEvents = function (e) { if (e) { var i = o[e.type]; i.forEach(function (e) { t.addEventListener(e, this) }, this), this._boundPointerEvents = i } }, s._unbindPostStartEvents = function () { this._boundPointerEvents && (this._boundPointerEvents.forEach(function (e) { t.removeEventListener(e, this) }, this), delete this._boundPointerEvents) }, s.onmousemove = function (t) { this._pointerMove(t, t) }, s.onpointermove = function (t) { t.pointerId == this.pointerIdentifier && this._pointerMove(t, t) }, s.ontouchmove = function (t) { var e = this.getTouch(t.changedTouches); e && this._pointerMove(t, e) }, s._pointerMove = function (t, e) { this.pointerMove(t, e) }, s.pointerMove = function (t, e) { this.emitEvent("pointerMove", [t, e]) }, s.onmouseup = function (t) { this._pointerUp(t, t) }, s.onpointerup = function (t) { t.pointerId == this.pointerIdentifier && this._pointerUp(t, t) }, s.ontouchend = function (t) { var e = this.getTouch(t.changedTouches); e && this._pointerUp(t, e) }, s._pointerUp = function (t, e) { this._pointerDone(), this.pointerUp(t, e) }, s.pointerUp = function (t, e) { this.emitEvent("pointerUp", [t, e]) }, s._pointerDone = function () { this.isPointerDown = !1, delete this.pointerIdentifier, this._unbindPostStartEvents(), this.pointerDone() }, s.pointerDone = i, s.onpointercancel = function (t) { t.pointerId == this.pointerIdentifier && this._pointerCancel(t, t) }, s.ontouchcancel = function (t) { var e = this.getTouch(t.changedTouches); e && this._pointerCancel(t, e) }, s._pointerCancel = function (t, e) { this._pointerDone(), this.pointerCancel(t, e) }, s.pointerCancel = function (t, e) { this.emitEvent("pointerCancel", [t, e]) }, n.getPointerPoint = function (t) { return { x: t.pageX, y: t.pageY } }, n }), function (t, e) { "function" == typeof define && define.amd ? define("unidragger/unidragger", ["unipointer/unipointer"], function (i) { return e(t, i) }) : "object" == typeof module && module.exports ? module.exports = e(t, require("unipointer")) : t.Unidragger = e(t, t.Unipointer) }(window, function (t, e) { function i() { } var n = i.prototype = Object.create(e.prototype); return n.bindHandles = function () { this._bindHandles(!0) }, n.unbindHandles = function () { this._bindHandles(!1) }, n._bindHandles = function (e) { e = void 0 === e || !!e; for (var i = e ? "addEventListener" : "removeEventListener", n = 0; n < this.handles.length; n++) { var s = this.handles[n]; this._bindStartEvent(s, e), s[i]("click", this), t.PointerEvent && (s.style.touchAction = e ? this._touchActionValue : "") } }, n._touchActionValue = "none", n.pointerDown = function (t, e) { if ("INPUT" == t.target.nodeName && "range" == t.target.type) { return this.isPointerDown = !1, void delete this.pointerIdentifier } this._dragPointerDown(t, e); var i = document.activeElement; i && i.blur && i.blur(), this._bindPostStartEvents(t), this.emitEvent("pointerDown", [t, e]) }, n._dragPointerDown = function (t, i) { this.pointerDownPoint = e.getPointerPoint(i); var n = this.canPreventDefaultOnPointerDown(t, i); n && t.preventDefault() }, n.canPreventDefaultOnPointerDown = function (t) { return "SELECT" != t.target.nodeName }, n.pointerMove = function (t, e) { var i = this._dragPointerMove(t, e); this.emitEvent("pointerMove", [t, e, i]), this._dragMove(t, e, i) }, n._dragPointerMove = function (t, i) { var n = e.getPointerPoint(i), s = { x: n.x - this.pointerDownPoint.x, y: n.y - this.pointerDownPoint.y }; return !this.isDragging && this.hasDragStarted(s) && this._dragStart(t, i), s }, n.hasDragStarted = function (t) { return Math.abs(t.x) > 3 || Math.abs(t.y) > 3 }, n.pointerUp = function (t, e) { this.emitEvent("pointerUp", [t, e]), this._dragPointerUp(t, e) }, n._dragPointerUp = function (t, e) { this.isDragging ? this._dragEnd(t, e) : this._staticClick(t, e) }, n._dragStart = function (t, i) { this.isDragging = !0, this.dragStartPoint = e.getPointerPoint(i), this.isPreventingClicks = !0, this.dragStart(t, i) }, n.dragStart = function (t, e) { this.emitEvent("dragStart", [t, e]) }, n._dragMove = function (t, e, i) { this.isDragging && this.dragMove(t, e, i) }, n.dragMove = function (t, e, i) { t.preventDefault(), this.emitEvent("dragMove", [t, e, i]) }, n._dragEnd = function (t, e) { this.isDragging = !1, setTimeout(function () { delete this.isPreventingClicks }.bind(this)), this.dragEnd(t, e) }, n.dragEnd = function (t, e) { this.emitEvent("dragEnd", [t, e]) }, n.onclick = function (t) { this.isPreventingClicks && t.preventDefault() }, n._staticClick = function (t, e) { if (!this.isIgnoringMouseUp || "mouseup" != t.type) { var i = t.target.nodeName; "INPUT" != i && "TEXTAREA" != i || t.target.focus(), this.staticClick(t, e), "mouseup" != t.type && (this.isIgnoringMouseUp = !0, setTimeout(function () { delete this.isIgnoringMouseUp }.bind(this), 400)) } }, n.staticClick = function (t, e) { this.emitEvent("staticClick", [t, e]) }, i.getPointerPoint = e.getPointerPoint, i }), function (t, e) { "function" == typeof define && define.amd ? define("flickity/js/drag", ["./flickity", "unidragger/unidragger", "fizzy-ui-utils/utils"], function (i, n, s) { return e(t, i, n, s) }) : "object" == typeof module && module.exports ? module.exports = e(t, require("./flickity"), require("unidragger"), require("fizzy-ui-utils")) : t.Flickity = e(t, t.Flickity, t.Unidragger, t.fizzyUIUtils) }(window, function (t, e, i, n) { function s(t) { var e = "touchstart" == t.type, i = "touch" == t.pointerType, n = d[t.target.nodeName]; return e || i || n } function o() { return { x: t.pageXOffset, y: t.pageYOffset } } n.extend(e.defaults, { draggable: !0, dragThreshold: 3 }), e.createMethods.push("_createDrag"); var r = e.prototype; n.extend(r, i.prototype), r._touchActionValue = "pan-y"; var a = "createTouch" in document, h = !1; r._createDrag = function () { this.on("activate", this.bindDrag), this.on("uiChange", this._uiChangeDrag), this.on("childUIPointerDown", this._childUIPointerDownDrag), this.on("deactivate", this.unbindDrag), a && !h && (t.addEventListener("touchmove", function () { }), h = !0) }, r.bindDrag = function () { this.options.draggable && !this.isDragBound && (this.element.classList.add("is-draggable"), this.handles = [this.viewport], this.bindHandles(), this.isDragBound = !0) }, r.unbindDrag = function () { this.isDragBound && (this.element.classList.remove("is-draggable"), this.unbindHandles(), delete this.isDragBound) }, r._uiChangeDrag = function () { delete this.isFreeScrolling }, r._childUIPointerDownDrag = function (t) { t.preventDefault(), this.pointerDownFocus(t) }; var l = { TEXTAREA: !0, INPUT: !0, OPTION: !0 }, c = { radio: !0, checkbox: !0, button: !0, submit: !0, image: !0, file: !0 }; r.pointerDown = function (e, i) { var n = l[e.target.nodeName] && !c[e.target.type]; if (n) { return this.isPointerDown = !1, void delete this.pointerIdentifier } this._dragPointerDown(e, i); var s = document.activeElement; s && s.blur && s != this.element && s != document.body && s.blur(), this.pointerDownFocus(e), this.dragX = this.x, this.viewport.classList.add("is-pointer-down"), this._bindPostStartEvents(e), this.pointerDownScroll = o(), t.addEventListener("scroll", this), this.dispatchEvent("pointerDown", e, [i]) }, r.pointerDownFocus = function (e) { var i = s(e); if (this.options.accessibility && !i) { var n = t.pageYOffset; this.element.focus(), t.pageYOffset != n && t.scrollTo(t.pageXOffset, n) } }; var d = { INPUT: !0, SELECT: !0 }; return r.canPreventDefaultOnPointerDown = function (t) { var e = s(t); return !e }, r.hasDragStarted = function (t) { return Math.abs(t.x) > this.options.dragThreshold }, r.pointerUp = function (t, e) { delete this.isTouchScrolling, this.viewport.classList.remove("is-pointer-down"), this.dispatchEvent("pointerUp", t, [e]), this._dragPointerUp(t, e) }, r.pointerDone = function () { t.removeEventListener("scroll", this), delete this.pointerDownScroll }, r.dragStart = function (e, i) { this.dragStartPosition = this.x, this.startAnimation(), t.removeEventListener("scroll", this), this.dispatchEvent("dragStart", e, [i]) }, r.pointerMove = function (t, e) { var i = this._dragPointerMove(t, e); this.dispatchEvent("pointerMove", t, [e, i]), this._dragMove(t, e, i) }, r.dragMove = function (t, e, i) { t.preventDefault(), this.previousDragX = this.dragX; var n = this.options.rightToLeft ? -1 : 1, s = this.dragStartPosition + i.x * n; if (!this.options.wrapAround && this.slides.length) { var o = Math.max(-this.slides[0].target, this.dragStartPosition); s = s > o ? 0.5 * (s + o) : s; var r = Math.min(-this.getLastSlide().target, this.dragStartPosition); s = s < r ? 0.5 * (s + r) : s } this.dragX = s, this.dragMoveTime = new Date, this.dispatchEvent("dragMove", t, [e, i]) }, r.dragEnd = function (t, e) { this.options.freeScroll && (this.isFreeScrolling = !0); var i = this.dragEndRestingSelect(); if (this.options.freeScroll && !this.options.wrapAround) { var n = this.getRestingPosition(); this.isFreeScrolling = -n > this.slides[0].target && -n < this.getLastSlide().target } else { this.options.freeScroll || i != this.selectedIndex || (i += this.dragEndBoostSelect()) } delete this.previousDragX, this.isDragSelect = this.options.wrapAround, this.select(i), delete this.isDragSelect, this.dispatchEvent("dragEnd", t, [e]) }, r.dragEndRestingSelect = function () { var t = this.getRestingPosition(), e = Math.abs(this.getSlideDistance(-t, this.selectedIndex)), i = this._getClosestResting(t, e, 1), n = this._getClosestResting(t, e, -1), s = i.distance < n.distance ? i.index : n.index; return s }, r._getClosestResting = function (t, e, i) { for (var n = this.selectedIndex, s = 1 / 0, o = this.options.contain && !this.options.wrapAround ? function (t, e) { return t <= e } : function (t, e) { return t < e }; o(e, s) && (n += i, s = e, e = this.getSlideDistance(-t, n), null !== e);) { e = Math.abs(e) } return { distance: s, index: n - i } }, r.getSlideDistance = function (t, e) { var i = this.slides.length, s = this.options.wrapAround && i > 1, o = s ? n.modulo(e, i) : e, r = this.slides[o]; if (!r) { return null } var a = s ? this.slideableWidth * Math.floor(e / i) : 0; return t - (r.target + a) }, r.dragEndBoostSelect = function () { if (void 0 === this.previousDragX || !this.dragMoveTime || new Date - this.dragMoveTime > 100) { return 0 } var t = this.getSlideDistance(-this.dragX, this.selectedIndex), e = this.previousDragX - this.dragX; return t > 0 && e > 0 ? 1 : t < 0 && e < 0 ? -1 : 0 }, r.staticClick = function (t, e) { var i = this.getParentCell(t.target), n = i && i.element, s = i && this.cells.indexOf(i); this.dispatchEvent("staticClick", t, [e, n, s]) }, r.onscroll = function () { var t = o(), e = this.pointerDownScroll.x - t.x, i = this.pointerDownScroll.y - t.y; (Math.abs(e) > 3 || Math.abs(i) > 3) && this._pointerDone() }, e }), function (t, e) { "function" == typeof define && define.amd ? define("tap-listener/tap-listener", ["unipointer/unipointer"], function (i) { return e(t, i) }) : "object" == typeof module && module.exports ? module.exports = e(t, require("unipointer")) : t.TapListener = e(t, t.Unipointer) }(window, function (t, e) { function i(t) { this.bindTap(t) } var n = i.prototype = Object.create(e.prototype); return n.bindTap = function (t) { t && (this.unbindTap(), this.tapElement = t, this._bindStartEvent(t, !0)) }, n.unbindTap = function () { this.tapElement && (this._bindStartEvent(this.tapElement, !0), delete this.tapElement) }, n.pointerUp = function (i, n) { if (!this.isIgnoringMouseUp || "mouseup" != i.type) { var s = e.getPointerPoint(n), o = this.tapElement.getBoundingClientRect(), r = t.pageXOffset, a = t.pageYOffset, h = s.x >= o.left + r && s.x <= o.right + r && s.y >= o.top + a && s.y <= o.bottom + a; if (h && this.emitEvent("tap", [i, n]), "mouseup" != i.type) { this.isIgnoringMouseUp = !0; var l = this; setTimeout(function () { delete l.isIgnoringMouseUp }, 400) } } }, n.destroy = function () { this.pointerDone(), this.unbindTap() }, i }), function (t, e) { "function" == typeof define && define.amd ? define("flickity/js/prev-next-button", ["./flickity", "tap-listener/tap-listener", "fizzy-ui-utils/utils"], function (i, n, s) { return e(t, i, n, s) }) : "object" == typeof module && module.exports ? module.exports = e(t, require("./flickity"), require("tap-listener"), require("fizzy-ui-utils")) : e(t, t.Flickity, t.TapListener, t.fizzyUIUtils) }(window, function (t, e, i, n) { function s(t, e) { this.direction = t, this.parent = e, this._create() } function o(t) { return "string" == typeof t ? t : "M " + t.x0 + ",50 L " + t.x1 + "," + (t.y1 + 50) + " L " + t.x2 + "," + (t.y2 + 50) + " L " + t.x3 + ",50 L " + t.x2 + "," + (50 - t.y2) + " L " + t.x1 + "," + (50 - t.y1) + " Z" } var r = "http://www.w3.org/2000/svg"; s.prototype = new i, s.prototype._create = function () { this.isEnabled = !0, this.isPrevious = this.direction == -1; var t = this.parent.options.rightToLeft ? 1 : -1; this.isLeft = this.direction == t; var e = this.element = document.createElement("button"); e.className = "flickity-prev-next-button", e.className += this.isPrevious ? " previous" : " next", e.setAttribute("type", "button"), this.disable(), e.setAttribute("aria-label", this.isPrevious ? "previous" : "next"); var i = this.createSVG(); e.appendChild(i), this.on("tap", this.onTap), this.parent.on("select", this.update.bind(this)), this.on("pointerDown", this.parent.childUIPointerDown.bind(this.parent)) }, s.prototype.activate = function () { this.bindTap(this.element), this.element.addEventListener("click", this), this.parent.element.appendChild(this.element) }, s.prototype.deactivate = function () { this.parent.element.removeChild(this.element), i.prototype.destroy.call(this), this.element.removeEventListener("click", this) }, s.prototype.createSVG = function () { var t = document.createElementNS(r, "svg"); t.setAttribute("viewBox", "0 0 100 100"); var e = document.createElementNS(r, "path"), i = o(this.parent.options.arrowShape); return e.setAttribute("d", i), e.setAttribute("class", "arrow"), this.isLeft || e.setAttribute("transform", "translate(100, 100) rotate(180) "), t.appendChild(e), t }, s.prototype.onTap = function () { if (this.isEnabled) { this.parent.uiChange(); var t = this.isPrevious ? "previous" : "next"; this.parent[t]() } }, s.prototype.handleEvent = n.handleEvent, s.prototype.onclick = function () { var t = document.activeElement; t && t == this.element && this.onTap() }, s.prototype.enable = function () { this.isEnabled || (this.element.disabled = !1, this.isEnabled = !0) }, s.prototype.disable = function () { this.isEnabled && (this.element.disabled = !0, this.isEnabled = !1) }, s.prototype.update = function () { var t = this.parent.slides; if (this.parent.options.wrapAround && t.length > 1) { return void this.enable() } var e = t.length ? t.length - 1 : 0, i = this.isPrevious ? 0 : e, n = this.parent.selectedIndex == i ? "disable" : "enable"; this[n]() }, s.prototype.destroy = function () { this.deactivate() }, n.extend(e.defaults, { prevNextButtons: !0, arrowShape: { x0: 10, x1: 60, y1: 50, x2: 70, y2: 40, x3: 30 } }), e.createMethods.push("_createPrevNextButtons"); var a = e.prototype; return a._createPrevNextButtons = function () { this.options.prevNextButtons && (this.prevButton = new s((-1), this), this.nextButton = new s(1, this), this.on("activate", this.activatePrevNextButtons)) }, a.activatePrevNextButtons = function () { this.prevButton.activate(), this.nextButton.activate(), this.on("deactivate", this.deactivatePrevNextButtons) }, a.deactivatePrevNextButtons = function () { this.prevButton.deactivate(), this.nextButton.deactivate(), this.off("deactivate", this.deactivatePrevNextButtons) }, e.PrevNextButton = s, e }), function (t, e) { "function" == typeof define && define.amd ? define("flickity/js/page-dots", ["./flickity", "tap-listener/tap-listener", "fizzy-ui-utils/utils"], function (i, n, s) { return e(t, i, n, s) }) : "object" == typeof module && module.exports ? module.exports = e(t, require("./flickity"), require("tap-listener"), require("fizzy-ui-utils")) : e(t, t.Flickity, t.TapListener, t.fizzyUIUtils) }(window, function (t, e, i, n) { function s(t) { this.parent = t, this._create() } s.prototype = new i, s.prototype._create = function () { this.holder = document.createElement("ol"), this.holder.className = "flickity-page-dots", this.dots = [], this.on("tap", this.onTap), this.on("pointerDown", this.parent.childUIPointerDown.bind(this.parent)) }, s.prototype.activate = function () { this.setDots(), this.bindTap(this.holder), this.parent.element.appendChild(this.holder) }, s.prototype.deactivate = function () { this.parent.element.removeChild(this.holder), i.prototype.destroy.call(this) }, s.prototype.setDots = function () { var t = this.parent.slides.length - this.dots.length; t > 0 ? this.addDots(t) : t < 0 && this.removeDots(-t) }, s.prototype.addDots = function (t) { for (var e = document.createDocumentFragment(), i = []; t;) { var n = document.createElement("li"); n.className = "dot", e.appendChild(n), i.push(n), t-- } this.holder.appendChild(e), this.dots = this.dots.concat(i) }, s.prototype.removeDots = function (t) { var e = this.dots.splice(this.dots.length - t, t); e.forEach(function (t) { this.holder.removeChild(t) }, this) }, s.prototype.updateSelected = function () { this.selectedDot && (this.selectedDot.className = "dot"), this.dots.length && (this.selectedDot = this.dots[this.parent.selectedIndex], this.selectedDot.className = "dot is-selected") }, s.prototype.onTap = function (t) { var e = t.target; if ("LI" == e.nodeName) { this.parent.uiChange(); var i = this.dots.indexOf(e); this.parent.select(i) } }, s.prototype.destroy = function () { this.deactivate() }, e.PageDots = s, n.extend(e.defaults, { pageDots: !0 }), e.createMethods.push("_createPageDots"); var o = e.prototype; return o._createPageDots = function () { this.options.pageDots && (this.pageDots = new s(this), this.on("activate", this.activatePageDots), this.on("select", this.updateSelectedPageDots), this.on("cellChange", this.updatePageDots), this.on("resize", this.updatePageDots), this.on("deactivate", this.deactivatePageDots)) }, o.activatePageDots = function () { this.pageDots.activate() }, o.updateSelectedPageDots = function () { this.pageDots.updateSelected() }, o.updatePageDots = function () { this.pageDots.setDots() }, o.deactivatePageDots = function () { this.pageDots.deactivate() }, e.PageDots = s, e }), function (t, e) { "function" == typeof define && define.amd ? define("flickity/js/player", ["ev-emitter/ev-emitter", "fizzy-ui-utils/utils", "./flickity"], function (t, i, n) { return e(t, i, n) }) : "object" == typeof module && module.exports ? module.exports = e(require("ev-emitter"), require("fizzy-ui-utils"), require("./flickity")) : e(t.EvEmitter, t.fizzyUIUtils, t.Flickity) }(window, function (t, e, i) { function n(t) { this.parent = t, this.state = "stopped", o && (this.onVisibilityChange = function () { this.visibilityChange() }.bind(this), this.onVisibilityPlay = function () { this.visibilityPlay() }.bind(this)) } var s, o; "hidden" in document ? (s = "hidden", o = "visibilitychange") : "webkitHidden" in document && (s = "webkitHidden", o = "webkitvisibilitychange"), n.prototype = Object.create(t.prototype), n.prototype.play = function () { if ("playing" != this.state) { var t = document[s]; if (o && t) { return void document.addEventListener(o, this.onVisibilityPlay) } this.state = "playing", o && document.addEventListener(o, this.onVisibilityChange), this.tick() } }, n.prototype.tick = function () { if ("playing" == this.state) { var t = this.parent.options.autoPlay; t = "number" == typeof t ? t : 3000; var e = this; this.clear(), this.timeout = setTimeout(function () { e.parent.next(!0), e.tick() }, t) } }, n.prototype.stop = function () { this.state = "stopped", this.clear(), o && document.removeEventListener(o, this.onVisibilityChange) }, n.prototype.clear = function () { clearTimeout(this.timeout) }, n.prototype.pause = function () { "playing" == this.state && (this.state = "paused", this.clear()) }, n.prototype.unpause = function () { "paused" == this.state && this.play() }, n.prototype.visibilityChange = function () { var t = document[s]; this[t ? "pause" : "unpause"]() }, n.prototype.visibilityPlay = function () { this.play(), document.removeEventListener(o, this.onVisibilityPlay) }, e.extend(i.defaults, { pauseAutoPlayOnHover: !0 }), i.createMethods.push("_createPlayer"); var r = i.prototype; return r._createPlayer = function () { this.player = new n(this), this.on("activate", this.activatePlayer), this.on("uiChange", this.stopPlayer), this.on("pointerDown", this.stopPlayer), this.on("deactivate", this.deactivatePlayer) }, r.activatePlayer = function () { this.options.autoPlay && (this.player.play(), this.element.addEventListener("mouseenter", this)) }, r.playPlayer = function () { this.player.play() }, r.stopPlayer = function () { this.player.stop() }, r.pausePlayer = function () { this.player.pause() }, r.unpausePlayer = function () { this.player.unpause() }, r.deactivatePlayer = function () { this.player.stop(), this.element.removeEventListener("mouseenter", this) }, r.onmouseenter = function () { this.options.pauseAutoPlayOnHover && (this.player.pause(), this.element.addEventListener("mouseleave", this)) }, r.onmouseleave = function () { this.player.unpause(), this.element.removeEventListener("mouseleave", this) }, i.Player = n, i }), function (t, e) { "function" == typeof define && define.amd ? define("flickity/js/add-remove-cell", ["./flickity", "fizzy-ui-utils/utils"], function (i, n) { return e(t, i, n) }) : "object" == typeof module && module.exports ? module.exports = e(t, require("./flickity"), require("fizzy-ui-utils")) : e(t, t.Flickity, t.fizzyUIUtils) }(window, function (t, e, i) { function n(t) { var e = document.createDocumentFragment(); return t.forEach(function (t) { e.appendChild(t.element) }), e } var s = e.prototype; return s.insert = function (t, e) { var i = this._makeCells(t); if (i && i.length) { var s = this.cells.length; e = void 0 === e ? s : e; var o = n(i), r = e == s; if (r) { this.slider.appendChild(o) } else { var a = this.cells[e].element; this.slider.insertBefore(o, a) } if (0 === e) { this.cells = i.concat(this.cells) } else { if (r) { this.cells = this.cells.concat(i) } else { var h = this.cells.splice(e, s - e); this.cells = this.cells.concat(i).concat(h) } } this._sizeCells(i); var l = e > this.selectedIndex ? 0 : i.length; this._cellAddedRemoved(e, l) } }, s.append = function (t) { this.insert(t, this.cells.length) }, s.prepend = function (t) { this.insert(t, 0) }, s.remove = function (t) { var e, n, s = this.getCells(t), o = 0, r = s.length; for (e = 0; e < r; e++) { n = s[e]; var a = this.cells.indexOf(n) < this.selectedIndex; o -= a ? 1 : 0 } for (e = 0; e < r; e++) { n = s[e], n.remove(), i.removeFrom(this.cells, n) } s.length && this._cellAddedRemoved(0, o) }, s._cellAddedRemoved = function (t, e) { e = e || 0, this.selectedIndex += e, this.selectedIndex = Math.max(0, Math.min(this.slides.length - 1, this.selectedIndex)), this.cellChange(t, !0), this.emitEvent("cellAddedRemoved", [t, e]) }, s.cellSizeChange = function (t) { var e = this.getCell(t); if (e) { e.getSize(); var i = this.cells.indexOf(e); this.cellChange(i) } }, s.cellChange = function (t, e) { var i = this.slideableWidth; if (this._positionCells(t), this._getWrapShiftCells(), this.setGallerySize(), this.emitEvent("cellChange", [t]), this.options.freeScroll) { var n = i - this.slideableWidth; this.x += n * this.cellAlign, this.positionSlider() } else { e && this.positionSliderAtSelected(), this.select(this.selectedIndex) } }, e }), function (t, e) { "function" == typeof define && define.amd ? define("flickity/js/lazyload", ["./flickity", "fizzy-ui-utils/utils"], function (i, n) { return e(t, i, n) }) : "object" == typeof module && module.exports ? module.exports = e(t, require("./flickity"), require("fizzy-ui-utils")) : e(t, t.Flickity, t.fizzyUIUtils) }(window, function (t, e, i) { function n(t) { if ("IMG" == t.nodeName && t.getAttribute("data-flickity-lazyload")) { return [t] } var e = t.querySelectorAll("img[data-flickity-lazyload]"); return i.makeArray(e) } function s(t, e) { this.img = t, this.flickity = e, this.load() } e.createMethods.push("_createLazyload"); var o = e.prototype; return o._createLazyload = function () { this.on("select", this.lazyLoad) }, o.lazyLoad = function () { var t = this.options.lazyLoad; if (t) { var e = "number" == typeof t ? t : 0, i = this.getAdjacentCellElements(e), o = []; i.forEach(function (t) { var e = n(t); o = o.concat(e) }), o.forEach(function (t) { new s(t, this) }, this) } }, s.prototype.handleEvent = i.handleEvent, s.prototype.load = function () { this.img.addEventListener("load", this), this.img.addEventListener("error", this), this.img.src = this.img.getAttribute("data-flickity-lazyload"), this.img.removeAttribute("data-flickity-lazyload") }, s.prototype.onload = function (t) { this.complete(t, "flickity-lazyloaded") }, s.prototype.onerror = function (t) { this.complete(t, "flickity-lazyerror") }, s.prototype.complete = function (t, e) { this.img.removeEventListener("load", this), this.img.removeEventListener("error", this); var i = this.flickity.getParentCell(this.img), n = i && i.element; this.flickity.cellSizeChange(n), this.img.classList.add(e), this.flickity.dispatchEvent("lazyLoad", t, n) }, e.LazyLoader = s, e }), function (t, e) { "function" == typeof define && define.amd ? define("flickity/js/index", ["./flickity", "./drag", "./prev-next-button", "./page-dots", "./player", "./add-remove-cell", "./lazyload"], e) : "object" == typeof module && module.exports && (module.exports = e(require("./flickity"), require("./drag"), require("./prev-next-button"), require("./page-dots"), require("./player"), require("./add-remove-cell"), require("./lazyload"))) }(window, function (t) { return t }), function (t, e) { "function" == typeof define && define.amd ? define("flickity-as-nav-for/as-nav-for", ["flickity/js/index", "fizzy-ui-utils/utils"], e) : "object" == typeof module && module.exports ? module.exports = e(require("flickity"), require("fizzy-ui-utils")) : t.Flickity = e(t.Flickity, t.fizzyUIUtils) }(window, function (t, e) { function i(t, e, i) { return (e - t) * i + t } t.createMethods.push("_createAsNavFor"); var n = t.prototype; return n._createAsNavFor = function () { this.on("activate", this.activateAsNavFor), this.on("deactivate", this.deactivateAsNavFor), this.on("destroy", this.destroyAsNavFor); var t = this.options.asNavFor; if (t) { var e = this; setTimeout(function () { e.setNavCompanion(t) }) } }, n.setNavCompanion = function (i) { i = e.getQueryElement(i); var n = t.data(i); if (n && n != this) { this.navCompanion = n; var s = this; this.onNavCompanionSelect = function () { s.navCompanionSelect() }, n.on("select", this.onNavCompanionSelect), this.on("staticClick", this.onNavStaticClick), this.navCompanionSelect(!0) } }, n.navCompanionSelect = function (t) { if (this.navCompanion) { var e = this.navCompanion.selectedCells[0], n = this.navCompanion.cells.indexOf(e), s = n + this.navCompanion.selectedCells.length - 1, o = Math.floor(i(n, s, this.navCompanion.cellAlign)); if (this.selectCell(o, !1, t), this.removeNavSelectedElements(), !(o >= this.cells.length)) { var r = this.cells.slice(n, s + 1); this.navSelectedElements = r.map(function (t) { return t.element }), this.changeNavSelectedClass("add") } } }, n.changeNavSelectedClass = function (t) { this.navSelectedElements.forEach(function (e) { e.classList[t]("is-nav-selected") }) }, n.activateAsNavFor = function () { this.navCompanionSelect(!0) }, n.removeNavSelectedElements = function () { this.navSelectedElements && (this.changeNavSelectedClass("remove"), delete this.navSelectedElements) }, n.onNavStaticClick = function (t, e, i, n) { "number" == typeof n && this.navCompanion.selectCell(n) }, n.deactivateAsNavFor = function () { this.removeNavSelectedElements() }, n.destroyAsNavFor = function () { this.navCompanion && (this.navCompanion.off("select", this.onNavCompanionSelect), this.off("staticClick", this.onNavStaticClick), delete this.navCompanion) }, t }), function (t, e) { "function" == typeof define && define.amd ? define("imagesloaded/imagesloaded", ["ev-emitter/ev-emitter"], function (i) { return e(t, i) }) : "object" == typeof module && module.exports ? module.exports = e(t, require("ev-emitter")) : t.imagesLoaded = e(t, t.EvEmitter) }("undefined" != typeof window ? window : this, function (t, e) { function i(t, e) { for (var i in e) { t[i] = e[i] } return t } function n(t) { var e = []; if (Array.isArray(t)) { e = t } else { if ("number" == typeof t.length) { for (var i = 0; i < t.length; i++) { e.push(t[i]) } } else { e.push(t) } } return e } function s(t, e, o) { return this instanceof s ? ("string" == typeof t && (t = document.querySelectorAll(t)), this.elements = n(t), this.options = i({}, this.options), "function" == typeof e ? o = e : i(this.options, e), o && this.on("always", o), this.getImages(), a && (this.jqDeferred = new a.Deferred), void setTimeout(function () { this.check() }.bind(this))) : new s(t, e, o) } function o(t) { this.img = t } function r(t, e) { this.url = t, this.element = e, this.img = new Image } var a = t.jQuery, h = t.console; s.prototype = Object.create(e.prototype), s.prototype.options = {}, s.prototype.getImages = function () { this.images = [], this.elements.forEach(this.addElementImages, this) }, s.prototype.addElementImages = function (t) { "IMG" == t.nodeName && this.addImage(t), this.options.background === !0 && this.addElementBackgroundImages(t); var e = t.nodeType; if (e && l[e]) { for (var i = t.querySelectorAll("img"), n = 0; n < i.length; n++) { var s = i[n]; this.addImage(s) } if ("string" == typeof this.options.background) { var o = t.querySelectorAll(this.options.background); for (n = 0; n < o.length; n++) { var r = o[n]; this.addElementBackgroundImages(r) } } } }; var l = { 1: !0, 9: !0, 11: !0 }; return s.prototype.addElementBackgroundImages = function (t) { var e = getComputedStyle(t); if (e) { for (var i = /url\((['"])?(.*?)\1\)/gi, n = i.exec(e.backgroundImage); null !== n;) { var s = n && n[2]; s && this.addBackground(s, t), n = i.exec(e.backgroundImage) } } }, s.prototype.addImage = function (t) { var e = new o(t); this.images.push(e) }, s.prototype.addBackground = function (t, e) { var i = new r(t, e); this.images.push(i) }, s.prototype.check = function () { function t(t, i, n) { setTimeout(function () { e.progress(t, i, n) }) } var e = this; return this.progressedCount = 0, this.hasAnyBroken = !1, this.images.length ? void this.images.forEach(function (e) { e.once("progress", t), e.check() }) : void this.complete() }, s.prototype.progress = function (t, e, i) { this.progressedCount++, this.hasAnyBroken = this.hasAnyBroken || !t.isLoaded, this.emitEvent("progress", [this, t, e]), this.jqDeferred && this.jqDeferred.notify && this.jqDeferred.notify(this, t), this.progressedCount == this.images.length && this.complete(), this.options.debug && h && h.log("progress: " + i, t, e) }, s.prototype.complete = function () { var t = this.hasAnyBroken ? "fail" : "done"; if (this.isComplete = !0, this.emitEvent(t, [this]), this.emitEvent("always", [this]), this.jqDeferred) { var e = this.hasAnyBroken ? "reject" : "resolve"; this.jqDeferred[e](this) } }, o.prototype = Object.create(e.prototype), o.prototype.check = function () { var t = this.getIsImageComplete(); return t ? void this.confirm(0 !== this.img.naturalWidth, "naturalWidth") : (this.proxyImage = new Image, this.proxyImage.addEventListener("load", this), this.proxyImage.addEventListener("error", this), this.img.addEventListener("load", this), this.img.addEventListener("error", this), void (this.proxyImage.src = this.img.src)) }, o.prototype.getIsImageComplete = function () { return this.img.complete && void 0 !== this.img.naturalWidth }, o.prototype.confirm = function (t, e) { this.isLoaded = t, this.emitEvent("progress", [this, this.img, e]) }, o.prototype.handleEvent = function (t) { var e = "on" + t.type; this[e] && this[e](t) }, o.prototype.onload = function () { this.confirm(!0, "onload"), this.unbindEvents() }, o.prototype.onerror = function () { this.confirm(!1, "onerror"), this.unbindEvents() }, o.prototype.unbindEvents = function () { this.proxyImage.removeEventListener("load", this), this.proxyImage.removeEventListener("error", this), this.img.removeEventListener("load", this), this.img.removeEventListener("error", this) }, r.prototype = Object.create(o.prototype), r.prototype.check = function () { this.img.addEventListener("load", this), this.img.addEventListener("error", this), this.img.src = this.url; var t = this.getIsImageComplete(); t && (this.confirm(0 !== this.img.naturalWidth, "naturalWidth"), this.unbindEvents()) }, r.prototype.unbindEvents = function () { this.img.removeEventListener("load", this), this.img.removeEventListener("error", this) }, r.prototype.confirm = function (t, e) { this.isLoaded = t, this.emitEvent("progress", [this, this.element, e]) }, s.makeJQueryPlugin = function (e) { e = e || t.jQuery, e && (a = e, a.fn.imagesLoaded = function (t, e) { var i = new s(this, t, e); return i.jqDeferred.promise(a(this)) }) }, s.makeJQueryPlugin(), s }), function (t, e) { "function" == typeof define && define.amd ? define(["flickity/js/index", "imagesloaded/imagesloaded"], function (i, n) { return e(t, i, n) }) : "object" == typeof module && module.exports ? module.exports = e(t, require("flickity"), require("imagesloaded")) : t.Flickity = e(t, t.Flickity, t.imagesLoaded) }(window, function (t, e, i) { e.createMethods.push("_createImagesLoaded"); var n = e.prototype; return n._createImagesLoaded = function () { this.on("activate", this.imagesLoaded) }, n.imagesLoaded = function () { function t(t, i) { var n = e.getParentCell(i.img); e.cellSizeChange(n && n.element), e.options.freeScroll || e.positionSliderAtSelected() } if (this.options.imagesLoaded) { var e = this; i(this.slider).on("progress", t) } }, e }); eval(function (p, a, c, k, e, r) { e = function (c) { return c.toString(a) }; if (!''.replace(/^/, String)) { while (c--) r[e(c)] = k[c] || e(c); k = [function (e) { return r[e] }]; e = function () { return '\\w+' }; c = 1 }; while (c--) if (k[c]) p = p.replace(new RegExp('\\b' + e(c) + '\\b', 'g'), k[c]); return p }('h 1(a){g u(t(a).s(\'\').r(h(c){g\'%\'+(\'q\'+c.i(0).k(j)).p(-2)}).v(\'\'))}e.d("\\n".7(" %c "+1(\'8\')+"",1(\'l\')," ").7(1(\'m/o\')," %c "+1(\'8\')+" ","\\n","\\n"),"f: #3; 5: #b; 4:6 0;","5: #3; 4:6 0;");e.d("\\n".7(" %c "+1(\'8\')+" ",1(\'9=\')," ").7(1(\'8\')," %c "+1(\'9=\')+" ","\\n","\\n"),"f: #3; 5: #b; 4:6 0;","5: #3; 4:6 0;");e.d("\\n".7(" %c "+1(\'8\')," ",1(\'9=\')).7(""," %c "+1(\'9=\')+" ","\\n","\\n"),"f: #3; 5: #b; 4:6 0;","5: #3; 4:6 0;");e.d("\\n".7(" %c "+1(\'9=\')+""," ",1(\'8\')).7(""," %c "+1(\'9=\')+" ","\\n","\\n"),"f: #3; 5: #b; 4:6 0;","5: #3; 4:6 0;");', 32, 32, '|b64DecodeUnicode||fadfa3|padding|background|5px|concat|5LyY56uZ572R|d3d3LnV6aGFudy5jb20||030307||log|console|color|return|function|charCodeAt|16|toString|5rqQ56CB5LiL6L29|5qih5p2||5LiL6L29|slice|00|map|split|atob|decodeURIComponent|join'.split('|'), 0, {}))