/*!jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license*/ 
! function(e, t) {
	"use strict";
	"object" == typeof module && "object" == typeof module.exports ? module.exports = e.document ? t(e, !0) : function(e) {
		if (!e.document) throw new Error("jQuery requires a window with a document");
		return t(e)
	} : t(e)
}("undefined" != typeof window ? window : this, function(C, e) {
	"use strict";
	var t = [],
		r = Object.getPrototypeOf,
		s = t.slice,
		g = t.flat ? function(e) {
			return t.flat.call(e)
		} : function(e) {
			return t.concat.apply([], e)
		},
		u = t.push,
		i = t.indexOf,
		n = {},
		o = n.toString,
		v = n.hasOwnProperty,
		a = v.toString,
		l = a.call(Object),
		y = {},
		m = function(e) {
			return "function" == typeof e && "number" != typeof e.nodeType && "function" != typeof e.item
		},
		x = function(e) {
			return null != e && e === e.window
		},
		E = C.document,
		c = {
			type: !0,
			src: !0,
			nonce: !0,
			noModule: !0
		};

	function b(e, t, n) {
		var r, i, o = (n = n || E).createElement("script");
		if (o.text = e, t)
			for (r in c)(i = t[r] || t.getAttribute && t.getAttribute(r)) && o.setAttribute(r, i);
		n.head.appendChild(o).parentNode.removeChild(o)
	}

	function w(e) {
		return null == e ? e + "" : "object" == typeof e || "function" == typeof e ? n[o.call(e)] || "object" : typeof e
	}
	var f = "3.6.0",
		S = function(e, t) {
			return new S.fn.init(e, t)
		};

	function p(e) {
		var t = !!e && "length" in e && e.length,
			n = w(e);
		return !m(e) && !x(e) && ("array" === n || 0 === t || "number" == typeof t && 0 < t && t - 1 in e)
	}
	S.fn = S.prototype = {
		jquery: f,
		constructor: S,
		length: 0,
		toArray: function() {
			return s.call(this)
		},
		get: function(e) {
			return null == e ? s.call(this) : e < 0 ? this[e + this.length] : this[e]
		},
		pushStack: function(e) {
			var t = S.merge(this.constructor(), e);
			return t.prevObject = this, t
		},
		each: function(e) {
			return S.each(this, e)
		},
		map: function(n) {
			return this.pushStack(S.map(this, function(e, t) {
				return n.call(e, t, e)
			}))
		},
		slice: function() {
			return this.pushStack(s.apply(this, arguments))
		},
		first: function() {
			return this.eq(0)
		},
		last: function() {
			return this.eq(-1)
		},
		even: function() {
			return this.pushStack(S.grep(this, function(e, t) {
				return (t + 1) % 2
			}))
		},
		odd: function() {
			return this.pushStack(S.grep(this, function(e, t) {
				return t % 2
			}))
		},
		eq: function(e) {
			var t = this.length,
				n = +e + (e < 0 ? t : 0);
			return this.pushStack(0 <= n && n < t ? [this[n]] : [])
		},
		end: function() {
			return this.prevObject || this.constructor()
		},
		push: u,
		sort: t.sort,
		splice: t.splice
	}, S.extend = S.fn.extend = function() {
		var e, t, n, r, i, o, a = arguments[0] || {},
			s = 1,
			u = arguments.length,
			l = !1;
		for ("boolean" == typeof a && (l = a, a = arguments[s] || {}, s++), "object" == typeof a || m(a) || (a = {}), s === u && (a = this, s--); s < u; s++)
			if (null != (e = arguments[s]))
				for (t in e) r = e[t], "__proto__" !== t && a !== r && (l && r && (S.isPlainObject(r) || (i = Array.isArray(r))) ? (n = a[t], o = i && !Array.isArray(n) ? [] : i || S.isPlainObject(n) ? n : {}, i = !1, a[t] = S.extend(l, o, r)) : void 0 !== r && (a[t] = r));
		return a
	}, S.extend({
		expando: "jQuery" + (f + Math.random()).replace(/\D/g, ""),
		isReady: !0,
		error: function(e) {
			throw new Error(e)
		},
		noop: function() {},
		isPlainObject: function(e) {
			var t, n;
			return !(!e || "[object Object]" !== o.call(e)) && (!(t = r(e)) || "function" == typeof(n = v.call(t, "constructor") && t.constructor) && a.call(n) === l)
		},
		isEmptyObject: function(e) {
			var t;
			for (t in e) return !1;
			return !0
		},
		globalEval: function(e, t, n) {
			b(e, {
				nonce: t && t.nonce
			}, n)
		},
		each: function(e, t) {
			var n, r = 0;
			if (p(e)) {
				for (n = e.length; r < n; r++)
					if (!1 === t.call(e[r], r, e[r])) break
			} else
				for (r in e)
					if (!1 === t.call(e[r], r, e[r])) break;
			return e
		},
		makeArray: function(e, t) {
			var n = t || [];
			return null != e && (p(Object(e)) ? S.merge(n, "string" == typeof e ? [e] : e) : u.call(n, e)), n
		},
		inArray: function(e, t, n) {
			return null == t ? -1 : i.call(t, e, n)
		},
		merge: function(e, t) {
			for (var n = +t.length, r = 0, i = e.length; r < n; r++) e[i++] = t[r];
			return e.length = i, e
		},
		grep: function(e, t, n) {
			for (var r = [], i = 0, o = e.length, a = !n; i < o; i++) !t(e[i], i) !== a && r.push(e[i]);
			return r
		},
		map: function(e, t, n) {
			var r, i, o = 0,
				a = [];
			if (p(e))
				for (r = e.length; o < r; o++) null != (i = t(e[o], o, n)) && a.push(i);
			else
				for (o in e) null != (i = t(e[o], o, n)) && a.push(i);
			return g(a)
		},
		guid: 1,
		support: y
	}), "function" == typeof Symbol && (S.fn[Symbol.iterator] = t[Symbol.iterator]), S.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), function(e, t) {
		n["[object " + t + "]"] = t.toLowerCase()
	});
	var d = function(n) {
		var e, d, b, o, i, h, f, g, w, u, l, T, C, a, E, v, s, c, y, S = "sizzle" + 1 * new Date,
			p = n.document,
			k = 0,
			r = 0,
			m = ue(),
			x = ue(),
			A = ue(),
			N = ue(),
			j = function(e, t) {
				return e === t && (l = !0), 0
			},
			D = {}.hasOwnProperty,
			t = [],
			q = t.pop,
			L = t.push,
			H = t.push,
			O = t.slice,
			P = function(e, t) {
				for (var n = 0, r = e.length; n < r; n++)
					if (e[n] === t) return n;
				return -1
			},
			R = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
			M = "[\\x20\\t\\r\\n\\f]",
			I = "(?:\\\\[\\da-fA-F]{1,6}" + M + "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",
			W = "\\[" + M + "*(" + I + ")(?:" + M + "*([*^$|!~]?=)" + M + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + I + "))|)" + M + "*\\]",
			F = ":(" + I + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + W + ")*)|.*)\\)|)",
			B = new RegExp(M + "+", "g"),
			$ = new RegExp("^" + M + "+|((?:^|[^\\\\])(?:\\\\.)*)" + M + "+$", "g"),
			_ = new RegExp("^" + M + "*," + M + "*"),
			z = new RegExp("^" + M + "*([>+~]|" + M + ")" + M + "*"),
			U = new RegExp(M + "|>"),
			X = new RegExp(F),
			V = new RegExp("^" + I + "$"),
			G = {
				ID: new RegExp("^#(" + I + ")"),
				CLASS: new RegExp("^\\.(" + I + ")"),
				TAG: new RegExp("^(" + I + "|[*])"),
				ATTR: new RegExp("^" + W),
				PSEUDO: new RegExp("^" + F),
				CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + M + "*(even|odd|(([+-]|)(\\d*)n|)" + M + "*(?:([+-]|)" + M + "*(\\d+)|))" + M + "*\\)|)", "i"),
				bool: new RegExp("^(?:" + R + ")$", "i"),
				needsContext: new RegExp("^" + M + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + M + "*((?:-\\d)?\\d*)" + M + "*\\)|)(?=[^-]|$)", "i")
			},
			Y = /HTML$/i,
			Q = /^(?:input|select|textarea|button)$/i,
			J = /^h\d$/i,
			K = /^[^{]+\{\s*\[native \w/,
			Z = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
			ee = /[+~]/,
			te = new RegExp("\\\\[\\da-fA-F]{1,6}" + M + "?|\\\\([^\\r\\n\\f])", "g"),
			ne = function(e, t) {
				var n = "0x" + e.slice(1) - 65536;
				return t || (n < 0 ? String.fromCharCode(n + 65536) : String.fromCharCode(n >> 10 | 55296, 1023 & n | 56320))
			},
			re = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,
			ie = function(e, t) {
				return t ? "\0" === e ? "\ufffd" : e.slice(0, -1) + "\\" + e.charCodeAt(e.length - 1).toString(16) + " " : "\\" + e
			},
			oe = function() {
				T()
			},
			ae = be(function(e) {
				return !0 === e.disabled && "fieldset" === e.nodeName.toLowerCase()
			}, {
				dir: "parentNode",
				next: "legend"
			});
		try {
			H.apply(t = O.call(p.childNodes), p.childNodes), t[p.childNodes.length].nodeType
		} catch (e) {
			H = {
				apply: t.length ? function(e, t) {
					L.apply(e, O.call(t))
				} : function(e, t) {
					var n = e.length,
						r = 0;
					while (e[n++] = t[r++]);
					e.length = n - 1
				}
			}
		}

		function se(t, e, n, r) {
			var i, o, a, s, u, l, c, f = e && e.ownerDocument,
				p = e ? e.nodeType : 9;
			if (n = n || [], "string" != typeof t || !t || 1 !== p && 9 !== p && 11 !== p) return n;
			if (!r && (T(e), e = e || C, E)) {
				if (11 !== p && (u = Z.exec(t)))
					if (i = u[1]) {
						if (9 === p) {
							if (!(a = e.getElementById(i))) return n;
							if (a.id === i) return n.push(a), n
						} else if (f && (a = f.getElementById(i)) && y(e, a) && a.id === i) return n.push(a), n
					} else {
						if (u[2]) return H.apply(n, e.getElementsByTagName(t)), n;
						if ((i = u[3]) && d.getElementsByClassName && e.getElementsByClassName) return H.apply(n, e.getElementsByClassName(i)), n
					} if (d.qsa && !N[t + " "] && (!v || !v.test(t)) && (1 !== p || "object" !== e.nodeName.toLowerCase())) {
					if (c = t, f = e, 1 === p && (U.test(t) || z.test(t))) {
						(f = ee.test(t) && ye(e.parentNode) || e) === e && d.scope || ((s = e.getAttribute("id")) ? s = s.replace(re, ie) : e.setAttribute("id", s = S)), o = (l = h(t)).length;
						while (o--) l[o] = (s ? "#" + s : ":scope") + " " + xe(l[o]);
						c = l.join(",")
					}
					try {
						return H.apply(n, f.querySelectorAll(c)), n
					} catch (e) {
						N(t, !0)
					} finally {
						s === S && e.removeAttribute("id")
					}
				}
			}
			return g(t.replace($, "$1"), e, n, r)
		}

		function ue() {
			var r = [];
			return function e(t, n) {
				return r.push(t + " ") > b.cacheLength && delete e[r.shift()], e[t + " "] = n
			}
		}

		function le(e) {
			return e[S] = !0, e
		}

		function ce(e) {
			var t = C.createElement("fieldset");
			try {
				return !!e(t)
			} catch (e) {
				return !1
			} finally {
				t.parentNode && t.parentNode.removeChild(t), t = null
			}
		}

		function fe(e, t) {
			var n = e.split("|"),
				r = n.length;
			while (r--) b.attrHandle[n[r]] = t
		}

		function pe(e, t) {
			var n = t && e,
				r = n && 1 === e.nodeType && 1 === t.nodeType && e.sourceIndex - t.sourceIndex;
			if (r) return r;
			if (n)
				while (n = n.nextSibling)
					if (n === t) return -1;
			return e ? 1 : -1
		}

		function de(t) {
			return function(e) {
				return "input" === e.nodeName.toLowerCase() && e.type === t
			}
		}

		function he(n) {
			return function(e) {
				var t = e.nodeName.toLowerCase();
				return ("input" === t || "button" === t) && e.type === n
			}
		}

		function ge(t) {
			return function(e) {
				return "form" in e ? e.parentNode && !1 === e.disabled ? "label" in e ? "label" in e.parentNode ? e.parentNode.disabled === t : e.disabled === t : e.isDisabled === t || e.isDisabled !== !t && ae(e) === t : e.disabled === t : "label" in e && e.disabled === t
			}
		}

		function ve(a) {
			return le(function(o) {
				return o = +o, le(function(e, t) {
					var n, r = a([], e.length, o),
						i = r.length;
					while (i--) e[n = r[i]] && (e[n] = !(t[n] = e[n]))
				})
			})
		}

		function ye(e) {
			return e && "undefined" != typeof e.getElementsByTagName && e
		}
		for (e in d = se.support = {}, i = se.isXML = function(e) {
				var t = e && e.namespaceURI,
					n = e && (e.ownerDocument || e).documentElement;
				return !Y.test(t || n && n.nodeName || "HTML")
			}, T = se.setDocument = function(e) {
				var t, n, r = e ? e.ownerDocument || e : p;
				return r != C && 9 === r.nodeType && r.documentElement && (a = (C = r).documentElement, E = !i(C), p != C && (n = C.defaultView) && n.top !== n && (n.addEventListener ? n.addEventListener("unload", oe, !1) : n.attachEvent && n.attachEvent("onunload", oe)), d.scope = ce(function(e) {
					return a.appendChild(e).appendChild(C.createElement("div")), "undefined" != typeof e.querySelectorAll && !e.querySelectorAll(":scope fieldset div").length
				}), d.attributes = ce(function(e) {
					return e.className = "i", !e.getAttribute("className")
				}), d.getElementsByTagName = ce(function(e) {
					return e.appendChild(C.createComment("")), !e.getElementsByTagName("*").length
				}), d.getElementsByClassName = K.test(C.getElementsByClassName), d.getById = ce(function(e) {
					return a.appendChild(e).id = S, !C.getElementsByName || !C.getElementsByName(S).length
				}), d.getById ? (b.filter.ID = function(e) {
					var t = e.replace(te, ne);
					return function(e) {
						return e.getAttribute("id") === t
					}
				}, b.find.ID = function(e, t) {
					if ("undefined" != typeof t.getElementById && E) {
						var n = t.getElementById(e);
						return n ? [n] : []
					}
				}) : (b.filter.ID = function(e) {
					var n = e.replace(te, ne);
					return function(e) {
						var t = "undefined" != typeof e.getAttributeNode && e.getAttributeNode("id");
						return t && t.value === n
					}
				}, b.find.ID = function(e, t) {
					if ("undefined" != typeof t.getElementById && E) {
						var n, r, i, o = t.getElementById(e);
						if (o) {
							if ((n = o.getAttributeNode("id")) && n.value === e) return [o];
							i = t.getElementsByName(e), r = 0;
							while (o = i[r++])
								if ((n = o.getAttributeNode("id")) && n.value === e) return [o]
						}
						return []
					}
				}), b.find.TAG = d.getElementsByTagName ? function(e, t) {
					return "undefined" != typeof t.getElementsByTagName ? t.getElementsByTagName(e) : d.qsa ? t.querySelectorAll(e) : void 0
				} : function(e, t) {
					var n, r = [],
						i = 0,
						o = t.getElementsByTagName(e);
					if ("*" === e) {
						while (n = o[i++]) 1 === n.nodeType && r.push(n);
						return r
					}
					return o
				}, b.find.CLASS = d.getElementsByClassName && function(e, t) {
					if ("undefined" != typeof t.getElementsByClassName && E) return t.getElementsByClassName(e)
				}, s = [], v = [], (d.qsa = K.test(C.querySelectorAll)) && (ce(function(e) {
					var t;
					a.appendChild(e).innerHTML = "<a id='" + S + "'></a><select id='" + S + "-\r\\' msallowcapture=''><option selected=''></option></select>", e.querySelectorAll("[msallowcapture^='']").length && v.push("[*^$]=" + M + "*(?:''|\"\")"), e.querySelectorAll("[selected]").length || v.push("\\[" + M + "*(?:value|" + R + ")"), e.querySelectorAll("[id~=" + S + "-]").length || v.push("~="), (t = C.createElement("input")).setAttribute("name", ""), e.appendChild(t), e.querySelectorAll("[name='']").length || v.push("\\[" + M + "*name" + M + "*=" + M + "*(?:''|\"\")"), e.querySelectorAll(":checked").length || v.push(":checked"), e.querySelectorAll("a#" + S + "+*").length || v.push(".#.+[+~]"), e.querySelectorAll("\\\f"), v.push("[\\r\\n\\f]")
				}), ce(function(e) {
					e.innerHTML = "<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";
					var t = C.createElement("input");
					t.setAttribute("type", "hidden"), e.appendChild(t).setAttribute("name", "D"), e.querySelectorAll("[name=d]").length && v.push("name" + M + "*[*^$|!~]?="), 2 !== e.querySelectorAll(":enabled").length && v.push(":enabled", ":disabled"), a.appendChild(e).disabled = !0, 2 !== e.querySelectorAll(":disabled").length && v.push(":enabled", ":disabled"), e.querySelectorAll("*,:x"), v.push(",.*:")
				})), (d.matchesSelector = K.test(c = a.matches || a.webkitMatchesSelector || a.mozMatchesSelector || a.oMatchesSelector || a.msMatchesSelector)) && ce(function(e) {
					d.disconnectedMatch = c.call(e, "*"), c.call(e, "[s!='']:x"), s.push("!=", F)
				}), v = v.length && new RegExp(v.join("|")), s = s.length && new RegExp(s.join("|")), t = K.test(a.compareDocumentPosition), y = t || K.test(a.contains) ? function(e, t) {
					var n = 9 === e.nodeType ? e.documentElement : e,
						r = t && t.parentNode;
					return e === r || !(!r || 1 !== r.nodeType || !(n.contains ? n.contains(r) : e.compareDocumentPosition && 16 & e.compareDocumentPosition(r)))
				} : function(e, t) {
					if (t)
						while (t = t.parentNode)
							if (t === e) return !0;
					return !1
				}, j = t ? function(e, t) {
					if (e === t) return l = !0, 0;
					var n = !e.compareDocumentPosition - !t.compareDocumentPosition;
					return n || (1 & (n = (e.ownerDocument || e) == (t.ownerDocument || t) ? e.compareDocumentPosition(t) : 1) || !d.sortDetached && t.compareDocumentPosition(e) === n ? e == C || e.ownerDocument == p && y(p, e) ? -1 : t == C || t.ownerDocument == p && y(p, t) ? 1 : u ? P(u, e) - P(u, t) : 0 : 4 & n ? -1 : 1)
				} : function(e, t) {
					if (e === t) return l = !0, 0;
					var n, r = 0,
						i = e.parentNode,
						o = t.parentNode,
						a = [e],
						s = [t];
					if (!i || !o) return e == C ? -1 : t == C ? 1 : i ? -1 : o ? 1 : u ? P(u, e) - P(u, t) : 0;
					if (i === o) return pe(e, t);
					n = e;
					while (n = n.parentNode) a.unshift(n);
					n = t;
					while (n = n.parentNode) s.unshift(n);
					while (a[r] === s[r]) r++;
					return r ? pe(a[r], s[r]) : a[r] == p ? -1 : s[r] == p ? 1 : 0
				}), C
			}, se.matches = function(e, t) {
				return se(e, null, null, t)
			}, se.matchesSelector = function(e, t) {
				if (T(e), d.matchesSelector && E && !N[t + " "] && (!s || !s.test(t)) && (!v || !v.test(t))) try {
					var n = c.call(e, t);
					if (n || d.disconnectedMatch || e.document && 11 !== e.document.nodeType) return n
				} catch (e) {
					N(t, !0)
				}
				return 0 < se(t, C, null, [e]).length
			}, se.contains = function(e, t) {
				return (e.ownerDocument || e) != C && T(e), y(e, t)
			}, se.attr = function(e, t) {
				(e.ownerDocument || e) != C && T(e);
				var n = b.attrHandle[t.toLowerCase()],
					r = n && D.call(b.attrHandle, t.toLowerCase()) ? n(e, t, !E) : void 0;
				return void 0 !== r ? r : d.attributes || !E ? e.getAttribute(t) : (r = e.getAttributeNode(t)) && r.specified ? r.value : null
			}, se.escape = function(e) {
				return (e + "").replace(re, ie)
			}, se.error = function(e) {
				throw new Error("Syntax error, unrecognized expression: " + e)
			}, se.uniqueSort = function(e) {
				var t, n = [],
					r = 0,
					i = 0;
				if (l = !d.detectDuplicates, u = !d.sortStable && e.slice(0), e.sort(j), l) {
					while (t = e[i++]) t === e[i] && (r = n.push(i));
					while (r--) e.splice(n[r], 1)
				}
				return u = null, e
			}, o = se.getText = function(e) {
				var t, n = "",
					r = 0,
					i = e.nodeType;
				if (i) {
					if (1 === i || 9 === i || 11 === i) {
						if ("string" == typeof e.textContent) return e.textContent;
						for (e = e.firstChild; e; e = e.nextSibling) n += o(e)
					} else if (3 === i || 4 === i) return e.nodeValue
				} else
					while (t = e[r++]) n += o(t);
				return n
			}, (b = se.selectors = {
				cacheLength: 50,
				createPseudo: le,
				match: G,
				attrHandle: {},
				find: {},
				relative: {
					">": {
						dir: "parentNode",
						first: !0
					},
					" ": {
						dir: "parentNode"
					},
					"+": {
						dir: "previousSibling",
						first: !0
					},
					"~": {
						dir: "previousSibling"
					}
				},
				preFilter: {
					ATTR: function(e) {
						return e[1] = e[1].replace(te, ne), e[3] = (e[3] || e[4] || e[5] || "").replace(te, ne), "~=" === e[2] && (e[3] = " " + e[3] + " "), e.slice(0, 4)
					},
					CHILD: function(e) {
						return e[1] = e[1].toLowerCase(), "nth" === e[1].slice(0, 3) ? (e[3] || se.error(e[0]), e[4] = +(e[4] ? e[5] + (e[6] || 1) : 2 * ("even" === e[3] || "odd" === e[3])), e[5] = +(e[7] + e[8] || "odd" === e[3])) : e[3] && se.error(e[0]), e
					},
					PSEUDO: function(e) {
						var t, n = !e[6] && e[2];
						return G.CHILD.test(e[0]) ? null : (e[3] ? e[2] = e[4] || e[5] || "" : n && X.test(n) && (t = h(n, !0)) && (t = n.indexOf(")", n.length - t) - n.length) && (e[0] = e[0].slice(0, t), e[2] = n.slice(0, t)), e.slice(0, 3))
					}
				},
				filter: {
					TAG: function(e) {
						var t = e.replace(te, ne).toLowerCase();
						return "*" === e ? function() {
							return !0
						} : function(e) {
							return e.nodeName && e.nodeName.toLowerCase() === t
						}
					},
					CLASS: function(e) {
						var t = m[e + " "];
						return t || (t = new RegExp("(^|" + M + ")" + e + "(" + M + "|$)")) && m(e, function(e) {
							return t.test("string" == typeof e.className && e.className || "undefined" != typeof e.getAttribute && e.getAttribute("class") || "")
						})
					},
					ATTR: function(n, r, i) {
						return function(e) {
							var t = se.attr(e, n);
							return null == t ? "!=" === r : !r || (t += "", "=" === r ? t === i : "!=" === r ? t !== i : "^=" === r ? i && 0 === t.indexOf(i) : "*=" === r ? i && -1 < t.indexOf(i) : "$=" === r ? i && t.slice(-i.length) === i : "~=" === r ? -1 < (" " + t.replace(B, " ") + " ").indexOf(i) : "|=" === r && (t === i || t.slice(0, i.length + 1) === i + "-"))
						}
					},
					CHILD: function(h, e, t, g, v) {
						var y = "nth" !== h.slice(0, 3),
							m = "last" !== h.slice(-4),
							x = "of-type" === e;
						return 1 === g && 0 === v ? function(e) {
							return !!e.parentNode
						} : function(e, t, n) {
							var r, i, o, a, s, u, l = y !== m ? "nextSibling" : "previousSibling",
								c = e.parentNode,
								f = x && e.nodeName.toLowerCase(),
								p = !n && !x,
								d = !1;
							if (c) {
								if (y) {
									while (l) {
										a = e;
										while (a = a[l])
											if (x ? a.nodeName.toLowerCase() === f : 1 === a.nodeType) return !1;
										u = l = "only" === h && !u && "nextSibling"
									}
									return !0
								}
								if (u = [m ? c.firstChild : c.lastChild], m && p) {
									d = (s = (r = (i = (o = (a = c)[S] || (a[S] = {}))[a.uniqueID] || (o[a.uniqueID] = {}))[h] || [])[0] === k && r[1]) && r[2], a = s && c.childNodes[s];
									while (a = ++s && a && a[l] || (d = s = 0) || u.pop())
										if (1 === a.nodeType && ++d && a === e) {
											i[h] = [k, s, d];
											break
										}
								} else if (p && (d = s = (r = (i = (o = (a = e)[S] || (a[S] = {}))[a.uniqueID] || (o[a.uniqueID] = {}))[h] || [])[0] === k && r[1]), !1 === d)
									while (a = ++s && a && a[l] || (d = s = 0) || u.pop())
										if ((x ? a.nodeName.toLowerCase() === f : 1 === a.nodeType) && ++d && (p && ((i = (o = a[S] || (a[S] = {}))[a.uniqueID] || (o[a.uniqueID] = {}))[h] = [k, d]), a === e)) break;
								return (d -= v) === g || d % g == 0 && 0 <= d / g
							}
						}
					},
					PSEUDO: function(e, o) {
						var t, a = b.pseudos[e] || b.setFilters[e.toLowerCase()] || se.error("unsupported pseudo: " + e);
						return a[S] ? a(o) : 1 < a.length ? (t = [e, e, "", o], b.setFilters.hasOwnProperty(e.toLowerCase()) ? le(function(e, t) {
							var n, r = a(e, o),
								i = r.length;
							while (i--) e[n = P(e, r[i])] = !(t[n] = r[i])
						}) : function(e) {
							return a(e, 0, t)
						}) : a
					}
				},
				pseudos: {
					not: le(function(e) {
						var r = [],
							i = [],
							s = f(e.replace($, "$1"));
						return s[S] ? le(function(e, t, n, r) {
							var i, o = s(e, null, r, []),
								a = e.length;
							while (a--)(i = o[a]) && (e[a] = !(t[a] = i))
						}) : function(e, t, n) {
							return r[0] = e, s(r, null, n, i), r[0] = null, !i.pop()
						}
					}),
					has: le(function(t) {
						return function(e) {
							return 0 < se(t, e).length
						}
					}),
					contains: le(function(t) {
						return t = t.replace(te, ne),
							function(e) {
								return -1 < (e.textContent || o(e)).indexOf(t)
							}
					}),
					lang: le(function(n) {
						return V.test(n || "") || se.error("unsupported lang: " + n), n = n.replace(te, ne).toLowerCase(),
							function(e) {
								var t;
								do {
									if (t = E ? e.lang : e.getAttribute("xml:lang") || e.getAttribute("lang")) return (t = t.toLowerCase()) === n || 0 === t.indexOf(n + "-")
								} while ((e = e.parentNode) && 1 === e.nodeType);
								return !1
							}
					}),
					target: function(e) {
						var t = n.location && n.location.hash;
						return t && t.slice(1) === e.id
					},
					root: function(e) {
						return e === a
					},
					focus: function(e) {
						return e === C.activeElement && (!C.hasFocus || C.hasFocus()) && !!(e.type || e.href || ~e.tabIndex)
					},
					enabled: ge(!1),
					disabled: ge(!0),
					checked: function(e) {
						var t = e.nodeName.toLowerCase();
						return "input" === t && !!e.checked || "option" === t && !!e.selected
					},
					selected: function(e) {
						return e.parentNode && e.parentNode.selectedIndex, !0 === e.selected
					},
					empty: function(e) {
						for (e = e.firstChild; e; e = e.nextSibling)
							if (e.nodeType < 6) return !1;
						return !0
					},
					parent: function(e) {
						return !b.pseudos.empty(e)
					},
					header: function(e) {
						return J.test(e.nodeName)
					},
					input: function(e) {
						return Q.test(e.nodeName)
					},
					button: function(e) {
						var t = e.nodeName.toLowerCase();
						return "input" === t && "button" === e.type || "button" === t
					},
					text: function(e) {
						var t;
						return "input" === e.nodeName.toLowerCase() && "text" === e.type && (null == (t = e.getAttribute("type")) || "text" === t.toLowerCase())
					},
					first: ve(function() {
						return [0]
					}),
					last: ve(function(e, t) {
						return [t - 1]
					}),
					eq: ve(function(e, t, n) {
						return [n < 0 ? n + t : n]
					}),
					even: ve(function(e, t) {
						for (var n = 0; n < t; n += 2) e.push(n);
						return e
					}),
					odd: ve(function(e, t) {
						for (var n = 1; n < t; n += 2) e.push(n);
						return e
					}),
					lt: ve(function(e, t, n) {
						for (var r = n < 0 ? n + t : t < n ? t : n; 0 <= --r;) e.push(r);
						return e
					}),
					gt: ve(function(e, t, n) {
						for (var r = n < 0 ? n + t : n; ++r < t;) e.push(r);
						return e
					})
				}
			}).pseudos.nth = b.pseudos.eq, {
				radio: !0,
				checkbox: !0,
				file: !0,
				password: !0,
				image: !0
			}) b.pseudos[e] = de(e);
		for (e in {
				submit: !0,
				reset: !0
			}) b.pseudos[e] = he(e);

		function me() {}

		function xe(e) {
			for (var t = 0, n = e.length, r = ""; t < n; t++) r += e[t].value;
			return r
		}

		function be(s, e, t) {
			var u = e.dir,
				l = e.next,
				c = l || u,
				f = t && "parentNode" === c,
				p = r++;
			return e.first ? function(e, t, n) {
				while (e = e[u])
					if (1 === e.nodeType || f) return s(e, t, n);
				return !1
			} : function(e, t, n) {
				var r, i, o, a = [k, p];
				if (n) {
					while (e = e[u])
						if ((1 === e.nodeType || f) && s(e, t, n)) return !0
				} else
					while (e = e[u])
						if (1 === e.nodeType || f)
							if (i = (o = e[S] || (e[S] = {}))[e.uniqueID] || (o[e.uniqueID] = {}), l && l === e.nodeName.toLowerCase()) e = e[u] || e;
							else {
								if ((r = i[c]) && r[0] === k && r[1] === p) return a[2] = r[2];
								if ((i[c] = a)[2] = s(e, t, n)) return !0
							} return !1
			}
		}

		function we(i) {
			return 1 < i.length ? function(e, t, n) {
				var r = i.length;
				while (r--)
					if (!i[r](e, t, n)) return !1;
				return !0
			} : i[0]
		}

		function Te(e, t, n, r, i) {
			for (var o, a = [], s = 0, u = e.length, l = null != t; s < u; s++)(o = e[s]) && (n && !n(o, r, i) || (a.push(o), l && t.push(s)));
			return a
		}

		function Ce(d, h, g, v, y, e) {
			return v && !v[S] && (v = Ce(v)), y && !y[S] && (y = Ce(y, e)), le(function(e, t, n, r) {
				var i, o, a, s = [],
					u = [],
					l = t.length,
					c = e || function(e, t, n) {
						for (var r = 0, i = t.length; r < i; r++) se(e, t[r], n);
						return n
					}(h || "*", n.nodeType ? [n] : n, []),
					f = !d || !e && h ? c : Te(c, s, d, n, r),
					p = g ? y || (e ? d : l || v) ? [] : t : f;
				if (g && g(f, p, n, r), v) {
					i = Te(p, u), v(i, [], n, r), o = i.length;
					while (o--)(a = i[o]) && (p[u[o]] = !(f[u[o]] = a))
				}
				if (e) {
					if (y || d) {
						if (y) {
							i = [], o = p.length;
							while (o--)(a = p[o]) && i.push(f[o] = a);
							y(null, p = [], i, r)
						}
						o = p.length;
						while (o--)(a = p[o]) && -1 < (i = y ? P(e, a) : s[o]) && (e[i] = !(t[i] = a))
					}
				} else p = Te(p === t ? p.splice(l, p.length) : p), y ? y(null, t, p, r) : H.apply(t, p)
			})
		}

		function Ee(e) {
			for (var i, t, n, r = e.length, o = b.relative[e[0].type], a = o || b.relative[" "], s = o ? 1 : 0, u = be(function(e) {
					return e === i
				}, a, !0), l = be(function(e) {
					return -1 < P(i, e)
				}, a, !0), c = [function(e, t, n) {
					var r = !o && (n || t !== w) || ((i = t).nodeType ? u(e, t, n) : l(e, t, n));
					return i = null, r
				}]; s < r; s++)
				if (t = b.relative[e[s].type]) c = [be(we(c), t)];
				else {
					if ((t = b.filter[e[s].type].apply(null, e[s].matches))[S]) {
						for (n = ++s; n < r; n++)
							if (b.relative[e[n].type]) break;
						return Ce(1 < s && we(c), 1 < s && xe(e.slice(0, s - 1).concat({
							value: " " === e[s - 2].type ? "*" : ""
						})).replace($, "$1"), t, s < n && Ee(e.slice(s, n)), n < r && Ee(e = e.slice(n)), n < r && xe(e))
					}
					c.push(t)
				} return we(c)
		}
		return me.prototype = b.filters = b.pseudos, b.setFilters = new me, h = se.tokenize = function(e, t) {
			var n, r, i, o, a, s, u, l = x[e + " "];
			if (l) return t ? 0 : l.slice(0);
			a = e, s = [], u = b.preFilter;
			while (a) {
				for (o in n && !(r = _.exec(a)) || (r && (a = a.slice(r[0].length) || a), s.push(i = [])), n = !1, (r = z.exec(a)) && (n = r.shift(), i.push({
						value: n,
						type: r[0].replace($, " ")
					}), a = a.slice(n.length)), b.filter) !(r = G[o].exec(a)) || u[o] && !(r = u[o](r)) || (n = r.shift(), i.push({
					value: n,
					type: o,
					matches: r
				}), a = a.slice(n.length));
				if (!n) break
			}
			return t ? a.length : a ? se.error(e) : x(e, s).slice(0)
		}, f = se.compile = function(e, t) {
			var n, v, y, m, x, r, i = [],
				o = [],
				a = A[e + " "];
			if (!a) {
				t || (t = h(e)), n = t.length;
				while (n--)(a = Ee(t[n]))[S] ? i.push(a) : o.push(a);
				(a = A(e, (v = o, m = 0 < (y = i).length, x = 0 < v.length, r = function(e, t, n, r, i) {
					var o, a, s, u = 0,
						l = "0",
						c = e && [],
						f = [],
						p = w,
						d = e || x && b.find.TAG("*", i),
						h = k += null == p ? 1 : Math.random() || .1,
						g = d.length;
					for (i && (w = t == C || t || i); l !== g && null != (o = d[l]); l++) {
						if (x && o) {
							a = 0, t || o.ownerDocument == C || (T(o), n = !E);
							while (s = v[a++])
								if (s(o, t || C, n)) {
									r.push(o);
									break
								} i && (k = h)
						}
						m && ((o = !s && o) && u--, e && c.push(o))
					}
					if (u += l, m && l !== u) {
						a = 0;
						while (s = y[a++]) s(c, f, t, n);
						if (e) {
							if (0 < u)
								while (l--) c[l] || f[l] || (f[l] = q.call(r));
							f = Te(f)
						}
						H.apply(r, f), i && !e && 0 < f.length && 1 < u + y.length && se.uniqueSort(r)
					}
					return i && (k = h, w = p), c
				}, m ? le(r) : r))).selector = e
			}
			return a
		}, g = se.select = function(e, t, n, r) {
			var i, o, a, s, u, l = "function" == typeof e && e,
				c = !r && h(e = l.selector || e);
			if (n = n || [], 1 === c.length) {
				if (2 < (o = c[0] = c[0].slice(0)).length && "ID" === (a = o[0]).type && 9 === t.nodeType && E && b.relative[o[1].type]) {
					if (!(t = (b.find.ID(a.matches[0].replace(te, ne), t) || [])[0])) return n;
					l && (t = t.parentNode), e = e.slice(o.shift().value.length)
				}
				i = G.needsContext.test(e) ? 0 : o.length;
				while (i--) {
					if (a = o[i], b.relative[s = a.type]) break;
					if ((u = b.find[s]) && (r = u(a.matches[0].replace(te, ne), ee.test(o[0].type) && ye(t.parentNode) || t))) {
						if (o.splice(i, 1), !(e = r.length && xe(o))) return H.apply(n, r), n;
						break
					}
				}
			}
			return (l || f(e, c))(r, t, !E, n, !t || ee.test(e) && ye(t.parentNode) || t), n
		}, d.sortStable = S.split("").sort(j).join("") === S, d.detectDuplicates = !!l, T(), d.sortDetached = ce(function(e) {
			return 1 & e.compareDocumentPosition(C.createElement("fieldset"))
		}), ce(function(e) {
			return e.innerHTML = "<a href='#'></a>", "#" === e.firstChild.getAttribute("href")
		}) || fe("type|href|height|width", function(e, t, n) {
			if (!n) return e.getAttribute(t, "type" === t.toLowerCase() ? 1 : 2)
		}), d.attributes && ce(function(e) {
			return e.innerHTML = "<input/>", e.firstChild.setAttribute("value", ""), "" === e.firstChild.getAttribute("value")
		}) || fe("value", function(e, t, n) {
			if (!n && "input" === e.nodeName.toLowerCase()) return e.defaultValue
		}), ce(function(e) {
			return null == e.getAttribute("disabled")
		}) || fe(R, function(e, t, n) {
			var r;
			if (!n) return !0 === e[t] ? t.toLowerCase() : (r = e.getAttributeNode(t)) && r.specified ? r.value : null
		}), se
	}(C);
	S.find = d, S.expr = d.selectors, S.expr[":"] = S.expr.pseudos, S.uniqueSort = S.unique = d.uniqueSort, S.text = d.getText, S.isXMLDoc = d.isXML, S.contains = d.contains, S.escapeSelector = d.escape;
	var h = function(e, t, n) {
			var r = [],
				i = void 0 !== n;
			while ((e = e[t]) && 9 !== e.nodeType)
				if (1 === e.nodeType) {
					if (i && S(e).is(n)) break;
					r.push(e)
				} return r
		},
		T = function(e, t) {
			for (var n = []; e; e = e.nextSibling) 1 === e.nodeType && e !== t && n.push(e);
			return n
		},
		k = S.expr.match.needsContext;

	function A(e, t) {
		return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase()
	}
	var N = /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;

	function j(e, n, r) {
		return m(n) ? S.grep(e, function(e, t) {
			return !!n.call(e, t, e) !== r
		}) : n.nodeType ? S.grep(e, function(e) {
			return e === n !== r
		}) : "string" != typeof n ? S.grep(e, function(e) {
			return -1 < i.call(n, e) !== r
		}) : S.filter(n, e, r)
	}
	S.filter = function(e, t, n) {
		var r = t[0];
		return n && (e = ":not(" + e + ")"), 1 === t.length && 1 === r.nodeType ? S.find.matchesSelector(r, e) ? [r] : [] : S.find.matches(e, S.grep(t, function(e) {
			return 1 === e.nodeType
		}))
	}, S.fn.extend({
		find: function(e) {
			var t, n, r = this.length,
				i = this;
			if ("string" != typeof e) return this.pushStack(S(e).filter(function() {
				for (t = 0; t < r; t++)
					if (S.contains(i[t], this)) return !0
			}));
			for (n = this.pushStack([]), t = 0; t < r; t++) S.find(e, i[t], n);
			return 1 < r ? S.uniqueSort(n) : n
		},
		filter: function(e) {
			return this.pushStack(j(this, e || [], !1))
		},
		not: function(e) {
			return this.pushStack(j(this, e || [], !0))
		},
		is: function(e) {
			return !!j(this, "string" == typeof e && k.test(e) ? S(e) : e || [], !1).length
		}
	});
	var D, q = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;
	(S.fn.init = function(e, t, n) {
		var r, i;
		if (!e) return this;
		if (n = n || D, "string" == typeof e) {
			if (!(r = "<" === e[0] && ">" === e[e.length - 1] && 3 <= e.length ? [null, e, null] : q.exec(e)) || !r[1] && t) return !t || t.jquery ? (t || n).find(e) : this.constructor(t).find(e);
			if (r[1]) {
				if (t = t instanceof S ? t[0] : t, S.merge(this, S.parseHTML(r[1], t && t.nodeType ? t.ownerDocument || t : E, !0)), N.test(r[1]) && S.isPlainObject(t))
					for (r in t) m(this[r]) ? this[r](t[r]) : this.attr(r, t[r]);
				return this
			}
			return (i = E.getElementById(r[2])) && (this[0] = i, this.length = 1), this
		}
		return e.nodeType ? (this[0] = e, this.length = 1, this) : m(e) ? void 0 !== n.ready ? n.ready(e) : e(S) : S.makeArray(e, this)
	}).prototype = S.fn, D = S(E);
	var L = /^(?:parents|prev(?:Until|All))/,
		H = {
			children: !0,
			contents: !0,
			next: !0,
			prev: !0
		};

	function O(e, t) {
		while ((e = e[t]) && 1 !== e.nodeType);
		return e
	}
	S.fn.extend({
		has: function(e) {
			var t = S(e, this),
				n = t.length;
			return this.filter(function() {
				for (var e = 0; e < n; e++)
					if (S.contains(this, t[e])) return !0
			})
		},
		closest: function(e, t) {
			var n, r = 0,
				i = this.length,
				o = [],
				a = "string" != typeof e && S(e);
			if (!k.test(e))
				for (; r < i; r++)
					for (n = this[r]; n && n !== t; n = n.parentNode)
						if (n.nodeType < 11 && (a ? -1 < a.index(n) : 1 === n.nodeType && S.find.matchesSelector(n, e))) {
							o.push(n);
							break
						} return this.pushStack(1 < o.length ? S.uniqueSort(o) : o)
		},
		index: function(e) {
			return e ? "string" == typeof e ? i.call(S(e), this[0]) : i.call(this, e.jquery ? e[0] : e) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1
		},
		add: function(e, t) {
			return this.pushStack(S.uniqueSort(S.merge(this.get(), S(e, t))))
		},
		addBack: function(e) {
			return this.add(null == e ? this.prevObject : this.prevObject.filter(e))
		}
	}), S.each({
		parent: function(e) {
			var t = e.parentNode;
			return t && 11 !== t.nodeType ? t : null
		},
		parents: function(e) {
			return h(e, "parentNode")
		},
		parentsUntil: function(e, t, n) {
			return h(e, "parentNode", n)
		},
		next: function(e) {
			return O(e, "nextSibling")
		},
		prev: function(e) {
			return O(e, "previousSibling")
		},
		nextAll: function(e) {
			return h(e, "nextSibling")
		},
		prevAll: function(e) {
			return h(e, "previousSibling")
		},
		nextUntil: function(e, t, n) {
			return h(e, "nextSibling", n)
		},
		prevUntil: function(e, t, n) {
			return h(e, "previousSibling", n)
		},
		siblings: function(e) {
			return T((e.parentNode || {}).firstChild, e)
		},
		children: function(e) {
			return T(e.firstChild)
		},
		contents: function(e) {
			return null != e.contentDocument && r(e.contentDocument) ? e.contentDocument : (A(e, "template") && (e = e.content || e), S.merge([], e.childNodes))
		}
	}, function(r, i) {
		S.fn[r] = function(e, t) {
			var n = S.map(this, i, e);
			return "Until" !== r.slice(-5) && (t = e), t && "string" == typeof t && (n = S.filter(t, n)), 1 < this.length && (H[r] || S.uniqueSort(n), L.test(r) && n.reverse()), this.pushStack(n)
		}
	});
	var P = /[^\x20\t\r\n\f]+/g;

	function R(e) {
		return e
	}

	function M(e) {
		throw e
	}

	function I(e, t, n, r) {
		var i;
		try {
			e && m(i = e.promise) ? i.call(e).done(t).fail(n) : e && m(i = e.then) ? i.call(e, t, n) : t.apply(void 0, [e].slice(r))
		} catch (e) {
			n.apply(void 0, [e])
		}
	}
	S.Callbacks = function(r) {
		var e, n;
		r = "string" == typeof r ? (e = r, n = {}, S.each(e.match(P) || [], function(e, t) {
			n[t] = !0
		}), n) : S.extend({}, r);
		var i, t, o, a, s = [],
			u = [],
			l = -1,
			c = function() {
				for (a = a || r.once, o = i = !0; u.length; l = -1) {
					t = u.shift();
					while (++l < s.length) !1 === s[l].apply(t[0], t[1]) && r.stopOnFalse && (l = s.length, t = !1)
				}
				r.memory || (t = !1), i = !1, a && (s = t ? [] : "")
			},
			f = {
				add: function() {
					return s && (t && !i && (l = s.length - 1, u.push(t)), function n(e) {
						S.each(e, function(e, t) {
							m(t) ? r.unique && f.has(t) || s.push(t) : t && t.length && "string" !== w(t) && n(t)
						})
					}(arguments), t && !i && c()), this
				},
				remove: function() {
					return S.each(arguments, function(e, t) {
						var n;
						while (-1 < (n = S.inArray(t, s, n))) s.splice(n, 1), n <= l && l--
					}), this
				},
				has: function(e) {
					return e ? -1 < S.inArray(e, s) : 0 < s.length
				},
				empty: function() {
					return s && (s = []), this
				},
				disable: function() {
					return a = u = [], s = t = "", this
				},
				disabled: function() {
					return !s
				},
				lock: function() {
					return a = u = [], t || i || (s = t = ""), this
				},
				locked: function() {
					return !!a
				},
				fireWith: function(e, t) {
					return a || (t = [e, (t = t || []).slice ? t.slice() : t], u.push(t), i || c()), this
				},
				fire: function() {
					return f.fireWith(this, arguments), this
				},
				fired: function() {
					return !!o
				}
			};
		return f
	}, S.extend({
		Deferred: function(e) {
			var o = [
					["notify", "progress", S.Callbacks("memory"), S.Callbacks("memory"), 2],
					["resolve", "done", S.Callbacks("once memory"), S.Callbacks("once memory"), 0, "resolved"],
					["reject", "fail", S.Callbacks("once memory"), S.Callbacks("once memory"), 1, "rejected"]
				],
				i = "pending",
				a = {
					state: function() {
						return i
					},
					always: function() {
						return s.done(arguments).fail(arguments), this
					},
					"catch": function(e) {
						return a.then(null, e)
					},
					pipe: function() {
						var i = arguments;
						return S.Deferred(function(r) {
							S.each(o, function(e, t) {
								var n = m(i[t[4]]) && i[t[4]];
								s[t[1]](function() {
									var e = n && n.apply(this, arguments);
									e && m(e.promise) ? e.promise().progress(r.notify).done(r.resolve).fail(r.reject) : r[t[0] + "With"](this, n ? [e] : arguments)
								})
							}), i = null
						}).promise()
					},
					then: function(t, n, r) {
						var u = 0;

						function l(i, o, a, s) {
							return function() {
								var n = this,
									r = arguments,
									e = function() {
										var e, t;
										if (!(i < u)) {
											if ((e = a.apply(n, r)) === o.promise()) throw new TypeError("Thenable self-resolution");
											t = e && ("object" == typeof e || "function" == typeof e) && e.then, m(t) ? s ? t.call(e, l(u, o, R, s), l(u, o, M, s)) : (u++, t.call(e, l(u, o, R, s), l(u, o, M, s), l(u, o, R, o.notifyWith))) : (a !== R && (n = void 0, r = [e]), (s || o.resolveWith)(n, r))
										}
									},
									t = s ? e : function() {
										try {
											e()
										} catch (e) {
											S.Deferred.exceptionHook && S.Deferred.exceptionHook(e, t.stackTrace), u <= i + 1 && (a !== M && (n = void 0, r = [e]), o.rejectWith(n, r))
										}
									};
								i ? t() : (S.Deferred.getStackHook && (t.stackTrace = S.Deferred.getStackHook()), C.setTimeout(t))
							}
						}
						return S.Deferred(function(e) {
							o[0][3].add(l(0, e, m(r) ? r : R, e.notifyWith)), o[1][3].add(l(0, e, m(t) ? t : R)), o[2][3].add(l(0, e, m(n) ? n : M))
						}).promise()
					},
					promise: function(e) {
						return null != e ? S.extend(e, a) : a
					}
				},
				s = {};
			return S.each(o, function(e, t) {
				var n = t[2],
					r = t[5];
				a[t[1]] = n.add, r && n.add(function() {
					i = r
				}, o[3 - e][2].disable, o[3 - e][3].disable, o[0][2].lock, o[0][3].lock), n.add(t[3].fire), s[t[0]] = function() {
					return s[t[0] + "With"](this === s ? void 0 : this, arguments), this
				}, s[t[0] + "With"] = n.fireWith
			}), a.promise(s), e && e.call(s, s), s
		},
		when: function(e) {
			var n = arguments.length,
				t = n,
				r = Array(t),
				i = s.call(arguments),
				o = S.Deferred(),
				a = function(t) {
					return function(e) {
						r[t] = this, i[t] = 1 < arguments.length ? s.call(arguments) : e, --n || o.resolveWith(r, i)
					}
				};
			if (n <= 1 && (I(e, o.done(a(t)).resolve, o.reject, !n), "pending" === o.state() || m(i[t] && i[t].then))) return o.then();
			while (t--) I(i[t], a(t), o.reject);
			return o.promise()
		}
	});
	var W = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;
	S.Deferred.exceptionHook = function(e, t) {
		C.console && C.console.warn && e && W.test(e.name) && C.console.warn("jQuery.Deferred exception: " + e.message, e.stack, t)
	}, S.readyException = function(e) {
		C.setTimeout(function() {
			throw e
		})
	};
	var F = S.Deferred();

	function B() {
		E.removeEventListener("DOMContentLoaded", B), C.removeEventListener("load", B), S.ready()
	}
	S.fn.ready = function(e) {
		return F.then(e)["catch"](function(e) {
			S.readyException(e)
		}), this
	}, S.extend({
		isReady: !1,
		readyWait: 1,
		ready: function(e) {
			(!0 === e ? --S.readyWait : S.isReady) || (S.isReady = !0) !== e && 0 < --S.readyWait || F.resolveWith(E, [S])
		}
	}), S.ready.then = F.then, "complete" === E.readyState || "loading" !== E.readyState && !E.documentElement.doScroll ? C.setTimeout(S.ready) : (E.addEventListener("DOMContentLoaded", B), C.addEventListener("load", B));
	var $ = function(e, t, n, r, i, o, a) {
			var s = 0,
				u = e.length,
				l = null == n;
			if ("object" === w(n))
				for (s in i = !0, n) $(e, t, s, n[s], !0, o, a);
			else if (void 0 !== r && (i = !0, m(r) || (a = !0), l && (a ? (t.call(e, r), t = null) : (l = t, t = function(e, t, n) {
					return l.call(S(e), n)
				})), t))
				for (; s < u; s++) t(e[s], n, a ? r : r.call(e[s], s, t(e[s], n)));
			return i ? e : l ? t.call(e) : u ? t(e[0], n) : o
		},
		_ = /^-ms-/,
		z = /-([a-z])/g;

	function U(e, t) {
		return t.toUpperCase()
	}

	function X(e) {
		return e.replace(_, "ms-").replace(z, U)
	}
	var V = function(e) {
		return 1 === e.nodeType || 9 === e.nodeType || !+e.nodeType
	};

	function G() {
		this.expando = S.expando + G.uid++
	}
	G.uid = 1, G.prototype = {
		cache: function(e) {
			var t = e[this.expando];
			return t || (t = {}, V(e) && (e.nodeType ? e[this.expando] = t : Object.defineProperty(e, this.expando, {
				value: t,
				configurable: !0
			}))), t
		},
		set: function(e, t, n) {
			var r, i = this.cache(e);
			if ("string" == typeof t) i[X(t)] = n;
			else
				for (r in t) i[X(r)] = t[r];
			return i
		},
		get: function(e, t) {
			return void 0 === t ? this.cache(e) : e[this.expando] && e[this.expando][X(t)]
		},
		access: function(e, t, n) {
			return void 0 === t || t && "string" == typeof t && void 0 === n ? this.get(e, t) : (this.set(e, t, n), void 0 !== n ? n : t)
		},
		remove: function(e, t) {
			var n, r = e[this.expando];
			if (void 0 !== r) {
				if (void 0 !== t) {
					n = (t = Array.isArray(t) ? t.map(X) : (t = X(t)) in r ? [t] : t.match(P) || []).length;
					while (n--) delete r[t[n]]
				}(void 0 === t || S.isEmptyObject(r)) && (e.nodeType ? e[this.expando] = void 0 : delete e[this.expando])
			}
		},
		hasData: function(e) {
			var t = e[this.expando];
			return void 0 !== t && !S.isEmptyObject(t)
		}
	};
	var Y = new G,
		Q = new G,
		J = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
		K = /[A-Z]/g;

	function Z(e, t, n) {
		var r, i;
		if (void 0 === n && 1 === e.nodeType)
			if (r = "data-" + t.replace(K, "-$&").toLowerCase(), "string" == typeof(n = e.getAttribute(r))) {
				try {
					n = "true" === (i = n) || "false" !== i && ("null" === i ? null : i === +i + "" ? +i : J.test(i) ? JSON.parse(i) : i)
				} catch (e) {}
				Q.set(e, t, n)
			} else n = void 0;
		return n
	}
	S.extend({
		hasData: function(e) {
			return Q.hasData(e) || Y.hasData(e)
		},
		data: function(e, t, n) {
			return Q.access(e, t, n)
		},
		removeData: function(e, t) {
			Q.remove(e, t)
		},
		_data: function(e, t, n) {
			return Y.access(e, t, n)
		},
		_removeData: function(e, t) {
			Y.remove(e, t)
		}
	}), S.fn.extend({
		data: function(n, e) {
			var t, r, i, o = this[0],
				a = o && o.attributes;
			if (void 0 === n) {
				if (this.length && (i = Q.get(o), 1 === o.nodeType && !Y.get(o, "hasDataAttrs"))) {
					t = a.length;
					while (t--) a[t] && 0 === (r = a[t].name).indexOf("data-") && (r = X(r.slice(5)), Z(o, r, i[r]));
					Y.set(o, "hasDataAttrs", !0)
				}
				return i
			}
			return "object" == typeof n ? this.each(function() {
				Q.set(this, n)
			}) : $(this, function(e) {
				var t;
				if (o && void 0 === e) return void 0 !== (t = Q.get(o, n)) ? t : void 0 !== (t = Z(o, n)) ? t : void 0;
				this.each(function() {
					Q.set(this, n, e)
				})
			}, null, e, 1 < arguments.length, null, !0)
		},
		removeData: function(e) {
			return this.each(function() {
				Q.remove(this, e)
			})
		}
	}), S.extend({
		queue: function(e, t, n) {
			var r;
			if (e) return t = (t || "fx") + "queue", r = Y.get(e, t), n && (!r || Array.isArray(n) ? r = Y.access(e, t, S.makeArray(n)) : r.push(n)), r || []
		},
		dequeue: function(e, t) {
			t = t || "fx";
			var n = S.queue(e, t),
				r = n.length,
				i = n.shift(),
				o = S._queueHooks(e, t);
			"inprogress" === i && (i = n.shift(), r--), i && ("fx" === t && n.unshift("inprogress"), delete o.stop, i.call(e, function() {
				S.dequeue(e, t)
			}, o)), !r && o && o.empty.fire()
		},
		_queueHooks: function(e, t) {
			var n = t + "queueHooks";
			return Y.get(e, n) || Y.access(e, n, {
				empty: S.Callbacks("once memory").add(function() {
					Y.remove(e, [t + "queue", n])
				})
			})
		}
	}), S.fn.extend({
		queue: function(t, n) {
			var e = 2;
			return "string" != typeof t && (n = t, t = "fx", e--), arguments.length < e ? S.queue(this[0], t) : void 0 === n ? this : this.each(function() {
				var e = S.queue(this, t, n);
				S._queueHooks(this, t), "fx" === t && "inprogress" !== e[0] && S.dequeue(this, t)
			})
		},
		dequeue: function(e) {
			return this.each(function() {
				S.dequeue(this, e)
			})
		},
		clearQueue: function(e) {
			return this.queue(e || "fx", [])
		},
		promise: function(e, t) {
			var n, r = 1,
				i = S.Deferred(),
				o = this,
				a = this.length,
				s = function() {
					--r || i.resolveWith(o, [o])
				};
			"string" != typeof e && (t = e, e = void 0), e = e || "fx";
			while (a--)(n = Y.get(o[a], e + "queueHooks")) && n.empty && (r++, n.empty.add(s));
			return s(), i.promise(t)
		}
	});
	var ee = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,
		te = new RegExp("^(?:([+-])=|)(" + ee + ")([a-z%]*)$", "i"),
		ne = ["Top", "Right", "Bottom", "Left"],
		re = E.documentElement,
		ie = function(e) {
			return S.contains(e.ownerDocument, e)
		},
		oe = {
			composed: !0
		};
	re.getRootNode && (ie = function(e) {
		return S.contains(e.ownerDocument, e) || e.getRootNode(oe) === e.ownerDocument
	});
	var ae = function(e, t) {
		return "none" === (e = t || e).style.display || "" === e.style.display && ie(e) && "none" === S.css(e, "display")
	};

	function se(e, t, n, r) {
		var i, o, a = 20,
			s = r ? function() {
				return r.cur()
			} : function() {
				return S.css(e, t, "")
			},
			u = s(),
			l = n && n[3] || (S.cssNumber[t] ? "" : "px"),
			c = e.nodeType && (S.cssNumber[t] || "px" !== l && +u) && te.exec(S.css(e, t));
		if (c && c[3] !== l) {
			u /= 2, l = l || c[3], c = +u || 1;
			while (a--) S.style(e, t, c + l), (1 - o) * (1 - (o = s() / u || .5)) <= 0 && (a = 0), c /= o;
			c *= 2, S.style(e, t, c + l), n = n || []
		}
		return n && (c = +c || +u || 0, i = n[1] ? c + (n[1] + 1) * n[2] : +n[2], r && (r.unit = l, r.start = c, r.end = i)), i
	}
	var ue = {};

	function le(e, t) {
		for (var n, r, i, o, a, s, u, l = [], c = 0, f = e.length; c < f; c++)(r = e[c]).style && (n = r.style.display, t ? ("none" === n && (l[c] = Y.get(r, "display") || null, l[c] || (r.style.display = "")), "" === r.style.display && ae(r) && (l[c] = (u = a = o = void 0, a = (i = r).ownerDocument, s = i.nodeName, (u = ue[s]) || (o = a.body.appendChild(a.createElement(s)), u = S.css(o, "display"), o.parentNode.removeChild(o), "none" === u && (u = "block"), ue[s] = u)))) : "none" !== n && (l[c] = "none", Y.set(r, "display", n)));
		for (c = 0; c < f; c++) null != l[c] && (e[c].style.display = l[c]);
		return e
	}
	S.fn.extend({
		show: function() {
			return le(this, !0)
		},
		hide: function() {
			return le(this)
		},
		toggle: function(e) {
			return "boolean" == typeof e ? e ? this.show() : this.hide() : this.each(function() {
				ae(this) ? S(this).show() : S(this).hide()
			})
		}
	});
	var ce, fe, pe = /^(?:checkbox|radio)$/i,
		de = /<([a-z][^\/\0>\x20\t\r\n\f]*)/i,
		he = /^$|^module$|\/(?:java|ecma)script/i;
	ce = E.createDocumentFragment().appendChild(E.createElement("div")), (fe = E.createElement("input")).setAttribute("type", "radio"), fe.setAttribute("checked", "checked"), fe.setAttribute("name", "t"), ce.appendChild(fe), y.checkClone = ce.cloneNode(!0).cloneNode(!0).lastChild.checked, ce.innerHTML = "<textarea>x</textarea>", y.noCloneChecked = !!ce.cloneNode(!0).lastChild.defaultValue, ce.innerHTML = "<option></option>", y.option = !!ce.lastChild;
	var ge = {
		thead: [1, "<table>", "</table>"],
		col: [2, "<table><colgroup>", "</colgroup></table>"],
		tr: [2, "<table><tbody>", "</tbody></table>"],
		td: [3, "<table><tbody><tr>", "</tr></tbody></table>"],
		_default: [0, "", ""]
	};

	function ve(e, t) {
		var n;
		return n = "undefined" != typeof e.getElementsByTagName ? e.getElementsByTagName(t || "*") : "undefined" != typeof e.querySelectorAll ? e.querySelectorAll(t || "*") : [], void 0 === t || t && A(e, t) ? S.merge([e], n) : n
	}

	function ye(e, t) {
		for (var n = 0, r = e.length; n < r; n++) Y.set(e[n], "globalEval", !t || Y.get(t[n], "globalEval"))
	}
	ge.tbody = ge.tfoot = ge.colgroup = ge.caption = ge.thead, ge.th = ge.td, y.option || (ge.optgroup = ge.option = [1, "<select multiple='multiple'>", "</select>"]);
	var me = /<|&#?\w+;/;

	function xe(e, t, n, r, i) {
		for (var o, a, s, u, l, c, f = t.createDocumentFragment(), p = [], d = 0, h = e.length; d < h; d++)
			if ((o = e[d]) || 0 === o)
				if ("object" === w(o)) S.merge(p, o.nodeType ? [o] : o);
				else if (me.test(o)) {
			a = a || f.appendChild(t.createElement("div")), s = (de.exec(o) || ["", ""])[1].toLowerCase(), u = ge[s] || ge._default, a.innerHTML = u[1] + S.htmlPrefilter(o) + u[2], c = u[0];
			while (c--) a = a.lastChild;
			S.merge(p, a.childNodes), (a = f.firstChild).textContent = ""
		} else p.push(t.createTextNode(o));
		f.textContent = "", d = 0;
		while (o = p[d++])
			if (r && -1 < S.inArray(o, r)) i && i.push(o);
			else if (l = ie(o), a = ve(f.appendChild(o), "script"), l && ye(a), n) {
			c = 0;
			while (o = a[c++]) he.test(o.type || "") && n.push(o)
		}
		return f
	}
	var be = /^([^.]*)(?:\.(.+)|)/;

	function we() {
		return !0
	}

	function Te() {
		return !1
	}

	function Ce(e, t) {
		return e === function() {
			try {
				return E.activeElement
			} catch (e) {}
		}() == ("focus" === t)
	}

	function Ee(e, t, n, r, i, o) {
		var a, s;
		if ("object" == typeof t) {
			for (s in "string" != typeof n && (r = r || n, n = void 0), t) Ee(e, s, n, r, t[s], o);
			return e
		}
		if (null == r && null == i ? (i = n, r = n = void 0) : null == i && ("string" == typeof n ? (i = r, r = void 0) : (i = r, r = n, n = void 0)), !1 === i) i = Te;
		else if (!i) return e;
		return 1 === o && (a = i, (i = function(e) {
			return S().off(e), a.apply(this, arguments)
		}).guid = a.guid || (a.guid = S.guid++)), e.each(function() {
			S.event.add(this, t, i, r, n)
		})
	}

	function Se(e, i, o) {
		o ? (Y.set(e, i, !1), S.event.add(e, i, {
			namespace: !1,
			handler: function(e) {
				var t, n, r = Y.get(this, i);
				if (1 & e.isTrigger && this[i]) {
					if (r.length)(S.event.special[i] || {}).delegateType && e.stopPropagation();
					else if (r = s.call(arguments), Y.set(this, i, r), t = o(this, i), this[i](), r !== (n = Y.get(this, i)) || t ? Y.set(this, i, !1) : n = {}, r !== n) return e.stopImmediatePropagation(), e.preventDefault(), n && n.value
				} else r.length && (Y.set(this, i, {
					value: S.event.trigger(S.extend(r[0], S.Event.prototype), r.slice(1), this)
				}), e.stopImmediatePropagation())
			}
		})) : void 0 === Y.get(e, i) && S.event.add(e, i, we)
	}
	S.event = {
		global: {},
		add: function(t, e, n, r, i) {
			var o, a, s, u, l, c, f, p, d, h, g, v = Y.get(t);
			if (V(t)) {
				n.handler && (n = (o = n).handler, i = o.selector), i && S.find.matchesSelector(re, i), n.guid || (n.guid = S.guid++), (u = v.events) || (u = v.events = Object.create(null)), (a = v.handle) || (a = v.handle = function(e) {
					return "undefined" != typeof S && S.event.triggered !== e.type ? S.event.dispatch.apply(t, arguments) : void 0
				}), l = (e = (e || "").match(P) || [""]).length;
				while (l--) d = g = (s = be.exec(e[l]) || [])[1], h = (s[2] || "").split(".").sort(), d && (f = S.event.special[d] || {}, d = (i ? f.delegateType : f.bindType) || d, f = S.event.special[d] || {}, c = S.extend({
					type: d,
					origType: g,
					data: r,
					handler: n,
					guid: n.guid,
					selector: i,
					needsContext: i && S.expr.match.needsContext.test(i),
					namespace: h.join(".")
				}, o), (p = u[d]) || ((p = u[d] = []).delegateCount = 0, f.setup && !1 !== f.setup.call(t, r, h, a) || t.addEventListener && t.addEventListener(d, a)), f.add && (f.add.call(t, c), c.handler.guid || (c.handler.guid = n.guid)), i ? p.splice(p.delegateCount++, 0, c) : p.push(c), S.event.global[d] = !0)
			}
		},
		remove: function(e, t, n, r, i) {
			var o, a, s, u, l, c, f, p, d, h, g, v = Y.hasData(e) && Y.get(e);
			if (v && (u = v.events)) {
				l = (t = (t || "").match(P) || [""]).length;
				while (l--)
					if (d = g = (s = be.exec(t[l]) || [])[1], h = (s[2] || "").split(".").sort(), d) {
						f = S.event.special[d] || {}, p = u[d = (r ? f.delegateType : f.bindType) || d] || [], s = s[2] && new RegExp("(^|\\.)" + h.join("\\.(?:.*\\.|)") + "(\\.|$)"), a = o = p.length;
						while (o--) c = p[o], !i && g !== c.origType || n && n.guid !== c.guid || s && !s.test(c.namespace) || r && r !== c.selector && ("**" !== r || !c.selector) || (p.splice(o, 1), c.selector && p.delegateCount--, f.remove && f.remove.call(e, c));
						a && !p.length && (f.teardown && !1 !== f.teardown.call(e, h, v.handle) || S.removeEvent(e, d, v.handle), delete u[d])
					} else
						for (d in u) S.event.remove(e, d + t[l], n, r, !0);
				S.isEmptyObject(u) && Y.remove(e, "handle events")
			}
		},
		dispatch: function(e) {
			var t, n, r, i, o, a, s = new Array(arguments.length),
				u = S.event.fix(e),
				l = (Y.get(this, "events") || Object.create(null))[u.type] || [],
				c = S.event.special[u.type] || {};
			for (s[0] = u, t = 1; t < arguments.length; t++) s[t] = arguments[t];
			if (u.delegateTarget = this, !c.preDispatch || !1 !== c.preDispatch.call(this, u)) {
				a = S.event.handlers.call(this, u, l), t = 0;
				while ((i = a[t++]) && !u.isPropagationStopped()) {
					u.currentTarget = i.elem, n = 0;
					while ((o = i.handlers[n++]) && !u.isImmediatePropagationStopped()) u.rnamespace && !1 !== o.namespace && !u.rnamespace.test(o.namespace) || (u.handleObj = o, u.data = o.data, void 0 !== (r = ((S.event.special[o.origType] || {}).handle || o.handler).apply(i.elem, s)) && !1 === (u.result = r) && (u.preventDefault(), u.stopPropagation()))
				}
				return c.postDispatch && c.postDispatch.call(this, u), u.result
			}
		},
		handlers: function(e, t) {
			var n, r, i, o, a, s = [],
				u = t.delegateCount,
				l = e.target;
			if (u && l.nodeType && !("click" === e.type && 1 <= e.button))
				for (; l !== this; l = l.parentNode || this)
					if (1 === l.nodeType && ("click" !== e.type || !0 !== l.disabled)) {
						for (o = [], a = {}, n = 0; n < u; n++) void 0 === a[i = (r = t[n]).selector + " "] && (a[i] = r.needsContext ? -1 < S(i, this).index(l) : S.find(i, this, null, [l]).length), a[i] && o.push(r);
						o.length && s.push({
							elem: l,
							handlers: o
						})
					} return l = this, u < t.length && s.push({
				elem: l,
				handlers: t.slice(u)
			}), s
		},
		addProp: function(t, e) {
			Object.defineProperty(S.Event.prototype, t, {
				enumerable: !0,
				configurable: !0,
				get: m(e) ? function() {
					if (this.originalEvent) return e(this.originalEvent)
				} : function() {
					if (this.originalEvent) return this.originalEvent[t]
				},
				set: function(e) {
					Object.defineProperty(this, t, {
						enumerable: !0,
						configurable: !0,
						writable: !0,
						value: e
					})
				}
			})
		},
		fix: function(e) {
			return e[S.expando] ? e : new S.Event(e)
		},
		special: {
			load: {
				noBubble: !0
			},
			click: {
				setup: function(e) {
					var t = this || e;
					return pe.test(t.type) && t.click && A(t, "input") && Se(t, "click", we), !1
				},
				trigger: function(e) {
					var t = this || e;
					return pe.test(t.type) && t.click && A(t, "input") && Se(t, "click"), !0
				},
				_default: function(e) {
					var t = e.target;
					return pe.test(t.type) && t.click && A(t, "input") && Y.get(t, "click") || A(t, "a")
				}
			},
			beforeunload: {
				postDispatch: function(e) {
					void 0 !== e.result && e.originalEvent && (e.originalEvent.returnValue = e.result)
				}
			}
		}
	}, S.removeEvent = function(e, t, n) {
		e.removeEventListener && e.removeEventListener(t, n)
	}, S.Event = function(e, t) {
		if (!(this instanceof S.Event)) return new S.Event(e, t);
		e && e.type ? (this.originalEvent = e, this.type = e.type, this.isDefaultPrevented = e.defaultPrevented || void 0 === e.defaultPrevented && !1 === e.returnValue ? we : Te, this.target = e.target && 3 === e.target.nodeType ? e.target.parentNode : e.target, this.currentTarget = e.currentTarget, this.relatedTarget = e.relatedTarget) : this.type = e, t && S.extend(this, t), this.timeStamp = e && e.timeStamp || Date.now(), this[S.expando] = !0
	}, S.Event.prototype = {
		constructor: S.Event,
		isDefaultPrevented: Te,
		isPropagationStopped: Te,
		isImmediatePropagationStopped: Te,
		isSimulated: !1,
		preventDefault: function() {
			var e = this.originalEvent;
			this.isDefaultPrevented = we, e && !this.isSimulated && e.preventDefault()
		},
		stopPropagation: function() {
			var e = this.originalEvent;
			this.isPropagationStopped = we, e && !this.isSimulated && e.stopPropagation()
		},
		stopImmediatePropagation: function() {
			var e = this.originalEvent;
			this.isImmediatePropagationStopped = we, e && !this.isSimulated && e.stopImmediatePropagation(), this.stopPropagation()
		}
	}, S.each({
		altKey: !0,
		bubbles: !0,
		cancelable: !0,
		changedTouches: !0,
		ctrlKey: !0,
		detail: !0,
		eventPhase: !0,
		metaKey: !0,
		pageX: !0,
		pageY: !0,
		shiftKey: !0,
		view: !0,
		"char": !0,
		code: !0,
		charCode: !0,
		key: !0,
		keyCode: !0,
		button: !0,
		buttons: !0,
		clientX: !0,
		clientY: !0,
		offsetX: !0,
		offsetY: !0,
		pointerId: !0,
		pointerType: !0,
		screenX: !0,
		screenY: !0,
		targetTouches: !0,
		toElement: !0,
		touches: !0,
		which: !0
	}, S.event.addProp), S.each({
		focus: "focusin",
		blur: "focusout"
	}, function(e, t) {
		S.event.special[e] = {
			setup: function() {
				return Se(this, e, Ce), !1
			},
			trigger: function() {
				return Se(this, e), !0
			},
			_default: function() {
				return !0
			},
			delegateType: t
		}
	}), S.each({
		mouseenter: "mouseover",
		mouseleave: "mouseout",
		pointerenter: "pointerover",
		pointerleave: "pointerout"
	}, function(e, i) {
		S.event.special[e] = {
			delegateType: i,
			bindType: i,
			handle: function(e) {
				var t, n = e.relatedTarget,
					r = e.handleObj;
				return n && (n === this || S.contains(this, n)) || (e.type = r.origType, t = r.handler.apply(this, arguments), e.type = i), t
			}
		}
	}), S.fn.extend({
		on: function(e, t, n, r) {
			return Ee(this, e, t, n, r)
		},
		one: function(e, t, n, r) {
			return Ee(this, e, t, n, r, 1)
		},
		off: function(e, t, n) {
			var r, i;
			if (e && e.preventDefault && e.handleObj) return r = e.handleObj, S(e.delegateTarget).off(r.namespace ? r.origType + "." + r.namespace : r.origType, r.selector, r.handler), this;
			if ("object" == typeof e) {
				for (i in e) this.off(i, t, e[i]);
				return this
			}
			return !1 !== t && "function" != typeof t || (n = t, t = void 0), !1 === n && (n = Te), this.each(function() {
				S.event.remove(this, e, n, t)
			})
		}
	});
	var ke = /<script|<style|<link/i,
		Ae = /checked\s*(?:[^=]|=\s*.checked.)/i,
		Ne = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;

	function je(e, t) {
		return A(e, "table") && A(11 !== t.nodeType ? t : t.firstChild, "tr") && S(e).children("tbody")[0] || e
	}

	function De(e) {
		return e.type = (null !== e.getAttribute("type")) + "/" + e.type, e
	}

	function qe(e) {
		return "true/" === (e.type || "").slice(0, 5) ? e.type = e.type.slice(5) : e.removeAttribute("type"), e
	}

	function Le(e, t) {
		var n, r, i, o, a, s;
		if (1 === t.nodeType) {
			if (Y.hasData(e) && (s = Y.get(e).events))
				for (i in Y.remove(t, "handle events"), s)
					for (n = 0, r = s[i].length; n < r; n++) S.event.add(t, i, s[i][n]);
			Q.hasData(e) && (o = Q.access(e), a = S.extend({}, o), Q.set(t, a))
		}
	}

	function He(n, r, i, o) {
		r = g(r);
		var e, t, a, s, u, l, c = 0,
			f = n.length,
			p = f - 1,
			d = r[0],
			h = m(d);
		if (h || 1 < f && "string" == typeof d && !y.checkClone && Ae.test(d)) return n.each(function(e) {
			var t = n.eq(e);
			h && (r[0] = d.call(this, e, t.html())), He(t, r, i, o)
		});
		if (f && (t = (e = xe(r, n[0].ownerDocument, !1, n, o)).firstChild, 1 === e.childNodes.length && (e = t), t || o)) {
			for (s = (a = S.map(ve(e, "script"), De)).length; c < f; c++) u = e, c !== p && (u = S.clone(u, !0, !0), s && S.merge(a, ve(u, "script"))), i.call(n[c], u, c);
			if (s)
				for (l = a[a.length - 1].ownerDocument, S.map(a, qe), c = 0; c < s; c++) u = a[c], he.test(u.type || "") && !Y.access(u, "globalEval") && S.contains(l, u) && (u.src && "module" !== (u.type || "").toLowerCase() ? S._evalUrl && !u.noModule && S._evalUrl(u.src, {
					nonce: u.nonce || u.getAttribute("nonce")
				}, l) : b(u.textContent.replace(Ne, ""), u, l))
		}
		return n
	}

	function Oe(e, t, n) {
		for (var r, i = t ? S.filter(t, e) : e, o = 0; null != (r = i[o]); o++) n || 1 !== r.nodeType || S.cleanData(ve(r)), r.parentNode && (n && ie(r) && ye(ve(r, "script")), r.parentNode.removeChild(r));
		return e
	}
	S.extend({
		htmlPrefilter: function(e) {
			return e
		},
		clone: function(e, t, n) {
			var r, i, o, a, s, u, l, c = e.cloneNode(!0),
				f = ie(e);
			if (!(y.noCloneChecked || 1 !== e.nodeType && 11 !== e.nodeType || S.isXMLDoc(e)))
				for (a = ve(c), r = 0, i = (o = ve(e)).length; r < i; r++) s = o[r], u = a[r], void 0, "input" === (l = u.nodeName.toLowerCase()) && pe.test(s.type) ? u.checked = s.checked : "input" !== l && "textarea" !== l || (u.defaultValue = s.defaultValue);
			if (t)
				if (n)
					for (o = o || ve(e), a = a || ve(c), r = 0, i = o.length; r < i; r++) Le(o[r], a[r]);
				else Le(e, c);
			return 0 < (a = ve(c, "script")).length && ye(a, !f && ve(e, "script")), c
		},
		cleanData: function(e) {
			for (var t, n, r, i = S.event.special, o = 0; void 0 !== (n = e[o]); o++)
				if (V(n)) {
					if (t = n[Y.expando]) {
						if (t.events)
							for (r in t.events) i[r] ? S.event.remove(n, r) : S.removeEvent(n, r, t.handle);
						n[Y.expando] = void 0
					}
					n[Q.expando] && (n[Q.expando] = void 0)
				}
		}
	}), S.fn.extend({
		detach: function(e) {
			return Oe(this, e, !0)
		},
		remove: function(e) {
			return Oe(this, e)
		},
		text: function(e) {
			return $(this, function(e) {
				return void 0 === e ? S.text(this) : this.empty().each(function() {
					1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || (this.textContent = e)
				})
			}, null, e, arguments.length)
		},
		append: function() {
			return He(this, arguments, function(e) {
				1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || je(this, e).appendChild(e)
			})
		},
		prepend: function() {
			return He(this, arguments, function(e) {
				if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
					var t = je(this, e);
					t.insertBefore(e, t.firstChild)
				}
			})
		},
		before: function() {
			return He(this, arguments, function(e) {
				this.parentNode && this.parentNode.insertBefore(e, this)
			})
		},
		after: function() {
			return He(this, arguments, function(e) {
				this.parentNode && this.parentNode.insertBefore(e, this.nextSibling)
			})
		},
		empty: function() {
			for (var e, t = 0; null != (e = this[t]); t++) 1 === e.nodeType && (S.cleanData(ve(e, !1)), e.textContent = "");
			return this
		},
		clone: function(e, t) {
			return e = null != e && e, t = null == t ? e : t, this.map(function() {
				return S.clone(this, e, t)
			})
		},
		html: function(e) {
			return $(this, function(e) {
				var t = this[0] || {},
					n = 0,
					r = this.length;
				if (void 0 === e && 1 === t.nodeType) return t.innerHTML;
				if ("string" == typeof e && !ke.test(e) && !ge[(de.exec(e) || ["", ""])[1].toLowerCase()]) {
					e = S.htmlPrefilter(e);
					try {
						for (; n < r; n++) 1 === (t = this[n] || {}).nodeType && (S.cleanData(ve(t, !1)), t.innerHTML = e);
						t = 0
					} catch (e) {}
				}
				t && this.empty().append(e)
			}, null, e, arguments.length)
		},
		replaceWith: function() {
			var n = [];
			return He(this, arguments, function(e) {
				var t = this.parentNode;
				S.inArray(this, n) < 0 && (S.cleanData(ve(this)), t && t.replaceChild(e, this))
			}, n)
		}
	}), S.each({
		appendTo: "append",
		prependTo: "prepend",
		insertBefore: "before",
		insertAfter: "after",
		replaceAll: "replaceWith"
	}, function(e, a) {
		S.fn[e] = function(e) {
			for (var t, n = [], r = S(e), i = r.length - 1, o = 0; o <= i; o++) t = o === i ? this : this.clone(!0), S(r[o])[a](t), u.apply(n, t.get());
			return this.pushStack(n)
		}
	});
	var Pe = new RegExp("^(" + ee + ")(?!px)[a-z%]+$", "i"),
		Re = function(e) {
			var t = e.ownerDocument.defaultView;
			return t && t.opener || (t = C), t.getComputedStyle(e)
		},
		Me = function(e, t, n) {
			var r, i, o = {};
			for (i in t) o[i] = e.style[i], e.style[i] = t[i];
			for (i in r = n.call(e), t) e.style[i] = o[i];
			return r
		},
		Ie = new RegExp(ne.join("|"), "i");

	function We(e, t, n) {
		var r, i, o, a, s = e.style;
		return (n = n || Re(e)) && ("" !== (a = n.getPropertyValue(t) || n[t]) || ie(e) || (a = S.style(e, t)), !y.pixelBoxStyles() && Pe.test(a) && Ie.test(t) && (r = s.width, i = s.minWidth, o = s.maxWidth, s.minWidth = s.maxWidth = s.width = a, a = n.width, s.width = r, s.minWidth = i, s.maxWidth = o)), void 0 !== a ? a + "" : a
	}

	function Fe(e, t) {
		return {
			get: function() {
				if (!e()) return (this.get = t).apply(this, arguments);
				delete this.get
			}
		}
	}! function() {
		function e() {
			if (l) {
				u.style.cssText = "position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0", l.style.cssText = "position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%", re.appendChild(u).appendChild(l);
				var e = C.getComputedStyle(l);
				n = "1%" !== e.top, s = 12 === t(e.marginLeft), l.style.right = "60%", o = 36 === t(e.right), r = 36 === t(e.width), l.style.position = "absolute", i = 12 === t(l.offsetWidth / 3), re.removeChild(u), l = null
			}
		}

		function t(e) {
			return Math.round(parseFloat(e))
		}
		var n, r, i, o, a, s, u = E.createElement("div"),
			l = E.createElement("div");
		l.style && (l.style.backgroundClip = "content-box", l.cloneNode(!0).style.backgroundClip = "", y.clearCloneStyle = "content-box" === l.style.backgroundClip, S.extend(y, {
			boxSizingReliable: function() {
				return e(), r
			},
			pixelBoxStyles: function() {
				return e(), o
			},
			pixelPosition: function() {
				return e(), n
			},
			reliableMarginLeft: function() {
				return e(), s
			},
			scrollboxSize: function() {
				return e(), i
			},
			reliableTrDimensions: function() {
				var e, t, n, r;
				return null == a && (e = E.createElement("table"), t = E.createElement("tr"), n = E.createElement("div"), e.style.cssText = "position:absolute;left:-11111px;border-collapse:separate", t.style.cssText = "border:1px solid", t.style.height = "1px", n.style.height = "9px", n.style.display = "block", re.appendChild(e).appendChild(t).appendChild(n), r = C.getComputedStyle(t), a = parseInt(r.height, 10) + parseInt(r.borderTopWidth, 10) + parseInt(r.borderBottomWidth, 10) === t.offsetHeight, re.removeChild(e)), a
			}
		}))
	}();
	var Be = ["Webkit", "Moz", "ms"],
		$e = E.createElement("div").style,
		_e = {};

	function ze(e) {
		var t = S.cssProps[e] || _e[e];
		return t || (e in $e ? e : _e[e] = function(e) {
			var t = e[0].toUpperCase() + e.slice(1),
				n = Be.length;
			while (n--)
				if ((e = Be[n] + t) in $e) return e
		}(e) || e)
	}
	var Ue = /^(none|table(?!-c[ea]).+)/,
		Xe = /^--/,
		Ve = {
			position: "absolute",
			visibility: "hidden",
			display: "block"
		},
		Ge = {
			letterSpacing: "0",
			fontWeight: "400"
		};

	function Ye(e, t, n) {
		var r = te.exec(t);
		return r ? Math.max(0, r[2] - (n || 0)) + (r[3] || "px") : t
	}

	function Qe(e, t, n, r, i, o) {
		var a = "width" === t ? 1 : 0,
			s = 0,
			u = 0;
		if (n === (r ? "border" : "content")) return 0;
		for (; a < 4; a += 2) "margin" === n && (u += S.css(e, n + ne[a], !0, i)), r ? ("content" === n && (u -= S.css(e, "padding" + ne[a], !0, i)), "margin" !== n && (u -= S.css(e, "border" + ne[a] + "Width", !0, i))) : (u += S.css(e, "padding" + ne[a], !0, i), "padding" !== n ? u += S.css(e, "border" + ne[a] + "Width", !0, i) : s += S.css(e, "border" + ne[a] + "Width", !0, i));
		return !r && 0 <= o && (u += Math.max(0, Math.ceil(e["offset" + t[0].toUpperCase() + t.slice(1)] - o - u - s - .5)) || 0), u
	}

	function Je(e, t, n) {
		var r = Re(e),
			i = (!y.boxSizingReliable() || n) && "border-box" === S.css(e, "boxSizing", !1, r),
			o = i,
			a = We(e, t, r),
			s = "offset" + t[0].toUpperCase() + t.slice(1);
		if (Pe.test(a)) {
			if (!n) return a;
			a = "auto"
		}
		return (!y.boxSizingReliable() && i || !y.reliableTrDimensions() && A(e, "tr") || "auto" === a || !parseFloat(a) && "inline" === S.css(e, "display", !1, r)) && e.getClientRects().length && (i = "border-box" === S.css(e, "boxSizing", !1, r), (o = s in e) && (a = e[s])), (a = parseFloat(a) || 0) + Qe(e, t, n || (i ? "border" : "content"), o, r, a) + "px"
	}

	function Ke(e, t, n, r, i) {
		return new Ke.prototype.init(e, t, n, r, i)
	}
	S.extend({
		cssHooks: {
			opacity: {
				get: function(e, t) {
					if (t) {
						var n = We(e, "opacity");
						return "" === n ? "1" : n
					}
				}
			}
		},
		cssNumber: {
			animationIterationCount: !0,
			columnCount: !0,
			fillOpacity: !0,
			flexGrow: !0,
			flexShrink: !0,
			fontWeight: !0,
			gridArea: !0,
			gridColumn: !0,
			gridColumnEnd: !0,
			gridColumnStart: !0,
			gridRow: !0,
			gridRowEnd: !0,
			gridRowStart: !0,
			lineHeight: !0,
			opacity: !0,
			order: !0,
			orphans: !0,
			widows: !0,
			zIndex: !0,
			zoom: !0
		},
		cssProps: {},
		style: function(e, t, n, r) {
			if (e && 3 !== e.nodeType && 8 !== e.nodeType && e.style) {
				var i, o, a, s = X(t),
					u = Xe.test(t),
					l = e.style;
				if (u || (t = ze(s)), a = S.cssHooks[t] || S.cssHooks[s], void 0 === n) return a && "get" in a && void 0 !== (i = a.get(e, !1, r)) ? i : l[t];
				"string" === (o = typeof n) && (i = te.exec(n)) && i[1] && (n = se(e, t, i), o = "number"), null != n && n == n && ("number" !== o || u || (n += i && i[3] || (S.cssNumber[s] ? "" : "px")), y.clearCloneStyle || "" !== n || 0 !== t.indexOf("background") || (l[t] = "inherit"), a && "set" in a && void 0 === (n = a.set(e, n, r)) || (u ? l.setProperty(t, n) : l[t] = n))
			}
		},
		css: function(e, t, n, r) {
			var i, o, a, s = X(t);
			return Xe.test(t) || (t = ze(s)), (a = S.cssHooks[t] || S.cssHooks[s]) && "get" in a && (i = a.get(e, !0, n)), void 0 === i && (i = We(e, t, r)), "normal" === i && t in Ge && (i = Ge[t]), "" === n || n ? (o = parseFloat(i), !0 === n || isFinite(o) ? o || 0 : i) : i
		}
	}), S.each(["height", "width"], function(e, u) {
		S.cssHooks[u] = {
			get: function(e, t, n) {
				if (t) return !Ue.test(S.css(e, "display")) || e.getClientRects().length && e.getBoundingClientRect().width ? Je(e, u, n) : Me(e, Ve, function() {
					return Je(e, u, n)
				})
			},
			set: function(e, t, n) {
				var r, i = Re(e),
					o = !y.scrollboxSize() && "absolute" === i.position,
					a = (o || n) && "border-box" === S.css(e, "boxSizing", !1, i),
					s = n ? Qe(e, u, n, a, i) : 0;
				return a && o && (s -= Math.ceil(e["offset" + u[0].toUpperCase() + u.slice(1)] - parseFloat(i[u]) - Qe(e, u, "border", !1, i) - .5)), s && (r = te.exec(t)) && "px" !== (r[3] || "px") && (e.style[u] = t, t = S.css(e, u)), Ye(0, t, s)
			}
		}
	}), S.cssHooks.marginLeft = Fe(y.reliableMarginLeft, function(e, t) {
		if (t) return (parseFloat(We(e, "marginLeft")) || e.getBoundingClientRect().left - Me(e, {
			marginLeft: 0
		}, function() {
			return e.getBoundingClientRect().left
		})) + "px"
	}), S.each({
		margin: "",
		padding: "",
		border: "Width"
	}, function(i, o) {
		S.cssHooks[i + o] = {
			expand: function(e) {
				for (var t = 0, n = {}, r = "string" == typeof e ? e.split(" ") : [e]; t < 4; t++) n[i + ne[t] + o] = r[t] || r[t - 2] || r[0];
				return n
			}
		}, "margin" !== i && (S.cssHooks[i + o].set = Ye)
	}), S.fn.extend({
		css: function(e, t) {
			return $(this, function(e, t, n) {
				var r, i, o = {},
					a = 0;
				if (Array.isArray(t)) {
					for (r = Re(e), i = t.length; a < i; a++) o[t[a]] = S.css(e, t[a], !1, r);
					return o
				}
				return void 0 !== n ? S.style(e, t, n) : S.css(e, t)
			}, e, t, 1 < arguments.length)
		}
	}), ((S.Tween = Ke).prototype = {
		constructor: Ke,
		init: function(e, t, n, r, i, o) {
			this.elem = e, this.prop = n, this.easing = i || S.easing._default, this.options = t, this.start = this.now = this.cur(), this.end = r, this.unit = o || (S.cssNumber[n] ? "" : "px")
		},
		cur: function() {
			var e = Ke.propHooks[this.prop];
			return e && e.get ? e.get(this) : Ke.propHooks._default.get(this)
		},
		run: function(e) {
			var t, n = Ke.propHooks[this.prop];
			return this.options.duration ? this.pos = t = S.easing[this.easing](e, this.options.duration * e, 0, 1, this.options.duration) : this.pos = t = e, this.now = (this.end - this.start) * t + this.start, this.options.step && this.options.step.call(this.elem, this.now, this), n && n.set ? n.set(this) : Ke.propHooks._default.set(this), this
		}
	}).init.prototype = Ke.prototype, (Ke.propHooks = {
		_default: {
			get: function(e) {
				var t;
				return 1 !== e.elem.nodeType || null != e.elem[e.prop] && null == e.elem.style[e.prop] ? e.elem[e.prop] : (t = S.css(e.elem, e.prop, "")) && "auto" !== t ? t : 0
			},
			set: function(e) {
				S.fx.step[e.prop] ? S.fx.step[e.prop](e) : 1 !== e.elem.nodeType || !S.cssHooks[e.prop] && null == e.elem.style[ze(e.prop)] ? e.elem[e.prop] = e.now : S.style(e.elem, e.prop, e.now + e.unit)
			}
		}
	}).scrollTop = Ke.propHooks.scrollLeft = {
		set: function(e) {
			e.elem.nodeType && e.elem.parentNode && (e.elem[e.prop] = e.now)
		}
	}, S.easing = {
		linear: function(e) {
			return e
		},
		swing: function(e) {
			return .5 - Math.cos(e * Math.PI) / 2
		},
		_default: "swing"
	}, S.fx = Ke.prototype.init, S.fx.step = {};
	var Ze, et, tt, nt, rt = /^(?:toggle|show|hide)$/,
		it = /queueHooks$/;

	function ot() {
		et && (!1 === E.hidden && C.requestAnimationFrame ? C.requestAnimationFrame(ot) : C.setTimeout(ot, S.fx.interval), S.fx.tick())
	}

	function at() {
		return C.setTimeout(function() {
			Ze = void 0
		}), Ze = Date.now()
	}

	function st(e, t) {
		var n, r = 0,
			i = {
				height: e
			};
		for (t = t ? 1 : 0; r < 4; r += 2 - t) i["margin" + (n = ne[r])] = i["padding" + n] = e;
		return t && (i.opacity = i.width = e), i
	}

	function ut(e, t, n) {
		for (var r, i = (lt.tweeners[t] || []).concat(lt.tweeners["*"]), o = 0, a = i.length; o < a; o++)
			if (r = i[o].call(n, t, e)) return r
	}

	function lt(o, e, t) {
		var n, a, r = 0,
			i = lt.prefilters.length,
			s = S.Deferred().always(function() {
				delete u.elem
			}),
			u = function() {
				if (a) return !1;
				for (var e = Ze || at(), t = Math.max(0, l.startTime + l.duration - e), n = 1 - (t / l.duration || 0), r = 0, i = l.tweens.length; r < i; r++) l.tweens[r].run(n);
				return s.notifyWith(o, [l, n, t]), n < 1 && i ? t : (i || s.notifyWith(o, [l, 1, 0]), s.resolveWith(o, [l]), !1)
			},
			l = s.promise({
				elem: o,
				props: S.extend({}, e),
				opts: S.extend(!0, {
					specialEasing: {},
					easing: S.easing._default
				}, t),
				originalProperties: e,
				originalOptions: t,
				startTime: Ze || at(),
				duration: t.duration,
				tweens: [],
				createTween: function(e, t) {
					var n = S.Tween(o, l.opts, e, t, l.opts.specialEasing[e] || l.opts.easing);
					return l.tweens.push(n), n
				},
				stop: function(e) {
					var t = 0,
						n = e ? l.tweens.length : 0;
					if (a) return this;
					for (a = !0; t < n; t++) l.tweens[t].run(1);
					return e ? (s.notifyWith(o, [l, 1, 0]), s.resolveWith(o, [l, e])) : s.rejectWith(o, [l, e]), this
				}
			}),
			c = l.props;
		for (! function(e, t) {
				var n, r, i, o, a;
				for (n in e)
					if (i = t[r = X(n)], o = e[n], Array.isArray(o) && (i = o[1], o = e[n] = o[0]), n !== r && (e[r] = o, delete e[n]), (a = S.cssHooks[r]) && "expand" in a)
						for (n in o = a.expand(o), delete e[r], o) n in e || (e[n] = o[n], t[n] = i);
					else t[r] = i
			}(c, l.opts.specialEasing); r < i; r++)
			if (n = lt.prefilters[r].call(l, o, c, l.opts)) return m(n.stop) && (S._queueHooks(l.elem, l.opts.queue).stop = n.stop.bind(n)), n;
		return S.map(c, ut, l), m(l.opts.start) && l.opts.start.call(o, l), l.progress(l.opts.progress).done(l.opts.done, l.opts.complete).fail(l.opts.fail).always(l.opts.always), S.fx.timer(S.extend(u, {
			elem: o,
			anim: l,
			queue: l.opts.queue
		})), l
	}
	S.Animation = S.extend(lt, {
		tweeners: {
			"*": [function(e, t) {
				var n = this.createTween(e, t);
				return se(n.elem, e, te.exec(t), n), n
			}]
		},
		tweener: function(e, t) {
			m(e) ? (t = e, e = ["*"]) : e = e.match(P);
			for (var n, r = 0, i = e.length; r < i; r++) n = e[r], lt.tweeners[n] = lt.tweeners[n] || [], lt.tweeners[n].unshift(t)
		},
		prefilters: [function(e, t, n) {
			var r, i, o, a, s, u, l, c, f = "width" in t || "height" in t,
				p = this,
				d = {},
				h = e.style,
				g = e.nodeType && ae(e),
				v = Y.get(e, "fxshow");
			for (r in n.queue || (null == (a = S._queueHooks(e, "fx")).unqueued && (a.unqueued = 0, s = a.empty.fire, a.empty.fire = function() {
					a.unqueued || s()
				}), a.unqueued++, p.always(function() {
					p.always(function() {
						a.unqueued--, S.queue(e, "fx").length || a.empty.fire()
					})
				})), t)
				if (i = t[r], rt.test(i)) {
					if (delete t[r], o = o || "toggle" === i, i === (g ? "hide" : "show")) {
						if ("show" !== i || !v || void 0 === v[r]) continue;
						g = !0
					}
					d[r] = v && v[r] || S.style(e, r)
				} if ((u = !S.isEmptyObject(t)) || !S.isEmptyObject(d))
				for (r in f && 1 === e.nodeType && (n.overflow = [h.overflow, h.overflowX, h.overflowY], null == (l = v && v.display) && (l = Y.get(e, "display")), "none" === (c = S.css(e, "display")) && (l ? c = l : (le([e], !0), l = e.style.display || l, c = S.css(e, "display"), le([e]))), ("inline" === c || "inline-block" === c && null != l) && "none" === S.css(e, "float") && (u || (p.done(function() {
						h.display = l
					}), null == l && (c = h.display, l = "none" === c ? "" : c)), h.display = "inline-block")), n.overflow && (h.overflow = "hidden", p.always(function() {
						h.overflow = n.overflow[0], h.overflowX = n.overflow[1], h.overflowY = n.overflow[2]
					})), u = !1, d) u || (v ? "hidden" in v && (g = v.hidden) : v = Y.access(e, "fxshow", {
					display: l
				}), o && (v.hidden = !g), g && le([e], !0), p.done(function() {
					for (r in g || le([e]), Y.remove(e, "fxshow"), d) S.style(e, r, d[r])
				})), u = ut(g ? v[r] : 0, r, p), r in v || (v[r] = u.start, g && (u.end = u.start, u.start = 0))
		}],
		prefilter: function(e, t) {
			t ? lt.prefilters.unshift(e) : lt.prefilters.push(e)
		}
	}), S.speed = function(e, t, n) {
		var r = e && "object" == typeof e ? S.extend({}, e) : {
			complete: n || !n && t || m(e) && e,
			duration: e,
			easing: n && t || t && !m(t) && t
		};
		return S.fx.off ? r.duration = 0 : "number" != typeof r.duration && (r.duration in S.fx.speeds ? r.duration = S.fx.speeds[r.duration] : r.duration = S.fx.speeds._default), null != r.queue && !0 !== r.queue || (r.queue = "fx"), r.old = r.complete, r.complete = function() {
			m(r.old) && r.old.call(this), r.queue && S.dequeue(this, r.queue)
		}, r
	}, S.fn.extend({
		fadeTo: function(e, t, n, r) {
			return this.filter(ae).css("opacity", 0).show().end().animate({
				opacity: t
			}, e, n, r)
		},
		animate: function(t, e, n, r) {
			var i = S.isEmptyObject(t),
				o = S.speed(e, n, r),
				a = function() {
					var e = lt(this, S.extend({}, t), o);
					(i || Y.get(this, "finish")) && e.stop(!0)
				};
			return a.finish = a, i || !1 === o.queue ? this.each(a) : this.queue(o.queue, a)
		},
		stop: function(i, e, o) {
			var a = function(e) {
				var t = e.stop;
				delete e.stop, t(o)
			};
			return "string" != typeof i && (o = e, e = i, i = void 0), e && this.queue(i || "fx", []), this.each(function() {
				var e = !0,
					t = null != i && i + "queueHooks",
					n = S.timers,
					r = Y.get(this);
				if (t) r[t] && r[t].stop && a(r[t]);
				else
					for (t in r) r[t] && r[t].stop && it.test(t) && a(r[t]);
				for (t = n.length; t--;) n[t].elem !== this || null != i && n[t].queue !== i || (n[t].anim.stop(o), e = !1, n.splice(t, 1));
				!e && o || S.dequeue(this, i)
			})
		},
		finish: function(a) {
			return !1 !== a && (a = a || "fx"), this.each(function() {
				var e, t = Y.get(this),
					n = t[a + "queue"],
					r = t[a + "queueHooks"],
					i = S.timers,
					o = n ? n.length : 0;
				for (t.finish = !0, S.queue(this, a, []), r && r.stop && r.stop.call(this, !0), e = i.length; e--;) i[e].elem === this && i[e].queue === a && (i[e].anim.stop(!0), i.splice(e, 1));
				for (e = 0; e < o; e++) n[e] && n[e].finish && n[e].finish.call(this);
				delete t.finish
			})
		}
	}), S.each(["toggle", "show", "hide"], function(e, r) {
		var i = S.fn[r];
		S.fn[r] = function(e, t, n) {
			return null == e || "boolean" == typeof e ? i.apply(this, arguments) : this.animate(st(r, !0), e, t, n)
		}
	}), S.each({
		slideDown: st("show"),
		slideUp: st("hide"),
		slideToggle: st("toggle"),
		fadeIn: {
			opacity: "show"
		},
		fadeOut: {
			opacity: "hide"
		},
		fadeToggle: {
			opacity: "toggle"
		}
	}, function(e, r) {
		S.fn[e] = function(e, t, n) {
			return this.animate(r, e, t, n)
		}
	}), S.timers = [], S.fx.tick = function() {
		var e, t = 0,
			n = S.timers;
		for (Ze = Date.now(); t < n.length; t++)(e = n[t])() || n[t] !== e || n.splice(t--, 1);
		n.length || S.fx.stop(), Ze = void 0
	}, S.fx.timer = function(e) {
		S.timers.push(e), S.fx.start()
	}, S.fx.interval = 13, S.fx.start = function() {
		et || (et = !0, ot())
	}, S.fx.stop = function() {
		et = null
	}, S.fx.speeds = {
		slow: 600,
		fast: 200,
		_default: 400
	}, S.fn.delay = function(r, e) {
		return r = S.fx && S.fx.speeds[r] || r, e = e || "fx", this.queue(e, function(e, t) {
			var n = C.setTimeout(e, r);
			t.stop = function() {
				C.clearTimeout(n)
			}
		})
	}, tt = E.createElement("input"), nt = E.createElement("select").appendChild(E.createElement("option")), tt.type = "checkbox", y.checkOn = "" !== tt.value, y.optSelected = nt.selected, (tt = E.createElement("input")).value = "t", tt.type = "radio", y.radioValue = "t" === tt.value;
	var ct, ft = S.expr.attrHandle;
	S.fn.extend({
		attr: function(e, t) {
			return $(this, S.attr, e, t, 1 < arguments.length)
		},
		removeAttr: function(e) {
			return this.each(function() {
				S.removeAttr(this, e)
			})
		}
	}), S.extend({
		attr: function(e, t, n) {
			var r, i, o = e.nodeType;
			if (3 !== o && 8 !== o && 2 !== o) return "undefined" == typeof e.getAttribute ? S.prop(e, t, n) : (1 === o && S.isXMLDoc(e) || (i = S.attrHooks[t.toLowerCase()] || (S.expr.match.bool.test(t) ? ct : void 0)), void 0 !== n ? null === n ? void S.removeAttr(e, t) : i && "set" in i && void 0 !== (r = i.set(e, n, t)) ? r : (e.setAttribute(t, n + ""), n) : i && "get" in i && null !== (r = i.get(e, t)) ? r : null == (r = S.find.attr(e, t)) ? void 0 : r)
		},
		attrHooks: {
			type: {
				set: function(e, t) {
					if (!y.radioValue && "radio" === t && A(e, "input")) {
						var n = e.value;
						return e.setAttribute("type", t), n && (e.value = n), t
					}
				}
			}
		},
		removeAttr: function(e, t) {
			var n, r = 0,
				i = t && t.match(P);
			if (i && 1 === e.nodeType)
				while (n = i[r++]) e.removeAttribute(n)
		}
	}), ct = {
		set: function(e, t, n) {
			return !1 === t ? S.removeAttr(e, n) : e.setAttribute(n, n), n
		}
	}, S.each(S.expr.match.bool.source.match(/\w+/g), function(e, t) {
		var a = ft[t] || S.find.attr;
		ft[t] = function(e, t, n) {
			var r, i, o = t.toLowerCase();
			return n || (i = ft[o], ft[o] = r, r = null != a(e, t, n) ? o : null, ft[o] = i), r
		}
	});
	var pt = /^(?:input|select|textarea|button)$/i,
		dt = /^(?:a|area)$/i;

	function ht(e) {
		return (e.match(P) || []).join(" ")
	}

	function gt(e) {
		return e.getAttribute && e.getAttribute("class") || ""
	}

	function vt(e) {
		return Array.isArray(e) ? e : "string" == typeof e && e.match(P) || []
	}
	S.fn.extend({
		prop: function(e, t) {
			return $(this, S.prop, e, t, 1 < arguments.length)
		},
		removeProp: function(e) {
			return this.each(function() {
				delete this[S.propFix[e] || e]
			})
		}
	}), S.extend({
		prop: function(e, t, n) {
			var r, i, o = e.nodeType;
			if (3 !== o && 8 !== o && 2 !== o) return 1 === o && S.isXMLDoc(e) || (t = S.propFix[t] || t, i = S.propHooks[t]), void 0 !== n ? i && "set" in i && void 0 !== (r = i.set(e, n, t)) ? r : e[t] = n : i && "get" in i && null !== (r = i.get(e, t)) ? r : e[t]
		},
		propHooks: {
			tabIndex: {
				get: function(e) {
					var t = S.find.attr(e, "tabindex");
					return t ? parseInt(t, 10) : pt.test(e.nodeName) || dt.test(e.nodeName) && e.href ? 0 : -1
				}
			}
		},
		propFix: {
			"for": "htmlFor",
			"class": "className"
		}
	}), y.optSelected || (S.propHooks.selected = {
		get: function(e) {
			var t = e.parentNode;
			return t && t.parentNode && t.parentNode.selectedIndex, null
		},
		set: function(e) {
			var t = e.parentNode;
			t && (t.selectedIndex, t.parentNode && t.parentNode.selectedIndex)
		}
	}), S.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function() {
		S.propFix[this.toLowerCase()] = this
	}), S.fn.extend({
		addClass: function(t) {
			var e, n, r, i, o, a, s, u = 0;
			if (m(t)) return this.each(function(e) {
				S(this).addClass(t.call(this, e, gt(this)))
			});
			if ((e = vt(t)).length)
				while (n = this[u++])
					if (i = gt(n), r = 1 === n.nodeType && " " + ht(i) + " ") {
						a = 0;
						while (o = e[a++]) r.indexOf(" " + o + " ") < 0 && (r += o + " ");
						i !== (s = ht(r)) && n.setAttribute("class", s)
					} return this
		},
		removeClass: function(t) {
			var e, n, r, i, o, a, s, u = 0;
			if (m(t)) return this.each(function(e) {
				S(this).removeClass(t.call(this, e, gt(this)))
			});
			if (!arguments.length) return this.attr("class", "");
			if ((e = vt(t)).length)
				while (n = this[u++])
					if (i = gt(n), r = 1 === n.nodeType && " " + ht(i) + " ") {
						a = 0;
						while (o = e[a++])
							while (-1 < r.indexOf(" " + o + " ")) r = r.replace(" " + o + " ", " ");
						i !== (s = ht(r)) && n.setAttribute("class", s)
					} return this
		},
		toggleClass: function(i, t) {
			var o = typeof i,
				a = "string" === o || Array.isArray(i);
			return "boolean" == typeof t && a ? t ? this.addClass(i) : this.removeClass(i) : m(i) ? this.each(function(e) {
				S(this).toggleClass(i.call(this, e, gt(this), t), t)
			}) : this.each(function() {
				var e, t, n, r;
				if (a) {
					t = 0, n = S(this), r = vt(i);
					while (e = r[t++]) n.hasClass(e) ? n.removeClass(e) : n.addClass(e)
				} else void 0 !== i && "boolean" !== o || ((e = gt(this)) && Y.set(this, "__className__", e), this.setAttribute && this.setAttribute("class", e || !1 === i ? "" : Y.get(this, "__className__") || ""))
			})
		},
		hasClass: function(e) {
			var t, n, r = 0;
			t = " " + e + " ";
			while (n = this[r++])
				if (1 === n.nodeType && -1 < (" " + ht(gt(n)) + " ").indexOf(t)) return !0;
			return !1
		}
	});
	var yt = /\r/g;
	S.fn.extend({
		val: function(n) {
			var r, e, i, t = this[0];
			return arguments.length ? (i = m(n), this.each(function(e) {
				var t;
				1 === this.nodeType && (null == (t = i ? n.call(this, e, S(this).val()) : n) ? t = "" : "number" == typeof t ? t += "" : Array.isArray(t) && (t = S.map(t, function(e) {
					return null == e ? "" : e + ""
				})), (r = S.valHooks[this.type] || S.valHooks[this.nodeName.toLowerCase()]) && "set" in r && void 0 !== r.set(this, t, "value") || (this.value = t))
			})) : t ? (r = S.valHooks[t.type] || S.valHooks[t.nodeName.toLowerCase()]) && "get" in r && void 0 !== (e = r.get(t, "value")) ? e : "string" == typeof(e = t.value) ? e.replace(yt, "") : null == e ? "" : e : void 0
		}
	}), S.extend({
		valHooks: {
			option: {
				get: function(e) {
					var t = S.find.attr(e, "value");
					return null != t ? t : ht(S.text(e))
				}
			},
			select: {
				get: function(e) {
					var t, n, r, i = e.options,
						o = e.selectedIndex,
						a = "select-one" === e.type,
						s = a ? null : [],
						u = a ? o + 1 : i.length;
					for (r = o < 0 ? u : a ? o : 0; r < u; r++)
						if (((n = i[r]).selected || r === o) && !n.disabled && (!n.parentNode.disabled || !A(n.parentNode, "optgroup"))) {
							if (t = S(n).val(), a) return t;
							s.push(t)
						} return s
				},
				set: function(e, t) {
					var n, r, i = e.options,
						o = S.makeArray(t),
						a = i.length;
					while (a--)((r = i[a]).selected = -1 < S.inArray(S.valHooks.option.get(r), o)) && (n = !0);
					return n || (e.selectedIndex = -1), o
				}
			}
		}
	}), S.each(["radio", "checkbox"], function() {
		S.valHooks[this] = {
			set: function(e, t) {
				if (Array.isArray(t)) return e.checked = -1 < S.inArray(S(e).val(), t)
			}
		}, y.checkOn || (S.valHooks[this].get = function(e) {
			return null === e.getAttribute("value") ? "on" : e.value
		})
	}), y.focusin = "onfocusin" in C;
	var mt = /^(?:focusinfocus|focusoutblur)$/,
		xt = function(e) {
			e.stopPropagation()
		};
	S.extend(S.event, {
		trigger: function(e, t, n, r) {
			var i, o, a, s, u, l, c, f, p = [n || E],
				d = v.call(e, "type") ? e.type : e,
				h = v.call(e, "namespace") ? e.namespace.split(".") : [];
			if (o = f = a = n = n || E, 3 !== n.nodeType && 8 !== n.nodeType && !mt.test(d + S.event.triggered) && (-1 < d.indexOf(".") && (d = (h = d.split(".")).shift(), h.sort()), u = d.indexOf(":") < 0 && "on" + d, (e = e[S.expando] ? e : new S.Event(d, "object" == typeof e && e)).isTrigger = r ? 2 : 3, e.namespace = h.join("."), e.rnamespace = e.namespace ? new RegExp("(^|\\.)" + h.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, e.result = void 0, e.target || (e.target = n), t = null == t ? [e] : S.makeArray(t, [e]), c = S.event.special[d] || {}, r || !c.trigger || !1 !== c.trigger.apply(n, t))) {
				if (!r && !c.noBubble && !x(n)) {
					for (s = c.delegateType || d, mt.test(s + d) || (o = o.parentNode); o; o = o.parentNode) p.push(o), a = o;
					a === (n.ownerDocument || E) && p.push(a.defaultView || a.parentWindow || C)
				}
				i = 0;
				while ((o = p[i++]) && !e.isPropagationStopped()) f = o, e.type = 1 < i ? s : c.bindType || d, (l = (Y.get(o, "events") || Object.create(null))[e.type] && Y.get(o, "handle")) && l.apply(o, t), (l = u && o[u]) && l.apply && V(o) && (e.result = l.apply(o, t), !1 === e.result && e.preventDefault());
				return e.type = d, r || e.isDefaultPrevented() || c._default && !1 !== c._default.apply(p.pop(), t) || !V(n) || u && m(n[d]) && !x(n) && ((a = n[u]) && (n[u] = null), S.event.triggered = d, e.isPropagationStopped() && f.addEventListener(d, xt), n[d](), e.isPropagationStopped() && f.removeEventListener(d, xt), S.event.triggered = void 0, a && (n[u] = a)), e.result
			}
		},
		simulate: function(e, t, n) {
			var r = S.extend(new S.Event, n, {
				type: e,
				isSimulated: !0
			});
			S.event.trigger(r, null, t)
		}
	}), S.fn.extend({
		trigger: function(e, t) {
			return this.each(function() {
				S.event.trigger(e, t, this)
			})
		},
		triggerHandler: function(e, t) {
			var n = this[0];
			if (n) return S.event.trigger(e, t, n, !0)
		}
	}), y.focusin || S.each({
		focus: "focusin",
		blur: "focusout"
	}, function(n, r) {
		var i = function(e) {
			S.event.simulate(r, e.target, S.event.fix(e))
		};
		S.event.special[r] = {
			setup: function() {
				var e = this.ownerDocument || this.document || this,
					t = Y.access(e, r);
				t || e.addEventListener(n, i, !0), Y.access(e, r, (t || 0) + 1)
			},
			teardown: function() {
				var e = this.ownerDocument || this.document || this,
					t = Y.access(e, r) - 1;
				t ? Y.access(e, r, t) : (e.removeEventListener(n, i, !0), Y.remove(e, r))
			}
		}
	});
	var bt = C.location,
		wt = {
			guid: Date.now()
		},
		Tt = /\?/;
	S.parseXML = function(e) {
		var t, n;
		if (!e || "string" != typeof e) return null;
		try {
			t = (new C.DOMParser).parseFromString(e, "text/xml")
		} catch (e) {}
		return n = t && t.getElementsByTagName("parsererror")[0], t && !n || S.error("Invalid XML: " + (n ? S.map(n.childNodes, function(e) {
			return e.textContent
		}).join("\n") : e)), t
	};
	var Ct = /\[\]$/,
		Et = /\r?\n/g,
		St = /^(?:submit|button|image|reset|file)$/i,
		kt = /^(?:input|select|textarea|keygen)/i;

	function At(n, e, r, i) {
		var t;
		if (Array.isArray(e)) S.each(e, function(e, t) {
			r || Ct.test(n) ? i(n, t) : At(n + "[" + ("object" == typeof t && null != t ? e : "") + "]", t, r, i)
		});
		else if (r || "object" !== w(e)) i(n, e);
		else
			for (t in e) At(n + "[" + t + "]", e[t], r, i)
	}
	S.param = function(e, t) {
		var n, r = [],
			i = function(e, t) {
				var n = m(t) ? t() : t;
				r[r.length] = encodeURIComponent(e) + "=" + encodeURIComponent(null == n ? "" : n)
			};
		if (null == e) return "";
		if (Array.isArray(e) || e.jquery && !S.isPlainObject(e)) S.each(e, function() {
			i(this.name, this.value)
		});
		else
			for (n in e) At(n, e[n], t, i);
		return r.join("&")
	}, S.fn.extend({
		serialize: function() {
			return S.param(this.serializeArray())
		},
		serializeArray: function() {
			return this.map(function() {
				var e = S.prop(this, "elements");
				return e ? S.makeArray(e) : this
			}).filter(function() {
				var e = this.type;
				return this.name && !S(this).is(":disabled") && kt.test(this.nodeName) && !St.test(e) && (this.checked || !pe.test(e))
			}).map(function(e, t) {
				var n = S(this).val();
				return null == n ? null : Array.isArray(n) ? S.map(n, function(e) {
					return {
						name: t.name,
						value: e.replace(Et, "\r\n")
					}
				}) : {
					name: t.name,
					value: n.replace(Et, "\r\n")
				}
			}).get()
		}
	});
	var Nt = /%20/g,
		jt = /#.*$/,
		Dt = /([?&])_=[^&]*/,
		qt = /^(.*?):[ \t]*([^\r\n]*)$/gm,
		Lt = /^(?:GET|HEAD)$/,
		Ht = /^\/\//,
		Ot = {},
		Pt = {},
		Rt = "*/".concat("*"),
		Mt = E.createElement("a");

	function It(o) {
		return function(e, t) {
			"string" != typeof e && (t = e, e = "*");
			var n, r = 0,
				i = e.toLowerCase().match(P) || [];
			if (m(t))
				while (n = i[r++]) "+" === n[0] ? (n = n.slice(1) || "*", (o[n] = o[n] || []).unshift(t)) : (o[n] = o[n] || []).push(t)
		}
	}

	function Wt(t, i, o, a) {
		var s = {},
			u = t === Pt;

		function l(e) {
			var r;
			return s[e] = !0, S.each(t[e] || [], function(e, t) {
				var n = t(i, o, a);
				return "string" != typeof n || u || s[n] ? u ? !(r = n) : void 0 : (i.dataTypes.unshift(n), l(n), !1)
			}), r
		}
		return l(i.dataTypes[0]) || !s["*"] && l("*")
	}

	function Ft(e, t) {
		var n, r, i = S.ajaxSettings.flatOptions || {};
		for (n in t) void 0 !== t[n] && ((i[n] ? e : r || (r = {}))[n] = t[n]);
		return r && S.extend(!0, e, r), e
	}
	Mt.href = bt.href, S.extend({
		active: 0,
		lastModified: {},
		etag: {},
		ajaxSettings: {
			url: bt.href,
			type: "GET",
			isLocal: /^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(bt.protocol),
			global: !0,
			processData: !0,
			async: !0,
			contentType: "application/x-www-form-urlencoded; charset=UTF-8",
			accepts: {
				"*": Rt,
				text: "text/plain",
				html: "text/html",
				xml: "application/xml, text/xml",
				json: "application/json, text/javascript"
			},
			contents: {
				xml: /\bxml\b/,
				html: /\bhtml/,
				json: /\bjson\b/
			},
			responseFields: {
				xml: "responseXML",
				text: "responseText",
				json: "responseJSON"
			},
			converters: {
				"* text": String,
				"text html": !0,
				"text json": JSON.parse,
				"text xml": S.parseXML
			},
			flatOptions: {
				url: !0,
				context: !0
			}
		},
		ajaxSetup: function(e, t) {
			return t ? Ft(Ft(e, S.ajaxSettings), t) : Ft(S.ajaxSettings, e)
		},
		ajaxPrefilter: It(Ot),
		ajaxTransport: It(Pt),
		ajax: function(e, t) {
			"object" == typeof e && (t = e, e = void 0), t = t || {};
			var c, f, p, n, d, r, h, g, i, o, v = S.ajaxSetup({}, t),
				y = v.context || v,
				m = v.context && (y.nodeType || y.jquery) ? S(y) : S.event,
				x = S.Deferred(),
				b = S.Callbacks("once memory"),
				w = v.statusCode || {},
				a = {},
				s = {},
				u = "canceled",
				T = {
					readyState: 0,
					getResponseHeader: function(e) {
						var t;
						if (h) {
							if (!n) {
								n = {};
								while (t = qt.exec(p)) n[t[1].toLowerCase() + " "] = (n[t[1].toLowerCase() + " "] || []).concat(t[2])
							}
							t = n[e.toLowerCase() + " "]
						}
						return null == t ? null : t.join(", ")
					},
					getAllResponseHeaders: function() {
						return h ? p : null
					},
					setRequestHeader: function(e, t) {
						return null == h && (e = s[e.toLowerCase()] = s[e.toLowerCase()] || e, a[e] = t), this
					},
					overrideMimeType: function(e) {
						return null == h && (v.mimeType = e), this
					},
					statusCode: function(e) {
						var t;
						if (e)
							if (h) T.always(e[T.status]);
							else
								for (t in e) w[t] = [w[t], e[t]];
						return this
					},
					abort: function(e) {
						var t = e || u;
						return c && c.abort(t), l(0, t), this
					}
				};
			if (x.promise(T), v.url = ((e || v.url || bt.href) + "").replace(Ht, bt.protocol + "//"), v.type = t.method || t.type || v.method || v.type, v.dataTypes = (v.dataType || "*").toLowerCase().match(P) || [""], null == v.crossDomain) {
				r = E.createElement("a");
				try {
					r.href = v.url, r.href = r.href, v.crossDomain = Mt.protocol + "//" + Mt.host != r.protocol + "//" + r.host
				} catch (e) {
					v.crossDomain = !0
				}
			}
			if (v.data && v.processData && "string" != typeof v.data && (v.data = S.param(v.data, v.traditional)), Wt(Ot, v, t, T), h) return T;
			for (i in (g = S.event && v.global) && 0 == S.active++ && S.event.trigger("ajaxStart"), v.type = v.type.toUpperCase(), v.hasContent = !Lt.test(v.type), f = v.url.replace(jt, ""), v.hasContent ? v.data && v.processData && 0 === (v.contentType || "").indexOf("application/x-www-form-urlencoded") && (v.data = v.data.replace(Nt, "+")) : (o = v.url.slice(f.length), v.data && (v.processData || "string" == typeof v.data) && (f += (Tt.test(f) ? "&" : "?") + v.data, delete v.data), !1 === v.cache && (f = f.replace(Dt, "$1"), o = (Tt.test(f) ? "&" : "?") + "_=" + wt.guid++ + o), v.url = f + o), v.ifModified && (S.lastModified[f] && T.setRequestHeader("If-Modified-Since", S.lastModified[f]), S.etag[f] && T.setRequestHeader("If-None-Match", S.etag[f])), (v.data && v.hasContent && !1 !== v.contentType || t.contentType) && T.setRequestHeader("Content-Type", v.contentType), T.setRequestHeader("Accept", v.dataTypes[0] && v.accepts[v.dataTypes[0]] ? v.accepts[v.dataTypes[0]] + ("*" !== v.dataTypes[0] ? ", " + Rt + "; q=0.01" : "") : v.accepts["*"]), v.headers) T.setRequestHeader(i, v.headers[i]);
			if (v.beforeSend && (!1 === v.beforeSend.call(y, T, v) || h)) return T.abort();
			if (u = "abort", b.add(v.complete), T.done(v.success), T.fail(v.error), c = Wt(Pt, v, t, T)) {
				if (T.readyState = 1, g && m.trigger("ajaxSend", [T, v]), h) return T;
				v.async && 0 < v.timeout && (d = C.setTimeout(function() {
					T.abort("timeout")
				}, v.timeout));
				try {
					h = !1, c.send(a, l)
				} catch (e) {
					if (h) throw e;
					l(-1, e)
				}
			} else l(-1, "No Transport");

			function l(e, t, n, r) {
				var i, o, a, s, u, l = t;
				h || (h = !0, d && C.clearTimeout(d), c = void 0, p = r || "", T.readyState = 0 < e ? 4 : 0, i = 200 <= e && e < 300 || 304 === e, n && (s = function(e, t, n) {
					var r, i, o, a, s = e.contents,
						u = e.dataTypes;
					while ("*" === u[0]) u.shift(), void 0 === r && (r = e.mimeType || t.getResponseHeader("Content-Type"));
					if (r)
						for (i in s)
							if (s[i] && s[i].test(r)) {
								u.unshift(i);
								break
							} if (u[0] in n) o = u[0];
					else {
						for (i in n) {
							if (!u[0] || e.converters[i + " " + u[0]]) {
								o = i;
								break
							}
							a || (a = i)
						}
						o = o || a
					}
					if (o) return o !== u[0] && u.unshift(o), n[o]
				}(v, T, n)), !i && -1 < S.inArray("script", v.dataTypes) && S.inArray("json", v.dataTypes) < 0 && (v.converters["text script"] = function() {}), s = function(e, t, n, r) {
					var i, o, a, s, u, l = {},
						c = e.dataTypes.slice();
					if (c[1])
						for (a in e.converters) l[a.toLowerCase()] = e.converters[a];
					o = c.shift();
					while (o)
						if (e.responseFields[o] && (n[e.responseFields[o]] = t), !u && r && e.dataFilter && (t = e.dataFilter(t, e.dataType)), u = o, o = c.shift())
							if ("*" === o) o = u;
							else if ("*" !== u && u !== o) {
						if (!(a = l[u + " " + o] || l["* " + o]))
							for (i in l)
								if ((s = i.split(" "))[1] === o && (a = l[u + " " + s[0]] || l["* " + s[0]])) {
									!0 === a ? a = l[i] : !0 !== l[i] && (o = s[0], c.unshift(s[1]));
									break
								} if (!0 !== a)
							if (a && e["throws"]) t = a(t);
							else try {
								t = a(t)
							} catch (e) {
								return {
									state: "parsererror",
									error: a ? e : "No conversion from " + u + " to " + o
								}
							}
					}
					return {
						state: "success",
						data: t
					}
				}(v, s, T, i), i ? (v.ifModified && ((u = T.getResponseHeader("Last-Modified")) && (S.lastModified[f] = u), (u = T.getResponseHeader("etag")) && (S.etag[f] = u)), 204 === e || "HEAD" === v.type ? l = "nocontent" : 304 === e ? l = "notmodified" : (l = s.state, o = s.data, i = !(a = s.error))) : (a = l, !e && l || (l = "error", e < 0 && (e = 0))), T.status = e, T.statusText = (t || l) + "", i ? x.resolveWith(y, [o, l, T]) : x.rejectWith(y, [T, l, a]), T.statusCode(w), w = void 0, g && m.trigger(i ? "ajaxSuccess" : "ajaxError", [T, v, i ? o : a]), b.fireWith(y, [T, l]), g && (m.trigger("ajaxComplete", [T, v]), --S.active || S.event.trigger("ajaxStop")))
			}
			return T
		},
		getJSON: function(e, t, n) {
			return S.get(e, t, n, "json")
		},
		getScript: function(e, t) {
			return S.get(e, void 0, t, "script")
		}
	}), S.each(["get", "post"], function(e, i) {
		S[i] = function(e, t, n, r) {
			return m(t) && (r = r || n, n = t, t = void 0), S.ajax(S.extend({
				url: e,
				type: i,
				dataType: r,
				data: t,
				success: n
			}, S.isPlainObject(e) && e))
		}
	}), S.ajaxPrefilter(function(e) {
		var t;
		for (t in e.headers) "content-type" === t.toLowerCase() && (e.contentType = e.headers[t] || "")
	}), S._evalUrl = function(e, t, n) {
		return S.ajax({
			url: e,
			type: "GET",
			dataType: "script",
			cache: !0,
			async: !1,
			global: !1,
			converters: {
				"text script": function() {}
			},
			dataFilter: function(e) {
				S.globalEval(e, t, n)
			}
		})
	}, S.fn.extend({
		wrapAll: function(e) {
			var t;
			return this[0] && (m(e) && (e = e.call(this[0])), t = S(e, this[0].ownerDocument).eq(0).clone(!0), this[0].parentNode && t.insertBefore(this[0]), t.map(function() {
				var e = this;
				while (e.firstElementChild) e = e.firstElementChild;
				return e
			}).append(this)), this
		},
		wrapInner: function(n) {
			return m(n) ? this.each(function(e) {
				S(this).wrapInner(n.call(this, e))
			}) : this.each(function() {
				var e = S(this),
					t = e.contents();
				t.length ? t.wrapAll(n) : e.append(n)
			})
		},
		wrap: function(t) {
			var n = m(t);
			return this.each(function(e) {
				S(this).wrapAll(n ? t.call(this, e) : t)
			})
		},
		unwrap: function(e) {
			return this.parent(e).not("body").each(function() {
				S(this).replaceWith(this.childNodes)
			}), this
		}
	}), S.expr.pseudos.hidden = function(e) {
		return !S.expr.pseudos.visible(e)
	}, S.expr.pseudos.visible = function(e) {
		return !!(e.offsetWidth || e.offsetHeight || e.getClientRects().length)
	}, S.ajaxSettings.xhr = function() {
		try {
			return new C.XMLHttpRequest
		} catch (e) {}
	};
	var Bt = {
			0: 200,
			1223: 204
		},
		$t = S.ajaxSettings.xhr();
	y.cors = !!$t && "withCredentials" in $t, y.ajax = $t = !!$t, S.ajaxTransport(function(i) {
		var o, a;
		if (y.cors || $t && !i.crossDomain) return {
			send: function(e, t) {
				var n, r = i.xhr();
				if (r.open(i.type, i.url, i.async, i.username, i.password), i.xhrFields)
					for (n in i.xhrFields) r[n] = i.xhrFields[n];
				for (n in i.mimeType && r.overrideMimeType && r.overrideMimeType(i.mimeType), i.crossDomain || e["X-Requested-With"] || (e["X-Requested-With"] = "XMLHttpRequest"), e) r.setRequestHeader(n, e[n]);
				o = function(e) {
					return function() {
						o && (o = a = r.onload = r.onerror = r.onabort = r.ontimeout = r.onreadystatechange = null, "abort" === e ? r.abort() : "error" === e ? "number" != typeof r.status ? t(0, "error") : t(r.status, r.statusText) : t(Bt[r.status] || r.status, r.statusText, "text" !== (r.responseType || "text") || "string" != typeof r.responseText ? {
							binary: r.response
						} : {
							text: r.responseText
						}, r.getAllResponseHeaders()))
					}
				}, r.onload = o(), a = r.onerror = r.ontimeout = o("error"), void 0 !== r.onabort ? r.onabort = a : r.onreadystatechange = function() {
					4 === r.readyState && C.setTimeout(function() {
						o && a()
					})
				}, o = o("abort");
				try {
					r.send(i.hasContent && i.data || null)
				} catch (e) {
					if (o) throw e
				}
			},
			abort: function() {
				o && o()
			}
		}
	}), S.ajaxPrefilter(function(e) {
		e.crossDomain && (e.contents.script = !1)
	}), S.ajaxSetup({
		accepts: {
			script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
		},
		contents: {
			script: /\b(?:java|ecma)script\b/
		},
		converters: {
			"text script": function(e) {
				return S.globalEval(e), e
			}
		}
	}), S.ajaxPrefilter("script", function(e) {
		void 0 === e.cache && (e.cache = !1), e.crossDomain && (e.type = "GET")
	}), S.ajaxTransport("script", function(n) {
		var r, i;
		if (n.crossDomain || n.scriptAttrs) return {
			send: function(e, t) {
				r = S("<script>").attr(n.scriptAttrs || {}).prop({
					charset: n.scriptCharset,
					src: n.url
				}).on("load error", i = function(e) {
					r.remove(), i = null, e && t("error" === e.type ? 404 : 200, e.type)
				}), E.head.appendChild(r[0])
			},
			abort: function() {
				i && i()
			}
		}
	});
	var _t, zt = [],
		Ut = /(=)\?(?=&|$)|\?\?/;
	S.ajaxSetup({
		jsonp: "callback",
		jsonpCallback: function() {
			var e = zt.pop() || S.expando + "_" + wt.guid++;
			return this[e] = !0, e
		}
	}), S.ajaxPrefilter("json jsonp", function(e, t, n) {
		var r, i, o, a = !1 !== e.jsonp && (Ut.test(e.url) ? "url" : "string" == typeof e.data && 0 === (e.contentType || "").indexOf("application/x-www-form-urlencoded") && Ut.test(e.data) && "data");
		if (a || "jsonp" === e.dataTypes[0]) return r = e.jsonpCallback = m(e.jsonpCallback) ? e.jsonpCallback() : e.jsonpCallback, a ? e[a] = e[a].replace(Ut, "$1" + r) : !1 !== e.jsonp && (e.url += (Tt.test(e.url) ? "&" : "?") + e.jsonp + "=" + r), e.converters["script json"] = function() {
			return o || S.error(r + " was not called"), o[0]
		}, e.dataTypes[0] = "json", i = C[r], C[r] = function() {
			o = arguments
		}, n.always(function() {
			void 0 === i ? S(C).removeProp(r) : C[r] = i, e[r] && (e.jsonpCallback = t.jsonpCallback, zt.push(r)), o && m(i) && i(o[0]), o = i = void 0
		}), "script"
	}), y.createHTMLDocument = ((_t = E.implementation.createHTMLDocument("").body).innerHTML = "<form></form><form></form>", 2 === _t.childNodes.length), S.parseHTML = function(e, t, n) {
		return "string" != typeof e ? [] : ("boolean" == typeof t && (n = t, t = !1), t || (y.createHTMLDocument ? ((r = (t = E.implementation.createHTMLDocument("")).createElement("base")).href = E.location.href, t.head.appendChild(r)) : t = E), o = !n && [], (i = N.exec(e)) ? [t.createElement(i[1])] : (i = xe([e], t, o), o && o.length && S(o).remove(), S.merge([], i.childNodes)));
		var r, i, o
	}, S.fn.load = function(e, t, n) {
		var r, i, o, a = this,
			s = e.indexOf(" ");
		return -1 < s && (r = ht(e.slice(s)), e = e.slice(0, s)), m(t) ? (n = t, t = void 0) : t && "object" == typeof t && (i = "POST"), 0 < a.length && S.ajax({
			url: e,
			type: i || "GET",
			dataType: "html",
			data: t
		}).done(function(e) {
			o = arguments, a.html(r ? S("<div>").append(S.parseHTML(e)).find(r) : e)
		}).always(n && function(e, t) {
			a.each(function() {
				n.apply(this, o || [e.responseText, t, e])
			})
		}), this
	}, S.expr.pseudos.animated = function(t) {
		return S.grep(S.timers, function(e) {
			return t === e.elem
		}).length
	}, S.offset = {
		setOffset: function(e, t, n) {
			var r, i, o, a, s, u, l = S.css(e, "position"),
				c = S(e),
				f = {};
			"static" === l && (e.style.position = "relative"), s = c.offset(), o = S.css(e, "top"), u = S.css(e, "left"), ("absolute" === l || "fixed" === l) && -1 < (o + u).indexOf("auto") ? (a = (r = c.position()).top, i = r.left) : (a = parseFloat(o) || 0, i = parseFloat(u) || 0), m(t) && (t = t.call(e, n, S.extend({}, s))), null != t.top && (f.top = t.top - s.top + a), null != t.left && (f.left = t.left - s.left + i), "using" in t ? t.using.call(e, f) : c.css(f)
		}
	}, S.fn.extend({
		offset: function(t) {
			if (arguments.length) return void 0 === t ? this : this.each(function(e) {
				S.offset.setOffset(this, t, e)
			});
			var e, n, r = this[0];
			return r ? r.getClientRects().length ? (e = r.getBoundingClientRect(), n = r.ownerDocument.defaultView, {
				top: e.top + n.pageYOffset,
				left: e.left + n.pageXOffset
			}) : {
				top: 0,
				left: 0
			} : void 0
		},
		position: function() {
			if (this[0]) {
				var e, t, n, r = this[0],
					i = {
						top: 0,
						left: 0
					};
				if ("fixed" === S.css(r, "position")) t = r.getBoundingClientRect();
				else {
					t = this.offset(), n = r.ownerDocument, e = r.offsetParent || n.documentElement;
					while (e && (e === n.body || e === n.documentElement) && "static" === S.css(e, "position")) e = e.parentNode;
					e && e !== r && 1 === e.nodeType && ((i = S(e).offset()).top += S.css(e, "borderTopWidth", !0), i.left += S.css(e, "borderLeftWidth", !0))
				}
				return {
					top: t.top - i.top - S.css(r, "marginTop", !0),
					left: t.left - i.left - S.css(r, "marginLeft", !0)
				}
			}
		},
		offsetParent: function() {
			return this.map(function() {
				var e = this.offsetParent;
				while (e && "static" === S.css(e, "position")) e = e.offsetParent;
				return e || re
			})
		}
	}), S.each({
		scrollLeft: "pageXOffset",
		scrollTop: "pageYOffset"
	}, function(t, i) {
		var o = "pageYOffset" === i;
		S.fn[t] = function(e) {
			return $(this, function(e, t, n) {
				var r;
				if (x(e) ? r = e : 9 === e.nodeType && (r = e.defaultView), void 0 === n) return r ? r[i] : e[t];
				r ? r.scrollTo(o ? r.pageXOffset : n, o ? n : r.pageYOffset) : e[t] = n
			}, t, e, arguments.length)
		}
	}), S.each(["top", "left"], function(e, n) {
		S.cssHooks[n] = Fe(y.pixelPosition, function(e, t) {
			if (t) return t = We(e, n), Pe.test(t) ? S(e).position()[n] + "px" : t
		})
	}), S.each({
		Height: "height",
		Width: "width"
	}, function(a, s) {
		S.each({
			padding: "inner" + a,
			content: s,
			"": "outer" + a
		}, function(r, o) {
			S.fn[o] = function(e, t) {
				var n = arguments.length && (r || "boolean" != typeof e),
					i = r || (!0 === e || !0 === t ? "margin" : "border");
				return $(this, function(e, t, n) {
					var r;
					return x(e) ? 0 === o.indexOf("outer") ? e["inner" + a] : e.document.documentElement["client" + a] : 9 === e.nodeType ? (r = e.documentElement, Math.max(e.body["scroll" + a], r["scroll" + a], e.body["offset" + a], r["offset" + a], r["client" + a])) : void 0 === n ? S.css(e, t, i) : S.style(e, t, n, i)
				}, s, n ? e : void 0, n)
			}
		})
	}), S.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], function(e, t) {
		S.fn[t] = function(e) {
			return this.on(t, e)
		}
	}), S.fn.extend({
		bind: function(e, t, n) {
			return this.on(e, null, t, n)
		},
		unbind: function(e, t) {
			return this.off(e, null, t)
		},
		delegate: function(e, t, n, r) {
			return this.on(t, e, n, r)
		},
		undelegate: function(e, t, n) {
			return 1 === arguments.length ? this.off(e, "**") : this.off(t, e || "**", n)
		},
		hover: function(e, t) {
			return this.mouseenter(e).mouseleave(t || e)
		}
	}), S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "), function(e, n) {
		S.fn[n] = function(e, t) {
			return 0 < arguments.length ? this.on(n, null, e, t) : this.trigger(n)
		}
	});
	var Xt = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;
	S.proxy = function(e, t) {
		var n, r, i;
		if ("string" == typeof t && (n = e[t], t = e, e = n), m(e)) return r = s.call(arguments, 2), (i = function() {
			return e.apply(t || this, r.concat(s.call(arguments)))
		}).guid = e.guid = e.guid || S.guid++, i
	}, S.holdReady = function(e) {
		e ? S.readyWait++ : S.ready(!0)
	}, S.isArray = Array.isArray, S.parseJSON = JSON.parse, S.nodeName = A, S.isFunction = m, S.isWindow = x, S.camelCase = X, S.type = w, S.now = Date.now, S.isNumeric = function(e) {
		var t = S.type(e);
		return ("number" === t || "string" === t) && !isNaN(e - parseFloat(e))
	}, S.trim = function(e) {
		return null == e ? "" : (e + "").replace(Xt, "")
	}, "function" == typeof define && define.amd && define("jquery", [], function() {
		return S
	});
	var Vt = C.jQuery,
		Gt = C.$;
	return S.noConflict = function(e) {
		return C.$ === S && (C.$ = Gt), e && C.jQuery === S && (C.jQuery = Vt), S
	}, "undefined" == typeof e && (C.jQuery = C.$ = S), S
});
jQuery.noConflict(); /*!jQuery Migrate v3.3.2 | (c) OpenJS Foundation and other contributors | jquery.org/license*/
"undefined" == typeof jQuery.migrateMute && (jQuery.migrateMute = !0),
	function(t) {
		"use strict";
		"function" == typeof define && define.amd ? define(["jquery"], function(e) {
			return t(e, window)
		}) : "object" == typeof module && module.exports ? module.exports = t(require("jquery"), window) : t(jQuery, window)
	}(function(s, n) {
		"use strict";

		function e(e) {
			return 0 <= function(e, t) {
				for (var r = /^(\d+)\.(\d+)\.(\d+)/, n = r.exec(e) || [], o = r.exec(t) || [], i = 1; i <= 3; i++) {
					if (+o[i] < +n[i]) return 1;
					if (+n[i] < +o[i]) return -1
				}
				return 0
			}(s.fn.jquery, e)
		}
		s.migrateVersion = "3.3.2", n.console && n.console.log && (s && e("3.0.0") || n.console.log("JQMIGRATE: jQuery 3.0.0+ REQUIRED"), s.migrateWarnings && n.console.log("JQMIGRATE: Migrate plugin loaded multiple times"), n.console.log("JQMIGRATE: Migrate is installed" + (s.migrateMute ? "" : " with logging active") + ", version " + s.migrateVersion));
		var r = {};

		function u(e) {
			var t = n.console;
			s.migrateDeduplicateWarnings && r[e] || (r[e] = !0, s.migrateWarnings.push(e), t && t.warn && !s.migrateMute && (t.warn("JQMIGRATE: " + e), s.migrateTrace && t.trace && t.trace()))
		}

		function t(e, t, r, n) {
			Object.defineProperty(e, t, {
				configurable: !0,
				enumerable: !0,
				get: function() {
					return u(n), r
				},
				set: function(e) {
					u(n), r = e
				}
			})
		}

		function o(e, t, r, n) {
			e[t] = function() {
				return u(n), r.apply(this, arguments)
			}
		}
		s.migrateDeduplicateWarnings = !0, s.migrateWarnings = [], void 0 === s.migrateTrace && (s.migrateTrace = !0), s.migrateReset = function() {
			r = {}, s.migrateWarnings.length = 0
		}, "BackCompat" === n.document.compatMode && u("jQuery is not compatible with Quirks Mode");
		var i, a, c, d = {},
			l = s.fn.init,
			p = s.find,
			f = /\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/,
			y = /\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/g,
			m = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;
		for (i in s.fn.init = function(e) {
				var t = Array.prototype.slice.call(arguments);
				return "string" == typeof e && "#" === e && (u("jQuery( '#' ) is not a valid selector"), t[0] = []), l.apply(this, t)
			}, s.fn.init.prototype = s.fn, s.find = function(t) {
				var r = Array.prototype.slice.call(arguments);
				if ("string" == typeof t && f.test(t)) try {
					n.document.querySelector(t)
				} catch (e) {
					t = t.replace(y, function(e, t, r, n) {
						return "[" + t + r + '"' + n + '"]'
					});
					try {
						n.document.querySelector(t), u("Attribute selector with '#' must be quoted: " + r[0]), r[0] = t
					} catch (e) {
						u("Attribute selector with '#' was not fixed: " + r[0])
					}
				}
				return p.apply(this, r)
			}, p) Object.prototype.hasOwnProperty.call(p, i) && (s.find[i] = p[i]);
		o(s.fn, "size", function() {
			return this.length
		}, "jQuery.fn.size() is deprecated and removed; use the .length property"), o(s, "parseJSON", function() {
			return JSON.parse.apply(null, arguments)
		}, "jQuery.parseJSON is deprecated; use JSON.parse"), o(s, "holdReady", s.holdReady, "jQuery.holdReady is deprecated"), o(s, "unique", s.uniqueSort, "jQuery.unique is deprecated; use jQuery.uniqueSort"), t(s.expr, "filters", s.expr.pseudos, "jQuery.expr.filters is deprecated; use jQuery.expr.pseudos"), t(s.expr, ":", s.expr.pseudos, "jQuery.expr[':'] is deprecated; use jQuery.expr.pseudos"), e("3.1.1") && o(s, "trim", function(e) {
			return null == e ? "" : (e + "").replace(m, "")
		}, "jQuery.trim is deprecated; use String.prototype.trim"), e("3.2.0") && (o(s, "nodeName", function(e, t) {
			return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase()
		}, "jQuery.nodeName is deprecated"), o(s, "isArray", Array.isArray, "jQuery.isArray is deprecated; use Array.isArray")), e("3.3.0") && (o(s, "isNumeric", function(e) {
			var t = typeof e;
			return ("number" == t || "string" == t) && !isNaN(e - parseFloat(e))
		}, "jQuery.isNumeric() is deprecated"), s.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), function(e, t) {
			d["[object " + t + "]"] = t.toLowerCase()
		}), o(s, "type", function(e) {
			return null == e ? e + "" : "object" == typeof e || "function" == typeof e ? d[Object.prototype.toString.call(e)] || "object" : typeof e
		}, "jQuery.type is deprecated"), o(s, "isFunction", function(e) {
			return "function" == typeof e
		}, "jQuery.isFunction() is deprecated"), o(s, "isWindow", function(e) {
			return null != e && e === e.window
		}, "jQuery.isWindow() is deprecated")), s.ajax && (a = s.ajax, c = /(=)\?(?=&|$)|\?\?/, s.ajax = function() {
			var e = a.apply(this, arguments);
			return e.promise && (o(e, "success", e.done, "jQXHR.success is deprecated and removed"), o(e, "error", e.fail, "jQXHR.error is deprecated and removed"), o(e, "complete", e.always, "jQXHR.complete is deprecated and removed")), e
		}, e("4.0.0") || s.ajaxPrefilter("+json", function(e) {
			!1 !== e.jsonp && (c.test(e.url) || "string" == typeof e.data && 0 === (e.contentType || "").indexOf("application/x-www-form-urlencoded") && c.test(e.data)) && u("JSON-to-JSONP auto-promotion is deprecated")
		}));
		var g = s.fn.removeAttr,
			h = s.fn.toggleClass,
			v = /\S+/g;

		function j(e) {
			return e.replace(/-([a-z])/g, function(e, t) {
				return t.toUpperCase()
			})
		}
		s.fn.removeAttr = function(e) {
			var r = this;
			return s.each(e.match(v), function(e, t) {
				s.expr.match.bool.test(t) && (u("jQuery.fn.removeAttr no longer sets boolean properties: " + t), r.prop(t, !1))
			}), g.apply(this, arguments)
		};
		var Q, b = !(s.fn.toggleClass = function(t) {
				return void 0 !== t && "boolean" != typeof t ? h.apply(this, arguments) : (u("jQuery.fn.toggleClass( boolean ) is deprecated"), this.each(function() {
					var e = this.getAttribute && this.getAttribute("class") || "";
					e && s.data(this, "__className__", e), this.setAttribute && this.setAttribute("class", !e && !1 !== t && s.data(this, "__className__") || "")
				}))
			}),
			w = /^[a-z]/,
			x = /^(?:Border(?:Top|Right|Bottom|Left)?(?:Width|)|(?:Margin|Padding)?(?:Top|Right|Bottom|Left)?|(?:Min|Max)?(?:Width|Height))$/;
		s.swap && s.each(["height", "width", "reliableMarginRight"], function(e, t) {
			var r = s.cssHooks[t] && s.cssHooks[t].get;
			r && (s.cssHooks[t].get = function() {
				var e;
				return b = !0, e = r.apply(this, arguments), b = !1, e
			})
		}), s.swap = function(e, t, r, n) {
			var o, i, a = {};
			for (i in b || u("jQuery.swap() is undocumented and deprecated"), t) a[i] = e.style[i], e.style[i] = t[i];
			for (i in o = r.apply(e, n || []), t) e.style[i] = a[i];
			return o
		}, e("3.4.0") && "undefined" != typeof Proxy && (s.cssProps = new Proxy(s.cssProps || {}, {
			set: function() {
				return u("JQMIGRATE: jQuery.cssProps is deprecated"), Reflect.set.apply(this, arguments)
			}
		})), s.cssNumber || (s.cssNumber = {}), Q = s.fn.css, s.fn.css = function(e, t) {
			var r, n, o = this;
			return e && "object" == typeof e && !Array.isArray(e) ? (s.each(e, function(e, t) {
				s.fn.css.call(o, e, t)
			}), this) : ("number" == typeof t && (r = j(e), n = r, w.test(n) && x.test(n[0].toUpperCase() + n.slice(1)) || s.cssNumber[r] || u('Number-typed values are deprecated for jQuery.fn.css( "' + e + '", value )')), Q.apply(this, arguments))
		};
		var A, k, S, M, N = s.data;
		s.data = function(e, t, r) {
			var n, o, i;
			if (t && "object" == typeof t && 2 === arguments.length) {
				for (i in n = s.hasData(e) && N.call(this, e), o = {}, t) i !== j(i) ? (u("jQuery.data() always sets/gets camelCased names: " + i), n[i] = t[i]) : o[i] = t[i];
				return N.call(this, e, o), t
			}
			return t && "string" == typeof t && t !== j(t) && (n = s.hasData(e) && N.call(this, e)) && t in n ? (u("jQuery.data() always sets/gets camelCased names: " + t), 2 < arguments.length && (n[t] = r), n[t]) : N.apply(this, arguments)
		}, s.fx && (S = s.Tween.prototype.run, M = function(e) {
			return e
		}, s.Tween.prototype.run = function() {
			1 < s.easing[this.easing].length && (u("'jQuery.easing." + this.easing.toString() + "' should use only one argument"), s.easing[this.easing] = M), S.apply(this, arguments)
		}, A = s.fx.interval || 13, k = "jQuery.fx.interval is deprecated", n.requestAnimationFrame && Object.defineProperty(s.fx, "interval", {
			configurable: !0,
			enumerable: !0,
			get: function() {
				return n.document.hidden || u(k), A
			},
			set: function(e) {
				u(k), A = e
			}
		}));
		var R = s.fn.load,
			H = s.event.add,
			C = s.event.fix;
		s.event.props = [], s.event.fixHooks = {}, t(s.event.props, "concat", s.event.props.concat, "jQuery.event.props.concat() is deprecated and removed"), s.event.fix = function(e) {
			var t, r = e.type,
				n = this.fixHooks[r],
				o = s.event.props;
			if (o.length) {
				u("jQuery.event.props are deprecated and removed: " + o.join());
				while (o.length) s.event.addProp(o.pop())
			}
			if (n && !n._migrated_ && (n._migrated_ = !0, u("jQuery.event.fixHooks are deprecated and removed: " + r), (o = n.props) && o.length))
				while (o.length) s.event.addProp(o.pop());
			return t = C.call(this, e), n && n.filter ? n.filter(t, e) : t
		}, s.event.add = function(e, t) {
			return e === n && "load" === t && "complete" === n.document.readyState && u("jQuery(window).on('load'...) called after load event occurred"), H.apply(this, arguments)
		}, s.each(["load", "unload", "error"], function(e, t) {
			s.fn[t] = function() {
				var e = Array.prototype.slice.call(arguments, 0);
				return "load" === t && "string" == typeof e[0] ? R.apply(this, e) : (u("jQuery.fn." + t + "() is deprecated"), e.splice(0, 0, t), arguments.length ? this.on.apply(this, e) : (this.triggerHandler.apply(this, e), this))
			}
		}), s.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "), function(e, r) {
			s.fn[r] = function(e, t) {
				return u("jQuery.fn." + r + "() event shorthand is deprecated"), 0 < arguments.length ? this.on(r, null, e, t) : this.trigger(r)
			}
		}), s(function() {
			s(n.document).triggerHandler("ready")
		}), s.event.special.ready = {
			setup: function() {
				this === n.document && u("'ready' event is deprecated")
			}
		}, s.fn.extend({
			bind: function(e, t, r) {
				return u("jQuery.fn.bind() is deprecated"), this.on(e, null, t, r)
			},
			unbind: function(e, t) {
				return u("jQuery.fn.unbind() is deprecated"), this.off(e, null, t)
			},
			delegate: function(e, t, r, n) {
				return u("jQuery.fn.delegate() is deprecated"), this.on(t, e, r, n)
			},
			undelegate: function(e, t, r) {
				return u("jQuery.fn.undelegate() is deprecated"), 1 === arguments.length ? this.off(e, "**") : this.off(t, e || "**", r)
			},
			hover: function(e, t) {
				return u("jQuery.fn.hover() is deprecated"), this.on("mouseenter", e).on("mouseleave", t || e)
			}
		});

		function T(e) {
			var t = n.document.implementation.createHTMLDocument("");
			return t.body.innerHTML = e, t.body && t.body.innerHTML
		}

		function P(e) {
			var t = e.replace(O, "<$1></$2>");
			t !== e && T(e) !== T(t) && u("HTML tags must be properly nested and closed: " + e)
		}
		var O = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,
			q = s.htmlPrefilter;
		s.UNSAFE_restoreLegacyHtmlPrefilter = function() {
			s.htmlPrefilter = function(e) {
				return P(e), e.replace(O, "<$1></$2>")
			}
		}, s.htmlPrefilter = function(e) {
			return P(e), q(e)
		};
		var D, _ = s.fn.offset;
		s.fn.offset = function() {
			var e = this[0];
			return !e || e.nodeType && e.getBoundingClientRect ? _.apply(this, arguments) : (u("jQuery.fn.offset() requires a valid DOM element"), arguments.length ? this : void 0)
		}, s.ajax && (D = s.param, s.param = function(e, t) {
			var r = s.ajaxSettings && s.ajaxSettings.traditional;
			return void 0 === t && r && (u("jQuery.param() no longer uses jQuery.ajaxSettings.traditional"), t = r), D.call(this, e, t)
		});
		var E, F, J = s.fn.andSelf || s.fn.addBack;
		return s.fn.andSelf = function() {
			return u("jQuery.fn.andSelf() is deprecated and removed, use jQuery.fn.addBack()"), J.apply(this, arguments)
		}, s.Deferred && (E = s.Deferred, F = [
			["resolve", "done", s.Callbacks("once memory"), s.Callbacks("once memory"), "resolved"],
			["reject", "fail", s.Callbacks("once memory"), s.Callbacks("once memory"), "rejected"],
			["notify", "progress", s.Callbacks("memory"), s.Callbacks("memory")]
		], s.Deferred = function(e) {
			var i = E(),
				a = i.promise();
			return i.pipe = a.pipe = function() {
				var o = arguments;
				return u("deferred.pipe() is deprecated"), s.Deferred(function(n) {
					s.each(F, function(e, t) {
						var r = "function" == typeof o[e] && o[e];
						i[t[1]](function() {
							var e = r && r.apply(this, arguments);
							e && "function" == typeof e.promise ? e.promise().done(n.resolve).fail(n.reject).progress(n.notify) : n[t[0] + "With"](this === a ? n.promise() : this, r ? [e] : arguments)
						})
					}), o = null
				}).promise()
			}, e && e.call(i, i), i
		}, s.Deferred.exceptionHook = E.exceptionHook), s
	});
(function(e, t) {
	'object' == typeof exports && 'undefined' != typeof module ? module.exports = t() : 'function' == typeof define && define.amd ? define(t) : e.Popper = t()
})(this, function() {
	'use strict';

	function e(e) {
		return e && '[object Function]' === {}.toString.call(e)
	}

	function t(e, t) {
		if (1 !== e.nodeType) return [];
		var o = e.ownerDocument.defaultView,
			n = o.getComputedStyle(e, null);
		return t ? n[t] : n
	}

	function o(e) {
		return 'HTML' === e.nodeName ? e : e.parentNode || e.host
	}

	function n(e) {
		if (!e) return document.body;
		switch (e.nodeName) {
			case 'HTML':
			case 'BODY':
				return e.ownerDocument.body;
			case '#document':
				return e.body
		}
		var i = t(e),
			r = i.overflow,
			p = i.overflowX,
			s = i.overflowY;
		return /(auto|scroll|overlay)/.test(r + s + p) ? e : n(o(e))
	}

	function i(e) {
		return e && e.referenceNode ? e.referenceNode : e
	}

	function r(e) {
		return 11 === e ? re : 10 === e ? pe : re || pe
	}

	function p(e) {
		if (!e) return document.documentElement;
		for (var o = r(10) ? document.body : null, n = e.offsetParent || null; n === o && e.nextElementSibling;) n = (e = e.nextElementSibling).offsetParent;
		var i = n && n.nodeName;
		return i && 'BODY' !== i && 'HTML' !== i ? -1 !== ['TH', 'TD', 'TABLE'].indexOf(n.nodeName) && 'static' === t(n, 'position') ? p(n) : n : e ? e.ownerDocument.documentElement : document.documentElement
	}

	function s(e) {
		var t = e.nodeName;
		return 'BODY' !== t && ('HTML' === t || p(e.firstElementChild) === e)
	}

	function d(e) {
		return null === e.parentNode ? e : d(e.parentNode)
	}

	function a(e, t) {
		if (!e || !e.nodeType || !t || !t.nodeType) return document.documentElement;
		var o = e.compareDocumentPosition(t) & Node.DOCUMENT_POSITION_FOLLOWING,
			n = o ? e : t,
			i = o ? t : e,
			r = document.createRange();
		r.setStart(n, 0), r.setEnd(i, 0);
		var l = r.commonAncestorContainer;
		if (e !== l && t !== l || n.contains(i)) return s(l) ? l : p(l);
		var f = d(e);
		return f.host ? a(f.host, t) : a(e, d(t).host)
	}

	function l(e) {
		var t = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : 'top',
			o = 'top' === t ? 'scrollTop' : 'scrollLeft',
			n = e.nodeName;
		if ('BODY' === n || 'HTML' === n) {
			var i = e.ownerDocument.documentElement,
				r = e.ownerDocument.scrollingElement || i;
			return r[o]
		}
		return e[o]
	}

	function f(e, t) {
		var o = 2 < arguments.length && void 0 !== arguments[2] && arguments[2],
			n = l(t, 'top'),
			i = l(t, 'left'),
			r = o ? -1 : 1;
		return e.top += n * r, e.bottom += n * r, e.left += i * r, e.right += i * r, e
	}

	function m(e, t) {
		var o = 'x' === t ? 'Left' : 'Top',
			n = 'Left' == o ? 'Right' : 'Bottom';
		return parseFloat(e['border' + o + 'Width']) + parseFloat(e['border' + n + 'Width'])
	}

	function h(e, t, o, n) {
		return ee(t['offset' + e], t['scroll' + e], o['client' + e], o['offset' + e], o['scroll' + e], r(10) ? parseInt(o['offset' + e]) + parseInt(n['margin' + ('Height' === e ? 'Top' : 'Left')]) + parseInt(n['margin' + ('Height' === e ? 'Bottom' : 'Right')]) : 0)
	}

	function c(e) {
		var t = e.body,
			o = e.documentElement,
			n = r(10) && getComputedStyle(o);
		return {
			height: h('Height', t, o, n),
			width: h('Width', t, o, n)
		}
	}

	function g(e) {
		return le({}, e, {
			right: e.left + e.width,
			bottom: e.top + e.height
		})
	}

	function u(e) {
		var o = {};
		try {
			if (r(10)) {
				o = e.getBoundingClientRect();
				var n = l(e, 'top'),
					i = l(e, 'left');
				o.top += n, o.left += i, o.bottom += n, o.right += i
			} else o = e.getBoundingClientRect()
		} catch (t) {}
		var p = {
				left: o.left,
				top: o.top,
				width: o.right - o.left,
				height: o.bottom - o.top
			},
			s = 'HTML' === e.nodeName ? c(e.ownerDocument) : {},
			d = s.width || e.clientWidth || p.width,
			a = s.height || e.clientHeight || p.height,
			f = e.offsetWidth - d,
			h = e.offsetHeight - a;
		if (f || h) {
			var u = t(e);
			f -= m(u, 'x'), h -= m(u, 'y'), p.width -= f, p.height -= h
		}
		return g(p)
	}

	function b(e, o) {
		var i = 2 < arguments.length && void 0 !== arguments[2] && arguments[2],
			p = r(10),
			s = 'HTML' === o.nodeName,
			d = u(e),
			a = u(o),
			l = n(e),
			m = t(o),
			h = parseFloat(m.borderTopWidth),
			c = parseFloat(m.borderLeftWidth);
		i && s && (a.top = ee(a.top, 0), a.left = ee(a.left, 0));
		var b = g({
			top: d.top - a.top - h,
			left: d.left - a.left - c,
			width: d.width,
			height: d.height
		});
		if (b.marginTop = 0, b.marginLeft = 0, !p && s) {
			var w = parseFloat(m.marginTop),
				y = parseFloat(m.marginLeft);
			b.top -= h - w, b.bottom -= h - w, b.left -= c - y, b.right -= c - y, b.marginTop = w, b.marginLeft = y
		}
		return (p && !i ? o.contains(l) : o === l && 'BODY' !== l.nodeName) && (b = f(b, o)), b
	}

	function w(e) {
		var t = 1 < arguments.length && void 0 !== arguments[1] && arguments[1],
			o = e.ownerDocument.documentElement,
			n = b(e, o),
			i = ee(o.clientWidth, window.innerWidth || 0),
			r = ee(o.clientHeight, window.innerHeight || 0),
			p = t ? 0 : l(o),
			s = t ? 0 : l(o, 'left'),
			d = {
				top: p - n.top + n.marginTop,
				left: s - n.left + n.marginLeft,
				width: i,
				height: r
			};
		return g(d)
	}

	function y(e) {
		var n = e.nodeName;
		if ('BODY' === n || 'HTML' === n) return !1;
		if ('fixed' === t(e, 'position')) return !0;
		var i = o(e);
		return !!i && y(i)
	}

	function E(e) {
		if (!e || !e.parentElement || r()) return document.documentElement;
		for (var o = e.parentElement; o && 'none' === t(o, 'transform');) o = o.parentElement;
		return o || document.documentElement
	}

	function v(e, t, r, p) {
		var s = 4 < arguments.length && void 0 !== arguments[4] && arguments[4],
			d = {
				top: 0,
				left: 0
			},
			l = s ? E(e) : a(e, i(t));
		if ('viewport' === p) d = w(l, s);
		else {
			var f;
			'scrollParent' === p ? (f = n(o(t)), 'BODY' === f.nodeName && (f = e.ownerDocument.documentElement)) : 'window' === p ? f = e.ownerDocument.documentElement : f = p;
			var m = b(f, l, s);
			if ('HTML' === f.nodeName && !y(l)) {
				var h = c(e.ownerDocument),
					g = h.height,
					u = h.width;
				d.top += m.top - m.marginTop, d.bottom = g + m.top, d.left += m.left - m.marginLeft, d.right = u + m.left
			} else d = m
		}
		r = r || 0;
		var v = 'number' == typeof r;
		return d.left += v ? r : r.left || 0, d.top += v ? r : r.top || 0, d.right -= v ? r : r.right || 0, d.bottom -= v ? r : r.bottom || 0, d
	}

	function x(e) {
		var t = e.width,
			o = e.height;
		return t * o
	}

	function O(e, t, o, n, i) {
		var r = 5 < arguments.length && void 0 !== arguments[5] ? arguments[5] : 0;
		if (-1 === e.indexOf('auto')) return e;
		var p = v(o, n, r, i),
			s = {
				top: {
					width: p.width,
					height: t.top - p.top
				},
				right: {
					width: p.right - t.right,
					height: p.height
				},
				bottom: {
					width: p.width,
					height: p.bottom - t.bottom
				},
				left: {
					width: t.left - p.left,
					height: p.height
				}
			},
			d = Object.keys(s).map(function(e) {
				return le({
					key: e
				}, s[e], {
					area: x(s[e])
				})
			}).sort(function(e, t) {
				return t.area - e.area
			}),
			a = d.filter(function(e) {
				var t = e.width,
					n = e.height;
				return t >= o.clientWidth && n >= o.clientHeight
			}),
			l = 0 < a.length ? a[0].key : d[0].key,
			f = e.split('-')[1];
		return l + (f ? '-' + f : '')
	}

	function L(e, t, o) {
		var n = 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null,
			r = n ? E(t) : a(t, i(o));
		return b(o, r, n)
	}

	function S(e) {
		var t = e.ownerDocument.defaultView,
			o = t.getComputedStyle(e),
			n = parseFloat(o.marginTop || 0) + parseFloat(o.marginBottom || 0),
			i = parseFloat(o.marginLeft || 0) + parseFloat(o.marginRight || 0),
			r = {
				width: e.offsetWidth + i,
				height: e.offsetHeight + n
			};
		return r
	}

	function T(e) {
		var t = {
			left: 'right',
			right: 'left',
			bottom: 'top',
			top: 'bottom'
		};
		return e.replace(/left|right|bottom|top/g, function(e) {
			return t[e]
		})
	}

	function C(e, t, o) {
		o = o.split('-')[0];
		var n = S(e),
			i = {
				width: n.width,
				height: n.height
			},
			r = -1 !== ['right', 'left'].indexOf(o),
			p = r ? 'top' : 'left',
			s = r ? 'left' : 'top',
			d = r ? 'height' : 'width',
			a = r ? 'width' : 'height';
		return i[p] = t[p] + t[d] / 2 - n[d] / 2, i[s] = o === s ? t[s] - n[a] : t[T(s)], i
	}

	function D(e, t) {
		return Array.prototype.find ? e.find(t) : e.filter(t)[0]
	}

	function N(e, t, o) {
		if (Array.prototype.findIndex) return e.findIndex(function(e) {
			return e[t] === o
		});
		var n = D(e, function(e) {
			return e[t] === o
		});
		return e.indexOf(n)
	}

	function P(t, o, n) {
		var i = void 0 === n ? t : t.slice(0, N(t, 'name', n));
		return i.forEach(function(t) {
			t['function'] && console.warn('`modifier.function` is deprecated, use `modifier.fn`!');
			var n = t['function'] || t.fn;
			t.enabled && e(n) && (o.offsets.popper = g(o.offsets.popper), o.offsets.reference = g(o.offsets.reference), o = n(o, t))
		}), o
	}

	function k() {
		if (!this.state.isDestroyed) {
			var e = {
				instance: this,
				styles: {},
				arrowStyles: {},
				attributes: {},
				flipped: !1,
				offsets: {}
			};
			e.offsets.reference = L(this.state, this.popper, this.reference, this.options.positionFixed), e.placement = O(this.options.placement, e.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding), e.originalPlacement = e.placement, e.positionFixed = this.options.positionFixed, e.offsets.popper = C(this.popper, e.offsets.reference, e.placement), e.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute', e = P(this.modifiers, e), this.state.isCreated ? this.options.onUpdate(e) : (this.state.isCreated = !0, this.options.onCreate(e))
		}
	}

	function W(e, t) {
		return e.some(function(e) {
			var o = e.name,
				n = e.enabled;
			return n && o === t
		})
	}

	function B(e) {
		for (var t = [!1, 'ms', 'Webkit', 'Moz', 'O'], o = e.charAt(0).toUpperCase() + e.slice(1), n = 0; n < t.length; n++) {
			var i = t[n],
				r = i ? '' + i + o : e;
			if ('undefined' != typeof document.body.style[r]) return r
		}
		return null
	}

	function H() {
		return this.state.isDestroyed = !0, W(this.modifiers, 'applyStyle') && (this.popper.removeAttribute('x-placement'), this.popper.style.position = '', this.popper.style.top = '', this.popper.style.left = '', this.popper.style.right = '', this.popper.style.bottom = '', this.popper.style.willChange = '', this.popper.style[B('transform')] = ''), this.disableEventListeners(), this.options.removeOnDestroy && this.popper.parentNode.removeChild(this.popper), this
	}

	function A(e) {
		var t = e.ownerDocument;
		return t ? t.defaultView : window
	}

	function M(e, t, o, i) {
		var r = 'BODY' === e.nodeName,
			p = r ? e.ownerDocument.defaultView : e;
		p.addEventListener(t, o, {
			passive: !0
		}), r || M(n(p.parentNode), t, o, i), i.push(p)
	}

	function F(e, t, o, i) {
		o.updateBound = i, A(e).addEventListener('resize', o.updateBound, {
			passive: !0
		});
		var r = n(e);
		return M(r, 'scroll', o.updateBound, o.scrollParents), o.scrollElement = r, o.eventsEnabled = !0, o
	}

	function I() {
		this.state.eventsEnabled || (this.state = F(this.reference, this.options, this.state, this.scheduleUpdate))
	}

	function R(e, t) {
		return A(e).removeEventListener('resize', t.updateBound), t.scrollParents.forEach(function(e) {
			e.removeEventListener('scroll', t.updateBound)
		}), t.updateBound = null, t.scrollParents = [], t.scrollElement = null, t.eventsEnabled = !1, t
	}

	function U() {
		this.state.eventsEnabled && (cancelAnimationFrame(this.scheduleUpdate), this.state = R(this.reference, this.state))
	}

	function Y(e) {
		return '' !== e && !isNaN(parseFloat(e)) && isFinite(e)
	}

	function V(e, t) {
		Object.keys(t).forEach(function(o) {
			var n = ''; - 1 !== ['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(o) && Y(t[o]) && (n = 'px'), e.style[o] = t[o] + n
		})
	}

	function j(e, t) {
		Object.keys(t).forEach(function(o) {
			var n = t[o];
			!1 === n ? e.removeAttribute(o) : e.setAttribute(o, t[o])
		})
	}

	function q(e, t) {
		var o = e.offsets,
			n = o.popper,
			i = o.reference,
			r = $,
			p = function(e) {
				return e
			},
			s = r(i.width),
			d = r(n.width),
			a = -1 !== ['left', 'right'].indexOf(e.placement),
			l = -1 !== e.placement.indexOf('-'),
			f = t ? a || l || s % 2 == d % 2 ? r : Z : p,
			m = t ? r : p;
		return {
			left: f(1 == s % 2 && 1 == d % 2 && !l && t ? n.left - 1 : n.left),
			top: m(n.top),
			bottom: m(n.bottom),
			right: f(n.right)
		}
	}

	function K(e, t, o) {
		var n = D(e, function(e) {
				var o = e.name;
				return o === t
			}),
			i = !!n && e.some(function(e) {
				return e.name === o && e.enabled && e.order < n.order
			});
		if (!i) {
			var r = '`' + t + '`';
			console.warn('`' + o + '`' + ' modifier is required by ' + r + ' modifier in order to work, be sure to include it before ' + r + '!')
		}
		return i
	}

	function z(e) {
		return 'end' === e ? 'start' : 'start' === e ? 'end' : e
	}

	function G(e) {
		var t = 1 < arguments.length && void 0 !== arguments[1] && arguments[1],
			o = he.indexOf(e),
			n = he.slice(o + 1).concat(he.slice(0, o));
		return t ? n.reverse() : n
	}

	function _(e, t, o, n) {
		var i = e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),
			r = +i[1],
			p = i[2];
		if (!r) return e;
		if (0 === p.indexOf('%')) {
			var s;
			switch (p) {
				case '%p':
					s = o;
					break;
				case '%':
				case '%r':
				default:
					s = n
			}
			var d = g(s);
			return d[t] / 100 * r
		}
		if ('vh' === p || 'vw' === p) {
			var a;
			return a = 'vh' === p ? ee(document.documentElement.clientHeight, window.innerHeight || 0) : ee(document.documentElement.clientWidth, window.innerWidth || 0), a / 100 * r
		}
		return r
	}

	function X(e, t, o, n) {
		var i = [0, 0],
			r = -1 !== ['right', 'left'].indexOf(n),
			p = e.split(/(\+|\-)/).map(function(e) {
				return e.trim()
			}),
			s = p.indexOf(D(p, function(e) {
				return -1 !== e.search(/,|\s/)
			}));
		p[s] && -1 === p[s].indexOf(',') && console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');
		var d = /\s*,\s*|\s+/,
			a = -1 === s ? [p] : [p.slice(0, s).concat([p[s].split(d)[0]]), [p[s].split(d)[1]].concat(p.slice(s + 1))];
		return a = a.map(function(e, n) {
			var i = (1 === n ? !r : r) ? 'height' : 'width',
				p = !1;
			return e.reduce(function(e, t) {
				return '' === e[e.length - 1] && -1 !== ['+', '-'].indexOf(t) ? (e[e.length - 1] = t, p = !0, e) : p ? (e[e.length - 1] += t, p = !1, e) : e.concat(t)
			}, []).map(function(e) {
				return _(e, i, t, o)
			})
		}), a.forEach(function(e, t) {
			e.forEach(function(o, n) {
				Y(o) && (i[t] += o * ('-' === e[n - 1] ? -1 : 1))
			})
		}), i
	}

	function J(e, t) {
		var o, n = t.offset,
			i = e.placement,
			r = e.offsets,
			p = r.popper,
			s = r.reference,
			d = i.split('-')[0];
		return o = Y(+n) ? [+n, 0] : X(n, p, s, d), 'left' === d ? (p.top += o[0], p.left -= o[1]) : 'right' === d ? (p.top += o[0], p.left += o[1]) : 'top' === d ? (p.left += o[0], p.top -= o[1]) : 'bottom' === d && (p.left += o[0], p.top += o[1]), e.popper = p, e
	}
	var Q = Math.min,
		Z = Math.floor,
		$ = Math.round,
		ee = Math.max,
		te = 'undefined' != typeof window && 'undefined' != typeof document && 'undefined' != typeof navigator,
		oe = function() {
			for (var e = ['Edge', 'Trident', 'Firefox'], t = 0; t < e.length; t += 1)
				if (te && 0 <= navigator.userAgent.indexOf(e[t])) return 1;
			return 0
		}(),
		ne = te && window.Promise,
		ie = ne ? function(e) {
			var t = !1;
			return function() {
				t || (t = !0, window.Promise.resolve().then(function() {
					t = !1, e()
				}))
			}
		} : function(e) {
			var t = !1;
			return function() {
				t || (t = !0, setTimeout(function() {
					t = !1, e()
				}, oe))
			}
		},
		re = te && !!(window.MSInputMethodContext && document.documentMode),
		pe = te && /MSIE 10/.test(navigator.userAgent),
		se = function(e, t) {
			if (!(e instanceof t)) throw new TypeError('Cannot call a class as a function')
		},
		de = function() {
			function e(e, t) {
				for (var o, n = 0; n < t.length; n++) o = t[n], o.enumerable = o.enumerable || !1, o.configurable = !0, 'value' in o && (o.writable = !0), Object.defineProperty(e, o.key, o)
			}
			return function(t, o, n) {
				return o && e(t.prototype, o), n && e(t, n), t
			}
		}(),
		ae = function(e, t, o) {
			return t in e ? Object.defineProperty(e, t, {
				value: o,
				enumerable: !0,
				configurable: !0,
				writable: !0
			}) : e[t] = o, e
		},
		le = Object.assign || function(e) {
			for (var t, o = 1; o < arguments.length; o++)
				for (var n in t = arguments[o], t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
			return e
		},
		fe = te && /Firefox/i.test(navigator.userAgent),
		me = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'],
		he = me.slice(3),
		ce = {
			FLIP: 'flip',
			CLOCKWISE: 'clockwise',
			COUNTERCLOCKWISE: 'counterclockwise'
		},
		ge = function() {
			function t(o, n) {
				var i = this,
					r = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : {};
				se(this, t), this.scheduleUpdate = function() {
					return requestAnimationFrame(i.update)
				}, this.update = ie(this.update.bind(this)), this.options = le({}, t.Defaults, r), this.state = {
					isDestroyed: !1,
					isCreated: !1,
					scrollParents: []
				}, this.reference = o && o.jquery ? o[0] : o, this.popper = n && n.jquery ? n[0] : n, this.options.modifiers = {}, Object.keys(le({}, t.Defaults.modifiers, r.modifiers)).forEach(function(e) {
					i.options.modifiers[e] = le({}, t.Defaults.modifiers[e] || {}, r.modifiers ? r.modifiers[e] : {})
				}), this.modifiers = Object.keys(this.options.modifiers).map(function(e) {
					return le({
						name: e
					}, i.options.modifiers[e])
				}).sort(function(e, t) {
					return e.order - t.order
				}), this.modifiers.forEach(function(t) {
					t.enabled && e(t.onLoad) && t.onLoad(i.reference, i.popper, i.options, t, i.state)
				}), this.update();
				var p = this.options.eventsEnabled;
				p && this.enableEventListeners(), this.state.eventsEnabled = p
			}
			return de(t, [{
				key: 'update',
				value: function() {
					return k.call(this)
				}
			}, {
				key: 'destroy',
				value: function() {
					return H.call(this)
				}
			}, {
				key: 'enableEventListeners',
				value: function() {
					return I.call(this)
				}
			}, {
				key: 'disableEventListeners',
				value: function() {
					return U.call(this)
				}
			}]), t
		}();
	return ge.Utils = ('undefined' == typeof window ? global : window).PopperUtils, ge.placements = me, ge.Defaults = {
		placement: 'bottom',
		positionFixed: !1,
		eventsEnabled: !0,
		removeOnDestroy: !1,
		onCreate: function() {},
		onUpdate: function() {},
		modifiers: {
			shift: {
				order: 100,
				enabled: !0,
				fn: function(e) {
					var t = e.placement,
						o = t.split('-')[0],
						n = t.split('-')[1];
					if (n) {
						var i = e.offsets,
							r = i.reference,
							p = i.popper,
							s = -1 !== ['bottom', 'top'].indexOf(o),
							d = s ? 'left' : 'top',
							a = s ? 'width' : 'height',
							l = {
								start: ae({}, d, r[d]),
								end: ae({}, d, r[d] + r[a] - p[a])
							};
						e.offsets.popper = le({}, p, l[n])
					}
					return e
				}
			},
			offset: {
				order: 200,
				enabled: !0,
				fn: J,
				offset: 0
			},
			preventOverflow: {
				order: 300,
				enabled: !0,
				fn: function(e, t) {
					var o = t.boundariesElement || p(e.instance.popper);
					e.instance.reference === o && (o = p(o));
					var n = B('transform'),
						i = e.instance.popper.style,
						r = i.top,
						s = i.left,
						d = i[n];
					i.top = '', i.left = '', i[n] = '';
					var a = v(e.instance.popper, e.instance.reference, t.padding, o, e.positionFixed);
					i.top = r, i.left = s, i[n] = d, t.boundaries = a;
					var l = t.priority,
						f = e.offsets.popper,
						m = {
							primary: function(e) {
								var o = f[e];
								return f[e] < a[e] && !t.escapeWithReference && (o = ee(f[e], a[e])), ae({}, e, o)
							},
							secondary: function(e) {
								var o = 'right' === e ? 'left' : 'top',
									n = f[o];
								return f[e] > a[e] && !t.escapeWithReference && (n = Q(f[o], a[e] - ('right' === e ? f.width : f.height))), ae({}, o, n)
							}
						};
					return l.forEach(function(e) {
						var t = -1 === ['left', 'top'].indexOf(e) ? 'secondary' : 'primary';
						f = le({}, f, m[t](e))
					}), e.offsets.popper = f, e
				},
				priority: ['left', 'right', 'top', 'bottom'],
				padding: 5,
				boundariesElement: 'scrollParent'
			},
			keepTogether: {
				order: 400,
				enabled: !0,
				fn: function(e) {
					var t = e.offsets,
						o = t.popper,
						n = t.reference,
						i = e.placement.split('-')[0],
						r = Z,
						p = -1 !== ['top', 'bottom'].indexOf(i),
						s = p ? 'right' : 'bottom',
						d = p ? 'left' : 'top',
						a = p ? 'width' : 'height';
					return o[s] < r(n[d]) && (e.offsets.popper[d] = r(n[d]) - o[a]), o[d] > r(n[s]) && (e.offsets.popper[d] = r(n[s])), e
				}
			},
			arrow: {
				order: 500,
				enabled: !0,
				fn: function(e, o) {
					var n;
					if (!K(e.instance.modifiers, 'arrow', 'keepTogether')) return e;
					var i = o.element;
					if ('string' == typeof i) {
						if (i = e.instance.popper.querySelector(i), !i) return e
					} else if (!e.instance.popper.contains(i)) return console.warn('WARNING: `arrow.element` must be child of its popper element!'), e;
					var r = e.placement.split('-')[0],
						p = e.offsets,
						s = p.popper,
						d = p.reference,
						a = -1 !== ['left', 'right'].indexOf(r),
						l = a ? 'height' : 'width',
						f = a ? 'Top' : 'Left',
						m = f.toLowerCase(),
						h = a ? 'left' : 'top',
						c = a ? 'bottom' : 'right',
						u = S(i)[l];
					d[c] - u < s[m] && (e.offsets.popper[m] -= s[m] - (d[c] - u)), d[m] + u > s[c] && (e.offsets.popper[m] += d[m] + u - s[c]), e.offsets.popper = g(e.offsets.popper);
					var b = d[m] + d[l] / 2 - u / 2,
						w = t(e.instance.popper),
						y = parseFloat(w['margin' + f]),
						E = parseFloat(w['border' + f + 'Width']),
						v = b - e.offsets.popper[m] - y - E;
					return v = ee(Q(s[l] - u, v), 0), e.arrowElement = i, e.offsets.arrow = (n = {}, ae(n, m, $(v)), ae(n, h, ''), n), e
				},
				element: '[x-arrow]'
			},
			flip: {
				order: 600,
				enabled: !0,
				fn: function(e, t) {
					if (W(e.instance.modifiers, 'inner')) return e;
					if (e.flipped && e.placement === e.originalPlacement) return e;
					var o = v(e.instance.popper, e.instance.reference, t.padding, t.boundariesElement, e.positionFixed),
						n = e.placement.split('-')[0],
						i = T(n),
						r = e.placement.split('-')[1] || '',
						p = [];
					switch (t.behavior) {
						case ce.FLIP:
							p = [n, i];
							break;
						case ce.CLOCKWISE:
							p = G(n);
							break;
						case ce.COUNTERCLOCKWISE:
							p = G(n, !0);
							break;
						default:
							p = t.behavior
					}
					return p.forEach(function(s, d) {
						if (n !== s || p.length === d + 1) return e;
						n = e.placement.split('-')[0], i = T(n);
						var a = e.offsets.popper,
							l = e.offsets.reference,
							f = Z,
							m = 'left' === n && f(a.right) > f(l.left) || 'right' === n && f(a.left) < f(l.right) || 'top' === n && f(a.bottom) > f(l.top) || 'bottom' === n && f(a.top) < f(l.bottom),
							h = f(a.left) < f(o.left),
							c = f(a.right) > f(o.right),
							g = f(a.top) < f(o.top),
							u = f(a.bottom) > f(o.bottom),
							b = 'left' === n && h || 'right' === n && c || 'top' === n && g || 'bottom' === n && u,
							w = -1 !== ['top', 'bottom'].indexOf(n),
							y = !!t.flipVariations && (w && 'start' === r && h || w && 'end' === r && c || !w && 'start' === r && g || !w && 'end' === r && u),
							E = !!t.flipVariationsByContent && (w && 'start' === r && c || w && 'end' === r && h || !w && 'start' === r && u || !w && 'end' === r && g),
							v = y || E;
						(m || b || v) && (e.flipped = !0, (m || b) && (n = p[d + 1]), v && (r = z(r)), e.placement = n + (r ? '-' + r : ''), e.offsets.popper = le({}, e.offsets.popper, C(e.instance.popper, e.offsets.reference, e.placement)), e = P(e.instance.modifiers, e, 'flip'))
					}), e
				},
				behavior: 'flip',
				padding: 5,
				boundariesElement: 'viewport',
				flipVariations: !1,
				flipVariationsByContent: !1
			},
			inner: {
				order: 700,
				enabled: !1,
				fn: function(e) {
					var t = e.placement,
						o = t.split('-')[0],
						n = e.offsets,
						i = n.popper,
						r = n.reference,
						p = -1 !== ['left', 'right'].indexOf(o),
						s = -1 === ['top', 'left'].indexOf(o);
					return i[p ? 'left' : 'top'] = r[o] - (s ? i[p ? 'width' : 'height'] : 0), e.placement = T(t), e.offsets.popper = g(i), e
				}
			},
			hide: {
				order: 800,
				enabled: !0,
				fn: function(e) {
					if (!K(e.instance.modifiers, 'hide', 'preventOverflow')) return e;
					var t = e.offsets.reference,
						o = D(e.instance.modifiers, function(e) {
							return 'preventOverflow' === e.name
						}).boundaries;
					if (t.bottom < o.top || t.left > o.right || t.top > o.bottom || t.right < o.left) {
						if (!0 === e.hide) return e;
						e.hide = !0, e.attributes['x-out-of-boundaries'] = ''
					} else {
						if (!1 === e.hide) return e;
						e.hide = !1, e.attributes['x-out-of-boundaries'] = !1
					}
					return e
				}
			},
			computeStyle: {
				order: 850,
				enabled: !0,
				fn: function(e, t) {
					var o = t.x,
						n = t.y,
						i = e.offsets.popper,
						r = D(e.instance.modifiers, function(e) {
							return 'applyStyle' === e.name
						}).gpuAcceleration;
					void 0 !== r && console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');
					var s, d, a = void 0 === r ? t.gpuAcceleration : r,
						l = p(e.instance.popper),
						f = u(l),
						m = {
							position: i.position
						},
						h = q(e, 2 > window.devicePixelRatio || !fe),
						c = 'bottom' === o ? 'top' : 'bottom',
						g = 'right' === n ? 'left' : 'right',
						b = B('transform');
					if (d = 'bottom' == c ? 'HTML' === l.nodeName ? -l.clientHeight + h.bottom : -f.height + h.bottom : h.top, s = 'right' == g ? 'HTML' === l.nodeName ? -l.clientWidth + h.right : -f.width + h.right : h.left, a && b) m[b] = 'translate3d(' + s + 'px, ' + d + 'px, 0)', m[c] = 0, m[g] = 0, m.willChange = 'transform';
					else {
						var w = 'bottom' == c ? -1 : 1,
							y = 'right' == g ? -1 : 1;
						m[c] = d * w, m[g] = s * y, m.willChange = c + ', ' + g
					}
					var E = {
						"x-placement": e.placement
					};
					return e.attributes = le({}, E, e.attributes), e.styles = le({}, m, e.styles), e.arrowStyles = le({}, e.offsets.arrow, e.arrowStyles), e
				},
				gpuAcceleration: !0,
				x: 'bottom',
				y: 'right'
			},
			applyStyle: {
				order: 900,
				enabled: !0,
				fn: function(e) {
					return V(e.instance.popper, e.styles), j(e.instance.popper, e.attributes), e.arrowElement && Object.keys(e.arrowStyles).length && V(e.arrowElement, e.arrowStyles), e
				},
				onLoad: function(e, t, o, n, i) {
					var r = L(i, t, e, o.positionFixed),
						p = O(o.placement, r, t, e, o.modifiers.flip.boundariesElement, o.modifiers.flip.padding);
					return t.setAttribute('x-placement', p), V(t, {
						position: o.positionFixed ? 'fixed' : 'absolute'
					}), o
				},
				gpuAcceleration: void 0
			}
		}
	}, ge
});
/*!
 * Bootstrap v4.3.1 (https://getbootstrap.com/)
 * Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 */
! function(t, e) {
	"object" == typeof exports && "undefined" != typeof module ? e(exports, require("jquery"), require("popper.js")) : "function" == typeof define && define.amd ? define(["exports", "jquery", "popper.js"], e) : e((t = t || self).bootstrap = {}, t.jQuery, t.Popper)
}(this, function(t, g, u) {
	"use strict";

	function i(t, e) {
		for (var n = 0; n < e.length; n++) {
			var i = e[n];
			i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(t, i.key, i)
		}
	}

	function s(t, e, n) {
		return e && i(t.prototype, e), n && i(t, n), t
	}

	function l(o) {
		for (var t = 1; t < arguments.length; t++) {
			var r = null != arguments[t] ? arguments[t] : {},
				e = Object.keys(r);
			"function" == typeof Object.getOwnPropertySymbols && (e = e.concat(Object.getOwnPropertySymbols(r).filter(function(t) {
				return Object.getOwnPropertyDescriptor(r, t).enumerable
			}))), e.forEach(function(t) {
				var e, n, i;
				e = o, i = r[n = t], n in e ? Object.defineProperty(e, n, {
					value: i,
					enumerable: !0,
					configurable: !0,
					writable: !0
				}) : e[n] = i
			})
		}
		return o
	}
	g = g && g.hasOwnProperty("default") ? g.default : g, u = u && u.hasOwnProperty("default") ? u.default : u;
	var e = "transitionend";

	function n(t) {
		var e = this,
			n = !1;
		return g(this).one(_.TRANSITION_END, function() {
			n = !0
		}), setTimeout(function() {
			n || _.triggerTransitionEnd(e)
		}, t), this
	}
	var _ = {
		TRANSITION_END: "bsTransitionEnd",
		getUID: function(t) {
			for (; t += ~~(1e6 * Math.random()), document.getElementById(t););
			return t
		},
		getSelectorFromElement: function(t) {
			var e = t.getAttribute("data-target");
			if (!e || "#" === e) {
				var n = t.getAttribute("href");
				e = n && "#" !== n ? n.trim() : ""
			}
			try {
				return document.querySelector(e) ? e : null
			} catch (t) {
				return null
			}
		},
		getTransitionDurationFromElement: function(t) {
			if (!t) return 0;
			var e = g(t).css("transition-duration"),
				n = g(t).css("transition-delay"),
				i = parseFloat(e),
				o = parseFloat(n);
			return i || o ? (e = e.split(",")[0], n = n.split(",")[0], 1e3 * (parseFloat(e) + parseFloat(n))) : 0
		},
		reflow: function(t) {
			return t.offsetHeight
		},
		triggerTransitionEnd: function(t) {
			g(t).trigger(e)
		},
		supportsTransitionEnd: function() {
			return Boolean(e)
		},
		isElement: function(t) {
			return (t[0] || t).nodeType
		},
		typeCheckConfig: function(t, e, n) {
			for (var i in n)
				if (Object.prototype.hasOwnProperty.call(n, i)) {
					var o = n[i],
						r = e[i],
						s = r && _.isElement(r) ? "element" : (a = r, {}.toString.call(a).match(/\s([a-z]+)/i)[1].toLowerCase());
					if (!new RegExp(o).test(s)) throw new Error(t.toUpperCase() + ': Option "' + i + '" provided type "' + s + '" but expected type "' + o + '".')
				} var a
		},
		findShadowRoot: function(t) {
			if (!document.documentElement.attachShadow) return null;
			if ("function" != typeof t.getRootNode) return t instanceof ShadowRoot ? t : t.parentNode ? _.findShadowRoot(t.parentNode) : null;
			var e = t.getRootNode();
			return e instanceof ShadowRoot ? e : null
		}
	};
	g.fn.emulateTransitionEnd = n, g.event.special[_.TRANSITION_END] = {
		bindType: e,
		delegateType: e,
		handle: function(t) {
			if (g(t.target).is(this)) return t.handleObj.handler.apply(this, arguments)
		}
	};
	var o = "alert",
		r = "bs.alert",
		a = "." + r,
		c = g.fn[o],
		h = {
			CLOSE: "close" + a,
			CLOSED: "closed" + a,
			CLICK_DATA_API: "click" + a + ".data-api"
		},
		f = "alert",
		d = "fade",
		m = "show",
		p = function() {
			function i(t) {
				this._element = t
			}
			var t = i.prototype;
			return t.close = function(t) {
				var e = this._element;
				t && (e = this._getRootElement(t)), this._triggerCloseEvent(e).isDefaultPrevented() || this._removeElement(e)
			}, t.dispose = function() {
				g.removeData(this._element, r), this._element = null
			}, t._getRootElement = function(t) {
				var e = _.getSelectorFromElement(t),
					n = !1;
				return e && (n = document.querySelector(e)), n || (n = g(t).closest("." + f)[0]), n
			}, t._triggerCloseEvent = function(t) {
				var e = g.Event(h.CLOSE);
				return g(t).trigger(e), e
			}, t._removeElement = function(e) {
				var n = this;
				if (g(e).removeClass(m), g(e).hasClass(d)) {
					var t = _.getTransitionDurationFromElement(e);
					g(e).one(_.TRANSITION_END, function(t) {
						return n._destroyElement(e, t)
					}).emulateTransitionEnd(t)
				} else this._destroyElement(e)
			}, t._destroyElement = function(t) {
				g(t).detach().trigger(h.CLOSED).remove()
			}, i._jQueryInterface = function(n) {
				return this.each(function() {
					var t = g(this),
						e = t.data(r);
					e || (e = new i(this), t.data(r, e)), "close" === n && e[n](this)
				})
			}, i._handleDismiss = function(e) {
				return function(t) {
					t && t.preventDefault(), e.close(this)
				}
			}, s(i, null, [{
				key: "VERSION",
				get: function() {
					return "4.3.1"
				}
			}]), i
		}();
	g(document).on(h.CLICK_DATA_API, '[data-dismiss="alert"]', p._handleDismiss(new p)), g.fn[o] = p._jQueryInterface, g.fn[o].Constructor = p, g.fn[o].noConflict = function() {
		return g.fn[o] = c, p._jQueryInterface
	};
	var v = "button",
		y = "bs.button",
		E = "." + y,
		C = ".data-api",
		T = g.fn[v],
		S = "active",
		b = "btn",
		I = "focus",
		D = '[data-toggle^="button"]',
		w = '[data-toggle="buttons"]',
		A = 'input:not([type="hidden"])',
		N = ".active",
		O = ".btn",
		k = {
			CLICK_DATA_API: "click" + E + C,
			FOCUS_BLUR_DATA_API: "focus" + E + C + " blur" + E + C
		},
		P = function() {
			function n(t) {
				this._element = t
			}
			var t = n.prototype;
			return t.toggle = function() {
				var t = !0,
					e = !0,
					n = g(this._element).closest(w)[0];
				if (n) {
					var i = this._element.querySelector(A);
					if (i) {
						if ("radio" === i.type)
							if (i.checked && this._element.classList.contains(S)) t = !1;
							else {
								var o = n.querySelector(N);
								o && g(o).removeClass(S)
							} if (t) {
							if (i.hasAttribute("disabled") || n.hasAttribute("disabled") || i.classList.contains("disabled") || n.classList.contains("disabled")) return;
							i.checked = !this._element.classList.contains(S), g(i).trigger("change")
						}
						i.focus(), e = !1
					}
				}
				e && this._element.setAttribute("aria-pressed", !this._element.classList.contains(S)), t && g(this._element).toggleClass(S)
			}, t.dispose = function() {
				g.removeData(this._element, y), this._element = null
			}, n._jQueryInterface = function(e) {
				return this.each(function() {
					var t = g(this).data(y);
					t || (t = new n(this), g(this).data(y, t)), "toggle" === e && t[e]()
				})
			}, s(n, null, [{
				key: "VERSION",
				get: function() {
					return "4.3.1"
				}
			}]), n
		}();
	g(document).on(k.CLICK_DATA_API, D, function(t) {
		t.preventDefault();
		var e = t.target;
		g(e).hasClass(b) || (e = g(e).closest(O)), P._jQueryInterface.call(g(e), "toggle")
	}).on(k.FOCUS_BLUR_DATA_API, D, function(t) {
		var e = g(t.target).closest(O)[0];
		g(e).toggleClass(I, /^focus(in)?$/.test(t.type))
	}), g.fn[v] = P._jQueryInterface, g.fn[v].Constructor = P, g.fn[v].noConflict = function() {
		return g.fn[v] = T, P._jQueryInterface
	};
	var L = "carousel",
		j = "bs.carousel",
		H = "." + j,
		R = ".data-api",
		x = g.fn[L],
		F = {
			interval: 5e3,
			keyboard: !0,
			slide: !1,
			pause: "hover",
			wrap: !0,
			touch: !0
		},
		U = {
			interval: "(number|boolean)",
			keyboard: "boolean",
			slide: "(boolean|string)",
			pause: "(string|boolean)",
			wrap: "boolean",
			touch: "boolean"
		},
		W = "next",
		q = "prev",
		M = "left",
		K = "right",
		Q = {
			SLIDE: "slide" + H,
			SLID: "slid" + H,
			KEYDOWN: "keydown" + H,
			MOUSEENTER: "mouseenter" + H,
			MOUSELEAVE: "mouseleave" + H,
			TOUCHSTART: "touchstart" + H,
			TOUCHMOVE: "touchmove" + H,
			TOUCHEND: "touchend" + H,
			POINTERDOWN: "pointerdown" + H,
			POINTERUP: "pointerup" + H,
			DRAG_START: "dragstart" + H,
			LOAD_DATA_API: "load" + H + R,
			CLICK_DATA_API: "click" + H + R
		},
		B = "carousel",
		V = "active",
		Y = "slide",
		z = "carousel-item-right",
		X = "carousel-item-left",
		$ = "carousel-item-next",
		G = "carousel-item-prev",
		J = "pointer-event",
		Z = ".active",
		tt = ".active.carousel-item",
		et = ".carousel-item",
		nt = ".carousel-item img",
		it = ".carousel-item-next, .carousel-item-prev",
		ot = ".carousel-indicators",
		rt = "[data-slide], [data-slide-to]",
		st = '[data-ride="carousel"]',
		at = {
			TOUCH: "touch",
			PEN: "pen"
		},
		lt = function() {
			function r(t, e) {
				this._items = null, this._interval = null, this._activeElement = null, this._isPaused = !1, this._isSliding = !1, this.touchTimeout = null, this.touchStartX = 0, this.touchDeltaX = 0, this._config = this._getConfig(e), this._element = t, this._indicatorsElement = this._element.querySelector(ot), this._touchSupported = "ontouchstart" in document.documentElement || 0 < navigator.maxTouchPoints, this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent), this._addEventListeners()
			}
			var t = r.prototype;
			return t.next = function() {
				this._isSliding || this._slide(W)
			}, t.nextWhenVisible = function() {
				!document.hidden && g(this._element).is(":visible") && "hidden" !== g(this._element).css("visibility") && this.next()
			}, t.prev = function() {
				this._isSliding || this._slide(q)
			}, t.pause = function(t) {
				t || (this._isPaused = !0), this._element.querySelector(it) && (_.triggerTransitionEnd(this._element), this.cycle(!0)), clearInterval(this._interval), this._interval = null
			}, t.cycle = function(t) {
				t || (this._isPaused = !1), this._interval && (clearInterval(this._interval), this._interval = null), this._config.interval && !this._isPaused && (this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval))
			}, t.to = function(t) {
				var e = this;
				this._activeElement = this._element.querySelector(tt);
				var n = this._getItemIndex(this._activeElement);
				if (!(t > this._items.length - 1 || t < 0))
					if (this._isSliding) g(this._element).one(Q.SLID, function() {
						return e.to(t)
					});
					else {
						if (n === t) return this.pause(), void this.cycle();
						var i = n < t ? W : q;
						this._slide(i, this._items[t])
					}
			}, t.dispose = function() {
				g(this._element).off(H), g.removeData(this._element, j), this._items = null, this._config = null, this._element = null, this._interval = null, this._isPaused = null, this._isSliding = null, this._activeElement = null, this._indicatorsElement = null
			}, t._getConfig = function(t) {
				return t = l({}, F, t), _.typeCheckConfig(L, t, U), t
			}, t._handleSwipe = function() {
				var t = Math.abs(this.touchDeltaX);
				if (!(t <= 40)) {
					var e = t / this.touchDeltaX;
					0 < e && this.prev(), e < 0 && this.next()
				}
			}, t._addEventListeners = function() {
				var e = this;
				this._config.keyboard && g(this._element).on(Q.KEYDOWN, function(t) {
					return e._keydown(t)
				}), "hover" === this._config.pause && g(this._element).on(Q.MOUSEENTER, function(t) {
					return e.pause(t)
				}).on(Q.MOUSELEAVE, function(t) {
					return e.cycle(t)
				}), this._config.touch && this._addTouchEventListeners()
			}, t._addTouchEventListeners = function() {
				var n = this;
				if (this._touchSupported) {
					var e = function(t) {
							n._pointerEvent && at[t.originalEvent.pointerType.toUpperCase()] ? n.touchStartX = t.originalEvent.clientX : n._pointerEvent || (n.touchStartX = t.originalEvent.touches[0].clientX)
						},
						i = function(t) {
							n._pointerEvent && at[t.originalEvent.pointerType.toUpperCase()] && (n.touchDeltaX = t.originalEvent.clientX - n.touchStartX), n._handleSwipe(), "hover" === n._config.pause && (n.pause(), n.touchTimeout && clearTimeout(n.touchTimeout), n.touchTimeout = setTimeout(function(t) {
								return n.cycle(t)
							}, 500 + n._config.interval))
						};
					g(this._element.querySelectorAll(nt)).on(Q.DRAG_START, function(t) {
						return t.preventDefault()
					}), this._pointerEvent ? (g(this._element).on(Q.POINTERDOWN, function(t) {
						return e(t)
					}), g(this._element).on(Q.POINTERUP, function(t) {
						return i(t)
					}), this._element.classList.add(J)) : (g(this._element).on(Q.TOUCHSTART, function(t) {
						return e(t)
					}), g(this._element).on(Q.TOUCHMOVE, function(t) {
						var e;
						(e = t).originalEvent.touches && 1 < e.originalEvent.touches.length ? n.touchDeltaX = 0 : n.touchDeltaX = e.originalEvent.touches[0].clientX - n.touchStartX
					}), g(this._element).on(Q.TOUCHEND, function(t) {
						return i(t)
					}))
				}
			}, t._keydown = function(t) {
				if (!/input|textarea/i.test(t.target.tagName)) switch (t.which) {
					case 37:
						t.preventDefault(), this.prev();
						break;
					case 39:
						t.preventDefault(), this.next()
				}
			}, t._getItemIndex = function(t) {
				return this._items = t && t.parentNode ? [].slice.call(t.parentNode.querySelectorAll(et)) : [], this._items.indexOf(t)
			}, t._getItemByDirection = function(t, e) {
				var n = t === W,
					i = t === q,
					o = this._getItemIndex(e),
					r = this._items.length - 1;
				if ((i && 0 === o || n && o === r) && !this._config.wrap) return e;
				var s = (o + (t === q ? -1 : 1)) % this._items.length;
				return -1 === s ? this._items[this._items.length - 1] : this._items[s]
			}, t._triggerSlideEvent = function(t, e) {
				var n = this._getItemIndex(t),
					i = this._getItemIndex(this._element.querySelector(tt)),
					o = g.Event(Q.SLIDE, {
						relatedTarget: t,
						direction: e,
						from: i,
						to: n
					});
				return g(this._element).trigger(o), o
			}, t._setActiveIndicatorElement = function(t) {
				if (this._indicatorsElement) {
					var e = [].slice.call(this._indicatorsElement.querySelectorAll(Z));
					g(e).removeClass(V);
					var n = this._indicatorsElement.children[this._getItemIndex(t)];
					n && g(n).addClass(V)
				}
			}, t._slide = function(t, e) {
				var n, i, o, r = this,
					s = this._element.querySelector(tt),
					a = this._getItemIndex(s),
					l = e || s && this._getItemByDirection(t, s),
					c = this._getItemIndex(l),
					h = Boolean(this._interval);
				if (o = t === W ? (n = X, i = $, M) : (n = z, i = G, K), l && g(l).hasClass(V)) this._isSliding = !1;
				else if (!this._triggerSlideEvent(l, o).isDefaultPrevented() && s && l) {
					this._isSliding = !0, h && this.pause(), this._setActiveIndicatorElement(l);
					var u = g.Event(Q.SLID, {
						relatedTarget: l,
						direction: o,
						from: a,
						to: c
					});
					if (g(this._element).hasClass(Y)) {
						g(l).addClass(i), _.reflow(l), g(s).addClass(n), g(l).addClass(n);
						var f = parseInt(l.getAttribute("data-interval"), 10);
						this._config.interval = f ? (this._config.defaultInterval = this._config.defaultInterval || this._config.interval, f) : this._config.defaultInterval || this._config.interval;
						var d = _.getTransitionDurationFromElement(s);
						g(s).one(_.TRANSITION_END, function() {
							g(l).removeClass(n + " " + i).addClass(V), g(s).removeClass(V + " " + i + " " + n), r._isSliding = !1, setTimeout(function() {
								return g(r._element).trigger(u)
							}, 0)
						}).emulateTransitionEnd(d)
					} else g(s).removeClass(V), g(l).addClass(V), this._isSliding = !1, g(this._element).trigger(u);
					h && this.cycle()
				}
			}, r._jQueryInterface = function(i) {
				return this.each(function() {
					var t = g(this).data(j),
						e = l({}, F, g(this).data());
					"object" == typeof i && (e = l({}, e, i));
					var n = "string" == typeof i ? i : e.slide;
					if (t || (t = new r(this, e), g(this).data(j, t)), "number" == typeof i) t.to(i);
					else if ("string" == typeof n) {
						if ("undefined" == typeof t[n]) throw new TypeError('No method named "' + n + '"');
						t[n]()
					} else e.interval && e.ride && (t.pause(), t.cycle())
				})
			}, r._dataApiClickHandler = function(t) {
				var e = _.getSelectorFromElement(this);
				if (e) {
					var n = g(e)[0];
					if (n && g(n).hasClass(B)) {
						var i = l({}, g(n).data(), g(this).data()),
							o = this.getAttribute("data-slide-to");
						o && (i.interval = !1), r._jQueryInterface.call(g(n), i), o && g(n).data(j).to(o), t.preventDefault()
					}
				}
			}, s(r, null, [{
				key: "VERSION",
				get: function() {
					return "4.3.1"
				}
			}, {
				key: "Default",
				get: function() {
					return F
				}
			}]), r
		}();
	g(document).on(Q.CLICK_DATA_API, rt, lt._dataApiClickHandler), g(window).on(Q.LOAD_DATA_API, function() {
		for (var t = [].slice.call(document.querySelectorAll(st)), e = 0, n = t.length; e < n; e++) {
			var i = g(t[e]);
			lt._jQueryInterface.call(i, i.data())
		}
	}), g.fn[L] = lt._jQueryInterface, g.fn[L].Constructor = lt, g.fn[L].noConflict = function() {
		return g.fn[L] = x, lt._jQueryInterface
	};
	var ct = "collapse",
		ht = "bs.collapse",
		ut = "." + ht,
		ft = g.fn[ct],
		dt = {
			toggle: !0,
			parent: ""
		},
		gt = {
			toggle: "boolean",
			parent: "(string|element)"
		},
		_t = {
			SHOW: "show" + ut,
			SHOWN: "shown" + ut,
			HIDE: "hide" + ut,
			HIDDEN: "hidden" + ut,
			CLICK_DATA_API: "click" + ut + ".data-api"
		},
		mt = "show",
		pt = "collapse",
		vt = "collapsing",
		yt = "collapsed",
		Et = "width",
		Ct = "height",
		Tt = ".show, .collapsing",
		St = '[data-toggle="collapse"]',
		bt = function() {
			function a(e, t) {
				this._isTransitioning = !1, this._element = e, this._config = this._getConfig(t), this._triggerArray = [].slice.call(document.querySelectorAll('[data-toggle="collapse"][href="#' + e.id + '"],[data-toggle="collapse"][data-target="#' + e.id + '"]'));
				for (var n = [].slice.call(document.querySelectorAll(St)), i = 0, o = n.length; i < o; i++) {
					var r = n[i],
						s = _.getSelectorFromElement(r),
						a = [].slice.call(document.querySelectorAll(s)).filter(function(t) {
							return t === e
						});
					null !== s && 0 < a.length && (this._selector = s, this._triggerArray.push(r))
				}
				this._parent = this._config.parent ? this._getParent() : null, this._config.parent || this._addAriaAndCollapsedClass(this._element, this._triggerArray), this._config.toggle && this.toggle()
			}
			var t = a.prototype;
			return t.toggle = function() {
				g(this._element).hasClass(mt) ? this.hide() : this.show()
			}, t.show = function() {
				var t, e, n = this;
				if (!this._isTransitioning && !g(this._element).hasClass(mt) && (this._parent && 0 === (t = [].slice.call(this._parent.querySelectorAll(Tt)).filter(function(t) {
						return "string" == typeof n._config.parent ? t.getAttribute("data-parent") === n._config.parent : t.classList.contains(pt)
					})).length && (t = null), !(t && (e = g(t).not(this._selector).data(ht)) && e._isTransitioning))) {
					var i = g.Event(_t.SHOW);
					if (g(this._element).trigger(i), !i.isDefaultPrevented()) {
						t && (a._jQueryInterface.call(g(t).not(this._selector), "hide"), e || g(t).data(ht, null));
						var o = this._getDimension();
						g(this._element).removeClass(pt).addClass(vt), this._element.style[o] = 0, this._triggerArray.length && g(this._triggerArray).removeClass(yt).attr("aria-expanded", !0), this.setTransitioning(!0);
						var r = "scroll" + (o[0].toUpperCase() + o.slice(1)),
							s = _.getTransitionDurationFromElement(this._element);
						g(this._element).one(_.TRANSITION_END, function() {
							g(n._element).removeClass(vt).addClass(pt).addClass(mt), n._element.style[o] = "", n.setTransitioning(!1), g(n._element).trigger(_t.SHOWN)
						}).emulateTransitionEnd(s), this._element.style[o] = this._element[r] + "px"
					}
				}
			}, t.hide = function() {
				var t = this;
				if (!this._isTransitioning && g(this._element).hasClass(mt)) {
					var e = g.Event(_t.HIDE);
					if (g(this._element).trigger(e), !e.isDefaultPrevented()) {
						var n = this._getDimension();
						this._element.style[n] = this._element.getBoundingClientRect()[n] + "px", _.reflow(this._element), g(this._element).addClass(vt).removeClass(pt).removeClass(mt);
						var i = this._triggerArray.length;
						if (0 < i)
							for (var o = 0; o < i; o++) {
								var r = this._triggerArray[o],
									s = _.getSelectorFromElement(r);
								if (null !== s) g([].slice.call(document.querySelectorAll(s))).hasClass(mt) || g(r).addClass(yt).attr("aria-expanded", !1)
							}
						this.setTransitioning(!0);
						this._element.style[n] = "";
						var a = _.getTransitionDurationFromElement(this._element);
						g(this._element).one(_.TRANSITION_END, function() {
							t.setTransitioning(!1), g(t._element).removeClass(vt).addClass(pt).trigger(_t.HIDDEN)
						}).emulateTransitionEnd(a)
					}
				}
			}, t.setTransitioning = function(t) {
				this._isTransitioning = t
			}, t.dispose = function() {
				g.removeData(this._element, ht), this._config = null, this._parent = null, this._element = null, this._triggerArray = null, this._isTransitioning = null
			}, t._getConfig = function(t) {
				return (t = l({}, dt, t)).toggle = Boolean(t.toggle), _.typeCheckConfig(ct, t, gt), t
			}, t._getDimension = function() {
				return g(this._element).hasClass(Et) ? Et : Ct
			}, t._getParent = function() {
				var t, n = this;
				_.isElement(this._config.parent) ? (t = this._config.parent, "undefined" != typeof this._config.parent.jquery && (t = this._config.parent[0])) : t = document.querySelector(this._config.parent);
				var e = '[data-toggle="collapse"][data-parent="' + this._config.parent + '"]',
					i = [].slice.call(t.querySelectorAll(e));
				return g(i).each(function(t, e) {
					n._addAriaAndCollapsedClass(a._getTargetFromElement(e), [e])
				}), t
			}, t._addAriaAndCollapsedClass = function(t, e) {
				var n = g(t).hasClass(mt);
				e.length && g(e).toggleClass(yt, !n).attr("aria-expanded", n)
			}, a._getTargetFromElement = function(t) {
				var e = _.getSelectorFromElement(t);
				return e ? document.querySelector(e) : null
			}, a._jQueryInterface = function(i) {
				return this.each(function() {
					var t = g(this),
						e = t.data(ht),
						n = l({}, dt, t.data(), "object" == typeof i && i ? i : {});
					if (!e && n.toggle && /show|hide/.test(i) && (n.toggle = !1), e || (e = new a(this, n), t.data(ht, e)), "string" == typeof i) {
						if ("undefined" == typeof e[i]) throw new TypeError('No method named "' + i + '"');
						e[i]()
					}
				})
			}, s(a, null, [{
				key: "VERSION",
				get: function() {
					return "4.3.1"
				}
			}, {
				key: "Default",
				get: function() {
					return dt
				}
			}]), a
		}();
	g(document).on(_t.CLICK_DATA_API, St, function(t) {
		"A" === t.currentTarget.tagName && t.preventDefault();
		var n = g(this),
			e = _.getSelectorFromElement(this),
			i = [].slice.call(document.querySelectorAll(e));
		g(i).each(function() {
			var t = g(this),
				e = t.data(ht) ? "toggle" : n.data();
			bt._jQueryInterface.call(t, e)
		})
	}), g.fn[ct] = bt._jQueryInterface, g.fn[ct].Constructor = bt, g.fn[ct].noConflict = function() {
		return g.fn[ct] = ft, bt._jQueryInterface
	};
	var It = "dropdown",
		Dt = "bs.dropdown",
		wt = "." + Dt,
		At = ".data-api",
		Nt = g.fn[It],
		Ot = new RegExp("38|40|27"),
		kt = {
			HIDE: "hide" + wt,
			HIDDEN: "hidden" + wt,
			SHOW: "show" + wt,
			SHOWN: "shown" + wt,
			CLICK: "click" + wt,
			CLICK_DATA_API: "click" + wt + At,
			KEYDOWN_DATA_API: "keydown" + wt + At,
			KEYUP_DATA_API: "keyup" + wt + At
		},
		Pt = "disabled",
		Lt = "show",
		jt = "dropup",
		Ht = "dropright",
		Rt = "dropleft",
		xt = "dropdown-menu-right",
		Ft = "position-static",
		Ut = '[data-toggle="dropdown"]',
		Wt = ".dropdown form",
		qt = ".dropdown-menu",
		Mt = ".navbar-nav",
		Kt = ".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",
		Qt = "top-start",
		Bt = "top-end",
		Vt = "bottom-start",
		Yt = "bottom-end",
		zt = "right-start",
		Xt = "left-start",
		$t = {
			offset: 0,
			flip: !0,
			boundary: "scrollParent",
			reference: "toggle",
			display: "dynamic"
		},
		Gt = {
			offset: "(number|string|function)",
			flip: "boolean",
			boundary: "(string|element)",
			reference: "(string|element)",
			display: "string"
		},
		Jt = function() {
			function c(t, e) {
				this._element = t, this._popper = null, this._config = this._getConfig(e), this._menu = this._getMenuElement(), this._inNavbar = this._detectNavbar(), this._addEventListeners()
			}
			var t = c.prototype;
			return t.toggle = function() {
				if (!this._element.disabled && !g(this._element).hasClass(Pt)) {
					var t = c._getParentFromElement(this._element),
						e = g(this._menu).hasClass(Lt);
					if (c._clearMenus(), !e) {
						var n = {
								relatedTarget: this._element
							},
							i = g.Event(kt.SHOW, n);
						if (g(t).trigger(i), !i.isDefaultPrevented()) {
							if (!this._inNavbar) {
								if ("undefined" == typeof u) throw new TypeError("Bootstrap's dropdowns require Popper.js (https://popper.js.org/)");
								var o = this._element;
								"parent" === this._config.reference ? o = t : _.isElement(this._config.reference) && (o = this._config.reference, "undefined" != typeof this._config.reference.jquery && (o = this._config.reference[0])), "scrollParent" !== this._config.boundary && g(t).addClass(Ft), this._popper = new u(o, this._menu, this._getPopperConfig())
							}
							"ontouchstart" in document.documentElement && 0 === g(t).closest(Mt).length && g(document.body).children().on("mouseover", null, g.noop), this._element.focus(), this._element.setAttribute("aria-expanded", !0), g(this._menu).toggleClass(Lt), g(t).toggleClass(Lt).trigger(g.Event(kt.SHOWN, n))
						}
					}
				}
			}, t.show = function() {
				if (!(this._element.disabled || g(this._element).hasClass(Pt) || g(this._menu).hasClass(Lt))) {
					var t = {
							relatedTarget: this._element
						},
						e = g.Event(kt.SHOW, t),
						n = c._getParentFromElement(this._element);
					g(n).trigger(e), e.isDefaultPrevented() || (g(this._menu).toggleClass(Lt), g(n).toggleClass(Lt).trigger(g.Event(kt.SHOWN, t)))
				}
			}, t.hide = function() {
				if (!this._element.disabled && !g(this._element).hasClass(Pt) && g(this._menu).hasClass(Lt)) {
					var t = {
							relatedTarget: this._element
						},
						e = g.Event(kt.HIDE, t),
						n = c._getParentFromElement(this._element);
					g(n).trigger(e), e.isDefaultPrevented() || (g(this._menu).toggleClass(Lt), g(n).toggleClass(Lt).trigger(g.Event(kt.HIDDEN, t)))
				}
			}, t.dispose = function() {
				g.removeData(this._element, Dt), g(this._element).off(wt), this._element = null, (this._menu = null) !== this._popper && (this._popper.destroy(), this._popper = null)
			}, t.update = function() {
				this._inNavbar = this._detectNavbar(), null !== this._popper && this._popper.scheduleUpdate()
			}, t._addEventListeners = function() {
				var e = this;
				g(this._element).on(kt.CLICK, function(t) {
					t.preventDefault(), t.stopPropagation(), e.toggle()
				})
			}, t._getConfig = function(t) {
				return t = l({}, this.constructor.Default, g(this._element).data(), t), _.typeCheckConfig(It, t, this.constructor.DefaultType), t
			}, t._getMenuElement = function() {
				if (!this._menu) {
					var t = c._getParentFromElement(this._element);
					t && (this._menu = t.querySelector(qt))
				}
				return this._menu
			}, t._getPlacement = function() {
				var t = g(this._element.parentNode),
					e = Vt;
				return t.hasClass(jt) ? (e = Qt, g(this._menu).hasClass(xt) && (e = Bt)) : t.hasClass(Ht) ? e = zt : t.hasClass(Rt) ? e = Xt : g(this._menu).hasClass(xt) && (e = Yt), e
			}, t._detectNavbar = function() {
				return 0 < g(this._element).closest(".navbar").length
			}, t._getOffset = function() {
				var e = this,
					t = {};
				return "function" == typeof this._config.offset ? t.fn = function(t) {
					return t.offsets = l({}, t.offsets, e._config.offset(t.offsets, e._element) || {}), t
				} : t.offset = this._config.offset, t
			}, t._getPopperConfig = function() {
				var t = {
					placement: this._getPlacement(),
					modifiers: {
						offset: this._getOffset(),
						flip: {
							enabled: this._config.flip
						},
						preventOverflow: {
							boundariesElement: this._config.boundary
						}
					}
				};
				return "static" === this._config.display && (t.modifiers.applyStyle = {
					enabled: !1
				}), t
			}, c._jQueryInterface = function(e) {
				return this.each(function() {
					var t = g(this).data(Dt);
					if (t || (t = new c(this, "object" == typeof e ? e : null), g(this).data(Dt, t)), "string" == typeof e) {
						if ("undefined" == typeof t[e]) throw new TypeError('No method named "' + e + '"');
						t[e]()
					}
				})
			}, c._clearMenus = function(t) {
				if (!t || 3 !== t.which && ("keyup" !== t.type || 9 === t.which))
					for (var e = [].slice.call(document.querySelectorAll(Ut)), n = 0, i = e.length; n < i; n++) {
						var o = c._getParentFromElement(e[n]),
							r = g(e[n]).data(Dt),
							s = {
								relatedTarget: e[n]
							};
						if (t && "click" === t.type && (s.clickEvent = t), r) {
							var a = r._menu;
							if (g(o).hasClass(Lt) && !(t && ("click" === t.type && /input|textarea/i.test(t.target.tagName) || "keyup" === t.type && 9 === t.which) && g.contains(o, t.target))) {
								var l = g.Event(kt.HIDE, s);
								g(o).trigger(l), l.isDefaultPrevented() || ("ontouchstart" in document.documentElement && g(document.body).children().off("mouseover", null, g.noop), e[n].setAttribute("aria-expanded", "false"), g(a).removeClass(Lt), g(o).removeClass(Lt).trigger(g.Event(kt.HIDDEN, s)))
							}
						}
					}
			}, c._getParentFromElement = function(t) {
				var e, n = _.getSelectorFromElement(t);
				return n && (e = document.querySelector(n)), e || t.parentNode
			}, c._dataApiKeydownHandler = function(t) {
				if ((/input|textarea/i.test(t.target.tagName) ? !(32 === t.which || 27 !== t.which && (40 !== t.which && 38 !== t.which || g(t.target).closest(qt).length)) : Ot.test(t.which)) && (t.preventDefault(), t.stopPropagation(), !this.disabled && !g(this).hasClass(Pt))) {
					var e = c._getParentFromElement(this),
						n = g(e).hasClass(Lt);
					if (n && (!n || 27 !== t.which && 32 !== t.which)) {
						var i = [].slice.call(e.querySelectorAll(Kt));
						if (0 !== i.length) {
							var o = i.indexOf(t.target);
							38 === t.which && 0 < o && o--, 40 === t.which && o < i.length - 1 && o++, o < 0 && (o = 0), i[o].focus()
						}
					} else {
						if (27 === t.which) {
							var r = e.querySelector(Ut);
							g(r).trigger("focus")
						}
						g(this).trigger("click")
					}
				}
			}, s(c, null, [{
				key: "VERSION",
				get: function() {
					return "4.3.1"
				}
			}, {
				key: "Default",
				get: function() {
					return $t
				}
			}, {
				key: "DefaultType",
				get: function() {
					return Gt
				}
			}]), c
		}();
	g(document).on(kt.KEYDOWN_DATA_API, Ut, Jt._dataApiKeydownHandler).on(kt.KEYDOWN_DATA_API, qt, Jt._dataApiKeydownHandler).on(kt.CLICK_DATA_API + " " + kt.KEYUP_DATA_API, Jt._clearMenus).on(kt.CLICK_DATA_API, Ut, function(t) {
		t.preventDefault(), t.stopPropagation(), Jt._jQueryInterface.call(g(this), "toggle")
	}).on(kt.CLICK_DATA_API, Wt, function(t) {
		t.stopPropagation()
	}), g.fn[It] = Jt._jQueryInterface, g.fn[It].Constructor = Jt, g.fn[It].noConflict = function() {
		return g.fn[It] = Nt, Jt._jQueryInterface
	};
	var Zt = "modal",
		te = "bs.modal",
		ee = "." + te,
		ne = g.fn[Zt],
		ie = {
			backdrop: !0,
			keyboard: !0,
			focus: !0,
			show: !0
		},
		oe = {
			backdrop: "(boolean|string)",
			keyboard: "boolean",
			focus: "boolean",
			show: "boolean"
		},
		re = {
			HIDE: "hide" + ee,
			HIDDEN: "hidden" + ee,
			SHOW: "show" + ee,
			SHOWN: "shown" + ee,
			FOCUSIN: "focusin" + ee,
			RESIZE: "resize" + ee,
			CLICK_DISMISS: "click.dismiss" + ee,
			KEYDOWN_DISMISS: "keydown.dismiss" + ee,
			MOUSEUP_DISMISS: "mouseup.dismiss" + ee,
			MOUSEDOWN_DISMISS: "mousedown.dismiss" + ee,
			CLICK_DATA_API: "click" + ee + ".data-api"
		},
		se = "modal-dialog-scrollable",
		ae = "modal-scrollbar-measure",
		le = "modal-backdrop",
		ce = "modal-open",
		he = "fade",
		ue = "show",
		fe = ".modal-dialog",
		de = ".modal-body",
		ge = '[data-toggle="modal"]',
		_e = '[data-dismiss="modal"]',
		me = ".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",
		pe = ".sticky-top",
		ve = function() {
			function o(t, e) {
				this._config = this._getConfig(e), this._element = t, this._dialog = t.querySelector(fe), this._backdrop = null, this._isShown = !1, this._isBodyOverflowing = !1, this._ignoreBackdropClick = !1, this._isTransitioning = !1, this._scrollbarWidth = 0
			}
			var t = o.prototype;
			return t.toggle = function(t) {
				return this._isShown ? this.hide() : this.show(t)
			}, t.show = function(t) {
				var e = this;
				if (!this._isShown && !this._isTransitioning) {
					g(this._element).hasClass(he) && (this._isTransitioning = !0);
					var n = g.Event(re.SHOW, {
						relatedTarget: t
					});
					g(this._element).trigger(n), this._isShown || n.isDefaultPrevented() || (this._isShown = !0, this._checkScrollbar(), this._setScrollbar(), this._adjustDialog(), this._setEscapeEvent(), this._setResizeEvent(), g(this._element).on(re.CLICK_DISMISS, _e, function(t) {
						return e.hide(t)
					}), g(this._dialog).on(re.MOUSEDOWN_DISMISS, function() {
						g(e._element).one(re.MOUSEUP_DISMISS, function(t) {
							g(t.target).is(e._element) && (e._ignoreBackdropClick = !0)
						})
					}), this._showBackdrop(function() {
						return e._showElement(t)
					}))
				}
			}, t.hide = function(t) {
				var e = this;
				if (t && t.preventDefault(), this._isShown && !this._isTransitioning) {
					var n = g.Event(re.HIDE);
					if (g(this._element).trigger(n), this._isShown && !n.isDefaultPrevented()) {
						this._isShown = !1;
						var i = g(this._element).hasClass(he);
						if (i && (this._isTransitioning = !0), this._setEscapeEvent(), this._setResizeEvent(), g(document).off(re.FOCUSIN), g(this._element).removeClass(ue), g(this._element).off(re.CLICK_DISMISS), g(this._dialog).off(re.MOUSEDOWN_DISMISS), i) {
							var o = _.getTransitionDurationFromElement(this._element);
							g(this._element).one(_.TRANSITION_END, function(t) {
								return e._hideModal(t)
							}).emulateTransitionEnd(o)
						} else this._hideModal()
					}
				}
			}, t.dispose = function() {
				[window, this._element, this._dialog].forEach(function(t) {
					return g(t).off(ee)
				}), g(document).off(re.FOCUSIN), g.removeData(this._element, te), this._config = null, this._element = null, this._dialog = null, this._backdrop = null, this._isShown = null, this._isBodyOverflowing = null, this._ignoreBackdropClick = null, this._isTransitioning = null, this._scrollbarWidth = null
			}, t.handleUpdate = function() {
				this._adjustDialog()
			}, t._getConfig = function(t) {
				return t = l({}, ie, t), _.typeCheckConfig(Zt, t, oe), t
			}, t._showElement = function(t) {
				var e = this,
					n = g(this._element).hasClass(he);
				this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE || document.body.appendChild(this._element), this._element.style.display = "block", this._element.removeAttribute("aria-hidden"), this._element.setAttribute("aria-modal", !0), g(this._dialog).hasClass(se) ? this._dialog.querySelector(de).scrollTop = 0 : this._element.scrollTop = 0, n && _.reflow(this._element), g(this._element).addClass(ue), this._config.focus && this._enforceFocus();
				var i = g.Event(re.SHOWN, {
						relatedTarget: t
					}),
					o = function() {
						e._config.focus && e._element.focus(), e._isTransitioning = !1, g(e._element).trigger(i)
					};
				if (n) {
					var r = _.getTransitionDurationFromElement(this._dialog);
					g(this._dialog).one(_.TRANSITION_END, o).emulateTransitionEnd(r)
				} else o()
			}, t._enforceFocus = function() {
				var e = this;
				g(document).off(re.FOCUSIN).on(re.FOCUSIN, function(t) {
					document !== t.target && e._element !== t.target && 0 === g(e._element).has(t.target).length && e._element.focus()
				})
			}, t._setEscapeEvent = function() {
				var e = this;
				this._isShown && this._config.keyboard ? g(this._element).on(re.KEYDOWN_DISMISS, function(t) {
					27 === t.which && (t.preventDefault(), e.hide())
				}) : this._isShown || g(this._element).off(re.KEYDOWN_DISMISS)
			}, t._setResizeEvent = function() {
				var e = this;
				this._isShown ? g(window).on(re.RESIZE, function(t) {
					return e.handleUpdate(t)
				}) : g(window).off(re.RESIZE)
			}, t._hideModal = function() {
				var t = this;
				this._element.style.display = "none", this._element.setAttribute("aria-hidden", !0), this._element.removeAttribute("aria-modal"), this._isTransitioning = !1, this._showBackdrop(function() {
					g(document.body).removeClass(ce), t._resetAdjustments(), t._resetScrollbar(), g(t._element).trigger(re.HIDDEN)
				})
			}, t._removeBackdrop = function() {
				this._backdrop && (g(this._backdrop).remove(), this._backdrop = null)
			}, t._showBackdrop = function(t) {
				var e = this,
					n = g(this._element).hasClass(he) ? he : "";
				if (this._isShown && this._config.backdrop) {
					if (this._backdrop = document.createElement("div"), this._backdrop.className = le, n && this._backdrop.classList.add(n), g(this._backdrop).appendTo(document.body), g(this._element).on(re.CLICK_DISMISS, function(t) {
							e._ignoreBackdropClick ? e._ignoreBackdropClick = !1 : t.target === t.currentTarget && ("static" === e._config.backdrop ? e._element.focus() : e.hide())
						}), n && _.reflow(this._backdrop), g(this._backdrop).addClass(ue), !t) return;
					if (!n) return void t();
					var i = _.getTransitionDurationFromElement(this._backdrop);
					g(this._backdrop).one(_.TRANSITION_END, t).emulateTransitionEnd(i)
				} else if (!this._isShown && this._backdrop) {
					g(this._backdrop).removeClass(ue);
					var o = function() {
						e._removeBackdrop(), t && t()
					};
					if (g(this._element).hasClass(he)) {
						var r = _.getTransitionDurationFromElement(this._backdrop);
						g(this._backdrop).one(_.TRANSITION_END, o).emulateTransitionEnd(r)
					} else o()
				} else t && t()
			}, t._adjustDialog = function() {
				var t = this._element.scrollHeight > document.documentElement.clientHeight;
				!this._isBodyOverflowing && t && (this._element.style.paddingLeft = this._scrollbarWidth + "px"), this._isBodyOverflowing && !t && (this._element.style.paddingRight = this._scrollbarWidth + "px")
			}, t._resetAdjustments = function() {
				this._element.style.paddingLeft = "", this._element.style.paddingRight = ""
			}, t._checkScrollbar = function() {
				var t = document.body.getBoundingClientRect();
				this._isBodyOverflowing = t.left + t.right < window.innerWidth, this._scrollbarWidth = this._getScrollbarWidth()
			}, t._setScrollbar = function() {
				var o = this;
				if (this._isBodyOverflowing) {
					var t = [].slice.call(document.querySelectorAll(me)),
						e = [].slice.call(document.querySelectorAll(pe));
					g(t).each(function(t, e) {
						var n = e.style.paddingRight,
							i = g(e).css("padding-right");
						g(e).data("padding-right", n).css("padding-right", parseFloat(i) + o._scrollbarWidth + "px")
					}), g(e).each(function(t, e) {
						var n = e.style.marginRight,
							i = g(e).css("margin-right");
						g(e).data("margin-right", n).css("margin-right", parseFloat(i) - o._scrollbarWidth + "px")
					});
					var n = document.body.style.paddingRight,
						i = g(document.body).css("padding-right");
					g(document.body).data("padding-right", n).css("padding-right", parseFloat(i) + this._scrollbarWidth + "px")
				}
				g(document.body).addClass(ce)
			}, t._resetScrollbar = function() {
				var t = [].slice.call(document.querySelectorAll(me));
				g(t).each(function(t, e) {
					var n = g(e).data("padding-right");
					g(e).removeData("padding-right"), e.style.paddingRight = n || ""
				});
				var e = [].slice.call(document.querySelectorAll("" + pe));
				g(e).each(function(t, e) {
					var n = g(e).data("margin-right");
					"undefined" != typeof n && g(e).css("margin-right", n).removeData("margin-right")
				});
				var n = g(document.body).data("padding-right");
				g(document.body).removeData("padding-right"), document.body.style.paddingRight = n || ""
			}, t._getScrollbarWidth = function() {
				var t = document.createElement("div");
				t.className = ae, document.body.appendChild(t);
				var e = t.getBoundingClientRect().width - t.clientWidth;
				return document.body.removeChild(t), e
			}, o._jQueryInterface = function(n, i) {
				return this.each(function() {
					var t = g(this).data(te),
						e = l({}, ie, g(this).data(), "object" == typeof n && n ? n : {});
					if (t || (t = new o(this, e), g(this).data(te, t)), "string" == typeof n) {
						if ("undefined" == typeof t[n]) throw new TypeError('No method named "' + n + '"');
						t[n](i)
					} else e.show && t.show(i)
				})
			}, s(o, null, [{
				key: "VERSION",
				get: function() {
					return "4.3.1"
				}
			}, {
				key: "Default",
				get: function() {
					return ie
				}
			}]), o
		}();
	g(document).on(re.CLICK_DATA_API, ge, function(t) {
		var e, n = this,
			i = _.getSelectorFromElement(this);
		i && (e = document.querySelector(i));
		var o = g(e).data(te) ? "toggle" : l({}, g(e).data(), g(this).data());
		"A" !== this.tagName && "AREA" !== this.tagName || t.preventDefault();
		var r = g(e).one(re.SHOW, function(t) {
			t.isDefaultPrevented() || r.one(re.HIDDEN, function() {
				g(n).is(":visible") && n.focus()
			})
		});
		ve._jQueryInterface.call(g(e), o, this)
	}), g.fn[Zt] = ve._jQueryInterface, g.fn[Zt].Constructor = ve, g.fn[Zt].noConflict = function() {
		return g.fn[Zt] = ne, ve._jQueryInterface
	};
	var ye = ["background", "cite", "href", "itemtype", "longdesc", "poster", "src", "xlink:href"],
		Ee = {
			"*": ["class", "dir", "id", "lang", "role", /^aria-[\w-]*$/i],
			a: ["target", "href", "title", "rel"],
			area: [],
			b: [],
			br: [],
			col: [],
			code: [],
			div: [],
			em: [],
			hr: [],
			h1: [],
			h2: [],
			h3: [],
			h4: [],
			h5: [],
			h6: [],
			i: [],
			img: ["src", "alt", "title", "width", "height"],
			li: [],
			ol: [],
			p: [],
			pre: [],
			s: [],
			small: [],
			span: [],
			sub: [],
			sup: [],
			strong: [],
			u: [],
			ul: []
		},
		Ce = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi,
		Te = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i;

	function Se(t, s, e) {
		if (0 === t.length) return t;
		if (e && "function" == typeof e) return e(t);
		for (var n = (new window.DOMParser).parseFromString(t, "text/html"), a = Object.keys(s), l = [].slice.call(n.body.querySelectorAll("*")), i = function(t, e) {
				var n = l[t],
					i = n.nodeName.toLowerCase();
				if (-1 === a.indexOf(n.nodeName.toLowerCase())) return n.parentNode.removeChild(n), "continue";
				var o = [].slice.call(n.attributes),
					r = [].concat(s["*"] || [], s[i] || []);
				o.forEach(function(t) {
					(function(t, e) {
						var n = t.nodeName.toLowerCase();
						if (-1 !== e.indexOf(n)) return -1 === ye.indexOf(n) || Boolean(t.nodeValue.match(Ce) || t.nodeValue.match(Te));
						for (var i = e.filter(function(t) {
								return t instanceof RegExp
							}), o = 0, r = i.length; o < r; o++)
							if (n.match(i[o])) return !0;
						return !1
					})(t, r) || n.removeAttribute(t.nodeName)
				})
			}, o = 0, r = l.length; o < r; o++) i(o);
		return n.body.innerHTML
	}
	var be = "tooltip",
		Ie = "bs.tooltip",
		De = "." + Ie,
		we = g.fn[be],
		Ae = "bs-tooltip",
		Ne = new RegExp("(^|\\s)" + Ae + "\\S+", "g"),
		Oe = ["sanitize", "whiteList", "sanitizeFn"],
		ke = {
			animation: "boolean",
			template: "string",
			title: "(string|element|function)",
			trigger: "string",
			delay: "(number|object)",
			html: "boolean",
			selector: "(string|boolean)",
			placement: "(string|function)",
			offset: "(number|string|function)",
			container: "(string|element|boolean)",
			fallbackPlacement: "(string|array)",
			boundary: "(string|element)",
			sanitize: "boolean",
			sanitizeFn: "(null|function)",
			whiteList: "object"
		},
		Pe = {
			AUTO: "auto",
			TOP: "top",
			RIGHT: "right",
			BOTTOM: "bottom",
			LEFT: "left"
		},
		Le = {
			animation: !0,
			template: '<div class="tooltip" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>',
			trigger: "hover focus",
			title: "",
			delay: 0,
			html: !1,
			selector: !1,
			placement: "top",
			offset: 0,
			container: !1,
			fallbackPlacement: "flip",
			boundary: "scrollParent",
			sanitize: !0,
			sanitizeFn: null,
			whiteList: Ee
		},
		je = "show",
		He = "out",
		Re = {
			HIDE: "hide" + De,
			HIDDEN: "hidden" + De,
			SHOW: "show" + De,
			SHOWN: "shown" + De,
			INSERTED: "inserted" + De,
			CLICK: "click" + De,
			FOCUSIN: "focusin" + De,
			FOCUSOUT: "focusout" + De,
			MOUSEENTER: "mouseenter" + De,
			MOUSELEAVE: "mouseleave" + De
		},
		xe = "fade",
		Fe = "show",
		Ue = ".tooltip-inner",
		We = ".arrow",
		qe = "hover",
		Me = "focus",
		Ke = "click",
		Qe = "manual",
		Be = function() {
			function i(t, e) {
				if ("undefined" == typeof u) throw new TypeError("Bootstrap's tooltips require Popper.js (https://popper.js.org/)");
				this._isEnabled = !0, this._timeout = 0, this._hoverState = "", this._activeTrigger = {}, this._popper = null, this.element = t, this.config = this._getConfig(e), this.tip = null, this._setListeners()
			}
			var t = i.prototype;
			return t.enable = function() {
				this._isEnabled = !0
			}, t.disable = function() {
				this._isEnabled = !1
			}, t.toggleEnabled = function() {
				this._isEnabled = !this._isEnabled
			}, t.toggle = function(t) {
				if (this._isEnabled)
					if (t) {
						var e = this.constructor.DATA_KEY,
							n = g(t.currentTarget).data(e);
						n || (n = new this.constructor(t.currentTarget, this._getDelegateConfig()), g(t.currentTarget).data(e, n)), n._activeTrigger.click = !n._activeTrigger.click, n._isWithActiveTrigger() ? n._enter(null, n) : n._leave(null, n)
					} else {
						if (g(this.getTipElement()).hasClass(Fe)) return void this._leave(null, this);
						this._enter(null, this)
					}
			}, t.dispose = function() {
				clearTimeout(this._timeout), g.removeData(this.element, this.constructor.DATA_KEY), g(this.element).off(this.constructor.EVENT_KEY), g(this.element).closest(".modal").off("hide.bs.modal"), this.tip && g(this.tip).remove(), this._isEnabled = null, this._timeout = null, this._hoverState = null, (this._activeTrigger = null) !== this._popper && this._popper.destroy(), this._popper = null, this.element = null, this.config = null, this.tip = null
			}, t.show = function() {
				var e = this;
				if ("none" === g(this.element).css("display")) throw new Error("Please use show on visible elements");
				var t = g.Event(this.constructor.Event.SHOW);
				if (this.isWithContent() && this._isEnabled) {
					g(this.element).trigger(t);
					var n = _.findShadowRoot(this.element),
						i = g.contains(null !== n ? n : this.element.ownerDocument.documentElement, this.element);
					if (t.isDefaultPrevented() || !i) return;
					var o = this.getTipElement(),
						r = _.getUID(this.constructor.NAME);
					o.setAttribute("id", r), this.element.setAttribute("aria-describedby", r), this.setContent(), this.config.animation && g(o).addClass(xe);
					var s = "function" == typeof this.config.placement ? this.config.placement.call(this, o, this.element) : this.config.placement,
						a = this._getAttachment(s);
					this.addAttachmentClass(a);
					var l = this._getContainer();
					g(o).data(this.constructor.DATA_KEY, this), g.contains(this.element.ownerDocument.documentElement, this.tip) || g(o).appendTo(l), g(this.element).trigger(this.constructor.Event.INSERTED), this._popper = new u(this.element, o, {
						placement: a,
						modifiers: {
							offset: this._getOffset(),
							flip: {
								behavior: this.config.fallbackPlacement
							},
							arrow: {
								element: We
							},
							preventOverflow: {
								boundariesElement: this.config.boundary
							}
						},
						onCreate: function(t) {
							t.originalPlacement !== t.placement && e._handlePopperPlacementChange(t)
						},
						onUpdate: function(t) {
							return e._handlePopperPlacementChange(t)
						}
					}), g(o).addClass(Fe), "ontouchstart" in document.documentElement && g(document.body).children().on("mouseover", null, g.noop);
					var c = function() {
						e.config.animation && e._fixTransition();
						var t = e._hoverState;
						e._hoverState = null, g(e.element).trigger(e.constructor.Event.SHOWN), t === He && e._leave(null, e)
					};
					if (g(this.tip).hasClass(xe)) {
						var h = _.getTransitionDurationFromElement(this.tip);
						g(this.tip).one(_.TRANSITION_END, c).emulateTransitionEnd(h)
					} else c()
				}
			}, t.hide = function(t) {
				var e = this,
					n = this.getTipElement(),
					i = g.Event(this.constructor.Event.HIDE),
					o = function() {
						e._hoverState !== je && n.parentNode && n.parentNode.removeChild(n), e._cleanTipClass(), e.element.removeAttribute("aria-describedby"), g(e.element).trigger(e.constructor.Event.HIDDEN), null !== e._popper && e._popper.destroy(), t && t()
					};
				if (g(this.element).trigger(i), !i.isDefaultPrevented()) {
					if (g(n).removeClass(Fe), "ontouchstart" in document.documentElement && g(document.body).children().off("mouseover", null, g.noop), this._activeTrigger[Ke] = !1, this._activeTrigger[Me] = !1, this._activeTrigger[qe] = !1, g(this.tip).hasClass(xe)) {
						var r = _.getTransitionDurationFromElement(n);
						g(n).one(_.TRANSITION_END, o).emulateTransitionEnd(r)
					} else o();
					this._hoverState = ""
				}
			}, t.update = function() {
				null !== this._popper && this._popper.scheduleUpdate()
			}, t.isWithContent = function() {
				return Boolean(this.getTitle())
			}, t.addAttachmentClass = function(t) {
				g(this.getTipElement()).addClass(Ae + "-" + t)
			}, t.getTipElement = function() {
				return this.tip = this.tip || g(this.config.template)[0], this.tip
			}, t.setContent = function() {
				var t = this.getTipElement();
				this.setElementContent(g(t.querySelectorAll(Ue)), this.getTitle()), g(t).removeClass(xe + " " + Fe)
			}, t.setElementContent = function(t, e) {
				"object" != typeof e || !e.nodeType && !e.jquery ? this.config.html ? (this.config.sanitize && (e = Se(e, this.config.whiteList, this.config.sanitizeFn)), t.html(e)) : t.text(e) : this.config.html ? g(e).parent().is(t) || t.empty().append(e) : t.text(g(e).text())
			}, t.getTitle = function() {
				var t = this.element.getAttribute("data-original-title");
				return t || (t = "function" == typeof this.config.title ? this.config.title.call(this.element) : this.config.title), t
			}, t._getOffset = function() {
				var e = this,
					t = {};
				return "function" == typeof this.config.offset ? t.fn = function(t) {
					return t.offsets = l({}, t.offsets, e.config.offset(t.offsets, e.element) || {}), t
				} : t.offset = this.config.offset, t
			}, t._getContainer = function() {
				return !1 === this.config.container ? document.body : _.isElement(this.config.container) ? g(this.config.container) : g(document).find(this.config.container)
			}, t._getAttachment = function(t) {
				return Pe[t.toUpperCase()]
			}, t._setListeners = function() {
				var i = this;
				this.config.trigger.split(" ").forEach(function(t) {
					if ("click" === t) g(i.element).on(i.constructor.Event.CLICK, i.config.selector, function(t) {
						return i.toggle(t)
					});
					else if (t !== Qe) {
						var e = t === qe ? i.constructor.Event.MOUSEENTER : i.constructor.Event.FOCUSIN,
							n = t === qe ? i.constructor.Event.MOUSELEAVE : i.constructor.Event.FOCUSOUT;
						g(i.element).on(e, i.config.selector, function(t) {
							return i._enter(t)
						}).on(n, i.config.selector, function(t) {
							return i._leave(t)
						})
					}
				}), g(this.element).closest(".modal").on("hide.bs.modal", function() {
					i.element && i.hide()
				}), this.config.selector ? this.config = l({}, this.config, {
					trigger: "manual",
					selector: ""
				}) : this._fixTitle()
			}, t._fixTitle = function() {
				var t = typeof this.element.getAttribute("data-original-title");
				(this.element.getAttribute("title") || "string" !== t) && (this.element.setAttribute("data-original-title", this.element.getAttribute("title") || ""), this.element.setAttribute("title", ""))
			}, t._enter = function(t, e) {
				var n = this.constructor.DATA_KEY;
				(e = e || g(t.currentTarget).data(n)) || (e = new this.constructor(t.currentTarget, this._getDelegateConfig()), g(t.currentTarget).data(n, e)), t && (e._activeTrigger["focusin" === t.type ? Me : qe] = !0), g(e.getTipElement()).hasClass(Fe) || e._hoverState === je ? e._hoverState = je : (clearTimeout(e._timeout), e._hoverState = je, e.config.delay && e.config.delay.show ? e._timeout = setTimeout(function() {
					e._hoverState === je && e.show()
				}, e.config.delay.show) : e.show())
			}, t._leave = function(t, e) {
				var n = this.constructor.DATA_KEY;
				(e = e || g(t.currentTarget).data(n)) || (e = new this.constructor(t.currentTarget, this._getDelegateConfig()), g(t.currentTarget).data(n, e)), t && (e._activeTrigger["focusout" === t.type ? Me : qe] = !1), e._isWithActiveTrigger() || (clearTimeout(e._timeout), e._hoverState = He, e.config.delay && e.config.delay.hide ? e._timeout = setTimeout(function() {
					e._hoverState === He && e.hide()
				}, e.config.delay.hide) : e.hide())
			}, t._isWithActiveTrigger = function() {
				for (var t in this._activeTrigger)
					if (this._activeTrigger[t]) return !0;
				return !1
			}, t._getConfig = function(t) {
				var e = g(this.element).data();
				return Object.keys(e).forEach(function(t) {
					-1 !== Oe.indexOf(t) && delete e[t]
				}), "number" == typeof(t = l({}, this.constructor.Default, e, "object" == typeof t && t ? t : {})).delay && (t.delay = {
					show: t.delay,
					hide: t.delay
				}), "number" == typeof t.title && (t.title = t.title.toString()), "number" == typeof t.content && (t.content = t.content.toString()), _.typeCheckConfig(be, t, this.constructor.DefaultType), t.sanitize && (t.template = Se(t.template, t.whiteList, t.sanitizeFn)), t
			}, t._getDelegateConfig = function() {
				var t = {};
				if (this.config)
					for (var e in this.config) this.constructor.Default[e] !== this.config[e] && (t[e] = this.config[e]);
				return t
			}, t._cleanTipClass = function() {
				var t = g(this.getTipElement()),
					e = t.attr("class").match(Ne);
				null !== e && e.length && t.removeClass(e.join(""))
			}, t._handlePopperPlacementChange = function(t) {
				var e = t.instance;
				this.tip = e.popper, this._cleanTipClass(), this.addAttachmentClass(this._getAttachment(t.placement))
			}, t._fixTransition = function() {
				var t = this.getTipElement(),
					e = this.config.animation;
				null === t.getAttribute("x-placement") && (g(t).removeClass(xe), this.config.animation = !1, this.hide(), this.show(), this.config.animation = e)
			}, i._jQueryInterface = function(n) {
				return this.each(function() {
					var t = g(this).data(Ie),
						e = "object" == typeof n && n;
					if ((t || !/dispose|hide/.test(n)) && (t || (t = new i(this, e), g(this).data(Ie, t)), "string" == typeof n)) {
						if ("undefined" == typeof t[n]) throw new TypeError('No method named "' + n + '"');
						t[n]()
					}
				})
			}, s(i, null, [{
				key: "VERSION",
				get: function() {
					return "4.3.1"
				}
			}, {
				key: "Default",
				get: function() {
					return Le
				}
			}, {
				key: "NAME",
				get: function() {
					return be
				}
			}, {
				key: "DATA_KEY",
				get: function() {
					return Ie
				}
			}, {
				key: "Event",
				get: function() {
					return Re
				}
			}, {
				key: "EVENT_KEY",
				get: function() {
					return De
				}
			}, {
				key: "DefaultType",
				get: function() {
					return ke
				}
			}]), i
		}();
	g.fn[be] = Be._jQueryInterface, g.fn[be].Constructor = Be, g.fn[be].noConflict = function() {
		return g.fn[be] = we, Be._jQueryInterface
	};
	var Ve = "popover",
		Ye = "bs.popover",
		ze = "." + Ye,
		Xe = g.fn[Ve],
		$e = "bs-popover",
		Ge = new RegExp("(^|\\s)" + $e + "\\S+", "g"),
		Je = l({}, Be.Default, {
			placement: "right",
			trigger: "click",
			content: "",
			template: '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'
		}),
		Ze = l({}, Be.DefaultType, {
			content: "(string|element|function)"
		}),
		tn = "fade",
		en = "show",
		nn = ".popover-header",
		on = ".popover-body",
		rn = {
			HIDE: "hide" + ze,
			HIDDEN: "hidden" + ze,
			SHOW: "show" + ze,
			SHOWN: "shown" + ze,
			INSERTED: "inserted" + ze,
			CLICK: "click" + ze,
			FOCUSIN: "focusin" + ze,
			FOCUSOUT: "focusout" + ze,
			MOUSEENTER: "mouseenter" + ze,
			MOUSELEAVE: "mouseleave" + ze
		},
		sn = function(t) {
			var e, n;

			function i() {
				return t.apply(this, arguments) || this
			}
			n = t, (e = i).prototype = Object.create(n.prototype), (e.prototype.constructor = e).__proto__ = n;
			var o = i.prototype;
			return o.isWithContent = function() {
				return this.getTitle() || this._getContent()
			}, o.addAttachmentClass = function(t) {
				g(this.getTipElement()).addClass($e + "-" + t)
			}, o.getTipElement = function() {
				return this.tip = this.tip || g(this.config.template)[0], this.tip
			}, o.setContent = function() {
				var t = g(this.getTipElement());
				this.setElementContent(t.find(nn), this.getTitle());
				var e = this._getContent();
				"function" == typeof e && (e = e.call(this.element)), this.setElementContent(t.find(on), e), t.removeClass(tn + " " + en)
			}, o._getContent = function() {
				return this.element.getAttribute("data-content") || this.config.content
			}, o._cleanTipClass = function() {
				var t = g(this.getTipElement()),
					e = t.attr("class").match(Ge);
				null !== e && 0 < e.length && t.removeClass(e.join(""))
			}, i._jQueryInterface = function(n) {
				return this.each(function() {
					var t = g(this).data(Ye),
						e = "object" == typeof n ? n : null;
					if ((t || !/dispose|hide/.test(n)) && (t || (t = new i(this, e), g(this).data(Ye, t)), "string" == typeof n)) {
						if ("undefined" == typeof t[n]) throw new TypeError('No method named "' + n + '"');
						t[n]()
					}
				})
			}, s(i, null, [{
				key: "VERSION",
				get: function() {
					return "4.3.1"
				}
			}, {
				key: "Default",
				get: function() {
					return Je
				}
			}, {
				key: "NAME",
				get: function() {
					return Ve
				}
			}, {
				key: "DATA_KEY",
				get: function() {
					return Ye
				}
			}, {
				key: "Event",
				get: function() {
					return rn
				}
			}, {
				key: "EVENT_KEY",
				get: function() {
					return ze
				}
			}, {
				key: "DefaultType",
				get: function() {
					return Ze
				}
			}]), i
		}(Be);
	g.fn[Ve] = sn._jQueryInterface, g.fn[Ve].Constructor = sn, g.fn[Ve].noConflict = function() {
		return g.fn[Ve] = Xe, sn._jQueryInterface
	};
	var an = "scrollspy",
		ln = "bs.scrollspy",
		cn = "." + ln,
		hn = g.fn[an],
		un = {
			offset: 10,
			method: "auto",
			target: ""
		},
		fn = {
			offset: "number",
			method: "string",
			target: "(string|element)"
		},
		dn = {
			ACTIVATE: "activate" + cn,
			SCROLL: "scroll" + cn,
			LOAD_DATA_API: "load" + cn + ".data-api"
		},
		gn = "dropdown-item",
		_n = "active",
		mn = '[data-spy="scroll"]',
		pn = ".nav, .list-group",
		vn = ".nav-link",
		yn = ".nav-item",
		En = ".list-group-item",
		Cn = ".dropdown",
		Tn = ".dropdown-item",
		Sn = ".dropdown-toggle",
		bn = "offset",
		In = "position",
		Dn = function() {
			function n(t, e) {
				var n = this;
				this._element = t, this._scrollElement = "BODY" === t.tagName ? window : t, this._config = this._getConfig(e), this._selector = this._config.target + " " + vn + "," + this._config.target + " " + En + "," + this._config.target + " " + Tn, this._offsets = [], this._targets = [], this._activeTarget = null, this._scrollHeight = 0, g(this._scrollElement).on(dn.SCROLL, function(t) {
					return n._process(t)
				}), this.refresh(), this._process()
			}
			var t = n.prototype;
			return t.refresh = function() {
				var e = this,
					t = this._scrollElement === this._scrollElement.window ? bn : In,
					o = "auto" === this._config.method ? t : this._config.method,
					r = o === In ? this._getScrollTop() : 0;
				this._offsets = [], this._targets = [], this._scrollHeight = this._getScrollHeight(), [].slice.call(document.querySelectorAll(this._selector)).map(function(t) {
					var e, n = _.getSelectorFromElement(t);
					if (n && (e = document.querySelector(n)), e) {
						var i = e.getBoundingClientRect();
						if (i.width || i.height) return [g(e)[o]().top + r, n]
					}
					return null
				}).filter(function(t) {
					return t
				}).sort(function(t, e) {
					return t[0] - e[0]
				}).forEach(function(t) {
					e._offsets.push(t[0]), e._targets.push(t[1])
				})
			}, t.dispose = function() {
				g.removeData(this._element, ln), g(this._scrollElement).off(cn), this._element = null, this._scrollElement = null, this._config = null, this._selector = null, this._offsets = null, this._targets = null, this._activeTarget = null, this._scrollHeight = null
			}, t._getConfig = function(t) {
				if ("string" != typeof(t = l({}, un, "object" == typeof t && t ? t : {})).target) {
					var e = g(t.target).attr("id");
					e || (e = _.getUID(an), g(t.target).attr("id", e)), t.target = "#" + e
				}
				return _.typeCheckConfig(an, t, fn), t
			}, t._getScrollTop = function() {
				return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop
			}, t._getScrollHeight = function() {
				return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight)
			}, t._getOffsetHeight = function() {
				return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height
			}, t._process = function() {
				var t = this._getScrollTop() + this._config.offset,
					e = this._getScrollHeight(),
					n = this._config.offset + e - this._getOffsetHeight();
				if (this._scrollHeight !== e && this.refresh(), n <= t) {
					var i = this._targets[this._targets.length - 1];
					this._activeTarget !== i && this._activate(i)
				} else {
					if (this._activeTarget && t < this._offsets[0] && 0 < this._offsets[0]) return this._activeTarget = null, void this._clear();
					for (var o = this._offsets.length; o--;) {
						this._activeTarget !== this._targets[o] && t >= this._offsets[o] && ("undefined" == typeof this._offsets[o + 1] || t < this._offsets[o + 1]) && this._activate(this._targets[o])
					}
				}
			}, t._activate = function(e) {
				this._activeTarget = e, this._clear();
				var t = this._selector.split(",").map(function(t) {
						return t + '[data-target="' + e + '"],' + t + '[href="' + e + '"]'
					}),
					n = g([].slice.call(document.querySelectorAll(t.join(","))));
				n.hasClass(gn) ? (n.closest(Cn).find(Sn).addClass(_n), n.addClass(_n)) : (n.addClass(_n), n.parents(pn).prev(vn + ", " + En).addClass(_n), n.parents(pn).prev(yn).children(vn).addClass(_n)), g(this._scrollElement).trigger(dn.ACTIVATE, {
					relatedTarget: e
				})
			}, t._clear = function() {
				[].slice.call(document.querySelectorAll(this._selector)).filter(function(t) {
					return t.classList.contains(_n)
				}).forEach(function(t) {
					return t.classList.remove(_n)
				})
			}, n._jQueryInterface = function(e) {
				return this.each(function() {
					var t = g(this).data(ln);
					if (t || (t = new n(this, "object" == typeof e && e), g(this).data(ln, t)), "string" == typeof e) {
						if ("undefined" == typeof t[e]) throw new TypeError('No method named "' + e + '"');
						t[e]()
					}
				})
			}, s(n, null, [{
				key: "VERSION",
				get: function() {
					return "4.3.1"
				}
			}, {
				key: "Default",
				get: function() {
					return un
				}
			}]), n
		}();
	g(window).on(dn.LOAD_DATA_API, function() {
		for (var t = [].slice.call(document.querySelectorAll(mn)), e = t.length; e--;) {
			var n = g(t[e]);
			Dn._jQueryInterface.call(n, n.data())
		}
	}), g.fn[an] = Dn._jQueryInterface, g.fn[an].Constructor = Dn, g.fn[an].noConflict = function() {
		return g.fn[an] = hn, Dn._jQueryInterface
	};
	var wn = "bs.tab",
		An = "." + wn,
		Nn = g.fn.tab,
		On = {
			HIDE: "hide" + An,
			HIDDEN: "hidden" + An,
			SHOW: "show" + An,
			SHOWN: "shown" + An,
			CLICK_DATA_API: "click" + An + ".data-api"
		},
		kn = "dropdown-menu",
		Pn = "active",
		Ln = "disabled",
		jn = "fade",
		Hn = "show",
		Rn = ".dropdown",
		xn = ".nav, .list-group",
		Fn = ".active",
		Un = "> li > .active",
		Wn = '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',
		qn = ".dropdown-toggle",
		Mn = "> .dropdown-menu .active",
		Kn = function() {
			function i(t) {
				this._element = t
			}
			var t = i.prototype;
			return t.show = function() {
				var n = this;
				if (!(this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && g(this._element).hasClass(Pn) || g(this._element).hasClass(Ln))) {
					var t, i, e = g(this._element).closest(xn)[0],
						o = _.getSelectorFromElement(this._element);
					if (e) {
						var r = "UL" === e.nodeName || "OL" === e.nodeName ? Un : Fn;
						i = (i = g.makeArray(g(e).find(r)))[i.length - 1]
					}
					var s = g.Event(On.HIDE, {
							relatedTarget: this._element
						}),
						a = g.Event(On.SHOW, {
							relatedTarget: i
						});
					if (i && g(i).trigger(s), g(this._element).trigger(a), !a.isDefaultPrevented() && !s.isDefaultPrevented()) {
						o && (t = document.querySelector(o)), this._activate(this._element, e);
						var l = function() {
							var t = g.Event(On.HIDDEN, {
									relatedTarget: n._element
								}),
								e = g.Event(On.SHOWN, {
									relatedTarget: i
								});
							g(i).trigger(t), g(n._element).trigger(e)
						};
						t ? this._activate(t, t.parentNode, l) : l()
					}
				}
			}, t.dispose = function() {
				g.removeData(this._element, wn), this._element = null
			}, t._activate = function(t, e, n) {
				var i = this,
					o = (!e || "UL" !== e.nodeName && "OL" !== e.nodeName ? g(e).children(Fn) : g(e).find(Un))[0],
					r = n && o && g(o).hasClass(jn),
					s = function() {
						return i._transitionComplete(t, o, n)
					};
				if (o && r) {
					var a = _.getTransitionDurationFromElement(o);
					g(o).removeClass(Hn).one(_.TRANSITION_END, s).emulateTransitionEnd(a)
				} else s()
			}, t._transitionComplete = function(t, e, n) {
				if (e) {
					g(e).removeClass(Pn);
					var i = g(e.parentNode).find(Mn)[0];
					i && g(i).removeClass(Pn), "tab" === e.getAttribute("role") && e.setAttribute("aria-selected", !1)
				}
				if (g(t).addClass(Pn), "tab" === t.getAttribute("role") && t.setAttribute("aria-selected", !0), _.reflow(t), t.classList.contains(jn) && t.classList.add(Hn), t.parentNode && g(t.parentNode).hasClass(kn)) {
					var o = g(t).closest(Rn)[0];
					if (o) {
						var r = [].slice.call(o.querySelectorAll(qn));
						g(r).addClass(Pn)
					}
					t.setAttribute("aria-expanded", !0)
				}
				n && n()
			}, i._jQueryInterface = function(n) {
				return this.each(function() {
					var t = g(this),
						e = t.data(wn);
					if (e || (e = new i(this), t.data(wn, e)), "string" == typeof n) {
						if ("undefined" == typeof e[n]) throw new TypeError('No method named "' + n + '"');
						e[n]()
					}
				})
			}, s(i, null, [{
				key: "VERSION",
				get: function() {
					return "4.3.1"
				}
			}]), i
		}();
	g(document).on(On.CLICK_DATA_API, Wn, function(t) {
		t.preventDefault(), Kn._jQueryInterface.call(g(this), "show")
	}), g.fn.tab = Kn._jQueryInterface, g.fn.tab.Constructor = Kn, g.fn.tab.noConflict = function() {
		return g.fn.tab = Nn, Kn._jQueryInterface
	};
	var Qn = "toast",
		Bn = "bs.toast",
		Vn = "." + Bn,
		Yn = g.fn[Qn],
		zn = {
			CLICK_DISMISS: "click.dismiss" + Vn,
			HIDE: "hide" + Vn,
			HIDDEN: "hidden" + Vn,
			SHOW: "show" + Vn,
			SHOWN: "shown" + Vn
		},
		Xn = "fade",
		$n = "hide",
		Gn = "show",
		Jn = "showing",
		Zn = {
			animation: "boolean",
			autohide: "boolean",
			delay: "number"
		},
		ti = {
			animation: !0,
			autohide: !0,
			delay: 500
		},
		ei = '[data-dismiss="toast"]',
		ni = function() {
			function i(t, e) {
				this._element = t, this._config = this._getConfig(e), this._timeout = null, this._setListeners()
			}
			var t = i.prototype;
			return t.show = function() {
				var t = this;
				g(this._element).trigger(zn.SHOW), this._config.animation && this._element.classList.add(Xn);
				var e = function() {
					t._element.classList.remove(Jn), t._element.classList.add(Gn), g(t._element).trigger(zn.SHOWN), t._config.autohide && t.hide()
				};
				if (this._element.classList.remove($n), this._element.classList.add(Jn), this._config.animation) {
					var n = _.getTransitionDurationFromElement(this._element);
					g(this._element).one(_.TRANSITION_END, e).emulateTransitionEnd(n)
				} else e()
			}, t.hide = function(t) {
				var e = this;
				this._element.classList.contains(Gn) && (g(this._element).trigger(zn.HIDE), t ? this._close() : this._timeout = setTimeout(function() {
					e._close()
				}, this._config.delay))
			}, t.dispose = function() {
				clearTimeout(this._timeout), this._timeout = null, this._element.classList.contains(Gn) && this._element.classList.remove(Gn), g(this._element).off(zn.CLICK_DISMISS), g.removeData(this._element, Bn), this._element = null, this._config = null
			}, t._getConfig = function(t) {
				return t = l({}, ti, g(this._element).data(), "object" == typeof t && t ? t : {}), _.typeCheckConfig(Qn, t, this.constructor.DefaultType), t
			}, t._setListeners = function() {
				var t = this;
				g(this._element).on(zn.CLICK_DISMISS, ei, function() {
					return t.hide(!0)
				})
			}, t._close = function() {
				var t = this,
					e = function() {
						t._element.classList.add($n), g(t._element).trigger(zn.HIDDEN)
					};
				if (this._element.classList.remove(Gn), this._config.animation) {
					var n = _.getTransitionDurationFromElement(this._element);
					g(this._element).one(_.TRANSITION_END, e).emulateTransitionEnd(n)
				} else e()
			}, i._jQueryInterface = function(n) {
				return this.each(function() {
					var t = g(this),
						e = t.data(Bn);
					if (e || (e = new i(this, "object" == typeof n && n), t.data(Bn, e)), "string" == typeof n) {
						if ("undefined" == typeof e[n]) throw new TypeError('No method named "' + n + '"');
						e[n](this)
					}
				})
			}, s(i, null, [{
				key: "VERSION",
				get: function() {
					return "4.3.1"
				}
			}, {
				key: "DefaultType",
				get: function() {
					return Zn
				}
			}, {
				key: "Default",
				get: function() {
					return ti
				}
			}]), i
		}();
	g.fn[Qn] = ni._jQueryInterface, g.fn[Qn].Constructor = ni, g.fn[Qn].noConflict = function() {
			return g.fn[Qn] = Yn, ni._jQueryInterface
		},
		function() {
			if ("undefined" == typeof g) throw new TypeError("Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript.");
			var t = g.fn.jquery.split(" ")[0].split(".");
			if (t[0] < 2 && t[1] < 9 || 1 === t[0] && 9 === t[1] && t[2] < 1 || 4 <= t[0]) throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0")
		}(), t.Util = _, t.Alert = p, t.Button = P, t.Carousel = lt, t.Collapse = bt, t.Dropdown = Jt, t.Modal = ve, t.Popover = sn, t.Scrollspy = Dn, t.Tab = Kn, t.Toast = ni, t.Tooltip = Be, Object.defineProperty(t, "__esModule", {
			value: !0
		})
});
! function(t, e, n, o) {
	"use strict";

	function i(t, e) {
		var o, i, a, s = [],
			r = 0;
		t && t.isDefaultPrevented() || (t.preventDefault(), e = e || {}, t && t.data && (e = h(t.data.options, e)), o = e.$target || n(t.currentTarget).trigger("blur"), (a = n.fancybox.getInstance()) && a.$trigger && a.$trigger.is(o) || (e.selector ? s = n(e.selector) : (i = o.attr("data-fancybox") || "", i ? (s = t.data ? t.data.items : [], s = s.length ? s.filter('[data-fancybox="' + i + '"]') : n('[data-fancybox="' + i + '"]')) : s = [o]), r = n(s).index(o), r < 0 && (r = 0), a = n.fancybox.open(s, e, r), a.$trigger = o))
	}
	if (t.console = t.console || {
			info: function(t) {}
		}, n) {
		if (n.fn.fancybox) return void console.info("fancyBox already initialized");
		var a = {
				closeExisting: !1,
				loop: !1,
				gutter: 50,
				keyboard: !0,
				preventCaptionOverlap: !0,
				arrows: !0,
				infobar: !0,
				smallBtn: "auto",
				toolbar: "auto",
				buttons: ["zoom", "slideShow", "thumbs", "close"],
				idleTime: 3,
				protect: !1,
				modal: !1,
				image: {
					preload: !1
				},
				ajax: {
					settings: {
						data: {
							fancybox: !0
						}
					}
				},
				iframe: {
					tpl: '<iframe id="fancybox-frame{rnd}" name="fancybox-frame{rnd}" class="fancybox-iframe" allowfullscreen="allowfullscreen" allow="autoplay; fullscreen" src=""></iframe>',
					preload: !0,
					css: {},
					attr: {
						scrolling: "auto"
					}
				},
				video: {
					tpl: '<video class="fancybox-video" controls controlsList="nodownload" poster="{{poster}}"><source src="{{src}}" type="{{format}}" />Sorry, your browser doesn\'t support embedded videos, <a href="{{src}}">download</a> and watch with your favorite video player!</video>',
					format: "",
					autoStart: !0
				},
				defaultType: "image",
				animationEffect: "zoom",
				animationDuration: 366,
				zoomOpacity: "auto",
				transitionEffect: "fade",
				transitionDuration: 366,
				slideClass: "",
				baseClass: "",
				baseTpl: '<div class="fancybox-container" role="dialog" tabindex="-1"><div class="fancybox-bg"></div><div class="fancybox-inner"><div class="fancybox-infobar"><span data-fancybox-index></span>&nbsp;/&nbsp;<span data-fancybox-count></span></div><div class="fancybox-toolbar">{{buttons}}</div><div class="fancybox-navigation">{{arrows}}</div><div class="fancybox-stage"></div><div class="fancybox-caption"><div class="fancybox-caption__body"></div></div></div></div>',
				spinnerTpl: '<div class="fancybox-loading"></div>',
				errorTpl: '<div class="fancybox-error"><p>{{ERROR}}</p></div>',
				btnTpl: {
					download: '<a download data-fancybox-download class="fancybox-button fancybox-button--download" title="{{DOWNLOAD}}" href="javascript:;"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18.62 17.09V19H5.38v-1.91zm-2.97-6.96L17 11.45l-5 4.87-5-4.87 1.36-1.32 2.68 2.64V5h1.92v7.77z"/></svg></a>',
					zoom: '<button data-fancybox-zoom class="fancybox-button fancybox-button--zoom" title="{{ZOOM}}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18.7 17.3l-3-3a5.9 5.9 0 0 0-.6-7.6 5.9 5.9 0 0 0-8.4 0 5.9 5.9 0 0 0 0 8.4 5.9 5.9 0 0 0 7.7.7l3 3a1 1 0 0 0 1.3 0c.4-.5.4-1 0-1.5zM8.1 13.8a4 4 0 0 1 0-5.7 4 4 0 0 1 5.7 0 4 4 0 0 1 0 5.7 4 4 0 0 1-5.7 0z"/></svg></button>',
					close: '<button data-fancybox-close class="fancybox-button fancybox-button--close" title="{{CLOSE}}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 10.6L6.6 5.2 5.2 6.6l5.4 5.4-5.4 5.4 1.4 1.4 5.4-5.4 5.4 5.4 1.4-1.4-5.4-5.4 5.4-5.4-1.4-1.4-5.4 5.4z"/></svg></button>',
					arrowLeft: '<button data-fancybox-prev class="fancybox-button fancybox-button--arrow_left" title="{{PREV}}"><div><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M11.28 15.7l-1.34 1.37L5 12l4.94-5.07 1.34 1.38-2.68 2.72H19v1.94H8.6z"/></svg></div></button>',
					arrowRight: '<button data-fancybox-next class="fancybox-button fancybox-button--arrow_right" title="{{NEXT}}"><div><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M15.4 12.97l-2.68 2.72 1.34 1.38L19 12l-4.94-5.07-1.34 1.38 2.68 2.72H5v1.94z"/></svg></div></button>',
					smallBtn: '<button type="button" data-fancybox-close class="fancybox-button fancybox-close-small" title="{{CLOSE}}"><svg xmlns="http://www.w3.org/2000/svg" version="1" viewBox="0 0 24 24"><path d="M13 12l5-5-1-1-5 5-5-5-1 1 5 5-5 5 1 1 5-5 5 5 1-1z"/></svg></button>'
				},
				parentEl: "body",
				hideScrollbar: !0,
				autoFocus: !0,
				backFocus: !0,
				trapFocus: !0,
				fullScreen: {
					autoStart: !1
				},
				touch: {
					vertical: !0,
					momentum: !0
				},
				hash: null,
				media: {},
				slideShow: {
					autoStart: !1,
					speed: 3e3
				},
				thumbs: {
					autoStart: !1,
					hideOnClose: !0,
					parentEl: ".fancybox-container",
					axis: "y"
				},
				wheel: "auto",
				onInit: n.noop,
				beforeLoad: n.noop,
				afterLoad: n.noop,
				beforeShow: n.noop,
				afterShow: n.noop,
				beforeClose: n.noop,
				afterClose: n.noop,
				onActivate: n.noop,
				onDeactivate: n.noop,
				clickContent: function(t, e) {
					return "image" === t.type && "zoom"
				},
				clickSlide: "close",
				clickOutside: "close",
				dblclickContent: !1,
				dblclickSlide: !1,
				dblclickOutside: !1,
				mobile: {
					preventCaptionOverlap: !1,
					idleTime: !1,
					clickContent: function(t, e) {
						return "image" === t.type && "toggleControls"
					},
					clickSlide: function(t, e) {
						return "image" === t.type ? "toggleControls" : "close"
					},
					dblclickContent: function(t, e) {
						return "image" === t.type && "zoom"
					},
					dblclickSlide: function(t, e) {
						return "image" === t.type && "zoom"
					}
				},
				lang: "en",
				i18n: {
					en: {
						CLOSE: "Close",
						NEXT: "Next",
						PREV: "Previous",
						ERROR: "The requested content cannot be loaded. <br/> Please try again later.",
						PLAY_START: "Start slideshow",
						PLAY_STOP: "Pause slideshow",
						FULL_SCREEN: "Full screen",
						THUMBS: "Thumbnails",
						DOWNLOAD: "Download",
						SHARE: "Share",
						ZOOM: "Zoom"
					},
					de: {
						CLOSE: "Schlie&szlig;en",
						NEXT: "Weiter",
						PREV: "Zur&uuml;ck",
						ERROR: "Die angeforderten Daten konnten nicht geladen werden. <br/> Bitte versuchen Sie es sp&auml;ter nochmal.",
						PLAY_START: "Diaschau starten",
						PLAY_STOP: "Diaschau beenden",
						FULL_SCREEN: "Vollbild",
						THUMBS: "Vorschaubilder",
						DOWNLOAD: "Herunterladen",
						SHARE: "Teilen",
						ZOOM: "Vergr&ouml;&szlig;ern"
					}
				}
			},
			s = n(t),
			r = n(e),
			c = 0,
			l = function(t) {
				return t && t.hasOwnProperty && t instanceof n
			},
			d = function() {
				return t.requestAnimationFrame || t.webkitRequestAnimationFrame || t.mozRequestAnimationFrame || t.oRequestAnimationFrame || function(e) {
					return t.setTimeout(e, 1e3 / 60)
				}
			}(),
			u = function() {
				return t.cancelAnimationFrame || t.webkitCancelAnimationFrame || t.mozCancelAnimationFrame || t.oCancelAnimationFrame || function(e) {
					t.clearTimeout(e)
				}
			}(),
			f = function() {
				var t, n = e.createElement("fakeelement"),
					o = {
						transition: "transitionend",
						OTransition: "oTransitionEnd",
						MozTransition: "transitionend",
						WebkitTransition: "webkitTransitionEnd"
					};
				for (t in o)
					if (void 0 !== n.style[t]) return o[t];
				return "transitionend"
			}(),
			p = function(t) {
				return t && t.length && t[0].offsetHeight
			},
			h = function(t, e) {
				var o = n.extend(!0, {}, t, e);
				return n.each(e, function(t, e) {
					n.isArray(e) && (o[t] = e)
				}), o
			},
			g = function(t) {
				var o, i;
				return !(!t || t.ownerDocument !== e) && (n(".fancybox-container").css("pointer-events", "none"), o = {
					x: t.getBoundingClientRect().left + t.offsetWidth / 2,
					y: t.getBoundingClientRect().top + t.offsetHeight / 2
				}, i = e.elementFromPoint(o.x, o.y) === t, n(".fancybox-container").css("pointer-events", ""), i)
			},
			b = function(t, e, o) {
				var i = this;
				i.opts = h({
					index: o
				}, n.fancybox.defaults), n.isPlainObject(e) && (i.opts = h(i.opts, e)), n.fancybox.isMobile && (i.opts = h(i.opts, i.opts.mobile)), i.id = i.opts.id || ++c, i.currIndex = parseInt(i.opts.index, 10) || 0, i.prevIndex = null, i.prevPos = null, i.currPos = 0, i.firstRun = !0, i.group = [], i.slides = {}, i.addContent(t), i.group.length && i.init()
			};
		n.extend(b.prototype, {
				init: function() {
					var o, i, a = this,
						s = a.group[a.currIndex],
						r = s.opts;
					r.closeExisting && n.fancybox.close(!0), n("body").addClass("fancybox-active"), !n.fancybox.getInstance() && !1 !== r.hideScrollbar && !n.fancybox.isMobile && e.body.scrollHeight > t.innerHeight && (n("head").append('<style id="fancybox-style-noscroll" type="text/css">.compensate-for-scrollbar{margin-right:' + (t.innerWidth - e.documentElement.clientWidth) + "px;}</style>"), n("body").addClass("compensate-for-scrollbar")), i = "", n.each(r.buttons, function(t, e) {
						i += r.btnTpl[e] || ""
					}), o = n(a.translate(a, r.baseTpl.replace("{{buttons}}", i).replace("{{arrows}}", r.btnTpl.arrowLeft + r.btnTpl.arrowRight))).attr("id", "fancybox-container-" + a.id).addClass(r.baseClass).data("FancyBox", a).appendTo(r.parentEl), a.$refs = {
						container: o
					}, ["bg", "inner", "infobar", "toolbar", "stage", "caption", "navigation"].forEach(function(t) {
						a.$refs[t] = o.find(".fancybox-" + t)
					}), a.trigger("onInit"), a.activate(), a.jumpTo(a.currIndex)
				},
				translate: function(t, e) {
					var n = t.opts.i18n[t.opts.lang] || t.opts.i18n.en;
					return e.replace(/\{\{(\w+)\}\}/g, function(t, e) {
						return void 0 === n[e] ? t : n[e]
					})
				},
				addContent: function(t) {
					var e, o = this,
						i = n.makeArray(t);
					n.each(i, function(t, e) {
						var i, a, s, r, c, l = {},
							d = {};
						n.isPlainObject(e) ? (l = e, d = e.opts || e) : "object" === n.type(e) && n(e).length ? (i = n(e), d = i.data() || {}, d = n.extend(!0, {}, d, d.options), d.$orig = i, l.src = o.opts.src || d.src || i.attr("href"), l.type || l.src || (l.type = "inline", l.src = e)) : l = {
							type: "html",
							src: e + ""
						}, l.opts = n.extend(!0, {}, o.opts, d), n.isArray(d.buttons) && (l.opts.buttons = d.buttons), n.fancybox.isMobile && l.opts.mobile && (l.opts = h(l.opts, l.opts.mobile)), a = l.type || l.opts.type, r = l.src || "", !a && r && ((s = r.match(/\.(mp4|mov|ogv|webm)((\?|#).*)?$/i)) ? (a = "video", l.opts.video.format || (l.opts.video.format = "video/" + ("ogv" === s[1] ? "ogg" : s[1]))) : r.match(/(^data:image\/[a-z0-9+\/=]*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg|ico)((\?|#).*)?$)/i) ? a = "image" : r.match(/\.(pdf)((\?|#).*)?$/i) ? (a = "iframe", l = n.extend(!0, l, {
							contentType: "pdf",
							opts: {
								iframe: {
									preload: !1
								}
							}
						})) : "#" === r.charAt(0) && (a = "inline")), a ? l.type = a : o.trigger("objectNeedsType", l), l.contentType || (l.contentType = n.inArray(l.type, ["html", "inline", "ajax"]) > -1 ? "html" : l.type), l.index = o.group.length, "auto" == l.opts.smallBtn && (l.opts.smallBtn = n.inArray(l.type, ["html", "inline", "ajax"]) > -1), "auto" === l.opts.toolbar && (l.opts.toolbar = !l.opts.smallBtn), l.$thumb = l.opts.$thumb || null, l.opts.$trigger && l.index === o.opts.index && (l.$thumb = l.opts.$trigger.find("img:first"), l.$thumb.length && (l.opts.$orig = l.opts.$trigger)), l.$thumb && l.$thumb.length || !l.opts.$orig || (l.$thumb = l.opts.$orig.find("img:first")), l.$thumb && !l.$thumb.length && (l.$thumb = null), l.thumb = l.opts.thumb || (l.$thumb ? l.$thumb[0].src : null), "function" === n.type(l.opts.caption) && (l.opts.caption = l.opts.caption.apply(e, [o, l])), "function" === n.type(o.opts.caption) && (l.opts.caption = o.opts.caption.apply(e, [o, l])), l.opts.caption instanceof n || (l.opts.caption = void 0 === l.opts.caption ? "" : l.opts.caption + ""), "ajax" === l.type && (c = r.split(/\s+/, 2), c.length > 1 && (l.src = c.shift(), l.opts.filter = c.shift())), l.opts.modal && (l.opts = n.extend(!0, l.opts, {
							trapFocus: !0,
							infobar: 0,
							toolbar: 0,
							smallBtn: 0,
							keyboard: 0,
							slideShow: 0,
							fullScreen: 0,
							thumbs: 0,
							touch: 0,
							clickContent: !1,
							clickSlide: !1,
							clickOutside: !1,
							dblclickContent: !1,
							dblclickSlide: !1,
							dblclickOutside: !1
						})), o.group.push(l)
					}), Object.keys(o.slides).length && (o.updateControls(), (e = o.Thumbs) && e.isActive && (e.create(), e.focus()))
				},
				addEvents: function() {
					var e = this;
					e.removeEvents(), e.$refs.container.on("click.fb-close", "[data-fancybox-close]", function(t) {
						t.stopPropagation(), t.preventDefault(), e.close(t)
					}).on("touchstart.fb-prev click.fb-prev", "[data-fancybox-prev]", function(t) {
						t.stopPropagation(), t.preventDefault(), e.previous()
					}).on("touchstart.fb-next click.fb-next", "[data-fancybox-next]", function(t) {
						t.stopPropagation(), t.preventDefault(), e.next()
					}).on("click.fb", "[data-fancybox-zoom]", function(t) {
						e[e.isScaledDown() ? "scaleToActual" : "scaleToFit"]()
					}), s.on("orientationchange.fb resize.fb", function(t) {
						t && t.originalEvent && "resize" === t.originalEvent.type ? (e.requestId && u(e.requestId), e.requestId = d(function() {
							e.update(t)
						})) : (e.current && "iframe" === e.current.type && e.$refs.stage.hide(), setTimeout(function() {
							e.$refs.stage.show(), e.update(t)
						}, n.fancybox.isMobile ? 600 : 250))
					}), r.on("keydown.fb", function(t) {
						var o = n.fancybox ? n.fancybox.getInstance() : null,
							i = o.current,
							a = t.keyCode || t.which;
						if (9 == a) return void(i.opts.trapFocus && e.focus(t));
						if (!(!i.opts.keyboard || t.ctrlKey || t.altKey || t.shiftKey || n(t.target).is("input,textarea,video,audio,select"))) return 8 === a || 27 === a ? (t.preventDefault(), void e.close(t)) : 37 === a || 38 === a ? (t.preventDefault(), void e.previous()) : 39 === a || 40 === a ? (t.preventDefault(), void e.next()) : void e.trigger("afterKeydown", t, a)
					}), e.group[e.currIndex].opts.idleTime && (e.idleSecondsCounter = 0, r.on("mousemove.fb-idle mouseleave.fb-idle mousedown.fb-idle touchstart.fb-idle touchmove.fb-idle scroll.fb-idle keydown.fb-idle", function(t) {
						e.idleSecondsCounter = 0, e.isIdle && e.showControls(), e.isIdle = !1
					}), e.idleInterval = t.setInterval(function() {
						++e.idleSecondsCounter >= e.group[e.currIndex].opts.idleTime && !e.isDragging && (e.isIdle = !0, e.idleSecondsCounter = 0, e.hideControls())
					}, 1e3))
				},
				removeEvents: function() {
					var e = this;
					s.off("orientationchange.fb resize.fb"), r.off("keydown.fb .fb-idle"), this.$refs.container.off(".fb-close .fb-prev .fb-next"), e.idleInterval && (t.clearInterval(e.idleInterval), e.idleInterval = null)
				},
				previous: function(t) {
					return this.jumpTo(this.currPos - 1, t)
				},
				next: function(t) {
					return this.jumpTo(this.currPos + 1, t)
				},
				jumpTo: function(t, e) {
					var o, i, a, s, r, c, l, d, u, f = this,
						h = f.group.length;
					if (!(f.isDragging || f.isClosing || f.isAnimating && f.firstRun)) {
						if (t = parseInt(t, 10), !(a = f.current ? f.current.opts.loop : f.opts.loop) && (t < 0 || t >= h)) return !1;
						if (o = f.firstRun = !Object.keys(f.slides).length, r = f.current, f.prevIndex = f.currIndex, f.prevPos = f.currPos, s = f.createSlide(t), h > 1 && ((a || s.index < h - 1) && f.createSlide(t + 1), (a || s.index > 0) && f.createSlide(t - 1)), f.current = s, f.currIndex = s.index, f.currPos = s.pos, f.trigger("beforeShow", o), f.updateControls(), s.forcedDuration = void 0, n.isNumeric(e) ? s.forcedDuration = e : e = s.opts[o ? "animationDuration" : "transitionDuration"], e = parseInt(e, 10), i = f.isMoved(s), s.$slide.addClass("fancybox-slide--current"), o) return s.opts.animationEffect && e && f.$refs.container.css("transition-duration", e + "ms"), f.$refs.container.addClass("fancybox-is-open").trigger("focus"), f.loadSlide(s), void f.preload("image");
						c = n.fancybox.getTranslate(r.$slide), l = n.fancybox.getTranslate(f.$refs.stage), n.each(f.slides, function(t, e) {
							n.fancybox.stop(e.$slide, !0)
						}), r.pos !== s.pos && (r.isComplete = !1), r.$slide.removeClass("fancybox-slide--complete fancybox-slide--current"), i ? (u = c.left - (r.pos * c.width + r.pos * r.opts.gutter), n.each(f.slides, function(t, o) {
							o.$slide.removeClass("fancybox-animated").removeClass(function(t, e) {
								return (e.match(/(^|\s)fancybox-fx-\S+/g) || []).join(" ")
							});
							var i = o.pos * c.width + o.pos * o.opts.gutter;
							n.fancybox.setTranslate(o.$slide, {
								top: 0,
								left: i - l.left + u
							}), o.pos !== s.pos && o.$slide.addClass("fancybox-slide--" + (o.pos > s.pos ? "next" : "previous")), p(o.$slide), n.fancybox.animate(o.$slide, {
								top: 0,
								left: (o.pos - s.pos) * c.width + (o.pos - s.pos) * o.opts.gutter
							}, e, function() {
								o.$slide.css({
									transform: "",
									opacity: ""
								}).removeClass("fancybox-slide--next fancybox-slide--previous"), o.pos === f.currPos && f.complete()
							})
						})) : e && s.opts.transitionEffect && (d = "fancybox-animated fancybox-fx-" + s.opts.transitionEffect, r.$slide.addClass("fancybox-slide--" + (r.pos > s.pos ? "next" : "previous")), n.fancybox.animate(r.$slide, d, e, function() {
							r.$slide.removeClass(d).removeClass("fancybox-slide--next fancybox-slide--previous")
						}, !1)), s.isLoaded ? f.revealContent(s) : f.loadSlide(s), f.preload("image")
					}
				},
				createSlide: function(t) {
					var e, o, i = this;
					return o = t % i.group.length, o = o < 0 ? i.group.length + o : o, !i.slides[t] && i.group[o] && (e = n('<div class="fancybox-slide"></div>').appendTo(i.$refs.stage), i.slides[t] = n.extend(!0, {}, i.group[o], {
						pos: t,
						$slide: e,
						isLoaded: !1
					}), i.updateSlide(i.slides[t])), i.slides[t]
				},
				scaleToActual: function(t, e, o) {
					var i, a, s, r, c, l = this,
						d = l.current,
						u = d.$content,
						f = n.fancybox.getTranslate(d.$slide).width,
						p = n.fancybox.getTranslate(d.$slide).height,
						h = d.width,
						g = d.height;
					l.isAnimating || l.isMoved() || !u || "image" != d.type || !d.isLoaded || d.hasError || (l.isAnimating = !0, n.fancybox.stop(u), t = void 0 === t ? .5 * f : t, e = void 0 === e ? .5 * p : e, i = n.fancybox.getTranslate(u), i.top -= n.fancybox.getTranslate(d.$slide).top, i.left -= n.fancybox.getTranslate(d.$slide).left, r = h / i.width, c = g / i.height, a = .5 * f - .5 * h, s = .5 * p - .5 * g, h > f && (a = i.left * r - (t * r - t), a > 0 && (a = 0), a < f - h && (a = f - h)), g > p && (s = i.top * c - (e * c - e), s > 0 && (s = 0), s < p - g && (s = p - g)), l.updateCursor(h, g), n.fancybox.animate(u, {
						top: s,
						left: a,
						scaleX: r,
						scaleY: c
					}, o || 366, function() {
						l.isAnimating = !1
					}), l.SlideShow && l.SlideShow.isActive && l.SlideShow.stop())
				},
				scaleToFit: function(t) {
					var e, o = this,
						i = o.current,
						a = i.$content;
					o.isAnimating || o.isMoved() || !a || "image" != i.type || !i.isLoaded || i.hasError || (o.isAnimating = !0, n.fancybox.stop(a), e = o.getFitPos(i), o.updateCursor(e.width, e.height), n.fancybox.animate(a, {
						top: e.top,
						left: e.left,
						scaleX: e.width / a.width(),
						scaleY: e.height / a.height()
					}, t || 366, function() {
						o.isAnimating = !1
					}))
				},
				getFitPos: function(t) {
					var e, o, i, a, s = this,
						r = t.$content,
						c = t.$slide,
						l = t.width || t.opts.width,
						d = t.height || t.opts.height,
						u = {};
					return !!(t.isLoaded && r && r.length) && (e = n.fancybox.getTranslate(s.$refs.stage).width, o = n.fancybox.getTranslate(s.$refs.stage).height, e -= parseFloat(c.css("paddingLeft")) + parseFloat(c.css("paddingRight")) + parseFloat(r.css("marginLeft")) + parseFloat(r.css("marginRight")), o -= parseFloat(c.css("paddingTop")) + parseFloat(c.css("paddingBottom")) + parseFloat(r.css("marginTop")) + parseFloat(r.css("marginBottom")), l && d || (l = e, d = o), i = Math.min(1, e / l, o / d), l *= i, d *= i, l > e - .5 && (l = e), d > o - .5 && (d = o), "image" === t.type ? (u.top = Math.floor(.5 * (o - d)) + parseFloat(c.css("paddingTop")), u.left = Math.floor(.5 * (e - l)) + parseFloat(c.css("paddingLeft"))) : "video" === t.contentType && (a = t.opts.width && t.opts.height ? l / d : t.opts.ratio || 16 / 9, d > l / a ? d = l / a : l > d * a && (l = d * a)), u.width = l, u.height = d, u)
				},
				update: function(t) {
					var e = this;
					n.each(e.slides, function(n, o) {
						e.updateSlide(o, t)
					})
				},
				updateSlide: function(t, e) {
					var o = this,
						i = t && t.$content,
						a = t.width || t.opts.width,
						s = t.height || t.opts.height,
						r = t.$slide;
					o.adjustCaption(t), i && (a || s || "video" === t.contentType) && !t.hasError && (n.fancybox.stop(i), n.fancybox.setTranslate(i, o.getFitPos(t)), t.pos === o.currPos && (o.isAnimating = !1, o.updateCursor())), o.adjustLayout(t), r.length && (r.trigger("refresh"), t.pos === o.currPos && o.$refs.toolbar.add(o.$refs.navigation.find(".fancybox-button--arrow_right")).toggleClass("compensate-for-scrollbar", r.get(0).scrollHeight > r.get(0).clientHeight)), o.trigger("onUpdate", t, e)
				},
				centerSlide: function(t) {
					var e = this,
						o = e.current,
						i = o.$slide;
					!e.isClosing && o && (i.siblings().css({
						transform: "",
						opacity: ""
					}), i.parent().children().removeClass("fancybox-slide--previous fancybox-slide--next"), n.fancybox.animate(i, {
						top: 0,
						left: 0,
						opacity: 1
					}, void 0 === t ? 0 : t, function() {
						i.css({
							transform: "",
							opacity: ""
						}), o.isComplete || e.complete()
					}, !1))
				},
				isMoved: function(t) {
					var e, o, i = t || this.current;
					return !!i && (o = n.fancybox.getTranslate(this.$refs.stage), e = n.fancybox.getTranslate(i.$slide), !i.$slide.hasClass("fancybox-animated") && (Math.abs(e.top - o.top) > .5 || Math.abs(e.left - o.left) > .5))
				},
				updateCursor: function(t, e) {
					var o, i, a = this,
						s = a.current,
						r = a.$refs.container;
					s && !a.isClosing && a.Guestures && (r.removeClass("fancybox-is-zoomable fancybox-can-zoomIn fancybox-can-zoomOut fancybox-can-swipe fancybox-can-pan"), o = a.canPan(t, e), i = !!o || a.isZoomable(), r.toggleClass("fancybox-is-zoomable", i), n("[data-fancybox-zoom]").prop("disabled", !i), o ? r.addClass("fancybox-can-pan") : i && ("zoom" === s.opts.clickContent || n.isFunction(s.opts.clickContent) && "zoom" == s.opts.clickContent(s)) ? r.addClass("fancybox-can-zoomIn") : s.opts.touch && (s.opts.touch.vertical || a.group.length > 1) && "video" !== s.contentType && r.addClass("fancybox-can-swipe"))
				},
				isZoomable: function() {
					var t, e = this,
						n = e.current;
					if (n && !e.isClosing && "image" === n.type && !n.hasError) {
						if (!n.isLoaded) return !0;
						if ((t = e.getFitPos(n)) && (n.width > t.width || n.height > t.height)) return !0
					}
					return !1
				},
				isScaledDown: function(t, e) {
					var o = this,
						i = !1,
						a = o.current,
						s = a.$content;
					return void 0 !== t && void 0 !== e ? i = t < a.width && e < a.height : s && (i = n.fancybox.getTranslate(s), i = i.width < a.width && i.height < a.height), i
				},
				canPan: function(t, e) {
					var o = this,
						i = o.current,
						a = null,
						s = !1;
					return "image" === i.type && (i.isComplete || t && e) && !i.hasError && (s = o.getFitPos(i), void 0 !== t && void 0 !== e ? a = {
						width: t,
						height: e
					} : i.isComplete && (a = n.fancybox.getTranslate(i.$content)), a && s && (s = Math.abs(a.width - s.width) > 1.5 || Math.abs(a.height - s.height) > 1.5)), s
				},
				loadSlide: function(t) {
					var e, o, i, a = this;
					if (!t.isLoading && !t.isLoaded) {
						if (t.isLoading = !0, !1 === a.trigger("beforeLoad", t)) return t.isLoading = !1, !1;
						switch (e = t.type, o = t.$slide, o.off("refresh").trigger("onReset").addClass(t.opts.slideClass), e) {
							case "image":
								a.setImage(t);
								break;
							case "iframe":
								a.setIframe(t);
								break;
							case "html":
								a.setContent(t, t.src || t.content);
								break;
							case "video":
								a.setContent(t, t.opts.video.tpl.replace(/\{\{src\}\}/gi, t.src).replace("{{format}}", t.opts.videoFormat || t.opts.video.format || "").replace("{{poster}}", t.thumb || ""));
								break;
							case "inline":
								n(t.src).length ? a.setContent(t, n(t.src)) : a.setError(t);
								break;
							case "ajax":
								a.showLoading(t), i = n.ajax(n.extend({}, t.opts.ajax.settings, {
									url: t.src,
									success: function(e, n) {
										"success" === n && a.setContent(t, e)
									},
									error: function(e, n) {
										e && "abort" !== n && a.setError(t)
									}
								})), o.one("onReset", function() {
									i.abort()
								});
								break;
							default:
								a.setError(t)
						}
						return !0
					}
				},
				setImage: function(t) {
					var o, i = this;
					setTimeout(function() {
						var e = t.$image;
						i.isClosing || !t.isLoading || e && e.length && e[0].complete || t.hasError || i.showLoading(t)
					}, 50), i.checkSrcset(t), t.$content = n('<div class="fancybox-content"></div>').addClass("fancybox-is-hidden").appendTo(t.$slide.addClass("fancybox-slide--image")), !1 !== t.opts.preload && t.opts.width && t.opts.height && t.thumb && (t.width = t.opts.width, t.height = t.opts.height, o = e.createElement("img"), o.onerror = function() {
						n(this).remove(), t.$ghost = null
					}, o.onload = function() {
						i.afterLoad(t)
					}, t.$ghost = n(o).addClass("fancybox-image").appendTo(t.$content).attr("src", t.thumb)), i.setBigImage(t)
				},
				checkSrcset: function(e) {
					var n, o, i, a, s = e.opts.srcset || e.opts.image.srcset;
					if (s) {
						i = t.devicePixelRatio || 1, a = t.innerWidth * i, o = s.split(",").map(function(t) {
							var e = {};
							return t.trim().split(/\s+/).forEach(function(t, n) {
								var o = parseInt(t.substring(0, t.length - 1), 10);
								if (0 === n) return e.url = t;
								o && (e.value = o, e.postfix = t[t.length - 1])
							}), e
						}), o.sort(function(t, e) {
							return t.value - e.value
						});
						for (var r = 0; r < o.length; r++) {
							var c = o[r];
							if ("w" === c.postfix && c.value >= a || "x" === c.postfix && c.value >= i) {
								n = c;
								break
							}
						}!n && o.length && (n = o[o.length - 1]), n && (e.src = n.url, e.width && e.height && "w" == n.postfix && (e.height = e.width / e.height * n.value, e.width = n.value), e.opts.srcset = s)
					}
				},
				setBigImage: function(t) {
					var o = this,
						i = e.createElement("img"),
						a = n(i);
					t.$image = a.one("error", function() {
						o.setError(t)
					}).one("load", function() {
						var e;
						t.$ghost || (o.resolveImageSlideSize(t, this.naturalWidth, this.naturalHeight), o.afterLoad(t)), o.isClosing || (t.opts.srcset && (e = t.opts.sizes, e && "auto" !== e || (e = (t.width / t.height > 1 && s.width() / s.height() > 1 ? "100" : Math.round(t.width / t.height * 100)) + "vw"), a.attr("sizes", e).attr("srcset", t.opts.srcset)), t.$ghost && setTimeout(function() {
							t.$ghost && !o.isClosing && t.$ghost.hide()
						}, Math.min(300, Math.max(1e3, t.height / 1600))), o.hideLoading(t))
					}).addClass("fancybox-image").attr("src", t.src).appendTo(t.$content), (i.complete || "complete" == i.readyState) && a.naturalWidth && a.naturalHeight ? a.trigger("load") : i.error && a.trigger("error")
				},
				resolveImageSlideSize: function(t, e, n) {
					var o = parseInt(t.opts.width, 10),
						i = parseInt(t.opts.height, 10);
					t.width = e, t.height = n, o > 0 && (t.width = o, t.height = Math.floor(o * n / e)), i > 0 && (t.width = Math.floor(i * e / n), t.height = i)
				},
				setIframe: function(t) {
					var e, o = this,
						i = t.opts.iframe,
						a = t.$slide;
					t.$content = n('<div class="fancybox-content' + (i.preload ? " fancybox-is-hidden" : "") + '"></div>').css(i.css).appendTo(a), a.addClass("fancybox-slide--" + t.contentType), t.$iframe = e = n(i.tpl.replace(/\{rnd\}/g, (new Date).getTime())).attr(i.attr).appendTo(t.$content), i.preload ? (o.showLoading(t), e.on("load.fb error.fb", function(e) {
						this.isReady = 1, t.$slide.trigger("refresh"), o.afterLoad(t)
					}), a.on("refresh.fb", function() {
						var n, o, s = t.$content,
							r = i.css.width,
							c = i.css.height;
						if (1 === e[0].isReady) {
							try {
								n = e.contents(), o = n.find("body")
							} catch (t) {}
							o && o.length && o.children().length && (a.css("overflow", "visible"), s.css({
								width: "100%",
								"max-width": "100%",
								height: "9999px"
							}), void 0 === r && (r = Math.ceil(Math.max(o[0].clientWidth, o.outerWidth(!0)))), s.css("width", r || "").css("max-width", ""), void 0 === c && (c = Math.ceil(Math.max(o[0].clientHeight, o.outerHeight(!0)))), s.css("height", c || ""), a.css("overflow", "auto")), s.removeClass("fancybox-is-hidden")
						}
					})) : o.afterLoad(t), e.attr("src", t.src), a.one("onReset", function() {
						try {
							n(this).find("iframe").hide().unbind().attr("src", "//about:blank")
						} catch (t) {}
						n(this).off("refresh.fb").empty(), t.isLoaded = !1, t.isRevealed = !1
					})
				},
				setContent: function(t, e) {
					var o = this;
					o.isClosing || (o.hideLoading(t), t.$content && n.fancybox.stop(t.$content), t.$slide.empty(), l(e) && e.parent().length ? ((e.hasClass("fancybox-content") || e.parent().hasClass("fancybox-content")) && e.parents(".fancybox-slide").trigger("onReset"), t.$placeholder = n("<div>").hide().insertAfter(e), e.css("display", "inline-block")) : t.hasError || ("string" === n.type(e) && (e = n("<div>").append(n.trim(e)).contents()), t.opts.filter && (e = n("<div>").html(e).find(t.opts.filter))), t.$slide.one("onReset", function() {
						n(this).find("video,audio").trigger("pause"), t.$placeholder && (t.$placeholder.after(e.removeClass("fancybox-content").hide()).remove(), t.$placeholder = null), t.$smallBtn && (t.$smallBtn.remove(), t.$smallBtn = null), t.hasError || (n(this).empty(), t.isLoaded = !1, t.isRevealed = !1)
					}), n(e).appendTo(t.$slide), n(e).is("video,audio") && (n(e).addClass("fancybox-video"), n(e).wrap("<div></div>"), t.contentType = "video", t.opts.width = t.opts.width || n(e).attr("width"), t.opts.height = t.opts.height || n(e).attr("height")), t.$content = t.$slide.children().filter("div,form,main,video,audio,article,.fancybox-content").first(), t.$content.siblings().hide(), t.$content.length || (t.$content = t.$slide.wrapInner("<div></div>").children().first()), t.$content.addClass("fancybox-content"), t.$slide.addClass("fancybox-slide--" + t.contentType), o.afterLoad(t))
				},
				setError: function(t) {
					t.hasError = !0, t.$slide.trigger("onReset").removeClass("fancybox-slide--" + t.contentType).addClass("fancybox-slide--error"), t.contentType = "html", this.setContent(t, this.translate(t, t.opts.errorTpl)), t.pos === this.currPos && (this.isAnimating = !1)
				},
				showLoading: function(t) {
					var e = this;
					(t = t || e.current) && !t.$spinner && (t.$spinner = n(e.translate(e, e.opts.spinnerTpl)).appendTo(t.$slide).hide().fadeIn("fast"))
				},
				hideLoading: function(t) {
					var e = this;
					(t = t || e.current) && t.$spinner && (t.$spinner.stop().remove(), delete t.$spinner)
				},
				afterLoad: function(t) {
					var e = this;
					e.isClosing || (t.isLoading = !1, t.isLoaded = !0, e.trigger("afterLoad", t), e.hideLoading(t), !t.opts.smallBtn || t.$smallBtn && t.$smallBtn.length || (t.$smallBtn = n(e.translate(t, t.opts.btnTpl.smallBtn)).appendTo(t.$content)), t.opts.protect && t.$content && !t.hasError && (t.$content.on("contextmenu.fb", function(t) {
						return 2 == t.button && t.preventDefault(), !0
					}), "image" === t.type && n('<div class="fancybox-spaceball"></div>').appendTo(t.$content)), e.adjustCaption(t), e.adjustLayout(t), t.pos === e.currPos && e.updateCursor(), e.revealContent(t))
				},
				adjustCaption: function(t) {
					var e, n = this,
						o = t || n.current,
						i = o.opts.caption,
						a = o.opts.preventCaptionOverlap,
						s = n.$refs.caption,
						r = !1;
					s.toggleClass("fancybox-caption--separate", a), a && i && i.length && (o.pos !== n.currPos ? (e = s.clone().appendTo(s.parent()), e.children().eq(0).empty().html(i), r = e.outerHeight(!0), e.empty().remove()) : n.$caption && (r = n.$caption.outerHeight(!0)), o.$slide.css("padding-bottom", r || ""))
				},
				adjustLayout: function(t) {
					var e, n, o, i, a = this,
						s = t || a.current;
					s.isLoaded && !0 !== s.opts.disableLayoutFix && (s.$content.css("margin-bottom", ""), s.$content.outerHeight() > s.$slide.height() + .5 && (o = s.$slide[0].style["padding-bottom"], i = s.$slide.css("padding-bottom"), parseFloat(i) > 0 && (e = s.$slide[0].scrollHeight, s.$slide.css("padding-bottom", 0), Math.abs(e - s.$slide[0].scrollHeight) < 1 && (n = i), s.$slide.css("padding-bottom", o))), s.$content.css("margin-bottom", n))
				},
				revealContent: function(t) {
					var e, o, i, a, s = this,
						r = t.$slide,
						c = !1,
						l = !1,
						d = s.isMoved(t),
						u = t.isRevealed;
					return t.isRevealed = !0, e = t.opts[s.firstRun ? "animationEffect" : "transitionEffect"], i = t.opts[s.firstRun ? "animationDuration" : "transitionDuration"], i = parseInt(void 0 === t.forcedDuration ? i : t.forcedDuration, 10), !d && t.pos === s.currPos && i || (e = !1), "zoom" === e && (t.pos === s.currPos && i && "image" === t.type && !t.hasError && (l = s.getThumbPos(t)) ? c = s.getFitPos(t) : e = "fade"), "zoom" === e ? (s.isAnimating = !0, c.scaleX = c.width / l.width, c.scaleY = c.height / l.height, a = t.opts.zoomOpacity, "auto" == a && (a = Math.abs(t.width / t.height - l.width / l.height) > .1), a && (l.opacity = .1, c.opacity = 1), n.fancybox.setTranslate(t.$content.removeClass("fancybox-is-hidden"), l), p(t.$content), void n.fancybox.animate(t.$content, c, i, function() {
						s.isAnimating = !1, s.complete()
					})) : (s.updateSlide(t), e ? (n.fancybox.stop(r), o = "fancybox-slide--" + (t.pos >= s.prevPos ? "next" : "previous") + " fancybox-animated fancybox-fx-" + e, r.addClass(o).removeClass("fancybox-slide--current"), t.$content.removeClass("fancybox-is-hidden"), p(r), "image" !== t.type && t.$content.hide().show(0), void n.fancybox.animate(r, "fancybox-slide--current", i, function() {
						r.removeClass(o).css({
							transform: "",
							opacity: ""
						}), t.pos === s.currPos && s.complete()
					}, !0)) : (t.$content.removeClass("fancybox-is-hidden"), u || !d || "image" !== t.type || t.hasError || t.$content.hide().fadeIn("fast"), void(t.pos === s.currPos && s.complete())))
				},
				getThumbPos: function(t) {
					var e, o, i, a, s, r = !1,
						c = t.$thumb;
					return !(!c || !g(c[0])) && (e = n.fancybox.getTranslate(c), o = parseFloat(c.css("border-top-width") || 0), i = parseFloat(c.css("border-right-width") || 0), a = parseFloat(c.css("border-bottom-width") || 0), s = parseFloat(c.css("border-left-width") || 0), r = {
						top: e.top + o,
						left: e.left + s,
						width: e.width - i - s,
						height: e.height - o - a,
						scaleX: 1,
						scaleY: 1
					}, e.width > 0 && e.height > 0 && r)
				},
				complete: function() {
					var t, e = this,
						o = e.current,
						i = {};
					!e.isMoved() && o.isLoaded && (o.isComplete || (o.isComplete = !0, o.$slide.siblings().trigger("onReset"), e.preload("inline"), p(o.$slide), o.$slide.addClass("fancybox-slide--complete"), n.each(e.slides, function(t, o) {
						o.pos >= e.currPos - 1 && o.pos <= e.currPos + 1 ? i[o.pos] = o : o && (n.fancybox.stop(o.$slide), o.$slide.off().remove())
					}), e.slides = i), e.isAnimating = !1, e.updateCursor(), e.trigger("afterShow"), o.opts.video.autoStart && o.$slide.find("video,audio").filter(":visible:first").trigger("play").one("ended", function() {
						Document.exitFullscreen ? Document.exitFullscreen() : this.webkitExitFullscreen && this.webkitExitFullscreen(), e.next()
					}), o.opts.autoFocus && "html" === o.contentType && (t = o.$content.find("input[autofocus]:enabled:visible:first"), t.length ? t.trigger("focus") : e.focus(null, !0)), o.$slide.scrollTop(0).scrollLeft(0))
				},
				preload: function(t) {
					var e, n, o = this;
					o.group.length < 2 || (n = o.slides[o.currPos + 1], e = o.slides[o.currPos - 1], e && e.type === t && o.loadSlide(e), n && n.type === t && o.loadSlide(n))
				},
				focus: function(t, o) {
					var i, a, s = this,
						r = ["a[href]", "area[href]", 'input:not([disabled]):not([type="hidden"]):not([aria-hidden])', "select:not([disabled]):not([aria-hidden])", "textarea:not([disabled]):not([aria-hidden])", "button:not([disabled]):not([aria-hidden])", "iframe", "object", "embed", "video", "audio", "[contenteditable]", '[tabindex]:not([tabindex^="-"])'].join(",");
					s.isClosing || (i = !t && s.current && s.current.isComplete ? s.current.$slide.find("*:visible" + (o ? ":not(.fancybox-close-small)" : "")) : s.$refs.container.find("*:visible"), i = i.filter(r).filter(function() {
						return "hidden" !== n(this).css("visibility") && !n(this).hasClass("disabled")
					}), i.length ? (a = i.index(e.activeElement), t && t.shiftKey ? (a < 0 || 0 == a) && (t.preventDefault(), i.eq(i.length - 1).trigger("focus")) : (a < 0 || a == i.length - 1) && (t && t.preventDefault(), i.eq(0).trigger("focus"))) : s.$refs.container.trigger("focus"))
				},
				activate: function() {
					var t = this;
					n(".fancybox-container").each(function() {
						var e = n(this).data("FancyBox");
						e && e.id !== t.id && !e.isClosing && (e.trigger("onDeactivate"), e.removeEvents(), e.isVisible = !1)
					}), t.isVisible = !0, (t.current || t.isIdle) && (t.update(), t.updateControls()), t.trigger("onActivate"), t.addEvents()
				},
				close: function(t, e) {
					var o, i, a, s, r, c, l, u = this,
						f = u.current,
						h = function() {
							u.cleanUp(t)
						};
					return !u.isClosing && (u.isClosing = !0, !1 === u.trigger("beforeClose", t) ? (u.isClosing = !1, d(function() {
						u.update()
					}), !1) : (u.removeEvents(), a = f.$content, o = f.opts.animationEffect, i = n.isNumeric(e) ? e : o ? f.opts.animationDuration : 0, f.$slide.removeClass("fancybox-slide--complete fancybox-slide--next fancybox-slide--previous fancybox-animated"), !0 !== t ? n.fancybox.stop(f.$slide) : o = !1, f.$slide.siblings().trigger("onReset").remove(), i && u.$refs.container.removeClass("fancybox-is-open").addClass("fancybox-is-closing").css("transition-duration", i + "ms"), u.hideLoading(f), u.hideControls(!0), u.updateCursor(), "zoom" !== o || a && i && "image" === f.type && !u.isMoved() && !f.hasError && (l = u.getThumbPos(f)) || (o = "fade"), "zoom" === o ? (n.fancybox.stop(a), s = n.fancybox.getTranslate(a), c = {
						top: s.top,
						left: s.left,
						scaleX: s.width / l.width,
						scaleY: s.height / l.height,
						width: l.width,
						height: l.height
					}, r = f.opts.zoomOpacity, "auto" == r && (r = Math.abs(f.width / f.height - l.width / l.height) > .1), r && (l.opacity = 0), n.fancybox.setTranslate(a, c), p(a), n.fancybox.animate(a, l, i, h), !0) : (o && i ? n.fancybox.animate(f.$slide.addClass("fancybox-slide--previous").removeClass("fancybox-slide--current"), "fancybox-animated fancybox-fx-" + o, i, h) : !0 === t ? setTimeout(h, i) : h(), !0)))
				},
				cleanUp: function(e) {
					var o, i, a, s = this,
						r = s.current.opts.$orig;
					s.current.$slide.trigger("onReset"), s.$refs.container.empty().remove(), s.trigger("afterClose", e), s.current.opts.backFocus && (r && r.length && r.is(":visible") || (r = s.$trigger), r && r.length && (i = t.scrollX, a = t.scrollY, r.trigger("focus"), n("html, body").scrollTop(a).scrollLeft(i))), s.current = null, o = n.fancybox.getInstance(), o ? o.activate() : (n("body").removeClass("fancybox-active compensate-for-scrollbar"), n("#fancybox-style-noscroll").remove())
				},
				trigger: function(t, e) {
					var o, i = Array.prototype.slice.call(arguments, 1),
						a = this,
						s = e && e.opts ? e : a.current;
					if (s ? i.unshift(s) : s = a, i.unshift(a), n.isFunction(s.opts[t]) && (o = s.opts[t].apply(s, i)), !1 === o) return o;
					"afterClose" !== t && a.$refs ? a.$refs.container.trigger(t + ".fb", i) : r.trigger(t + ".fb", i)
				},
				updateControls: function() {
					var t = this,
						o = t.current,
						i = o.index,
						a = t.$refs.container,
						s = t.$refs.caption,
						r = o.opts.caption;
					o.$slide.trigger("refresh"), r && r.length ? (t.$caption = s, s.children().eq(0).html(r)) : t.$caption = null, t.hasHiddenControls || t.isIdle || t.showControls(), a.find("[data-fancybox-count]").html(t.group.length), a.find("[data-fancybox-index]").html(i + 1), a.find("[data-fancybox-prev]").prop("disabled", !o.opts.loop && i <= 0), a.find("[data-fancybox-next]").prop("disabled", !o.opts.loop && i >= t.group.length - 1), "image" === o.type ? a.find("[data-fancybox-zoom]").show().end().find("[data-fancybox-download]").attr("href", o.opts.image.src || o.src).show() : o.opts.toolbar && a.find("[data-fancybox-download],[data-fancybox-zoom]").hide(), n(e.activeElement).is(":hidden,[disabled]") && t.$refs.container.trigger("focus")
				},
				hideControls: function(t) {
					var e = this,
						n = ["infobar", "toolbar", "nav"];
					!t && e.current.opts.preventCaptionOverlap || n.push("caption"), this.$refs.container.removeClass(n.map(function(t) {
						return "fancybox-show-" + t
					}).join(" ")), this.hasHiddenControls = !0
				},
				showControls: function() {
					var t = this,
						e = t.current ? t.current.opts : t.opts,
						n = t.$refs.container;
					t.hasHiddenControls = !1, t.idleSecondsCounter = 0, n.toggleClass("fancybox-show-toolbar", !(!e.toolbar || !e.buttons)).toggleClass("fancybox-show-infobar", !!(e.infobar && t.group.length > 1)).toggleClass("fancybox-show-caption", !!t.$caption).toggleClass("fancybox-show-nav", !!(e.arrows && t.group.length > 1)).toggleClass("fancybox-is-modal", !!e.modal)
				},
				toggleControls: function() {
					this.hasHiddenControls ? this.showControls() : this.hideControls()
				}
			}), n.fancybox = {
				version: "3.5.7",
				defaults: a,
				getInstance: function(t) {
					var e = n('.fancybox-container:not(".fancybox-is-closing"):last').data("FancyBox"),
						o = Array.prototype.slice.call(arguments, 1);
					return e instanceof b && ("string" === n.type(t) ? e[t].apply(e, o) : "function" === n.type(t) && t.apply(e, o), e)
				},
				open: function(t, e, n) {
					return new b(t, e, n)
				},
				close: function(t) {
					var e = this.getInstance();
					e && (e.close(), !0 === t && this.close(t))
				},
				destroy: function() {
					this.close(!0), r.add("body").off("click.fb-start", "**")
				},
				isMobile: /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),
				use3d: function() {
					var n = e.createElement("div");
					return t.getComputedStyle && t.getComputedStyle(n) && t.getComputedStyle(n).getPropertyValue("transform") && !(e.documentMode && e.documentMode < 11)
				}(),
				getTranslate: function(t) {
					var e;
					return !(!t || !t.length) && (e = t[0].getBoundingClientRect(), {
						top: e.top || 0,
						left: e.left || 0,
						width: e.width,
						height: e.height,
						opacity: parseFloat(t.css("opacity"))
					})
				},
				setTranslate: function(t, e) {
					var n = "",
						o = {};
					if (t && e) return void 0 === e.left && void 0 === e.top || (n = (void 0 === e.left ? t.position().left : e.left) + "px, " + (void 0 === e.top ? t.position().top : e.top) + "px", n = this.use3d ? "translate3d(" + n + ", 0px)" : "translate(" + n + ")"), void 0 !== e.scaleX && void 0 !== e.scaleY ? n += " scale(" + e.scaleX + ", " + e.scaleY + ")" : void 0 !== e.scaleX && (n += " scaleX(" + e.scaleX + ")"), n.length && (o.transform = n), void 0 !== e.opacity && (o.opacity = e.opacity), void 0 !== e.width && (o.width = e.width), void 0 !== e.height && (o.height = e.height), t.css(o)
				},
				animate: function(t, e, o, i, a) {
					var s, r = this;
					n.isFunction(o) && (i = o, o = null), r.stop(t), s = r.getTranslate(t), t.on(f, function(c) {
						(!c || !c.originalEvent || t.is(c.originalEvent.target) && "z-index" != c.originalEvent.propertyName) && (r.stop(t), n.isNumeric(o) && t.css("transition-duration", ""), n.isPlainObject(e) ? void 0 !== e.scaleX && void 0 !== e.scaleY && r.setTranslate(t, {
							top: e.top,
							left: e.left,
							width: s.width * e.scaleX,
							height: s.height * e.scaleY,
							scaleX: 1,
							scaleY: 1
						}) : !0 !== a && t.removeClass(e), n.isFunction(i) && i(c))
					}), n.isNumeric(o) && t.css("transition-duration", o + "ms"), n.isPlainObject(e) ? (void 0 !== e.scaleX && void 0 !== e.scaleY && (delete e.width, delete e.height, t.parent().hasClass("fancybox-slide--image") && t.parent().addClass("fancybox-is-scaling")), n.fancybox.setTranslate(t, e)) : t.addClass(e), t.data("timer", setTimeout(function() {
						t.trigger(f)
					}, o + 33))
				},
				stop: function(t, e) {
					t && t.length && (clearTimeout(t.data("timer")), e && t.trigger(f), t.off(f).css("transition-duration", ""), t.parent().removeClass("fancybox-is-scaling"))
				}
			}, n.fn.fancybox = function(t) {
				var e;
				return t = t || {}, e = t.selector || !1, e ? n("body").off("click.fb-start", e).on("click.fb-start", e, {
					options: t
				}, i) : this.off("click.fb-start").on("click.fb-start", {
					items: this,
					options: t
				}, i), this
			}, r.on("click.fb-start", "[data-fancybox]", i), r.on("click.fb-start", "[data-fancybox-trigger]", function(t) {
				n('[data-fancybox="' + n(this).attr("data-fancybox-trigger") + '"]').eq(n(this).attr("data-fancybox-index") || 0).trigger("click.fb-start", {
					$trigger: n(this)
				})
			}),
			function() {
				var t = null;
				r.on("mousedown mouseup focus blur", ".fancybox-button", function(e) {
					switch (e.type) {
						case "mousedown":
							t = n(this);
							break;
						case "mouseup":
							t = null;
							break;
						case "focusin":
							n(".fancybox-button").removeClass("fancybox-focus"), n(this).is(t) || n(this).is("[disabled]") || n(this).addClass("fancybox-focus");
							break;
						case "focusout":
							n(".fancybox-button").removeClass("fancybox-focus")
					}
				})
			}()
	}
}(window, document, jQuery),
function(t) {
	"use strict";
	var e = {
			youtube: {
				matcher: /(youtube\.com|youtu\.be|youtube\-nocookie\.com)\/(watch\?(.*&)?v=|v\/|u\/|embed\/?)?(videoseries\?list=(.*)|[\w-]{11}|\?listType=(.*)&list=(.*))(.*)/i,
				params: {
					autoplay: 1,
					autohide: 1,
					fs: 1,
					rel: 0,
					hd: 1,
					wmode: "transparent",
					enablejsapi: 1,
					html5: 1
				},
				paramPlace: 8,
				type: "iframe",
				url: "https://www.youtube-nocookie.com/embed/$4",
				thumb: "https://img.youtube.com/vi/$4/hqdefault.jpg"
			},
			vimeo: {
				matcher: /^.+vimeo.com\/(.*\/)?([\d]+)(.*)?/,
				params: {
					autoplay: 1,
					hd: 1,
					show_title: 1,
					show_byline: 1,
					show_portrait: 0,
					fullscreen: 1
				},
				paramPlace: 3,
				type: "iframe",
				url: "//player.vimeo.com/video/$2"
			},
			instagram: {
				matcher: /(instagr\.am|instagram\.com)\/p\/([a-zA-Z0-9_\-]+)\/?/i,
				type: "image",
				url: "//$1/p/$2/media/?size=l"
			},
			gmap_place: {
				matcher: /(maps\.)?google\.([a-z]{2,3}(\.[a-z]{2})?)\/(((maps\/(place\/(.*)\/)?\@(.*),(\d+.?\d+?)z))|(\?ll=))(.*)?/i,
				type: "iframe",
				url: function(t) {
					return "//maps.google." + t[2] + "/?ll=" + (t[9] ? t[9] + "&z=" + Math.floor(t[10]) + (t[12] ? t[12].replace(/^\//, "&") : "") : t[12] + "").replace(/\?/, "&") + "&output=" + (t[12] && t[12].indexOf("layer=c") > 0 ? "svembed" : "embed")
				}
			},
			gmap_search: {
				matcher: /(maps\.)?google\.([a-z]{2,3}(\.[a-z]{2})?)\/(maps\/search\/)(.*)/i,
				type: "iframe",
				url: function(t) {
					return "//maps.google." + t[2] + "/maps?q=" + t[5].replace("query=", "q=").replace("api=1", "") + "&output=embed"
				}
			}
		},
		n = function(e, n, o) {
			if (e) return o = o || "", "object" === t.type(o) && (o = t.param(o, !0)), t.each(n, function(t, n) {
				e = e.replace("$" + t, n || "")
			}), o.length && (e += (e.indexOf("?") > 0 ? "&" : "?") + o), e
		};
	t(document).on("objectNeedsType.fb", function(o, i, a) {
		var s, r, c, l, d, u, f, p = a.src || "",
			h = !1;
		s = t.extend(!0, {}, e, a.opts.media), t.each(s, function(e, o) {
			if (c = p.match(o.matcher)) {
				if (h = o.type, f = e, u = {}, o.paramPlace && c[o.paramPlace]) {
					d = c[o.paramPlace], "?" == d[0] && (d = d.substring(1)), d = d.split("&");
					for (var i = 0; i < d.length; ++i) {
						var s = d[i].split("=", 2);
						2 == s.length && (u[s[0]] = decodeURIComponent(s[1].replace(/\+/g, " ")))
					}
				}
				return l = t.extend(!0, {}, o.params, a.opts[e], u), p = "function" === t.type(o.url) ? o.url.call(this, c, l, a) : n(o.url, c, l), r = "function" === t.type(o.thumb) ? o.thumb.call(this, c, l, a) : n(o.thumb, c), "youtube" === e ? p = p.replace(/&t=((\d+)m)?(\d+)s/, function(t, e, n, o) {
					return "&start=" + ((n ? 60 * parseInt(n, 10) : 0) + parseInt(o, 10))
				}) : "vimeo" === e && (p = p.replace("&%23", "#")), !1
			}
		}), h ? (a.opts.thumb || a.opts.$thumb && a.opts.$thumb.length || (a.opts.thumb = r), "iframe" === h && (a.opts = t.extend(!0, a.opts, {
			iframe: {
				preload: !1,
				attr: {
					scrolling: "no"
				}
			}
		})), t.extend(a, {
			type: h,
			src: p,
			origSrc: a.src,
			contentSource: f,
			contentType: "image" === h ? "image" : "gmap_place" == f || "gmap_search" == f ? "map" : "video"
		})) : p && (a.type = a.opts.defaultType)
	});
	var o = {
		youtube: {
			src: "https://www.youtube.com/iframe_api",
			class: "YT",
			loading: !1,
			loaded: !1
		},
		vimeo: {
			src: "https://player.vimeo.com/api/player.js",
			class: "Vimeo",
			loading: !1,
			loaded: !1
		},
		load: function(t) {
			var e, n = this;
			if (this[t].loaded) return void setTimeout(function() {
				n.done(t)
			});
			this[t].loading || (this[t].loading = !0, e = document.createElement("script"), e.type = "text/javascript", e.src = this[t].src, "youtube" === t ? window.onYouTubeIframeAPIReady = function() {
				n[t].loaded = !0, n.done(t)
			} : e.onload = function() {
				n[t].loaded = !0, n.done(t)
			}, document.body.appendChild(e))
		},
		done: function(e) {
			var n, o, i;
			"youtube" === e && delete window.onYouTubeIframeAPIReady, (n = t.fancybox.getInstance()) && (o = n.current.$content.find("iframe"), "youtube" === e && void 0 !== YT && YT ? i = new YT.Player(o.attr("id"), {
				events: {
					onStateChange: function(t) {
						0 == t.data && n.next()
					}
				}
			}) : "vimeo" === e && void 0 !== Vimeo && Vimeo && (i = new Vimeo.Player(o), i.on("ended", function() {
				n.next()
			})))
		}
	};
	t(document).on({
		"afterShow.fb": function(t, e, n) {
			e.group.length > 1 && ("youtube" === n.contentSource || "vimeo" === n.contentSource) && o.load(n.contentSource)
		}
	})
}(jQuery),
function(t, e, n) {
	"use strict";
	var o = function() {
			return t.requestAnimationFrame || t.webkitRequestAnimationFrame || t.mozRequestAnimationFrame || t.oRequestAnimationFrame || function(e) {
				return t.setTimeout(e, 1e3 / 60)
			}
		}(),
		i = function() {
			return t.cancelAnimationFrame || t.webkitCancelAnimationFrame || t.mozCancelAnimationFrame || t.oCancelAnimationFrame || function(e) {
				t.clearTimeout(e)
			}
		}(),
		a = function(e) {
			var n = [];
			e = e.originalEvent || e || t.e, e = e.touches && e.touches.length ? e.touches : e.changedTouches && e.changedTouches.length ? e.changedTouches : [e];
			for (var o in e) e[o].pageX ? n.push({
				x: e[o].pageX,
				y: e[o].pageY
			}) : e[o].clientX && n.push({
				x: e[o].clientX,
				y: e[o].clientY
			});
			return n
		},
		s = function(t, e, n) {
			return e && t ? "x" === n ? t.x - e.x : "y" === n ? t.y - e.y : Math.sqrt(Math.pow(t.x - e.x, 2) + Math.pow(t.y - e.y, 2)) : 0
		},
		r = function(t) {
			if (t.is('a,area,button,[role="button"],input,label,select,summary,textarea,video,audio,iframe') || n.isFunction(t.get(0).onclick) || t.data("selectable")) return !0;
			for (var e = 0, o = t[0].attributes, i = o.length; e < i; e++)
				if ("data-fancybox-" === o[e].nodeName.substr(0, 14)) return !0;
			return !1
		},
		c = function(e) {
			var n = t.getComputedStyle(e)["overflow-y"],
				o = t.getComputedStyle(e)["overflow-x"],
				i = ("scroll" === n || "auto" === n) && e.scrollHeight > e.clientHeight,
				a = ("scroll" === o || "auto" === o) && e.scrollWidth > e.clientWidth;
			return i || a
		},
		l = function(t) {
			for (var e = !1;;) {
				if (e = c(t.get(0))) break;
				if (t = t.parent(), !t.length || t.hasClass("fancybox-stage") || t.is("body")) break
			}
			return e
		},
		d = function(t) {
			var e = this;
			e.instance = t, e.$bg = t.$refs.bg, e.$stage = t.$refs.stage, e.$container = t.$refs.container, e.destroy(), e.$container.on("touchstart.fb.touch mousedown.fb.touch", n.proxy(e, "ontouchstart"))
		};
	d.prototype.destroy = function() {
		var t = this;
		t.$container.off(".fb.touch"), n(e).off(".fb.touch"), t.requestId && (i(t.requestId), t.requestId = null), t.tapped && (clearTimeout(t.tapped), t.tapped = null)
	}, d.prototype.ontouchstart = function(o) {
		var i = this,
			c = n(o.target),
			d = i.instance,
			u = d.current,
			f = u.$slide,
			p = u.$content,
			h = "touchstart" == o.type;
		if (h && i.$container.off("mousedown.fb.touch"), (!o.originalEvent || 2 != o.originalEvent.button) && f.length && c.length && !r(c) && !r(c.parent()) && (c.is("img") || !(o.originalEvent.clientX > c[0].clientWidth + c.offset().left))) {
			if (!u || d.isAnimating || u.$slide.hasClass("fancybox-animated")) return o.stopPropagation(), void o.preventDefault();
			i.realPoints = i.startPoints = a(o), i.startPoints.length && (u.touch && o.stopPropagation(), i.startEvent = o, i.canTap = !0, i.$target = c, i.$content = p, i.opts = u.opts.touch, i.isPanning = !1, i.isSwiping = !1, i.isZooming = !1, i.isScrolling = !1, i.canPan = d.canPan(), i.startTime = (new Date).getTime(), i.distanceX = i.distanceY = i.distance = 0, i.canvasWidth = Math.round(f[0].clientWidth), i.canvasHeight = Math.round(f[0].clientHeight), i.contentLastPos = null, i.contentStartPos = n.fancybox.getTranslate(i.$content) || {
				top: 0,
				left: 0
			}, i.sliderStartPos = n.fancybox.getTranslate(f), i.stagePos = n.fancybox.getTranslate(d.$refs.stage), i.sliderStartPos.top -= i.stagePos.top, i.sliderStartPos.left -= i.stagePos.left, i.contentStartPos.top -= i.stagePos.top, i.contentStartPos.left -= i.stagePos.left, n(e).off(".fb.touch").on(h ? "touchend.fb.touch touchcancel.fb.touch" : "mouseup.fb.touch mouseleave.fb.touch", n.proxy(i, "ontouchend")).on(h ? "touchmove.fb.touch" : "mousemove.fb.touch", n.proxy(i, "ontouchmove")), n.fancybox.isMobile && e.addEventListener("scroll", i.onscroll, !0), ((i.opts || i.canPan) && (c.is(i.$stage) || i.$stage.find(c).length) || (c.is(".fancybox-image") && o.preventDefault(), n.fancybox.isMobile && c.parents(".fancybox-caption").length)) && (i.isScrollable = l(c) || l(c.parent()), n.fancybox.isMobile && i.isScrollable || o.preventDefault(), (1 === i.startPoints.length || u.hasError) && (i.canPan ? (n.fancybox.stop(i.$content), i.isPanning = !0) : i.isSwiping = !0, i.$container.addClass("fancybox-is-grabbing")), 2 === i.startPoints.length && "image" === u.type && (u.isLoaded || u.$ghost) && (i.canTap = !1, i.isSwiping = !1, i.isPanning = !1, i.isZooming = !0, n.fancybox.stop(i.$content), i.centerPointStartX = .5 * (i.startPoints[0].x + i.startPoints[1].x) - n(t).scrollLeft(), i.centerPointStartY = .5 * (i.startPoints[0].y + i.startPoints[1].y) - n(t).scrollTop(), i.percentageOfImageAtPinchPointX = (i.centerPointStartX - i.contentStartPos.left) / i.contentStartPos.width, i.percentageOfImageAtPinchPointY = (i.centerPointStartY - i.contentStartPos.top) / i.contentStartPos.height, i.startDistanceBetweenFingers = s(i.startPoints[0], i.startPoints[1]))))
		}
	}, d.prototype.onscroll = function(t) {
		var n = this;
		n.isScrolling = !0, e.removeEventListener("scroll", n.onscroll, !0)
	}, d.prototype.ontouchmove = function(t) {
		var e = this;
		return void 0 !== t.originalEvent.buttons && 0 === t.originalEvent.buttons ? void e.ontouchend(t) : e.isScrolling ? void(e.canTap = !1) : (e.newPoints = a(t), void((e.opts || e.canPan) && e.newPoints.length && e.newPoints.length && (e.isSwiping && !0 === e.isSwiping || t.preventDefault(), e.distanceX = s(e.newPoints[0], e.startPoints[0], "x"), e.distanceY = s(e.newPoints[0], e.startPoints[0], "y"), e.distance = s(e.newPoints[0], e.startPoints[0]), e.distance > 0 && (e.isSwiping ? e.onSwipe(t) : e.isPanning ? e.onPan() : e.isZooming && e.onZoom()))))
	}, d.prototype.onSwipe = function(e) {
		var a, s = this,
			r = s.instance,
			c = s.isSwiping,
			l = s.sliderStartPos.left || 0;
		if (!0 !== c) "x" == c && (s.distanceX > 0 && (s.instance.group.length < 2 || 0 === s.instance.current.index && !s.instance.current.opts.loop) ? l += Math.pow(s.distanceX, .8) : s.distanceX < 0 && (s.instance.group.length < 2 || s.instance.current.index === s.instance.group.length - 1 && !s.instance.current.opts.loop) ? l -= Math.pow(-s.distanceX, .8) : l += s.distanceX), s.sliderLastPos = {
			top: "x" == c ? 0 : s.sliderStartPos.top + s.distanceY,
			left: l
		}, s.requestId && (i(s.requestId), s.requestId = null), s.requestId = o(function() {
			s.sliderLastPos && (n.each(s.instance.slides, function(t, e) {
				var o = e.pos - s.instance.currPos;
				n.fancybox.setTranslate(e.$slide, {
					top: s.sliderLastPos.top,
					left: s.sliderLastPos.left + o * s.canvasWidth + o * e.opts.gutter
				})
			}), s.$container.addClass("fancybox-is-sliding"))
		});
		else if (Math.abs(s.distance) > 10) {
			if (s.canTap = !1, r.group.length < 2 && s.opts.vertical ? s.isSwiping = "y" : r.isDragging || !1 === s.opts.vertical || "auto" === s.opts.vertical && n(t).width() > 800 ? s.isSwiping = "x" : (a = Math.abs(180 * Math.atan2(s.distanceY, s.distanceX) / Math.PI), s.isSwiping = a > 45 && a < 135 ? "y" : "x"), "y" === s.isSwiping && n.fancybox.isMobile && s.isScrollable) return void(s.isScrolling = !0);
			r.isDragging = s.isSwiping, s.startPoints = s.newPoints, n.each(r.slides, function(t, e) {
				var o, i;
				n.fancybox.stop(e.$slide), o = n.fancybox.getTranslate(e.$slide), i = n.fancybox.getTranslate(r.$refs.stage), e.$slide.css({
					transform: "",
					opacity: "",
					"transition-duration": ""
				}).removeClass("fancybox-animated").removeClass(function(t, e) {
					return (e.match(/(^|\s)fancybox-fx-\S+/g) || []).join(" ")
				}), e.pos === r.current.pos && (s.sliderStartPos.top = o.top - i.top, s.sliderStartPos.left = o.left - i.left), n.fancybox.setTranslate(e.$slide, {
					top: o.top - i.top,
					left: o.left - i.left
				})
			}), r.SlideShow && r.SlideShow.isActive && r.SlideShow.stop()
		}
	}, d.prototype.onPan = function() {
		var t = this;
		if (s(t.newPoints[0], t.realPoints[0]) < (n.fancybox.isMobile ? 10 : 5)) return void(t.startPoints = t.newPoints);
		t.canTap = !1, t.contentLastPos = t.limitMovement(), t.requestId && i(t.requestId), t.requestId = o(function() {
			n.fancybox.setTranslate(t.$content, t.contentLastPos)
		})
	}, d.prototype.limitMovement = function() {
		var t, e, n, o, i, a, s = this,
			r = s.canvasWidth,
			c = s.canvasHeight,
			l = s.distanceX,
			d = s.distanceY,
			u = s.contentStartPos,
			f = u.left,
			p = u.top,
			h = u.width,
			g = u.height;
		return i = h > r ? f + l : f, a = p + d, t = Math.max(0, .5 * r - .5 * h), e = Math.max(0, .5 * c - .5 * g), n = Math.min(r - h, .5 * r - .5 * h), o = Math.min(c - g, .5 * c - .5 * g), l > 0 && i > t && (i = t - 1 + Math.pow(-t + f + l, .8) || 0), l < 0 && i < n && (i = n + 1 - Math.pow(n - f - l, .8) || 0), d > 0 && a > e && (a = e - 1 + Math.pow(-e + p + d, .8) || 0), d < 0 && a < o && (a = o + 1 - Math.pow(o - p - d, .8) || 0), {
			top: a,
			left: i
		}
	}, d.prototype.limitPosition = function(t, e, n, o) {
		var i = this,
			a = i.canvasWidth,
			s = i.canvasHeight;
		return n > a ? (t = t > 0 ? 0 : t, t = t < a - n ? a - n : t) : t = Math.max(0, a / 2 - n / 2), o > s ? (e = e > 0 ? 0 : e, e = e < s - o ? s - o : e) : e = Math.max(0, s / 2 - o / 2), {
			top: e,
			left: t
		}
	}, d.prototype.onZoom = function() {
		var e = this,
			a = e.contentStartPos,
			r = a.width,
			c = a.height,
			l = a.left,
			d = a.top,
			u = s(e.newPoints[0], e.newPoints[1]),
			f = u / e.startDistanceBetweenFingers,
			p = Math.floor(r * f),
			h = Math.floor(c * f),
			g = (r - p) * e.percentageOfImageAtPinchPointX,
			b = (c - h) * e.percentageOfImageAtPinchPointY,
			m = (e.newPoints[0].x + e.newPoints[1].x) / 2 - n(t).scrollLeft(),
			v = (e.newPoints[0].y + e.newPoints[1].y) / 2 - n(t).scrollTop(),
			y = m - e.centerPointStartX,
			x = v - e.centerPointStartY,
			w = l + (g + y),
			$ = d + (b + x),
			S = {
				top: $,
				left: w,
				scaleX: f,
				scaleY: f
			};
		e.canTap = !1, e.newWidth = p, e.newHeight = h, e.contentLastPos = S, e.requestId && i(e.requestId), e.requestId = o(function() {
			n.fancybox.setTranslate(e.$content, e.contentLastPos)
		})
	}, d.prototype.ontouchend = function(t) {
		var o = this,
			s = o.isSwiping,
			r = o.isPanning,
			c = o.isZooming,
			l = o.isScrolling;
		if (o.endPoints = a(t), o.dMs = Math.max((new Date).getTime() - o.startTime, 1), o.$container.removeClass("fancybox-is-grabbing"), n(e).off(".fb.touch"), e.removeEventListener("scroll", o.onscroll, !0), o.requestId && (i(o.requestId), o.requestId = null), o.isSwiping = !1, o.isPanning = !1, o.isZooming = !1, o.isScrolling = !1, o.instance.isDragging = !1, o.canTap) return o.onTap(t);
		o.speed = 100, o.velocityX = o.distanceX / o.dMs * .5, o.velocityY = o.distanceY / o.dMs * .5, r ? o.endPanning() : c ? o.endZooming() : o.endSwiping(s, l)
	}, d.prototype.endSwiping = function(t, e) {
		var o = this,
			i = !1,
			a = o.instance.group.length,
			s = Math.abs(o.distanceX),
			r = "x" == t && a > 1 && (o.dMs > 130 && s > 10 || s > 50);
		o.sliderLastPos = null, "y" == t && !e && Math.abs(o.distanceY) > 50 ? (n.fancybox.animate(o.instance.current.$slide, {
			top: o.sliderStartPos.top + o.distanceY + 150 * o.velocityY,
			opacity: 0
		}, 200), i = o.instance.close(!0, 250)) : r && o.distanceX > 0 ? i = o.instance.previous(300) : r && o.distanceX < 0 && (i = o.instance.next(300)), !1 !== i || "x" != t && "y" != t || o.instance.centerSlide(200), o.$container.removeClass("fancybox-is-sliding")
	}, d.prototype.endPanning = function() {
		var t, e, o, i = this;
		i.contentLastPos && (!1 === i.opts.momentum || i.dMs > 350 ? (t = i.contentLastPos.left, e = i.contentLastPos.top) : (t = i.contentLastPos.left + 500 * i.velocityX, e = i.contentLastPos.top + 500 * i.velocityY), o = i.limitPosition(t, e, i.contentStartPos.width, i.contentStartPos.height), o.width = i.contentStartPos.width, o.height = i.contentStartPos.height, n.fancybox.animate(i.$content, o, 366))
	}, d.prototype.endZooming = function() {
		var t, e, o, i, a = this,
			s = a.instance.current,
			r = a.newWidth,
			c = a.newHeight;
		a.contentLastPos && (t = a.contentLastPos.left, e = a.contentLastPos.top, i = {
			top: e,
			left: t,
			width: r,
			height: c,
			scaleX: 1,
			scaleY: 1
		}, n.fancybox.setTranslate(a.$content, i), r < a.canvasWidth && c < a.canvasHeight ? a.instance.scaleToFit(150) : r > s.width || c > s.height ? a.instance.scaleToActual(a.centerPointStartX, a.centerPointStartY, 150) : (o = a.limitPosition(t, e, r, c), n.fancybox.animate(a.$content, o, 150)))
	}, d.prototype.onTap = function(e) {
		var o, i = this,
			s = n(e.target),
			r = i.instance,
			c = r.current,
			l = e && a(e) || i.startPoints,
			d = l[0] ? l[0].x - n(t).scrollLeft() - i.stagePos.left : 0,
			u = l[0] ? l[0].y - n(t).scrollTop() - i.stagePos.top : 0,
			f = function(t) {
				var o = c.opts[t];
				if (n.isFunction(o) && (o = o.apply(r, [c, e])), o) switch (o) {
					case "close":
						r.close(i.startEvent);
						break;
					case "toggleControls":
						r.toggleControls();
						break;
					case "next":
						r.next();
						break;
					case "nextOrClose":
						r.group.length > 1 ? r.next() : r.close(i.startEvent);
						break;
					case "zoom":
						"image" == c.type && (c.isLoaded || c.$ghost) && (r.canPan() ? r.scaleToFit() : r.isScaledDown() ? r.scaleToActual(d, u) : r.group.length < 2 && r.close(i.startEvent))
				}
			};
		if ((!e.originalEvent || 2 != e.originalEvent.button) && (s.is("img") || !(d > s[0].clientWidth + s.offset().left))) {
			if (s.is(".fancybox-bg,.fancybox-inner,.fancybox-outer,.fancybox-container")) o = "Outside";
			else if (s.is(".fancybox-slide")) o = "Slide";
			else {
				if (!r.current.$content || !r.current.$content.find(s).addBack().filter(s).length) return;
				o = "Content"
			}
			if (i.tapped) {
				if (clearTimeout(i.tapped), i.tapped = null, Math.abs(d - i.tapX) > 50 || Math.abs(u - i.tapY) > 50) return this;
				f("dblclick" + o)
			} else i.tapX = d, i.tapY = u, c.opts["dblclick" + o] && c.opts["dblclick" + o] !== c.opts["click" + o] ? i.tapped = setTimeout(function() {
				i.tapped = null, r.isAnimating || f("click" + o)
			}, 500) : f("click" + o);
			return this
		}
	}, n(e).on("onActivate.fb", function(t, e) {
		e && !e.Guestures && (e.Guestures = new d(e))
	}).on("beforeClose.fb", function(t, e) {
		e && e.Guestures && e.Guestures.destroy()
	})
}(window, document, jQuery),
function(t, e) {
	"use strict";
	e.extend(!0, e.fancybox.defaults, {
		btnTpl: {
			slideShow: '<button data-fancybox-play class="fancybox-button fancybox-button--play" title="{{PLAY_START}}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6.5 5.4v13.2l11-6.6z"/></svg><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M8.33 5.75h2.2v12.5h-2.2V5.75zm5.15 0h2.2v12.5h-2.2V5.75z"/></svg></button>'
		},
		slideShow: {
			autoStart: !1,
			speed: 3e3,
			progress: !0
		}
	});
	var n = function(t) {
		this.instance = t, this.init()
	};
	e.extend(n.prototype, {
		timer: null,
		isActive: !1,
		$button: null,
		init: function() {
			var t = this,
				n = t.instance,
				o = n.group[n.currIndex].opts.slideShow;
			t.$button = n.$refs.toolbar.find("[data-fancybox-play]").on("click", function() {
				t.toggle()
			}), n.group.length < 2 || !o ? t.$button.hide() : o.progress && (t.$progress = e('<div class="fancybox-progress"></div>').appendTo(n.$refs.inner))
		},
		set: function(t) {
			var n = this,
				o = n.instance,
				i = o.current;
			i && (!0 === t || i.opts.loop || o.currIndex < o.group.length - 1) ? n.isActive && "video" !== i.contentType && (n.$progress && e.fancybox.animate(n.$progress.show(), {
				scaleX: 1
			}, i.opts.slideShow.speed), n.timer = setTimeout(function() {
				o.current.opts.loop || o.current.index != o.group.length - 1 ? o.next() : o.jumpTo(0)
			}, i.opts.slideShow.speed)) : (n.stop(), o.idleSecondsCounter = 0, o.showControls())
		},
		clear: function() {
			var t = this;
			clearTimeout(t.timer), t.timer = null, t.$progress && t.$progress.removeAttr("style").hide()
		},
		start: function() {
			var t = this,
				e = t.instance.current;
			e && (t.$button.attr("title", (e.opts.i18n[e.opts.lang] || e.opts.i18n.en).PLAY_STOP).removeClass("fancybox-button--play").addClass("fancybox-button--pause"), t.isActive = !0, e.isComplete && t.set(!0), t.instance.trigger("onSlideShowChange", !0))
		},
		stop: function() {
			var t = this,
				e = t.instance.current;
			t.clear(), t.$button.attr("title", (e.opts.i18n[e.opts.lang] || e.opts.i18n.en).PLAY_START).removeClass("fancybox-button--pause").addClass("fancybox-button--play"), t.isActive = !1, t.instance.trigger("onSlideShowChange", !1), t.$progress && t.$progress.removeAttr("style").hide()
		},
		toggle: function() {
			var t = this;
			t.isActive ? t.stop() : t.start()
		}
	}), e(t).on({
		"onInit.fb": function(t, e) {
			e && !e.SlideShow && (e.SlideShow = new n(e))
		},
		"beforeShow.fb": function(t, e, n, o) {
			var i = e && e.SlideShow;
			o ? i && n.opts.slideShow.autoStart && i.start() : i && i.isActive && i.clear()
		},
		"afterShow.fb": function(t, e, n) {
			var o = e && e.SlideShow;
			o && o.isActive && o.set()
		},
		"afterKeydown.fb": function(n, o, i, a, s) {
			var r = o && o.SlideShow;
			!r || !i.opts.slideShow || 80 !== s && 32 !== s || e(t.activeElement).is("button,a,input") || (a.preventDefault(), r.toggle())
		},
		"beforeClose.fb onDeactivate.fb": function(t, e) {
			var n = e && e.SlideShow;
			n && n.stop()
		}
	}), e(t).on("visibilitychange", function() {
		var n = e.fancybox.getInstance(),
			o = n && n.SlideShow;
		o && o.isActive && (t.hidden ? o.clear() : o.set())
	})
}(document, jQuery),
function(t, e) {
	"use strict";
	var n = function() {
		for (var e = [
				["requestFullscreen", "exitFullscreen", "fullscreenElement", "fullscreenEnabled", "fullscreenchange", "fullscreenerror"],
				["webkitRequestFullscreen", "webkitExitFullscreen", "webkitFullscreenElement", "webkitFullscreenEnabled", "webkitfullscreenchange", "webkitfullscreenerror"],
				["webkitRequestFullScreen", "webkitCancelFullScreen", "webkitCurrentFullScreenElement", "webkitCancelFullScreen", "webkitfullscreenchange", "webkitfullscreenerror"],
				["mozRequestFullScreen", "mozCancelFullScreen", "mozFullScreenElement", "mozFullScreenEnabled", "mozfullscreenchange", "mozfullscreenerror"],
				["msRequestFullscreen", "msExitFullscreen", "msFullscreenElement", "msFullscreenEnabled", "MSFullscreenChange", "MSFullscreenError"]
			], n = {}, o = 0; o < e.length; o++) {
			var i = e[o];
			if (i && i[1] in t) {
				for (var a = 0; a < i.length; a++) n[e[0][a]] = i[a];
				return n
			}
		}
		return !1
	}();
	if (n) {
		var o = {
			request: function(e) {
				e = e || t.documentElement, e[n.requestFullscreen](e.ALLOW_KEYBOARD_INPUT)
			},
			exit: function() {
				t[n.exitFullscreen]()
			},
			toggle: function(e) {
				e = e || t.documentElement, this.isFullscreen() ? this.exit() : this.request(e)
			},
			isFullscreen: function() {
				return Boolean(t[n.fullscreenElement])
			},
			enabled: function() {
				return Boolean(t[n.fullscreenEnabled])
			}
		};
		e.extend(!0, e.fancybox.defaults, {
			btnTpl: {
				fullScreen: '<button data-fancybox-fullscreen class="fancybox-button fancybox-button--fsenter" title="{{FULL_SCREEN}}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z"/></svg><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M5 16h3v3h2v-5H5zm3-8H5v2h5V5H8zm6 11h2v-3h3v-2h-5zm2-11V5h-2v5h5V8z"/></svg></button>'
			},
			fullScreen: {
				autoStart: !1
			}
		}), e(t).on(n.fullscreenchange, function() {
			var t = o.isFullscreen(),
				n = e.fancybox.getInstance();
			n && (n.current && "image" === n.current.type && n.isAnimating && (n.isAnimating = !1, n.update(!0, !0, 0), n.isComplete || n.complete()), n.trigger("onFullscreenChange", t), n.$refs.container.toggleClass("fancybox-is-fullscreen", t), n.$refs.toolbar.find("[data-fancybox-fullscreen]").toggleClass("fancybox-button--fsenter", !t).toggleClass("fancybox-button--fsexit", t))
		})
	}
	e(t).on({
		"onInit.fb": function(t, e) {
			var i;
			if (!n) return void e.$refs.toolbar.find("[data-fancybox-fullscreen]").remove();
			e && e.group[e.currIndex].opts.fullScreen ? (i = e.$refs.container, i.on("click.fb-fullscreen", "[data-fancybox-fullscreen]", function(t) {
				t.stopPropagation(), t.preventDefault(), o.toggle()
			}), e.opts.fullScreen && !0 === e.opts.fullScreen.autoStart && o.request(), e.FullScreen = o) : e && e.$refs.toolbar.find("[data-fancybox-fullscreen]").hide()
		},
		"afterKeydown.fb": function(t, e, n, o, i) {
			e && e.FullScreen && 70 === i && (o.preventDefault(), e.FullScreen.toggle())
		},
		"beforeClose.fb": function(t, e) {
			e && e.FullScreen && e.$refs.container.hasClass("fancybox-is-fullscreen") && o.exit()
		}
	})
}(document, jQuery),
function(t, e) {
	"use strict";
	var n = "fancybox-thumbs";
	e.fancybox.defaults = e.extend(!0, {
		btnTpl: {
			thumbs: '<button data-fancybox-thumbs class="fancybox-button fancybox-button--thumbs" title="{{THUMBS}}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M14.59 14.59h3.76v3.76h-3.76v-3.76zm-4.47 0h3.76v3.76h-3.76v-3.76zm-4.47 0h3.76v3.76H5.65v-3.76zm8.94-4.47h3.76v3.76h-3.76v-3.76zm-4.47 0h3.76v3.76h-3.76v-3.76zm-4.47 0h3.76v3.76H5.65v-3.76zm8.94-4.47h3.76v3.76h-3.76V5.65zm-4.47 0h3.76v3.76h-3.76V5.65zm-4.47 0h3.76v3.76H5.65V5.65z"/></svg></button>'
		},
		thumbs: {
			autoStart: !1,
			hideOnClose: !0,
			parentEl: ".fancybox-container",
			axis: "y"
		}
	}, e.fancybox.defaults);
	var o = function(t) {
		this.init(t)
	};
	e.extend(o.prototype, {
		$button: null,
		$grid: null,
		$list: null,
		isVisible: !1,
		isActive: !1,
		init: function(t) {
			var e = this,
				n = t.group,
				o = 0;
			e.instance = t, e.opts = n[t.currIndex].opts.thumbs, t.Thumbs = e, e.$button = t.$refs.toolbar.find("[data-fancybox-thumbs]");
			for (var i = 0, a = n.length; i < a && (n[i].thumb && o++, !(o > 1)); i++);
			o > 1 && e.opts ? (e.$button.removeAttr("style").on("click", function() {
				e.toggle()
			}), e.isActive = !0) : e.$button.hide()
		},
		create: function() {
			var t, o = this,
				i = o.instance,
				a = o.opts.parentEl,
				s = [];
			o.$grid || (o.$grid = e('<div class="' + n + " " + n + "-" + o.opts.axis + '"></div>').appendTo(i.$refs.container.find(a).addBack().filter(a)), o.$grid.on("click", "a", function() {
				i.jumpTo(e(this).attr("data-index"))
			})), o.$list || (o.$list = e('<div class="' + n + '__list">').appendTo(o.$grid)), e.each(i.group, function(e, n) {
				t = n.thumb, t || "image" !== n.type || (t = n.src), s.push('<a href="javascript:;" tabindex="0" data-index="' + e + '"' + (t && t.length ? ' style="background-image:url(' + t + ')"' : 'class="fancybox-thumbs-missing"') + "></a>")
			}), o.$list[0].innerHTML = s.join(""), "x" === o.opts.axis && o.$list.width(parseInt(o.$grid.css("padding-right"), 10) + i.group.length * o.$list.children().eq(0).outerWidth(!0))
		},
		focus: function(t) {
			var e, n, o = this,
				i = o.$list,
				a = o.$grid;
			o.instance.current && (e = i.children().removeClass("fancybox-thumbs-active").filter('[data-index="' + o.instance.current.index + '"]').addClass("fancybox-thumbs-active"), n = e.position(), "y" === o.opts.axis && (n.top < 0 || n.top > i.height() - e.outerHeight()) ? i.stop().animate({
				scrollTop: i.scrollTop() + n.top
			}, t) : "x" === o.opts.axis && (n.left < a.scrollLeft() || n.left > a.scrollLeft() + (a.width() - e.outerWidth())) && i.parent().stop().animate({
				scrollLeft: n.left
			}, t))
		},
		update: function() {
			var t = this;
			t.instance.$refs.container.toggleClass("fancybox-show-thumbs", this.isVisible), t.isVisible ? (t.$grid || t.create(), t.instance.trigger("onThumbsShow"), t.focus(0)) : t.$grid && t.instance.trigger("onThumbsHide"), t.instance.update()
		},
		hide: function() {
			this.isVisible = !1, this.update()
		},
		show: function() {
			this.isVisible = !0, this.update()
		},
		toggle: function() {
			this.isVisible = !this.isVisible, this.update()
		}
	}), e(t).on({
		"onInit.fb": function(t, e) {
			var n;
			e && !e.Thumbs && (n = new o(e), n.isActive && !0 === n.opts.autoStart && n.show())
		},
		"beforeShow.fb": function(t, e, n, o) {
			var i = e && e.Thumbs;
			i && i.isVisible && i.focus(o ? 0 : 250)
		},
		"afterKeydown.fb": function(t, e, n, o, i) {
			var a = e && e.Thumbs;
			a && a.isActive && 71 === i && (o.preventDefault(), a.toggle())
		},
		"beforeClose.fb": function(t, e) {
			var n = e && e.Thumbs;
			n && n.isVisible && !1 !== n.opts.hideOnClose && n.$grid.hide()
		}
	})
}(document, jQuery),
function(t, e) {
	"use strict";

	function n(t) {
		var e = {
			"&": "&amp;",
			"<": "&lt;",
			">": "&gt;",
			'"': "&quot;",
			"'": "&#39;",
			"/": "&#x2F;",
			"`": "&#x60;",
			"=": "&#x3D;"
		};
		return String(t).replace(/[&<>"'`=\/]/g, function(t) {
			return e[t]
		})
	}
	e.extend(!0, e.fancybox.defaults, {
		btnTpl: {
			share: '<button data-fancybox-share class="fancybox-button fancybox-button--share" title="{{SHARE}}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M2.55 19c1.4-8.4 9.1-9.8 11.9-9.8V5l7 7-7 6.3v-3.5c-2.8 0-10.5 2.1-11.9 4.2z"/></svg></button>'
		},
		share: {
			url: function(t, e) {
				return !t.currentHash && "inline" !== e.type && "html" !== e.type && (e.origSrc || e.src) || window.location
			},
			tpl: '<div class="fancybox-share"><h1>{{SHARE}}</h1><p><a class="fancybox-share__button fancybox-share__button--fb" href="https://www.facebook.com/sharer/sharer.php?u={{url}}"><svg viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="m287 456v-299c0-21 6-35 35-35h38v-63c-7-1-29-3-55-3-54 0-91 33-91 94v306m143-254h-205v72h196" /></svg><span>Facebook</span></a><a class="fancybox-share__button fancybox-share__button--tw" href="https://twitter.com/intent/tweet?url={{url}}&text={{descr}}"><svg viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="m456 133c-14 7-31 11-47 13 17-10 30-27 37-46-15 10-34 16-52 20-61-62-157-7-141 75-68-3-129-35-169-85-22 37-11 86 26 109-13 0-26-4-37-9 0 39 28 72 65 80-12 3-25 4-37 2 10 33 41 57 77 57-42 30-77 38-122 34 170 111 378-32 359-208 16-11 30-25 41-42z" /></svg><span>Twitter</span></a><a class="fancybox-share__button fancybox-share__button--pt" href="https://www.pinterest.com/pin/create/button/?url={{url}}&description={{descr}}&media={{media}}"><svg viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="m265 56c-109 0-164 78-164 144 0 39 15 74 47 87 5 2 10 0 12-5l4-19c2-6 1-8-3-13-9-11-15-25-15-45 0-58 43-110 113-110 62 0 96 38 96 88 0 67-30 122-73 122-24 0-42-19-36-44 6-29 20-60 20-81 0-19-10-35-31-35-25 0-44 26-44 60 0 21 7 36 7 36l-30 125c-8 37-1 83 0 87 0 3 4 4 5 2 2-3 32-39 42-75l16-64c8 16 31 29 56 29 74 0 124-67 124-157 0-69-58-132-146-132z" fill="#fff"/></svg><span>Pinterest</span></a></p><p><input class="fancybox-share__input" type="text" value="{{url_raw}}" onclick="select()" /></p></div>'
		}
	}), e(t).on("click", "[data-fancybox-share]", function() {
		var t, o, i = e.fancybox.getInstance(),
			a = i.current || null;
		a && ("function" === e.type(a.opts.share.url) && (t = a.opts.share.url.apply(a, [i, a])), o = a.opts.share.tpl.replace(/\{\{media\}\}/g, "image" === a.type ? encodeURIComponent(a.src) : "").replace(/\{\{url\}\}/g, encodeURIComponent(t)).replace(/\{\{url_raw\}\}/g, n(t)).replace(/\{\{descr\}\}/g, i.$caption ? encodeURIComponent(i.$caption.text()) : ""), e.fancybox.open({
			src: i.translate(i, o),
			type: "html",
			opts: {
				touch: !1,
				animationEffect: !1,
				afterLoad: function(t, e) {
					i.$refs.container.one("beforeClose.fb", function() {
						t.close(null, 0)
					}), e.$content.find(".fancybox-share__button").click(function() {
						return window.open(this.href, "Share", "width=550, height=450"), !1
					})
				},
				mobile: {
					autoFocus: !1
				}
			}
		}))
	})
}(document, jQuery),
function(t, e, n) {
	"use strict";

	function o() {
		var e = t.location.hash.substr(1),
			n = e.split("-"),
			o = n.length > 1 && /^\+?\d+$/.test(n[n.length - 1]) ? parseInt(n.pop(-1), 10) || 1 : 1,
			i = n.join("-");
		return {
			hash: e,
			index: o < 1 ? 1 : o,
			gallery: i
		}
	}

	function i(t) {
		"" !== t.gallery && n("[data-fancybox='" + n.escapeSelector(t.gallery) + "']").eq(t.index - 1).focus().trigger("click.fb-start")
	}

	function a(t) {
		var e, n;
		return !!t && (e = t.current ? t.current.opts : t.opts, "" !== (n = e.hash || (e.$orig ? e.$orig.data("fancybox") || e.$orig.data("fancybox-trigger") : "")) && n)
	}
	n.escapeSelector || (n.escapeSelector = function(t) {
		return (t + "").replace(/([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g, function(t, e) {
			return e ? "\0" === t ? "�" : t.slice(0, -1) + "\\" + t.charCodeAt(t.length - 1).toString(16) + " " : "\\" + t
		})
	}), n(function() {
		!1 !== n.fancybox.defaults.hash && (n(e).on({
			"onInit.fb": function(t, e) {
				var n, i;
				!1 !== e.group[e.currIndex].opts.hash && (n = o(), (i = a(e)) && n.gallery && i == n.gallery && (e.currIndex = n.index - 1))
			},
			"beforeShow.fb": function(n, o, i, s) {
				var r;
				i && !1 !== i.opts.hash && (r = a(o)) && (o.currentHash = r + (o.group.length > 1 ? "-" + (i.index + 1) : ""), t.location.hash !== "#" + o.currentHash && (s && !o.origHash && (o.origHash = t.location.hash), o.hashTimer && clearTimeout(o.hashTimer), o.hashTimer = setTimeout(function() {
					"replaceState" in t.history ? (t.history[s ? "pushState" : "replaceState"]({}, e.title, t.location.pathname + t.location.search + "#" + o.currentHash), s && (o.hasCreatedHistory = !0)) : t.location.hash = o.currentHash, o.hashTimer = null
				}, 300)))
			},
			"beforeClose.fb": function(n, o, i) {
				i && !1 !== i.opts.hash && (clearTimeout(o.hashTimer), o.currentHash && o.hasCreatedHistory ? t.history.back() : o.currentHash && ("replaceState" in t.history ? t.history.replaceState({}, e.title, t.location.pathname + t.location.search + (o.origHash || "")) : t.location.hash = o.origHash), o.currentHash = null)
			}
		}), n(t).on("hashchange.fb", function() {
			var t = o(),
				e = null;
			n.each(n(".fancybox-container").get().reverse(), function(t, o) {
				var i = n(o).data("FancyBox");
				if (i && i.currentHash) return e = i, !1
			}), e ? e.currentHash === t.gallery + "-" + t.index || 1 === t.index && e.currentHash == t.gallery || (e.currentHash = null, e.close()) : "" !== t.gallery && i(t)
		}), setTimeout(function() {
			n.fancybox.getInstance() || i(o())
		}, 50))
	})
}(window, document, jQuery),
function(t, e) {
	"use strict";
	var n = (new Date).getTime();
	e(t).on({
		"onInit.fb": function(t, e, o) {
			e.$refs.stage.on("mousewheel DOMMouseScroll wheel MozMousePixelScroll", function(t) {
				var o = e.current,
					i = (new Date).getTime();
				e.group.length < 2 || !1 === o.opts.wheel || "auto" === o.opts.wheel && "image" !== o.type || (t.preventDefault(), t.stopPropagation(), o.$slide.hasClass("fancybox-animated") || (t = t.originalEvent || t, i - n < 250 || (n = i, e[(-t.deltaY || -t.deltaX || t.wheelDelta || -t.detail) < 0 ? "next" : "previous"]())))
			})
		}
	})
}(document, jQuery);
! function(a) {
	"use strict";

	function b() {
		var a = !1;
		return function(b) {
			(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(b) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(b.substr(0, 4))) && (a = !0)
		}(navigator.userAgent || navigator.vendor || window.opera), a
	}

	function c(a, b, c) {
		return a === b ? a = b : a === c && (a = c), a
	}

	function d(a, b, c) {
		if (!(a >= b && a <= c)) throw Error("Invalid Rating, expected value between " + b + " and " + c);
		return a
	}

	function e(a) {
		return void 0 !== a
	}

	function f(a, b, c) {
		var d = c / 100 * (b - a);
		return d = Math.round(a + d).toString(16), 1 === d.length && (d = "0" + d), d
	}

	function g(a, b, c) {
		if (!a || !b) return null;
		c = e(c) ? c : 0, a = q(a), b = q(b);
		var d = f(a.r, b.r, c),
			g = f(a.b, b.b, c);
		return "#" + d + f(a.g, b.g, c) + g
	}

	function h(f, i) {
		function k(a) {
			e(a) || (a = i.rating), Z = a;
			var b = a / P,
				c = b * R;
			b > 1 && (c += (Math.ceil(b) - 1) * T), r(i.ratedFill), c = i.rtl ? 100 - c : c, c < 0 ? c = 0 : c > 100 && (c = 100), X.css("width", c + "%")
		}

		function l() {
			U = Q * i.numStars + S * (i.numStars - 1), R = Q / U * 100, T = S / U * 100, f.width(U), k()
		}

		function n(a) {
			var b = i.starWidth = a;
			return Q = window.parseFloat(i.starWidth.replace("px", "")), W.find("svg").attr({
				width: i.starWidth,
				height: b
			}), X.find("svg").attr({
				width: i.starWidth,
				height: b
			}), l(), f
		}

		function p(a) {
			return i.spacing = a, S = parseFloat(i.spacing.replace("px", "")), W.find("svg:not(:first-child)").css({
				"margin-left": a
			}), X.find("svg:not(:first-child)").css({
				"margin-left": a
			}), l(), f
		}

		function q(a) {
			return i.normalFill = a, (i.rtl ? X : W).find("svg").attr({
				fill: i.normalFill
			}), f
		}

		function r(a) {
			if (i.multiColor) {
				var b = Z - Y,
					c = b / i.maxValue * 100,
					d = i.multiColor || {};
				a = g(d.startColor || o.startColor, d.endColor || o.endColor, c)
			} else _ = a;
			return i.ratedFill = a, (i.rtl ? W : X).find("svg").attr({
				fill: i.ratedFill
			}), f
		}

		function s(a) {
			a = !!a, i.rtl = a, q(i.normalFill), k()
		}

		function t(a) {
			i.multiColor = a, r(a ? a : _)
		}

		function u(b) {
			i.numStars = b, P = i.maxValue / i.numStars, W.empty(), X.empty();
			for (var c = 0; c < i.numStars; c++) W.append(a(i.starSvg || m)), X.append(a(i.starSvg || m));
			return n(i.starWidth), q(i.normalFill), p(i.spacing), k(), f
		}

		function v(a) {
			return i.maxValue = a, P = i.maxValue / i.numStars, i.rating > a && C(a), k(), f
		}

		function w(a) {
			return i.precision = a, C(i.rating), f
		}

		function x(a) {
			return i.halfStar = a, f
		}

		function y(a) {
			return i.fullStar = a, f
		}

		function z(a) {
			var b = a % P,
				c = P / 2,
				d = i.halfStar,
				e = i.fullStar;
			return e || d ? (e || d && b > c ? a += P - b : (a -= b, b > 0 && (a += c)), a) : a
		}

		function A(a) {
			var b = W.offset(),
				c = b.left,
				d = c + W.width(),
				e = i.maxValue,
				f = a.pageX,
				g = 0;
			if (f < c) g = Y;
			else if (f > d) g = e;
			else {
				var h = (f - c) / (d - c);
				if (S > 0) {
					h *= 100;
					for (var j = h; j > 0;) j > R ? (g += P, j -= R + T) : (g += j / R * P, j = 0)
				} else g = h * i.maxValue;
				g = z(g)
			}
			return i.rtl && (g = e - g), parseFloat(g)
		}

		function B(a) {
			return i.readOnly = a, f.attr("readonly", !0), N(), a || (f.removeAttr("readonly"), M()), f
		}

		function C(a) {
			var b = a,
				e = i.maxValue;
			return "string" == typeof b && ("%" === b[b.length - 1] && (b = b.substr(0, b.length - 1), e = 100, v(e)), b = parseFloat(b)), d(b, Y, e), b = parseFloat(b.toFixed(i.precision)), c(parseFloat(b), Y, e), i.rating = b, k(), $ && f.trigger("rateyo.set", {
				rating: b
			}), f
		}

		function D(a) {
			return i.onInit = a, f
		}

		function E(a) {
			return i.onSet = a, f
		}

		function F(a) {
			return i.onChange = a, f
		}

		function G(a) {
			var b = A(a).toFixed(i.precision),
				d = i.maxValue;
			b = c(parseFloat(b), Y, d), k(b), f.trigger("rateyo.change", {
				rating: b
			})
		}

		function H() {
			b() || (k(), f.trigger("rateyo.change", {
				rating: i.rating
			}))
		}

		function I(a) {
			var b = A(a).toFixed(i.precision);
			b = parseFloat(b), O.rating(b)
		}

		function J(a, b) {
			i.onInit && "function" == typeof i.onInit && i.onInit.apply(this, [b.rating, O])
		}

		function K(a, b) {
			i.onChange && "function" == typeof i.onChange && i.onChange.apply(this, [b.rating, O])
		}

		function L(a, b) {
			i.onSet && "function" == typeof i.onSet && i.onSet.apply(this, [b.rating, O])
		}

		function M() {
			f.on("mousemove", G).on("mouseenter", G).on("mouseleave", H).on("click", I).on("rateyo.init", J).on("rateyo.change", K).on("rateyo.set", L)
		}

		function N() {
			f.off("mousemove", G).off("mouseenter", G).off("mouseleave", H).off("click", I).off("rateyo.init", J).off("rateyo.change", K).off("rateyo.set", L)
		}
		this.node = f.get(0);
		var O = this;
		f.empty().addClass("jq-ry-container");
		var P, Q, R, S, T, U, V = a("<div/>").addClass("jq-ry-group-wrapper").appendTo(f),
			W = a("<div/>").addClass("jq-ry-normal-group").addClass("jq-ry-group").appendTo(V),
			X = a("<div/>").addClass("jq-ry-rated-group").addClass("jq-ry-group").appendTo(V),
			Y = 0,
			Z = i.rating,
			$ = !1,
			_ = i.ratedFill;
		this.rating = function(a) {
			return e(a) ? (C(a), f) : i.rating
		}, this.destroy = function() {
			return i.readOnly || N(), h.prototype.collection = j(f.get(0), this.collection), f.removeClass("jq-ry-container").children().remove(), f
		}, this.method = function(a) {
			if (!a) throw Error("Method name not specified!");
			if (!e(this[a])) throw Error("Method " + a + " doesn't exist!");
			var b = Array.prototype.slice.apply(arguments, []),
				c = b.slice(1);
			return this[a].apply(this, c)
		}, this.option = function(a, b) {
			if (!e(a)) return i;
			var c;
			switch (a) {
				case "starWidth":
					c = n;
					break;
				case "numStars":
					c = u;
					break;
				case "normalFill":
					c = q;
					break;
				case "ratedFill":
					c = r;
					break;
				case "multiColor":
					c = t;
					break;
				case "maxValue":
					c = v;
					break;
				case "precision":
					c = w;
					break;
				case "rating":
					c = C;
					break;
				case "halfStar":
					c = x;
					break;
				case "fullStar":
					c = y;
					break;
				case "readOnly":
					c = B;
					break;
				case "spacing":
					c = p;
					break;
				case "rtl":
					c = s;
					break;
				case "onInit":
					c = D;
					break;
				case "onSet":
					c = E;
					break;
				case "onChange":
					c = F;
					break;
				default:
					throw Error("No such option as " + a)
			}
			return e(b) ? c(b) : i[a]
		}, u(i.numStars), B(i.readOnly), i.rtl && s(i.rtl), this.collection.push(this), this.rating(i.rating, !0), $ = !0, f.trigger("rateyo.init", {
			rating: i.rating
		})
	}

	function i(b, c) {
		var d;
		return a.each(c, function() {
			if (b === this.node) return d = this, !1
		}), d
	}

	function j(b, c) {
		return a.each(c, function(a) {
			if (b === this.node) {
				var d = c.slice(0, a),
					e = c.slice(a + 1, c.length);
				return c = d.concat(e), !1
			}
		}), c
	}

	function k(b) {
		var c = h.prototype.collection,
			d = a(this);
		if (0 === d.length) return d;
		var e = Array.prototype.slice.apply(arguments, []);
		if (0 === e.length) b = e[0] = {};
		else {
			if (1 !== e.length || "object" != typeof e[0]) {
				if (e.length >= 1 && "string" == typeof e[0]) {
					var f = e[0],
						g = e.slice(1),
						j = [];
					return a.each(d, function(a, b) {
						var d = i(b, c);
						if (!d) throw Error("Trying to set options before even initialization");
						var e = d[f];
						if (!e) throw Error("Method " + f + " does not exist!");
						var h = e.apply(d, g);
						j.push(h)
					}), j = 1 === j.length ? j[0] : j
				}
				throw Error("Invalid Arguments")
			}
			b = e[0]
		}
		return b = a.extend({}, n, b), a.each(d, function() {
			var d = i(this, c);
			if (d) return d;
			var e = a(this),
				f = {},
				g = a.extend({}, b);
			return a.each(e.data(), function(a, b) {
				if (0 === a.indexOf("rateyo")) {
					var c = a.replace(/^rateyo/, "");
					c = c[0].toLowerCase() + c.slice(1), f[c] = b, delete g[c]
				}
			}), new h(a(this), a.extend({}, f, g))
		})
	}

	function l() {
		return k.apply(this, Array.prototype.slice.apply(arguments, []))
	}
	var m = '<?xml version="1.0" encoding="utf-8"?><svg version="1.1"xmlns="http://www.w3.org/2000/svg"viewBox="0 12.705 512 486.59"x="0px" y="0px"xml:space="preserve"><polygon points="256.814,12.705 317.205,198.566 512.631,198.566 354.529,313.435 414.918,499.295 256.814,384.427 98.713,499.295 159.102,313.435 1,198.566 196.426,198.566 "/></svg>',
		n = {
			starWidth: "32px",
			normalFill: "gray",
			ratedFill: "#f39c12",
			numStars: 5,
			maxValue: 5,
			precision: 1,
			rating: 0,
			fullStar: !1,
			halfStar: !1,
			readOnly: !1,
			spacing: "0px",
			rtl: !1,
			multiColor: null,
			onInit: null,
			onChange: null,
			onSet: null,
			starSvg: null
		},
		o = {
			startColor: "#c0392b",
			endColor: "#f1c40f"
		},
		p = /^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i,
		q = function(a) {
			if (!p.test(a)) return null;
			var b = p.exec(a);
			return {
				r: parseInt(b[1], 16),
				g: parseInt(b[2], 16),
				b: parseInt(b[3], 16)
			}
		};
	h.prototype.collection = [], window.RateYo = h, a.fn.rateYo = l
}(window.jQuery);
var ajax = {
	"ajax_url": "https:\/\/modyolo.com\/wp-admin\/admin-ajax.php"
};
jQuery(function($) {
	var adminbarHeight = $('#wpadminbar').length > 0 ? $('#wpadminbar').height() : 0;
	var siteheaderHeight = $('.site-header').length > 0 ? $('.site-header').height() : 0;
	$(window).resize(function() {
		adminbarHeight = $('#wpadminbar').length > 0 ? $('#wpadminbar').height() : 0;
		siteheaderHeight = $('.site-header').length > 0 ? $('.site-header').height() : 0
	});
	$('.site-nav-toggler').on('click', function() {
		if ($('body').hasClass('open-site-nav')) {
			$('body').removeClass('open-site-nav').css('overflow', '');
			$('.site-overlay').remove()
		} else {
			$('body').addClass('open-site-nav').css('overflow', 'hidden');
			$('.site-nav').css('top', adminbarHeight);
			$('.site-nav').after('<div class="site-overlay"></div>')
		}
	});
	$('body').on('click', '.site-nav-closer, .site-overlay', function(e) {
		e.stopPropagation();
		$('body').removeClass('open-site-nav').css('overflow', '');
		$('.site-overlay').remove()
	});
	$('.site-nav li.menu-item-has-children').on('click', function(e) {
		e.stopPropagation();
		$(this).siblings().children('.sub-menu').slideUp(300);
		$(this).toggleClass('active').children('.sub-menu').slideToggle(300)
	});
	$('.site-nav a').on('click', function(e) {
		e.stopPropagation()
	});
	if ($('.table-of-contents').length > 0) {
		$('.entry-content h2, .entry-content h3').each(function() {
			$(this).attr('id', convertToSlug($(this).text()));
			if ($(this).is('h2')) {
				$('.table-of-contents .links').append('<a class="d-block mb-2" href="#' + convertToSlug($(this).text()) + '">' + $(this).text() + '</a>')
			} else if ($(this).is('h3')) {
				$('.table-of-contents .links').append('<a class="d-block ml-3 mb-2" href="#' + convertToSlug($(this).text()) + '">' + $(this).text() + '</a>')
			}
		})
	}
	$('.table-of-contents a').on('click', function(e) {
		e.preventDefault();
		var hash = this.hash;
		location.hash = hash;
		$('html, body').animate({
			scrollTop: $(hash).offset().top - adminbarHeight - siteheaderHeight
		}, 0)
	});
	if (location.hash) {
		var hash = location.hash;
		if ($('.table-of-contents a[href="' + hash + '"]').length > 0) {
			$('.tab-nav a').removeClass('active');
			$('.tab-pane').removeClass('active show');
			var id = $(hash).parents('.tab-pane').attr('id');
			$('a[href="#' + id + '"]').trigger('click');
			setTimeout(function() {
				$('html, body').animate({
					scrollTop: $(hash).offset().top - adminbarHeight - siteheaderHeight
				}, 300)
			}, 2000)
		}
	}
	$('.schema-faq-section').on('click', function() {
		$('.schema-faq-section.active').find('.schema-faq-answer').slideUp(100);
		if ($(this).hasClass('active')) {
			$('.schema-faq-section.active').removeClass('active');
			$(this).find('.schema-faq-answer').slideUp(100)
		} else {
			$('.schema-faq-section.active').removeClass('active');
			$(this).addClass('active');
			$(this).find('.schema-faq-answer').slideDown(100)
		}
	});
	$('.rating').rateYo({
		starWidth: '20px',
		fullStar: !0,
		onSet: function(rating, rateYoInstance) {
			var $this = $(this);
			var post_id = $this.data('post_id');
			$.ajax({
				type: 'POST',
				url: ajax.ajax_url,
				data: {
					'action': 'k_rating',
					'post_id': post_id,
					'rating': rating,
				},
				success: function(data, textStatus, jqXHR) {
					if (data.status == !0) {
						$this.rateYo('option', 'readOnly', !0)
					} else {
						alert(data.message)
					}
				},
				error: function(jqXHR, textStatus, errorThrown) {
					alert(jqXHR.responseText)
				}
			})
		}
	});
	$('.form-request, .form-report, .form-comment').on('submit', function(e) {
		e.preventDefault();
		$form = $(this);
		$form.find('[type="submit"]').append('<svg class="ml-2 svg-6 spin icon" fill="#fff" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M288 39.056v16.659c0 10.804 7.281 20.159 17.686 23.066C383.204 100.434 440 171.518 440 256c0 101.689-82.295 184-184 184-101.689 0-184-82.295-184-184 0-84.47 56.786-155.564 134.312-177.219C216.719 75.874 224 66.517 224 55.712V39.064c0-15.709-14.834-27.153-30.046-23.234C86.603 43.482 7.394 141.206 8.003 257.332c.72 137.052 111.477 246.956 248.531 246.667C393.255 503.711 504 392.788 504 256c0-115.633-79.14-212.779-186.211-240.236C302.678 11.889 288 23.456 288 39.056z"/></svg>');
		$form.find('.alert').remove();
		$.ajax({
			type: 'POST',
			url: ajax.ajax_url,
			data: $form.serialize(),
			success: function(data, textStatus, jqXHR) {
				$form.find('[type="submit"]').find('.icon').remove();
				if (data.status == !0) {
					$form.append('<div class="alert alert-success">' + data.message + '</div>');
					$form.find('.form-control').val('');
					if (data.redirect) {
						window.location.href = data.redirect
					}
				} else {
					$form.append('<div class="alert alert-danger">' + data.message + '</div>')
				}
			},
			error: function(jqXHR, textStatus, errorThrown) {
				alert(errorThrown)
			}
		})
	});
	$('.comment .reply').on('click', function() {
		$('.form-comment').find('input[name="parent"]').remove();
		$('.form-comment').prepend('<input type="hidden" name="parent" value="' + $(this).data('parent') + '"/>');
		$('.form-comment').find('[name="comment"]').focus();
		$('html, body').animate({
			scrollTop: $('.form-comment').offset().top - adminbarHeight - siteheaderHeight
		}, 600)
	});
	if ($('body[data-post-id]').length > 0) {
		$.ajax({
			type: 'POST',
			url: ajax.ajax_url,
			cache: !1,
			data: {
				'action': 'k_update_post_views',
				'post_id': $('body[data-post-id]').data('post-id')
			}
		})
	}
	if ($('#download-loading').length > 0) {
		$.ajax({
			type: 'POST',
			url: ajax.ajax_url,
			data: {
				'action': 'k_get_download',
			},
			success: function(data, textStatus, jqXHR) {
				setTimeout(function() {
					$('#download-loading').after(data);
					$('#download-loading').remove()
				}, 4000)
			},
			error: function(jqXHR, textStatus, errorThrown) {
				alert(errorThrown)
			}
		})
	}
});

function convertToSlug(Text) {
	return Text.toLowerCase().replace(/[^\w ]+/g, '').replace(/ +/g, '-')
}