{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/jquery/dist/jquery.js","webpack:///./app/frontend/packs/recruit.ts","webpack:///./app/frontend/pages/recruit.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","webpackPolyfill","deprecate","paths","children","global","factory","_typeof","iterator","obj","constructor","window","this","noGlobal","deletedIds","document","_slice","slice","concat","push","indexOf","class2type","toString","hasOwn","support","jQuery","selector","context","fn","init","rtrim","rmsPrefix","rdashAlpha","fcamelCase","all","letter","toUpperCase","isArrayLike","length","type","isWindow","jquery","toArray","num","pushStack","elems","ret","merge","prevObject","each","callback","map","elem","apply","arguments","first","eq","last","len","j","end","sort","splice","extend","src","copyIsArray","copy","options","clone","target","deep","isFunction","isPlainObject","isArray","undefined","expando","Math","random","replace","isReady","error","msg","Error","noop","Array","isNumeric","realStringObj","parseFloat","isEmptyObject","nodeType","e","ownFirst","globalEval","data","trim","execScript","camelCase","string","nodeName","toLowerCase","text","makeArray","arr","results","inArray","max","second","grep","invert","matches","callbackExpect","arg","guid","proxy","args","tmp","now","Date","split","Sizzle","Expr","getText","isXML","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","contains","preferredDoc","dirruns","done","classCache","createCache","tokenCache","compilerCache","sortOrder","a","b","pop","push_native","list","booleans","whitespace","identifier","attributes","pseudos","rwhitespace","RegExp","rcomma","rcombinators","rattributeQuotes","rpseudo","ridentifier","matchExpr","rinputs","rheader","rnative","rquickExpr","rsibling","rescape","runescape","funescape","_","escaped","escapedWhitespace","high","String","fromCharCode","unloadHandler","childNodes","els","seed","nid","nidselect","match","groups","newSelector","newContext","ownerDocument","exec","getElementById","id","getElementsByTagName","getElementsByClassName","qsa","test","getAttribute","setAttribute","toSelector","join","testContext","parentNode","querySelectorAll","qsaError","removeAttribute","keys","cache","cacheLength","shift","markFunction","assert","div","createElement","removeChild","addHandle","attrs","handler","attrHandle","siblingCheck","cur","diff","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createPositionalPseudo","argument","matchIndexes","documentElement","node","hasCompare","parent","doc","defaultView","top","addEventListener","attachEvent","className","appendChild","createComment","getById","getElementsByName","find","filter","attrId","getAttributeNode","tag","innerHTML","input","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","unshift","expr","elements","attr","val","specified","uniqueSort","duplicates","detectDuplicates","sortStable","textContent","firstChild","nodeValue","selectors","createPseudo","relative","dir","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","result","what","simple","forward","ofType","xml","uniqueCache","outerCache","nodeIndex","start","useCache","lastChild","uniqueID","pseudo","setFilters","idx","matched","matcher","unmatched","innerText","lang","elemLang","hash","location","activeElement","hasFocus","href","tabIndex","disabled","checked","selected","selectedIndex","radio","checkbox","file","password","image","submit","reset","tokens","addCombinator","combinator","base","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","contexts","multipleContexts","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","filters","parseOnly","soFar","preFilters","cached","setMatchers","elementMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","matcherFromGroupMatchers","token","compiled","div1","defaultValue","unique","isXMLDoc","_dir","until","truncate","is","_siblings","rneedsContext","needsContext","rsingleTag","risSimple","winnow","qualifier","not","self","rootjQuery","root","charAt","parseHTML","ready","rparentsprev","guaranteedUnique","contents","next","prev","sibling","has","targets","closest","pos","index","prevAll","add","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","siblings","contentDocument","contentWindow","reverse","readyList","rnotwhite","detach","removeEventListener","completed","detachEvent","event","readyState","Callbacks","flag","createOptions","firing","memory","_fired","_locked","queue","firingIndex","fire","once","stopOnFalse","remove","empty","disable","lock","locked","fireWith","fired","Deferred","func","tuples","_state","_promise","state","always","deferred","fail","then","fns","newDefer","tuple","returned","promise","progress","notify","resolve","reject","pipe","stateString","when","subordinate","progressValues","progressContexts","resolveContexts","resolveValues","remaining","updateFunc","values","notifyWith","resolveWith","readyWait","holdReady","hold","wait","triggerHandler","off","doScroll","setTimeout","frameElement","doScrollCheck","inlineBlockNeedsLayout","body","container","style","cssText","zoom","offsetWidth","deleteExpando","shrinkWrapBlocksVal","acceptData","noData","rbrace","rmultiDash","dataAttr","parseJSON","isEmptyDataObject","internalData","pvt","thisCache","internalKey","isNode","toJSON","internalRemoveData","cleanData","hasData","_data","removeData","_removeData","dequeue","startLength","hooks","_queueHooks","stop","setter","clearQueue","count","defer","shrinkWrapBlocks","width","pnum","source","rcssNum","cssExpand","isHidden","el","css","adjustCSS","prop","valueParts","tween","adjusted","scale","maxIterations","currentValue","initial","unit","cssNumber","initialInUnit","fragment","access","chainable","emptyGet","raw","bulk","rcheckableType","rtagName","rscriptType","rleadingWhitespace","nodeNames","createSafeFragment","safeFrag","createDocumentFragment","leadingWhitespace","tbody","htmlSerialize","html5Clone","cloneNode","outerHTML","appendChecked","noCloneChecked","checkClone","noCloneEvent","wrapMap","option","legend","area","param","thead","tr","col","td","_default","getAll","found","setGlobalEval","refElements","optgroup","tfoot","colgroup","caption","th","rhtml","rtbody","fixDefaultChecked","defaultChecked","buildFragment","scripts","selection","ignored","wrap","safe","nodes","htmlPrefilter","createTextNode","eventName","change","focusin","rformElems","rkeyEvent","rmouseEvent","rfocusMorph","rtypenamespace","returnTrue","returnFalse","safeActiveElement","err","_on","types","one","origFn","events","handleObjIn","special","eventHandle","handleObj","handlers","namespaces","origType","elemData","handle","triggered","dispatch","delegateType","bindType","namespace","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","trigger","onlyHandlers","ontype","bubbleType","eventPath","Event","isTrigger","rnamespace","noBubble","parentWindow","isPropagationStopped","preventDefault","isDefaultPrevented","fix","handlerQueue","delegateTarget","preDispatch","currentTarget","isImmediatePropagationStopped","stopPropagation","postDispatch","_handlers","sel","isNaN","button","originalEvent","fixHook","fixHooks","mouseHooks","keyHooks","props","srcElement","metaKey","original","which","charCode","keyCode","eventDoc","fromElement","pageX","clientX","scrollLeft","clientLeft","pageY","clientY","scrollTop","clientTop","relatedTarget","toElement","load","focus","blur","click","beforeunload","returnValue","simulate","isSimulated","defaultPrevented","timeStamp","cancelBubble","stopImmediatePropagation","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","form","_submitBubble","propertyName","_justChanged","attaches","on","rinlinejQuery","rnoshimcache","rxhtmlTag","rnoInnerhtml","rchecked","rscriptTypeMasked","rcleanScript","fragmentDiv","manipulationTarget","content","disableScript","restoreScript","cloneCopyEvent","dest","oldData","curData","fixCloneNodeIssues","defaultSelected","domManip","collection","hasScripts","iNoClone","html","_evalUrl","_remove","keepData","dataAndEvents","deepDataAndEvents","destElements","srcElements","inPage","forceAcceptData","append","prepend","insertBefore","before","after","replaceWith","replaceChild","appendTo","prependTo","insertAfter","replaceAll","insert","iframe","elemdisplay","HTML","BODY","actualDisplay","display","defaultDisplay","write","close","rmargin","rnumnonpx","swap","old","pixelPositionVal","pixelMarginRightVal","boxSizingReliableVal","reliableHiddenOffsetsVal","reliableMarginRightVal","reliableMarginLeftVal","computeStyleTests","divStyle","getComputedStyle","marginLeft","marginRight","getClientRects","borderCollapse","offsetHeight","opacity","cssFloat","backgroundClip","clearCloneStyle","boxSizing","MozBoxSizing","WebkitBoxSizing","reliableHiddenOffsets","boxSizingReliable","pixelMarginRight","pixelPosition","reliableMarginRight","reliableMarginLeft","getStyles","curCSS","rposition","addGetHookIf","conditionFn","hookFn","view","opener","computed","minWidth","maxWidth","getPropertyValue","currentStyle","left","rs","rsLeft","runtimeStyle","pixelLeft","ralpha","ropacity","rdisplayswap","rnumsplit","cssShow","position","visibility","cssNormalTransform","letterSpacing","fontWeight","cssPrefixes","emptyStyle","vendorPropName","capName","showHide","show","hidden","setPositiveNumber","subtract","augmentWidthOrHeight","extra","isBorderBox","styles","getWidthOrHeight","valueIsBorderBox","Tween","easing","cssHooks","cssProps","origName","set","isFinite","$1","getBoundingClientRect","margin","padding","border","prefix","suffix","expand","expanded","parts","hide","toggle","propHooks","run","percent","eased","duration","step","fx","linear","swing","cos","PI","fxNow","timerId","rfxtypes","rrun","createFxNow","genFx","includeWidth","height","createTween","animation","Animation","tweeners","properties","stopped","prefilters","tick","currentTime","startTime","tweens","opts","specialEasing","originalProperties","originalOptions","gotoEnd","rejectWith","propFilter","timer","anim","complete","tweener","oldfire","dataShow","unqueued","overflow","overflowX","overflowY","prefilter","speed","opt","speeds","fadeTo","to","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","interval","setInterval","clearInterval","slow","fast","delay","time","timeout","clearTimeout","getSetAttribute","hrefNormalized","checkOn","optSelected","enctype","optDisabled","radioValue","rreturn","rspaces","valHooks","optionSet","scrollHeight","nodeHook","boolHook","ruseDefault","getSetInput","removeAttr","nType","attrHooks","bool","propName","attrNames","propFix","setAttributeNode","createAttribute","coords","contenteditable","rfocusable","rclickable","removeProp","tabindex","parseInt","rclass","getClass","addClass","classes","curValue","clazz","finalValue","removeClass","toggleClass","stateVal","classNames","hasClass","hover","fnOver","fnOut","nonce","rquery","rvalidtokens","JSON","parse","requireNonComma","depth","str","comma","open","Function","parseXML","DOMParser","parseFromString","ActiveXObject","async","loadXML","rhash","rts","rheaders","rnoContent","rprotocol","rurl","transports","allTypes","ajaxLocation","ajaxLocParts","addToPrefiltersOrTransports","structure","dataTypeExpression","dataType","dataTypes","inspectPrefiltersOrTransports","jqXHR","inspected","seekingTransport","inspect","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","getDisplay","active","lastModified","etag","url","isLocal","processData","contentType","accepts","json","responseFields","converters","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","cacheURL","responseHeadersString","timeoutTimer","fireGlobals","transport","responseHeaders","callbackContext","globalEventContext","completeDeferred","_statusCode","statusCode","requestHeaders","requestHeadersNames","strAbort","getResponseHeader","getAllResponseHeaders","setRequestHeader","lname","overrideMimeType","mimeType","code","status","abort","statusText","finalText","success","method","crossDomain","traditional","hasContent","ifModified","headers","beforeSend","send","nativeStatusText","responses","isSuccess","response","modified","firstDataType","ct","finalDataType","ajaxHandleResponses","conv2","current","conv","dataFilter","ajaxConvert","getJSON","getScript","wrapAll","wrapInner","unwrap","filterHidden","visible","r20","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","v","encodeURIComponent","serialize","serializeArray","xhr","createActiveXHR","documentMode","createStandardXHR","xhrId","xhrCallbacks","xhrSupported","XMLHttpRequest","cors","_callback","username","xhrFields","isAbort","onreadystatechange","responseText","script","head","scriptCharset","charset","onload","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","keepScripts","parsed","_load","getWindow","params","animated","offset","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","curElem","using","win","box","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","unbind","delegate","undelegate","size","andSelf","_jQuery","_$","$","noConflict","w"],"mappings":"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","file":"js/recruit-38fddd1b248ade2c7c0d.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 447);\n","module.exports = function (module) {\n if (!module.webpackPolyfill) {\n module.deprecate = function () {};\n\n module.paths = []; // module.parent = undefined by default\n\n if (!module.children) module.children = [];\n Object.defineProperty(module, \"loaded\", {\n enumerable: true,\n get: function get() {\n return module.l;\n }\n });\n Object.defineProperty(module, \"id\", {\n enumerable: true,\n get: function get() {\n return module.i;\n }\n });\n module.webpackPolyfill = 1;\n }\n\n return module;\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*!\n * jQuery JavaScript Library v1.12.4\n * http://jquery.com/\n *\n * Includes Sizzle.js\n * http://sizzlejs.com/\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2016-05-20T17:17Z\n */\n(function (global, factory) {\n if ((typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) === \"object\" && _typeof(module.exports) === \"object\") {\n // For CommonJS and CommonJS-like environments where a proper `window`\n // is present, execute the factory and get jQuery.\n // For environments that do not have a `window` with a `document`\n // (such as Node.js), expose a factory as module.exports.\n // This accentuates the need for the creation of a real `window`.\n // e.g. var jQuery = require(\"jquery\")(window);\n // See ticket #14549 for more info.\n module.exports = global.document ? factory(global, true) : function (w) {\n if (!w.document) {\n throw new Error(\"jQuery requires a window with a document\");\n }\n\n return factory(w);\n };\n } else {\n factory(global);\n } // Pass this if window is not defined yet\n\n})(typeof window !== \"undefined\" ? window : this, function (window, noGlobal) {\n // Support: Firefox 18+\n // Can't be in strict mode, several libs including ASP.NET trace\n // the stack via arguments.caller.callee and Firefox dies if\n // you try to trace through \"use strict\" call chains. (#13335)\n //\"use strict\";\n var deletedIds = [];\n var document = window.document;\n var _slice = deletedIds.slice;\n var concat = deletedIds.concat;\n var push = deletedIds.push;\n var indexOf = deletedIds.indexOf;\n var class2type = {};\n var toString = class2type.toString;\n var hasOwn = class2type.hasOwnProperty;\n var support = {};\n\n var version = \"1.12.4\",\n // Define a local copy of jQuery\n jQuery = function jQuery(selector, context) {\n // The jQuery object is actually just the init constructor 'enhanced'\n // Need init if jQuery is called (just allow error to be thrown if not included)\n return new jQuery.fn.init(selector, context);\n },\n // Support: Android<4.1, IE<9\n // Make sure we trim BOM and NBSP\n rtrim = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g,\n // Matches dashed string for camelizing\n rmsPrefix = /^-ms-/,\n rdashAlpha = /-([\\da-z])/gi,\n // Used by jQuery.camelCase as callback to replace()\n fcamelCase = function fcamelCase(all, letter) {\n return letter.toUpperCase();\n };\n\n jQuery.fn = jQuery.prototype = {\n // The current version of jQuery being used\n jquery: version,\n constructor: jQuery,\n // Start with an empty selector\n selector: \"\",\n // The default length of a jQuery object is 0\n length: 0,\n toArray: function toArray() {\n return _slice.call(this);\n },\n // Get the Nth element in the matched element set OR\n // Get the whole matched element set as a clean array\n get: function get(num) {\n return num != null ? // Return just the one element from the set\n num < 0 ? this[num + this.length] : this[num] : // Return all the elements in a clean array\n _slice.call(this);\n },\n // Take an array of elements and push it onto the stack\n // (returning the new matched element set)\n pushStack: function pushStack(elems) {\n // Build a new jQuery matched element set\n var ret = jQuery.merge(this.constructor(), elems); // Add the old object onto the stack (as a reference)\n\n ret.prevObject = this;\n ret.context = this.context; // Return the newly-formed element set\n\n return ret;\n },\n // Execute a callback for every element in the matched set.\n each: function each(callback) {\n return jQuery.each(this, callback);\n },\n map: function map(callback) {\n return this.pushStack(jQuery.map(this, function (elem, i) {\n return callback.call(elem, i, elem);\n }));\n },\n slice: function slice() {\n return this.pushStack(_slice.apply(this, arguments));\n },\n first: function first() {\n return this.eq(0);\n },\n last: function last() {\n return this.eq(-1);\n },\n eq: function eq(i) {\n var len = this.length,\n j = +i + (i < 0 ? len : 0);\n return this.pushStack(j >= 0 && j < len ? [this[j]] : []);\n },\n end: function end() {\n return this.prevObject || this.constructor();\n },\n // For internal use only.\n // Behaves like an Array's method, not like a jQuery method.\n push: push,\n sort: deletedIds.sort,\n splice: deletedIds.splice\n };\n\n jQuery.extend = jQuery.fn.extend = function () {\n var src,\n copyIsArray,\n copy,\n name,\n options,\n clone,\n target = arguments[0] || {},\n i = 1,\n length = arguments.length,\n deep = false; // Handle a deep copy situation\n\n if (typeof target === \"boolean\") {\n deep = target; // skip the boolean and the target\n\n target = arguments[i] || {};\n i++;\n } // Handle case when target is a string or something (possible in deep copy)\n\n\n if (_typeof(target) !== \"object\" && !jQuery.isFunction(target)) {\n target = {};\n } // extend jQuery itself if only one argument is passed\n\n\n if (i === length) {\n target = this;\n i--;\n }\n\n for (; i < length; i++) {\n // Only deal with non-null/undefined values\n if ((options = arguments[i]) != null) {\n // Extend the base object\n for (name in options) {\n src = target[name];\n copy = options[name]; // Prevent never-ending loop\n\n if (target === copy) {\n continue;\n } // Recurse if we're merging plain objects or arrays\n\n\n if (deep && copy && (jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)))) {\n if (copyIsArray) {\n copyIsArray = false;\n clone = src && jQuery.isArray(src) ? src : [];\n } else {\n clone = src && jQuery.isPlainObject(src) ? src : {};\n } // Never move original objects, clone them\n\n\n target[name] = jQuery.extend(deep, clone, copy); // Don't bring in undefined values\n } else if (copy !== undefined) {\n target[name] = copy;\n }\n }\n }\n } // Return the modified object\n\n\n return target;\n };\n\n jQuery.extend({\n // Unique for each copy of jQuery on the page\n expando: \"jQuery\" + (version + Math.random()).replace(/\\D/g, \"\"),\n // Assume jQuery is ready without the ready module\n isReady: true,\n error: function error(msg) {\n throw new Error(msg);\n },\n noop: function noop() {},\n // See test/unit/core.js for details concerning isFunction.\n // Since version 1.3, DOM methods and functions like alert\n // aren't supported. They return false on IE (#2968).\n isFunction: function isFunction(obj) {\n return jQuery.type(obj) === \"function\";\n },\n isArray: Array.isArray || function (obj) {\n return jQuery.type(obj) === \"array\";\n },\n isWindow: function isWindow(obj) {\n /* jshint eqeqeq: false */\n return obj != null && obj == obj.window;\n },\n isNumeric: function isNumeric(obj) {\n // parseFloat NaNs numeric-cast false positives (null|true|false|\"\")\n // ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\n // subtraction forces infinities to NaN\n // adding 1 corrects loss of precision from parseFloat (#15100)\n var realStringObj = obj && obj.toString();\n return !jQuery.isArray(obj) && realStringObj - parseFloat(realStringObj) + 1 >= 0;\n },\n isEmptyObject: function isEmptyObject(obj) {\n var name;\n\n for (name in obj) {\n return false;\n }\n\n return true;\n },\n isPlainObject: function isPlainObject(obj) {\n var key; // Must be an Object.\n // Because of IE, we also have to check the presence of the constructor property.\n // Make sure that DOM nodes and window objects don't pass through, as well\n\n if (!obj || jQuery.type(obj) !== \"object\" || obj.nodeType || jQuery.isWindow(obj)) {\n return false;\n }\n\n try {\n // Not own constructor property must be Object\n if (obj.constructor && !hasOwn.call(obj, \"constructor\") && !hasOwn.call(obj.constructor.prototype, \"isPrototypeOf\")) {\n return false;\n }\n } catch (e) {\n // IE8,9 Will throw exceptions on certain host objects #9897\n return false;\n } // Support: IE<9\n // Handle iteration over inherited properties before own properties.\n\n\n if (!support.ownFirst) {\n for (key in obj) {\n return hasOwn.call(obj, key);\n }\n } // Own properties are enumerated firstly, so to speed up,\n // if last one is own, then all properties are own.\n\n\n for (key in obj) {}\n\n return key === undefined || hasOwn.call(obj, key);\n },\n type: function type(obj) {\n if (obj == null) {\n return obj + \"\";\n }\n\n return _typeof(obj) === \"object\" || typeof obj === \"function\" ? class2type[toString.call(obj)] || \"object\" : _typeof(obj);\n },\n // Workarounds based on findings by Jim Driscoll\n // http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context\n globalEval: function globalEval(data) {\n if (data && jQuery.trim(data)) {\n // We use execScript on Internet Explorer\n // We use an anonymous function so that context is window\n // rather than jQuery in Firefox\n (window.execScript || function (data) {\n window[\"eval\"].call(window, data); // jscs:ignore requireDotNotation\n })(data);\n }\n },\n // Convert dashed to camelCase; used by the css and data modules\n // Microsoft forgot to hump their vendor prefix (#9572)\n camelCase: function camelCase(string) {\n return string.replace(rmsPrefix, \"ms-\").replace(rdashAlpha, fcamelCase);\n },\n nodeName: function nodeName(elem, name) {\n return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n },\n each: function each(obj, callback) {\n var length,\n i = 0;\n\n if (isArrayLike(obj)) {\n length = obj.length;\n\n for (; i < length; i++) {\n if (callback.call(obj[i], i, obj[i]) === false) {\n break;\n }\n }\n } else {\n for (i in obj) {\n if (callback.call(obj[i], i, obj[i]) === false) {\n break;\n }\n }\n }\n\n return obj;\n },\n // Support: Android<4.1, IE<9\n trim: function trim(text) {\n return text == null ? \"\" : (text + \"\").replace(rtrim, \"\");\n },\n // results is for internal usage only\n makeArray: function makeArray(arr, results) {\n var ret = results || [];\n\n if (arr != null) {\n if (isArrayLike(Object(arr))) {\n jQuery.merge(ret, typeof arr === \"string\" ? [arr] : arr);\n } else {\n push.call(ret, arr);\n }\n }\n\n return ret;\n },\n inArray: function inArray(elem, arr, i) {\n var len;\n\n if (arr) {\n if (indexOf) {\n return indexOf.call(arr, elem, i);\n }\n\n len = arr.length;\n i = i ? i < 0 ? Math.max(0, len + i) : i : 0;\n\n for (; i < len; i++) {\n // Skip accessing in sparse arrays\n if (i in arr && arr[i] === elem) {\n return i;\n }\n }\n }\n\n return -1;\n },\n merge: function merge(first, second) {\n var len = +second.length,\n j = 0,\n i = first.length;\n\n while (j < len) {\n first[i++] = second[j++];\n } // Support: IE<9\n // Workaround casting of .length to NaN on otherwise arraylike objects (e.g., NodeLists)\n\n\n if (len !== len) {\n while (second[j] !== undefined) {\n first[i++] = second[j++];\n }\n }\n\n first.length = i;\n return first;\n },\n grep: function grep(elems, callback, invert) {\n var callbackInverse,\n matches = [],\n i = 0,\n length = elems.length,\n callbackExpect = !invert; // Go through the array, only saving the items\n // that pass the validator function\n\n for (; i < length; i++) {\n callbackInverse = !callback(elems[i], i);\n\n if (callbackInverse !== callbackExpect) {\n matches.push(elems[i]);\n }\n }\n\n return matches;\n },\n // arg is for internal usage only\n map: function map(elems, callback, arg) {\n var length,\n value,\n i = 0,\n ret = []; // Go through the array, translating each of the items to their new values\n\n if (isArrayLike(elems)) {\n length = elems.length;\n\n for (; i < length; i++) {\n value = callback(elems[i], i, arg);\n\n if (value != null) {\n ret.push(value);\n }\n } // Go through every key on the object,\n\n } else {\n for (i in elems) {\n value = callback(elems[i], i, arg);\n\n if (value != null) {\n ret.push(value);\n }\n }\n } // Flatten any nested arrays\n\n\n return concat.apply([], ret);\n },\n // A global GUID counter for objects\n guid: 1,\n // Bind a function to a context, optionally partially applying any\n // arguments.\n proxy: function proxy(fn, context) {\n var args, proxy, tmp;\n\n if (typeof context === \"string\") {\n tmp = fn[context];\n context = fn;\n fn = tmp;\n } // Quick check to determine if target is callable, in the spec\n // this throws a TypeError, but we will just return undefined.\n\n\n if (!jQuery.isFunction(fn)) {\n return undefined;\n } // Simulated bind\n\n\n args = _slice.call(arguments, 2);\n\n proxy = function proxy() {\n return fn.apply(context || this, args.concat(_slice.call(arguments)));\n }; // Set the guid of unique handler to the same of original handler, so it can be removed\n\n\n proxy.guid = fn.guid = fn.guid || jQuery.guid++;\n return proxy;\n },\n now: function now() {\n return +new Date();\n },\n // jQuery.support is not used in Core but other projects attach their\n // properties to it so it needs to exist.\n support: support\n }); // JSHint would error on this code due to the Symbol not being defined in ES5.\n // Defining this global in .jshintrc would create a danger of using the global\n // unguarded in another place, it seems safer to just disable JSHint for these\n // three lines.\n\n /* jshint ignore: start */\n\n if (typeof Symbol === \"function\") {\n jQuery.fn[Symbol.iterator] = deletedIds[Symbol.iterator];\n }\n /* jshint ignore: end */\n // Populate the class2type map\n\n\n jQuery.each(\"Boolean Number String Function Array Date RegExp Object Error Symbol\".split(\" \"), function (i, name) {\n class2type[\"[object \" + name + \"]\"] = name.toLowerCase();\n });\n\n function isArrayLike(obj) {\n // Support: iOS 8.2 (not reproducible in simulator)\n // `in` check used to prevent JIT error (gh-2145)\n // hasOwn isn't used here due to false negatives\n // regarding Nodelist length in IE\n var length = !!obj && \"length\" in obj && obj.length,\n type = jQuery.type(obj);\n\n if (type === \"function\" || jQuery.isWindow(obj)) {\n return false;\n }\n\n return type === \"array\" || length === 0 || typeof length === \"number\" && length > 0 && length - 1 in obj;\n }\n\n var Sizzle =\n /*!\n * Sizzle CSS Selector Engine v2.2.1\n * http://sizzlejs.com/\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2015-10-17\n */\n function (window) {\n var i,\n support,\n Expr,\n getText,\n isXML,\n tokenize,\n compile,\n select,\n outermostContext,\n sortInput,\n hasDuplicate,\n // Local document vars\n setDocument,\n document,\n docElem,\n documentIsHTML,\n rbuggyQSA,\n rbuggyMatches,\n matches,\n contains,\n // Instance-specific data\n expando = \"sizzle\" + 1 * new Date(),\n preferredDoc = window.document,\n dirruns = 0,\n done = 0,\n classCache = createCache(),\n tokenCache = createCache(),\n compilerCache = createCache(),\n sortOrder = function sortOrder(a, b) {\n if (a === b) {\n hasDuplicate = true;\n }\n\n return 0;\n },\n // General-purpose constants\n MAX_NEGATIVE = 1 << 31,\n // Instance methods\n hasOwn = {}.hasOwnProperty,\n arr = [],\n pop = arr.pop,\n push_native = arr.push,\n push = arr.push,\n slice = arr.slice,\n // Use a stripped-down indexOf as it's faster than native\n // http://jsperf.com/thor-indexof-vs-for/5\n indexOf = function indexOf(list, elem) {\n var i = 0,\n len = list.length;\n\n for (; i < len; i++) {\n if (list[i] === elem) {\n return i;\n }\n }\n\n return -1;\n },\n booleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped\",\n // Regular expressions\n // http://www.w3.org/TR/css3-selectors/#whitespace\n whitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n // http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier\n identifier = \"(?:\\\\\\\\.|[\\\\w-]|[^\\\\x00-\\\\xa0])+\",\n // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n attributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace + // Operator (capture 2)\n \"*([*^$|!~]?=)\" + whitespace + // \"Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]\"\n \"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" + whitespace + \"*\\\\]\",\n pseudos = \":(\" + identifier + \")(?:\\\\((\" + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n // 1. quoted (capture 3; capture 4 or capture 5)\n \"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" + // 2. simple (capture 6)\n \"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" + // 3. anything else (capture 2)\n \".*\" + \")\\\\)|)\",\n // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n rwhitespace = new RegExp(whitespace + \"+\", \"g\"),\n rtrim = new RegExp(\"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\", \"g\"),\n rcomma = new RegExp(\"^\" + whitespace + \"*,\" + whitespace + \"*\"),\n rcombinators = new RegExp(\"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace + \"*\"),\n rattributeQuotes = new RegExp(\"=\" + whitespace + \"*([^\\\\]'\\\"]*?)\" + whitespace + \"*\\\\]\", \"g\"),\n rpseudo = new RegExp(pseudos),\n ridentifier = new RegExp(\"^\" + identifier + \"$\"),\n matchExpr = {\n \"ID\": new RegExp(\"^#(\" + identifier + \")\"),\n \"CLASS\": new RegExp(\"^\\\\.(\" + identifier + \")\"),\n \"TAG\": new RegExp(\"^(\" + identifier + \"|[*])\"),\n \"ATTR\": new RegExp(\"^\" + attributes),\n \"PSEUDO\": new RegExp(\"^\" + pseudos),\n \"CHILD\": new RegExp(\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + whitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" + whitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\"),\n \"bool\": new RegExp(\"^(?:\" + booleans + \")$\", \"i\"),\n // For use in libraries implementing .is()\n // We use this for POS matching in `select`\n \"needsContext\": new RegExp(\"^\" + whitespace + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace + \"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\")\n },\n rinputs = /^(?:input|select|textarea|button)$/i,\n rheader = /^h\\d$/i,\n rnative = /^[^{]+\\{\\s*\\[native \\w/,\n // Easily-parseable/retrievable ID or TAG or CLASS selectors\n rquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n rsibling = /[+~]/,\n rescape = /'|\\\\/g,\n // CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n runescape = new RegExp(\"\\\\\\\\([\\\\da-f]{1,6}\" + whitespace + \"?|(\" + whitespace + \")|.)\", \"ig\"),\n funescape = function funescape(_, escaped, escapedWhitespace) {\n var high = \"0x\" + escaped - 0x10000; // NaN means non-codepoint\n // Support: Firefox<24\n // Workaround erroneous numeric interpretation of +\"0x\"\n\n return high !== high || escapedWhitespace ? escaped : high < 0 ? // BMP codepoint\n String.fromCharCode(high + 0x10000) : // Supplemental Plane codepoint (surrogate pair)\n String.fromCharCode(high >> 10 | 0xD800, high & 0x3FF | 0xDC00);\n },\n // Used for iframes\n // See setDocument()\n // Removing the function wrapper causes a \"Permission Denied\"\n // error in IE\n unloadHandler = function unloadHandler() {\n setDocument();\n }; // Optimize for push.apply( _, NodeList )\n\n\n try {\n push.apply(arr = slice.call(preferredDoc.childNodes), preferredDoc.childNodes); // Support: Android<4.0\n // Detect silently failing push.apply\n\n arr[preferredDoc.childNodes.length].nodeType;\n } catch (e) {\n push = {\n apply: arr.length ? // Leverage slice if possible\n function (target, els) {\n push_native.apply(target, slice.call(els));\n } : // Support: IE<9\n // Otherwise append directly\n function (target, els) {\n var j = target.length,\n i = 0; // Can't trust NodeList.length\n\n while (target[j++] = els[i++]) {}\n\n target.length = j - 1;\n }\n };\n }\n\n function Sizzle(selector, context, results, seed) {\n var m,\n i,\n elem,\n nid,\n nidselect,\n match,\n groups,\n newSelector,\n newContext = context && context.ownerDocument,\n // nodeType defaults to 9, since context defaults to document\n nodeType = context ? context.nodeType : 9;\n results = results || []; // Return early from calls with invalid selector or context\n\n if (typeof selector !== \"string\" || !selector || nodeType !== 1 && nodeType !== 9 && nodeType !== 11) {\n return results;\n } // Try to shortcut find operations (as opposed to filters) in HTML documents\n\n\n if (!seed) {\n if ((context ? context.ownerDocument || context : preferredDoc) !== document) {\n setDocument(context);\n }\n\n context = context || document;\n\n if (documentIsHTML) {\n // If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n // (excepting DocumentFragment context, where the methods don't exist)\n if (nodeType !== 11 && (match = rquickExpr.exec(selector))) {\n // ID selector\n if (m = match[1]) {\n // Document context\n if (nodeType === 9) {\n if (elem = context.getElementById(m)) {\n // Support: IE, Opera, Webkit\n // TODO: identify versions\n // getElementById can match elements by name instead of ID\n if (elem.id === m) {\n results.push(elem);\n return results;\n }\n } else {\n return results;\n } // Element context\n\n } else {\n // Support: IE, Opera, Webkit\n // TODO: identify versions\n // getElementById can match elements by name instead of ID\n if (newContext && (elem = newContext.getElementById(m)) && contains(context, elem) && elem.id === m) {\n results.push(elem);\n return results;\n }\n } // Type selector\n\n } else if (match[2]) {\n push.apply(results, context.getElementsByTagName(selector));\n return results; // Class selector\n } else if ((m = match[3]) && support.getElementsByClassName && context.getElementsByClassName) {\n push.apply(results, context.getElementsByClassName(m));\n return results;\n }\n } // Take advantage of querySelectorAll\n\n\n if (support.qsa && !compilerCache[selector + \" \"] && (!rbuggyQSA || !rbuggyQSA.test(selector))) {\n if (nodeType !== 1) {\n newContext = context;\n newSelector = selector; // qSA looks outside Element context, which is not what we want\n // Thanks to Andrew Dupont for this workaround technique\n // Support: IE <=8\n // Exclude object elements\n } else if (context.nodeName.toLowerCase() !== \"object\") {\n // Capture the context ID, setting it first if necessary\n if (nid = context.getAttribute(\"id\")) {\n nid = nid.replace(rescape, \"\\\\$&\");\n } else {\n context.setAttribute(\"id\", nid = expando);\n } // Prefix every selector in the list\n\n\n groups = tokenize(selector);\n i = groups.length;\n nidselect = ridentifier.test(nid) ? \"#\" + nid : \"[id='\" + nid + \"']\";\n\n while (i--) {\n groups[i] = nidselect + \" \" + toSelector(groups[i]);\n }\n\n newSelector = groups.join(\",\"); // Expand context for sibling selectors\n\n newContext = rsibling.test(selector) && testContext(context.parentNode) || context;\n }\n\n if (newSelector) {\n try {\n push.apply(results, newContext.querySelectorAll(newSelector));\n return results;\n } catch (qsaError) {} finally {\n if (nid === expando) {\n context.removeAttribute(\"id\");\n }\n }\n }\n }\n }\n } // All others\n\n\n return select(selector.replace(rtrim, \"$1\"), context, results, seed);\n }\n /**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\n\n\n function createCache() {\n var keys = [];\n\n function cache(key, value) {\n // Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n if (keys.push(key + \" \") > Expr.cacheLength) {\n // Only keep the most recent entries\n delete cache[keys.shift()];\n }\n\n return cache[key + \" \"] = value;\n }\n\n return cache;\n }\n /**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\n\n\n function markFunction(fn) {\n fn[expando] = true;\n return fn;\n }\n /**\n * Support testing using an element\n * @param {Function} fn Passed the created div and expects a boolean result\n */\n\n\n function assert(fn) {\n var div = document.createElement(\"div\");\n\n try {\n return !!fn(div);\n } catch (e) {\n return false;\n } finally {\n // Remove from its parent by default\n if (div.parentNode) {\n div.parentNode.removeChild(div);\n } // release memory in IE\n\n\n div = null;\n }\n }\n /**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\n\n\n function addHandle(attrs, handler) {\n var arr = attrs.split(\"|\"),\n i = arr.length;\n\n while (i--) {\n Expr.attrHandle[arr[i]] = handler;\n }\n }\n /**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\n\n\n function siblingCheck(a, b) {\n var cur = b && a,\n diff = cur && a.nodeType === 1 && b.nodeType === 1 && (~b.sourceIndex || MAX_NEGATIVE) - (~a.sourceIndex || MAX_NEGATIVE); // Use IE sourceIndex if available on both nodes\n\n if (diff) {\n return diff;\n } // Check if b follows a\n\n\n if (cur) {\n while (cur = cur.nextSibling) {\n if (cur === b) {\n return -1;\n }\n }\n }\n\n return a ? 1 : -1;\n }\n /**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\n\n\n function createInputPseudo(type) {\n return function (elem) {\n var name = elem.nodeName.toLowerCase();\n return name === \"input\" && elem.type === type;\n };\n }\n /**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\n\n\n function createButtonPseudo(type) {\n return function (elem) {\n var name = elem.nodeName.toLowerCase();\n return (name === \"input\" || name === \"button\") && elem.type === type;\n };\n }\n /**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\n\n\n function createPositionalPseudo(fn) {\n return markFunction(function (argument) {\n argument = +argument;\n return markFunction(function (seed, matches) {\n var j,\n matchIndexes = fn([], seed.length, argument),\n i = matchIndexes.length; // Match elements found at the specified indexes\n\n while (i--) {\n if (seed[j = matchIndexes[i]]) {\n seed[j] = !(matches[j] = seed[j]);\n }\n }\n });\n });\n }\n /**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\n\n\n function testContext(context) {\n return context && typeof context.getElementsByTagName !== \"undefined\" && context;\n } // Expose support vars for convenience\n\n\n support = Sizzle.support = {};\n /**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\n\n isXML = Sizzle.isXML = function (elem) {\n // documentElement is verified for cases where it doesn't yet exist\n // (such as loading iframes in IE - #4833)\n var documentElement = elem && (elem.ownerDocument || elem).documentElement;\n return documentElement ? documentElement.nodeName !== \"HTML\" : false;\n };\n /**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\n\n\n setDocument = Sizzle.setDocument = function (node) {\n var hasCompare,\n parent,\n doc = node ? node.ownerDocument || node : preferredDoc; // Return early if doc is invalid or already selected\n\n if (doc === document || doc.nodeType !== 9 || !doc.documentElement) {\n return document;\n } // Update global variables\n\n\n document = doc;\n docElem = document.documentElement;\n documentIsHTML = !isXML(document); // Support: IE 9-11, Edge\n // Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n\n if ((parent = document.defaultView) && parent.top !== parent) {\n // Support: IE 11\n if (parent.addEventListener) {\n parent.addEventListener(\"unload\", unloadHandler, false); // Support: IE 9 - 10 only\n } else if (parent.attachEvent) {\n parent.attachEvent(\"onunload\", unloadHandler);\n }\n }\n /* Attributes\n ---------------------------------------------------------------------- */\n // Support: IE<8\n // Verify that getAttribute really returns attributes and not properties\n // (excepting IE8 booleans)\n\n\n support.attributes = assert(function (div) {\n div.className = \"i\";\n return !div.getAttribute(\"className\");\n });\n /* getElement(s)By*\n ---------------------------------------------------------------------- */\n // Check if getElementsByTagName(\"*\") returns only elements\n\n support.getElementsByTagName = assert(function (div) {\n div.appendChild(document.createComment(\"\"));\n return !div.getElementsByTagName(\"*\").length;\n }); // Support: IE<9\n\n support.getElementsByClassName = rnative.test(document.getElementsByClassName); // Support: IE<10\n // Check if getElementById returns elements by name\n // The broken getElementById methods don't pick up programatically-set names,\n // so use a roundabout getElementsByName test\n\n support.getById = assert(function (div) {\n docElem.appendChild(div).id = expando;\n return !document.getElementsByName || !document.getElementsByName(expando).length;\n }); // ID find and filter\n\n if (support.getById) {\n Expr.find[\"ID\"] = function (id, context) {\n if (typeof context.getElementById !== \"undefined\" && documentIsHTML) {\n var m = context.getElementById(id);\n return m ? [m] : [];\n }\n };\n\n Expr.filter[\"ID\"] = function (id) {\n var attrId = id.replace(runescape, funescape);\n return function (elem) {\n return elem.getAttribute(\"id\") === attrId;\n };\n };\n } else {\n // Support: IE6/7\n // getElementById is not reliable as a find shortcut\n delete Expr.find[\"ID\"];\n\n Expr.filter[\"ID\"] = function (id) {\n var attrId = id.replace(runescape, funescape);\n return function (elem) {\n var node = typeof elem.getAttributeNode !== \"undefined\" && elem.getAttributeNode(\"id\");\n return node && node.value === attrId;\n };\n };\n } // Tag\n\n\n Expr.find[\"TAG\"] = support.getElementsByTagName ? function (tag, context) {\n if (typeof context.getElementsByTagName !== \"undefined\") {\n return context.getElementsByTagName(tag); // DocumentFragment nodes don't have gEBTN\n } else if (support.qsa) {\n return context.querySelectorAll(tag);\n }\n } : function (tag, context) {\n var elem,\n tmp = [],\n i = 0,\n // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n results = context.getElementsByTagName(tag); // Filter out possible comments\n\n if (tag === \"*\") {\n while (elem = results[i++]) {\n if (elem.nodeType === 1) {\n tmp.push(elem);\n }\n }\n\n return tmp;\n }\n\n return results;\n }; // Class\n\n Expr.find[\"CLASS\"] = support.getElementsByClassName && function (className, context) {\n if (typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML) {\n return context.getElementsByClassName(className);\n }\n };\n /* QSA/matchesSelector\n ---------------------------------------------------------------------- */\n // QSA and matchesSelector support\n // matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\n\n rbuggyMatches = []; // qSa(:focus) reports false when true (Chrome 21)\n // We allow this because of a bug in IE8/9 that throws an error\n // whenever `document.activeElement` is accessed on an iframe\n // So, we allow :focus to pass through QSA all the time to avoid the IE error\n // See http://bugs.jquery.com/ticket/13378\n\n rbuggyQSA = [];\n\n if (support.qsa = rnative.test(document.querySelectorAll)) {\n // Build QSA regex\n // Regex strategy adopted from Diego Perini\n assert(function (div) {\n // Select is set to empty string on purpose\n // This is to test IE's treatment of not explicitly\n // setting a boolean content attribute,\n // since its presence should be enough\n // http://bugs.jquery.com/ticket/12359\n docElem.appendChild(div).innerHTML = \"\" + \"\"; // Support: IE8, Opera 11-12.16\n // Nothing should be selected when empty strings follow ^= or $= or *=\n // The test attribute must be unknown in Opera but \"safe\" for WinRT\n // http://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\n if (div.querySelectorAll(\"[msallowcapture^='']\").length) {\n rbuggyQSA.push(\"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\");\n } // Support: IE8\n // Boolean attributes and \"value\" are not treated correctly\n\n\n if (!div.querySelectorAll(\"[selected]\").length) {\n rbuggyQSA.push(\"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\");\n } // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\n\n if (!div.querySelectorAll(\"[id~=\" + expando + \"-]\").length) {\n rbuggyQSA.push(\"~=\");\n } // Webkit/Opera - :checked should return selected option elements\n // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n // IE8 throws error here and will not see later tests\n\n\n if (!div.querySelectorAll(\":checked\").length) {\n rbuggyQSA.push(\":checked\");\n } // Support: Safari 8+, iOS 8+\n // https://bugs.webkit.org/show_bug.cgi?id=136851\n // In-page `selector#id sibing-combinator selector` fails\n\n\n if (!div.querySelectorAll(\"a#\" + expando + \"+*\").length) {\n rbuggyQSA.push(\".#.+[+~]\");\n }\n });\n assert(function (div) {\n // Support: Windows 8 Native Apps\n // The type and name attributes are restricted during .innerHTML assignment\n var input = document.createElement(\"input\");\n input.setAttribute(\"type\", \"hidden\");\n div.appendChild(input).setAttribute(\"name\", \"D\"); // Support: IE8\n // Enforce case-sensitivity of name attribute\n\n if (div.querySelectorAll(\"[name=d]\").length) {\n rbuggyQSA.push(\"name\" + whitespace + \"*[*^$|!~]?=\");\n } // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n // IE8 throws error here and will not see later tests\n\n\n if (!div.querySelectorAll(\":enabled\").length) {\n rbuggyQSA.push(\":enabled\", \":disabled\");\n } // Opera 10-11 does not throw on post-comma invalid pseudos\n\n\n div.querySelectorAll(\"*,:x\");\n rbuggyQSA.push(\",.*:\");\n });\n }\n\n if (support.matchesSelector = rnative.test(matches = docElem.matches || docElem.webkitMatchesSelector || docElem.mozMatchesSelector || docElem.oMatchesSelector || docElem.msMatchesSelector)) {\n assert(function (div) {\n // Check to see if it's possible to do matchesSelector\n // on a disconnected node (IE 9)\n support.disconnectedMatch = matches.call(div, \"div\"); // This should fail with an exception\n // Gecko does not error, returns false instead\n\n matches.call(div, \"[s!='']:x\");\n rbuggyMatches.push(\"!=\", pseudos);\n });\n }\n\n rbuggyQSA = rbuggyQSA.length && new RegExp(rbuggyQSA.join(\"|\"));\n rbuggyMatches = rbuggyMatches.length && new RegExp(rbuggyMatches.join(\"|\"));\n /* Contains\n ---------------------------------------------------------------------- */\n\n hasCompare = rnative.test(docElem.compareDocumentPosition); // Element contains another\n // Purposefully self-exclusive\n // As in, an element does not contain itself\n\n contains = hasCompare || rnative.test(docElem.contains) ? function (a, b) {\n var adown = a.nodeType === 9 ? a.documentElement : a,\n bup = b && b.parentNode;\n return a === bup || !!(bup && bup.nodeType === 1 && (adown.contains ? adown.contains(bup) : a.compareDocumentPosition && a.compareDocumentPosition(bup) & 16));\n } : function (a, b) {\n if (b) {\n while (b = b.parentNode) {\n if (b === a) {\n return true;\n }\n }\n }\n\n return false;\n };\n /* Sorting\n ---------------------------------------------------------------------- */\n // Document order sorting\n\n sortOrder = hasCompare ? function (a, b) {\n // Flag for duplicate removal\n if (a === b) {\n hasDuplicate = true;\n return 0;\n } // Sort on method existence if only one input has compareDocumentPosition\n\n\n var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\n if (compare) {\n return compare;\n } // Calculate position if both inputs belong to the same document\n\n\n compare = (a.ownerDocument || a) === (b.ownerDocument || b) ? a.compareDocumentPosition(b) : // Otherwise we know they are disconnected\n 1; // Disconnected nodes\n\n if (compare & 1 || !support.sortDetached && b.compareDocumentPosition(a) === compare) {\n // Choose the first element that is related to our preferred document\n if (a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a)) {\n return -1;\n }\n\n if (b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b)) {\n return 1;\n } // Maintain original order\n\n\n return sortInput ? indexOf(sortInput, a) - indexOf(sortInput, b) : 0;\n }\n\n return compare & 4 ? -1 : 1;\n } : function (a, b) {\n // Exit early if the nodes are identical\n if (a === b) {\n hasDuplicate = true;\n return 0;\n }\n\n var cur,\n i = 0,\n aup = a.parentNode,\n bup = b.parentNode,\n ap = [a],\n bp = [b]; // Parentless nodes are either documents or disconnected\n\n if (!aup || !bup) {\n return a === document ? -1 : b === document ? 1 : aup ? -1 : bup ? 1 : sortInput ? indexOf(sortInput, a) - indexOf(sortInput, b) : 0; // If the nodes are siblings, we can do a quick check\n } else if (aup === bup) {\n return siblingCheck(a, b);\n } // Otherwise we need full lists of their ancestors for comparison\n\n\n cur = a;\n\n while (cur = cur.parentNode) {\n ap.unshift(cur);\n }\n\n cur = b;\n\n while (cur = cur.parentNode) {\n bp.unshift(cur);\n } // Walk down the tree looking for a discrepancy\n\n\n while (ap[i] === bp[i]) {\n i++;\n }\n\n return i ? // Do a sibling check if the nodes have a common ancestor\n siblingCheck(ap[i], bp[i]) : // Otherwise nodes in our document sort first\n ap[i] === preferredDoc ? -1 : bp[i] === preferredDoc ? 1 : 0;\n };\n return document;\n };\n\n Sizzle.matches = function (expr, elements) {\n return Sizzle(expr, null, null, elements);\n };\n\n Sizzle.matchesSelector = function (elem, expr) {\n // Set document vars if needed\n if ((elem.ownerDocument || elem) !== document) {\n setDocument(elem);\n } // Make sure that attribute selectors are quoted\n\n\n expr = expr.replace(rattributeQuotes, \"='$1']\");\n\n if (support.matchesSelector && documentIsHTML && !compilerCache[expr + \" \"] && (!rbuggyMatches || !rbuggyMatches.test(expr)) && (!rbuggyQSA || !rbuggyQSA.test(expr))) {\n try {\n var ret = matches.call(elem, expr); // IE 9's matchesSelector returns false on disconnected nodes\n\n if (ret || support.disconnectedMatch || // As well, disconnected nodes are said to be in a document\n // fragment in IE 9\n elem.document && elem.document.nodeType !== 11) {\n return ret;\n }\n } catch (e) {}\n }\n\n return Sizzle(expr, document, null, [elem]).length > 0;\n };\n\n Sizzle.contains = function (context, elem) {\n // Set document vars if needed\n if ((context.ownerDocument || context) !== document) {\n setDocument(context);\n }\n\n return contains(context, elem);\n };\n\n Sizzle.attr = function (elem, name) {\n // Set document vars if needed\n if ((elem.ownerDocument || elem) !== document) {\n setDocument(elem);\n }\n\n var fn = Expr.attrHandle[name.toLowerCase()],\n // Don't get fooled by Object.prototype properties (jQuery #13807)\n val = fn && hasOwn.call(Expr.attrHandle, name.toLowerCase()) ? fn(elem, name, !documentIsHTML) : undefined;\n return val !== undefined ? val : support.attributes || !documentIsHTML ? elem.getAttribute(name) : (val = elem.getAttributeNode(name)) && val.specified ? val.value : null;\n };\n\n Sizzle.error = function (msg) {\n throw new Error(\"Syntax error, unrecognized expression: \" + msg);\n };\n /**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\n\n\n Sizzle.uniqueSort = function (results) {\n var elem,\n duplicates = [],\n j = 0,\n i = 0; // Unless we *know* we can detect duplicates, assume their presence\n\n hasDuplicate = !support.detectDuplicates;\n sortInput = !support.sortStable && results.slice(0);\n results.sort(sortOrder);\n\n if (hasDuplicate) {\n while (elem = results[i++]) {\n if (elem === results[i]) {\n j = duplicates.push(i);\n }\n }\n\n while (j--) {\n results.splice(duplicates[j], 1);\n }\n } // Clear input after sorting to release objects\n // See https://github.com/jquery/sizzle/pull/225\n\n\n sortInput = null;\n return results;\n };\n /**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\n\n\n getText = Sizzle.getText = function (elem) {\n var node,\n ret = \"\",\n i = 0,\n nodeType = elem.nodeType;\n\n if (!nodeType) {\n // If no nodeType, this is expected to be an array\n while (node = elem[i++]) {\n // Do not traverse comment nodes\n ret += getText(node);\n }\n } else if (nodeType === 1 || nodeType === 9 || nodeType === 11) {\n // Use textContent for elements\n // innerText usage removed for consistency of new lines (jQuery #11153)\n if (typeof elem.textContent === \"string\") {\n return elem.textContent;\n } else {\n // Traverse its children\n for (elem = elem.firstChild; elem; elem = elem.nextSibling) {\n ret += getText(elem);\n }\n }\n } else if (nodeType === 3 || nodeType === 4) {\n return elem.nodeValue;\n } // Do not include comment or processing instruction nodes\n\n\n return ret;\n };\n\n Expr = Sizzle.selectors = {\n // Can be adjusted by the user\n cacheLength: 50,\n createPseudo: markFunction,\n match: matchExpr,\n attrHandle: {},\n find: {},\n relative: {\n \">\": {\n dir: \"parentNode\",\n first: true\n },\n \" \": {\n dir: \"parentNode\"\n },\n \"+\": {\n dir: \"previousSibling\",\n first: true\n },\n \"~\": {\n dir: \"previousSibling\"\n }\n },\n preFilter: {\n \"ATTR\": function ATTR(match) {\n match[1] = match[1].replace(runescape, funescape); // Move the given value to match[3] whether quoted or unquoted\n\n match[3] = (match[3] || match[4] || match[5] || \"\").replace(runescape, funescape);\n\n if (match[2] === \"~=\") {\n match[3] = \" \" + match[3] + \" \";\n }\n\n return match.slice(0, 4);\n },\n \"CHILD\": function CHILD(match) {\n /* matches from matchExpr[\"CHILD\"]\n \t1 type (only|nth|...)\n \t2 what (child|of-type)\n \t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n \t4 xn-component of xn+y argument ([+-]?\\d*n|)\n \t5 sign of xn-component\n \t6 x of xn-component\n \t7 sign of y-component\n \t8 y of y-component\n */\n match[1] = match[1].toLowerCase();\n\n if (match[1].slice(0, 3) === \"nth\") {\n // nth-* requires argument\n if (!match[3]) {\n Sizzle.error(match[0]);\n } // numeric x and y parameters for Expr.filter.CHILD\n // remember that false/true cast respectively to 0/1\n\n\n match[4] = +(match[4] ? match[5] + (match[6] || 1) : 2 * (match[3] === \"even\" || match[3] === \"odd\"));\n match[5] = +(match[7] + match[8] || match[3] === \"odd\"); // other types prohibit arguments\n } else if (match[3]) {\n Sizzle.error(match[0]);\n }\n\n return match;\n },\n \"PSEUDO\": function PSEUDO(match) {\n var excess,\n unquoted = !match[6] && match[2];\n\n if (matchExpr[\"CHILD\"].test(match[0])) {\n return null;\n } // Accept quoted arguments as-is\n\n\n if (match[3]) {\n match[2] = match[4] || match[5] || \"\"; // Strip excess characters from unquoted arguments\n } else if (unquoted && rpseudo.test(unquoted) && ( // Get excess from tokenize (recursively)\n excess = tokenize(unquoted, true)) && ( // advance to the next closing parenthesis\n excess = unquoted.indexOf(\")\", unquoted.length - excess) - unquoted.length)) {\n // excess is a negative index\n match[0] = match[0].slice(0, excess);\n match[2] = unquoted.slice(0, excess);\n } // Return only captures needed by the pseudo filter method (type and argument)\n\n\n return match.slice(0, 3);\n }\n },\n filter: {\n \"TAG\": function TAG(nodeNameSelector) {\n var nodeName = nodeNameSelector.replace(runescape, funescape).toLowerCase();\n return nodeNameSelector === \"*\" ? function () {\n return true;\n } : function (elem) {\n return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n };\n },\n \"CLASS\": function CLASS(className) {\n var pattern = classCache[className + \" \"];\n return pattern || (pattern = new RegExp(\"(^|\" + whitespace + \")\" + className + \"(\" + whitespace + \"|$)\")) && classCache(className, function (elem) {\n return pattern.test(typeof elem.className === \"string\" && elem.className || typeof elem.getAttribute !== \"undefined\" && elem.getAttribute(\"class\") || \"\");\n });\n },\n \"ATTR\": function ATTR(name, operator, check) {\n return function (elem) {\n var result = Sizzle.attr(elem, name);\n\n if (result == null) {\n return operator === \"!=\";\n }\n\n if (!operator) {\n return true;\n }\n\n result += \"\";\n return operator === \"=\" ? result === check : operator === \"!=\" ? result !== check : operator === \"^=\" ? check && result.indexOf(check) === 0 : 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 + \"-\" : false;\n };\n },\n \"CHILD\": function CHILD(type, what, argument, first, last) {\n var simple = type.slice(0, 3) !== \"nth\",\n forward = type.slice(-4) !== \"last\",\n ofType = what === \"of-type\";\n return first === 1 && last === 0 ? // Shortcut for :nth-*(n)\n function (elem) {\n return !!elem.parentNode;\n } : function (elem, context, xml) {\n var cache,\n uniqueCache,\n outerCache,\n node,\n nodeIndex,\n start,\n dir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n parent = elem.parentNode,\n name = ofType && elem.nodeName.toLowerCase(),\n useCache = !xml && !ofType,\n diff = false;\n\n if (parent) {\n // :(first|last|only)-(child|of-type)\n if (simple) {\n while (dir) {\n node = elem;\n\n while (node = node[dir]) {\n if (ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1) {\n return false;\n }\n } // Reverse direction for :only-* (if we haven't yet done so)\n\n\n start = dir = type === \"only\" && !start && \"nextSibling\";\n }\n\n return true;\n }\n\n start = [forward ? parent.firstChild : parent.lastChild]; // non-xml :nth-child(...) stores cache data on `parent`\n\n if (forward && useCache) {\n // Seek `elem` from a previously-cached index\n // ...in a gzip-friendly way\n node = parent;\n outerCache = node[expando] || (node[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {});\n cache = uniqueCache[type] || [];\n nodeIndex = cache[0] === dirruns && cache[1];\n diff = nodeIndex && cache[2];\n node = nodeIndex && parent.childNodes[nodeIndex];\n\n while (node = ++nodeIndex && node && node[dir] || ( // Fallback to seeking `elem` from the start\n diff = nodeIndex = 0) || start.pop()) {\n // When found, cache indexes on `parent` and break\n if (node.nodeType === 1 && ++diff && node === elem) {\n uniqueCache[type] = [dirruns, nodeIndex, diff];\n break;\n }\n }\n } else {\n // Use previously-cached element index if available\n if (useCache) {\n // ...in a gzip-friendly way\n node = elem;\n outerCache = node[expando] || (node[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {});\n cache = uniqueCache[type] || [];\n nodeIndex = cache[0] === dirruns && cache[1];\n diff = nodeIndex;\n } // xml :nth-child(...)\n // or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\n\n if (diff === false) {\n // Use the same loop as above to seek `elem` from the start\n while (node = ++nodeIndex && node && node[dir] || (diff = nodeIndex = 0) || start.pop()) {\n if ((ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1) && ++diff) {\n // Cache the index of each encountered element\n if (useCache) {\n outerCache = node[expando] || (node[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {});\n uniqueCache[type] = [dirruns, diff];\n }\n\n if (node === elem) {\n break;\n }\n }\n }\n }\n } // Incorporate the offset, then check against cycle size\n\n\n diff -= last;\n return diff === first || diff % first === 0 && diff / first >= 0;\n }\n };\n },\n \"PSEUDO\": function PSEUDO(pseudo, argument) {\n // pseudo-class names are case-insensitive\n // http://www.w3.org/TR/selectors/#pseudo-classes\n // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n // Remember that setFilters inherits from pseudos\n var args,\n fn = Expr.pseudos[pseudo] || Expr.setFilters[pseudo.toLowerCase()] || Sizzle.error(\"unsupported pseudo: \" + pseudo); // The user may use createPseudo to indicate that\n // arguments are needed to create the filter function\n // just as Sizzle does\n\n if (fn[expando]) {\n return fn(argument);\n } // But maintain support for old signatures\n\n\n if (fn.length > 1) {\n args = [pseudo, pseudo, \"\", argument];\n return Expr.setFilters.hasOwnProperty(pseudo.toLowerCase()) ? markFunction(function (seed, matches) {\n var idx,\n matched = fn(seed, argument),\n i = matched.length;\n\n while (i--) {\n idx = indexOf(seed, matched[i]);\n seed[idx] = !(matches[idx] = matched[i]);\n }\n }) : function (elem) {\n return fn(elem, 0, args);\n };\n }\n\n return fn;\n }\n },\n pseudos: {\n // Potentially complex pseudos\n \"not\": markFunction(function (selector) {\n // Trim the selector passed to compile\n // to avoid treating leading and trailing\n // spaces as combinators\n var input = [],\n results = [],\n matcher = compile(selector.replace(rtrim, \"$1\"));\n return matcher[expando] ? markFunction(function (seed, matches, context, xml) {\n var elem,\n unmatched = matcher(seed, null, xml, []),\n i = seed.length; // Match elements unmatched by `matcher`\n\n while (i--) {\n if (elem = unmatched[i]) {\n seed[i] = !(matches[i] = elem);\n }\n }\n }) : function (elem, context, xml) {\n input[0] = elem;\n matcher(input, null, xml, results); // Don't keep the element (issue #299)\n\n input[0] = null;\n return !results.pop();\n };\n }),\n \"has\": markFunction(function (selector) {\n return function (elem) {\n return Sizzle(selector, elem).length > 0;\n };\n }),\n \"contains\": markFunction(function (text) {\n text = text.replace(runescape, funescape);\n return function (elem) {\n return (elem.textContent || elem.innerText || getText(elem)).indexOf(text) > -1;\n };\n }),\n // \"Whether an element is represented by a :lang() selector\n // is based solely on the element's language value\n // being equal to the identifier C,\n // or beginning with the identifier C immediately followed by \"-\".\n // The matching of C against the element's language value is performed case-insensitively.\n // The identifier C does not have to be a valid language name.\"\n // http://www.w3.org/TR/selectors/#lang-pseudo\n \"lang\": markFunction(function (lang) {\n // lang value must be a valid identifier\n if (!ridentifier.test(lang || \"\")) {\n Sizzle.error(\"unsupported lang: \" + lang);\n }\n\n lang = lang.replace(runescape, funescape).toLowerCase();\n return function (elem) {\n var elemLang;\n\n do {\n if (elemLang = documentIsHTML ? elem.lang : elem.getAttribute(\"xml:lang\") || elem.getAttribute(\"lang\")) {\n elemLang = elemLang.toLowerCase();\n return elemLang === lang || elemLang.indexOf(lang + \"-\") === 0;\n }\n } while ((elem = elem.parentNode) && elem.nodeType === 1);\n\n return false;\n };\n }),\n // Miscellaneous\n \"target\": function target(elem) {\n var hash = window.location && window.location.hash;\n return hash && hash.slice(1) === elem.id;\n },\n \"root\": function root(elem) {\n return elem === docElem;\n },\n \"focus\": function focus(elem) {\n return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);\n },\n // Boolean properties\n \"enabled\": function enabled(elem) {\n return elem.disabled === false;\n },\n \"disabled\": function disabled(elem) {\n return elem.disabled === true;\n },\n \"checked\": function checked(elem) {\n // In CSS3, :checked should return both checked and selected elements\n // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n var nodeName = elem.nodeName.toLowerCase();\n return nodeName === \"input\" && !!elem.checked || nodeName === \"option\" && !!elem.selected;\n },\n \"selected\": function selected(elem) {\n // Accessing this property makes selected-by-default\n // options in Safari work properly\n if (elem.parentNode) {\n elem.parentNode.selectedIndex;\n }\n\n return elem.selected === true;\n },\n // Contents\n \"empty\": function empty(elem) {\n // http://www.w3.org/TR/selectors/#empty-pseudo\n // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n // but not by others (comment: 8; processing instruction: 7; etc.)\n // nodeType < 6 works because attributes (2) do not appear as children\n for (elem = elem.firstChild; elem; elem = elem.nextSibling) {\n if (elem.nodeType < 6) {\n return false;\n }\n }\n\n return true;\n },\n \"parent\": function parent(elem) {\n return !Expr.pseudos[\"empty\"](elem);\n },\n // Element/input types\n \"header\": function header(elem) {\n return rheader.test(elem.nodeName);\n },\n \"input\": function input(elem) {\n return rinputs.test(elem.nodeName);\n },\n \"button\": function button(elem) {\n var name = elem.nodeName.toLowerCase();\n return name === \"input\" && elem.type === \"button\" || name === \"button\";\n },\n \"text\": function text(elem) {\n var attr;\n return elem.nodeName.toLowerCase() === \"input\" && elem.type === \"text\" && ( // Support: IE<8\n // New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n (attr = elem.getAttribute(\"type\")) == null || attr.toLowerCase() === \"text\");\n },\n // Position-in-collection\n \"first\": createPositionalPseudo(function () {\n return [0];\n }),\n \"last\": createPositionalPseudo(function (matchIndexes, length) {\n return [length - 1];\n }),\n \"eq\": createPositionalPseudo(function (matchIndexes, length, argument) {\n return [argument < 0 ? argument + length : argument];\n }),\n \"even\": createPositionalPseudo(function (matchIndexes, length) {\n var i = 0;\n\n for (; i < length; i += 2) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n }),\n \"odd\": createPositionalPseudo(function (matchIndexes, length) {\n var i = 1;\n\n for (; i < length; i += 2) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n }),\n \"lt\": createPositionalPseudo(function (matchIndexes, length, argument) {\n var i = argument < 0 ? argument + length : argument;\n\n for (; --i >= 0;) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n }),\n \"gt\": createPositionalPseudo(function (matchIndexes, length, argument) {\n var i = argument < 0 ? argument + length : argument;\n\n for (; ++i < length;) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n })\n }\n };\n Expr.pseudos[\"nth\"] = Expr.pseudos[\"eq\"]; // Add button/input type pseudos\n\n for (i in {\n radio: true,\n checkbox: true,\n file: true,\n password: true,\n image: true\n }) {\n Expr.pseudos[i] = createInputPseudo(i);\n }\n\n for (i in {\n submit: true,\n reset: true\n }) {\n Expr.pseudos[i] = createButtonPseudo(i);\n } // Easy API for creating new setFilters\n\n\n function setFilters() {}\n\n setFilters.prototype = Expr.filters = Expr.pseudos;\n Expr.setFilters = new setFilters();\n\n tokenize = Sizzle.tokenize = function (selector, parseOnly) {\n var matched,\n match,\n tokens,\n type,\n soFar,\n groups,\n preFilters,\n cached = tokenCache[selector + \" \"];\n\n if (cached) {\n return parseOnly ? 0 : cached.slice(0);\n }\n\n soFar = selector;\n groups = [];\n preFilters = Expr.preFilter;\n\n while (soFar) {\n // Comma and first run\n if (!matched || (match = rcomma.exec(soFar))) {\n if (match) {\n // Don't consume trailing commas as valid\n soFar = soFar.slice(match[0].length) || soFar;\n }\n\n groups.push(tokens = []);\n }\n\n matched = false; // Combinators\n\n if (match = rcombinators.exec(soFar)) {\n matched = match.shift();\n tokens.push({\n value: matched,\n // Cast descendant combinators to space\n type: match[0].replace(rtrim, \" \")\n });\n soFar = soFar.slice(matched.length);\n } // Filters\n\n\n for (type in Expr.filter) {\n if ((match = matchExpr[type].exec(soFar)) && (!preFilters[type] || (match = preFilters[type](match)))) {\n matched = match.shift();\n tokens.push({\n value: matched,\n type: type,\n matches: match\n });\n soFar = soFar.slice(matched.length);\n }\n }\n\n if (!matched) {\n break;\n }\n } // Return the length of the invalid excess\n // if we're just parsing\n // Otherwise, throw an error or return tokens\n\n\n return parseOnly ? soFar.length : soFar ? Sizzle.error(selector) : // Cache the tokens\n tokenCache(selector, groups).slice(0);\n };\n\n function toSelector(tokens) {\n var i = 0,\n len = tokens.length,\n selector = \"\";\n\n for (; i < len; i++) {\n selector += tokens[i].value;\n }\n\n return selector;\n }\n\n function addCombinator(matcher, combinator, base) {\n var dir = combinator.dir,\n checkNonElements = base && dir === \"parentNode\",\n doneName = done++;\n return combinator.first ? // Check against closest ancestor/preceding element\n function (elem, context, xml) {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n return matcher(elem, context, xml);\n }\n }\n } : // Check against all ancestor/preceding elements\n function (elem, context, xml) {\n var oldCache,\n uniqueCache,\n outerCache,\n newCache = [dirruns, doneName]; // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\n if (xml) {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n if (matcher(elem, context, xml)) {\n return true;\n }\n }\n }\n } else {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n outerCache = elem[expando] || (elem[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[elem.uniqueID] || (outerCache[elem.uniqueID] = {});\n\n if ((oldCache = uniqueCache[dir]) && oldCache[0] === dirruns && oldCache[1] === doneName) {\n // Assign to newCache so results back-propagate to previous elements\n return newCache[2] = oldCache[2];\n } else {\n // Reuse newcache so results back-propagate to previous elements\n uniqueCache[dir] = newCache; // A match means we're done; a fail means we have to keep checking\n\n if (newCache[2] = matcher(elem, context, xml)) {\n return true;\n }\n }\n }\n }\n }\n };\n }\n\n function elementMatcher(matchers) {\n return matchers.length > 1 ? function (elem, context, xml) {\n var i = matchers.length;\n\n while (i--) {\n if (!matchers[i](elem, context, xml)) {\n return false;\n }\n }\n\n return true;\n } : matchers[0];\n }\n\n function multipleContexts(selector, contexts, results) {\n var i = 0,\n len = contexts.length;\n\n for (; i < len; i++) {\n Sizzle(selector, contexts[i], results);\n }\n\n return results;\n }\n\n function condense(unmatched, map, filter, context, xml) {\n var elem,\n newUnmatched = [],\n i = 0,\n len = unmatched.length,\n mapped = map != null;\n\n for (; i < len; i++) {\n if (elem = unmatched[i]) {\n if (!filter || filter(elem, context, xml)) {\n newUnmatched.push(elem);\n\n if (mapped) {\n map.push(i);\n }\n }\n }\n }\n\n return newUnmatched;\n }\n\n function setMatcher(preFilter, selector, matcher, postFilter, postFinder, postSelector) {\n if (postFilter && !postFilter[expando]) {\n postFilter = setMatcher(postFilter);\n }\n\n if (postFinder && !postFinder[expando]) {\n postFinder = setMatcher(postFinder, postSelector);\n }\n\n return markFunction(function (seed, results, context, xml) {\n var temp,\n i,\n elem,\n preMap = [],\n postMap = [],\n preexisting = results.length,\n // Get initial elements from seed or context\n elems = seed || multipleContexts(selector || \"*\", context.nodeType ? [context] : context, []),\n // Prefilter to get matcher input, preserving a map for seed-results synchronization\n matcherIn = preFilter && (seed || !selector) ? condense(elems, preMap, preFilter, context, xml) : elems,\n matcherOut = matcher ? // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n postFinder || (seed ? preFilter : preexisting || postFilter) ? // ...intermediate processing is necessary\n [] : // ...otherwise use results directly\n results : matcherIn; // Find primary matches\n\n if (matcher) {\n matcher(matcherIn, matcherOut, context, xml);\n } // Apply postFilter\n\n\n if (postFilter) {\n temp = condense(matcherOut, postMap);\n postFilter(temp, [], context, xml); // Un-match failing elements by moving them back to matcherIn\n\n i = temp.length;\n\n while (i--) {\n if (elem = temp[i]) {\n matcherOut[postMap[i]] = !(matcherIn[postMap[i]] = elem);\n }\n }\n }\n\n if (seed) {\n if (postFinder || preFilter) {\n if (postFinder) {\n // Get the final matcherOut by condensing this intermediate into postFinder contexts\n temp = [];\n i = matcherOut.length;\n\n while (i--) {\n if (elem = matcherOut[i]) {\n // Restore matcherIn since elem is not yet a final match\n temp.push(matcherIn[i] = elem);\n }\n }\n\n postFinder(null, matcherOut = [], temp, xml);\n } // Move matched elements from seed to results to keep them synchronized\n\n\n i = matcherOut.length;\n\n while (i--) {\n if ((elem = matcherOut[i]) && (temp = postFinder ? indexOf(seed, elem) : preMap[i]) > -1) {\n seed[temp] = !(results[temp] = elem);\n }\n }\n } // Add elements to results, through postFinder if defined\n\n } else {\n matcherOut = condense(matcherOut === results ? matcherOut.splice(preexisting, matcherOut.length) : matcherOut);\n\n if (postFinder) {\n postFinder(null, results, matcherOut, xml);\n } else {\n push.apply(results, matcherOut);\n }\n }\n });\n }\n\n function matcherFromTokens(tokens) {\n var checkContext,\n matcher,\n j,\n len = tokens.length,\n leadingRelative = Expr.relative[tokens[0].type],\n implicitRelative = leadingRelative || Expr.relative[\" \"],\n i = leadingRelative ? 1 : 0,\n // The foundational matcher ensures that elements are reachable from top-level context(s)\n matchContext = addCombinator(function (elem) {\n return elem === checkContext;\n }, implicitRelative, true),\n matchAnyContext = addCombinator(function (elem) {\n return indexOf(checkContext, elem) > -1;\n }, implicitRelative, true),\n matchers = [function (elem, context, xml) {\n var ret = !leadingRelative && (xml || context !== outermostContext) || ((checkContext = context).nodeType ? matchContext(elem, context, xml) : matchAnyContext(elem, context, xml)); // Avoid hanging onto element (issue #299)\n\n checkContext = null;\n return ret;\n }];\n\n for (; i < len; i++) {\n if (matcher = Expr.relative[tokens[i].type]) {\n matchers = [addCombinator(elementMatcher(matchers), matcher)];\n } else {\n matcher = Expr.filter[tokens[i].type].apply(null, tokens[i].matches); // Return special upon seeing a positional matcher\n\n if (matcher[expando]) {\n // Find the next relative operator (if any) for proper handling\n j = ++i;\n\n for (; j < len; j++) {\n if (Expr.relative[tokens[j].type]) {\n break;\n }\n }\n\n return setMatcher(i > 1 && elementMatcher(matchers), i > 1 && toSelector( // If the preceding token was a descendant combinator, insert an implicit any-element `*`\n tokens.slice(0, i - 1).concat({\n value: tokens[i - 2].type === \" \" ? \"*\" : \"\"\n })).replace(rtrim, \"$1\"), matcher, i < j && matcherFromTokens(tokens.slice(i, j)), j < len && matcherFromTokens(tokens = tokens.slice(j)), j < len && toSelector(tokens));\n }\n\n matchers.push(matcher);\n }\n }\n\n return elementMatcher(matchers);\n }\n\n function matcherFromGroupMatchers(elementMatchers, setMatchers) {\n var bySet = setMatchers.length > 0,\n byElement = elementMatchers.length > 0,\n superMatcher = function superMatcher(seed, context, xml, results, outermost) {\n var elem,\n j,\n matcher,\n matchedCount = 0,\n i = \"0\",\n unmatched = seed && [],\n setMatched = [],\n contextBackup = outermostContext,\n // We must always have either seed elements or outermost context\n elems = seed || byElement && Expr.find[\"TAG\"](\"*\", outermost),\n // Use integer dirruns iff this is the outermost matcher\n dirrunsUnique = dirruns += contextBackup == null ? 1 : Math.random() || 0.1,\n len = elems.length;\n\n if (outermost) {\n outermostContext = context === document || context || outermost;\n } // Add elements passing elementMatchers directly to results\n // Support: IE<9, Safari\n // Tolerate NodeList properties (IE: \"length\"; Safari: ) matching elements by id\n\n\n for (; i !== len && (elem = elems[i]) != null; i++) {\n if (byElement && elem) {\n j = 0;\n\n if (!context && elem.ownerDocument !== document) {\n setDocument(elem);\n xml = !documentIsHTML;\n }\n\n while (matcher = elementMatchers[j++]) {\n if (matcher(elem, context || document, xml)) {\n results.push(elem);\n break;\n }\n }\n\n if (outermost) {\n dirruns = dirrunsUnique;\n }\n } // Track unmatched elements for set filters\n\n\n if (bySet) {\n // They will have gone through all possible matchers\n if (elem = !matcher && elem) {\n matchedCount--;\n } // Lengthen the array for every element, matched or not\n\n\n if (seed) {\n unmatched.push(elem);\n }\n }\n } // `i` is now the count of elements visited above, and adding it to `matchedCount`\n // makes the latter nonnegative.\n\n\n matchedCount += i; // Apply set filters to unmatched elements\n // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n // equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n // no element matchers and no seed.\n // Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n // case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n // numerically zero.\n\n if (bySet && i !== matchedCount) {\n j = 0;\n\n while (matcher = setMatchers[j++]) {\n matcher(unmatched, setMatched, context, xml);\n }\n\n if (seed) {\n // Reintegrate element matches to eliminate the need for sorting\n if (matchedCount > 0) {\n while (i--) {\n if (!(unmatched[i] || setMatched[i])) {\n setMatched[i] = pop.call(results);\n }\n }\n } // Discard index placeholder values to get only actual matches\n\n\n setMatched = condense(setMatched);\n } // Add matches to results\n\n\n push.apply(results, setMatched); // Seedless set matches succeeding multiple successful matchers stipulate sorting\n\n if (outermost && !seed && setMatched.length > 0 && matchedCount + setMatchers.length > 1) {\n Sizzle.uniqueSort(results);\n }\n } // Override manipulation of globals by nested matchers\n\n\n if (outermost) {\n dirruns = dirrunsUnique;\n outermostContext = contextBackup;\n }\n\n return unmatched;\n };\n\n return bySet ? markFunction(superMatcher) : superMatcher;\n }\n\n compile = Sizzle.compile = function (selector, match\n /* Internal Use Only */\n ) {\n var i,\n setMatchers = [],\n elementMatchers = [],\n cached = compilerCache[selector + \" \"];\n\n if (!cached) {\n // Generate a function of recursive functions that can be used to check each element\n if (!match) {\n match = tokenize(selector);\n }\n\n i = match.length;\n\n while (i--) {\n cached = matcherFromTokens(match[i]);\n\n if (cached[expando]) {\n setMatchers.push(cached);\n } else {\n elementMatchers.push(cached);\n }\n } // Cache the compiled function\n\n\n cached = compilerCache(selector, matcherFromGroupMatchers(elementMatchers, setMatchers)); // Save selector and tokenization\n\n cached.selector = selector;\n }\n\n return cached;\n };\n /**\n * A low-level selection function that works with Sizzle's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\n\n\n select = Sizzle.select = function (selector, context, results, seed) {\n var i,\n tokens,\n token,\n type,\n find,\n compiled = typeof selector === \"function\" && selector,\n match = !seed && tokenize(selector = compiled.selector || selector);\n results = results || []; // Try to minimize operations if there is only one selector in the list and no seed\n // (the latter of which guarantees us context)\n\n if (match.length === 1) {\n // Reduce context if the leading compound selector is an ID\n tokens = match[0] = match[0].slice(0);\n\n if (tokens.length > 2 && (token = tokens[0]).type === \"ID\" && support.getById && context.nodeType === 9 && documentIsHTML && Expr.relative[tokens[1].type]) {\n context = (Expr.find[\"ID\"](token.matches[0].replace(runescape, funescape), context) || [])[0];\n\n if (!context) {\n return results; // Precompiled matchers will still verify ancestry, so step up a level\n } else if (compiled) {\n context = context.parentNode;\n }\n\n selector = selector.slice(tokens.shift().value.length);\n } // Fetch a seed set for right-to-left matching\n\n\n i = matchExpr[\"needsContext\"].test(selector) ? 0 : tokens.length;\n\n while (i--) {\n token = tokens[i]; // Abort if we hit a combinator\n\n if (Expr.relative[type = token.type]) {\n break;\n }\n\n if (find = Expr.find[type]) {\n // Search, expanding context for leading sibling combinators\n if (seed = find(token.matches[0].replace(runescape, funescape), rsibling.test(tokens[0].type) && testContext(context.parentNode) || context)) {\n // If seed is empty or no tokens remain, we can return early\n tokens.splice(i, 1);\n selector = seed.length && toSelector(tokens);\n\n if (!selector) {\n push.apply(results, seed);\n return results;\n }\n\n break;\n }\n }\n }\n } // Compile and execute a filtering function if one is not provided\n // Provide `match` to avoid retokenization if we modified the selector above\n\n\n (compiled || compile(selector, match))(seed, context, !documentIsHTML, results, !context || rsibling.test(selector) && testContext(context.parentNode) || context);\n return results;\n }; // One-time assignments\n // Sort stability\n\n\n support.sortStable = expando.split(\"\").sort(sortOrder).join(\"\") === expando; // Support: Chrome 14-35+\n // Always assume duplicates if they aren't passed to the comparison function\n\n support.detectDuplicates = !!hasDuplicate; // Initialize against the default document\n\n setDocument(); // Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n // Detached nodes confoundingly follow *each other*\n\n support.sortDetached = assert(function (div1) {\n // Should return 1, but returns 4 (following)\n return div1.compareDocumentPosition(document.createElement(\"div\")) & 1;\n }); // Support: IE<8\n // Prevent attribute/property \"interpolation\"\n // http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\n\n if (!assert(function (div) {\n div.innerHTML = \"\";\n return div.firstChild.getAttribute(\"href\") === \"#\";\n })) {\n addHandle(\"type|href|height|width\", function (elem, name, isXML) {\n if (!isXML) {\n return elem.getAttribute(name, name.toLowerCase() === \"type\" ? 1 : 2);\n }\n });\n } // Support: IE<9\n // Use defaultValue in place of getAttribute(\"value\")\n\n\n if (!support.attributes || !assert(function (div) {\n div.innerHTML = \"\";\n div.firstChild.setAttribute(\"value\", \"\");\n return div.firstChild.getAttribute(\"value\") === \"\";\n })) {\n addHandle(\"value\", function (elem, name, isXML) {\n if (!isXML && elem.nodeName.toLowerCase() === \"input\") {\n return elem.defaultValue;\n }\n });\n } // Support: IE<9\n // Use getAttributeNode to fetch booleans when getAttribute lies\n\n\n if (!assert(function (div) {\n return div.getAttribute(\"disabled\") == null;\n })) {\n addHandle(booleans, function (elem, name, isXML) {\n var val;\n\n if (!isXML) {\n return elem[name] === true ? name.toLowerCase() : (val = elem.getAttributeNode(name)) && val.specified ? val.value : null;\n }\n });\n }\n\n return Sizzle;\n }(window);\n\n jQuery.find = Sizzle;\n jQuery.expr = Sizzle.selectors;\n jQuery.expr[\":\"] = jQuery.expr.pseudos;\n jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\n jQuery.text = Sizzle.getText;\n jQuery.isXMLDoc = Sizzle.isXML;\n jQuery.contains = Sizzle.contains;\n\n var dir = function dir(elem, _dir, until) {\n var matched = [],\n truncate = until !== undefined;\n\n while ((elem = elem[_dir]) && elem.nodeType !== 9) {\n if (elem.nodeType === 1) {\n if (truncate && jQuery(elem).is(until)) {\n break;\n }\n\n matched.push(elem);\n }\n }\n\n return matched;\n };\n\n var _siblings = function siblings(n, elem) {\n var matched = [];\n\n for (; n; n = n.nextSibling) {\n if (n.nodeType === 1 && n !== elem) {\n matched.push(n);\n }\n }\n\n return matched;\n };\n\n var rneedsContext = jQuery.expr.match.needsContext;\n var rsingleTag = /^<([\\w-]+)\\s*\\/?>(?:<\\/\\1>|)$/;\n var risSimple = /^.[^:#\\[\\.,]*$/; // Implement the identical functionality for filter and not\n\n function winnow(elements, qualifier, not) {\n if (jQuery.isFunction(qualifier)) {\n return jQuery.grep(elements, function (elem, i) {\n /* jshint -W018 */\n return !!qualifier.call(elem, i, elem) !== not;\n });\n }\n\n if (qualifier.nodeType) {\n return jQuery.grep(elements, function (elem) {\n return elem === qualifier !== not;\n });\n }\n\n if (typeof qualifier === \"string\") {\n if (risSimple.test(qualifier)) {\n return jQuery.filter(qualifier, elements, not);\n }\n\n qualifier = jQuery.filter(qualifier, elements);\n }\n\n return jQuery.grep(elements, function (elem) {\n return jQuery.inArray(elem, qualifier) > -1 !== not;\n });\n }\n\n jQuery.filter = function (expr, elems, not) {\n var elem = elems[0];\n\n if (not) {\n expr = \":not(\" + expr + \")\";\n }\n\n return elems.length === 1 && elem.nodeType === 1 ? jQuery.find.matchesSelector(elem, expr) ? [elem] : [] : jQuery.find.matches(expr, jQuery.grep(elems, function (elem) {\n return elem.nodeType === 1;\n }));\n };\n\n jQuery.fn.extend({\n find: function find(selector) {\n var i,\n ret = [],\n self = this,\n len = self.length;\n\n if (typeof selector !== \"string\") {\n return this.pushStack(jQuery(selector).filter(function () {\n for (i = 0; i < len; i++) {\n if (jQuery.contains(self[i], this)) {\n return true;\n }\n }\n }));\n }\n\n for (i = 0; i < len; i++) {\n jQuery.find(selector, self[i], ret);\n } // Needed because $( selector, context ) becomes $( context ).find( selector )\n\n\n ret = this.pushStack(len > 1 ? jQuery.unique(ret) : ret);\n ret.selector = this.selector ? this.selector + \" \" + selector : selector;\n return ret;\n },\n filter: function filter(selector) {\n return this.pushStack(winnow(this, selector || [], false));\n },\n not: function not(selector) {\n return this.pushStack(winnow(this, selector || [], true));\n },\n is: function is(selector) {\n return !!winnow(this, // If this is a positional/relative selector, check membership in the returned set\n // so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n typeof selector === \"string\" && rneedsContext.test(selector) ? jQuery(selector) : selector || [], false).length;\n }\n }); // Initialize a jQuery object\n // A central reference to the root jQuery(document)\n\n var rootjQuery,\n // A simple way to check for HTML strings\n // Prioritize #id over to avoid XSS via location.hash (#9521)\n // Strict HTML recognition (#11290: must start with <)\n rquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]*))$/,\n init = jQuery.fn.init = function (selector, context, root) {\n var match, elem; // HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\n if (!selector) {\n return this;\n } // init accepts an alternate rootjQuery\n // so migrate can support jQuery.sub (gh-2101)\n\n\n root = root || rootjQuery; // Handle HTML strings\n\n if (typeof selector === \"string\") {\n if (selector.charAt(0) === \"<\" && selector.charAt(selector.length - 1) === \">\" && selector.length >= 3) {\n // Assume that strings that start and end with <> are HTML and skip the regex check\n match = [null, selector, null];\n } else {\n match = rquickExpr.exec(selector);\n } // Match html or make sure no context is specified for #id\n\n\n if (match && (match[1] || !context)) {\n // HANDLE: $(html) -> $(array)\n if (match[1]) {\n context = context instanceof jQuery ? context[0] : context; // scripts is true for back-compat\n // Intentionally let the error be thrown if parseHTML is not present\n\n jQuery.merge(this, jQuery.parseHTML(match[1], context && context.nodeType ? context.ownerDocument || context : document, true)); // HANDLE: $(html, props)\n\n if (rsingleTag.test(match[1]) && jQuery.isPlainObject(context)) {\n for (match in context) {\n // Properties of context are called as methods if possible\n if (jQuery.isFunction(this[match])) {\n this[match](context[match]); // ...and otherwise set as attributes\n } else {\n this.attr(match, context[match]);\n }\n }\n }\n\n return this; // HANDLE: $(#id)\n } else {\n elem = document.getElementById(match[2]); // Check parentNode to catch when Blackberry 4.6 returns\n // nodes that are no longer in the document #6963\n\n if (elem && elem.parentNode) {\n // Handle the case where IE and Opera return items\n // by name instead of ID\n if (elem.id !== match[2]) {\n return rootjQuery.find(selector);\n } // Otherwise, we inject the element directly into the jQuery object\n\n\n this.length = 1;\n this[0] = elem;\n }\n\n this.context = document;\n this.selector = selector;\n return this;\n } // HANDLE: $(expr, $(...))\n\n } else if (!context || context.jquery) {\n return (context || root).find(selector); // HANDLE: $(expr, context)\n // (which is just equivalent to: $(context).find(expr)\n } else {\n return this.constructor(context).find(selector);\n } // HANDLE: $(DOMElement)\n\n } else if (selector.nodeType) {\n this.context = this[0] = selector;\n this.length = 1;\n return this; // HANDLE: $(function)\n // Shortcut for document ready\n } else if (jQuery.isFunction(selector)) {\n return typeof root.ready !== \"undefined\" ? root.ready(selector) : // Execute immediately if ready is not present\n selector(jQuery);\n }\n\n if (selector.selector !== undefined) {\n this.selector = selector.selector;\n this.context = selector.context;\n }\n\n return jQuery.makeArray(selector, this);\n }; // Give the init function the jQuery prototype for later instantiation\n\n\n init.prototype = jQuery.fn; // Initialize central reference\n\n rootjQuery = jQuery(document);\n var rparentsprev = /^(?:parents|prev(?:Until|All))/,\n // methods guaranteed to produce a unique set when starting from a unique set\n guaranteedUnique = {\n children: true,\n contents: true,\n next: true,\n prev: true\n };\n jQuery.fn.extend({\n has: function has(target) {\n var i,\n targets = jQuery(target, this),\n len = targets.length;\n return this.filter(function () {\n for (i = 0; i < len; i++) {\n if (jQuery.contains(this, targets[i])) {\n return true;\n }\n }\n });\n },\n closest: function closest(selectors, context) {\n var cur,\n i = 0,\n l = this.length,\n matched = [],\n pos = rneedsContext.test(selectors) || typeof selectors !== \"string\" ? jQuery(selectors, context || this.context) : 0;\n\n for (; i < l; i++) {\n for (cur = this[i]; cur && cur !== context; cur = cur.parentNode) {\n // Always skip document fragments\n if (cur.nodeType < 11 && (pos ? pos.index(cur) > -1 : // Don't pass non-elements to Sizzle\n cur.nodeType === 1 && jQuery.find.matchesSelector(cur, selectors))) {\n matched.push(cur);\n break;\n }\n }\n }\n\n return this.pushStack(matched.length > 1 ? jQuery.uniqueSort(matched) : matched);\n },\n // Determine the position of an element within\n // the matched set of elements\n index: function index(elem) {\n // No argument, return index in parent\n if (!elem) {\n return this[0] && this[0].parentNode ? this.first().prevAll().length : -1;\n } // index in selector\n\n\n if (typeof elem === \"string\") {\n return jQuery.inArray(this[0], jQuery(elem));\n } // Locate the position of the desired element\n\n\n return jQuery.inArray( // If it receives a jQuery object, the first element is used\n elem.jquery ? elem[0] : elem, this);\n },\n add: function add(selector, context) {\n return this.pushStack(jQuery.uniqueSort(jQuery.merge(this.get(), jQuery(selector, context))));\n },\n addBack: function addBack(selector) {\n return this.add(selector == null ? this.prevObject : this.prevObject.filter(selector));\n }\n });\n\n function sibling(cur, dir) {\n do {\n cur = cur[dir];\n } while (cur && cur.nodeType !== 1);\n\n return cur;\n }\n\n jQuery.each({\n parent: function parent(elem) {\n var parent = elem.parentNode;\n return parent && parent.nodeType !== 11 ? parent : null;\n },\n parents: function parents(elem) {\n return dir(elem, \"parentNode\");\n },\n parentsUntil: function parentsUntil(elem, i, until) {\n return dir(elem, \"parentNode\", until);\n },\n next: function next(elem) {\n return sibling(elem, \"nextSibling\");\n },\n prev: function prev(elem) {\n return sibling(elem, \"previousSibling\");\n },\n nextAll: function nextAll(elem) {\n return dir(elem, \"nextSibling\");\n },\n prevAll: function prevAll(elem) {\n return dir(elem, \"previousSibling\");\n },\n nextUntil: function nextUntil(elem, i, until) {\n return dir(elem, \"nextSibling\", until);\n },\n prevUntil: function prevUntil(elem, i, until) {\n return dir(elem, \"previousSibling\", until);\n },\n siblings: function siblings(elem) {\n return _siblings((elem.parentNode || {}).firstChild, elem);\n },\n children: function children(elem) {\n return _siblings(elem.firstChild);\n },\n contents: function contents(elem) {\n return jQuery.nodeName(elem, \"iframe\") ? elem.contentDocument || elem.contentWindow.document : jQuery.merge([], elem.childNodes);\n }\n }, function (name, fn) {\n jQuery.fn[name] = function (until, selector) {\n var ret = jQuery.map(this, fn, until);\n\n if (name.slice(-5) !== \"Until\") {\n selector = until;\n }\n\n if (selector && typeof selector === \"string\") {\n ret = jQuery.filter(selector, ret);\n }\n\n if (this.length > 1) {\n // Remove duplicates\n if (!guaranteedUnique[name]) {\n ret = jQuery.uniqueSort(ret);\n } // Reverse order for parents* and prev-derivatives\n\n\n if (rparentsprev.test(name)) {\n ret = ret.reverse();\n }\n }\n\n return this.pushStack(ret);\n };\n });\n var rnotwhite = /\\S+/g; // Convert String-formatted options into Object-formatted ones\n\n function createOptions(options) {\n var object = {};\n jQuery.each(options.match(rnotwhite) || [], function (_, flag) {\n object[flag] = true;\n });\n return object;\n }\n /*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\n\n\n jQuery.Callbacks = function (options) {\n // Convert options from String-formatted to Object-formatted if needed\n // (we check in cache first)\n options = typeof options === \"string\" ? createOptions(options) : jQuery.extend({}, options);\n\n var // Flag to know if list is currently firing\n firing,\n // Last fire value for non-forgettable lists\n memory,\n // Flag to know if list was already fired\n _fired,\n // Flag to prevent firing\n _locked,\n // Actual callback list\n list = [],\n // Queue of execution data for repeatable lists\n queue = [],\n // Index of currently firing callback (modified by add/remove as needed)\n firingIndex = -1,\n // Fire callbacks\n fire = function fire() {\n // Enforce single-firing\n _locked = options.once; // Execute callbacks for all pending executions,\n // respecting firingIndex overrides and runtime changes\n\n _fired = firing = true;\n\n for (; queue.length; firingIndex = -1) {\n memory = queue.shift();\n\n while (++firingIndex < list.length) {\n // Run callback and check for early termination\n if (list[firingIndex].apply(memory[0], memory[1]) === false && options.stopOnFalse) {\n // Jump to end and forget the data so .add doesn't re-fire\n firingIndex = list.length;\n memory = false;\n }\n }\n } // Forget the data if we're done with it\n\n\n if (!options.memory) {\n memory = false;\n }\n\n firing = false; // Clean up if we're done firing for good\n\n if (_locked) {\n // Keep an empty list if we have data for future add calls\n if (memory) {\n list = []; // Otherwise, this object is spent\n } else {\n list = \"\";\n }\n }\n },\n // Actual Callbacks object\n self = {\n // Add a callback or a collection of callbacks to the list\n add: function add() {\n if (list) {\n // If we have memory from a past run, we should fire after adding\n if (memory && !firing) {\n firingIndex = list.length - 1;\n queue.push(memory);\n }\n\n (function add(args) {\n jQuery.each(args, function (_, arg) {\n if (jQuery.isFunction(arg)) {\n if (!options.unique || !self.has(arg)) {\n list.push(arg);\n }\n } else if (arg && arg.length && jQuery.type(arg) !== \"string\") {\n // Inspect recursively\n add(arg);\n }\n });\n })(arguments);\n\n if (memory && !firing) {\n fire();\n }\n }\n\n return this;\n },\n // Remove a callback from the list\n remove: function remove() {\n jQuery.each(arguments, function (_, arg) {\n var index;\n\n while ((index = jQuery.inArray(arg, list, index)) > -1) {\n list.splice(index, 1); // Handle firing indexes\n\n if (index <= firingIndex) {\n firingIndex--;\n }\n }\n });\n return this;\n },\n // Check if a given callback is in the list.\n // If no argument is given, return whether or not list has callbacks attached.\n has: function has(fn) {\n return fn ? jQuery.inArray(fn, list) > -1 : list.length > 0;\n },\n // Remove all callbacks from the list\n empty: function empty() {\n if (list) {\n list = [];\n }\n\n return this;\n },\n // Disable .fire and .add\n // Abort any current/pending executions\n // Clear all callbacks and values\n disable: function disable() {\n _locked = queue = [];\n list = memory = \"\";\n return this;\n },\n disabled: function disabled() {\n return !list;\n },\n // Disable .fire\n // Also disable .add unless we have memory (since it would have no effect)\n // Abort any pending executions\n lock: function lock() {\n _locked = true;\n\n if (!memory) {\n self.disable();\n }\n\n return this;\n },\n locked: function locked() {\n return !!_locked;\n },\n // Call all callbacks with the given context and arguments\n fireWith: function fireWith(context, args) {\n if (!_locked) {\n args = args || [];\n args = [context, args.slice ? args.slice() : args];\n queue.push(args);\n\n if (!firing) {\n fire();\n }\n }\n\n return this;\n },\n // Call all the callbacks with the given arguments\n fire: function fire() {\n self.fireWith(this, arguments);\n return this;\n },\n // To know if the callbacks have already been called at least once\n fired: function fired() {\n return !!_fired;\n }\n };\n\n return self;\n };\n\n jQuery.extend({\n Deferred: function Deferred(func) {\n var tuples = [// action, add listener, listener list, final state\n [\"resolve\", \"done\", jQuery.Callbacks(\"once memory\"), \"resolved\"], [\"reject\", \"fail\", jQuery.Callbacks(\"once memory\"), \"rejected\"], [\"notify\", \"progress\", jQuery.Callbacks(\"memory\")]],\n _state = \"pending\",\n _promise = {\n state: function state() {\n return _state;\n },\n always: function always() {\n deferred.done(arguments).fail(arguments);\n return this;\n },\n then: function then()\n /* fnDone, fnFail, fnProgress */\n {\n var fns = arguments;\n return jQuery.Deferred(function (newDefer) {\n jQuery.each(tuples, function (i, tuple) {\n var fn = jQuery.isFunction(fns[i]) && fns[i]; // deferred[ done | fail | progress ] for forwarding actions to newDefer\n\n deferred[tuple[1]](function () {\n var returned = fn && fn.apply(this, arguments);\n\n if (returned && jQuery.isFunction(returned.promise)) {\n returned.promise().progress(newDefer.notify).done(newDefer.resolve).fail(newDefer.reject);\n } else {\n newDefer[tuple[0] + \"With\"](this === _promise ? newDefer.promise() : this, fn ? [returned] : arguments);\n }\n });\n });\n fns = null;\n }).promise();\n },\n // Get a promise for this deferred\n // If obj is provided, the promise aspect is added to the object\n promise: function promise(obj) {\n return obj != null ? jQuery.extend(obj, _promise) : _promise;\n }\n },\n deferred = {}; // Keep pipe for back-compat\n\n _promise.pipe = _promise.then; // Add list-specific methods\n\n jQuery.each(tuples, function (i, tuple) {\n var list = tuple[2],\n stateString = tuple[3]; // promise[ done | fail | progress ] = list.add\n\n _promise[tuple[1]] = list.add; // Handle state\n\n if (stateString) {\n list.add(function () {\n // state = [ resolved | rejected ]\n _state = stateString; // [ reject_list | resolve_list ].disable; progress_list.lock\n }, tuples[i ^ 1][2].disable, tuples[2][2].lock);\n } // deferred[ resolve | reject | notify ]\n\n\n deferred[tuple[0]] = function () {\n deferred[tuple[0] + \"With\"](this === deferred ? _promise : this, arguments);\n return this;\n };\n\n deferred[tuple[0] + \"With\"] = list.fireWith;\n }); // Make the deferred a promise\n\n _promise.promise(deferred); // Call given func if any\n\n\n if (func) {\n func.call(deferred, deferred);\n } // All done!\n\n\n return deferred;\n },\n // Deferred helper\n when: function when(subordinate\n /* , ..., subordinateN */\n ) {\n var i = 0,\n resolveValues = _slice.call(arguments),\n length = resolveValues.length,\n // the count of uncompleted subordinates\n remaining = length !== 1 || subordinate && jQuery.isFunction(subordinate.promise) ? length : 0,\n // the master Deferred.\n // If resolveValues consist of only a single Deferred, just use that.\n deferred = remaining === 1 ? subordinate : jQuery.Deferred(),\n // Update function for both resolve and progress values\n updateFunc = function updateFunc(i, contexts, values) {\n return function (value) {\n contexts[i] = this;\n values[i] = arguments.length > 1 ? _slice.call(arguments) : value;\n\n if (values === progressValues) {\n deferred.notifyWith(contexts, values);\n } else if (! --remaining) {\n deferred.resolveWith(contexts, values);\n }\n };\n },\n progressValues,\n progressContexts,\n resolveContexts; // add listeners to Deferred subordinates; treat others as resolved\n\n\n if (length > 1) {\n progressValues = new Array(length);\n progressContexts = new Array(length);\n resolveContexts = new Array(length);\n\n for (; i < length; i++) {\n if (resolveValues[i] && jQuery.isFunction(resolveValues[i].promise)) {\n resolveValues[i].promise().progress(updateFunc(i, progressContexts, progressValues)).done(updateFunc(i, resolveContexts, resolveValues)).fail(deferred.reject);\n } else {\n --remaining;\n }\n }\n } // if we're not waiting on anything, resolve the master\n\n\n if (!remaining) {\n deferred.resolveWith(resolveContexts, resolveValues);\n }\n\n return deferred.promise();\n }\n }); // The deferred used on DOM ready\n\n var readyList;\n\n jQuery.fn.ready = function (fn) {\n // Add the callback\n jQuery.ready.promise().done(fn);\n return this;\n };\n\n jQuery.extend({\n // Is the DOM ready to be used? Set to true once it occurs.\n isReady: false,\n // A counter to track how many items to wait for before\n // the ready event fires. See #6781\n readyWait: 1,\n // Hold (or release) the ready event\n holdReady: function holdReady(hold) {\n if (hold) {\n jQuery.readyWait++;\n } else {\n jQuery.ready(true);\n }\n },\n // Handle when the DOM is ready\n ready: function ready(wait) {\n // Abort if there are pending holds or we're already ready\n if (wait === true ? --jQuery.readyWait : jQuery.isReady) {\n return;\n } // Remember that the DOM is ready\n\n\n jQuery.isReady = true; // If a normal DOM Ready event fired, decrement, and wait if need be\n\n if (wait !== true && --jQuery.readyWait > 0) {\n return;\n } // If there are functions bound, to execute\n\n\n readyList.resolveWith(document, [jQuery]); // Trigger any bound ready events\n\n if (jQuery.fn.triggerHandler) {\n jQuery(document).triggerHandler(\"ready\");\n jQuery(document).off(\"ready\");\n }\n }\n });\n /**\n * Clean-up method for dom ready events\n */\n\n function detach() {\n if (document.addEventListener) {\n document.removeEventListener(\"DOMContentLoaded\", completed);\n window.removeEventListener(\"load\", completed);\n } else {\n document.detachEvent(\"onreadystatechange\", completed);\n window.detachEvent(\"onload\", completed);\n }\n }\n /**\n * The ready event handler and self cleanup method\n */\n\n\n function completed() {\n // readyState === \"complete\" is good enough for us to call the dom ready in oldIE\n if (document.addEventListener || window.event.type === \"load\" || document.readyState === \"complete\") {\n detach();\n jQuery.ready();\n }\n }\n\n jQuery.ready.promise = function (obj) {\n if (!readyList) {\n readyList = jQuery.Deferred(); // Catch cases where $(document).ready() is called\n // after the browser event has already occurred.\n // Support: IE6-10\n // Older IE sometimes signals \"interactive\" too soon\n\n if (document.readyState === \"complete\" || document.readyState !== \"loading\" && !document.documentElement.doScroll) {\n // Handle it asynchronously to allow scripts the opportunity to delay ready\n window.setTimeout(jQuery.ready); // Standards-based browsers support DOMContentLoaded\n } else if (document.addEventListener) {\n // Use the handy event callback\n document.addEventListener(\"DOMContentLoaded\", completed); // A fallback to window.onload, that will always work\n\n window.addEventListener(\"load\", completed); // If IE event model is used\n } else {\n // Ensure firing before onload, maybe late but safe also for iframes\n document.attachEvent(\"onreadystatechange\", completed); // A fallback to window.onload, that will always work\n\n window.attachEvent(\"onload\", completed); // If IE and not a frame\n // continually check to see if the document is ready\n\n var top = false;\n\n try {\n top = window.frameElement == null && document.documentElement;\n } catch (e) {}\n\n if (top && top.doScroll) {\n (function doScrollCheck() {\n if (!jQuery.isReady) {\n try {\n // Use the trick by Diego Perini\n // http://javascript.nwbox.com/IEContentLoaded/\n top.doScroll(\"left\");\n } catch (e) {\n return window.setTimeout(doScrollCheck, 50);\n } // detach all dom ready events\n\n\n detach(); // and execute any waiting functions\n\n jQuery.ready();\n }\n })();\n }\n }\n }\n\n return readyList.promise(obj);\n }; // Kick off the DOM ready check even if the user does not\n\n\n jQuery.ready.promise(); // Support: IE<9\n // Iteration over object's inherited properties before its own\n\n var i;\n\n for (i in jQuery(support)) {\n break;\n }\n\n support.ownFirst = i === \"0\"; // Note: most support tests are defined in their respective modules.\n // false until the test is run\n\n support.inlineBlockNeedsLayout = false; // Execute ASAP in case we need to set body.style.zoom\n\n jQuery(function () {\n // Minified: var a,b,c,d\n var val, div, body, container;\n body = document.getElementsByTagName(\"body\")[0];\n\n if (!body || !body.style) {\n // Return for frameset docs that don't have a body\n return;\n } // Setup\n\n\n div = document.createElement(\"div\");\n container = document.createElement(\"div\");\n container.style.cssText = \"position:absolute;border:0;width:0;height:0;top:0;left:-9999px\";\n body.appendChild(container).appendChild(div);\n\n if (typeof div.style.zoom !== \"undefined\") {\n // Support: IE<8\n // Check if natively block-level elements act like inline-block\n // elements when setting their display to 'inline' and giving\n // them layout\n div.style.cssText = \"display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1\";\n support.inlineBlockNeedsLayout = val = div.offsetWidth === 3;\n\n if (val) {\n // Prevent IE 6 from affecting layout for positioned elements #11048\n // Prevent IE from shrinking the body in IE 7 mode #12869\n // Support: IE<8\n body.style.zoom = 1;\n }\n }\n\n body.removeChild(container);\n });\n\n (function () {\n var div = document.createElement(\"div\"); // Support: IE<9\n\n support.deleteExpando = true;\n\n try {\n delete div.test;\n } catch (e) {\n support.deleteExpando = false;\n } // Null elements to avoid leaks in IE.\n\n\n div = null;\n })();\n\n var acceptData = function acceptData(elem) {\n var noData = jQuery.noData[(elem.nodeName + \" \").toLowerCase()],\n nodeType = +elem.nodeType || 1; // Do not set data on non-element DOM nodes because it will not be cleared (#8335).\n\n return nodeType !== 1 && nodeType !== 9 ? false : // Nodes accept data unless otherwise specified; rejection can be conditional\n !noData || noData !== true && elem.getAttribute(\"classid\") === noData;\n };\n\n var rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n rmultiDash = /([A-Z])/g;\n\n function dataAttr(elem, key, data) {\n // If nothing was found internally, try to fetch any\n // data from the HTML5 data-* attribute\n if (data === undefined && elem.nodeType === 1) {\n var name = \"data-\" + key.replace(rmultiDash, \"-$1\").toLowerCase();\n data = elem.getAttribute(name);\n\n if (typeof data === \"string\") {\n try {\n data = data === \"true\" ? true : data === \"false\" ? false : data === \"null\" ? null : // Only convert to a number if it doesn't change the string\n +data + \"\" === data ? +data : rbrace.test(data) ? jQuery.parseJSON(data) : data;\n } catch (e) {} // Make sure we set the data so it isn't changed later\n\n\n jQuery.data(elem, key, data);\n } else {\n data = undefined;\n }\n }\n\n return data;\n } // checks a cache object for emptiness\n\n\n function isEmptyDataObject(obj) {\n var name;\n\n for (name in obj) {\n // if the public data object is empty, the private is still empty\n if (name === \"data\" && jQuery.isEmptyObject(obj[name])) {\n continue;\n }\n\n if (name !== \"toJSON\") {\n return false;\n }\n }\n\n return true;\n }\n\n function internalData(elem, name, data, pvt\n /* Internal Use Only */\n ) {\n if (!acceptData(elem)) {\n return;\n }\n\n var ret,\n thisCache,\n internalKey = jQuery.expando,\n // We have to handle DOM nodes and JS objects differently because IE6-7\n // can't GC object references properly across the DOM-JS boundary\n isNode = elem.nodeType,\n // Only DOM nodes need the global jQuery cache; JS object data is\n // attached directly to the object so GC can occur automatically\n cache = isNode ? jQuery.cache : elem,\n // Only defining an ID for JS objects if its cache already exists allows\n // the code to shortcut on the same path as a DOM node with no cache\n id = isNode ? elem[internalKey] : elem[internalKey] && internalKey; // Avoid doing any more work than we need to when trying to get data on an\n // object that has no data at all\n\n if ((!id || !cache[id] || !pvt && !cache[id].data) && data === undefined && typeof name === \"string\") {\n return;\n }\n\n if (!id) {\n // Only DOM nodes need a new unique ID for each element since their data\n // ends up in the global cache\n if (isNode) {\n id = elem[internalKey] = deletedIds.pop() || jQuery.guid++;\n } else {\n id = internalKey;\n }\n }\n\n if (!cache[id]) {\n // Avoid exposing jQuery metadata on plain JS objects when the object\n // is serialized using JSON.stringify\n cache[id] = isNode ? {} : {\n toJSON: jQuery.noop\n };\n } // An object can be passed to jQuery.data instead of a key/value pair; this gets\n // shallow copied over onto the existing cache\n\n\n if (_typeof(name) === \"object\" || typeof name === \"function\") {\n if (pvt) {\n cache[id] = jQuery.extend(cache[id], name);\n } else {\n cache[id].data = jQuery.extend(cache[id].data, name);\n }\n }\n\n thisCache = cache[id]; // jQuery data() is stored in a separate object inside the object's internal data\n // cache in order to avoid key collisions between internal data and user-defined\n // data.\n\n if (!pvt) {\n if (!thisCache.data) {\n thisCache.data = {};\n }\n\n thisCache = thisCache.data;\n }\n\n if (data !== undefined) {\n thisCache[jQuery.camelCase(name)] = data;\n } // Check for both converted-to-camel and non-converted data property names\n // If a data property was specified\n\n\n if (typeof name === \"string\") {\n // First Try to find as-is property data\n ret = thisCache[name]; // Test for null|undefined property data\n\n if (ret == null) {\n // Try to find the camelCased property\n ret = thisCache[jQuery.camelCase(name)];\n }\n } else {\n ret = thisCache;\n }\n\n return ret;\n }\n\n function internalRemoveData(elem, name, pvt) {\n if (!acceptData(elem)) {\n return;\n }\n\n var thisCache,\n i,\n isNode = elem.nodeType,\n // See jQuery.data for more information\n cache = isNode ? jQuery.cache : elem,\n id = isNode ? elem[jQuery.expando] : jQuery.expando; // If there is already no cache entry for this object, there is no\n // purpose in continuing\n\n if (!cache[id]) {\n return;\n }\n\n if (name) {\n thisCache = pvt ? cache[id] : cache[id].data;\n\n if (thisCache) {\n // Support array or space separated string names for data keys\n if (!jQuery.isArray(name)) {\n // try the string as a key before any manipulation\n if (name in thisCache) {\n name = [name];\n } else {\n // split the camel cased version by spaces unless a key with the spaces exists\n name = jQuery.camelCase(name);\n\n if (name in thisCache) {\n name = [name];\n } else {\n name = name.split(\" \");\n }\n }\n } else {\n // If \"name\" is an array of keys...\n // When data is initially created, via (\"key\", \"val\") signature,\n // keys will be converted to camelCase.\n // Since there is no way to tell _how_ a key was added, remove\n // both plain key and camelCase key. #12786\n // This will only penalize the array argument path.\n name = name.concat(jQuery.map(name, jQuery.camelCase));\n }\n\n i = name.length;\n\n while (i--) {\n delete thisCache[name[i]];\n } // If there is no data left in the cache, we want to continue\n // and let the cache object itself get destroyed\n\n\n if (pvt ? !isEmptyDataObject(thisCache) : !jQuery.isEmptyObject(thisCache)) {\n return;\n }\n }\n } // See jQuery.data for more information\n\n\n if (!pvt) {\n delete cache[id].data; // Don't destroy the parent cache unless the internal data object\n // had been the only thing left in it\n\n if (!isEmptyDataObject(cache[id])) {\n return;\n }\n } // Destroy the cache\n\n\n if (isNode) {\n jQuery.cleanData([elem], true); // Use delete when supported for expandos or `cache` is not a window per isWindow (#10080)\n\n /* jshint eqeqeq: false */\n } else if (support.deleteExpando || cache != cache.window) {\n /* jshint eqeqeq: true */\n delete cache[id]; // When all else fails, undefined\n } else {\n cache[id] = undefined;\n }\n }\n\n jQuery.extend({\n cache: {},\n // The following elements (space-suffixed to avoid Object.prototype collisions)\n // throw uncatchable exceptions if you attempt to set expando properties\n noData: {\n \"applet \": true,\n \"embed \": true,\n // ...but Flash objects (which have this classid) *can* handle expandos\n \"object \": \"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\"\n },\n hasData: function hasData(elem) {\n elem = elem.nodeType ? jQuery.cache[elem[jQuery.expando]] : elem[jQuery.expando];\n return !!elem && !isEmptyDataObject(elem);\n },\n data: function data(elem, name, _data) {\n return internalData(elem, name, _data);\n },\n removeData: function removeData(elem, name) {\n return internalRemoveData(elem, name);\n },\n // For internal use only.\n _data: function _data(elem, name, data) {\n return internalData(elem, name, data, true);\n },\n _removeData: function _removeData(elem, name) {\n return internalRemoveData(elem, name, true);\n }\n });\n jQuery.fn.extend({\n data: function data(key, value) {\n var i,\n name,\n data,\n elem = this[0],\n attrs = elem && elem.attributes; // Special expections of .data basically thwart jQuery.access,\n // so implement the relevant behavior ourselves\n // Gets all values\n\n if (key === undefined) {\n if (this.length) {\n data = jQuery.data(elem);\n\n if (elem.nodeType === 1 && !jQuery._data(elem, \"parsedAttrs\")) {\n i = attrs.length;\n\n while (i--) {\n // Support: IE11+\n // The attrs elements can be null (#14894)\n if (attrs[i]) {\n name = attrs[i].name;\n\n if (name.indexOf(\"data-\") === 0) {\n name = jQuery.camelCase(name.slice(5));\n dataAttr(elem, name, data[name]);\n }\n }\n }\n\n jQuery._data(elem, \"parsedAttrs\", true);\n }\n }\n\n return data;\n } // Sets multiple values\n\n\n if (_typeof(key) === \"object\") {\n return this.each(function () {\n jQuery.data(this, key);\n });\n }\n\n return arguments.length > 1 ? // Sets one value\n this.each(function () {\n jQuery.data(this, key, value);\n }) : // Gets one value\n // Try to fetch any internally stored data first\n elem ? dataAttr(elem, key, jQuery.data(elem, key)) : undefined;\n },\n removeData: function removeData(key) {\n return this.each(function () {\n jQuery.removeData(this, key);\n });\n }\n });\n jQuery.extend({\n queue: function queue(elem, type, data) {\n var queue;\n\n if (elem) {\n type = (type || \"fx\") + \"queue\";\n queue = jQuery._data(elem, type); // Speed up dequeue by getting out quickly if this is just a lookup\n\n if (data) {\n if (!queue || jQuery.isArray(data)) {\n queue = jQuery._data(elem, type, jQuery.makeArray(data));\n } else {\n queue.push(data);\n }\n }\n\n return queue || [];\n }\n },\n dequeue: function dequeue(elem, type) {\n type = type || \"fx\";\n\n var queue = jQuery.queue(elem, type),\n startLength = queue.length,\n fn = queue.shift(),\n hooks = jQuery._queueHooks(elem, type),\n next = function next() {\n jQuery.dequeue(elem, type);\n }; // If the fx queue is dequeued, always remove the progress sentinel\n\n\n if (fn === \"inprogress\") {\n fn = queue.shift();\n startLength--;\n }\n\n if (fn) {\n // Add a progress sentinel to prevent the fx queue from being\n // automatically dequeued\n if (type === \"fx\") {\n queue.unshift(\"inprogress\");\n } // clear up the last queue stop function\n\n\n delete hooks.stop;\n fn.call(elem, next, hooks);\n }\n\n if (!startLength && hooks) {\n hooks.empty.fire();\n }\n },\n // not intended for public consumption - generates a queueHooks object,\n // or returns the current one\n _queueHooks: function _queueHooks(elem, type) {\n var key = type + \"queueHooks\";\n return jQuery._data(elem, key) || jQuery._data(elem, key, {\n empty: jQuery.Callbacks(\"once memory\").add(function () {\n jQuery._removeData(elem, type + \"queue\");\n\n jQuery._removeData(elem, key);\n })\n });\n }\n });\n jQuery.fn.extend({\n queue: function queue(type, data) {\n var setter = 2;\n\n if (typeof type !== \"string\") {\n data = type;\n type = \"fx\";\n setter--;\n }\n\n if (arguments.length < setter) {\n return jQuery.queue(this[0], type);\n }\n\n return data === undefined ? this : this.each(function () {\n var queue = jQuery.queue(this, type, data); // ensure a hooks for this queue\n\n jQuery._queueHooks(this, type);\n\n if (type === \"fx\" && queue[0] !== \"inprogress\") {\n jQuery.dequeue(this, type);\n }\n });\n },\n dequeue: function dequeue(type) {\n return this.each(function () {\n jQuery.dequeue(this, type);\n });\n },\n clearQueue: function clearQueue(type) {\n return this.queue(type || \"fx\", []);\n },\n // Get a promise resolved when queues of a certain type\n // are emptied (fx is the type by default)\n promise: function promise(type, obj) {\n var tmp,\n count = 1,\n defer = jQuery.Deferred(),\n elements = this,\n i = this.length,\n resolve = function resolve() {\n if (! --count) {\n defer.resolveWith(elements, [elements]);\n }\n };\n\n if (typeof type !== \"string\") {\n obj = type;\n type = undefined;\n }\n\n type = type || \"fx\";\n\n while (i--) {\n tmp = jQuery._data(elements[i], type + \"queueHooks\");\n\n if (tmp && tmp.empty) {\n count++;\n tmp.empty.add(resolve);\n }\n }\n\n resolve();\n return defer.promise(obj);\n }\n });\n\n (function () {\n var shrinkWrapBlocksVal;\n\n support.shrinkWrapBlocks = function () {\n if (shrinkWrapBlocksVal != null) {\n return shrinkWrapBlocksVal;\n } // Will be changed later if needed.\n\n\n shrinkWrapBlocksVal = false; // Minified: var b,c,d\n\n var div, body, container;\n body = document.getElementsByTagName(\"body\")[0];\n\n if (!body || !body.style) {\n // Test fired too early or in an unsupported environment, exit.\n return;\n } // Setup\n\n\n div = document.createElement(\"div\");\n container = document.createElement(\"div\");\n container.style.cssText = \"position:absolute;border:0;width:0;height:0;top:0;left:-9999px\";\n body.appendChild(container).appendChild(div); // Support: IE6\n // Check if elements with layout shrink-wrap their children\n\n if (typeof div.style.zoom !== \"undefined\") {\n // Reset CSS: box-sizing; display; margin; border\n div.style.cssText = // Support: Firefox<29, Android 2.3\n // Vendor-prefix box-sizing\n \"-webkit-box-sizing:content-box;-moz-box-sizing:content-box;\" + \"box-sizing:content-box;display:block;margin:0;border:0;\" + \"padding:1px;width:1px;zoom:1\";\n div.appendChild(document.createElement(\"div\")).style.width = \"5px\";\n shrinkWrapBlocksVal = div.offsetWidth !== 3;\n }\n\n body.removeChild(container);\n return shrinkWrapBlocksVal;\n };\n })();\n\n var pnum = /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/.source;\n var rcssNum = new RegExp(\"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\");\n var cssExpand = [\"Top\", \"Right\", \"Bottom\", \"Left\"];\n\n var isHidden = function isHidden(elem, el) {\n // isHidden might be called from jQuery#filter function;\n // in that case, element will be second argument\n elem = el || elem;\n return jQuery.css(elem, \"display\") === \"none\" || !jQuery.contains(elem.ownerDocument, elem);\n };\n\n function adjustCSS(elem, prop, valueParts, tween) {\n var adjusted,\n scale = 1,\n maxIterations = 20,\n currentValue = tween ? function () {\n return tween.cur();\n } : function () {\n return jQuery.css(elem, prop, \"\");\n },\n initial = currentValue(),\n unit = valueParts && valueParts[3] || (jQuery.cssNumber[prop] ? \"\" : \"px\"),\n // Starting value computation is required for potential unit mismatches\n initialInUnit = (jQuery.cssNumber[prop] || unit !== \"px\" && +initial) && rcssNum.exec(jQuery.css(elem, prop));\n\n if (initialInUnit && initialInUnit[3] !== unit) {\n // Trust units reported by jQuery.css\n unit = unit || initialInUnit[3]; // Make sure we update the tween properties later on\n\n valueParts = valueParts || []; // Iteratively approximate from a nonzero starting point\n\n initialInUnit = +initial || 1;\n\n do {\n // If previous iteration zeroed out, double until we get *something*.\n // Use string for doubling so we don't accidentally see scale as unchanged below\n scale = scale || \".5\"; // Adjust and apply\n\n initialInUnit = initialInUnit / scale;\n jQuery.style(elem, prop, initialInUnit + unit); // Update scale, tolerating zero or NaN from tween.cur()\n // Break the loop if scale is unchanged or perfect, or if we've just had enough.\n } while (scale !== (scale = currentValue() / initial) && scale !== 1 && --maxIterations);\n }\n\n if (valueParts) {\n initialInUnit = +initialInUnit || +initial || 0; // Apply relative offset (+=/-=) if specified\n\n adjusted = valueParts[1] ? initialInUnit + (valueParts[1] + 1) * valueParts[2] : +valueParts[2];\n\n if (tween) {\n tween.unit = unit;\n tween.start = initialInUnit;\n tween.end = adjusted;\n }\n }\n\n return adjusted;\n } // Multifunctional method to get and set values of a collection\n // The value/s can optionally be executed if it's a function\n\n\n var access = function access(elems, fn, key, value, chainable, emptyGet, raw) {\n var i = 0,\n length = elems.length,\n bulk = key == null; // Sets many values\n\n if (jQuery.type(key) === \"object\") {\n chainable = true;\n\n for (i in key) {\n access(elems, fn, i, key[i], true, emptyGet, raw);\n } // Sets one value\n\n } else if (value !== undefined) {\n chainable = true;\n\n if (!jQuery.isFunction(value)) {\n raw = true;\n }\n\n if (bulk) {\n // Bulk operations run against the entire set\n if (raw) {\n fn.call(elems, value);\n fn = null; // ...except when executing function values\n } else {\n bulk = fn;\n\n fn = function fn(elem, key, value) {\n return bulk.call(jQuery(elem), value);\n };\n }\n }\n\n if (fn) {\n for (; i < length; i++) {\n fn(elems[i], key, raw ? value : value.call(elems[i], i, fn(elems[i], key)));\n }\n }\n }\n\n return chainable ? elems : // Gets\n bulk ? fn.call(elems) : length ? fn(elems[0], key) : emptyGet;\n };\n\n var rcheckableType = /^(?:checkbox|radio)$/i;\n var rtagName = /<([\\w:-]+)/;\n var rscriptType = /^$|\\/(?:java|ecma)script/i;\n var rleadingWhitespace = /^\\s+/;\n var nodeNames = \"abbr|article|aside|audio|bdi|canvas|data|datalist|\" + \"details|dialog|figcaption|figure|footer|header|hgroup|main|\" + \"mark|meter|nav|output|picture|progress|section|summary|template|time|video\";\n\n function createSafeFragment(document) {\n var list = nodeNames.split(\"|\"),\n safeFrag = document.createDocumentFragment();\n\n if (safeFrag.createElement) {\n while (list.length) {\n safeFrag.createElement(list.pop());\n }\n }\n\n return safeFrag;\n }\n\n (function () {\n var div = document.createElement(\"div\"),\n fragment = document.createDocumentFragment(),\n input = document.createElement(\"input\"); // Setup\n\n div.innerHTML = \"
a\"; // IE strips leading whitespace when .innerHTML is used\n\n support.leadingWhitespace = div.firstChild.nodeType === 3; // Make sure that tbody elements aren't automatically inserted\n // IE will insert them into empty tables\n\n support.tbody = !div.getElementsByTagName(\"tbody\").length; // Make sure that link elements get serialized correctly by innerHTML\n // This requires a wrapper element in IE\n\n support.htmlSerialize = !!div.getElementsByTagName(\"link\").length; // Makes sure cloning an html5 element does not cause problems\n // Where outerHTML is undefined, this still works\n\n support.html5Clone = document.createElement(\"nav\").cloneNode(true).outerHTML !== \"<:nav>\"; // Check if a disconnected checkbox will retain its checked\n // value of true after appended to the DOM (IE6/7)\n\n input.type = \"checkbox\";\n input.checked = true;\n fragment.appendChild(input);\n support.appendChecked = input.checked; // Make sure textarea (and checkbox) defaultValue is properly cloned\n // Support: IE6-IE11+\n\n div.innerHTML = \"\";\n support.noCloneChecked = !!div.cloneNode(true).lastChild.defaultValue; // #11217 - WebKit loses check when the name is after the checked attribute\n\n fragment.appendChild(div); // Support: Windows Web Apps (WWA)\n // `name` and `type` must use .setAttribute for WWA (#14901)\n\n input = document.createElement(\"input\");\n input.setAttribute(\"type\", \"radio\");\n input.setAttribute(\"checked\", \"checked\");\n input.setAttribute(\"name\", \"t\");\n div.appendChild(input); // Support: Safari 5.1, iOS 5.1, Android 4.x, Android 2.3\n // old WebKit doesn't clone checked state correctly in fragments\n\n support.checkClone = div.cloneNode(true).cloneNode(true).lastChild.checked; // Support: IE<9\n // Cloned elements keep attachEvent handlers, we use addEventListener on IE9+\n\n support.noCloneEvent = !!div.addEventListener; // Support: IE<9\n // Since attributes and properties are the same in IE,\n // cleanData must set properties to undefined rather than use removeAttribute\n\n div[jQuery.expando] = 1;\n support.attributes = !div.getAttribute(jQuery.expando);\n })(); // We have to close these tags to support XHTML (#13200)\n\n\n var wrapMap = {\n option: [1, \"\"],\n legend: [1, \"\"],\n area: [1, \"\"],\n // Support: IE8\n param: [1, \"\"],\n thead: [1, \"
\", \"
\"],\n tr: [2, \"
\", \"
\"],\n col: [2, \"
\", \"
\"],\n td: [3, \"
\", \"
\"],\n // IE6-8 can't serialize link, script, style, or any html5 (NoScope) tags,\n // unless wrapped in a div with non-breaking characters in front of it.\n _default: support.htmlSerialize ? [0, \"\", \"\"] : [1, \"X
\", \"
\"]\n }; // Support: IE8-IE9\n\n wrapMap.optgroup = wrapMap.option;\n wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\n wrapMap.th = wrapMap.td;\n\n function getAll(context, tag) {\n var elems,\n elem,\n i = 0,\n found = typeof context.getElementsByTagName !== \"undefined\" ? context.getElementsByTagName(tag || \"*\") : typeof context.querySelectorAll !== \"undefined\" ? context.querySelectorAll(tag || \"*\") : undefined;\n\n if (!found) {\n for (found = [], elems = context.childNodes || context; (elem = elems[i]) != null; i++) {\n if (!tag || jQuery.nodeName(elem, tag)) {\n found.push(elem);\n } else {\n jQuery.merge(found, getAll(elem, tag));\n }\n }\n }\n\n return tag === undefined || tag && jQuery.nodeName(context, tag) ? jQuery.merge([context], found) : found;\n } // Mark scripts as having already been evaluated\n\n\n function setGlobalEval(elems, refElements) {\n var elem,\n i = 0;\n\n for (; (elem = elems[i]) != null; i++) {\n jQuery._data(elem, \"globalEval\", !refElements || jQuery._data(refElements[i], \"globalEval\"));\n }\n }\n\n var rhtml = /<|?\\w+;/,\n rtbody = / from table fragments\n\n\n if (!support.tbody) {\n // String was a
, *may* have spurious \n elem = tag === \"table\" && !rtbody.test(elem) ? tmp.firstChild : // String was a bare or \n wrap[1] === \"
\" && !rtbody.test(elem) ? tmp : 0;\n j = elem && elem.childNodes.length;\n\n while (j--) {\n if (jQuery.nodeName(tbody = elem.childNodes[j], \"tbody\") && !tbody.childNodes.length) {\n elem.removeChild(tbody);\n }\n }\n }\n\n jQuery.merge(nodes, tmp.childNodes); // Fix #12392 for WebKit and IE > 9\n\n tmp.textContent = \"\"; // Fix #12392 for oldIE\n\n while (tmp.firstChild) {\n tmp.removeChild(tmp.firstChild);\n } // Remember the top-level container for proper cleanup\n\n\n tmp = safe.lastChild;\n }\n }\n } // Fix #11356: Clear elements from fragment\n\n\n if (tmp) {\n safe.removeChild(tmp);\n } // Reset defaultChecked for any radios and checkboxes\n // about to be appended to the DOM in IE 6/7 (#8060)\n\n\n if (!support.appendChecked) {\n jQuery.grep(getAll(nodes, \"input\"), fixDefaultChecked);\n }\n\n i = 0;\n\n while (elem = nodes[i++]) {\n // Skip elements already in the context collection (trac-4087)\n if (selection && jQuery.inArray(elem, selection) > -1) {\n if (ignored) {\n ignored.push(elem);\n }\n\n continue;\n }\n\n contains = jQuery.contains(elem.ownerDocument, elem); // Append to fragment\n\n tmp = getAll(safe.appendChild(elem), \"script\"); // Preserve script evaluation history\n\n if (contains) {\n setGlobalEval(tmp);\n } // Capture executables\n\n\n if (scripts) {\n j = 0;\n\n while (elem = tmp[j++]) {\n if (rscriptType.test(elem.type || \"\")) {\n scripts.push(elem);\n }\n }\n }\n }\n\n tmp = null;\n return safe;\n }\n\n (function () {\n var i,\n eventName,\n div = document.createElement(\"div\"); // Support: IE<9 (lack submit/change bubble), Firefox (lack focus(in | out) events)\n\n for (i in {\n submit: true,\n change: true,\n focusin: true\n }) {\n eventName = \"on\" + i;\n\n if (!(support[i] = eventName in window)) {\n // Beware of CSP restrictions (https://developer.mozilla.org/en/Security/CSP)\n div.setAttribute(eventName, \"t\");\n support[i] = div.attributes[eventName].expando === false;\n }\n } // Null elements to avoid leaks in IE.\n\n\n div = null;\n })();\n\n var rformElems = /^(?:input|select|textarea)$/i,\n rkeyEvent = /^key/,\n rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,\n rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\n function returnTrue() {\n return true;\n }\n\n function returnFalse() {\n return false;\n } // Support: IE9\n // See #13393 for more info\n\n\n function safeActiveElement() {\n try {\n return document.activeElement;\n } catch (err) {}\n }\n\n function _on(elem, types, selector, data, fn, one) {\n var origFn, type; // Types can be a map of types/handlers\n\n if (_typeof(types) === \"object\") {\n // ( types-Object, selector, data )\n if (typeof selector !== \"string\") {\n // ( types-Object, data )\n data = data || selector;\n selector = undefined;\n }\n\n for (type in types) {\n _on(elem, type, selector, data, types[type], one);\n }\n\n return elem;\n }\n\n if (data == null && fn == null) {\n // ( types, fn )\n fn = selector;\n data = selector = undefined;\n } else if (fn == null) {\n if (typeof selector === \"string\") {\n // ( types, selector, fn )\n fn = data;\n data = undefined;\n } else {\n // ( types, data, fn )\n fn = data;\n data = selector;\n selector = undefined;\n }\n }\n\n if (fn === false) {\n fn = returnFalse;\n } else if (!fn) {\n return elem;\n }\n\n if (one === 1) {\n origFn = fn;\n\n fn = function fn(event) {\n // Can use an empty set, since event contains the info\n jQuery().off(event);\n return origFn.apply(this, arguments);\n }; // Use same guid so caller can remove using origFn\n\n\n fn.guid = origFn.guid || (origFn.guid = jQuery.guid++);\n }\n\n return elem.each(function () {\n jQuery.event.add(this, types, fn, data, selector);\n });\n }\n /*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\n\n\n jQuery.event = {\n global: {},\n add: function add(elem, types, handler, data, selector) {\n var tmp,\n events,\n t,\n handleObjIn,\n special,\n eventHandle,\n handleObj,\n handlers,\n type,\n namespaces,\n origType,\n elemData = jQuery._data(elem); // Don't attach events to noData or text/comment nodes (but allow plain objects)\n\n\n if (!elemData) {\n return;\n } // Caller can pass in an object of custom data in lieu of the handler\n\n\n if (handler.handler) {\n handleObjIn = handler;\n handler = handleObjIn.handler;\n selector = handleObjIn.selector;\n } // Make sure that the handler has a unique ID, used to find/remove it later\n\n\n if (!handler.guid) {\n handler.guid = jQuery.guid++;\n } // Init the element's event structure and main handler, if this is the first\n\n\n if (!(events = elemData.events)) {\n events = elemData.events = {};\n }\n\n if (!(eventHandle = elemData.handle)) {\n eventHandle = elemData.handle = function (e) {\n // Discard the second event of a jQuery.event.trigger() and\n // when an event is called after a page has unloaded\n return typeof jQuery !== \"undefined\" && (!e || jQuery.event.triggered !== e.type) ? jQuery.event.dispatch.apply(eventHandle.elem, arguments) : undefined;\n }; // Add elem as a property of the handle fn to prevent a memory leak\n // with IE non-native events\n\n\n eventHandle.elem = elem;\n } // Handle multiple events separated by a space\n\n\n types = (types || \"\").match(rnotwhite) || [\"\"];\n t = types.length;\n\n while (t--) {\n tmp = rtypenamespace.exec(types[t]) || [];\n type = origType = tmp[1];\n namespaces = (tmp[2] || \"\").split(\".\").sort(); // There *must* be a type, no attaching namespace-only handlers\n\n if (!type) {\n continue;\n } // If event changes its type, use the special event handlers for the changed type\n\n\n special = jQuery.event.special[type] || {}; // If selector defined, determine special event api type, otherwise given type\n\n type = (selector ? special.delegateType : special.bindType) || type; // Update special based on newly reset type\n\n special = jQuery.event.special[type] || {}; // handleObj is passed to all event handlers\n\n handleObj = jQuery.extend({\n type: type,\n origType: origType,\n data: data,\n handler: handler,\n guid: handler.guid,\n selector: selector,\n needsContext: selector && jQuery.expr.match.needsContext.test(selector),\n namespace: namespaces.join(\".\")\n }, handleObjIn); // Init the event handler queue if we're the first\n\n if (!(handlers = events[type])) {\n handlers = events[type] = [];\n handlers.delegateCount = 0; // Only use addEventListener/attachEvent if the special events handler returns false\n\n if (!special.setup || special.setup.call(elem, data, namespaces, eventHandle) === false) {\n // Bind the global event handler to the element\n if (elem.addEventListener) {\n elem.addEventListener(type, eventHandle, false);\n } else if (elem.attachEvent) {\n elem.attachEvent(\"on\" + type, eventHandle);\n }\n }\n }\n\n if (special.add) {\n special.add.call(elem, handleObj);\n\n if (!handleObj.handler.guid) {\n handleObj.handler.guid = handler.guid;\n }\n } // Add to the element's handler list, delegates in front\n\n\n if (selector) {\n handlers.splice(handlers.delegateCount++, 0, handleObj);\n } else {\n handlers.push(handleObj);\n } // Keep track of which events have ever been used, for event optimization\n\n\n jQuery.event.global[type] = true;\n } // Nullify elem to prevent memory leaks in IE\n\n\n elem = null;\n },\n // Detach an event or set of events from an element\n remove: function remove(elem, types, handler, selector, mappedTypes) {\n var j,\n handleObj,\n tmp,\n origCount,\n t,\n events,\n special,\n handlers,\n type,\n namespaces,\n origType,\n elemData = jQuery.hasData(elem) && jQuery._data(elem);\n\n if (!elemData || !(events = elemData.events)) {\n return;\n } // Once for each type.namespace in types; type may be omitted\n\n\n types = (types || \"\").match(rnotwhite) || [\"\"];\n t = types.length;\n\n while (t--) {\n tmp = rtypenamespace.exec(types[t]) || [];\n type = origType = tmp[1];\n namespaces = (tmp[2] || \"\").split(\".\").sort(); // Unbind all events (on this namespace, if provided) for the element\n\n if (!type) {\n for (type in events) {\n jQuery.event.remove(elem, type + types[t], handler, selector, true);\n }\n\n continue;\n }\n\n special = jQuery.event.special[type] || {};\n type = (selector ? special.delegateType : special.bindType) || type;\n handlers = events[type] || [];\n tmp = tmp[2] && new RegExp(\"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\"); // Remove matching events\n\n origCount = j = handlers.length;\n\n while (j--) {\n handleObj = handlers[j];\n\n if ((mappedTypes || origType === handleObj.origType) && (!handler || handler.guid === handleObj.guid) && (!tmp || tmp.test(handleObj.namespace)) && (!selector || selector === handleObj.selector || selector === \"**\" && handleObj.selector)) {\n handlers.splice(j, 1);\n\n if (handleObj.selector) {\n handlers.delegateCount--;\n }\n\n if (special.remove) {\n special.remove.call(elem, handleObj);\n }\n }\n } // Remove generic event handler if we removed something and no more handlers exist\n // (avoids potential for endless recursion during removal of special event handlers)\n\n\n if (origCount && !handlers.length) {\n if (!special.teardown || special.teardown.call(elem, namespaces, elemData.handle) === false) {\n jQuery.removeEvent(elem, type, elemData.handle);\n }\n\n delete events[type];\n }\n } // Remove the expando if it's no longer used\n\n\n if (jQuery.isEmptyObject(events)) {\n delete elemData.handle; // removeData also checks for emptiness and clears the expando if empty\n // so use it instead of delete\n\n jQuery._removeData(elem, \"events\");\n }\n },\n trigger: function trigger(event, data, elem, onlyHandlers) {\n var handle,\n ontype,\n cur,\n bubbleType,\n special,\n tmp,\n i,\n eventPath = [elem || document],\n type = hasOwn.call(event, \"type\") ? event.type : event,\n namespaces = hasOwn.call(event, \"namespace\") ? event.namespace.split(\".\") : [];\n cur = tmp = elem = elem || document; // Don't do events on text and comment nodes\n\n if (elem.nodeType === 3 || elem.nodeType === 8) {\n return;\n } // focus/blur morphs to focusin/out; ensure we're not firing them right now\n\n\n if (rfocusMorph.test(type + jQuery.event.triggered)) {\n return;\n }\n\n if (type.indexOf(\".\") > -1) {\n // Namespaced trigger; create a regexp to match event type in handle()\n namespaces = type.split(\".\");\n type = namespaces.shift();\n namespaces.sort();\n }\n\n ontype = type.indexOf(\":\") < 0 && \"on\" + type; // Caller can pass in a jQuery.Event object, Object, or just an event type string\n\n event = event[jQuery.expando] ? event : new jQuery.Event(type, _typeof(event) === \"object\" && event); // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\n event.isTrigger = onlyHandlers ? 2 : 3;\n event.namespace = namespaces.join(\".\");\n event.rnamespace = event.namespace ? new RegExp(\"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\") : null; // Clean up the event in case it is being reused\n\n event.result = undefined;\n\n if (!event.target) {\n event.target = elem;\n } // Clone any incoming data and prepend the event, creating the handler arg list\n\n\n data = data == null ? [event] : jQuery.makeArray(data, [event]); // Allow special events to draw outside the lines\n\n special = jQuery.event.special[type] || {};\n\n if (!onlyHandlers && special.trigger && special.trigger.apply(elem, data) === false) {\n return;\n } // Determine event propagation path in advance, per W3C events spec (#9951)\n // Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\n\n if (!onlyHandlers && !special.noBubble && !jQuery.isWindow(elem)) {\n bubbleType = special.delegateType || type;\n\n if (!rfocusMorph.test(bubbleType + type)) {\n cur = cur.parentNode;\n }\n\n for (; cur; cur = cur.parentNode) {\n eventPath.push(cur);\n tmp = cur;\n } // Only add window if we got to document (e.g., not plain obj or detached DOM)\n\n\n if (tmp === (elem.ownerDocument || document)) {\n eventPath.push(tmp.defaultView || tmp.parentWindow || window);\n }\n } // Fire handlers on the event path\n\n\n i = 0;\n\n while ((cur = eventPath[i++]) && !event.isPropagationStopped()) {\n event.type = i > 1 ? bubbleType : special.bindType || type; // jQuery handler\n\n handle = (jQuery._data(cur, \"events\") || {})[event.type] && jQuery._data(cur, \"handle\");\n\n if (handle) {\n handle.apply(cur, data);\n } // Native handler\n\n\n handle = ontype && cur[ontype];\n\n if (handle && handle.apply && acceptData(cur)) {\n event.result = handle.apply(cur, data);\n\n if (event.result === false) {\n event.preventDefault();\n }\n }\n }\n\n event.type = type; // If nobody prevented the default action, do it now\n\n if (!onlyHandlers && !event.isDefaultPrevented()) {\n if ((!special._default || special._default.apply(eventPath.pop(), data) === false) && acceptData(elem)) {\n // Call a native DOM method on the target with the same name name as the event.\n // Can't use an .isFunction() check here because IE6/7 fails that test.\n // Don't do default actions on window, that's where global variables be (#6170)\n if (ontype && elem[type] && !jQuery.isWindow(elem)) {\n // Don't re-trigger an onFOO event when we call its FOO() method\n tmp = elem[ontype];\n\n if (tmp) {\n elem[ontype] = null;\n } // Prevent re-triggering of the same event, since we already bubbled it above\n\n\n jQuery.event.triggered = type;\n\n try {\n elem[type]();\n } catch (e) {// IE<9 dies on focus/blur to hidden element (#1486,#12518)\n // only reproducible on winXP IE8 native, not IE9 in IE8 mode\n }\n\n jQuery.event.triggered = undefined;\n\n if (tmp) {\n elem[ontype] = tmp;\n }\n }\n }\n }\n\n return event.result;\n },\n dispatch: function dispatch(event) {\n // Make a writable jQuery.Event from the native event object\n event = jQuery.event.fix(event);\n\n var i,\n j,\n ret,\n matched,\n handleObj,\n handlerQueue = [],\n args = _slice.call(arguments),\n handlers = (jQuery._data(this, \"events\") || {})[event.type] || [],\n special = jQuery.event.special[event.type] || {}; // Use the fix-ed jQuery.Event rather than the (read-only) native event\n\n\n args[0] = event;\n event.delegateTarget = this; // Call the preDispatch hook for the mapped type, and let it bail if desired\n\n if (special.preDispatch && special.preDispatch.call(this, event) === false) {\n return;\n } // Determine handlers\n\n\n handlerQueue = jQuery.event.handlers.call(this, event, handlers); // Run delegates first; they may want to stop propagation beneath us\n\n i = 0;\n\n while ((matched = handlerQueue[i++]) && !event.isPropagationStopped()) {\n event.currentTarget = matched.elem;\n j = 0;\n\n while ((handleObj = matched.handlers[j++]) && !event.isImmediatePropagationStopped()) {\n // Triggered event must either 1) have no namespace, or 2) have namespace(s)\n // a subset or equal to those in the bound event (both can have no namespace).\n if (!event.rnamespace || event.rnamespace.test(handleObj.namespace)) {\n event.handleObj = handleObj;\n event.data = handleObj.data;\n ret = ((jQuery.event.special[handleObj.origType] || {}).handle || handleObj.handler).apply(matched.elem, args);\n\n if (ret !== undefined) {\n if ((event.result = ret) === false) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n }\n }\n } // Call the postDispatch hook for the mapped type\n\n\n if (special.postDispatch) {\n special.postDispatch.call(this, event);\n }\n\n return event.result;\n },\n handlers: function handlers(event, _handlers) {\n var i,\n matches,\n sel,\n handleObj,\n handlerQueue = [],\n delegateCount = _handlers.delegateCount,\n cur = event.target; // Support (at least): Chrome, IE9\n // Find delegate handlers\n // Black-hole SVG