!function(global, factory) { "use strict"; "object" == typeof module && "object" == typeof module.exports ? module.exports = global.document ? factory(global, !0) : function(w) { if (!w.document) throw Error("jQuery requires a window with a document"); return factory(w); } : factory(global); }("undefined" != typeof window ? window : this, function(window1, noGlobal) { "use strict"; var body, arr = [], getProto = Object.getPrototypeOf, slice = arr.slice, flat = arr.flat ? function(array) { return arr.flat.call(array); } : function(array) { return arr.concat.apply([], array); }, push = arr.push, indexOf = arr.indexOf, class2type = {}, toString = class2type.toString, hasOwn = class2type.hasOwnProperty, fnToString = hasOwn.toString, ObjectFunctionString = fnToString.call(Object), support = {}, isFunction = function(obj) { return "function" == typeof obj && "number" != typeof obj.nodeType; }, isWindow = function(obj) { return null != obj && obj === obj.window; }, document = window1.document, preservedScriptAttributes = { type: !0, src: !0, nonce: !0, noModule: !0 }; function DOMEval(code, node, doc) { var i, val, script = (doc = doc || document).createElement("script"); if (script.text = code, node) for(i in preservedScriptAttributes)(val = node[i] || node.getAttribute && node.getAttribute(i)) && script.setAttribute(i, val); doc.head.appendChild(script).parentNode.removeChild(script); } function toType(obj) { return null == obj ? obj + "" : "object" == typeof obj || "function" == typeof obj ? class2type[toString.call(obj)] || "object" : typeof obj; } var version = "3.5.1", jQuery = function(selector, context) { return new jQuery.fn.init(selector, context); }; function isArrayLike(obj) { var length = !!obj && "length" in obj && obj.length, type = toType(obj); return !(isFunction(obj) || isWindow(obj)) && ("array" === type || 0 === length || "number" == typeof length && length > 0 && length - 1 in obj); } jQuery.fn = jQuery.prototype = { jquery: version, constructor: jQuery, length: 0, toArray: function() { return slice.call(this); }, get: function(num) { return null == num ? slice.call(this) : num < 0 ? this[num + this.length] : this[num]; }, pushStack: function(elems) { var ret = jQuery.merge(this.constructor(), elems); return ret.prevObject = this, ret; }, each: function(callback) { return jQuery.each(this, callback); }, map: function(callback) { return this.pushStack(jQuery.map(this, function(elem, i) { return callback.call(elem, i, elem); })); }, slice: function() { return this.pushStack(slice.apply(this, arguments)); }, first: function() { return this.eq(0); }, last: function() { return this.eq(-1); }, even: function() { return this.pushStack(jQuery.grep(this, function(_elem, i) { return (i + 1) % 2; })); }, odd: function() { return this.pushStack(jQuery.grep(this, function(_elem, i) { return i % 2; })); }, eq: function(i) { var len = this.length, j = +i + (i < 0 ? len : 0); return this.pushStack(j >= 0 && j < len ? [ this[j] ] : []); }, end: function() { return this.prevObject || this.constructor(); }, push: push, sort: arr.sort, splice: arr.splice }, jQuery.extend = jQuery.fn.extend = function() { var options, name, src, copy, copyIsArray, clone, target = arguments[0] || {}, i = 1, length = arguments.length, deep = !1; for("boolean" == typeof target && (deep = target, target = arguments[i] || {}, i++), "object" == typeof target || isFunction(target) || (target = {}), i === length && (target = this, i--); i < length; i++)if (null != (options = arguments[i])) for(name in options)copy = options[name], "__proto__" !== name && target !== copy && (deep && copy && (jQuery.isPlainObject(copy) || (copyIsArray = Array.isArray(copy))) ? (src = target[name], clone = copyIsArray && !Array.isArray(src) ? [] : copyIsArray || jQuery.isPlainObject(src) ? src : {}, copyIsArray = !1, target[name] = jQuery.extend(deep, clone, copy)) : void 0 !== copy && (target[name] = copy)); return target; }, jQuery.extend({ expando: "jQuery" + (version + Math.random()).replace(/\D/g, ""), isReady: !0, error: function(msg) { throw Error(msg); }, noop: function() {}, isPlainObject: function(obj) { var proto, Ctor; return !!obj && "[object Object]" === toString.call(obj) && (!(proto = getProto(obj)) || "function" == typeof (Ctor = hasOwn.call(proto, "constructor") && proto.constructor) && fnToString.call(Ctor) === ObjectFunctionString); }, isEmptyObject: function(obj) { var name; for(name in obj)return !1; return !0; }, globalEval: function(code, options, doc) { DOMEval(code, { nonce: options && options.nonce }, doc); }, each: function(obj, callback) { var length, i = 0; if (isArrayLike(obj)) for(length = obj.length; i < length && !1 !== callback.call(obj[i], i, obj[i]); i++); else for(i in obj)if (!1 === callback.call(obj[i], i, obj[i])) break; return obj; }, makeArray: function(arr, results) { var ret = results || []; return null != arr && (isArrayLike(Object(arr)) ? jQuery.merge(ret, "string" == typeof arr ? [ arr ] : arr) : push.call(ret, arr)), ret; }, inArray: function(elem, arr, i) { return null == arr ? -1 : indexOf.call(arr, elem, i); }, merge: function(first, second) { for(var len = +second.length, j = 0, i = first.length; j < len; j++)first[i++] = second[j]; return first.length = i, first; }, grep: function(elems, callback, invert) { for(var matches = [], i = 0, length = elems.length, callbackExpect = !invert; i < length; i++)!callback(elems[i], i) !== callbackExpect && matches.push(elems[i]); return matches; }, map: function(elems, callback, arg) { var length, value, i = 0, ret = []; if (isArrayLike(elems)) for(length = elems.length; i < length; i++)null != (value = callback(elems[i], i, arg)) && ret.push(value); else for(i in elems)null != (value = callback(elems[i], i, arg)) && ret.push(value); return flat(ret); }, guid: 1, support: support }), "function" == typeof Symbol && (jQuery.fn[Symbol.iterator] = arr[Symbol.iterator]), jQuery.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), function(_i, name) { class2type["[object " + name + "]"] = name.toLowerCase(); }); var Sizzle = function(window1) { var i, support, Expr, getText, isXML, tokenize, compile, select, outermostContext, sortInput, hasDuplicate, setDocument, document, docElem, documentIsHTML, rbuggyQSA, rbuggyMatches, matches, contains, expando = "sizzle" + 1 * new Date(), preferredDoc = window1.document, dirruns = 0, done = 0, classCache = createCache(), tokenCache = createCache(), compilerCache = createCache(), nonnativeSelectorCache = createCache(), sortOrder = function(a, b) { return a === b && (hasDuplicate = !0), 0; }, hasOwn = {}.hasOwnProperty, arr = [], pop = arr.pop, pushNative = arr.push, push = arr.push, slice = arr.slice, indexOf = function(list, elem) { for(var i = 0, len = list.length; i < len; i++)if (list[i] === elem) return i; return -1; }, booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", whitespace = "[\\x20\\t\\r\\n\\f]", identifier = "(?:\\\\[\\da-fA-F]{1,6}" + whitespace + "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+", attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + "*([*^$|!~]?=)" + whitespace + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace + "*\\]", pseudos = ":(" + identifier + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|.*)\\)|)", rwhitespace = RegExp(whitespace + "+", "g"), rtrim = RegExp("^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g"), rcomma = RegExp("^" + whitespace + "*," + whitespace + "*"), rcombinators = RegExp("^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*"), rdescend = RegExp(whitespace + "|>"), rpseudo = new RegExp(pseudos), ridentifier = RegExp("^" + identifier + "$"), matchExpr = { ID: RegExp("^#(" + identifier + ")"), CLASS: RegExp("^\\.(" + identifier + ")"), TAG: RegExp("^(" + identifier + "|[*])"), ATTR: RegExp("^" + attributes), PSEUDO: RegExp("^" + pseudos), CHILD: RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + "*(\\d+)|))" + whitespace + "*\\)|)", "i"), bool: RegExp("^(?:" + booleans + ")$", "i"), needsContext: RegExp("^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i") }, rhtml = /HTML$/i, rinputs = /^(?:input|select|textarea|button)$/i, rheader = /^h\d$/i, rnative = /^[^{]+\{\s*\[native \w/, rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, rsibling = /[+~]/, runescape = RegExp("\\\\[\\da-fA-F]{1,6}" + whitespace + "?|\\\\([^\\r\\n\\f])", "g"), funescape = function(escape, nonHex) { var high = "0x" + escape.slice(1) - 0x10000; return nonHex || (high < 0 ? String.fromCharCode(high + 0x10000) : String.fromCharCode(high >> 10 | 0xD800, 0x3FF & high | 0xDC00)); }, rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, fcssescape = function(ch, asCodePoint) { return asCodePoint ? "\0" === ch ? "\uFFFD" : ch.slice(0, -1) + "\\" + ch.charCodeAt(ch.length - 1).toString(16) + " " : "\\" + ch; }, unloadHandler = function() { setDocument(); }, inDisabledFieldset = addCombinator(function(elem) { return !0 === elem.disabled && "fieldset" === elem.nodeName.toLowerCase(); }, { dir: "parentNode", next: "legend" }); try { push.apply(arr = slice.call(preferredDoc.childNodes), preferredDoc.childNodes), arr[preferredDoc.childNodes.length].nodeType; } catch (e) { push = { apply: arr.length ? function(target, els) { pushNative.apply(target, slice.call(els)); } : function(target, els) { for(var j = target.length, i = 0; target[j++] = els[i++];); target.length = j - 1; } }; } function Sizzle(selector, context, results, seed) { var m, i, elem, nid, match, groups, newSelector, newContext = context && context.ownerDocument, nodeType = context ? context.nodeType : 9; if (results = results || [], "string" != typeof selector || !selector || 1 !== nodeType && 9 !== nodeType && 11 !== nodeType) return results; if (!seed && (setDocument(context), context = context || document, documentIsHTML)) { if (11 !== nodeType && (match = rquickExpr.exec(selector))) { if (m = match[1]) { if (9 === nodeType) { if (!(elem = context.getElementById(m))) return results; if (elem.id === m) return results.push(elem), results; } else if (newContext && (elem = newContext.getElementById(m)) && contains(context, elem) && elem.id === m) return results.push(elem), results; } else if (match[2]) return push.apply(results, context.getElementsByTagName(selector)), results; else if ((m = match[3]) && support.getElementsByClassName && context.getElementsByClassName) return push.apply(results, context.getElementsByClassName(m)), results; } if (support.qsa && !nonnativeSelectorCache[selector + " "] && (!rbuggyQSA || !rbuggyQSA.test(selector)) && (1 !== nodeType || "object" !== context.nodeName.toLowerCase())) { if (newSelector = selector, newContext = context, 1 === nodeType && (rdescend.test(selector) || rcombinators.test(selector))) { for((newContext = rsibling.test(selector) && testContext(context.parentNode) || context) === context && support.scope || ((nid = context.getAttribute("id")) ? nid = nid.replace(rcssescape, fcssescape) : context.setAttribute("id", nid = expando)), i = (groups = tokenize(selector)).length; i--;)groups[i] = (nid ? "#" + nid : ":scope") + " " + toSelector(groups[i]); newSelector = groups.join(","); } try { return push.apply(results, newContext.querySelectorAll(newSelector)), results; } catch (qsaError) { nonnativeSelectorCache(selector, !0); } finally{ nid === expando && context.removeAttribute("id"); } } } return select(selector.replace(rtrim, "$1"), context, results, seed); } function createCache() { var keys = []; return function cache(key, value) { return keys.push(key + " ") > Expr.cacheLength && delete cache[keys.shift()], cache[key + " "] = value; }; } function markFunction(fn) { return fn[expando] = !0, fn; } function assert(fn) { var el = document.createElement("fieldset"); try { return !!fn(el); } catch (e) { return !1; } finally{ el.parentNode && el.parentNode.removeChild(el), el = null; } } function addHandle(attrs, handler) { for(var arr = attrs.split("|"), i = arr.length; i--;)Expr.attrHandle[arr[i]] = handler; } function siblingCheck(a, b) { var cur = b && a, diff = cur && 1 === a.nodeType && 1 === b.nodeType && a.sourceIndex - b.sourceIndex; if (diff) return diff; if (cur) { for(; cur = cur.nextSibling;)if (cur === b) return -1; } return a ? 1 : -1; } function createDisabledPseudo(disabled) { return function(elem) { if ("form" in elem) return elem.parentNode && !1 === elem.disabled ? "label" in elem ? "label" in elem.parentNode ? elem.parentNode.disabled === disabled : elem.disabled === disabled : elem.isDisabled === disabled || !disabled !== elem.isDisabled && inDisabledFieldset(elem) === disabled : elem.disabled === disabled; return "label" in elem && elem.disabled === disabled; }; } function createPositionalPseudo(fn) { return markFunction(function(argument) { return argument = +argument, markFunction(function(seed, matches) { for(var j, matchIndexes = fn([], seed.length, argument), i = matchIndexes.length; i--;)seed[j = matchIndexes[i]] && (seed[j] = !(matches[j] = seed[j])); }); }); } function testContext(context) { return context && void 0 !== context.getElementsByTagName && context; } for(i in support = Sizzle.support = {}, isXML = Sizzle.isXML = function(elem) { var namespace = elem.namespaceURI, docElem = (elem.ownerDocument || elem).documentElement; return !rhtml.test(namespace || docElem && docElem.nodeName || "HTML"); }, setDocument = Sizzle.setDocument = function(node) { var hasCompare, subWindow, doc = node ? node.ownerDocument || node : preferredDoc; return doc != document && 9 === doc.nodeType && doc.documentElement && (docElem = (document = doc).documentElement, documentIsHTML = !isXML(document), preferredDoc != document && (subWindow = document.defaultView) && subWindow.top !== subWindow && (subWindow.addEventListener ? subWindow.addEventListener("unload", unloadHandler, !1) : subWindow.attachEvent && subWindow.attachEvent("onunload", unloadHandler)), support.scope = assert(function(el) { return docElem.appendChild(el).appendChild(document.createElement("div")), void 0 !== el.querySelectorAll && !el.querySelectorAll(":scope fieldset div").length; }), support.attributes = assert(function(el) { return el.className = "i", !el.getAttribute("className"); }), support.getElementsByTagName = assert(function(el) { return el.appendChild(document.createComment("")), !el.getElementsByTagName("*").length; }), support.getElementsByClassName = rnative.test(document.getElementsByClassName), support.getById = assert(function(el) { return docElem.appendChild(el).id = expando, !document.getElementsByName || !document.getElementsByName(expando).length; }), support.getById ? (Expr.filter.ID = function(id) { var attrId = id.replace(runescape, funescape); return function(elem) { return elem.getAttribute("id") === attrId; }; }, Expr.find.ID = function(id, context) { if (void 0 !== context.getElementById && documentIsHTML) { var elem = context.getElementById(id); return elem ? [ elem ] : []; } }) : (Expr.filter.ID = function(id) { var attrId = id.replace(runescape, funescape); return function(elem) { var node = void 0 !== elem.getAttributeNode && elem.getAttributeNode("id"); return node && node.value === attrId; }; }, Expr.find.ID = function(id, context) { if (void 0 !== context.getElementById && documentIsHTML) { var node, i, elems, elem = context.getElementById(id); if (elem) { if ((node = elem.getAttributeNode("id")) && node.value === id) return [ elem ]; for(elems = context.getElementsByName(id), i = 0; elem = elems[i++];)if ((node = elem.getAttributeNode("id")) && node.value === id) return [ elem ]; } return []; } }), Expr.find.TAG = support.getElementsByTagName ? function(tag, context) { return void 0 !== context.getElementsByTagName ? context.getElementsByTagName(tag) : support.qsa ? context.querySelectorAll(tag) : void 0; } : function(tag, context) { var elem, tmp = [], i = 0, results = context.getElementsByTagName(tag); if ("*" === tag) { for(; elem = results[i++];)1 === elem.nodeType && tmp.push(elem); return tmp; } return results; }, Expr.find.CLASS = support.getElementsByClassName && function(className, context) { if (void 0 !== context.getElementsByClassName && documentIsHTML) return context.getElementsByClassName(className); }, rbuggyMatches = [], rbuggyQSA = [], (support.qsa = rnative.test(document.querySelectorAll)) && (assert(function(el) { var input; docElem.appendChild(el).innerHTML = "", el.querySelectorAll("[msallowcapture^='']").length && rbuggyQSA.push("[*^$]=" + whitespace + "*(?:''|\"\")"), el.querySelectorAll("[selected]").length || rbuggyQSA.push("\\[" + whitespace + "*(?:value|" + booleans + ")"), el.querySelectorAll("[id~=" + expando + "-]").length || rbuggyQSA.push("~="), (input = document.createElement("input")).setAttribute("name", ""), el.appendChild(input), el.querySelectorAll("[name='']").length || rbuggyQSA.push("\\[" + whitespace + "*name" + whitespace + "*=" + whitespace + "*(?:''|\"\")"), el.querySelectorAll(":checked").length || rbuggyQSA.push(":checked"), el.querySelectorAll("a#" + expando + "+*").length || rbuggyQSA.push(".#.+[+~]"), el.querySelectorAll("\\\f"), rbuggyQSA.push("[\\r\\n\\f]"); }), assert(function(el) { el.innerHTML = ""; var input = document.createElement("input"); input.setAttribute("type", "hidden"), el.appendChild(input).setAttribute("name", "D"), el.querySelectorAll("[name=d]").length && rbuggyQSA.push("name" + whitespace + "*[*^$|!~]?="), 2 !== el.querySelectorAll(":enabled").length && rbuggyQSA.push(":enabled", ":disabled"), docElem.appendChild(el).disabled = !0, 2 !== el.querySelectorAll(":disabled").length && rbuggyQSA.push(":enabled", ":disabled"), el.querySelectorAll("*,:x"), rbuggyQSA.push(",.*:"); })), (support.matchesSelector = rnative.test(matches = docElem.matches || docElem.webkitMatchesSelector || docElem.mozMatchesSelector || docElem.oMatchesSelector || docElem.msMatchesSelector)) && assert(function(el) { support.disconnectedMatch = matches.call(el, "*"), matches.call(el, "[s!='']:x"), rbuggyMatches.push("!=", pseudos); }), rbuggyQSA = rbuggyQSA.length && new RegExp(rbuggyQSA.join("|")), rbuggyMatches = rbuggyMatches.length && new RegExp(rbuggyMatches.join("|")), contains = (hasCompare = rnative.test(docElem.compareDocumentPosition)) || rnative.test(docElem.contains) ? function(a, b) { var adown = 9 === a.nodeType ? a.documentElement : a, bup = b && b.parentNode; return a === bup || !!(bup && 1 === bup.nodeType && (adown.contains ? adown.contains(bup) : a.compareDocumentPosition && 16 & a.compareDocumentPosition(bup))); } : function(a, b) { if (b) { for(; b = b.parentNode;)if (b === a) return !0; } return !1; }, sortOrder = hasCompare ? function(a, b) { if (a === b) return hasDuplicate = !0, 0; var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; return compare || (1 & (compare = (a.ownerDocument || a) == (b.ownerDocument || b) ? a.compareDocumentPosition(b) : 1) || !support.sortDetached && b.compareDocumentPosition(a) === compare ? a == document || a.ownerDocument == preferredDoc && contains(preferredDoc, a) ? -1 : b == document || b.ownerDocument == preferredDoc && contains(preferredDoc, b) ? 1 : sortInput ? indexOf(sortInput, a) - indexOf(sortInput, b) : 0 : 4 & compare ? -1 : 1); } : function(a, b) { if (a === b) return hasDuplicate = !0, 0; var cur, i = 0, aup = a.parentNode, bup = b.parentNode, ap = [ a ], bp = [ b ]; if (!aup || !bup) return a == document ? -1 : b == document ? 1 : aup ? -1 : bup ? 1 : sortInput ? indexOf(sortInput, a) - indexOf(sortInput, b) : 0; if (aup === bup) return siblingCheck(a, b); for(cur = a; cur = cur.parentNode;)ap.unshift(cur); for(cur = b; cur = cur.parentNode;)bp.unshift(cur); for(; ap[i] === bp[i];)i++; return i ? siblingCheck(ap[i], bp[i]) : ap[i] == preferredDoc ? -1 : bp[i] == preferredDoc ? 1 : 0; }), document; }, Sizzle.matches = function(expr, elements) { return Sizzle(expr, null, null, elements); }, Sizzle.matchesSelector = function(elem, expr) { if (setDocument(elem), support.matchesSelector && documentIsHTML && !nonnativeSelectorCache[expr + " "] && (!rbuggyMatches || !rbuggyMatches.test(expr)) && (!rbuggyQSA || !rbuggyQSA.test(expr))) try { var ret = matches.call(elem, expr); if (ret || support.disconnectedMatch || elem.document && 11 !== elem.document.nodeType) return ret; } catch (e) { nonnativeSelectorCache(expr, !0); } return Sizzle(expr, document, null, [ elem ]).length > 0; }, Sizzle.contains = function(context, elem) { return (context.ownerDocument || context) != document && setDocument(context), contains(context, elem); }, Sizzle.attr = function(elem, name) { (elem.ownerDocument || elem) != document && setDocument(elem); var fn = Expr.attrHandle[name.toLowerCase()], val = fn && hasOwn.call(Expr.attrHandle, name.toLowerCase()) ? fn(elem, name, !documentIsHTML) : void 0; return void 0 !== val ? val : support.attributes || !documentIsHTML ? elem.getAttribute(name) : (val = elem.getAttributeNode(name)) && val.specified ? val.value : null; }, Sizzle.escape = function(sel) { return (sel + "").replace(rcssescape, fcssescape); }, Sizzle.error = function(msg) { throw Error("Syntax error, unrecognized expression: " + msg); }, Sizzle.uniqueSort = function(results) { var elem, duplicates = [], j = 0, i = 0; if (hasDuplicate = !support.detectDuplicates, sortInput = !support.sortStable && results.slice(0), results.sort(sortOrder), hasDuplicate) { for(; elem = results[i++];)elem === results[i] && (j = duplicates.push(i)); for(; j--;)results.splice(duplicates[j], 1); } return sortInput = null, results; }, getText = Sizzle.getText = function(elem) { var node, ret = "", i = 0, nodeType = elem.nodeType; if (nodeType) { if (1 === nodeType || 9 === nodeType || 11 === nodeType) { if ("string" == typeof elem.textContent) return elem.textContent; for(elem = elem.firstChild; elem; elem = elem.nextSibling)ret += getText(elem); } else if (3 === nodeType || 4 === nodeType) return elem.nodeValue; } else for(; node = elem[i++];)ret += getText(node); return ret; }, (Expr = Sizzle.selectors = { cacheLength: 50, createPseudo: markFunction, match: matchExpr, attrHandle: {}, find: {}, relative: { ">": { dir: "parentNode", first: !0 }, " ": { dir: "parentNode" }, "+": { dir: "previousSibling", first: !0 }, "~": { dir: "previousSibling" } }, preFilter: { ATTR: function(match) { return match[1] = match[1].replace(runescape, funescape), match[3] = (match[3] || match[4] || match[5] || "").replace(runescape, funescape), "~=" === match[2] && (match[3] = " " + match[3] + " "), match.slice(0, 4); }, CHILD: function(match) { return match[1] = match[1].toLowerCase(), "nth" === match[1].slice(0, 3) ? (match[3] || Sizzle.error(match[0]), match[4] = +(match[4] ? match[5] + (match[6] || 1) : 2 * ("even" === match[3] || "odd" === match[3])), match[5] = +(match[7] + match[8] || "odd" === match[3])) : match[3] && Sizzle.error(match[0]), match; }, PSEUDO: function(match) { var excess, unquoted = !match[6] && match[2]; return matchExpr.CHILD.test(match[0]) ? null : (match[3] ? match[2] = match[4] || match[5] || "" : unquoted && rpseudo.test(unquoted) && (excess = tokenize(unquoted, !0)) && (excess = unquoted.indexOf(")", unquoted.length - excess) - unquoted.length) && (match[0] = match[0].slice(0, excess), match[2] = unquoted.slice(0, excess)), match.slice(0, 3)); } }, filter: { TAG: function(nodeNameSelector) { var nodeName = nodeNameSelector.replace(runescape, funescape).toLowerCase(); return "*" === nodeNameSelector ? function() { return !0; } : function(elem) { return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; }; }, CLASS: function(className) { var pattern = classCache[className + " "]; return pattern || (pattern = RegExp("(^|" + whitespace + ")" + className + "(" + whitespace + "|$)"), classCache(className, function(elem) { return pattern.test("string" == typeof elem.className && elem.className || void 0 !== elem.getAttribute && elem.getAttribute("class") || ""); })); }, ATTR: function(name, operator, check) { return function(elem) { var result = Sizzle.attr(elem, name); return null == result ? "!=" === operator : !operator || (result += "", "=" === operator ? result === check : "!=" === operator ? result !== check : "^=" === operator ? check && 0 === result.indexOf(check) : "*=" === operator ? check && result.indexOf(check) > -1 : "$=" === operator ? check && result.slice(-check.length) === check : "~=" === operator ? (" " + result.replace(rwhitespace, " ") + " ").indexOf(check) > -1 : "|=" === operator && (result === check || result.slice(0, check.length + 1) === check + "-")); }; }, CHILD: function(type, what, _argument, first, last) { var simple = "nth" !== type.slice(0, 3), forward = "last" !== type.slice(-4), ofType = "of-type" === what; return 1 === first && 0 === last ? function(elem) { return !!elem.parentNode; } : function(elem, _context, xml) { var cache, uniqueCache, outerCache, node, nodeIndex, start, dir = simple !== forward ? "nextSibling" : "previousSibling", parent = elem.parentNode, name = ofType && elem.nodeName.toLowerCase(), useCache = !xml && !ofType, diff = !1; if (parent) { if (simple) { for(; dir;){ for(node = elem; node = node[dir];)if (ofType ? node.nodeName.toLowerCase() === name : 1 === node.nodeType) return !1; start = dir = "only" === type && !start && "nextSibling"; } return !0; } if (start = [ forward ? parent.firstChild : parent.lastChild ], forward && useCache) { for(diff = (nodeIndex = (cache = (uniqueCache = (outerCache = (node = parent)[expando] || (node[expando] = {}))[node.uniqueID] || (outerCache[node.uniqueID] = {}))[type] || [])[0] === dirruns && cache[1]) && cache[2], node = nodeIndex && parent.childNodes[nodeIndex]; node = ++nodeIndex && node && node[dir] || (diff = nodeIndex = 0) || start.pop();)if (1 === node.nodeType && ++diff && node === elem) { uniqueCache[type] = [ dirruns, nodeIndex, diff ]; break; } } else if (useCache && (diff = nodeIndex = (cache = (uniqueCache = (outerCache = (node = elem)[expando] || (node[expando] = {}))[node.uniqueID] || (outerCache[node.uniqueID] = {}))[type] || [])[0] === dirruns && cache[1]), !1 === diff) for(; (node = ++nodeIndex && node && node[dir] || (diff = nodeIndex = 0) || start.pop()) && (!((ofType ? node.nodeName.toLowerCase() === name : 1 === node.nodeType) && ++diff) || (useCache && ((uniqueCache = (outerCache = node[expando] || (node[expando] = {}))[node.uniqueID] || (outerCache[node.uniqueID] = {}))[type] = [ dirruns, diff ]), node !== elem));); return (diff -= last) === first || diff % first == 0 && diff / first >= 0; } }; }, PSEUDO: function(pseudo, argument) { var args, fn = Expr.pseudos[pseudo] || Expr.setFilters[pseudo.toLowerCase()] || Sizzle.error("unsupported pseudo: " + pseudo); return fn[expando] ? fn(argument) : fn.length > 1 ? (args = [ pseudo, pseudo, "", argument ], Expr.setFilters.hasOwnProperty(pseudo.toLowerCase()) ? markFunction(function(seed, matches) { for(var idx, matched = fn(seed, argument), i = matched.length; i--;)idx = indexOf(seed, matched[i]), seed[idx] = !(matches[idx] = matched[i]); }) : function(elem) { return fn(elem, 0, args); }) : fn; } }, pseudos: { not: markFunction(function(selector) { var input = [], results = [], matcher = compile(selector.replace(rtrim, "$1")); return matcher[expando] ? markFunction(function(seed, matches, _context, xml) { for(var elem, unmatched = matcher(seed, null, xml, []), i = seed.length; i--;)(elem = unmatched[i]) && (seed[i] = !(matches[i] = elem)); }) : function(elem, _context, xml) { return input[0] = elem, matcher(input, null, xml, results), input[0] = null, !results.pop(); }; }), has: markFunction(function(selector) { return function(elem) { return Sizzle(selector, elem).length > 0; }; }), contains: markFunction(function(text) { return text = text.replace(runescape, funescape), function(elem) { return (elem.textContent || getText(elem)).indexOf(text) > -1; }; }), lang: markFunction(function(lang) { return ridentifier.test(lang || "") || Sizzle.error("unsupported lang: " + lang), lang = lang.replace(runescape, funescape).toLowerCase(), function(elem) { var elemLang; do if (elemLang = documentIsHTML ? elem.lang : elem.getAttribute("xml:lang") || elem.getAttribute("lang")) return (elemLang = elemLang.toLowerCase()) === lang || 0 === elemLang.indexOf(lang + "-"); while ((elem = elem.parentNode) && 1 === elem.nodeType) return !1; }; }), target: function(elem) { var hash = window1.location && window1.location.hash; return hash && hash.slice(1) === elem.id; }, root: function(elem) { return elem === docElem; }, focus: function(elem) { return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); }, enabled: createDisabledPseudo(!1), disabled: createDisabledPseudo(!0), checked: function(elem) { var nodeName = elem.nodeName.toLowerCase(); return "input" === nodeName && !!elem.checked || "option" === nodeName && !!elem.selected; }, selected: function(elem) { return elem.parentNode && elem.parentNode.selectedIndex, !0 === elem.selected; }, empty: function(elem) { for(elem = elem.firstChild; elem; elem = elem.nextSibling)if (elem.nodeType < 6) return !1; return !0; }, parent: function(elem) { return !Expr.pseudos.empty(elem); }, header: function(elem) { return rheader.test(elem.nodeName); }, input: function(elem) { return rinputs.test(elem.nodeName); }, button: function(elem) { var name = elem.nodeName.toLowerCase(); return "input" === name && "button" === elem.type || "button" === name; }, text: function(elem) { var attr; return "input" === elem.nodeName.toLowerCase() && "text" === elem.type && (null == (attr = elem.getAttribute("type")) || "text" === attr.toLowerCase()); }, first: createPositionalPseudo(function() { return [ 0 ]; }), last: createPositionalPseudo(function(_matchIndexes, length) { return [ length - 1 ]; }), eq: createPositionalPseudo(function(_matchIndexes, length, argument) { return [ argument < 0 ? argument + length : argument ]; }), even: createPositionalPseudo(function(matchIndexes, length) { for(var i = 0; i < length; i += 2)matchIndexes.push(i); return matchIndexes; }), odd: createPositionalPseudo(function(matchIndexes, length) { for(var i = 1; i < length; i += 2)matchIndexes.push(i); return matchIndexes; }), lt: createPositionalPseudo(function(matchIndexes, length, argument) { for(var i = argument < 0 ? argument + length : argument > length ? length : argument; --i >= 0;)matchIndexes.push(i); return matchIndexes; }), gt: createPositionalPseudo(function(matchIndexes, length, argument) { for(var i = argument < 0 ? argument + length : argument; ++i < length;)matchIndexes.push(i); return matchIndexes; }) } }).pseudos.nth = Expr.pseudos.eq, { radio: !0, checkbox: !0, file: !0, password: !0, image: !0 })Expr.pseudos[i] = function(type) { return function(elem) { return "input" === elem.nodeName.toLowerCase() && elem.type === type; }; }(i); for(i in { submit: !0, reset: !0 })Expr.pseudos[i] = function(type) { return function(elem) { var name = elem.nodeName.toLowerCase(); return ("input" === name || "button" === name) && elem.type === type; }; }(i); function setFilters() {} function toSelector(tokens) { for(var i = 0, len = tokens.length, selector = ""; i < len; i++)selector += tokens[i].value; return selector; } function addCombinator(matcher, combinator, base) { var dir = combinator.dir, skip = combinator.next, key = skip || dir, checkNonElements = base && "parentNode" === key, doneName = done++; return combinator.first ? function(elem, context, xml) { for(; elem = elem[dir];)if (1 === elem.nodeType || checkNonElements) return matcher(elem, context, xml); return !1; } : function(elem, context, xml) { var oldCache, uniqueCache, outerCache, newCache = [ dirruns, doneName ]; if (xml) { for(; elem = elem[dir];)if ((1 === elem.nodeType || checkNonElements) && matcher(elem, context, xml)) return !0; } else for(; elem = elem[dir];)if (1 === elem.nodeType || checkNonElements) { if (uniqueCache = (outerCache = elem[expando] || (elem[expando] = {}))[elem.uniqueID] || (outerCache[elem.uniqueID] = {}), skip && skip === elem.nodeName.toLowerCase()) elem = elem[dir] || elem; else if ((oldCache = uniqueCache[key]) && oldCache[0] === dirruns && oldCache[1] === doneName) return newCache[2] = oldCache[2]; else if (uniqueCache[key] = newCache, newCache[2] = matcher(elem, context, xml)) return !0; } return !1; }; } function elementMatcher(matchers) { return matchers.length > 1 ? function(elem, context, xml) { for(var i = matchers.length; i--;)if (!matchers[i](elem, context, xml)) return !1; return !0; } : matchers[0]; } function condense(unmatched, map, filter, context, xml) { for(var elem, newUnmatched = [], i = 0, len = unmatched.length, mapped = null != map; i < len; i++)(elem = unmatched[i]) && (!filter || filter(elem, context, xml)) && (newUnmatched.push(elem), mapped && map.push(i)); return newUnmatched; } return setFilters.prototype = Expr.filters = Expr.pseudos, Expr.setFilters = new setFilters(), tokenize = Sizzle.tokenize = function(selector, parseOnly) { var matched, match, tokens, type, soFar, groups, preFilters, cached = tokenCache[selector + " "]; if (cached) return parseOnly ? 0 : cached.slice(0); for(soFar = selector, groups = [], preFilters = Expr.preFilter; soFar;){ for(type in (!matched || (match = rcomma.exec(soFar))) && (match && (soFar = soFar.slice(match[0].length) || soFar), groups.push(tokens = [])), matched = !1, (match = rcombinators.exec(soFar)) && (matched = match.shift(), tokens.push({ value: matched, type: match[0].replace(rtrim, " ") }), soFar = soFar.slice(matched.length)), Expr.filter)(match = matchExpr[type].exec(soFar)) && (!preFilters[type] || (match = preFilters[type](match))) && (matched = match.shift(), tokens.push({ value: matched, type: type, matches: match }), soFar = soFar.slice(matched.length)); if (!matched) break; } return parseOnly ? soFar.length : soFar ? Sizzle.error(selector) : tokenCache(selector, groups).slice(0); }, compile = Sizzle.compile = function(selector, match) { var bySet, byElement, superMatcher, i, setMatchers = [], elementMatchers = [], cached = compilerCache[selector + " "]; if (!cached) { for(match || (match = tokenize(selector)), i = match.length; i--;)(cached = function matcherFromTokens(tokens) { for(var checkContext, matcher, j, len = tokens.length, leadingRelative = Expr.relative[tokens[0].type], implicitRelative = leadingRelative || Expr.relative[" "], i = leadingRelative ? 1 : 0, matchContext = addCombinator(function(elem) { return elem === checkContext; }, implicitRelative, !0), matchAnyContext = addCombinator(function(elem) { return indexOf(checkContext, elem) > -1; }, implicitRelative, !0), matchers = [ function(elem, context, xml) { var ret = !leadingRelative && (xml || context !== outermostContext) || ((checkContext = context).nodeType ? matchContext(elem, context, xml) : matchAnyContext(elem, context, xml)); return checkContext = null, ret; } ]; i < len; i++)if (matcher = Expr.relative[tokens[i].type]) matchers = [ addCombinator(elementMatcher(matchers), matcher) ]; else { if ((matcher = Expr.filter[tokens[i].type].apply(null, tokens[i].matches))[expando]) { for(j = ++i; j < len && !Expr.relative[tokens[j].type]; j++); return function setMatcher(preFilter, selector, matcher, postFilter, postFinder, postSelector) { return postFilter && !postFilter[expando] && (postFilter = setMatcher(postFilter)), postFinder && !postFinder[expando] && (postFinder = setMatcher(postFinder, postSelector)), markFunction(function(seed, results, context, xml) { var temp, i, elem, preMap = [], postMap = [], preexisting = results.length, elems = seed || function(selector, contexts, results) { for(var i = 0, len = contexts.length; i < len; i++)Sizzle(selector, contexts[i], results); return results; }(selector || "*", context.nodeType ? [ context ] : context, []), matcherIn = preFilter && (seed || !selector) ? condense(elems, preMap, preFilter, context, xml) : elems, matcherOut = matcher ? postFinder || (seed ? preFilter : preexisting || postFilter) ? [] : results : matcherIn; if (matcher && matcher(matcherIn, matcherOut, context, xml), postFilter) for(temp = condense(matcherOut, postMap), postFilter(temp, [], context, xml), i = temp.length; i--;)(elem = temp[i]) && (matcherOut[postMap[i]] = !(matcherIn[postMap[i]] = elem)); if (seed) { if (postFinder || preFilter) { if (postFinder) { for(temp = [], i = matcherOut.length; i--;)(elem = matcherOut[i]) && temp.push(matcherIn[i] = elem); postFinder(null, matcherOut = [], temp, xml); } for(i = matcherOut.length; i--;)(elem = matcherOut[i]) && (temp = postFinder ? indexOf(seed, elem) : preMap[i]) > -1 && (seed[temp] = !(results[temp] = elem)); } } else matcherOut = condense(matcherOut === results ? matcherOut.splice(preexisting, matcherOut.length) : matcherOut), postFinder ? postFinder(null, results, matcherOut, xml) : push.apply(results, matcherOut); }); }(i > 1 && elementMatcher(matchers), i > 1 && toSelector(tokens.slice(0, i - 1).concat({ value: " " === tokens[i - 2].type ? "*" : "" })).replace(rtrim, "$1"), matcher, i < j && matcherFromTokens(tokens.slice(i, j)), j < len && matcherFromTokens(tokens = tokens.slice(j)), j < len && toSelector(tokens)); } matchers.push(matcher); } return elementMatcher(matchers); }(match[i]))[expando] ? setMatchers.push(cached) : elementMatchers.push(cached); (cached = compilerCache(selector, (bySet = setMatchers.length > 0, byElement = elementMatchers.length > 0, superMatcher = function(seed, context, xml, results, outermost) { var elem, j, matcher, matchedCount = 0, i = "0", unmatched = seed && [], setMatched = [], contextBackup = outermostContext, elems = seed || byElement && Expr.find.TAG("*", outermost), dirrunsUnique = dirruns += null == contextBackup ? 1 : Math.random() || 0.1, len = elems.length; for(outermost && (outermostContext = context == document || context || outermost); i !== len && null != (elem = elems[i]); i++){ if (byElement && elem) { for(j = 0, context || elem.ownerDocument == document || (setDocument(elem), xml = !documentIsHTML); matcher = elementMatchers[j++];)if (matcher(elem, context || document, xml)) { results.push(elem); break; } outermost && (dirruns = dirrunsUnique); } bySet && ((elem = !matcher && elem) && matchedCount--, seed && unmatched.push(elem)); } if (matchedCount += i, bySet && i !== matchedCount) { for(j = 0; matcher = setMatchers[j++];)matcher(unmatched, setMatched, context, xml); if (seed) { if (matchedCount > 0) for(; i--;)unmatched[i] || setMatched[i] || (setMatched[i] = pop.call(results)); setMatched = condense(setMatched); } push.apply(results, setMatched), outermost && !seed && setMatched.length > 0 && matchedCount + setMatchers.length > 1 && Sizzle.uniqueSort(results); } return outermost && (dirruns = dirrunsUnique, outermostContext = contextBackup), unmatched; }, bySet ? markFunction(superMatcher) : superMatcher))).selector = selector; } return cached; }, select = Sizzle.select = function(selector, context, results, seed) { var i, tokens, token, type, find, compiled = "function" == typeof selector && selector, match = !seed && tokenize(selector = compiled.selector || selector); if (results = results || [], 1 === match.length) { if ((tokens = match[0] = match[0].slice(0)).length > 2 && "ID" === (token = tokens[0]).type && 9 === context.nodeType && documentIsHTML && Expr.relative[tokens[1].type]) { if (!(context = (Expr.find.ID(token.matches[0].replace(runescape, funescape), context) || [])[0])) return results; compiled && (context = context.parentNode), selector = selector.slice(tokens.shift().value.length); } for(i = matchExpr.needsContext.test(selector) ? 0 : tokens.length; i-- && (token = tokens[i], !Expr.relative[type = token.type]);)if ((find = Expr.find[type]) && (seed = find(token.matches[0].replace(runescape, funescape), rsibling.test(tokens[0].type) && testContext(context.parentNode) || context))) { if (tokens.splice(i, 1), !(selector = seed.length && toSelector(tokens))) return push.apply(results, seed), results; break; } } return (compiled || compile(selector, match))(seed, context, !documentIsHTML, results, !context || rsibling.test(selector) && testContext(context.parentNode) || context), results; }, support.sortStable = expando.split("").sort(sortOrder).join("") === expando, support.detectDuplicates = !!hasDuplicate, setDocument(), support.sortDetached = assert(function(el) { return 1 & el.compareDocumentPosition(document.createElement("fieldset")); }), assert(function(el) { return el.innerHTML = "", "#" === el.firstChild.getAttribute("href"); }) || addHandle("type|href|height|width", function(elem, name, isXML) { if (!isXML) return elem.getAttribute(name, "type" === name.toLowerCase() ? 1 : 2); }), support.attributes && assert(function(el) { return el.innerHTML = "", el.firstChild.setAttribute("value", ""), "" === el.firstChild.getAttribute("value"); }) || addHandle("value", function(elem, _name, isXML) { if (!isXML && "input" === elem.nodeName.toLowerCase()) return elem.defaultValue; }), assert(function(el) { return null == el.getAttribute("disabled"); }) || addHandle(booleans, function(elem, name, isXML) { var val; if (!isXML) return !0 === elem[name] ? name.toLowerCase() : (val = elem.getAttributeNode(name)) && val.specified ? val.value : null; }), Sizzle; }(window1); jQuery.find = Sizzle, jQuery.expr = Sizzle.selectors, jQuery.expr[":"] = jQuery.expr.pseudos, jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort, jQuery.text = Sizzle.getText, jQuery.isXMLDoc = Sizzle.isXML, jQuery.contains = Sizzle.contains, jQuery.escapeSelector = Sizzle.escape; var dir = function(elem, dir, until) { for(var matched = [], truncate = void 0 !== until; (elem = elem[dir]) && 9 !== elem.nodeType;)if (1 === elem.nodeType) { if (truncate && jQuery(elem).is(until)) break; matched.push(elem); } return matched; }, siblings = function(n, elem) { for(var matched = []; n; n = n.nextSibling)1 === n.nodeType && n !== elem && matched.push(n); return matched; }, rneedsContext = jQuery.expr.match.needsContext; function nodeName(elem, name) { return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); } var rsingleTag = /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i; function winnow(elements, qualifier, not) { return isFunction(qualifier) ? jQuery.grep(elements, function(elem, i) { return !!qualifier.call(elem, i, elem) !== not; }) : qualifier.nodeType ? jQuery.grep(elements, function(elem) { return elem === qualifier !== not; }) : "string" != typeof qualifier ? jQuery.grep(elements, function(elem) { return indexOf.call(qualifier, elem) > -1 !== not; }) : jQuery.filter(qualifier, elements, not); } jQuery.filter = function(expr, elems, not) { var elem = elems[0]; return (not && (expr = ":not(" + expr + ")"), 1 === elems.length && 1 === elem.nodeType) ? jQuery.find.matchesSelector(elem, expr) ? [ elem ] : [] : jQuery.find.matches(expr, jQuery.grep(elems, function(elem) { return 1 === elem.nodeType; })); }, jQuery.fn.extend({ find: function(selector) { var i, ret, len = this.length, self = this; if ("string" != typeof selector) return this.pushStack(jQuery(selector).filter(function() { for(i = 0; i < len; i++)if (jQuery.contains(self[i], this)) return !0; })); for(i = 0, ret = this.pushStack([]); i < len; i++)jQuery.find(selector, self[i], ret); return len > 1 ? jQuery.uniqueSort(ret) : ret; }, filter: function(selector) { return this.pushStack(winnow(this, selector || [], !1)); }, not: function(selector) { return this.pushStack(winnow(this, selector || [], !0)); }, is: function(selector) { return !!winnow(this, "string" == typeof selector && rneedsContext.test(selector) ? jQuery(selector) : selector || [], !1).length; } }); var rootjQuery, rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/; (jQuery.fn.init = function(selector, context, root) { var match, elem; if (!selector) return this; if (root = root || rootjQuery, "string" == typeof selector) { if ((match = "<" === selector[0] && ">" === selector[selector.length - 1] && selector.length >= 3 ? [ null, selector, null ] : rquickExpr.exec(selector)) && (match[1] || !context)) { if (!match[1]) return (elem = document.getElementById(match[2])) && (this[0] = elem, this.length = 1), this; if (context = context instanceof jQuery ? context[0] : context, jQuery.merge(this, jQuery.parseHTML(match[1], context && context.nodeType ? context.ownerDocument || context : document, !0)), rsingleTag.test(match[1]) && jQuery.isPlainObject(context)) for(match in context)isFunction(this[match]) ? this[match](context[match]) : this.attr(match, context[match]); return this; } return !context || context.jquery ? (context || root).find(selector) : this.constructor(context).find(selector); } return selector.nodeType ? (this[0] = selector, this.length = 1, this) : isFunction(selector) ? void 0 !== root.ready ? root.ready(selector) : selector(jQuery) : jQuery.makeArray(selector, this); }).prototype = jQuery.fn, rootjQuery = jQuery(document); var rparentsprev = /^(?:parents|prev(?:Until|All))/, guaranteedUnique = { children: !0, contents: !0, next: !0, prev: !0 }; function sibling(cur, dir) { for(; (cur = cur[dir]) && 1 !== cur.nodeType;); return cur; } jQuery.fn.extend({ has: function(target) { var targets = jQuery(target, this), l = targets.length; return this.filter(function() { for(var i = 0; i < l; i++)if (jQuery.contains(this, targets[i])) return !0; }); }, closest: function(selectors, context) { var cur, i = 0, l = this.length, matched = [], targets = "string" != typeof selectors && jQuery(selectors); if (!rneedsContext.test(selectors)) { for(; i < l; i++)for(cur = this[i]; cur && cur !== context; cur = cur.parentNode)if (cur.nodeType < 11 && (targets ? targets.index(cur) > -1 : 1 === cur.nodeType && jQuery.find.matchesSelector(cur, selectors))) { matched.push(cur); break; } } return this.pushStack(matched.length > 1 ? jQuery.uniqueSort(matched) : matched); }, index: function(elem) { return elem ? "string" == typeof elem ? indexOf.call(jQuery(elem), this[0]) : indexOf.call(this, elem.jquery ? elem[0] : elem) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1; }, add: function(selector, context) { return this.pushStack(jQuery.uniqueSort(jQuery.merge(this.get(), jQuery(selector, context)))); }, addBack: function(selector) { return this.add(null == selector ? this.prevObject : this.prevObject.filter(selector)); } }), jQuery.each({ parent: function(elem) { var parent = elem.parentNode; return parent && 11 !== parent.nodeType ? parent : null; }, parents: function(elem) { return dir(elem, "parentNode"); }, parentsUntil: function(elem, _i, until) { return dir(elem, "parentNode", until); }, next: function(elem) { return sibling(elem, "nextSibling"); }, prev: function(elem) { return sibling(elem, "previousSibling"); }, nextAll: function(elem) { return dir(elem, "nextSibling"); }, prevAll: function(elem) { return dir(elem, "previousSibling"); }, nextUntil: function(elem, _i, until) { return dir(elem, "nextSibling", until); }, prevUntil: function(elem, _i, until) { return dir(elem, "previousSibling", until); }, siblings: function(elem) { return siblings((elem.parentNode || {}).firstChild, elem); }, children: function(elem) { return siblings(elem.firstChild); }, contents: function(elem) { return null != elem.contentDocument && getProto(elem.contentDocument) ? elem.contentDocument : (nodeName(elem, "template") && (elem = elem.content || elem), jQuery.merge([], elem.childNodes)); } }, function(name, fn) { jQuery.fn[name] = function(until, selector) { var matched = jQuery.map(this, fn, until); return "Until" !== name.slice(-5) && (selector = until), selector && "string" == typeof selector && (matched = jQuery.filter(selector, matched)), this.length > 1 && (guaranteedUnique[name] || jQuery.uniqueSort(matched), rparentsprev.test(name) && matched.reverse()), this.pushStack(matched); }; }); var rnothtmlwhite = /[^\x20\t\r\n\f]+/g; function Identity(v) { return v; } function Thrower(ex) { throw ex; } function adoptValue(value, resolve, reject, noValue) { var method; try { value && isFunction(method = value.promise) ? method.call(value).done(resolve).fail(reject) : value && isFunction(method = value.then) ? method.call(value, resolve, reject) : resolve.apply(void 0, [ value ].slice(noValue)); } catch (value) { reject.apply(void 0, [ value ]); } } jQuery.Callbacks = function(options) { options = "string" == typeof options ? (options1 = options, object = {}, jQuery.each(options1.match(rnothtmlwhite) || [], function(_, flag) { object[flag] = !0; }), object) : jQuery.extend({}, options); var options1, object, firing, memory, fired, locked, list = [], queue = [], firingIndex = -1, fire = function() { for(locked = locked || options.once, fired = firing = !0; queue.length; firingIndex = -1)for(memory = queue.shift(); ++firingIndex < list.length;)!1 === list[firingIndex].apply(memory[0], memory[1]) && options.stopOnFalse && (firingIndex = list.length, memory = !1); options.memory || (memory = !1), firing = !1, locked && (list = memory ? [] : ""); }, self = { add: function() { return list && (memory && !firing && (firingIndex = list.length - 1, queue.push(memory)), function add(args) { jQuery.each(args, function(_, arg) { isFunction(arg) ? options.unique && self.has(arg) || list.push(arg) : arg && arg.length && "string" !== toType(arg) && add(arg); }); }(arguments), memory && !firing && fire()), this; }, remove: function() { return jQuery.each(arguments, function(_, arg) { for(var index; (index = jQuery.inArray(arg, list, index)) > -1;)list.splice(index, 1), index <= firingIndex && firingIndex--; }), this; }, has: function(fn) { return fn ? jQuery.inArray(fn, list) > -1 : list.length > 0; }, empty: function() { return list && (list = []), this; }, disable: function() { return locked = queue = [], list = memory = "", this; }, disabled: function() { return !list; }, lock: function() { return locked = queue = [], memory || firing || (list = memory = ""), this; }, locked: function() { return !!locked; }, fireWith: function(context, args) { return locked || (args = [ context, (args = args || []).slice ? args.slice() : args ], queue.push(args), firing || fire()), this; }, fire: function() { return self.fireWith(this, arguments), this; }, fired: function() { return !!fired; } }; return self; }, jQuery.extend({ Deferred: function(func) { var tuples = [ [ "notify", "progress", jQuery.Callbacks("memory"), jQuery.Callbacks("memory"), 2 ], [ "resolve", "done", jQuery.Callbacks("once memory"), jQuery.Callbacks("once memory"), 0, "resolved" ], [ "reject", "fail", jQuery.Callbacks("once memory"), jQuery.Callbacks("once memory"), 1, "rejected" ] ], state = "pending", promise = { state: function() { return state; }, always: function() { return deferred.done(arguments).fail(arguments), this; }, catch: function(fn) { return promise.then(null, fn); }, pipe: function() { var fns = arguments; return jQuery.Deferred(function(newDefer) { jQuery.each(tuples, function(_i, tuple) { var fn = isFunction(fns[tuple[4]]) && fns[tuple[4]]; deferred[tuple[1]](function() { var returned = fn && fn.apply(this, arguments); returned && isFunction(returned.promise) ? returned.promise().progress(newDefer.notify).done(newDefer.resolve).fail(newDefer.reject) : newDefer[tuple[0] + "With"](this, fn ? [ returned ] : arguments); }); }), fns = null; }).promise(); }, then: function(onFulfilled, onRejected, onProgress) { var maxDepth = 0; function resolve(depth, deferred, handler, special) { return function() { var that = this, args = arguments, mightThrow = function() { var returned, then; if (!(depth < maxDepth)) { if ((returned = handler.apply(that, args)) === deferred.promise()) throw TypeError("Thenable self-resolution"); isFunction(then = returned && ("object" == typeof returned || "function" == typeof returned) && returned.then) ? special ? then.call(returned, resolve(maxDepth, deferred, Identity, special), resolve(maxDepth, deferred, Thrower, special)) : (maxDepth++, then.call(returned, resolve(maxDepth, deferred, Identity, special), resolve(maxDepth, deferred, Thrower, special), resolve(maxDepth, deferred, Identity, deferred.notifyWith))) : (handler !== Identity && (that = void 0, args = [ returned ]), (special || deferred.resolveWith)(that, args)); } }, process = special ? mightThrow : function() { try { mightThrow(); } catch (e) { jQuery.Deferred.exceptionHook && jQuery.Deferred.exceptionHook(e, process.stackTrace), depth + 1 >= maxDepth && (handler !== Thrower && (that = void 0, args = [ e ]), deferred.rejectWith(that, args)); } }; depth ? process() : (jQuery.Deferred.getStackHook && (process.stackTrace = jQuery.Deferred.getStackHook()), window1.setTimeout(process)); }; } return jQuery.Deferred(function(newDefer) { tuples[0][3].add(resolve(0, newDefer, isFunction(onProgress) ? onProgress : Identity, newDefer.notifyWith)), tuples[1][3].add(resolve(0, newDefer, isFunction(onFulfilled) ? onFulfilled : Identity)), tuples[2][3].add(resolve(0, newDefer, isFunction(onRejected) ? onRejected : Thrower)); }).promise(); }, promise: function(obj) { return null != obj ? jQuery.extend(obj, promise) : promise; } }, deferred = {}; return jQuery.each(tuples, function(i, tuple) { var list = tuple[2], stateString = tuple[5]; promise[tuple[1]] = list.add, stateString && list.add(function() { state = stateString; }, tuples[3 - i][2].disable, tuples[3 - i][3].disable, tuples[0][2].lock, tuples[0][3].lock), list.add(tuple[3].fire), deferred[tuple[0]] = function() { return deferred[tuple[0] + "With"](this === deferred ? void 0 : this, arguments), this; }, deferred[tuple[0] + "With"] = list.fireWith; }), promise.promise(deferred), func && func.call(deferred, deferred), deferred; }, when: function(singleValue) { var remaining = arguments.length, i = remaining, resolveContexts = Array(i), resolveValues = slice.call(arguments), master = jQuery.Deferred(), updateFunc = function(i) { return function(value) { resolveContexts[i] = this, resolveValues[i] = arguments.length > 1 ? slice.call(arguments) : value, --remaining || master.resolveWith(resolveContexts, resolveValues); }; }; if (remaining <= 1 && (adoptValue(singleValue, master.done(updateFunc(i)).resolve, master.reject, !remaining), "pending" === master.state() || isFunction(resolveValues[i] && resolveValues[i].then))) return master.then(); for(; i--;)adoptValue(resolveValues[i], updateFunc(i), master.reject); return master.promise(); } }); var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; jQuery.Deferred.exceptionHook = function(error, stack) { window1.console && window1.console.warn && error && rerrorNames.test(error.name) && window1.console.warn("jQuery.Deferred exception: " + error.message, error.stack, stack); }, jQuery.readyException = function(error) { window1.setTimeout(function() { throw error; }); }; var readyList = jQuery.Deferred(); function completed() { document.removeEventListener("DOMContentLoaded", completed), window1.removeEventListener("load", completed), jQuery.ready(); } jQuery.fn.ready = function(fn) { return readyList.then(fn).catch(function(error) { jQuery.readyException(error); }), this; }, jQuery.extend({ isReady: !1, readyWait: 1, ready: function(wait) { !(!0 === wait ? --jQuery.readyWait : jQuery.isReady) && (jQuery.isReady = !0, !0 !== wait && --jQuery.readyWait > 0 || readyList.resolveWith(document, [ jQuery ])); } }), jQuery.ready.then = readyList.then, "complete" !== document.readyState && ("loading" === document.readyState || document.documentElement.doScroll) ? (document.addEventListener("DOMContentLoaded", completed), window1.addEventListener("load", completed)) : window1.setTimeout(jQuery.ready); var access = function(elems, fn, key, value, chainable, emptyGet, raw) { var i = 0, len = elems.length, bulk = null == key; if ("object" === toType(key)) for(i in chainable = !0, key)access(elems, fn, i, key[i], !0, emptyGet, raw); else if (void 0 !== value && (chainable = !0, isFunction(value) || (raw = !0), bulk && (raw ? (fn.call(elems, value), fn = null) : (bulk = fn, fn = function(elem, _key, value) { return bulk.call(jQuery(elem), value); })), fn)) for(; i < len; i++)fn(elems[i], key, raw ? value : value.call(elems[i], i, fn(elems[i], key))); return chainable ? elems : bulk ? fn.call(elems) : len ? fn(elems[0], key) : emptyGet; }, rmsPrefix = /^-ms-/, rdashAlpha = /-([a-z])/g; function fcamelCase(_all, letter) { return letter.toUpperCase(); } function camelCase(string) { return string.replace(rmsPrefix, "ms-").replace(rdashAlpha, fcamelCase); } var acceptData = function(owner) { return 1 === owner.nodeType || 9 === owner.nodeType || !+owner.nodeType; }; function Data() { this.expando = jQuery.expando + Data.uid++; } Data.uid = 1, Data.prototype = { cache: function(owner) { var value = owner[this.expando]; return !value && (value = {}, acceptData(owner) && (owner.nodeType ? owner[this.expando] = value : Object.defineProperty(owner, this.expando, { value: value, configurable: !0 }))), value; }, set: function(owner, data, value) { var prop, cache = this.cache(owner); if ("string" == typeof data) cache[camelCase(data)] = value; else for(prop in data)cache[camelCase(prop)] = data[prop]; return cache; }, get: function(owner, key) { return void 0 === key ? this.cache(owner) : owner[this.expando] && owner[this.expando][camelCase(key)]; }, access: function(owner, key, value) { return void 0 === key || key && "string" == typeof key && void 0 === value ? this.get(owner, key) : (this.set(owner, key, value), void 0 !== value ? value : key); }, remove: function(owner, key) { var i, cache = owner[this.expando]; if (void 0 !== cache) { if (void 0 !== key) for(i = (key = Array.isArray(key) ? key.map(camelCase) : ((key = camelCase(key)) in cache) ? [ key ] : key.match(rnothtmlwhite) || []).length; i--;)delete cache[key[i]]; (void 0 === key || jQuery.isEmptyObject(cache)) && (owner.nodeType ? owner[this.expando] = void 0 : delete owner[this.expando]); } }, hasData: function(owner) { var cache = owner[this.expando]; return void 0 !== cache && !jQuery.isEmptyObject(cache); } }; var dataPriv = new Data(), dataUser = new Data(), rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, rmultiDash = /[A-Z]/g; function dataAttr(elem, key, data) { var name, data1; if (void 0 === data && 1 === elem.nodeType) { if (name = "data-" + key.replace(rmultiDash, "-$&").toLowerCase(), "string" == typeof (data = elem.getAttribute(name))) { try { data1 = data, data = "true" === data1 || "false" !== data1 && ("null" === data1 ? null : data1 === +data1 + "" ? +data1 : rbrace.test(data1) ? JSON.parse(data1) : data1); } catch (e) {} dataUser.set(elem, key, data); } else data = void 0; } return data; } jQuery.extend({ hasData: function(elem) { return dataUser.hasData(elem) || dataPriv.hasData(elem); }, data: function(elem, name, data) { return dataUser.access(elem, name, data); }, removeData: function(elem, name) { dataUser.remove(elem, name); }, _data: function(elem, name, data) { return dataPriv.access(elem, name, data); }, _removeData: function(elem, name) { dataPriv.remove(elem, name); } }), jQuery.fn.extend({ data: function(key, value) { var i, name, data, elem = this[0], attrs = elem && elem.attributes; if (void 0 === key) { if (this.length && (data = dataUser.get(elem), 1 === elem.nodeType && !dataPriv.get(elem, "hasDataAttrs"))) { for(i = attrs.length; i--;)attrs[i] && 0 === (name = attrs[i].name).indexOf("data-") && dataAttr(elem, name = camelCase(name.slice(5)), data[name]); dataPriv.set(elem, "hasDataAttrs", !0); } return data; } return "object" == typeof key ? this.each(function() { dataUser.set(this, key); }) : access(this, function(value) { var data; if (elem && void 0 === value) return void 0 !== (data = dataUser.get(elem, key)) || void 0 !== (data = dataAttr(elem, key)) ? data : void 0; this.each(function() { dataUser.set(this, key, value); }); }, null, value, arguments.length > 1, null, !0); }, removeData: function(key) { return this.each(function() { dataUser.remove(this, key); }); } }), jQuery.extend({ queue: function(elem, type, data) { var queue; if (elem) return type = (type || "fx") + "queue", queue = dataPriv.get(elem, type), data && (!queue || Array.isArray(data) ? queue = dataPriv.access(elem, type, jQuery.makeArray(data)) : queue.push(data)), queue || []; }, dequeue: function(elem, type) { type = type || "fx"; var queue = jQuery.queue(elem, type), startLength = queue.length, fn = queue.shift(), hooks = jQuery._queueHooks(elem, type); "inprogress" === fn && (fn = queue.shift(), startLength--), fn && ("fx" === type && queue.unshift("inprogress"), delete hooks.stop, fn.call(elem, function() { jQuery.dequeue(elem, type); }, hooks)), !startLength && hooks && hooks.empty.fire(); }, _queueHooks: function(elem, type) { var key = type + "queueHooks"; return dataPriv.get(elem, key) || dataPriv.access(elem, key, { empty: jQuery.Callbacks("once memory").add(function() { dataPriv.remove(elem, [ type + "queue", key ]); }) }); } }), jQuery.fn.extend({ queue: function(type, data) { var setter = 2; return ("string" != typeof type && (data = type, type = "fx", setter--), arguments.length < setter) ? jQuery.queue(this[0], type) : void 0 === data ? this : this.each(function() { var queue = jQuery.queue(this, type, data); jQuery._queueHooks(this, type), "fx" === type && "inprogress" !== queue[0] && jQuery.dequeue(this, type); }); }, dequeue: function(type) { return this.each(function() { jQuery.dequeue(this, type); }); }, clearQueue: function(type) { return this.queue(type || "fx", []); }, promise: function(type, obj) { var tmp, count = 1, defer = jQuery.Deferred(), elements = this, i = this.length, resolve = function() { --count || defer.resolveWith(elements, [ elements ]); }; for("string" != typeof type && (obj = type, type = void 0), type = type || "fx"; i--;)(tmp = dataPriv.get(elements[i], type + "queueHooks")) && tmp.empty && (count++, tmp.empty.add(resolve)); return resolve(), defer.promise(obj); } }); var pnum = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source, rcssNum = RegExp("^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i"), cssExpand = [ "Top", "Right", "Bottom", "Left" ], documentElement = document.documentElement, isAttached = function(elem) { return jQuery.contains(elem.ownerDocument, elem); }, composed = { composed: !0 }; documentElement.getRootNode && (isAttached = function(elem) { return jQuery.contains(elem.ownerDocument, elem) || elem.getRootNode(composed) === elem.ownerDocument; }); var isHiddenWithinTree = function(elem, el) { return "none" === (elem = el || elem).style.display || "" === elem.style.display && isAttached(elem) && "none" === jQuery.css(elem, "display"); }; function adjustCSS(elem, prop, valueParts, tween) { var adjusted, scale, maxIterations = 20, currentValue = tween ? function() { return tween.cur(); } : function() { return jQuery.css(elem, prop, ""); }, initial = currentValue(), unit = valueParts && valueParts[3] || (jQuery.cssNumber[prop] ? "" : "px"), initialInUnit = elem.nodeType && (jQuery.cssNumber[prop] || "px" !== unit && +initial) && rcssNum.exec(jQuery.css(elem, prop)); if (initialInUnit && initialInUnit[3] !== unit) { for(initial /= 2, unit = unit || initialInUnit[3], initialInUnit = +initial || 1; maxIterations--;)jQuery.style(elem, prop, initialInUnit + unit), (1 - scale) * (1 - (scale = currentValue() / initial || 0.5)) <= 0 && (maxIterations = 0), initialInUnit /= scale; initialInUnit *= 2, jQuery.style(elem, prop, initialInUnit + unit), valueParts = valueParts || []; } return valueParts && (initialInUnit = +initialInUnit || +initial || 0, adjusted = valueParts[1] ? initialInUnit + (valueParts[1] + 1) * valueParts[2] : +valueParts[2], tween && (tween.unit = unit, tween.start = initialInUnit, tween.end = adjusted)), adjusted; } var defaultDisplayMap = {}; function showHide(elements, show) { for(var display, elem, values = [], index = 0, length = elements.length; index < length; index++)(elem = elements[index]).style && (display = elem.style.display, show ? ("none" !== display || (values[index] = dataPriv.get(elem, "display") || null, values[index] || (elem.style.display = "")), "" === elem.style.display && isHiddenWithinTree(elem) && (values[index] = function(elem) { var temp, doc = elem.ownerDocument, nodeName = elem.nodeName, display = defaultDisplayMap[nodeName]; return display || (temp = doc.body.appendChild(doc.createElement(nodeName)), display = jQuery.css(temp, "display"), temp.parentNode.removeChild(temp), "none" === display && (display = "block"), defaultDisplayMap[nodeName] = display), display; }(elem))) : "none" !== display && (values[index] = "none", dataPriv.set(elem, "display", display))); for(index = 0; index < length; index++)null != values[index] && (elements[index].style.display = values[index]); return elements; } jQuery.fn.extend({ show: function() { return showHide(this, !0); }, hide: function() { return showHide(this); }, toggle: function(state) { return "boolean" == typeof state ? state ? this.show() : this.hide() : this.each(function() { isHiddenWithinTree(this) ? jQuery(this).show() : jQuery(this).hide(); }); } }); var rcheckableType = /^(?:checkbox|radio)$/i, rtagName = /<([a-z][^\/\0>\x20\t\r\n\f]*)/i, rscriptType = /^$|^module$|\/(?:java|ecma)script/i; div = document.createDocumentFragment().appendChild(document.createElement("div")), (input = document.createElement("input")).setAttribute("type", "radio"), input.setAttribute("checked", "checked"), input.setAttribute("name", "t"), div.appendChild(input), support.checkClone = div.cloneNode(!0).cloneNode(!0).lastChild.checked, div.innerHTML = "", support.noCloneChecked = !!div.cloneNode(!0).lastChild.defaultValue, div.innerHTML = "", support.option = !!div.lastChild; var wrapMap = { thead: [ 1, "