{"version":3,"sources":["scripts.js"],"names":["global","factory","module","exports","document","w","Error","window","this","noGlobal","isWindow","obj","arr","getProto","Object","getPrototypeOf","slice","concat","push","indexOf","class2type","toString","hasOwn","hasOwnProperty","fnToString","ObjectFunctionString","call","support","isFunction","nodeType","preservedScriptAttributes","type","src","nonce","noModule","DOMEval","code","node","doc","i","val","script","createElement","text","getAttribute","setAttribute","head","appendChild","parentNode","removeChild","toType","version","jQuery","selector","context","fn","init","rtrim","isArrayLike","length","prototype","jquery","constructor","toArray","get","num","pushStack","elems","ret","merge","prevObject","each","callback","map","elem","apply","arguments","first","eq","last","len","j","end","sort","splice","extend","options","name","copy","copyIsArray","clone","target","deep","isPlainObject","Array","isArray","undefined","expando","Math","random","replace","isReady","error","msg","noop","proto","Ctor","isEmptyObject","globalEval","trim","makeArray","results","inArray","second","grep","invert","matches","callbackExpect","arg","value","guid","Symbol","iterator","split","toLowerCase","Sizzle","funescape","_","escaped","escapedWhitespace","high","String","fromCharCode","unloadHandler","setDocument","Expr","getText","isXML","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","contains","Date","preferredDoc","dirruns","done","classCache","createCache","tokenCache","compilerCache","nonnativeSelectorCache","sortOrder","a","b","pop","push_native","list","booleans","whitespace","identifier","attributes","pseudos","rwhitespace","RegExp","rcomma","rcombinators","rdescend","rpseudo","ridentifier","matchExpr","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rhtml","rinputs","rheader","rnative","rquickExpr","rsibling","runescape","rcssescape","fcssescape","ch","asCodePoint","charCodeAt","inDisabledFieldset","addCombinator","disabled","nodeName","dir","next","childNodes","e","els","seed","m","nid","match","groups","newSelector","newContext","ownerDocument","exec","getElementById","id","getElementsByTagName","getElementsByClassName","qsa","test","toSelector","join","testContext","querySelectorAll","qsaError","removeAttribute","keys","cache","key","cacheLength","shift","markFunction","assert","el","addHandle","attrs","handler","attrHandle","siblingCheck","cur","diff","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createDisabledPseudo","isDisabled","createPositionalPseudo","argument","matchIndexes","namespace","namespaceURI","documentElement","hasCompare","subWindow","defaultView","top","addEventListener","attachEvent","className","createComment","getById","getElementsByName","filter","attrId","find","getAttributeNode","tag","tmp","innerHTML","input","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","unshift","expr","elements","attr","specified","escape","sel","uniqueSort","duplicates","detectDuplicates","sortStable","textContent","firstChild","nodeValue","selectors","createPseudo","relative",">"," ","+","~","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","result","what","simple","forward","ofType","xml","uniqueCache","outerCache","nodeIndex","start","parent","useCache","lastChild","uniqueID","pseudo","args","setFilters","idx","matched","not","matcher","unmatched","has","lang","elemLang","hash","location","root","focus","activeElement","hasFocus","href","tabIndex","enabled","checked","selected","selectedIndex","empty","header","button","even","odd","lt","gt","radio","checkbox","file","password","image","submit","reset","tokens","combinator","base","skip","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","superMatcher","outermost","matchedCount","setMatched","contextBackup","byElement","dirrunsUnique","bySet","matcherFromGroupMatchers","token","compiled","defaultValue","unique","isXMLDoc","escapeSelector","until","truncate","is","siblings","n","rneedsContext","rsingleTag","winnow","qualifier","self","rootjQuery","ready","parseHTML","rparentsprev","guaranteedUnique","children","contents","prev","sibling","targets","l","closest","index","prevAll","add","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","contentDocument","content","reverse","rnothtmlwhite","Identity","v","Thrower","ex","adoptValue","resolve","reject","noValue","method","promise","fail","then","Callbacks","object","flag","createOptions","fire","locked","once","fired","firing","queue","firingIndex","memory","stopOnFalse","remove","disable","lock","fireWith","Deferred","func","tuples","state","always","deferred","catch","pipe","fns","newDefer","tuple","returned","progress","notify","onFulfilled","onRejected","onProgress","maxDepth","depth","special","mightThrow","that","TypeError","notifyWith","resolveWith","process","exceptionHook","stackTrace","rejectWith","getStackHook","setTimeout","stateString","when","singleValue","updateFunc","resolveContexts","resolveValues","remaining","master","rerrorNames","stack","console","warn","message","readyException","readyList","completed","removeEventListener","readyWait","wait","readyState","doScroll","access","chainable","emptyGet","raw","bulk","rmsPrefix","rdashAlpha","fcamelCase","all","letter","toUpperCase","camelCase","string","acceptData","owner","Data","uid","defineProperty","configurable","set","data","prop","hasData","dataPriv","dataUser","rbrace","rmultiDash","dataAttr","JSON","parse","getData","removeData","_data","_removeData","dequeue","startLength","hooks","_queueHooks","stop","setter","clearQueue","count","defer","pnum","source","rcssNum","cssExpand","isAttached","composed","getRootNode","swap","old","style","isHiddenWithinTree","display","css","adjustCSS","valueParts","tween","adjusted","scale","maxIterations","currentValue","initial","unit","cssNumber","initialInUnit","defaultDisplayMap","showHide","show","values","body","hide","toggle","rcheckableType","rtagName","rscriptType","wrapMap","option","thead","col","tr","td","_default","getAll","setGlobalEval","refElements","optgroup","tbody","tfoot","colgroup","caption","th","div","buildFragment","scripts","selection","ignored","wrap","attached","fragment","createDocumentFragment","nodes","htmlPrefilter","createTextNode","checkClone","cloneNode","noCloneChecked","rkeyEvent","rmouseEvent","rtypenamespace","returnTrue","returnFalse","expectSync","err","safeActiveElement","on","types","one","origFn","event","off","leverageNative","notAsync","saved","isTrigger","delegateType","stopPropagation","stopImmediatePropagation","preventDefault","trigger","Event","handleObjIn","eventHandle","events","t","handleObj","handlers","namespaces","origType","elemData","handle","triggered","dispatch","bindType","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","nativeEvent","handlerQueue","fix","delegateTarget","preDispatch","isPropagationStopped","currentTarget","isImmediatePropagationStopped","rnamespace","postDispatch","matchedHandlers","matchedSelectors","addProp","hook","enumerable","originalEvent","writable","load","noBubble","click","beforeunload","returnValue","props","isDefaultPrevented","defaultPrevented","relatedTarget","timeStamp","now","isSimulated","altKey","bubbles","cancelable","changedTouches","ctrlKey","detail","eventPhase","metaKey","pageX","pageY","shiftKey","view","char","charCode","keyCode","buttons","clientX","clientY","offsetX","offsetY","pointerId","pointerType","screenX","screenY","targetTouches","toElement","touches","which","blur","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","rxhtmlTag","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","dest","pdataOld","pdataCur","udataOld","udataCur","domManip","collection","hasScripts","iNoClone","valueIsFunction","html","_evalUrl","keepData","cleanData","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","detach","append","prepend","insertBefore","before","after","replaceWith","replaceChild","appendTo","prependTo","insertAfter","replaceAll","original","insert","pixelPositionVal","boxSizingReliableVal","scrollboxSizeVal","pixelBoxStylesVal","reliableMarginLeftVal","container","rnumnonpx","getStyles","opener","getComputedStyle","rboxStyle","computeStyleTests","cssText","divStyle","roundPixelMeasures","marginLeft","right","width","position","offsetWidth","measure","round","parseFloat","curCSS","computed","minWidth","maxWidth","getPropertyValue","pixelBoxStyles","addGetHookIf","conditionFn","hookFn","backgroundClip","clearCloneStyle","boxSizingReliable","pixelPosition","reliableMarginLeft","scrollboxSize","cssPrefixes","emptyStyle","vendorProps","finalPropName","final","cssProps","capName","vendorPropName","rdisplayswap","rcustomProp","cssShow","visibility","cssNormalTransform","letterSpacing","fontWeight","setPositiveNumber","subtract","max","boxModelAdjustment","dimension","box","isBorderBox","styles","computedVal","extra","delta","ceil","getWidthOrHeight","valueIsBorderBox","offsetProp","getClientRects","Tween","easing","cssHooks","opacity","animationIterationCount","columnCount","fillOpacity","flexGrow","flexShrink","gridArea","gridColumn","gridColumnEnd","gridColumnStart","gridRow","gridRowEnd","gridRowStart","lineHeight","order","orphans","widows","zIndex","zoom","origName","isCustomProp","setProperty","isFinite","getBoundingClientRect","scrollboxSizeBuggy","left","margin","padding","border","prefix","suffix","expand","expanded","parts","propHooks","run","percent","eased","duration","pos","step","fx","scrollTop","scrollLeft","linear","p","swing","cos","PI","fxNow","inProgress","opt","rfxtypes","rrun","schedule","hidden","requestAnimationFrame","interval","tick","createFxNow","genFx","includeWidth","height","createTween","animation","Animation","tweeners","properties","stopped","prefilters","currentTime","startTime","tweens","opts","specialEasing","originalProperties","originalOptions","gotoEnd","propFilter","bind","complete","timer","anim","*","tweener","oldfire","propTween","restoreDisplay","isBox","dataShow","unqueued","overflow","overflowX","overflowY","prefilter","speed","speeds","fadeTo","to","animate","doAnimation","optall","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","slow","fast","delay","time","timeout","clearTimeout","checkOn","optSelected","radioValue","boolHook","removeAttr","nType","attrHooks","attrNames","getter","lowercaseName","rfocusable","rclickable","stripAndCollapse","getClass","classesToArray","removeProp","propFix","tabindex","parseInt","for","class","addClass","classes","curValue","clazz","finalValue","removeClass","toggleClass","stateVal","isValidValue","classNames","hasClass","rreturn","valHooks","optionSet","focusin","stopPropagationCallback","rfocusMorph","onlyHandlers","bubbleType","ontype","lastElement","eventPath","parentWindow","simulate","triggerHandler","attaches","rquery","parseXML","DOMParser","parseFromString","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","traditional","param","valueOrFunction","s","encodeURIComponent","serialize","serializeArray","r20","rhash","rantiCache","rheaders","rnoContent","rprotocol","transports","allTypes","originAnchor","addToPrefiltersOrTransports","structure","dataTypeExpression","dataType","dataTypes","inspectPrefiltersOrTransports","jqXHR","inspected","seekingTransport","inspect","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","active","lastModified","etag","url","isLocal","protocol","processData","async","contentType","accepts","json","responseFields","converters","* text","text html","text json","text xml","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","transport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","urlAnchor","fireGlobals","uncached","callbackContext","globalEventContext","completeDeferred","statusCode","requestHeaders","requestHeadersNames","strAbort","getResponseHeader","getAllResponseHeaders","setRequestHeader","overrideMimeType","mimeType","status","abort","statusText","finalText","crossDomain","host","hasContent","ifModified","headers","beforeSend","success","send","nativeStatusText","responses","isSuccess","response","modified","ct","finalDataType","firstDataType","ajaxHandleResponses","conv2","current","conv","dataFilter","throws","ajaxConvert","getJSON","getScript","text script","wrapAll","firstElementChild","wrapInner","htmlIsFunction","unwrap","visible","offsetHeight","xhr","XMLHttpRequest","xhrSuccessStatus","0","1223","xhrSupported","cors","errorCallback","open","username","xhrFields","onload","onerror","onabort","ontimeout","onreadystatechange","responseType","responseText","binary","scriptAttrs","charset","scriptCharset","evt","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","createHTMLDocument","implementation","keepScripts","parsed","params","animated","offset","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","curElem","using","rect","win","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","","defaultExtra","funcName","hover","fnOver","fnOut","unbind","delegate","undelegate","proxy","holdReady","hold","parseJSON","isNumeric","isNaN","define","amd","_jQuery","_$","$","noConflict","autoSubmit","productFilter","alternatives","upEl","mainNav","filterOffsetTop","mainNavOffsetTop","mainNavHeight","filterDocked","navDocked","tabSet","oldEl","newEl","over","_large","_src","out","attributeChange","title","color","regex","getMatches","colorRegEx","img","eventHandler","vp","viewPort","sY","cancelEvent","logger","logexception","f","where","r","getIndex","removeAt","Function","d","repeat","__t","setInterval","clearInterval","getHashFromUrl","substr","anyOf","format","pad","c","startsWith","endsWith","hasProperty","property","isJson","isEmail","origin","hostname","port","me","cookies","browser","isIE6","isIE7","isIE8","isIE9","isFireFox","navigator","userAgent","isOpera","isChrome","isIPad","isIPhone","isIPod","isSafari","isMobile","orientation","createEl","h","k","ks","getParentByAttributeValue","parentElement","tagName","getElementsByAttributeValue","o","res","found","addEventByAttributeValue","cancelBubble","nodeListToArray","addEvent","innerHeight","clientHeight","innerWidth","clientWidth","sX","getPosition","x","y","getBoxObjectFor","bo","bottom","offsetLeft","offsetTop","fireEvent","eventName","createEvent","initEvent","dispatchEvent","createEventObject","isInDom","removeToInsertLater","ns","createFrame","frameBorder","_loading","loaded","isIE","getCookie","cookie","setCookie","days","expires","date","setTime","getTime","toGMTString","loadScript","htmlEl","supportFn","onchange","onclick","form","convertToSelects","clearUrl","srcElement","showMenu","hideMenus","menus","menu","items","ii","ll","item","link","label","innerText","dialogs","loadingMessage","overrideDefaultWindows","closeOnBlur","onbeforeopen","eventDelegate","alert","confirm","close","dlg","closeAll","create","mask","fullscreen","features","aFeatures","kvp","dimensionRegex","oldWindowOpen","oldAlert","oldConfirm","txtProp","dialogSettings","fullScreen","rel","feats","dialog","closeIcon","iframe","buttonClickHandler","frameDoc","contentWindow","_loaded","_docTitle","write","execCommand","buttonName","bodyCss","mediaBox","thumbnails","thumb","alt","onmouseover","onmouseout","attributeSelectors","scrollLogic","footer","fpos","onscroll","tabs","clickedId","tab","tabId","tabBox","echo","poll","useDebounce","unload","debounceOrThrottle","render","optionToInt","fallback","offsetAll","offsetVertical","offsetHorizontal","offsetBottom","offsetRight","throttle","debounce","detachEvent","CountdownTimer","mes","lbl","countDown","today","day","floor","hour","min","sec","ahora","entonces","lblDay","lblHour","lblMin","lblSec","addZero","isBusy","retryInterval","getMinutesSinceLastRequest","milliSecondsSince","lastExecution","onBeforeRequest","onResponse","ajaxHttp","on205","onError","onTimeout","Exec","http","createXmlHttp","retryTimer","ajaxHistory","nocache","appender","kvpToString","aborted","requestTimer","thisArg","resTxt","resXML","responseXML","nocontent","requestTimedOut","encodeURI","xmlHttp","err1","ActiveXObject","err2","err3","nowAsInt","smartStore","runningInFrame","locScript","locPrompt","locCookieName","delayBeforeCheckingLocation","pageType","fakeLocation","currencyMenu","locations","currency","currencyName","country","locationId","setupHome","setupCategorySummary","setupProductList","setupProductDetail","setupProductQuickView","setupSpecialOffers","setupCheckoutBasket","setupCheckoutDetails","setupCustomPage","handleLighboxes","showCurrencySelection","showHideBasketUpdatedNotification","setupSearchForm","setupNewsletterForm","checkLocation","setupEcho","insertQuickViews","startCountdown","countdowns","data-countdown","expiresMsg","holder","cSelector","clickHandler","autoChangeCurrency","used","selectedCSS","data-cur","data-loc","detectLocation","geoip_country_code","geoip_country_name","currentCurrencyCode","currentLocale","geoCountry","detectedLocale","action","openQuickView","domain","qurl","Image","inner","btns","bin","bout","z","gTrack","cursor","newImg","background","imgZoomer","insertSocialSharingButtons","convertQuantityInputToSelect","setupAddToBasketAttributeCheck","setupAddToBasketTracking","socialBox","zoomImgLink","pageUrl","pathname","setupViewedItems","removeUrl","toggleStartIssue","cardType","startIssue","toggleShippingAddress","fieldset","ins","sels","oldIndex","btnPayNow","shipToBillingAddress","setupCheckout3dSecure","setupCheckoutComplete","searchBox","onblur","onfocus","qt","newsletterInput","frm","btn","sid","newsletteremail","useCustomDialog","onsubmit","alertFunction","quantity","category","opt_label","_gaq","main","itemprop","previousSibling","data-echo","buildhtml","postfix","frag","word","filterKeywords","col1tag","counter","includes"],"mappings":"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","file":"../scripts.min.js","sourcesContent":["\r/*!\n\r * jQuery JavaScript Library v3.4.1\n\r * https://jquery.com/\n\r *\n\r * Includes Sizzle.js\n\r * https://sizzlejs.com/\n\r *\n\r * Copyright JS Foundation and other contributors\n\r * Released under the MIT license\n\r * https://jquery.org/license\n\r *\n\r * Date: 2019-05-01T21:04Z\n\r */\n\r( function( global, factory ) {\n\r\n\r\t\"use strict\";\n\r\n\r\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\r\n\r\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\r\t\t// is present, execute the factory and get jQuery.\n\r\t\t// For environments that do not have a `window` with a `document`\n\r\t\t// (such as Node.js), expose a factory as module.exports.\n\r\t\t// This accentuates the need for the creation of a real `window`.\n\r\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\r\t\t// See ticket #14549 for more info.\n\r\t\tmodule.exports = global.document ?\n\r\t\t\tfactory( global, true ) :\n\r\t\t\tfunction( w ) {\n\r\t\t\t\tif ( !w.document ) {\n\r\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\r\t\t\t\t}\n\r\t\t\t\treturn factory( w );\n\r\t\t\t};\n\r\t} else {\n\r\t\tfactory( global );\n\r\t}\n\r\n\r// Pass this if window is not defined yet\n\r} )( typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\r\n\r// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n\r// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n\r// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n\r// enough that all such attempts are guarded in a try block.\n\r\"use strict\";\n\r\n\rvar arr = [];\n\r\n\rvar document = window.document;\n\r\n\rvar getProto = Object.getPrototypeOf;\n\r\n\rvar slice = arr.slice;\n\r\n\rvar concat = arr.concat;\n\r\n\rvar push = arr.push;\n\r\n\rvar indexOf = arr.indexOf;\n\r\n\rvar class2type = {};\n\r\n\rvar toString = class2type.toString;\n\r\n\rvar hasOwn = class2type.hasOwnProperty;\n\r\n\rvar fnToString = hasOwn.toString;\n\r\n\rvar ObjectFunctionString = fnToString.call( Object );\n\r\n\rvar support = {};\n\r\n\rvar isFunction = function isFunction( obj ) {\n\r\n\r // Support: Chrome <=57, Firefox <=52\n\r // In some browsers, typeof returns \"function\" for HTML elements\n\r // (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n\r // We don't want to classify *any* DOM node as a function.\n\r return typeof obj === \"function\" && typeof obj.nodeType !== \"number\";\n\r };\n\r\n\r\n\rvar isWindow = function isWindow( obj ) {\n\r\t\treturn obj != null && obj === obj.window;\n\r\t};\n\r\n\r\n\r\n\r\n\r\tvar preservedScriptAttributes = {\n\r\t\ttype: true,\n\r\t\tsrc: true,\n\r\t\tnonce: true,\n\r\t\tnoModule: true\n\r\t};\n\r\n\r\tfunction DOMEval( code, node, doc ) {\n\r\t\tdoc = doc || document;\n\r\n\r\t\tvar i, val,\n\r\t\t\tscript = doc.createElement( \"script\" );\n\r\n\r\t\tscript.text = code;\n\r\t\tif ( node ) {\n\r\t\t\tfor ( i in preservedScriptAttributes ) {\n\r\n\r\t\t\t\t// Support: Firefox 64+, Edge 18+\n\r\t\t\t\t// Some browsers don't support the \"nonce\" property on scripts.\n\r\t\t\t\t// On the other hand, just using `getAttribute` is not enough as\n\r\t\t\t\t// the `nonce` attribute is reset to an empty string whenever it\n\r\t\t\t\t// becomes browsing-context connected.\n\r\t\t\t\t// See https://github.com/whatwg/html/issues/2369\n\r\t\t\t\t// See https://html.spec.whatwg.org/#nonce-attributes\n\r\t\t\t\t// The `node.getAttribute` check was added for the sake of\n\r\t\t\t\t// `jQuery.globalEval` so that it can fake a nonce-containing node\n\r\t\t\t\t// via an object.\n\r\t\t\t\tval = node[ i ] || node.getAttribute && node.getAttribute( i );\n\r\t\t\t\tif ( val ) {\n\r\t\t\t\t\tscript.setAttribute( i, val );\n\r\t\t\t\t}\n\r\t\t\t}\n\r\t\t}\n\r\t\tdoc.head.appendChild( script ).parentNode.removeChild( script );\n\r\t}\n\r\n\r\n\rfunction toType( obj ) {\n\r\tif ( obj == null ) {\n\r\t\treturn obj + \"\";\n\r\t}\n\r\n\r\t// Support: Android <=2.3 only (functionish RegExp)\n\r\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\r\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\r\t\ttypeof obj;\n\r}\n\r/* global Symbol */\n\r// Defining this global in .eslintrc.json would create a danger of using the global\n\r// unguarded in another place, it seems safer to define global only for this module\n\r\n\r\n\r\n\rvar\n\r\tversion = \"3.4.1\",\n\r\n\r\t// Define a local copy of jQuery\n\r\tjQuery = function( selector, context ) {\n\r\n\r\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\r\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\r\t\treturn new jQuery.fn.init( selector, context );\n\r\t},\n\r\n\r\t// Support: Android <=4.0 only\n\r\t// Make sure we trim BOM and NBSP\n\r\trtrim = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g;\n\r\n\rjQuery.fn = jQuery.prototype = {\n\r\n\r\t// The current version of jQuery being used\n\r\tjquery: version,\n\r\n\r\tconstructor: jQuery,\n\r\n\r\t// The default length of a jQuery object is 0\n\r\tlength: 0,\n\r\n\r\ttoArray: function() {\n\r\t\treturn slice.call( this );\n\r\t},\n\r\n\r\t// Get the Nth element in the matched element set OR\n\r\t// Get the whole matched element set as a clean array\n\r\tget: function( num ) {\n\r\n\r\t\t// Return all the elements in a clean array\n\r\t\tif ( num == null ) {\n\r\t\t\treturn slice.call( this );\n\r\t\t}\n\r\n\r\t\t// Return just the one element from the set\n\r\t\treturn num < 0 ? this[ num + this.length ] : this[ num ];\n\r\t},\n\r\n\r\t// Take an array of elements and push it onto the stack\n\r\t// (returning the new matched element set)\n\r\tpushStack: function( elems ) {\n\r\n\r\t\t// Build a new jQuery matched element set\n\r\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\r\n\r\t\t// Add the old object onto the stack (as a reference)\n\r\t\tret.prevObject = this;\n\r\n\r\t\t// Return the newly-formed element set\n\r\t\treturn ret;\n\r\t},\n\r\n\r\t// Execute a callback for every element in the matched set.\n\r\teach: function( callback ) {\n\r\t\treturn jQuery.each( this, callback );\n\r\t},\n\r\n\r\tmap: function( callback ) {\n\r\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\r\t\t\treturn callback.call( elem, i, elem );\n\r\t\t} ) );\n\r\t},\n\r\n\r\tslice: function() {\n\r\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\r\t},\n\r\n\r\tfirst: function() {\n\r\t\treturn this.eq( 0 );\n\r\t},\n\r\n\r\tlast: function() {\n\r\t\treturn this.eq( -1 );\n\r\t},\n\r\n\r\teq: function( i ) {\n\r\t\tvar len = this.length,\n\r\t\t\tj = +i + ( i < 0 ? len : 0 );\n\r\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\r\t},\n\r\n\r\tend: function() {\n\r\t\treturn this.prevObject || this.constructor();\n\r\t},\n\r\n\r\t// For internal use only.\n\r\t// Behaves like an Array's method, not like a jQuery method.\n\r\tpush: push,\n\r\tsort: arr.sort,\n\r\tsplice: arr.splice\n\r};\n\r\n\rjQuery.extend = jQuery.fn.extend = function() {\n\r\tvar options, name, src, copy, copyIsArray, clone,\n\r\t\ttarget = arguments[ 0 ] || {},\n\r\t\ti = 1,\n\r\t\tlength = arguments.length,\n\r\t\tdeep = false;\n\r\n\r\t// Handle a deep copy situation\n\r\tif ( typeof target === \"boolean\" ) {\n\r\t\tdeep = target;\n\r\n\r\t\t// Skip the boolean and the target\n\r\t\ttarget = arguments[ i ] || {};\n\r\t\ti++;\n\r\t}\n\r\n\r\t// Handle case when target is a string or something (possible in deep copy)\n\r\tif ( typeof target !== \"object\" && !isFunction( target ) ) {\n\r\t\ttarget = {};\n\r\t}\n\r\n\r\t// Extend jQuery itself if only one argument is passed\n\r\tif ( i === length ) {\n\r\t\ttarget = this;\n\r\t\ti--;\n\r\t}\n\r\n\r\tfor ( ; i < length; i++ ) {\n\r\n\r\t\t// Only deal with non-null/undefined values\n\r\t\tif ( ( options = arguments[ i ] ) != null ) {\n\r\n\r\t\t\t// Extend the base object\n\r\t\t\tfor ( name in options ) {\n\r\t\t\t\tcopy = options[ name ];\n\r\n\r\t\t\t\t// Prevent Object.prototype pollution\n\r\t\t\t\t// Prevent never-ending loop\n\r\t\t\t\tif ( name === \"__proto__\" || target === copy ) {\n\r\t\t\t\t\tcontinue;\n\r\t\t\t\t}\n\r\n\r\t\t\t\t// Recurse if we're merging plain objects or arrays\n\r\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\r\t\t\t\t\t( copyIsArray = Array.isArray( copy ) ) ) ) {\n\r\t\t\t\t\tsrc = target[ name ];\n\r\n\r\t\t\t\t\t// Ensure proper type for the source value\n\r\t\t\t\t\tif ( copyIsArray && !Array.isArray( src ) ) {\n\r\t\t\t\t\t\tclone = [];\n\r\t\t\t\t\t} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {\n\r\t\t\t\t\t\tclone = {};\n\r\t\t\t\t\t} else {\n\r\t\t\t\t\t\tclone = src;\n\r\t\t\t\t\t}\n\r\t\t\t\t\tcopyIsArray = false;\n\r\n\r\t\t\t\t\t// Never move original objects, clone them\n\r\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\r\n\r\t\t\t\t// Don't bring in undefined values\n\r\t\t\t\t} else if ( copy !== undefined ) {\n\r\t\t\t\t\ttarget[ name ] = copy;\n\r\t\t\t\t}\n\r\t\t\t}\n\r\t\t}\n\r\t}\n\r\n\r\t// Return the modified object\n\r\treturn target;\n\r};\n\r\n\rjQuery.extend( {\n\r\n\r\t// Unique for each copy of jQuery on the page\n\r\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\r\n\r\t// Assume jQuery is ready without the ready module\n\r\tisReady: true,\n\r\n\r\terror: function( msg ) {\n\r\t\tthrow new Error( msg );\n\r\t},\n\r\n\r\tnoop: function() {},\n\r\n\r\tisPlainObject: function( obj ) {\n\r\t\tvar proto, Ctor;\n\r\n\r\t\t// Detect obvious negatives\n\r\t\t// Use toString instead of jQuery.type to catch host objects\n\r\t\tif ( !obj || toString.call( obj ) !== \"[object Object]\" ) {\n\r\t\t\treturn false;\n\r\t\t}\n\r\n\r\t\tproto = getProto( obj );\n\r\n\r\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\n\r\t\tif ( !proto ) {\n\r\t\t\treturn true;\n\r\t\t}\n\r\n\r\t\t// Objects with prototype are plain iff they were constructed by a global Object function\n\r\t\tCtor = hasOwn.call( proto, \"constructor\" ) && proto.constructor;\n\r\t\treturn typeof Ctor === \"function\" && fnToString.call( Ctor ) === ObjectFunctionString;\n\r\t},\n\r\n\r\tisEmptyObject: function( obj ) {\n\r\t\tvar name;\n\r\n\r\t\tfor ( name in obj ) {\n\r\t\t\treturn false;\n\r\t\t}\n\r\t\treturn true;\n\r\t},\n\r\n\r\t// Evaluates a script in a global context\n\r\tglobalEval: function( code, options ) {\n\r\t\tDOMEval( code, { nonce: options && options.nonce } );\n\r\t},\n\r\n\r\teach: function( obj, callback ) {\n\r\t\tvar length, i = 0;\n\r\n\r\t\tif ( isArrayLike( obj ) ) {\n\r\t\t\tlength = obj.length;\n\r\t\t\tfor ( ; i < length; i++ ) {\n\r\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\r\t\t\t\t\tbreak;\n\r\t\t\t\t}\n\r\t\t\t}\n\r\t\t} else {\n\r\t\t\tfor ( i in obj ) {\n\r\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\r\t\t\t\t\tbreak;\n\r\t\t\t\t}\n\r\t\t\t}\n\r\t\t}\n\r\n\r\t\treturn obj;\n\r\t},\n\r\n\r\t// Support: Android <=4.0 only\n\r\ttrim: function( text ) {\n\r\t\treturn text == null ?\n\r\t\t\t\"\" :\n\r\t\t\t( text + \"\" ).replace( rtrim, \"\" );\n\r\t},\n\r\n\r\t// results is for internal usage only\n\r\tmakeArray: function( arr, results ) {\n\r\t\tvar ret = results || [];\n\r\n\r\t\tif ( arr != null ) {\n\r\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\r\t\t\t\tjQuery.merge( ret,\n\r\t\t\t\t\ttypeof arr === \"string\" ?\n\r\t\t\t\t\t[ arr ] : arr\n\r\t\t\t\t);\n\r\t\t\t} else {\n\r\t\t\t\tpush.call( ret, arr );\n\r\t\t\t}\n\r\t\t}\n\r\n\r\t\treturn ret;\n\r\t},\n\r\n\r\tinArray: function( elem, arr, i ) {\n\r\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\r\t},\n\r\n\r\t// Support: Android <=4.0 only, PhantomJS 1 only\n\r\t// push.apply(_, arraylike) throws on ancient WebKit\n\r\tmerge: function( first, second ) {\n\r\t\tvar len = +second.length,\n\r\t\t\tj = 0,\n\r\t\t\ti = first.length;\n\r\n\r\t\tfor ( ; j < len; j++ ) {\n\r\t\t\tfirst[ i++ ] = second[ j ];\n\r\t\t}\n\r\n\r\t\tfirst.length = i;\n\r\n\r\t\treturn first;\n\r\t},\n\r\n\r\tgrep: function( elems, callback, invert ) {\n\r\t\tvar callbackInverse,\n\r\t\t\tmatches = [],\n\r\t\t\ti = 0,\n\r\t\t\tlength = elems.length,\n\r\t\t\tcallbackExpect = !invert;\n\r\n\r\t\t// Go through the array, only saving the items\n\r\t\t// that pass the validator function\n\r\t\tfor ( ; i < length; i++ ) {\n\r\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\r\t\t\tif ( callbackInverse !== callbackExpect ) {\n\r\t\t\t\tmatches.push( elems[ i ] );\n\r\t\t\t}\n\r\t\t}\n\r\n\r\t\treturn matches;\n\r\t},\n\r\n\r\t// arg is for internal usage only\n\r\tmap: function( elems, callback, arg ) {\n\r\t\tvar length, value,\n\r\t\t\ti = 0,\n\r\t\t\tret = [];\n\r\n\r\t\t// Go through the array, translating each of the items to their new values\n\r\t\tif ( isArrayLike( elems ) ) {\n\r\t\t\tlength = elems.length;\n\r\t\t\tfor ( ; i < length; i++ ) {\n\r\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\r\n\r\t\t\t\tif ( value != null ) {\n\r\t\t\t\t\tret.push( value );\n\r\t\t\t\t}\n\r\t\t\t}\n\r\n\r\t\t// Go through every key on the object,\n\r\t\t} else {\n\r\t\t\tfor ( i in elems ) {\n\r\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\r\n\r\t\t\t\tif ( value != null ) {\n\r\t\t\t\t\tret.push( value );\n\r\t\t\t\t}\n\r\t\t\t}\n\r\t\t}\n\r\n\r\t\t// Flatten any nested arrays\n\r\t\treturn concat.apply( [], ret );\n\r\t},\n\r\n\r\t// A global GUID counter for objects\n\r\tguid: 1,\n\r\n\r\t// jQuery.support is not used in Core but other projects attach their\n\r\t// properties to it so it needs to exist.\n\r\tsupport: support\n\r} );\n\r\n\rif ( typeof Symbol === \"function\" ) {\n\r\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n\r}\n\r\n\r// Populate the class2type map\n\rjQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\n\rfunction( i, name ) {\n\r\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n\r} );\n\r\n\rfunction isArrayLike( obj ) {\n\r\n\r\t// Support: real iOS 8.2 only (not reproducible in simulator)\n\r\t// `in` check used to prevent JIT error (gh-2145)\n\r\t// hasOwn isn't used here due to false negatives\n\r\t// regarding Nodelist length in IE\n\r\tvar length = !!obj && \"length\" in obj && obj.length,\n\r\t\ttype = toType( obj );\n\r\n\r\tif ( isFunction( obj ) || isWindow( obj ) ) {\n\r\t\treturn false;\n\r\t}\n\r\n\r\treturn type === \"array\" || length === 0 ||\n\r\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n\r}\n\rvar Sizzle =\n\r/*!\n\r * Sizzle CSS Selector Engine v2.3.4\n\r * https://sizzlejs.com/\n\r *\n\r * Copyright JS Foundation and other contributors\n\r * Released under the MIT license\n\r * https://js.foundation/\n\r *\n\r * Date: 2019-04-08\n\r */\n\r(function( window ) {\n\r\n\rvar i,\n\r\tsupport,\n\r\tExpr,\n\r\tgetText,\n\r\tisXML,\n\r\ttokenize,\n\r\tcompile,\n\r\tselect,\n\r\toutermostContext,\n\r\tsortInput,\n\r\thasDuplicate,\n\r\n\r\t// Local document vars\n\r\tsetDocument,\n\r\tdocument,\n\r\tdocElem,\n\r\tdocumentIsHTML,\n\r\trbuggyQSA,\n\r\trbuggyMatches,\n\r\tmatches,\n\r\tcontains,\n\r\n\r\t// Instance-specific data\n\r\texpando = \"sizzle\" + 1 * new Date(),\n\r\tpreferredDoc = window.document,\n\r\tdirruns = 0,\n\r\tdone = 0,\n\r\tclassCache = createCache(),\n\r\ttokenCache = createCache(),\n\r\tcompilerCache = createCache(),\n\r\tnonnativeSelectorCache = createCache(),\n\r\tsortOrder = function( a, b ) {\n\r\t\tif ( a === b ) {\n\r\t\t\thasDuplicate = true;\n\r\t\t}\n\r\t\treturn 0;\n\r\t},\n\r\n\r\t// Instance methods\n\r\thasOwn = ({}).hasOwnProperty,\n\r\tarr = [],\n\r\tpop = arr.pop,\n\r\tpush_native = arr.push,\n\r\tpush = arr.push,\n\r\tslice = arr.slice,\n\r\t// Use a stripped-down indexOf as it's faster than native\n\r\t// https://jsperf.com/thor-indexof-vs-for/5\n\r\tindexOf = function( list, elem ) {\n\r\t\tvar i = 0,\n\r\t\t\tlen = list.length;\n\r\t\tfor ( ; i < len; i++ ) {\n\r\t\t\tif ( list[i] === elem ) {\n\r\t\t\t\treturn i;\n\r\t\t\t}\n\r\t\t}\n\r\t\treturn -1;\n\r\t},\n\r\n\r\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped\",\n\r\n\r\t// Regular expressions\n\r\n\r\t// http://www.w3.org/TR/css3-selectors/#whitespace\n\r\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\r\n\r\t// http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier\n\r\tidentifier = \"(?:\\\\\\\\.|[\\\\w-]|[^\\0-\\\\xa0])+\",\n\r\n\r\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\r\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\r\t\t// Operator (capture 2)\n\r\t\t\"*([*^$|!~]?=)\" + whitespace +\n\r\t\t// \"Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]\"\n\r\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" + whitespace +\n\r\t\t\"*\\\\]\",\n\r\n\r\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\r\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\r\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\r\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\r\t\t// 2. simple (capture 6)\n\r\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\r\t\t// 3. anything else (capture 2)\n\r\t\t\".*\" +\n\r\t\t\")\\\\)|)\",\n\r\n\r\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\r\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\r\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\", \"g\" ),\n\r\n\r\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\r\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace + \"*\" ),\n\r\trdescend = new RegExp( whitespace + \"|>\" ),\n\r\n\r\trpseudo = new RegExp( pseudos ),\n\r\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\r\n\r\tmatchExpr = {\n\r\t\t\"ID\": new RegExp( \"^#(\" + identifier + \")\" ),\n\r\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\r\t\t\"TAG\": new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\r\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\r\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\r\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + whitespace +\n\r\t\t\t\"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" + whitespace +\n\r\t\t\t\"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\r\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\r\t\t// For use in libraries implementing .is()\n\r\t\t// We use this for POS matching in `select`\n\r\t\t\"needsContext\": new RegExp( \"^\" + whitespace + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" +\n\r\t\t\twhitespace + \"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\r\t},\n\r\n\r\trhtml = /HTML$/i,\n\r\trinputs = /^(?:input|select|textarea|button)$/i,\n\r\trheader = /^h\\d$/i,\n\r\n\r\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\r\n\r\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\r\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\r\n\r\trsibling = /[+~]/,\n\r\n\r\t// CSS escapes\n\r\t// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\r\trunescape = new RegExp( \"\\\\\\\\([\\\\da-f]{1,6}\" + whitespace + \"?|(\" + whitespace + \")|.)\", \"ig\" ),\n\r\tfunescape = function( _, escaped, escapedWhitespace ) {\n\r\t\tvar high = \"0x\" + escaped - 0x10000;\n\r\t\t// NaN means non-codepoint\n\r\t\t// Support: Firefox<24\n\r\t\t// Workaround erroneous numeric interpretation of +\"0x\"\n\r\t\treturn high !== high || escapedWhitespace ?\n\r\t\t\tescaped :\n\r\t\t\thigh < 0 ?\n\r\t\t\t\t// BMP codepoint\n\r\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\r\t\t\t\t// Supplemental Plane codepoint (surrogate pair)\n\r\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\r\t},\n\r\n\r\t// CSS string/identifier serialization\n\r\t// https://drafts.csswg.org/cssom/#common-serializing-idioms\n\r\trcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n\r\tfcssescape = function( ch, asCodePoint ) {\n\r\t\tif ( asCodePoint ) {\n\r\n\r\t\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\r\t\t\tif ( ch === \"\\0\" ) {\n\r\t\t\t\treturn \"\\uFFFD\";\n\r\t\t\t}\n\r\n\r\t\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\r\t\t\treturn ch.slice( 0, -1 ) + \"\\\\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\r\t\t}\n\r\n\r\t\t// Other potentially-special ASCII characters get backslash-escaped\n\r\t\treturn \"\\\\\" + ch;\n\r\t},\n\r\n\r\t// Used for iframes\n\r\t// See setDocument()\n\r\t// Removing the function wrapper causes a \"Permission Denied\"\n\r\t// error in IE\n\r\tunloadHandler = function() {\n\r\t\tsetDocument();\n\r\t},\n\r\n\r\tinDisabledFieldset = addCombinator(\n\r\t\tfunction( elem ) {\n\r\t\t\treturn elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\n\r\t\t},\n\r\t\t{ dir: \"parentNode\", next: \"legend\" }\n\r\t);\n\r\n\r// Optimize for push.apply( _, NodeList )\n\rtry {\n\r\tpush.apply(\n\r\t\t(arr = slice.call( preferredDoc.childNodes )),\n\r\t\tpreferredDoc.childNodes\n\r\t);\n\r\t// Support: Android<4.0\n\r\t// Detect silently failing push.apply\n\r\tarr[ preferredDoc.childNodes.length ].nodeType;\n\r} catch ( e ) {\n\r\tpush = { apply: arr.length ?\n\r\n\r\t\t// Leverage slice if possible\n\r\t\tfunction( target, els ) {\n\r\t\t\tpush_native.apply( target, slice.call(els) );\n\r\t\t} :\n\r\n\r\t\t// Support: IE<9\n\r\t\t// Otherwise append directly\n\r\t\tfunction( target, els ) {\n\r\t\t\tvar j = target.length,\n\r\t\t\t\ti = 0;\n\r\t\t\t// Can't trust NodeList.length\n\r\t\t\twhile ( (target[j++] = els[i++]) ) {}\n\r\t\t\ttarget.length = j - 1;\n\r\t\t}\n\r\t};\n\r}\n\r\n\rfunction Sizzle( selector, context, results, seed ) {\n\r\tvar m, i, elem, nid, match, groups, newSelector,\n\r\t\tnewContext = context && context.ownerDocument,\n\r\n\r\t\t// nodeType defaults to 9, since context defaults to document\n\r\t\tnodeType = context ? context.nodeType : 9;\n\r\n\r\tresults = results || [];\n\r\n\r\t// Return early from calls with invalid selector or context\n\r\tif ( typeof selector !== \"string\" || !selector ||\n\r\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\r\n\r\t\treturn results;\n\r\t}\n\r\n\r\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\r\tif ( !seed ) {\n\r\n\r\t\tif ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {\n\r\t\t\tsetDocument( context );\n\r\t\t}\n\r\t\tcontext = context || document;\n\r\n\r\t\tif ( documentIsHTML ) {\n\r\n\r\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\r\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\r\t\t\tif ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {\n\r\n\r\t\t\t\t// ID selector\n\r\t\t\t\tif ( (m = match[1]) ) {\n\r\n\r\t\t\t\t\t// Document context\n\r\t\t\t\t\tif ( nodeType === 9 ) {\n\r\t\t\t\t\t\tif ( (elem = context.getElementById( m )) ) {\n\r\n\r\t\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\r\t\t\t\t\t\t\t// TODO: identify versions\n\r\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\r\t\t\t\t\t\t\tif ( elem.id === m ) {\n\r\t\t\t\t\t\t\t\tresults.push( elem );\n\r\t\t\t\t\t\t\t\treturn results;\n\r\t\t\t\t\t\t\t}\n\r\t\t\t\t\t\t} else {\n\r\t\t\t\t\t\t\treturn results;\n\r\t\t\t\t\t\t}\n\r\n\r\t\t\t\t\t// Element context\n\r\t\t\t\t\t} else {\n\r\n\r\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\r\t\t\t\t\t\t// TODO: identify versions\n\r\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\r\t\t\t\t\t\tif ( newContext && (elem = newContext.getElementById( m )) &&\n\r\t\t\t\t\t\t\tcontains( context, elem ) &&\n\r\t\t\t\t\t\t\telem.id === m ) {\n\r\n\r\t\t\t\t\t\t\tresults.push( elem );\n\r\t\t\t\t\t\t\treturn results;\n\r\t\t\t\t\t\t}\n\r\t\t\t\t\t}\n\r\n\r\t\t\t\t// Type selector\n\r\t\t\t\t} else if ( match[2] ) {\n\r\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\r\t\t\t\t\treturn results;\n\r\n\r\t\t\t\t// Class selector\n\r\t\t\t\t} else if ( (m = match[3]) && support.getElementsByClassName &&\n\r\t\t\t\t\tcontext.getElementsByClassName ) {\n\r\n\r\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\r\t\t\t\t\treturn results;\n\r\t\t\t\t}\n\r\t\t\t}\n\r\n\r\t\t\t// Take advantage of querySelectorAll\n\r\t\t\tif ( support.qsa &&\n\r\t\t\t\t!nonnativeSelectorCache[ selector + \" \" ] &&\n\r\t\t\t\t(!rbuggyQSA || !rbuggyQSA.test( selector )) &&\n\r\n\r\t\t\t\t// Support: IE 8 only\n\r\t\t\t\t// Exclude object elements\n\r\t\t\t\t(nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\") ) {\n\r\n\r\t\t\t\tnewSelector = selector;\n\r\t\t\t\tnewContext = context;\n\r\n\r\t\t\t\t// qSA considers elements outside a scoping root when evaluating child or\n\r\t\t\t\t// descendant combinators, which is not what we want.\n\r\t\t\t\t// In such cases, we work around the behavior by prefixing every selector in the\n\r\t\t\t\t// list with an ID selector referencing the scope context.\n\r\t\t\t\t// Thanks to Andrew Dupont for this technique.\n\r\t\t\t\tif ( nodeType === 1 && rdescend.test( selector ) ) {\n\r\n\r\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\r\t\t\t\t\tif ( (nid = context.getAttribute( \"id\" )) ) {\n\r\t\t\t\t\t\tnid = nid.replace( rcssescape, fcssescape );\n\r\t\t\t\t\t} else {\n\r\t\t\t\t\t\tcontext.setAttribute( \"id\", (nid = expando) );\n\r\t\t\t\t\t}\n\r\n\r\t\t\t\t\t// Prefix every selector in the list\n\r\t\t\t\t\tgroups = tokenize( selector );\n\r\t\t\t\t\ti = groups.length;\n\r\t\t\t\t\twhile ( i-- ) {\n\r\t\t\t\t\t\tgroups[i] = \"#\" + nid + \" \" + toSelector( groups[i] );\n\r\t\t\t\t\t}\n\r\t\t\t\t\tnewSelector = groups.join( \",\" );\n\r\n\r\t\t\t\t\t// Expand context for sibling selectors\n\r\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\r\t\t\t\t\t\tcontext;\n\r\t\t\t\t}\n\r\n\r\t\t\t\ttry {\n\r\t\t\t\t\tpush.apply( results,\n\r\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\r\t\t\t\t\t);\n\r\t\t\t\t\treturn results;\n\r\t\t\t\t} catch ( qsaError ) {\n\r\t\t\t\t\tnonnativeSelectorCache( selector, true );\n\r\t\t\t\t} finally {\n\r\t\t\t\t\tif ( nid === expando ) {\n\r\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\r\t\t\t\t\t}\n\r\t\t\t\t}\n\r\t\t\t}\n\r\t\t}\n\r\t}\n\r\n\r\t// All others\n\r\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n\r}\n\r\n\r/**\n\r * Create key-value caches of limited size\n\r * @returns {function(string, object)} Returns the Object data after storing it on itself with\n\r *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n\r *\tdeleting the oldest entry\n\r */\n\rfunction createCache() {\n\r\tvar keys = [];\n\r\n\r\tfunction cache( key, value ) {\n\r\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\r\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\r\t\t\t// Only keep the most recent entries\n\r\t\t\tdelete cache[ keys.shift() ];\n\r\t\t}\n\r\t\treturn (cache[ key + \" \" ] = value);\n\r\t}\n\r\treturn cache;\n\r}\n\r\n\r/**\n\r * Mark a function for special use by Sizzle\n\r * @param {Function} fn The function to mark\n\r */\n\rfunction markFunction( fn ) {\n\r\tfn[ expando ] = true;\n\r\treturn fn;\n\r}\n\r\n\r/**\n\r * Support testing using an element\n\r * @param {Function} fn Passed the created element and returns a boolean result\n\r */\n\rfunction assert( fn ) {\n\r\tvar el = document.createElement(\"fieldset\");\n\r\n\r\ttry {\n\r\t\treturn !!fn( el );\n\r\t} catch (e) {\n\r\t\treturn false;\n\r\t} finally {\n\r\t\t// Remove from its parent by default\n\r\t\tif ( el.parentNode ) {\n\r\t\t\tel.parentNode.removeChild( el );\n\r\t\t}\n\r\t\t// release memory in IE\n\r\t\tel = null;\n\r\t}\n\r}\n\r\n\r/**\n\r * Adds the same handler for all of the specified attrs\n\r * @param {String} attrs Pipe-separated list of attributes\n\r * @param {Function} handler The method that will be applied\n\r */\n\rfunction addHandle( attrs, handler ) {\n\r\tvar arr = attrs.split(\"|\"),\n\r\t\ti = arr.length;\n\r\n\r\twhile ( i-- ) {\n\r\t\tExpr.attrHandle[ arr[i] ] = handler;\n\r\t}\n\r}\n\r\n\r/**\n\r * Checks document order of two siblings\n\r * @param {Element} a\n\r * @param {Element} b\n\r * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n\r */\n\rfunction siblingCheck( a, b ) {\n\r\tvar cur = b && a,\n\r\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\r\t\t\ta.sourceIndex - b.sourceIndex;\n\r\n\r\t// Use IE sourceIndex if available on both nodes\n\r\tif ( diff ) {\n\r\t\treturn diff;\n\r\t}\n\r\n\r\t// Check if b follows a\n\r\tif ( cur ) {\n\r\t\twhile ( (cur = cur.nextSibling) ) {\n\r\t\t\tif ( cur === b ) {\n\r\t\t\t\treturn -1;\n\r\t\t\t}\n\r\t\t}\n\r\t}\n\r\n\r\treturn a ? 1 : -1;\n\r}\n\r\n\r/**\n\r * Returns a function to use in pseudos for input types\n\r * @param {String} type\n\r */\n\rfunction createInputPseudo( type ) {\n\r\treturn function( elem ) {\n\r\t\tvar name = elem.nodeName.toLowerCase();\n\r\t\treturn name === \"input\" && elem.type === type;\n\r\t};\n\r}\n\r\n\r/**\n\r * Returns a function to use in pseudos for buttons\n\r * @param {String} type\n\r */\n\rfunction createButtonPseudo( type ) {\n\r\treturn function( elem ) {\n\r\t\tvar name = elem.nodeName.toLowerCase();\n\r\t\treturn (name === \"input\" || name === \"button\") && elem.type === type;\n\r\t};\n\r}\n\r\n\r/**\n\r * Returns a function to use in pseudos for :enabled/:disabled\n\r * @param {Boolean} disabled true for :disabled; false for :enabled\n\r */\n\rfunction createDisabledPseudo( disabled ) {\n\r\n\r\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n\r\treturn function( elem ) {\n\r\n\r\t\t// Only certain elements can match :enabled or :disabled\n\r\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n\r\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n\r\t\tif ( \"form\" in elem ) {\n\r\n\r\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\n\r\t\t\t// * listed form-associated elements in a disabled fieldset\n\r\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#category-listed\n\r\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n\r\t\t\t// * option elements in a disabled optgroup\n\r\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n\r\t\t\t// All such elements have a \"form\" property.\n\r\t\t\tif ( elem.parentNode && elem.disabled === false ) {\n\r\n\r\t\t\t\t// Option elements defer to a parent optgroup if present\n\r\t\t\t\tif ( \"label\" in elem ) {\n\r\t\t\t\t\tif ( \"label\" in elem.parentNode ) {\n\r\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\n\r\t\t\t\t\t} else {\n\r\t\t\t\t\t\treturn elem.disabled === disabled;\n\r\t\t\t\t\t}\n\r\t\t\t\t}\n\r\n\r\t\t\t\t// Support: IE 6 - 11\n\r\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\r\t\t\t\treturn elem.isDisabled === disabled ||\n\r\n\r\t\t\t\t\t// Where there is no isDisabled, check manually\n\r\t\t\t\t\t/* jshint -W018 */\n\r\t\t\t\t\telem.isDisabled !== !disabled &&\n\r\t\t\t\t\t\tinDisabledFieldset( elem ) === disabled;\n\r\t\t\t}\n\r\n\r\t\t\treturn elem.disabled === disabled;\n\r\n\r\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\n\r\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n\r\t\t// even exist on them, let alone have a boolean value.\n\r\t\t} else if ( \"label\" in elem ) {\n\r\t\t\treturn elem.disabled === disabled;\n\r\t\t}\n\r\n\r\t\t// Remaining elements are neither :enabled nor :disabled\n\r\t\treturn false;\n\r\t};\n\r}\n\r\n\r/**\n\r * Returns a function to use in pseudos for positionals\n\r * @param {Function} fn\n\r */\n\rfunction createPositionalPseudo( fn ) {\n\r\treturn markFunction(function( argument ) {\n\r\t\targument = +argument;\n\r\t\treturn markFunction(function( seed, matches ) {\n\r\t\t\tvar j,\n\r\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\r\t\t\t\ti = matchIndexes.length;\n\r\n\r\t\t\t// Match elements found at the specified indexes\n\r\t\t\twhile ( i-- ) {\n\r\t\t\t\tif ( seed[ (j = matchIndexes[i]) ] ) {\n\r\t\t\t\t\tseed[j] = !(matches[j] = seed[j]);\n\r\t\t\t\t}\n\r\t\t\t}\n\r\t\t});\n\r\t});\n\r}\n\r\n\r/**\n\r * Checks a node for validity as a Sizzle context\n\r * @param {Element|Object=} context\n\r * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n\r */\n\rfunction testContext( context ) {\n\r\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n\r}\n\r\n\r// Expose support vars for convenience\n\rsupport = Sizzle.support = {};\n\r\n\r/**\n\r * Detects XML nodes\n\r * @param {Element|Object} elem An element or a document\n\r * @returns {Boolean} True iff elem is a non-HTML XML node\n\r */\n\risXML = Sizzle.isXML = function( elem ) {\n\r\tvar namespace = elem.namespaceURI,\n\r\t\tdocElem = (elem.ownerDocument || elem).documentElement;\n\r\n\r\t// Support: IE <=8\n\r\t// Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\n\r\t// https://bugs.jquery.com/ticket/4833\n\r\treturn !rhtml.test( namespace || docElem && docElem.nodeName || \"HTML\" );\n\r};\n\r\n\r/**\n\r * Sets document-related variables once based on the current document\n\r * @param {Element|Object} [doc] An element or document object to use to set the document\n\r * @returns {Object} Returns the current document\n\r */\n\rsetDocument = Sizzle.setDocument = function( node ) {\n\r\tvar hasCompare, subWindow,\n\r\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\r\n\r\t// Return early if doc is invalid or already selected\n\r\tif ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {\n\r\t\treturn document;\n\r\t}\n\r\n\r\t// Update global variables\n\r\tdocument = doc;\n\r\tdocElem = document.documentElement;\n\r\tdocumentIsHTML = !isXML( document );\n\r\n\r\t// Support: IE 9-11, Edge\n\r\t// Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n\r\tif ( preferredDoc !== document &&\n\r\t\t(subWindow = document.defaultView) && subWindow.top !== subWindow ) {\n\r\n\r\t\t// Support: IE 11, Edge\n\r\t\tif ( subWindow.addEventListener ) {\n\r\t\t\tsubWindow.addEventListener( \"unload\", unloadHandler, false );\n\r\n\r\t\t// Support: IE 9 - 10 only\n\r\t\t} else if ( subWindow.attachEvent ) {\n\r\t\t\tsubWindow.attachEvent( \"onunload\", unloadHandler );\n\r\t\t}\n\r\t}\n\r\n\r\t/* Attributes\n\r\t---------------------------------------------------------------------- */\n\r\n\r\t// Support: IE<8\n\r\t// Verify that getAttribute really returns attributes and not properties\n\r\t// (excepting IE8 booleans)\n\r\tsupport.attributes = assert(function( el ) {\n\r\t\tel.className = \"i\";\n\r\t\treturn !el.getAttribute(\"className\");\n\r\t});\n\r\n\r\t/* getElement(s)By*\n\r\t---------------------------------------------------------------------- */\n\r\n\r\t// Check if getElementsByTagName(\"*\") returns only elements\n\r\tsupport.getElementsByTagName = assert(function( el ) {\n\r\t\tel.appendChild( document.createComment(\"\") );\n\r\t\treturn !el.getElementsByTagName(\"*\").length;\n\r\t});\n\r\n\r\t// Support: IE<9\n\r\tsupport.getElementsByClassName = rnative.test( document.getElementsByClassName );\n\r\n\r\t// Support: IE<10\n\r\t// Check if getElementById returns elements by name\n\r\t// The broken getElementById methods don't pick up programmatically-set names,\n\r\t// so use a roundabout getElementsByName test\n\r\tsupport.getById = assert(function( el ) {\n\r\t\tdocElem.appendChild( el ).id = expando;\n\r\t\treturn !document.getElementsByName || !document.getElementsByName( expando ).length;\n\r\t});\n\r\n\r\t// ID filter and find\n\r\tif ( support.getById ) {\n\r\t\tExpr.filter[\"ID\"] = function( id ) {\n\r\t\t\tvar attrId = id.replace( runescape, funescape );\n\r\t\t\treturn function( elem ) {\n\r\t\t\t\treturn elem.getAttribute(\"id\") === attrId;\n\r\t\t\t};\n\r\t\t};\n\r\t\tExpr.find[\"ID\"] = function( id, context ) {\n\r\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\r\t\t\t\tvar elem = context.getElementById( id );\n\r\t\t\t\treturn elem ? [ elem ] : [];\n\r\t\t\t}\n\r\t\t};\n\r\t} else {\n\r\t\tExpr.filter[\"ID\"] = function( id ) {\n\r\t\t\tvar attrId = id.replace( runescape, funescape );\n\r\t\t\treturn function( elem ) {\n\r\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\n\r\t\t\t\t\telem.getAttributeNode(\"id\");\n\r\t\t\t\treturn node && node.value === attrId;\n\r\t\t\t};\n\r\t\t};\n\r\n\r\t\t// Support: IE 6 - 7 only\n\r\t\t// getElementById is not reliable as a find shortcut\n\r\t\tExpr.find[\"ID\"] = function( id, context ) {\n\r\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\r\t\t\t\tvar node, i, elems,\n\r\t\t\t\t\telem = context.getElementById( id );\n\r\n\r\t\t\t\tif ( elem ) {\n\r\n\r\t\t\t\t\t// Verify the id attribute\n\r\t\t\t\t\tnode = elem.getAttributeNode(\"id\");\n\r\t\t\t\t\tif ( node && node.value === id ) {\n\r\t\t\t\t\t\treturn [ elem ];\n\r\t\t\t\t\t}\n\r\n\r\t\t\t\t\t// Fall back on getElementsByName\n\r\t\t\t\t\telems = context.getElementsByName( id );\n\r\t\t\t\t\ti = 0;\n\r\t\t\t\t\twhile ( (elem = elems[i++]) ) {\n\r\t\t\t\t\t\tnode = elem.getAttributeNode(\"id\");\n\r\t\t\t\t\t\tif ( node && node.value === id ) {\n\r\t\t\t\t\t\t\treturn [ elem ];\n\r\t\t\t\t\t\t}\n\r\t\t\t\t\t}\n\r\t\t\t\t}\n\r\n\r\t\t\t\treturn [];\n\r\t\t\t}\n\r\t\t};\n\r\t}\n\r\n\r\t// Tag\n\r\tExpr.find[\"TAG\"] = support.getElementsByTagName ?\n\r\t\tfunction( tag, context ) {\n\r\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\r\t\t\t\treturn context.getElementsByTagName( tag );\n\r\n\r\t\t\t// DocumentFragment nodes don't have gEBTN\n\r\t\t\t} else if ( support.qsa ) {\n\r\t\t\t\treturn context.querySelectorAll( tag );\n\r\t\t\t}\n\r\t\t} :\n\r\n\r\t\tfunction( tag, context ) {\n\r\t\t\tvar elem,\n\r\t\t\t\ttmp = [],\n\r\t\t\t\ti = 0,\n\r\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\r\t\t\t\tresults = context.getElementsByTagName( tag );\n\r\n\r\t\t\t// Filter out possible comments\n\r\t\t\tif ( tag === \"*\" ) {\n\r\t\t\t\twhile ( (elem = results[i++]) ) {\n\r\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\r\t\t\t\t\t\ttmp.push( elem );\n\r\t\t\t\t\t}\n\r\t\t\t\t}\n\r\n\r\t\t\t\treturn tmp;\n\r\t\t\t}\n\r\t\t\treturn results;\n\r\t\t};\n\r\n\r\t// Class\n\r\tExpr.find[\"CLASS\"] = support.getElementsByClassName && function( className, context ) {\n\r\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\r\t\t\treturn context.getElementsByClassName( className );\n\r\t\t}\n\r\t};\n\r\n\r\t/* QSA/matchesSelector\n\r\t---------------------------------------------------------------------- */\n\r\n\r\t// QSA and matchesSelector support\n\r\n\r\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\r\trbuggyMatches = [];\n\r\n\r\t// qSa(:focus) reports false when true (Chrome 21)\n\r\t// We allow this because of a bug in IE8/9 that throws an error\n\r\t// whenever `document.activeElement` is accessed on an iframe\n\r\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\r\t// See https://bugs.jquery.com/ticket/13378\n\r\trbuggyQSA = [];\n\r\n\r\tif ( (support.qsa = rnative.test( document.querySelectorAll )) ) {\n\r\t\t// Build QSA regex\n\r\t\t// Regex strategy adopted from Diego Perini\n\r\t\tassert(function( el ) {\n\r\t\t\t// Select is set to empty string on purpose\n\r\t\t\t// This is to test IE's treatment of not explicitly\n\r\t\t\t// setting a boolean content attribute,\n\r\t\t\t// since its presence should be enough\n\r\t\t\t// https://bugs.jquery.com/ticket/12359\n\r\t\t\tdocElem.appendChild( el ).innerHTML = \"\" +\n\r\t\t\t\t\"\";\n\r\n\r\t\t\t// Support: IE8, Opera 11-12.16\n\r\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\r\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\r\t\t\t// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\r\t\t\tif ( el.querySelectorAll(\"[msallowcapture^='']\").length ) {\n\r\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\r\t\t\t}\n\r\n\r\t\t\t// Support: IE8\n\r\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\r\t\t\tif ( !el.querySelectorAll(\"[selected]\").length ) {\n\r\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\r\t\t\t}\n\r\n\r\t\t\t// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\r\t\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\r\t\t\t\trbuggyQSA.push(\"~=\");\n\r\t\t\t}\n\r\n\r\t\t\t// Webkit/Opera - :checked should return selected option elements\n\r\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\r\t\t\t// IE8 throws error here and will not see later tests\n\r\t\t\tif ( !el.querySelectorAll(\":checked\").length ) {\n\r\t\t\t\trbuggyQSA.push(\":checked\");\n\r\t\t\t}\n\r\n\r\t\t\t// Support: Safari 8+, iOS 8+\n\r\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\r\t\t\t// In-page `selector#id sibling-combinator selector` fails\n\r\t\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\r\t\t\t\trbuggyQSA.push(\".#.+[+~]\");\n\r\t\t\t}\n\r\t\t});\n\r\n\r\t\tassert(function( el ) {\n\r\t\t\tel.innerHTML = \"\" +\n\r\t\t\t\t\"\";\n\r\n\r\t\t\t// Support: Windows 8 Native Apps\n\r\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\r\t\t\tvar input = document.createElement(\"input\");\n\r\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\r\t\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\r\n\r\t\t\t// Support: IE8\n\r\t\t\t// Enforce case-sensitivity of name attribute\n\r\t\t\tif ( el.querySelectorAll(\"[name=d]\").length ) {\n\r\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\r\t\t\t}\n\r\n\r\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\r\t\t\t// IE8 throws error here and will not see later tests\n\r\t\t\tif ( el.querySelectorAll(\":enabled\").length !== 2 ) {\n\r\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\r\t\t\t}\n\r\n\r\t\t\t// Support: IE9-11+\n\r\t\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\r\t\t\tdocElem.appendChild( el ).disabled = true;\n\r\t\t\tif ( el.querySelectorAll(\":disabled\").length !== 2 ) {\n\r\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\r\t\t\t}\n\r\n\r\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\r\t\t\tel.querySelectorAll(\"*,:x\");\n\r\t\t\trbuggyQSA.push(\",.*:\");\n\r\t\t});\n\r\t}\n\r\n\r\tif ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||\n\r\t\tdocElem.webkitMatchesSelector ||\n\r\t\tdocElem.mozMatchesSelector ||\n\r\t\tdocElem.oMatchesSelector ||\n\r\t\tdocElem.msMatchesSelector) )) ) {\n\r\n\r\t\tassert(function( el ) {\n\r\t\t\t// Check to see if it's possible to do matchesSelector\n\r\t\t\t// on a disconnected node (IE 9)\n\r\t\t\tsupport.disconnectedMatch = matches.call( el, \"*\" );\n\r\n\r\t\t\t// This should fail with an exception\n\r\t\t\t// Gecko does not error, returns false instead\n\r\t\t\tmatches.call( el, \"[s!='']:x\" );\n\r\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\r\t\t});\n\r\t}\n\r\n\r\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join(\"|\") );\n\r\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join(\"|\") );\n\r\n\r\t/* Contains\n\r\t---------------------------------------------------------------------- */\n\r\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\r\n\r\t// Element contains another\n\r\t// Purposefully self-exclusive\n\r\t// As in, an element does not contain itself\n\r\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\r\t\tfunction( a, b ) {\n\r\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\n\r\t\t\t\tbup = b && b.parentNode;\n\r\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\r\t\t\t\tadown.contains ?\n\r\t\t\t\t\tadown.contains( bup ) :\n\r\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\r\t\t\t));\n\r\t\t} :\n\r\t\tfunction( a, b ) {\n\r\t\t\tif ( b ) {\n\r\t\t\t\twhile ( (b = b.parentNode) ) {\n\r\t\t\t\t\tif ( b === a ) {\n\r\t\t\t\t\t\treturn true;\n\r\t\t\t\t\t}\n\r\t\t\t\t}\n\r\t\t\t}\n\r\t\t\treturn false;\n\r\t\t};\n\r\n\r\t/* Sorting\n\r\t---------------------------------------------------------------------- */\n\r\n\r\t// Document order sorting\n\r\tsortOrder = hasCompare ?\n\r\tfunction( a, b ) {\n\r\n\r\t\t// Flag for duplicate removal\n\r\t\tif ( a === b ) {\n\r\t\t\thasDuplicate = true;\n\r\t\t\treturn 0;\n\r\t\t}\n\r\n\r\t\t// Sort on method existence if only one input has compareDocumentPosition\n\r\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\r\t\tif ( compare ) {\n\r\t\t\treturn compare;\n\r\t\t}\n\r\n\r\t\t// Calculate position if both inputs belong to the same document\n\r\t\tcompare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?\n\r\t\t\ta.compareDocumentPosition( b ) :\n\r\n\r\t\t\t// Otherwise we know they are disconnected\n\r\t\t\t1;\n\r\n\r\t\t// Disconnected nodes\n\r\t\tif ( compare & 1 ||\n\r\t\t\t(!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {\n\r\n\r\t\t\t// Choose the first element that is related to our preferred document\n\r\t\t\tif ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {\n\r\t\t\t\treturn -1;\n\r\t\t\t}\n\r\t\t\tif ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {\n\r\t\t\t\treturn 1;\n\r\t\t\t}\n\r\n\r\t\t\t// Maintain original order\n\r\t\t\treturn sortInput ?\n\r\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\r\t\t\t\t0;\n\r\t\t}\n\r\n\r\t\treturn compare & 4 ? -1 : 1;\n\r\t} :\n\r\tfunction( a, b ) {\n\r\t\t// Exit early if the nodes are identical\n\r\t\tif ( a === b ) {\n\r\t\t\thasDuplicate = true;\n\r\t\t\treturn 0;\n\r\t\t}\n\r\n\r\t\tvar cur,\n\r\t\t\ti = 0,\n\r\t\t\taup = a.parentNode,\n\r\t\t\tbup = b.parentNode,\n\r\t\t\tap = [ a ],\n\r\t\t\tbp = [ b ];\n\r\n\r\t\t// Parentless nodes are either documents or disconnected\n\r\t\tif ( !aup || !bup ) {\n\r\t\t\treturn a === document ? -1 :\n\r\t\t\t\tb === document ? 1 :\n\r\t\t\t\taup ? -1 :\n\r\t\t\t\tbup ? 1 :\n\r\t\t\t\tsortInput ?\n\r\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\r\t\t\t\t0;\n\r\n\r\t\t// If the nodes are siblings, we can do a quick check\n\r\t\t} else if ( aup === bup ) {\n\r\t\t\treturn siblingCheck( a, b );\n\r\t\t}\n\r\n\r\t\t// Otherwise we need full lists of their ancestors for comparison\n\r\t\tcur = a;\n\r\t\twhile ( (cur = cur.parentNode) ) {\n\r\t\t\tap.unshift( cur );\n\r\t\t}\n\r\t\tcur = b;\n\r\t\twhile ( (cur = cur.parentNode) ) {\n\r\t\t\tbp.unshift( cur );\n\r\t\t}\n\r\n\r\t\t// Walk down the tree looking for a discrepancy\n\r\t\twhile ( ap[i] === bp[i] ) {\n\r\t\t\ti++;\n\r\t\t}\n\r\n\r\t\treturn i ?\n\r\t\t\t// Do a sibling check if the nodes have a common ancestor\n\r\t\t\tsiblingCheck( ap[i], bp[i] ) :\n\r\n\r\t\t\t// Otherwise nodes in our document sort first\n\r\t\t\tap[i] === preferredDoc ? -1 :\n\r\t\t\tbp[i] === preferredDoc ? 1 :\n\r\t\t\t0;\n\r\t};\n\r\n\r\treturn document;\n\r};\n\r\n\rSizzle.matches = function( expr, elements ) {\n\r\treturn Sizzle( expr, null, null, elements );\n\r};\n\r\n\rSizzle.matchesSelector = function( elem, expr ) {\n\r\t// Set document vars if needed\n\r\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\r\t\tsetDocument( elem );\n\r\t}\n\r\n\r\tif ( support.matchesSelector && documentIsHTML &&\n\r\t\t!nonnativeSelectorCache[ expr + \" \" ] &&\n\r\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\r\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\n\r\n\r\t\ttry {\n\r\t\t\tvar ret = matches.call( elem, expr );\n\r\n\r\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\r\t\t\tif ( ret || support.disconnectedMatch ||\n\r\t\t\t\t\t// As well, disconnected nodes are said to be in a document\n\r\t\t\t\t\t// fragment in IE 9\n\r\t\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\r\t\t\t\treturn ret;\n\r\t\t\t}\n\r\t\t} catch (e) {\n\r\t\t\tnonnativeSelectorCache( expr, true );\n\r\t\t}\n\r\t}\n\r\n\r\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\n\r};\n\r\n\rSizzle.contains = function( context, elem ) {\n\r\t// Set document vars if needed\n\r\tif ( ( context.ownerDocument || context ) !== document ) {\n\r\t\tsetDocument( context );\n\r\t}\n\r\treturn contains( context, elem );\n\r};\n\r\n\rSizzle.attr = function( elem, name ) {\n\r\t// Set document vars if needed\n\r\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\r\t\tsetDocument( elem );\n\r\t}\n\r\n\r\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\r\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\r\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\r\t\t\tfn( elem, name, !documentIsHTML ) :\n\r\t\t\tundefined;\n\r\n\r\treturn val !== undefined ?\n\r\t\tval :\n\r\t\tsupport.attributes || !documentIsHTML ?\n\r\t\t\telem.getAttribute( name ) :\n\r\t\t\t(val = elem.getAttributeNode(name)) && val.specified ?\n\r\t\t\t\tval.value :\n\r\t\t\t\tnull;\n\r};\n\r\n\rSizzle.escape = function( sel ) {\n\r\treturn (sel + \"\").replace( rcssescape, fcssescape );\n\r};\n\r\n\rSizzle.error = function( msg ) {\n\r\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n\r};\n\r\n\r/**\n\r * Document sorting and removing duplicates\n\r * @param {ArrayLike} results\n\r */\n\rSizzle.uniqueSort = function( results ) {\n\r\tvar elem,\n\r\t\tduplicates = [],\n\r\t\tj = 0,\n\r\t\ti = 0;\n\r\n\r\t// Unless we *know* we can detect duplicates, assume their presence\n\r\thasDuplicate = !support.detectDuplicates;\n\r\tsortInput = !support.sortStable && results.slice( 0 );\n\r\tresults.sort( sortOrder );\n\r\n\r\tif ( hasDuplicate ) {\n\r\t\twhile ( (elem = results[i++]) ) {\n\r\t\t\tif ( elem === results[ i ] ) {\n\r\t\t\t\tj = duplicates.push( i );\n\r\t\t\t}\n\r\t\t}\n\r\t\twhile ( j-- ) {\n\r\t\t\tresults.splice( duplicates[ j ], 1 );\n\r\t\t}\n\r\t}\n\r\n\r\t// Clear input after sorting to release objects\n\r\t// See https://github.com/jquery/sizzle/pull/225\n\r\tsortInput = null;\n\r\n\r\treturn results;\n\r};\n\r\n\r/**\n\r * Utility function for retrieving the text value of an array of DOM nodes\n\r * @param {Array|Element} elem\n\r */\n\rgetText = Sizzle.getText = function( elem ) {\n\r\tvar node,\n\r\t\tret = \"\",\n\r\t\ti = 0,\n\r\t\tnodeType = elem.nodeType;\n\r\n\r\tif ( !nodeType ) {\n\r\t\t// If no nodeType, this is expected to be an array\n\r\t\twhile ( (node = elem[i++]) ) {\n\r\t\t\t// Do not traverse comment nodes\n\r\t\t\tret += getText( node );\n\r\t\t}\n\r\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\r\t\t// Use textContent for elements\n\r\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\n\r\t\tif ( typeof elem.textContent === \"string\" ) {\n\r\t\t\treturn elem.textContent;\n\r\t\t} else {\n\r\t\t\t// Traverse its children\n\r\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\r\t\t\t\tret += getText( elem );\n\r\t\t\t}\n\r\t\t}\n\r\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\r\t\treturn elem.nodeValue;\n\r\t}\n\r\t// Do not include comment or processing instruction nodes\n\r\n\r\treturn ret;\n\r};\n\r\n\rExpr = Sizzle.selectors = {\n\r\n\r\t// Can be adjusted by the user\n\r\tcacheLength: 50,\n\r\n\r\tcreatePseudo: markFunction,\n\r\n\r\tmatch: matchExpr,\n\r\n\r\tattrHandle: {},\n\r\n\r\tfind: {},\n\r\n\r\trelative: {\n\r\t\t\">\": { dir: \"parentNode\", first: true },\n\r\t\t\" \": { dir: \"parentNode\" },\n\r\t\t\"+\": { dir: \"previousSibling\", first: true },\n\r\t\t\"~\": { dir: \"previousSibling\" }\n\r\t},\n\r\n\r\tpreFilter: {\n\r\t\t\"ATTR\": function( match ) {\n\r\t\t\tmatch[1] = match[1].replace( runescape, funescape );\n\r\n\r\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\r\t\t\tmatch[3] = ( match[3] || match[4] || match[5] || \"\" ).replace( runescape, funescape );\n\r\n\r\t\t\tif ( match[2] === \"~=\" ) {\n\r\t\t\t\tmatch[3] = \" \" + match[3] + \" \";\n\r\t\t\t}\n\r\n\r\t\t\treturn match.slice( 0, 4 );\n\r\t\t},\n\r\n\r\t\t\"CHILD\": function( match ) {\n\r\t\t\t/* matches from matchExpr[\"CHILD\"]\n\r\t\t\t\t1 type (only|nth|...)\n\r\t\t\t\t2 what (child|of-type)\n\r\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\r\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\r\t\t\t\t5 sign of xn-component\n\r\t\t\t\t6 x of xn-component\n\r\t\t\t\t7 sign of y-component\n\r\t\t\t\t8 y of y-component\n\r\t\t\t*/\n\r\t\t\tmatch[1] = match[1].toLowerCase();\n\r\n\r\t\t\tif ( match[1].slice( 0, 3 ) === \"nth\" ) {\n\r\t\t\t\t// nth-* requires argument\n\r\t\t\t\tif ( !match[3] ) {\n\r\t\t\t\t\tSizzle.error( match[0] );\n\r\t\t\t\t}\n\r\n\r\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\r\t\t\t\t// remember that false/true cast respectively to 0/1\n\r\t\t\t\tmatch[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === \"even\" || match[3] === \"odd\" ) );\n\r\t\t\t\tmatch[5] = +( ( match[7] + match[8] ) || match[3] === \"odd\" );\n\r\n\r\t\t\t// other types prohibit arguments\n\r\t\t\t} else if ( match[3] ) {\n\r\t\t\t\tSizzle.error( match[0] );\n\r\t\t\t}\n\r\n\r\t\t\treturn match;\n\r\t\t},\n\r\n\r\t\t\"PSEUDO\": function( match ) {\n\r\t\t\tvar excess,\n\r\t\t\t\tunquoted = !match[6] && match[2];\n\r\n\r\t\t\tif ( matchExpr[\"CHILD\"].test( match[0] ) ) {\n\r\t\t\t\treturn null;\n\r\t\t\t}\n\r\n\r\t\t\t// Accept quoted arguments as-is\n\r\t\t\tif ( match[3] ) {\n\r\t\t\t\tmatch[2] = match[4] || match[5] || \"\";\n\r\n\r\t\t\t// Strip excess characters from unquoted arguments\n\r\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\r\t\t\t\t// Get excess from tokenize (recursively)\n\r\t\t\t\t(excess = tokenize( unquoted, true )) &&\n\r\t\t\t\t// advance to the next closing parenthesis\n\r\t\t\t\t(excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length) ) {\n\r\n\r\t\t\t\t// excess is a negative index\n\r\t\t\t\tmatch[0] = match[0].slice( 0, excess );\n\r\t\t\t\tmatch[2] = unquoted.slice( 0, excess );\n\r\t\t\t}\n\r\n\r\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\r\t\t\treturn match.slice( 0, 3 );\n\r\t\t}\n\r\t},\n\r\n\r\tfilter: {\n\r\n\r\t\t\"TAG\": function( nodeNameSelector ) {\n\r\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\r\t\t\treturn nodeNameSelector === \"*\" ?\n\r\t\t\t\tfunction() { return true; } :\n\r\t\t\t\tfunction( elem ) {\n\r\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\r\t\t\t\t};\n\r\t\t},\n\r\n\r\t\t\"CLASS\": function( className ) {\n\r\t\t\tvar pattern = classCache[ className + \" \" ];\n\r\n\r\t\t\treturn pattern ||\n\r\t\t\t\t(pattern = new RegExp( \"(^|\" + whitespace + \")\" + className + \"(\" + whitespace + \"|$)\" )) &&\n\r\t\t\t\tclassCache( className, function( elem ) {\n\r\t\t\t\t\treturn pattern.test( typeof elem.className === \"string\" && elem.className || typeof elem.getAttribute !== \"undefined\" && elem.getAttribute(\"class\") || \"\" );\n\r\t\t\t\t});\n\r\t\t},\n\r\n\r\t\t\"ATTR\": function( name, operator, check ) {\n\r\t\t\treturn function( elem ) {\n\r\t\t\t\tvar result = Sizzle.attr( elem, name );\n\r\n\r\t\t\t\tif ( result == null ) {\n\r\t\t\t\t\treturn operator === \"!=\";\n\r\t\t\t\t}\n\r\t\t\t\tif ( !operator ) {\n\r\t\t\t\t\treturn true;\n\r\t\t\t\t}\n\r\n\r\t\t\t\tresult += \"\";\n\r\n\r\t\t\t\treturn operator === \"=\" ? result === check :\n\r\t\t\t\t\toperator === \"!=\" ? result !== check :\n\r\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\r\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\r\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\r\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\n\r\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\r\t\t\t\t\tfalse;\n\r\t\t\t};\n\r\t\t},\n\r\n\r\t\t\"CHILD\": function( type, what, argument, first, last ) {\n\r\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\r\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\r\t\t\t\tofType = what === \"of-type\";\n\r\n\r\t\t\treturn first === 1 && last === 0 ?\n\r\n\r\t\t\t\t// Shortcut for :nth-*(n)\n\r\t\t\t\tfunction( elem ) {\n\r\t\t\t\t\treturn !!elem.parentNode;\n\r\t\t\t\t} :\n\r\n\r\t\t\t\tfunction( elem, context, xml ) {\n\r\t\t\t\t\tvar cache, uniqueCache, outerCache, node, nodeIndex, start,\n\r\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\r\t\t\t\t\t\tparent = elem.parentNode,\n\r\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\r\t\t\t\t\t\tuseCache = !xml && !ofType,\n\r\t\t\t\t\t\tdiff = false;\n\r\n\r\t\t\t\t\tif ( parent ) {\n\r\n\r\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\r\t\t\t\t\t\tif ( simple ) {\n\r\t\t\t\t\t\t\twhile ( dir ) {\n\r\t\t\t\t\t\t\t\tnode = elem;\n\r\t\t\t\t\t\t\t\twhile ( (node = node[ dir ]) ) {\n\r\t\t\t\t\t\t\t\t\tif ( ofType ?\n\r\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\r\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\r\n\r\t\t\t\t\t\t\t\t\t\treturn false;\n\r\t\t\t\t\t\t\t\t\t}\n\r\t\t\t\t\t\t\t\t}\n\r\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\r\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\r\t\t\t\t\t\t\t}\n\r\t\t\t\t\t\t\treturn true;\n\r\t\t\t\t\t\t}\n\r\n\r\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\r\n\r\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\r\t\t\t\t\t\tif ( forward && useCache ) {\n\r\n\r\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\r\n\r\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\r\t\t\t\t\t\t\tnode = parent;\n\r\t\t\t\t\t\t\touterCache = node[ expando ] || (node[ expando ] = {});\n\r\n\r\t\t\t\t\t\t\t// Support: IE <9 only\n\r\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\r\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\r\t\t\t\t\t\t\t\t(outerCache[ node.uniqueID ] = {});\n\r\n\r\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\r\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\r\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\n\r\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\r\n\r\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\r\n\r\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\r\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\r\n\r\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\r\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\r\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, nodeIndex, diff ];\n\r\t\t\t\t\t\t\t\t\tbreak;\n\r\t\t\t\t\t\t\t\t}\n\r\t\t\t\t\t\t\t}\n\r\n\r\t\t\t\t\t\t} else {\n\r\t\t\t\t\t\t\t// Use previously-cached element index if available\n\r\t\t\t\t\t\t\tif ( useCache ) {\n\r\t\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\r\t\t\t\t\t\t\t\tnode = elem;\n\r\t\t\t\t\t\t\t\touterCache = node[ expando ] || (node[ expando ] = {});\n\r\n\r\t\t\t\t\t\t\t\t// Support: IE <9 only\n\r\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\r\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\r\t\t\t\t\t\t\t\t\t(outerCache[ node.uniqueID ] = {});\n\r\n\r\t\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\r\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\r\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\r\t\t\t\t\t\t\t}\n\r\n\r\t\t\t\t\t\t\t// xml :nth-child(...)\n\r\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\r\t\t\t\t\t\t\tif ( diff === false ) {\n\r\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\r\t\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\r\t\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\r\n\r\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\r\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\r\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\r\t\t\t\t\t\t\t\t\t\t++diff ) {\n\r\n\r\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\r\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\r\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] || (node[ expando ] = {});\n\r\n\r\t\t\t\t\t\t\t\t\t\t\t// Support: IE <9 only\n\r\t\t\t\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\r\t\t\t\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\r\t\t\t\t\t\t\t\t\t\t\t\t(outerCache[ node.uniqueID ] = {});\n\r\n\r\t\t\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, diff ];\n\r\t\t\t\t\t\t\t\t\t\t}\n\r\n\r\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\r\t\t\t\t\t\t\t\t\t\t\tbreak;\n\r\t\t\t\t\t\t\t\t\t\t}\n\r\t\t\t\t\t\t\t\t\t}\n\r\t\t\t\t\t\t\t\t}\n\r\t\t\t\t\t\t\t}\n\r\t\t\t\t\t\t}\n\r\n\r\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\r\t\t\t\t\t\tdiff -= last;\n\r\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\r\t\t\t\t\t}\n\r\t\t\t\t};\n\r\t\t},\n\r\n\r\t\t\"PSEUDO\": function( pseudo, argument ) {\n\r\t\t\t// pseudo-class names are case-insensitive\n\r\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\r\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\r\t\t\t// Remember that setFilters inherits from pseudos\n\r\t\t\tvar args,\n\r\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\r\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\r\n\r\t\t\t// The user may use createPseudo to indicate that\n\r\t\t\t// arguments are needed to create the filter function\n\r\t\t\t// just as Sizzle does\n\r\t\t\tif ( fn[ expando ] ) {\n\r\t\t\t\treturn fn( argument );\n\r\t\t\t}\n\r\n\r\t\t\t// But maintain support for old signatures\n\r\t\t\tif ( fn.length > 1 ) {\n\r\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\r\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\r\t\t\t\t\tmarkFunction(function( seed, matches ) {\n\r\t\t\t\t\t\tvar idx,\n\r\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\r\t\t\t\t\t\t\ti = matched.length;\n\r\t\t\t\t\t\twhile ( i-- ) {\n\r\t\t\t\t\t\t\tidx = indexOf( seed, matched[i] );\n\r\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[i] );\n\r\t\t\t\t\t\t}\n\r\t\t\t\t\t}) :\n\r\t\t\t\t\tfunction( elem ) {\n\r\t\t\t\t\t\treturn fn( elem, 0, args );\n\r\t\t\t\t\t};\n\r\t\t\t}\n\r\n\r\t\t\treturn fn;\n\r\t\t}\n\r\t},\n\r\n\r\tpseudos: {\n\r\t\t// Potentially complex pseudos\n\r\t\t\"not\": markFunction(function( selector ) {\n\r\t\t\t// Trim the selector passed to compile\n\r\t\t\t// to avoid treating leading and trailing\n\r\t\t\t// spaces as combinators\n\r\t\t\tvar input = [],\n\r\t\t\t\tresults = [],\n\r\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\r\n\r\t\t\treturn matcher[ expando ] ?\n\r\t\t\t\tmarkFunction(function( seed, matches, context, xml ) {\n\r\t\t\t\t\tvar elem,\n\r\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\r\t\t\t\t\t\ti = seed.length;\n\r\n\r\t\t\t\t\t// Match elements unmatched by `matcher`\n\r\t\t\t\t\twhile ( i-- ) {\n\r\t\t\t\t\t\tif ( (elem = unmatched[i]) ) {\n\r\t\t\t\t\t\t\tseed[i] = !(matches[i] = elem);\n\r\t\t\t\t\t\t}\n\r\t\t\t\t\t}\n\r\t\t\t\t}) :\n\r\t\t\t\tfunction( elem, context, xml ) {\n\r\t\t\t\t\tinput[0] = elem;\n\r\t\t\t\t\tmatcher( input, null, xml, results );\n\r\t\t\t\t\t// Don't keep the element (issue #299)\n\r\t\t\t\t\tinput[0] = null;\n\r\t\t\t\t\treturn !results.pop();\n\r\t\t\t\t};\n\r\t\t}),\n\r\n\r\t\t\"has\": markFunction(function( selector ) {\n\r\t\t\treturn function( elem ) {\n\r\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\r\t\t\t};\n\r\t\t}),\n\r\n\r\t\t\"contains\": markFunction(function( text ) {\n\r\t\t\ttext = text.replace( runescape, funescape );\n\r\t\t\treturn function( elem ) {\n\r\t\t\t\treturn ( elem.textContent || getText( elem ) ).indexOf( text ) > -1;\n\r\t\t\t};\n\r\t\t}),\n\r\n\r\t\t// \"Whether an element is represented by a :lang() selector\n\r\t\t// is based solely on the element's language value\n\r\t\t// being equal to the identifier C,\n\r\t\t// or beginning with the identifier C immediately followed by \"-\".\n\r\t\t// The matching of C against the element's language value is performed case-insensitively.\n\r\t\t// The identifier C does not have to be a valid language name.\"\n\r\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\r\t\t\"lang\": markFunction( function( lang ) {\n\r\t\t\t// lang value must be a valid identifier\n\r\t\t\tif ( !ridentifier.test(lang || \"\") ) {\n\r\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\r\t\t\t}\n\r\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\r\t\t\treturn function( elem ) {\n\r\t\t\t\tvar elemLang;\n\r\t\t\t\tdo {\n\r\t\t\t\t\tif ( (elemLang = documentIsHTML ?\n\r\t\t\t\t\t\telem.lang :\n\r\t\t\t\t\t\telem.getAttribute(\"xml:lang\") || elem.getAttribute(\"lang\")) ) {\n\r\n\r\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\r\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\r\t\t\t\t\t}\n\r\t\t\t\t} while ( (elem = elem.parentNode) && elem.nodeType === 1 );\n\r\t\t\t\treturn false;\n\r\t\t\t};\n\r\t\t}),\n\r\n\r\t\t// Miscellaneous\n\r\t\t\"target\": function( elem ) {\n\r\t\t\tvar hash = window.location && window.location.hash;\n\r\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\r\t\t},\n\r\n\r\t\t\"root\": function( elem ) {\n\r\t\t\treturn elem === docElem;\n\r\t\t},\n\r\n\r\t\t\"focus\": function( elem ) {\n\r\t\t\treturn elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);\n\r\t\t},\n\r\n\r\t\t// Boolean properties\n\r\t\t\"enabled\": createDisabledPseudo( false ),\n\r\t\t\"disabled\": createDisabledPseudo( true ),\n\r\n\r\t\t\"checked\": function( elem ) {\n\r\t\t\t// In CSS3, :checked should return both checked and selected elements\n\r\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\r\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\r\t\t\treturn (nodeName === \"input\" && !!elem.checked) || (nodeName === \"option\" && !!elem.selected);\n\r\t\t},\n\r\n\r\t\t\"selected\": function( elem ) {\n\r\t\t\t// Accessing this property makes selected-by-default\n\r\t\t\t// options in Safari work properly\n\r\t\t\tif ( elem.parentNode ) {\n\r\t\t\t\telem.parentNode.selectedIndex;\n\r\t\t\t}\n\r\n\r\t\t\treturn elem.selected === true;\n\r\t\t},\n\r\n\r\t\t// Contents\n\r\t\t\"empty\": function( elem ) {\n\r\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\r\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\r\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\n\r\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\r\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\r\t\t\t\tif ( elem.nodeType < 6 ) {\n\r\t\t\t\t\treturn false;\n\r\t\t\t\t}\n\r\t\t\t}\n\r\t\t\treturn true;\n\r\t\t},\n\r\n\r\t\t\"parent\": function( elem ) {\n\r\t\t\treturn !Expr.pseudos[\"empty\"]( elem );\n\r\t\t},\n\r\n\r\t\t// Element/input types\n\r\t\t\"header\": function( elem ) {\n\r\t\t\treturn rheader.test( elem.nodeName );\n\r\t\t},\n\r\n\r\t\t\"input\": function( elem ) {\n\r\t\t\treturn rinputs.test( elem.nodeName );\n\r\t\t},\n\r\n\r\t\t\"button\": function( elem ) {\n\r\t\t\tvar name = elem.nodeName.toLowerCase();\n\r\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\r\t\t},\n\r\n\r\t\t\"text\": function( elem ) {\n\r\t\t\tvar attr;\n\r\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\r\t\t\t\telem.type === \"text\" &&\n\r\n\r\t\t\t\t// Support: IE<8\n\r\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n\r\t\t\t\t( (attr = elem.getAttribute(\"type\")) == null || attr.toLowerCase() === \"text\" );\n\r\t\t},\n\r\n\r\t\t// Position-in-collection\n\r\t\t\"first\": createPositionalPseudo(function() {\n\r\t\t\treturn [ 0 ];\n\r\t\t}),\n\r\n\r\t\t\"last\": createPositionalPseudo(function( matchIndexes, length ) {\n\r\t\t\treturn [ length - 1 ];\n\r\t\t}),\n\r\n\r\t\t\"eq\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\r\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\r\t\t}),\n\r\n\r\t\t\"even\": createPositionalPseudo(function( matchIndexes, length ) {\n\r\t\t\tvar i = 0;\n\r\t\t\tfor ( ; i < length; i += 2 ) {\n\r\t\t\t\tmatchIndexes.push( i );\n\r\t\t\t}\n\r\t\t\treturn matchIndexes;\n\r\t\t}),\n\r\n\r\t\t\"odd\": createPositionalPseudo(function( matchIndexes, length ) {\n\r\t\t\tvar i = 1;\n\r\t\t\tfor ( ; i < length; i += 2 ) {\n\r\t\t\t\tmatchIndexes.push( i );\n\r\t\t\t}\n\r\t\t\treturn matchIndexes;\n\r\t\t}),\n\r\n\r\t\t\"lt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\r\t\t\tvar i = argument < 0 ?\n\r\t\t\t\targument + length :\n\r\t\t\t\targument > length ?\n\r\t\t\t\t\tlength :\n\r\t\t\t\t\targument;\n\r\t\t\tfor ( ; --i >= 0; ) {\n\r\t\t\t\tmatchIndexes.push( i );\n\r\t\t\t}\n\r\t\t\treturn matchIndexes;\n\r\t\t}),\n\r\n\r\t\t\"gt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\r\t\t\tvar i = argument < 0 ? argument + length : argument;\n\r\t\t\tfor ( ; ++i < length; ) {\n\r\t\t\t\tmatchIndexes.push( i );\n\r\t\t\t}\n\r\t\t\treturn matchIndexes;\n\r\t\t})\n\r\t}\n\r};\n\r\n\rExpr.pseudos[\"nth\"] = Expr.pseudos[\"eq\"];\n\r\n\r// Add button/input type pseudos\n\rfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\r\tExpr.pseudos[ i ] = createInputPseudo( i );\n\r}\n\rfor ( i in { submit: true, reset: true } ) {\n\r\tExpr.pseudos[ i ] = createButtonPseudo( i );\n\r}\n\r\n\r// Easy API for creating new setFilters\n\rfunction setFilters() {}\n\rsetFilters.prototype = Expr.filters = Expr.pseudos;\n\rExpr.setFilters = new setFilters();\n\r\n\rtokenize = Sizzle.tokenize = function( selector, parseOnly ) {\n\r\tvar matched, match, tokens, type,\n\r\t\tsoFar, groups, preFilters,\n\r\t\tcached = tokenCache[ selector + \" \" ];\n\r\n\r\tif ( cached ) {\n\r\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\r\t}\n\r\n\r\tsoFar = selector;\n\r\tgroups = [];\n\r\tpreFilters = Expr.preFilter;\n\r\n\r\twhile ( soFar ) {\n\r\n\r\t\t// Comma and first run\n\r\t\tif ( !matched || (match = rcomma.exec( soFar )) ) {\n\r\t\t\tif ( match ) {\n\r\t\t\t\t// Don't consume trailing commas as valid\n\r\t\t\t\tsoFar = soFar.slice( match[0].length ) || soFar;\n\r\t\t\t}\n\r\t\t\tgroups.push( (tokens = []) );\n\r\t\t}\n\r\n\r\t\tmatched = false;\n\r\n\r\t\t// Combinators\n\r\t\tif ( (match = rcombinators.exec( soFar )) ) {\n\r\t\t\tmatched = match.shift();\n\r\t\t\ttokens.push({\n\r\t\t\t\tvalue: matched,\n\r\t\t\t\t// Cast descendant combinators to space\n\r\t\t\t\ttype: match[0].replace( rtrim, \" \" )\n\r\t\t\t});\n\r\t\t\tsoFar = soFar.slice( matched.length );\n\r\t\t}\n\r\n\r\t\t// Filters\n\r\t\tfor ( type in Expr.filter ) {\n\r\t\t\tif ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||\n\r\t\t\t\t(match = preFilters[ type ]( match ))) ) {\n\r\t\t\t\tmatched = match.shift();\n\r\t\t\t\ttokens.push({\n\r\t\t\t\t\tvalue: matched,\n\r\t\t\t\t\ttype: type,\n\r\t\t\t\t\tmatches: match\n\r\t\t\t\t});\n\r\t\t\t\tsoFar = soFar.slice( matched.length );\n\r\t\t\t}\n\r\t\t}\n\r\n\r\t\tif ( !matched ) {\n\r\t\t\tbreak;\n\r\t\t}\n\r\t}\n\r\n\r\t// Return the length of the invalid excess\n\r\t// if we're just parsing\n\r\t// Otherwise, throw an error or return tokens\n\r\treturn parseOnly ?\n\r\t\tsoFar.length :\n\r\t\tsoFar ?\n\r\t\t\tSizzle.error( selector ) :\n\r\t\t\t// Cache the tokens\n\r\t\t\ttokenCache( selector, groups ).slice( 0 );\n\r};\n\r\n\rfunction toSelector( tokens ) {\n\r\tvar i = 0,\n\r\t\tlen = tokens.length,\n\r\t\tselector = \"\";\n\r\tfor ( ; i < len; i++ ) {\n\r\t\tselector += tokens[i].value;\n\r\t}\n\r\treturn selector;\n\r}\n\r\n\rfunction addCombinator( matcher, combinator, base ) {\n\r\tvar dir = combinator.dir,\n\r\t\tskip = combinator.next,\n\r\t\tkey = skip || dir,\n\r\t\tcheckNonElements = base && key === \"parentNode\",\n\r\t\tdoneName = done++;\n\r\n\r\treturn combinator.first ?\n\r\t\t// Check against closest ancestor/preceding element\n\r\t\tfunction( elem, context, xml ) {\n\r\t\t\twhile ( (elem = elem[ dir ]) ) {\n\r\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\r\t\t\t\t\treturn matcher( elem, context, xml );\n\r\t\t\t\t}\n\r\t\t\t}\n\r\t\t\treturn false;\n\r\t\t} :\n\r\n\r\t\t// Check against all ancestor/preceding elements\n\r\t\tfunction( elem, context, xml ) {\n\r\t\t\tvar oldCache, uniqueCache, outerCache,\n\r\t\t\t\tnewCache = [ dirruns, doneName ];\n\r\n\r\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\r\t\t\tif ( xml ) {\n\r\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\r\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\r\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\r\t\t\t\t\t\t\treturn true;\n\r\t\t\t\t\t\t}\n\r\t\t\t\t\t}\n\r\t\t\t\t}\n\r\t\t\t} else {\n\r\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\r\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\r\t\t\t\t\t\touterCache = elem[ expando ] || (elem[ expando ] = {});\n\r\n\r\t\t\t\t\t\t// Support: IE <9 only\n\r\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\r\t\t\t\t\t\tuniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {});\n\r\n\r\t\t\t\t\t\tif ( skip && skip === elem.nodeName.toLowerCase() ) {\n\r\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\r\t\t\t\t\t\t} else if ( (oldCache = uniqueCache[ key ]) &&\n\r\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\r\n\r\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\r\t\t\t\t\t\t\treturn (newCache[ 2 ] = oldCache[ 2 ]);\n\r\t\t\t\t\t\t} else {\n\r\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\r\t\t\t\t\t\t\tuniqueCache[ key ] = newCache;\n\r\n\r\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\r\t\t\t\t\t\t\tif ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {\n\r\t\t\t\t\t\t\t\treturn true;\n\r\t\t\t\t\t\t\t}\n\r\t\t\t\t\t\t}\n\r\t\t\t\t\t}\n\r\t\t\t\t}\n\r\t\t\t}\n\r\t\t\treturn false;\n\r\t\t};\n\r}\n\r\n\rfunction elementMatcher( matchers ) {\n\r\treturn matchers.length > 1 ?\n\r\t\tfunction( elem, context, xml ) {\n\r\t\t\tvar i = matchers.length;\n\r\t\t\twhile ( i-- ) {\n\r\t\t\t\tif ( !matchers[i]( elem, context, xml ) ) {\n\r\t\t\t\t\treturn false;\n\r\t\t\t\t}\n\r\t\t\t}\n\r\t\t\treturn true;\n\r\t\t} :\n\r\t\tmatchers[0];\n\r}\n\r\n\rfunction multipleContexts( selector, contexts, results ) {\n\r\tvar i = 0,\n\r\t\tlen = contexts.length;\n\r\tfor ( ; i < len; i++ ) {\n\r\t\tSizzle( selector, contexts[i], results );\n\r\t}\n\r\treturn results;\n\r}\n\r\n\rfunction condense( unmatched, map, filter, context, xml ) {\n\r\tvar elem,\n\r\t\tnewUnmatched = [],\n\r\t\ti = 0,\n\r\t\tlen = unmatched.length,\n\r\t\tmapped = map != null;\n\r\n\r\tfor ( ; i < len; i++ ) {\n\r\t\tif ( (elem = unmatched[i]) ) {\n\r\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\r\t\t\t\tnewUnmatched.push( elem );\n\r\t\t\t\tif ( mapped ) {\n\r\t\t\t\t\tmap.push( i );\n\r\t\t\t\t}\n\r\t\t\t}\n\r\t\t}\n\r\t}\n\r\n\r\treturn newUnmatched;\n\r}\n\r\n\rfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\r\tif ( postFilter && !postFilter[ expando ] ) {\n\r\t\tpostFilter = setMatcher( postFilter );\n\r\t}\n\r\tif ( postFinder && !postFinder[ expando ] ) {\n\r\t\tpostFinder = setMatcher( postFinder, postSelector );\n\r\t}\n\r\treturn markFunction(function( seed, results, context, xml ) {\n\r\t\tvar temp, i, elem,\n\r\t\t\tpreMap = [],\n\r\t\t\tpostMap = [],\n\r\t\t\tpreexisting = results.length,\n\r\n\r\t\t\t// Get initial elements from seed or context\n\r\t\t\telems = seed || multipleContexts( selector || \"*\", context.nodeType ? [ context ] : context, [] ),\n\r\n\r\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\r\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\r\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\r\t\t\t\telems,\n\r\n\r\t\t\tmatcherOut = matcher ?\n\r\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\r\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\r\n\r\t\t\t\t\t// ...intermediate processing is necessary\n\r\t\t\t\t\t[] :\n\r\n\r\t\t\t\t\t// ...otherwise use results directly\n\r\t\t\t\t\tresults :\n\r\t\t\t\tmatcherIn;\n\r\n\r\t\t// Find primary matches\n\r\t\tif ( matcher ) {\n\r\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\r\t\t}\n\r\n\r\t\t// Apply postFilter\n\r\t\tif ( postFilter ) {\n\r\t\t\ttemp = condense( matcherOut, postMap );\n\r\t\t\tpostFilter( temp, [], context, xml );\n\r\n\r\t\t\t// Un-match failing elements by moving them back to matcherIn\n\r\t\t\ti = temp.length;\n\r\t\t\twhile ( i-- ) {\n\r\t\t\t\tif ( (elem = temp[i]) ) {\n\r\t\t\t\t\tmatcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);\n\r\t\t\t\t}\n\r\t\t\t}\n\r\t\t}\n\r\n\r\t\tif ( seed ) {\n\r\t\t\tif ( postFinder || preFilter ) {\n\r\t\t\t\tif ( postFinder ) {\n\r\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\r\t\t\t\t\ttemp = [];\n\r\t\t\t\t\ti = matcherOut.length;\n\r\t\t\t\t\twhile ( i-- ) {\n\r\t\t\t\t\t\tif ( (elem = matcherOut[i]) ) {\n\r\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\r\t\t\t\t\t\t\ttemp.push( (matcherIn[i] = elem) );\n\r\t\t\t\t\t\t}\n\r\t\t\t\t\t}\n\r\t\t\t\t\tpostFinder( null, (matcherOut = []), temp, xml );\n\r\t\t\t\t}\n\r\n\r\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\r\t\t\t\ti = matcherOut.length;\n\r\t\t\t\twhile ( i-- ) {\n\r\t\t\t\t\tif ( (elem = matcherOut[i]) &&\n\r\t\t\t\t\t\t(temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {\n\r\n\r\t\t\t\t\t\tseed[temp] = !(results[temp] = elem);\n\r\t\t\t\t\t}\n\r\t\t\t\t}\n\r\t\t\t}\n\r\n\r\t\t// Add elements to results, through postFinder if defined\n\r\t\t} else {\n\r\t\t\tmatcherOut = condense(\n\r\t\t\t\tmatcherOut === results ?\n\r\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\r\t\t\t\t\tmatcherOut\n\r\t\t\t);\n\r\t\t\tif ( postFinder ) {\n\r\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\r\t\t\t} else {\n\r\t\t\t\tpush.apply( results, matcherOut );\n\r\t\t\t}\n\r\t\t}\n\r\t});\n\r}\n\r\n\rfunction matcherFromTokens( tokens ) {\n\r\tvar checkContext, matcher, j,\n\r\t\tlen = tokens.length,\n\r\t\tleadingRelative = Expr.relative[ tokens[0].type ],\n\r\t\timplicitRelative = leadingRelative || Expr.relative[\" \"],\n\r\t\ti = leadingRelative ? 1 : 0,\n\r\n\r\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\r\t\tmatchContext = addCombinator( function( elem ) {\n\r\t\t\treturn elem === checkContext;\n\r\t\t}, implicitRelative, true ),\n\r\t\tmatchAnyContext = addCombinator( function( elem ) {\n\r\t\t\treturn indexOf( checkContext, elem ) > -1;\n\r\t\t}, implicitRelative, true ),\n\r\t\tmatchers = [ function( elem, context, xml ) {\n\r\t\t\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\r\t\t\t\t(checkContext = context).nodeType ?\n\r\t\t\t\t\tmatchContext( elem, context, xml ) :\n\r\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\r\t\t\t// Avoid hanging onto element (issue #299)\n\r\t\t\tcheckContext = null;\n\r\t\t\treturn ret;\n\r\t\t} ];\n\r\n\r\tfor ( ; i < len; i++ ) {\n\r\t\tif ( (matcher = Expr.relative[ tokens[i].type ]) ) {\n\r\t\t\tmatchers = [ addCombinator(elementMatcher( matchers ), matcher) ];\n\r\t\t} else {\n\r\t\t\tmatcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );\n\r\n\r\t\t\t// Return special upon seeing a positional matcher\n\r\t\t\tif ( matcher[ expando ] ) {\n\r\t\t\t\t// Find the next relative operator (if any) for proper handling\n\r\t\t\t\tj = ++i;\n\r\t\t\t\tfor ( ; j < len; j++ ) {\n\r\t\t\t\t\tif ( Expr.relative[ tokens[j].type ] ) {\n\r\t\t\t\t\t\tbreak;\n\r\t\t\t\t\t}\n\r\t\t\t\t}\n\r\t\t\t\treturn setMatcher(\n\r\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\r\t\t\t\t\ti > 1 && toSelector(\n\r\t\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\r\t\t\t\t\t\ttokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" })\n\r\t\t\t\t\t).replace( rtrim, \"$1\" ),\n\r\t\t\t\t\tmatcher,\n\r\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\r\t\t\t\t\tj < len && matcherFromTokens( (tokens = tokens.slice( j )) ),\n\r\t\t\t\t\tj < len && toSelector( tokens )\n\r\t\t\t\t);\n\r\t\t\t}\n\r\t\t\tmatchers.push( matcher );\n\r\t\t}\n\r\t}\n\r\n\r\treturn elementMatcher( matchers );\n\r}\n\r\n\rfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\r\tvar bySet = setMatchers.length > 0,\n\r\t\tbyElement = elementMatchers.length > 0,\n\r\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\r\t\t\tvar elem, j, matcher,\n\r\t\t\t\tmatchedCount = 0,\n\r\t\t\t\ti = \"0\",\n\r\t\t\t\tunmatched = seed && [],\n\r\t\t\t\tsetMatched = [],\n\r\t\t\t\tcontextBackup = outermostContext,\n\r\t\t\t\t// We must always have either seed elements or outermost context\n\r\t\t\t\telems = seed || byElement && Expr.find[\"TAG\"]( \"*\", outermost ),\n\r\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\r\t\t\t\tdirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),\n\r\t\t\t\tlen = elems.length;\n\r\n\r\t\t\tif ( outermost ) {\n\r\t\t\t\toutermostContext = context === document || context || outermost;\n\r\t\t\t}\n\r\n\r\t\t\t// Add elements passing elementMatchers directly to results\n\r\t\t\t// Support: IE<9, Safari\n\r\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: ) matching elements by id\n\r\t\t\tfor ( ; i !== len && (elem = elems[i]) != null; i++ ) {\n\r\t\t\t\tif ( byElement && elem ) {\n\r\t\t\t\t\tj = 0;\n\r\t\t\t\t\tif ( !context && elem.ownerDocument !== document ) {\n\r\t\t\t\t\t\tsetDocument( elem );\n\r\t\t\t\t\t\txml = !documentIsHTML;\n\r\t\t\t\t\t}\n\r\t\t\t\t\twhile ( (matcher = elementMatchers[j++]) ) {\n\r\t\t\t\t\t\tif ( matcher( elem, context || document, xml) ) {\n\r\t\t\t\t\t\t\tresults.push( elem );\n\r\t\t\t\t\t\t\tbreak;\n\r\t\t\t\t\t\t}\n\r\t\t\t\t\t}\n\r\t\t\t\t\tif ( outermost ) {\n\r\t\t\t\t\t\tdirruns = dirrunsUnique;\n\r\t\t\t\t\t}\n\r\t\t\t\t}\n\r\n\r\t\t\t\t// Track unmatched elements for set filters\n\r\t\t\t\tif ( bySet ) {\n\r\t\t\t\t\t// They will have gone through all possible matchers\n\r\t\t\t\t\tif ( (elem = !matcher && elem) ) {\n\r\t\t\t\t\t\tmatchedCount--;\n\r\t\t\t\t\t}\n\r\n\r\t\t\t\t\t// Lengthen the array for every element, matched or not\n\r\t\t\t\t\tif ( seed ) {\n\r\t\t\t\t\t\tunmatched.push( elem );\n\r\t\t\t\t\t}\n\r\t\t\t\t}\n\r\t\t\t}\n\r\n\r\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\r\t\t\t// makes the latter nonnegative.\n\r\t\t\tmatchedCount += i;\n\r\n\r\t\t\t// Apply set filters to unmatched elements\n\r\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\r\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\r\t\t\t// no element matchers and no seed.\n\r\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\r\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\r\t\t\t// numerically zero.\n\r\t\t\tif ( bySet && i !== matchedCount ) {\n\r\t\t\t\tj = 0;\n\r\t\t\t\twhile ( (matcher = setMatchers[j++]) ) {\n\r\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\r\t\t\t\t}\n\r\n\r\t\t\t\tif ( seed ) {\n\r\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\r\t\t\t\t\tif ( matchedCount > 0 ) {\n\r\t\t\t\t\t\twhile ( i-- ) {\n\r\t\t\t\t\t\t\tif ( !(unmatched[i] || setMatched[i]) ) {\n\r\t\t\t\t\t\t\t\tsetMatched[i] = pop.call( results );\n\r\t\t\t\t\t\t\t}\n\r\t\t\t\t\t\t}\n\r\t\t\t\t\t}\n\r\n\r\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\r\t\t\t\t\tsetMatched = condense( setMatched );\n\r\t\t\t\t}\n\r\n\r\t\t\t\t// Add matches to results\n\r\t\t\t\tpush.apply( results, setMatched );\n\r\n\r\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\r\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\r\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\r\n\r\t\t\t\t\tSizzle.uniqueSort( results );\n\r\t\t\t\t}\n\r\t\t\t}\n\r\n\r\t\t\t// Override manipulation of globals by nested matchers\n\r\t\t\tif ( outermost ) {\n\r\t\t\t\tdirruns = dirrunsUnique;\n\r\t\t\t\toutermostContext = contextBackup;\n\r\t\t\t}\n\r\n\r\t\t\treturn unmatched;\n\r\t\t};\n\r\n\r\treturn bySet ?\n\r\t\tmarkFunction( superMatcher ) :\n\r\t\tsuperMatcher;\n\r}\n\r\n\rcompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\n\r\tvar i,\n\r\t\tsetMatchers = [],\n\r\t\telementMatchers = [],\n\r\t\tcached = compilerCache[ selector + \" \" ];\n\r\n\r\tif ( !cached ) {\n\r\t\t// Generate a function of recursive functions that can be used to check each element\n\r\t\tif ( !match ) {\n\r\t\t\tmatch = tokenize( selector );\n\r\t\t}\n\r\t\ti = match.length;\n\r\t\twhile ( i-- ) {\n\r\t\t\tcached = matcherFromTokens( match[i] );\n\r\t\t\tif ( cached[ expando ] ) {\n\r\t\t\t\tsetMatchers.push( cached );\n\r\t\t\t} else {\n\r\t\t\t\telementMatchers.push( cached );\n\r\t\t\t}\n\r\t\t}\n\r\n\r\t\t// Cache the compiled function\n\r\t\tcached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );\n\r\n\r\t\t// Save selector and tokenization\n\r\t\tcached.selector = selector;\n\r\t}\n\r\treturn cached;\n\r};\n\r\n\r/**\n\r * A low-level selection function that works with Sizzle's compiled\n\r * selector functions\n\r * @param {String|Function} selector A selector or a pre-compiled\n\r * selector function built with Sizzle.compile\n\r * @param {Element} context\n\r * @param {Array} [results]\n\r * @param {Array} [seed] A set of elements to match against\n\r */\n\rselect = Sizzle.select = function( selector, context, results, seed ) {\n\r\tvar i, tokens, token, type, find,\n\r\t\tcompiled = typeof selector === \"function\" && selector,\n\r\t\tmatch = !seed && tokenize( (selector = compiled.selector || selector) );\n\r\n\r\tresults = results || [];\n\r\n\r\t// Try to minimize operations if there is only one selector in the list and no seed\n\r\t// (the latter of which guarantees us context)\n\r\tif ( match.length === 1 ) {\n\r\n\r\t\t// Reduce context if the leading compound selector is an ID\n\r\t\ttokens = match[0] = match[0].slice( 0 );\n\r\t\tif ( tokens.length > 2 && (token = tokens[0]).type === \"ID\" &&\n\r\t\t\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) {\n\r\n\r\t\t\tcontext = ( Expr.find[\"ID\"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];\n\r\t\t\tif ( !context ) {\n\r\t\t\t\treturn results;\n\r\n\r\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\r\t\t\t} else if ( compiled ) {\n\r\t\t\t\tcontext = context.parentNode;\n\r\t\t\t}\n\r\n\r\t\t\tselector = selector.slice( tokens.shift().value.length );\n\r\t\t}\n\r\n\r\t\t// Fetch a seed set for right-to-left matching\n\r\t\ti = matchExpr[\"needsContext\"].test( selector ) ? 0 : tokens.length;\n\r\t\twhile ( i-- ) {\n\r\t\t\ttoken = tokens[i];\n\r\n\r\t\t\t// Abort if we hit a combinator\n\r\t\t\tif ( Expr.relative[ (type = token.type) ] ) {\n\r\t\t\t\tbreak;\n\r\t\t\t}\n\r\t\t\tif ( (find = Expr.find[ type ]) ) {\n\r\t\t\t\t// Search, expanding context for leading sibling combinators\n\r\t\t\t\tif ( (seed = find(\n\r\t\t\t\t\ttoken.matches[0].replace( runescape, funescape ),\n\r\t\t\t\t\trsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context\n\r\t\t\t\t)) ) {\n\r\n\r\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\r\t\t\t\t\ttokens.splice( i, 1 );\n\r\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\r\t\t\t\t\tif ( !selector ) {\n\r\t\t\t\t\t\tpush.apply( results, seed );\n\r\t\t\t\t\t\treturn results;\n\r\t\t\t\t\t}\n\r\n\r\t\t\t\t\tbreak;\n\r\t\t\t\t}\n\r\t\t\t}\n\r\t\t}\n\r\t}\n\r\n\r\t// Compile and execute a filtering function if one is not provided\n\r\t// Provide `match` to avoid retokenization if we modified the selector above\n\r\t( compiled || compile( selector, match ) )(\n\r\t\tseed,\n\r\t\tcontext,\n\r\t\t!documentIsHTML,\n\r\t\tresults,\n\r\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\r\t);\n\r\treturn results;\n\r};\n\r\n\r// One-time assignments\n\r\n\r// Sort stability\n\rsupport.sortStable = expando.split(\"\").sort( sortOrder ).join(\"\") === expando;\n\r\n\r// Support: Chrome 14-35+\n\r// Always assume duplicates if they aren't passed to the comparison function\n\rsupport.detectDuplicates = !!hasDuplicate;\n\r\n\r// Initialize against the default document\n\rsetDocument();\n\r\n\r// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n\r// Detached nodes confoundingly follow *each other*\n\rsupport.sortDetached = assert(function( el ) {\n\r\t// Should return 1, but returns 4 (following)\n\r\treturn el.compareDocumentPosition( document.createElement(\"fieldset\") ) & 1;\n\r});\n\r\n\r// Support: IE<8\n\r// Prevent attribute/property \"interpolation\"\n\r// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\n\rif ( !assert(function( el ) {\n\r\tel.innerHTML = \"\";\n\r\treturn el.firstChild.getAttribute(\"href\") === \"#\" ;\n\r}) ) {\n\r\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\r\t\tif ( !isXML ) {\n\r\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\r\t\t}\n\r\t});\n\r}\n\r\n\r// Support: IE<9\n\r// Use defaultValue in place of getAttribute(\"value\")\n\rif ( !support.attributes || !assert(function( el ) {\n\r\tel.innerHTML = \"\";\n\r\tel.firstChild.setAttribute( \"value\", \"\" );\n\r\treturn el.firstChild.getAttribute( \"value\" ) === \"\";\n\r}) ) {\n\r\taddHandle( \"value\", function( elem, name, isXML ) {\n\r\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\r\t\t\treturn elem.defaultValue;\n\r\t\t}\n\r\t});\n\r}\n\r\n\r// Support: IE<9\n\r// Use getAttributeNode to fetch booleans when getAttribute lies\n\rif ( !assert(function( el ) {\n\r\treturn el.getAttribute(\"disabled\") == null;\n\r}) ) {\n\r\taddHandle( booleans, function( elem, name, isXML ) {\n\r\t\tvar val;\n\r\t\tif ( !isXML ) {\n\r\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\r\t\t\t\t\t(val = elem.getAttributeNode( name )) && val.specified ?\n\r\t\t\t\t\tval.value :\n\r\t\t\t\tnull;\n\r\t\t}\n\r\t});\n\r}\n\r\n\rreturn Sizzle;\n\r\n\r})( window );\n\r\n\r\n\r\n\rjQuery.find = Sizzle;\n\rjQuery.expr = Sizzle.selectors;\n\r\n\r// Deprecated\n\rjQuery.expr[ \":\" ] = jQuery.expr.pseudos;\n\rjQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\n\rjQuery.text = Sizzle.getText;\n\rjQuery.isXMLDoc = Sizzle.isXML;\n\rjQuery.contains = Sizzle.contains;\n\rjQuery.escapeSelector = Sizzle.escape;\n\r\n\r\n\r\n\r\n\rvar dir = function( elem, dir, until ) {\n\r\tvar matched = [],\n\r\t\ttruncate = until !== undefined;\n\r\n\r\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\n\r\t\tif ( elem.nodeType === 1 ) {\n\r\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\r\t\t\t\tbreak;\n\r\t\t\t}\n\r\t\t\tmatched.push( elem );\n\r\t\t}\n\r\t}\n\r\treturn matched;\n\r};\n\r\n\r\n\rvar siblings = function( n, elem ) {\n\r\tvar matched = [];\n\r\n\r\tfor ( ; n; n = n.nextSibling ) {\n\r\t\tif ( n.nodeType === 1 && n !== elem ) {\n\r\t\t\tmatched.push( n );\n\r\t\t}\n\r\t}\n\r\n\r\treturn matched;\n\r};\n\r\n\r\n\rvar rneedsContext = jQuery.expr.match.needsContext;\n\r\n\r\n\r\n\rfunction nodeName( elem, name ) {\n\r\n\r return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\r\n\r};\n\rvar rsingleTag = ( /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i );\n\r\n\r\n\r\n\r// Implement the identical functionality for filter and not\n\rfunction winnow( elements, qualifier, not ) {\n\r\tif ( isFunction( qualifier ) ) {\n\r\t\treturn jQuery.grep( elements, function( elem, i ) {\n\r\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\r\t\t} );\n\r\t}\n\r\n\r\t// Single element\n\r\tif ( qualifier.nodeType ) {\n\r\t\treturn jQuery.grep( elements, function( elem ) {\n\r\t\t\treturn ( elem === qualifier ) !== not;\n\r\t\t} );\n\r\t}\n\r\n\r\t// Arraylike of elements (jQuery, arguments, Array)\n\r\tif ( typeof qualifier !== \"string\" ) {\n\r\t\treturn jQuery.grep( elements, function( elem ) {\n\r\t\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\n\r\t\t} );\n\r\t}\n\r\n\r\t// Filtered directly for both simple and complex selectors\n\r\treturn jQuery.filter( qualifier, elements, not );\n\r}\n\r\n\rjQuery.filter = function( expr, elems, not ) {\n\r\tvar elem = elems[ 0 ];\n\r\n\r\tif ( not ) {\n\r\t\texpr = \":not(\" + expr + \")\";\n\r\t}\n\r\n\r\tif ( elems.length === 1 && elem.nodeType === 1 ) {\n\r\t\treturn jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];\n\r\t}\n\r\n\r\treturn jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\r\t\treturn elem.nodeType === 1;\n\r\t} ) );\n\r};\n\r\n\rjQuery.fn.extend( {\n\r\tfind: function( selector ) {\n\r\t\tvar i, ret,\n\r\t\t\tlen = this.length,\n\r\t\t\tself = this;\n\r\n\r\t\tif ( typeof selector !== \"string\" ) {\n\r\t\t\treturn this.pushStack( jQuery( selector ).filter( function() {\n\r\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\r\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\r\t\t\t\t\t\treturn true;\n\r\t\t\t\t\t}\n\r\t\t\t\t}\n\r\t\t\t} ) );\n\r\t\t}\n\r\n\r\t\tret = this.pushStack( [] );\n\r\n\r\t\tfor ( i = 0; i < len; i++ ) {\n\r\t\t\tjQuery.find( selector, self[ i ], ret );\n\r\t\t}\n\r\n\r\t\treturn len > 1 ? jQuery.uniqueSort( ret ) : ret;\n\r\t},\n\r\tfilter: function( selector ) {\n\r\t\treturn this.pushStack( winnow( this, selector || [], false ) );\n\r\t},\n\r\tnot: function( selector ) {\n\r\t\treturn this.pushStack( winnow( this, selector || [], true ) );\n\r\t},\n\r\tis: function( selector ) {\n\r\t\treturn !!winnow(\n\r\t\t\tthis,\n\r\n\r\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\r\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\r\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\r\t\t\t\tjQuery( selector ) :\n\r\t\t\t\tselector || [],\n\r\t\t\tfalse\n\r\t\t).length;\n\r\t}\n\r} );\n\r\n\r\n\r// Initialize a jQuery object\n\r\n\r\n\r// A central reference to the root jQuery(document)\n\rvar rootjQuery,\n\r\n\r\t// A simple way to check for HTML strings\n\r\t// Prioritize #id over to avoid XSS via location.hash (#9521)\n\r\t// Strict HTML recognition (#11290: must start with <)\n\r\t// Shortcut simple #id case for speed\n\r\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n\r\n\r\tinit = jQuery.fn.init = function( selector, context, root ) {\n\r\t\tvar match, elem;\n\r\n\r\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\r\t\tif ( !selector ) {\n\r\t\t\treturn this;\n\r\t\t}\n\r\n\r\t\t// Method init() accepts an alternate rootjQuery\n\r\t\t// so migrate can support jQuery.sub (gh-2101)\n\r\t\troot = root || rootjQuery;\n\r\n\r\t\t// Handle HTML strings\n\r\t\tif ( typeof selector === \"string\" ) {\n\r\t\t\tif ( selector[ 0 ] === \"<\" &&\n\r\t\t\t\tselector[ selector.length - 1 ] === \">\" &&\n\r\t\t\t\tselector.length >= 3 ) {\n\r\n\r\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\r\t\t\t\tmatch = [ null, selector, null ];\n\r\n\r\t\t\t} else {\n\r\t\t\t\tmatch = rquickExpr.exec( selector );\n\r\t\t\t}\n\r\n\r\t\t\t// Match html or make sure no context is specified for #id\n\r\t\t\tif ( match && ( match[ 1 ] || !context ) ) {\n\r\n\r\t\t\t\t// HANDLE: $(html) -> $(array)\n\r\t\t\t\tif ( match[ 1 ] ) {\n\r\t\t\t\t\tcontext = context instanceof jQuery ? context[ 0 ] : context;\n\r\n\r\t\t\t\t\t// Option to run scripts is true for back-compat\n\r\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\r\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\r\t\t\t\t\t\tmatch[ 1 ],\n\r\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\r\t\t\t\t\t\ttrue\n\r\t\t\t\t\t) );\n\r\n\r\t\t\t\t\t// HANDLE: $(html, props)\n\r\t\t\t\t\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\n\r\t\t\t\t\t\tfor ( match in context ) {\n\r\n\r\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\r\t\t\t\t\t\t\tif ( isFunction( this[ match ] ) ) {\n\r\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\r\n\r\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\r\t\t\t\t\t\t\t} else {\n\r\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\r\t\t\t\t\t\t\t}\n\r\t\t\t\t\t\t}\n\r\t\t\t\t\t}\n\r\n\r\t\t\t\t\treturn this;\n\r\n\r\t\t\t\t// HANDLE: $(#id)\n\r\t\t\t\t} else {\n\r\t\t\t\t\telem = document.getElementById( match[ 2 ] );\n\r\n\r\t\t\t\t\tif ( elem ) {\n\r\n\r\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\r\t\t\t\t\t\tthis[ 0 ] = elem;\n\r\t\t\t\t\t\tthis.length = 1;\n\r\t\t\t\t\t}\n\r\t\t\t\t\treturn this;\n\r\t\t\t\t}\n\r\n\r\t\t\t// HANDLE: $(expr, $(...))\n\r\t\t\t} else if ( !context || context.jquery ) {\n\r\t\t\t\treturn ( context || root ).find( selector );\n\r\n\r\t\t\t// HANDLE: $(expr, context)\n\r\t\t\t// (which is just equivalent to: $(context).find(expr)\n\r\t\t\t} else {\n\r\t\t\t\treturn this.constructor( context ).find( selector );\n\r\t\t\t}\n\r\n\r\t\t// HANDLE: $(DOMElement)\n\r\t\t} else if ( selector.nodeType ) {\n\r\t\t\tthis[ 0 ] = selector;\n\r\t\t\tthis.length = 1;\n\r\t\t\treturn this;\n\r\n\r\t\t// HANDLE: $(function)\n\r\t\t// Shortcut for document ready\n\r\t\t} else if ( isFunction( selector ) ) {\n\r\t\t\treturn root.ready !== undefined ?\n\r\t\t\t\troot.ready( selector ) :\n\r\n\r\t\t\t\t// Execute immediately if ready is not present\n\r\t\t\t\tselector( jQuery );\n\r\t\t}\n\r\n\r\t\treturn jQuery.makeArray( selector, this );\n\r\t};\n\r\n\r// Give the init function the jQuery prototype for later instantiation\n\rinit.prototype = jQuery.fn;\n\r\n\r// Initialize central reference\n\rrootjQuery = jQuery( document );\n\r\n\r\n\rvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\r\n\r\t// Methods guaranteed to produce a unique set when starting from a unique set\n\r\tguaranteedUnique = {\n\r\t\tchildren: true,\n\r\t\tcontents: true,\n\r\t\tnext: true,\n\r\t\tprev: true\n\r\t};\n\r\n\rjQuery.fn.extend( {\n\r\thas: function( target ) {\n\r\t\tvar targets = jQuery( target, this ),\n\r\t\t\tl = targets.length;\n\r\n\r\t\treturn this.filter( function() {\n\r\t\t\tvar i = 0;\n\r\t\t\tfor ( ; i < l; i++ ) {\n\r\t\t\t\tif ( jQuery.contains( this, targets[ i ] ) ) {\n\r\t\t\t\t\treturn true;\n\r\t\t\t\t}\n\r\t\t\t}\n\r\t\t} );\n\r\t},\n\r\n\r\tclosest: function( selectors, context ) {\n\r\t\tvar cur,\n\r\t\t\ti = 0,\n\r\t\t\tl = this.length,\n\r\t\t\tmatched = [],\n\r\t\t\ttargets = typeof selectors !== \"string\" && jQuery( selectors );\n\r\n\r\t\t// Positional selectors never match, since there's no _selection_ context\n\r\t\tif ( !rneedsContext.test( selectors ) ) {\n\r\t\t\tfor ( ; i < l; i++ ) {\n\r\t\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\n\r\n\r\t\t\t\t\t// Always skip document fragments\n\r\t\t\t\t\tif ( cur.nodeType < 11 && ( targets ?\n\r\t\t\t\t\t\ttargets.index( cur ) > -1 :\n\r\n\r\t\t\t\t\t\t// Don't pass non-elements to Sizzle\n\r\t\t\t\t\t\tcur.nodeType === 1 &&\n\r\t\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\n\r\n\r\t\t\t\t\t\tmatched.push( cur );\n\r\t\t\t\t\t\tbreak;\n\r\t\t\t\t\t}\n\r\t\t\t\t}\n\r\t\t\t}\n\r\t\t}\n\r\n\r\t\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\n\r\t},\n\r\n\r\t// Determine the position of an element within the set\n\r\tindex: function( elem ) {\n\r\n\r\t\t// No argument, return index in parent\n\r\t\tif ( !elem ) {\n\r\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\r\t\t}\n\r\n\r\t\t// Index in selector\n\r\t\tif ( typeof elem === \"string\" ) {\n\r\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\r\t\t}\n\r\n\r\t\t// Locate the position of the desired element\n\r\t\treturn indexOf.call( this,\n\r\n\r\t\t\t// If it receives a jQuery object, the first element is used\n\r\t\t\telem.jquery ? elem[ 0 ] : elem\n\r\t\t);\n\r\t},\n\r\n\r\tadd: function( selector, context ) {\n\r\t\treturn this.pushStack(\n\r\t\t\tjQuery.uniqueSort(\n\r\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\r\t\t\t)\n\r\t\t);\n\r\t},\n\r\n\r\taddBack: function( selector ) {\n\r\t\treturn this.add( selector == null ?\n\r\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\r\t\t);\n\r\t}\n\r} );\n\r\n\rfunction sibling( cur, dir ) {\n\r\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\n\r\treturn cur;\n\r}\n\r\n\rjQuery.each( {\n\r\tparent: function( elem ) {\n\r\t\tvar parent = elem.parentNode;\n\r\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\r\t},\n\r\tparents: function( elem ) {\n\r\t\treturn dir( elem, \"parentNode\" );\n\r\t},\n\r\tparentsUntil: function( elem, i, until ) {\n\r\t\treturn dir( elem, \"parentNode\", until );\n\r\t},\n\r\tnext: function( elem ) {\n\r\t\treturn sibling( elem, \"nextSibling\" );\n\r\t},\n\r\tprev: function( elem ) {\n\r\t\treturn sibling( elem, \"previousSibling\" );\n\r\t},\n\r\tnextAll: function( elem ) {\n\r\t\treturn dir( elem, \"nextSibling\" );\n\r\t},\n\r\tprevAll: function( elem ) {\n\r\t\treturn dir( elem, \"previousSibling\" );\n\r\t},\n\r\tnextUntil: function( elem, i, until ) {\n\r\t\treturn dir( elem, \"nextSibling\", until );\n\r\t},\n\r\tprevUntil: function( elem, i, until ) {\n\r\t\treturn dir( elem, \"previousSibling\", until );\n\r\t},\n\r\tsiblings: function( elem ) {\n\r\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\n\r\t},\n\r\tchildren: function( elem ) {\n\r\t\treturn siblings( elem.firstChild );\n\r\t},\n\r\tcontents: function( elem ) {\n\r\t\tif ( typeof elem.contentDocument !== \"undefined\" ) {\n\r\t\t\treturn elem.contentDocument;\n\r\t\t}\n\r\n\r\t\t// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n\r\t\t// Treat the template element as a regular one in browsers that\n\r\t\t// don't support it.\n\r\t\tif ( nodeName( elem, \"template\" ) ) {\n\r\t\t\telem = elem.content || elem;\n\r\t\t}\n\r\n\r\t\treturn jQuery.merge( [], elem.childNodes );\n\r\t}\n\r}, function( name, fn ) {\n\r\tjQuery.fn[ name ] = function( until, selector ) {\n\r\t\tvar matched = jQuery.map( this, fn, until );\n\r\n\r\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\r\t\t\tselector = until;\n\r\t\t}\n\r\n\r\t\tif ( selector && typeof selector === \"string\" ) {\n\r\t\t\tmatched = jQuery.filter( selector, matched );\n\r\t\t}\n\r\n\r\t\tif ( this.length > 1 ) {\n\r\n\r\t\t\t// Remove duplicates\n\r\t\t\tif ( !guaranteedUnique[ name ] ) {\n\r\t\t\t\tjQuery.uniqueSort( matched );\n\r\t\t\t}\n\r\n\r\t\t\t// Reverse order for parents* and prev-derivatives\n\r\t\t\tif ( rparentsprev.test( name ) ) {\n\r\t\t\t\tmatched.reverse();\n\r\t\t\t}\n\r\t\t}\n\r\n\r\t\treturn this.pushStack( matched );\n\r\t};\n\r} );\n\rvar rnothtmlwhite = ( /[^\\x20\\t\\r\\n\\f]+/g );\n\r\n\r\n\r\n\r// Convert String-formatted options into Object-formatted ones\n\rfunction createOptions( options ) {\n\r\tvar object = {};\n\r\tjQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {\n\r\t\tobject[ flag ] = true;\n\r\t} );\n\r\treturn object;\n\r}\n\r\n\r/*\n\r * Create a callback list using the following parameters:\n\r *\n\r *\toptions: an optional list of space-separated options that will change how\n\r *\t\t\tthe callback list behaves or a more traditional option object\n\r *\n\r * By default a callback list will act like an event callback list and can be\n\r * \"fired\" multiple times.\n\r *\n\r * Possible options:\n\r *\n\r *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n\r *\n\r *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n\r *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n\r *\t\t\t\t\tvalues (like a Deferred)\n\r *\n\r *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n\r *\n\r *\tstopOnFalse:\tinterrupt callings when a callback returns false\n\r *\n\r */\n\rjQuery.Callbacks = function( options ) {\n\r\n\r\t// Convert options from String-formatted to Object-formatted if needed\n\r\t// (we check in cache first)\n\r\toptions = typeof options === \"string\" ?\n\r\t\tcreateOptions( options ) :\n\r\t\tjQuery.extend( {}, options );\n\r\n\r\tvar // Flag to know if list is currently firing\n\r\t\tfiring,\n\r\n\r\t\t// Last fire value for non-forgettable lists\n\r\t\tmemory,\n\r\n\r\t\t// Flag to know if list was already fired\n\r\t\tfired,\n\r\n\r\t\t// Flag to prevent firing\n\r\t\tlocked,\n\r\n\r\t\t// Actual callback list\n\r\t\tlist = [],\n\r\n\r\t\t// Queue of execution data for repeatable lists\n\r\t\tqueue = [],\n\r\n\r\t\t// Index of currently firing callback (modified by add/remove as needed)\n\r\t\tfiringIndex = -1,\n\r\n\r\t\t// Fire callbacks\n\r\t\tfire = function() {\n\r\n\r\t\t\t// Enforce single-firing\n\r\t\t\tlocked = locked || options.once;\n\r\n\r\t\t\t// Execute callbacks for all pending executions,\n\r\t\t\t// respecting firingIndex overrides and runtime changes\n\r\t\t\tfired = firing = true;\n\r\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\n\r\t\t\t\tmemory = queue.shift();\n\r\t\t\t\twhile ( ++firingIndex < list.length ) {\n\r\n\r\t\t\t\t\t// Run callback and check for early termination\n\r\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\n\r\t\t\t\t\t\toptions.stopOnFalse ) {\n\r\n\r\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\n\r\t\t\t\t\t\tfiringIndex = list.length;\n\r\t\t\t\t\t\tmemory = false;\n\r\t\t\t\t\t}\n\r\t\t\t\t}\n\r\t\t\t}\n\r\n\r\t\t\t// Forget the data if we're done with it\n\r\t\t\tif ( !options.memory ) {\n\r\t\t\t\tmemory = false;\n\r\t\t\t}\n\r\n\r\t\t\tfiring = false;\n\r\n\r\t\t\t// Clean up if we're done firing for good\n\r\t\t\tif ( locked ) {\n\r\n\r\t\t\t\t// Keep an empty list if we have data for future add calls\n\r\t\t\t\tif ( memory ) {\n\r\t\t\t\t\tlist = [];\n\r\n\r\t\t\t\t// Otherwise, this object is spent\n\r\t\t\t\t} else {\n\r\t\t\t\t\tlist = \"\";\n\r\t\t\t\t}\n\r\t\t\t}\n\r\t\t},\n\r\n\r\t\t// Actual Callbacks object\n\r\t\tself = {\n\r\n\r\t\t\t// Add a callback or a collection of callbacks to the list\n\r\t\t\tadd: function() {\n\r\t\t\t\tif ( list ) {\n\r\n\r\t\t\t\t\t// If we have memory from a past run, we should fire after adding\n\r\t\t\t\t\tif ( memory && !firing ) {\n\r\t\t\t\t\t\tfiringIndex = list.length - 1;\n\r\t\t\t\t\t\tqueue.push( memory );\n\r\t\t\t\t\t}\n\r\n\r\t\t\t\t\t( function add( args ) {\n\r\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\r\t\t\t\t\t\t\tif ( isFunction( arg ) ) {\n\r\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\r\t\t\t\t\t\t\t\t\tlist.push( arg );\n\r\t\t\t\t\t\t\t\t}\n\r\t\t\t\t\t\t\t} else if ( arg && arg.length && toType( arg ) !== \"string\" ) {\n\r\n\r\t\t\t\t\t\t\t\t// Inspect recursively\n\r\t\t\t\t\t\t\t\tadd( arg );\n\r\t\t\t\t\t\t\t}\n\r\t\t\t\t\t\t} );\n\r\t\t\t\t\t} )( arguments );\n\r\n\r\t\t\t\t\tif ( memory && !firing ) {\n\r\t\t\t\t\t\tfire();\n\r\t\t\t\t\t}\n\r\t\t\t\t}\n\r\t\t\t\treturn this;\n\r\t\t\t},\n\r\n\r\t\t\t// Remove a callback from the list\n\r\t\t\tremove: function() {\n\r\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\r\t\t\t\t\tvar index;\n\r\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\r\t\t\t\t\t\tlist.splice( index, 1 );\n\r\n\r\t\t\t\t\t\t// Handle firing indexes\n\r\t\t\t\t\t\tif ( index <= firingIndex ) {\n\r\t\t\t\t\t\t\tfiringIndex--;\n\r\t\t\t\t\t\t}\n\r\t\t\t\t\t}\n\r\t\t\t\t} );\n\r\t\t\t\treturn this;\n\r\t\t\t},\n\r\n\r\t\t\t// Check if a given callback is in the list.\n\r\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\r\t\t\thas: function( fn ) {\n\r\t\t\t\treturn fn ?\n\r\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\n\r\t\t\t\t\tlist.length > 0;\n\r\t\t\t},\n\r\n\r\t\t\t// Remove all callbacks from the list\n\r\t\t\tempty: function() {\n\r\t\t\t\tif ( list ) {\n\r\t\t\t\t\tlist = [];\n\r\t\t\t\t}\n\r\t\t\t\treturn this;\n\r\t\t\t},\n\r\n\r\t\t\t// Disable .fire and .add\n\r\t\t\t// Abort any current/pending executions\n\r\t\t\t// Clear all callbacks and values\n\r\t\t\tdisable: function() {\n\r\t\t\t\tlocked = queue = [];\n\r\t\t\t\tlist = memory = \"\";\n\r\t\t\t\treturn this;\n\r\t\t\t},\n\r\t\t\tdisabled: function() {\n\r\t\t\t\treturn !list;\n\r\t\t\t},\n\r\n\r\t\t\t// Disable .fire\n\r\t\t\t// Also disable .add unless we have memory (since it would have no effect)\n\r\t\t\t// Abort any pending executions\n\r\t\t\tlock: function() {\n\r\t\t\t\tlocked = queue = [];\n\r\t\t\t\tif ( !memory && !firing ) {\n\r\t\t\t\t\tlist = memory = \"\";\n\r\t\t\t\t}\n\r\t\t\t\treturn this;\n\r\t\t\t},\n\r\t\t\tlocked: function() {\n\r\t\t\t\treturn !!locked;\n\r\t\t\t},\n\r\n\r\t\t\t// Call all callbacks with the given context and arguments\n\r\t\t\tfireWith: function( context, args ) {\n\r\t\t\t\tif ( !locked ) {\n\r\t\t\t\t\targs = args || [];\n\r\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\r\t\t\t\t\tqueue.push( args );\n\r\t\t\t\t\tif ( !firing ) {\n\r\t\t\t\t\t\tfire();\n\r\t\t\t\t\t}\n\r\t\t\t\t}\n\r\t\t\t\treturn this;\n\r\t\t\t},\n\r\n\r\t\t\t// Call all the callbacks with the given arguments\n\r\t\t\tfire: function() {\n\r\t\t\t\tself.fireWith( this, arguments );\n\r\t\t\t\treturn this;\n\r\t\t\t},\n\r\n\r\t\t\t// To know if the callbacks have already been called at least once\n\r\t\t\tfired: function() {\n\r\t\t\t\treturn !!fired;\n\r\t\t\t}\n\r\t\t};\n\r\n\r\treturn self;\n\r};\n\r\n\r\n\rfunction Identity( v ) {\n\r\treturn v;\n\r}\n\rfunction Thrower( ex ) {\n\r\tthrow ex;\n\r}\n\r\n\rfunction adoptValue( value, resolve, reject, noValue ) {\n\r\tvar method;\n\r\n\r\ttry {\n\r\n\r\t\t// Check for promise aspect first to privilege synchronous behavior\n\r\t\tif ( value && isFunction( ( method = value.promise ) ) ) {\n\r\t\t\tmethod.call( value ).done( resolve ).fail( reject );\n\r\n\r\t\t// Other thenables\n\r\t\t} else if ( value && isFunction( ( method = value.then ) ) ) {\n\r\t\t\tmethod.call( value, resolve, reject );\n\r\n\r\t\t// Other non-thenables\n\r\t\t} else {\n\r\n\r\t\t\t// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n\r\t\t\t// * false: [ value ].slice( 0 ) => resolve( value )\n\r\t\t\t// * true: [ value ].slice( 1 ) => resolve()\n\r\t\t\tresolve.apply( undefined, [ value ].slice( noValue ) );\n\r\t\t}\n\r\n\r\t// For Promises/A+, convert exceptions into rejections\n\r\t// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n\r\t// Deferred#then to conditionally suppress rejection.\n\r\t} catch ( value ) {\n\r\n\r\t\t// Support: Android 4.0 only\n\r\t\t// Strict mode functions invoked without .call/.apply get global-object context\n\r\t\treject.apply( undefined, [ value ] );\n\r\t}\n\r}\n\r\n\rjQuery.extend( {\n\r\n\r\tDeferred: function( func ) {\n\r\t\tvar tuples = [\n\r\n\r\t\t\t\t// action, add listener, callbacks,\n\r\t\t\t\t// ... .then handlers, argument index, [final state]\n\r\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks( \"memory\" ),\n\r\t\t\t\t\tjQuery.Callbacks( \"memory\" ), 2 ],\n\r\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks( \"once memory\" ),\n\r\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 0, \"resolved\" ],\n\r\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks( \"once memory\" ),\n\r\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 1, \"rejected\" ]\n\r\t\t\t],\n\r\t\t\tstate = \"pending\",\n\r\t\t\tpromise = {\n\r\t\t\t\tstate: function() {\n\r\t\t\t\t\treturn state;\n\r\t\t\t\t},\n\r\t\t\t\talways: function() {\n\r\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\r\t\t\t\t\treturn this;\n\r\t\t\t\t},\n\r\t\t\t\t\"catch\": function( fn ) {\n\r\t\t\t\t\treturn promise.then( null, fn );\n\r\t\t\t\t},\n\r\n\r\t\t\t\t// Keep pipe for back-compat\n\r\t\t\t\tpipe: function( /* fnDone, fnFail, fnProgress */ ) {\n\r\t\t\t\t\tvar fns = arguments;\n\r\n\r\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\r\t\t\t\t\t\tjQuery.each( tuples, function( i, tuple ) {\n\r\n\r\t\t\t\t\t\t\t// Map tuples (progress, done, fail) to arguments (done, fail, progress)\n\r\t\t\t\t\t\t\tvar fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];\n\r\n\r\t\t\t\t\t\t\t// deferred.progress(function() { bind to newDefer or newDefer.notify })\n\r\t\t\t\t\t\t\t// deferred.done(function() { bind to newDefer or newDefer.resolve })\n\r\t\t\t\t\t\t\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\n\r\t\t\t\t\t\t\tdeferred[ tuple[ 1 ] ]( function() {\n\r\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\r\t\t\t\t\t\t\t\tif ( returned && isFunction( returned.promise ) ) {\n\r\t\t\t\t\t\t\t\t\treturned.promise()\n\r\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify )\n\r\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\r\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject );\n\r\t\t\t\t\t\t\t\t} else {\n\r\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\n\r\t\t\t\t\t\t\t\t\t\tthis,\n\r\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\n\r\t\t\t\t\t\t\t\t\t);\n\r\t\t\t\t\t\t\t\t}\n\r\t\t\t\t\t\t\t} );\n\r\t\t\t\t\t\t} );\n\r\t\t\t\t\t\tfns = null;\n\r\t\t\t\t\t} ).promise();\n\r\t\t\t\t},\n\r\t\t\t\tthen: function( onFulfilled, onRejected, onProgress ) {\n\r\t\t\t\t\tvar maxDepth = 0;\n\r\t\t\t\t\tfunction resolve( depth, deferred, handler, special ) {\n\r\t\t\t\t\t\treturn function() {\n\r\t\t\t\t\t\t\tvar that = this,\n\r\t\t\t\t\t\t\t\targs = arguments,\n\r\t\t\t\t\t\t\t\tmightThrow = function() {\n\r\t\t\t\t\t\t\t\t\tvar returned, then;\n\r\n\r\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.3\n\r\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-59\n\r\t\t\t\t\t\t\t\t\t// Ignore double-resolution attempts\n\r\t\t\t\t\t\t\t\t\tif ( depth < maxDepth ) {\n\r\t\t\t\t\t\t\t\t\t\treturn;\n\r\t\t\t\t\t\t\t\t\t}\n\r\n\r\t\t\t\t\t\t\t\t\treturned = handler.apply( that, args );\n\r\n\r\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.1\n\r\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-48\n\r\t\t\t\t\t\t\t\t\tif ( returned === deferred.promise() ) {\n\r\t\t\t\t\t\t\t\t\t\tthrow new TypeError( \"Thenable self-resolution\" );\n\r\t\t\t\t\t\t\t\t\t}\n\r\n\r\t\t\t\t\t\t\t\t\t// Support: Promises/A+ sections 2.3.3.1, 3.5\n\r\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-54\n\r\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-75\n\r\t\t\t\t\t\t\t\t\t// Retrieve `then` only once\n\r\t\t\t\t\t\t\t\t\tthen = returned &&\n\r\n\r\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.4\n\r\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-64\n\r\t\t\t\t\t\t\t\t\t\t// Only check objects and functions for thenability\n\r\t\t\t\t\t\t\t\t\t\t( typeof returned === \"object\" ||\n\r\t\t\t\t\t\t\t\t\t\t\ttypeof returned === \"function\" ) &&\n\r\t\t\t\t\t\t\t\t\t\treturned.then;\n\r\n\r\t\t\t\t\t\t\t\t\t// Handle a returned thenable\n\r\t\t\t\t\t\t\t\t\tif ( isFunction( then ) ) {\n\r\n\r\t\t\t\t\t\t\t\t\t\t// Special processors (notify) just wait for resolution\n\r\t\t\t\t\t\t\t\t\t\tif ( special ) {\n\r\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\r\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\r\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\r\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special )\n\r\t\t\t\t\t\t\t\t\t\t\t);\n\r\n\r\t\t\t\t\t\t\t\t\t\t// Normal processors (resolve) also hook into progress\n\r\t\t\t\t\t\t\t\t\t\t} else {\n\r\n\r\t\t\t\t\t\t\t\t\t\t\t// ...and disregard older resolution values\n\r\t\t\t\t\t\t\t\t\t\t\tmaxDepth++;\n\r\n\r\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\r\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\r\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\r\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special ),\n\r\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity,\n\r\t\t\t\t\t\t\t\t\t\t\t\t\tdeferred.notifyWith )\n\r\t\t\t\t\t\t\t\t\t\t\t);\n\r\t\t\t\t\t\t\t\t\t\t}\n\r\n\r\t\t\t\t\t\t\t\t\t// Handle all other returned values\n\r\t\t\t\t\t\t\t\t\t} else {\n\r\n\r\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\r\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\r\t\t\t\t\t\t\t\t\t\tif ( handler !== Identity ) {\n\r\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\r\t\t\t\t\t\t\t\t\t\t\targs = [ returned ];\n\r\t\t\t\t\t\t\t\t\t\t}\n\r\n\r\t\t\t\t\t\t\t\t\t\t// Process the value(s)\n\r\t\t\t\t\t\t\t\t\t\t// Default process is resolve\n\r\t\t\t\t\t\t\t\t\t\t( special || deferred.resolveWith )( that, args );\n\r\t\t\t\t\t\t\t\t\t}\n\r\t\t\t\t\t\t\t\t},\n\r\n\r\t\t\t\t\t\t\t\t// Only normal processors (resolve) catch and reject exceptions\n\r\t\t\t\t\t\t\t\tprocess = special ?\n\r\t\t\t\t\t\t\t\t\tmightThrow :\n\r\t\t\t\t\t\t\t\t\tfunction() {\n\r\t\t\t\t\t\t\t\t\t\ttry {\n\r\t\t\t\t\t\t\t\t\t\t\tmightThrow();\n\r\t\t\t\t\t\t\t\t\t\t} catch ( e ) {\n\r\n\r\t\t\t\t\t\t\t\t\t\t\tif ( jQuery.Deferred.exceptionHook ) {\n\r\t\t\t\t\t\t\t\t\t\t\t\tjQuery.Deferred.exceptionHook( e,\n\r\t\t\t\t\t\t\t\t\t\t\t\t\tprocess.stackTrace );\n\r\t\t\t\t\t\t\t\t\t\t\t}\n\r\n\r\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.4.1\n\r\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-61\n\r\t\t\t\t\t\t\t\t\t\t\t// Ignore post-resolution exceptions\n\r\t\t\t\t\t\t\t\t\t\t\tif ( depth + 1 >= maxDepth ) {\n\r\n\r\t\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\r\t\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\r\t\t\t\t\t\t\t\t\t\t\t\tif ( handler !== Thrower ) {\n\r\t\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\r\t\t\t\t\t\t\t\t\t\t\t\t\targs = [ e ];\n\r\t\t\t\t\t\t\t\t\t\t\t\t}\n\r\n\r\t\t\t\t\t\t\t\t\t\t\t\tdeferred.rejectWith( that, args );\n\r\t\t\t\t\t\t\t\t\t\t\t}\n\r\t\t\t\t\t\t\t\t\t\t}\n\r\t\t\t\t\t\t\t\t\t};\n\r\n\r\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.1\n\r\t\t\t\t\t\t\t// https://promisesaplus.com/#point-57\n\r\t\t\t\t\t\t\t// Re-resolve promises immediately to dodge false rejection from\n\r\t\t\t\t\t\t\t// subsequent errors\n\r\t\t\t\t\t\t\tif ( depth ) {\n\r\t\t\t\t\t\t\t\tprocess();\n\r\t\t\t\t\t\t\t} else {\n\r\n\r\t\t\t\t\t\t\t\t// Call an optional hook to record the stack, in case of exception\n\r\t\t\t\t\t\t\t\t// since it's otherwise lost when execution goes async\n\r\t\t\t\t\t\t\t\tif ( jQuery.Deferred.getStackHook ) {\n\r\t\t\t\t\t\t\t\t\tprocess.stackTrace = jQuery.Deferred.getStackHook();\n\r\t\t\t\t\t\t\t\t}\n\r\t\t\t\t\t\t\t\twindow.setTimeout( process );\n\r\t\t\t\t\t\t\t}\n\r\t\t\t\t\t\t};\n\r\t\t\t\t\t}\n\r\n\r\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\r\n\r\t\t\t\t\t\t// progress_handlers.add( ... )\n\r\t\t\t\t\t\ttuples[ 0 ][ 3 ].add(\n\r\t\t\t\t\t\t\tresolve(\n\r\t\t\t\t\t\t\t\t0,\n\r\t\t\t\t\t\t\t\tnewDefer,\n\r\t\t\t\t\t\t\t\tisFunction( onProgress ) ?\n\r\t\t\t\t\t\t\t\t\tonProgress :\n\r\t\t\t\t\t\t\t\t\tIdentity,\n\r\t\t\t\t\t\t\t\tnewDefer.notifyWith\n\r\t\t\t\t\t\t\t)\n\r\t\t\t\t\t\t);\n\r\n\r\t\t\t\t\t\t// fulfilled_handlers.add( ... )\n\r\t\t\t\t\t\ttuples[ 1 ][ 3 ].add(\n\r\t\t\t\t\t\t\tresolve(\n\r\t\t\t\t\t\t\t\t0,\n\r\t\t\t\t\t\t\t\tnewDefer,\n\r\t\t\t\t\t\t\t\tisFunction( onFulfilled ) ?\n\r\t\t\t\t\t\t\t\t\tonFulfilled :\n\r\t\t\t\t\t\t\t\t\tIdentity\n\r\t\t\t\t\t\t\t)\n\r\t\t\t\t\t\t);\n\r\n\r\t\t\t\t\t\t// rejected_handlers.add( ... )\n\r\t\t\t\t\t\ttuples[ 2 ][ 3 ].add(\n\r\t\t\t\t\t\t\tresolve(\n\r\t\t\t\t\t\t\t\t0,\n\r\t\t\t\t\t\t\t\tnewDefer,\n\r\t\t\t\t\t\t\t\tisFunction( onRejected ) ?\n\r\t\t\t\t\t\t\t\t\tonRejected :\n\r\t\t\t\t\t\t\t\t\tThrower\n\r\t\t\t\t\t\t\t)\n\r\t\t\t\t\t\t);\n\r\t\t\t\t\t} ).promise();\n\r\t\t\t\t},\n\r\n\r\t\t\t\t// Get a promise for this deferred\n\r\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\r\t\t\t\tpromise: function( obj ) {\n\r\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\r\t\t\t\t}\n\r\t\t\t},\n\r\t\t\tdeferred = {};\n\r\n\r\t\t// Add list-specific methods\n\r\t\tjQuery.each( tuples, function( i, tuple ) {\n\r\t\t\tvar list = tuple[ 2 ],\n\r\t\t\t\tstateString = tuple[ 5 ];\n\r\n\r\t\t\t// promise.progress = list.add\n\r\t\t\t// promise.done = list.add\n\r\t\t\t// promise.fail = list.add\n\r\t\t\tpromise[ tuple[ 1 ] ] = list.add;\n\r\n\r\t\t\t// Handle state\n\r\t\t\tif ( stateString ) {\n\r\t\t\t\tlist.add(\n\r\t\t\t\t\tfunction() {\n\r\n\r\t\t\t\t\t\t// state = \"resolved\" (i.e., fulfilled)\n\r\t\t\t\t\t\t// state = \"rejected\"\n\r\t\t\t\t\t\tstate = stateString;\n\r\t\t\t\t\t},\n\r\n\r\t\t\t\t\t// rejected_callbacks.disable\n\r\t\t\t\t\t// fulfilled_callbacks.disable\n\r\t\t\t\t\ttuples[ 3 - i ][ 2 ].disable,\n\r\n\r\t\t\t\t\t// rejected_handlers.disable\n\r\t\t\t\t\t// fulfilled_handlers.disable\n\r\t\t\t\t\ttuples[ 3 - i ][ 3 ].disable,\n\r\n\r\t\t\t\t\t// progress_callbacks.lock\n\r\t\t\t\t\ttuples[ 0 ][ 2 ].lock,\n\r\n\r\t\t\t\t\t// progress_handlers.lock\n\r\t\t\t\t\ttuples[ 0 ][ 3 ].lock\n\r\t\t\t\t);\n\r\t\t\t}\n\r\n\r\t\t\t// progress_handlers.fire\n\r\t\t\t// fulfilled_handlers.fire\n\r\t\t\t// rejected_handlers.fire\n\r\t\t\tlist.add( tuple[ 3 ].fire );\n\r\n\r\t\t\t// deferred.notify = function() { deferred.notifyWith(...) }\n\r\t\t\t// deferred.resolve = function() { deferred.resolveWith(...) }\n\r\t\t\t// deferred.reject = function() { deferred.rejectWith(...) }\n\r\t\t\tdeferred[ tuple[ 0 ] ] = function() {\n\r\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? undefined : this, arguments );\n\r\t\t\t\treturn this;\n\r\t\t\t};\n\r\n\r\t\t\t// deferred.notifyWith = list.fireWith\n\r\t\t\t// deferred.resolveWith = list.fireWith\n\r\t\t\t// deferred.rejectWith = list.fireWith\n\r\t\t\tdeferred[ tuple[ 0 ] + \"With\" ] = list.fireWith;\n\r\t\t} );\n\r\n\r\t\t// Make the deferred a promise\n\r\t\tpromise.promise( deferred );\n\r\n\r\t\t// Call given func if any\n\r\t\tif ( func ) {\n\r\t\t\tfunc.call( deferred, deferred );\n\r\t\t}\n\r\n\r\t\t// All done!\n\r\t\treturn deferred;\n\r\t},\n\r\n\r\t// Deferred helper\n\r\twhen: function( singleValue ) {\n\r\t\tvar\n\r\n\r\t\t\t// count of uncompleted subordinates\n\r\t\t\tremaining = arguments.length,\n\r\n\r\t\t\t// count of unprocessed arguments\n\r\t\t\ti = remaining,\n\r\n\r\t\t\t// subordinate fulfillment data\n\r\t\t\tresolveContexts = Array( i ),\n\r\t\t\tresolveValues = slice.call( arguments ),\n\r\n\r\t\t\t// the master Deferred\n\r\t\t\tmaster = jQuery.Deferred(),\n\r\n\r\t\t\t// subordinate callback factory\n\r\t\t\tupdateFunc = function( i ) {\n\r\t\t\t\treturn function( value ) {\n\r\t\t\t\t\tresolveContexts[ i ] = this;\n\r\t\t\t\t\tresolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\r\t\t\t\t\tif ( !( --remaining ) ) {\n\r\t\t\t\t\t\tmaster.resolveWith( resolveContexts, resolveValues );\n\r\t\t\t\t\t}\n\r\t\t\t\t};\n\r\t\t\t};\n\r\n\r\t\t// Single- and empty arguments are adopted like Promise.resolve\n\r\t\tif ( remaining <= 1 ) {\n\r\t\t\tadoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject,\n\r\t\t\t\t!remaining );\n\r\n\r\t\t\t// Use .then() to unwrap secondary thenables (cf. gh-3000)\n\r\t\t\tif ( master.state() === \"pending\" ||\n\r\t\t\t\tisFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {\n\r\n\r\t\t\t\treturn master.then();\n\r\t\t\t}\n\r\t\t}\n\r\n\r\t\t// Multiple arguments are aggregated like Promise.all array elements\n\r\t\twhile ( i-- ) {\n\r\t\t\tadoptValue( resolveValues[ i ], updateFunc( i ), master.reject );\n\r\t\t}\n\r\n\r\t\treturn master.promise();\n\r\t}\n\r} );\n\r\n\r\n\r// These usually indicate a programmer mistake during development,\n\r// warn about them ASAP rather than swallowing them by default.\n\rvar rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\r\n\rjQuery.Deferred.exceptionHook = function( error, stack ) {\n\r\n\r\t// Support: IE 8 - 9 only\n\r\t// Console exists when dev tools are open, which can happen at any time\n\r\tif ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {\n\r\t\twindow.console.warn( \"jQuery.Deferred exception: \" + error.message, error.stack, stack );\n\r\t}\n\r};\n\r\n\r\n\r\n\r\n\rjQuery.readyException = function( error ) {\n\r\twindow.setTimeout( function() {\n\r\t\tthrow error;\n\r\t} );\n\r};\n\r\n\r\n\r\n\r\n\r// The deferred used on DOM ready\n\rvar readyList = jQuery.Deferred();\n\r\n\rjQuery.fn.ready = function( fn ) {\n\r\n\r\treadyList\n\r\t\t.then( fn )\n\r\n\r\t\t// Wrap jQuery.readyException in a function so that the lookup\n\r\t\t// happens at the time of error handling instead of callback\n\r\t\t// registration.\n\r\t\t.catch( function( error ) {\n\r\t\t\tjQuery.readyException( error );\n\r\t\t} );\n\r\n\r\treturn this;\n\r};\n\r\n\rjQuery.extend( {\n\r\n\r\t// Is the DOM ready to be used? Set to true once it occurs.\n\r\tisReady: false,\n\r\n\r\t// A counter to track how many items to wait for before\n\r\t// the ready event fires. See #6781\n\r\treadyWait: 1,\n\r\n\r\t// Handle when the DOM is ready\n\r\tready: function( wait ) {\n\r\n\r\t\t// Abort if there are pending holds or we're already ready\n\r\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\r\t\t\treturn;\n\r\t\t}\n\r\n\r\t\t// Remember that the DOM is ready\n\r\t\tjQuery.isReady = true;\n\r\n\r\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\r\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\r\t\t\treturn;\n\r\t\t}\n\r\n\r\t\t// If there are functions bound, to execute\n\r\t\treadyList.resolveWith( document, [ jQuery ] );\n\r\t}\n\r} );\n\r\n\rjQuery.ready.then = readyList.then;\n\r\n\r// The ready event handler and self cleanup method\n\rfunction completed() {\n\r\tdocument.removeEventListener( \"DOMContentLoaded\", completed );\n\r\twindow.removeEventListener( \"load\", completed );\n\r\tjQuery.ready();\n\r}\n\r\n\r// Catch cases where $(document).ready() is called\n\r// after the browser event has already occurred.\n\r// Support: IE <=9 - 10 only\n\r// Older IE sometimes signals \"interactive\" too soon\n\rif ( document.readyState === \"complete\" ||\n\r\t( document.readyState !== \"loading\" && !document.documentElement.doScroll ) ) {\n\r\n\r\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\r\twindow.setTimeout( jQuery.ready );\n\r\n\r} else {\n\r\n\r\t// Use the handy event callback\n\r\tdocument.addEventListener( \"DOMContentLoaded\", completed );\n\r\n\r\t// A fallback to window.onload, that will always work\n\r\twindow.addEventListener( \"load\", completed );\n\r}\n\r\n\r\n\r\n\r\n\r// Multifunctional method to get and set values of a collection\n\r// The value/s can optionally be executed if it's a function\n\rvar access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\r\tvar i = 0,\n\r\t\tlen = elems.length,\n\r\t\tbulk = key == null;\n\r\n\r\t// Sets many values\n\r\tif ( toType( key ) === \"object\" ) {\n\r\t\tchainable = true;\n\r\t\tfor ( i in key ) {\n\r\t\t\taccess( elems, fn, i, key[ i ], true, emptyGet, raw );\n\r\t\t}\n\r\n\r\t// Sets one value\n\r\t} else if ( value !== undefined ) {\n\r\t\tchainable = true;\n\r\n\r\t\tif ( !isFunction( value ) ) {\n\r\t\t\traw = true;\n\r\t\t}\n\r\n\r\t\tif ( bulk ) {\n\r\n\r\t\t\t// Bulk operations run against the entire set\n\r\t\t\tif ( raw ) {\n\r\t\t\t\tfn.call( elems, value );\n\r\t\t\t\tfn = null;\n\r\n\r\t\t\t// ...except when executing function values\n\r\t\t\t} else {\n\r\t\t\t\tbulk = fn;\n\r\t\t\t\tfn = function( elem, key, value ) {\n\r\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\r\t\t\t\t};\n\r\t\t\t}\n\r\t\t}\n\r\n\r\t\tif ( fn ) {\n\r\t\t\tfor ( ; i < len; i++ ) {\n\r\t\t\t\tfn(\n\r\t\t\t\t\telems[ i ], key, raw ?\n\r\t\t\t\t\tvalue :\n\r\t\t\t\t\tvalue.call( elems[ i ], i, fn( elems[ i ], key ) )\n\r\t\t\t\t);\n\r\t\t\t}\n\r\t\t}\n\r\t}\n\r\n\r\tif ( chainable ) {\n\r\t\treturn elems;\n\r\t}\n\r\n\r\t// Gets\n\r\tif ( bulk ) {\n\r\t\treturn fn.call( elems );\n\r\t}\n\r\n\r\treturn len ? fn( elems[ 0 ], key ) : emptyGet;\n\r};\n\r\n\r\n\r// Matches dashed string for camelizing\n\rvar rmsPrefix = /^-ms-/,\n\r\trdashAlpha = /-([a-z])/g;\n\r\n\r// Used by camelCase as callback to replace()\n\rfunction fcamelCase( all, letter ) {\n\r\treturn letter.toUpperCase();\n\r}\n\r\n\r// Convert dashed to camelCase; used by the css and data modules\n\r// Support: IE <=9 - 11, Edge 12 - 15\n\r// Microsoft forgot to hump their vendor prefix (#9572)\n\rfunction camelCase( string ) {\n\r\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n\r}\n\rvar acceptData = function( owner ) {\n\r\n\r\t// Accepts only:\n\r\t// - Node\n\r\t// - Node.ELEMENT_NODE\n\r\t// - Node.DOCUMENT_NODE\n\r\t// - Object\n\r\t// - Any\n\r\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n\r};\n\r\n\r\n\r\n\r\n\rfunction Data() {\n\r\tthis.expando = jQuery.expando + Data.uid++;\n\r}\n\r\n\rData.uid = 1;\n\r\n\rData.prototype = {\n\r\n\r\tcache: function( owner ) {\n\r\n\r\t\t// Check if the owner object already has a cache\n\r\t\tvar value = owner[ this.expando ];\n\r\n\r\t\t// If not, create one\n\r\t\tif ( !value ) {\n\r\t\t\tvalue = {};\n\r\n\r\t\t\t// We can accept data for non-element nodes in modern browsers,\n\r\t\t\t// but we should not, see #8335.\n\r\t\t\t// Always return an empty object.\n\r\t\t\tif ( acceptData( owner ) ) {\n\r\n\r\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\n\r\t\t\t\t// use plain assignment\n\r\t\t\t\tif ( owner.nodeType ) {\n\r\t\t\t\t\towner[ this.expando ] = value;\n\r\n\r\t\t\t\t// Otherwise secure it in a non-enumerable property\n\r\t\t\t\t// configurable must be true to allow the property to be\n\r\t\t\t\t// deleted when data is removed\n\r\t\t\t\t} else {\n\r\t\t\t\t\tObject.defineProperty( owner, this.expando, {\n\r\t\t\t\t\t\tvalue: value,\n\r\t\t\t\t\t\tconfigurable: true\n\r\t\t\t\t\t} );\n\r\t\t\t\t}\n\r\t\t\t}\n\r\t\t}\n\r\n\r\t\treturn value;\n\r\t},\n\r\tset: function( owner, data, value ) {\n\r\t\tvar prop,\n\r\t\t\tcache = this.cache( owner );\n\r\n\r\t\t// Handle: [ owner, key, value ] args\n\r\t\t// Always use camelCase key (gh-2257)\n\r\t\tif ( typeof data === \"string\" ) {\n\r\t\t\tcache[ camelCase( data ) ] = value;\n\r\n\r\t\t// Handle: [ owner, { properties } ] args\n\r\t\t} else {\n\r\n\r\t\t\t// Copy the properties one-by-one to the cache object\n\r\t\t\tfor ( prop in data ) {\n\r\t\t\t\tcache[ camelCase( prop ) ] = data[ prop ];\n\r\t\t\t}\n\r\t\t}\n\r\t\treturn cache;\n\r\t},\n\r\tget: function( owner, key ) {\n\r\t\treturn key === undefined ?\n\r\t\t\tthis.cache( owner ) :\n\r\n\r\t\t\t// Always use camelCase key (gh-2257)\n\r\t\t\towner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];\n\r\t},\n\r\taccess: function( owner, key, value ) {\n\r\n\r\t\t// In cases where either:\n\r\t\t//\n\r\t\t// 1. No key was specified\n\r\t\t// 2. A string key was specified, but no value provided\n\r\t\t//\n\r\t\t// Take the \"read\" path and allow the get method to determine\n\r\t\t// which value to return, respectively either:\n\r\t\t//\n\r\t\t// 1. The entire cache object\n\r\t\t// 2. The data stored at the key\n\r\t\t//\n\r\t\tif ( key === undefined ||\n\r\t\t\t\t( ( key && typeof key === \"string\" ) && value === undefined ) ) {\n\r\n\r\t\t\treturn this.get( owner, key );\n\r\t\t}\n\r\n\r\t\t// When the key is not a string, or both a key and value\n\r\t\t// are specified, set or extend (existing objects) with either:\n\r\t\t//\n\r\t\t// 1. An object of properties\n\r\t\t// 2. A key and value\n\r\t\t//\n\r\t\tthis.set( owner, key, value );\n\r\n\r\t\t// Since the \"set\" path can have two possible entry points\n\r\t\t// return the expected data based on which path was taken[*]\n\r\t\treturn value !== undefined ? value : key;\n\r\t},\n\r\tremove: function( owner, key ) {\n\r\t\tvar i,\n\r\t\t\tcache = owner[ this.expando ];\n\r\n\r\t\tif ( cache === undefined ) {\n\r\t\t\treturn;\n\r\t\t}\n\r\n\r\t\tif ( key !== undefined ) {\n\r\n\r\t\t\t// Support array or space separated string of keys\n\r\t\t\tif ( Array.isArray( key ) ) {\n\r\n\r\t\t\t\t// If key is an array of keys...\n\r\t\t\t\t// We always set camelCase keys, so remove that.\n\r\t\t\t\tkey = key.map( camelCase );\n\r\t\t\t} else {\n\r\t\t\t\tkey = camelCase( key );\n\r\n\r\t\t\t\t// If a key with the spaces exists, use it.\n\r\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\r\t\t\t\tkey = key in cache ?\n\r\t\t\t\t\t[ key ] :\n\r\t\t\t\t\t( key.match( rnothtmlwhite ) || [] );\n\r\t\t\t}\n\r\n\r\t\t\ti = key.length;\n\r\n\r\t\t\twhile ( i-- ) {\n\r\t\t\t\tdelete cache[ key[ i ] ];\n\r\t\t\t}\n\r\t\t}\n\r\n\r\t\t// Remove the expando if there's no more data\n\r\t\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\n\r\n\r\t\t\t// Support: Chrome <=35 - 45\n\r\t\t\t// Webkit & Blink performance suffers when deleting properties\n\r\t\t\t// from DOM nodes, so set to undefined instead\n\r\t\t\t// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n\r\t\t\tif ( owner.nodeType ) {\n\r\t\t\t\towner[ this.expando ] = undefined;\n\r\t\t\t} else {\n\r\t\t\t\tdelete owner[ this.expando ];\n\r\t\t\t}\n\r\t\t}\n\r\t},\n\r\thasData: function( owner ) {\n\r\t\tvar cache = owner[ this.expando ];\n\r\t\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\n\r\t}\n\r};\n\rvar dataPriv = new Data();\n\r\n\rvar dataUser = new Data();\n\r\n\r\n\r\n\r//\tImplementation Summary\n\r//\n\r//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n\r//\t2. Improve the module's maintainability by reducing the storage\n\r//\t\tpaths to a single mechanism.\n\r//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n\r//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n\r//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n\r//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\r\n\rvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\r\trmultiDash = /[A-Z]/g;\n\r\n\rfunction getData( data ) {\n\r\tif ( data === \"true\" ) {\n\r\t\treturn true;\n\r\t}\n\r\n\r\tif ( data === \"false\" ) {\n\r\t\treturn false;\n\r\t}\n\r\n\r\tif ( data === \"null\" ) {\n\r\t\treturn null;\n\r\t}\n\r\n\r\t// Only convert to a number if it doesn't change the string\n\r\tif ( data === +data + \"\" ) {\n\r\t\treturn +data;\n\r\t}\n\r\n\r\tif ( rbrace.test( data ) ) {\n\r\t\treturn JSON.parse( data );\n\r\t}\n\r\n\r\treturn data;\n\r}\n\r\n\rfunction dataAttr( elem, key, data ) {\n\r\tvar name;\n\r\n\r\t// If nothing was found internally, try to fetch any\n\r\t// data from the HTML5 data-* attribute\n\r\tif ( data === undefined && elem.nodeType === 1 ) {\n\r\t\tname = \"data-\" + key.replace( rmultiDash, \"-$&\" ).toLowerCase();\n\r\t\tdata = elem.getAttribute( name );\n\r\n\r\t\tif ( typeof data === \"string\" ) {\n\r\t\t\ttry {\n\r\t\t\t\tdata = getData( data );\n\r\t\t\t} catch ( e ) {}\n\r\n\r\t\t\t// Make sure we set the data so it isn't changed later\n\r\t\t\tdataUser.set( elem, key, data );\n\r\t\t} else {\n\r\t\t\tdata = undefined;\n\r\t\t}\n\r\t}\n\r\treturn data;\n\r}\n\r\n\rjQuery.extend( {\n\r\thasData: function( elem ) {\n\r\t\treturn dataUser.hasData( elem ) || dataPriv.hasData( elem );\n\r\t},\n\r\n\r\tdata: function( elem, name, data ) {\n\r\t\treturn dataUser.access( elem, name, data );\n\r\t},\n\r\n\r\tremoveData: function( elem, name ) {\n\r\t\tdataUser.remove( elem, name );\n\r\t},\n\r\n\r\t// TODO: Now that all calls to _data and _removeData have been replaced\n\r\t// with direct calls to dataPriv methods, these can be deprecated.\n\r\t_data: function( elem, name, data ) {\n\r\t\treturn dataPriv.access( elem, name, data );\n\r\t},\n\r\n\r\t_removeData: function( elem, name ) {\n\r\t\tdataPriv.remove( elem, name );\n\r\t}\n\r} );\n\r\n\rjQuery.fn.extend( {\n\r\tdata: function( key, value ) {\n\r\t\tvar i, name, data,\n\r\t\t\telem = this[ 0 ],\n\r\t\t\tattrs = elem && elem.attributes;\n\r\n\r\t\t// Gets all values\n\r\t\tif ( key === undefined ) {\n\r\t\t\tif ( this.length ) {\n\r\t\t\t\tdata = dataUser.get( elem );\n\r\n\r\t\t\t\tif ( elem.nodeType === 1 && !dataPriv.get( elem, \"hasDataAttrs\" ) ) {\n\r\t\t\t\t\ti = attrs.length;\n\r\t\t\t\t\twhile ( i-- ) {\n\r\n\r\t\t\t\t\t\t// Support: IE 11 only\n\r\t\t\t\t\t\t// The attrs elements can be null (#14894)\n\r\t\t\t\t\t\tif ( attrs[ i ] ) {\n\r\t\t\t\t\t\t\tname = attrs[ i ].name;\n\r\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\r\t\t\t\t\t\t\t\tname = camelCase( name.slice( 5 ) );\n\r\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\r\t\t\t\t\t\t\t}\n\r\t\t\t\t\t\t}\n\r\t\t\t\t\t}\n\r\t\t\t\t\tdataPriv.set( elem, \"hasDataAttrs\", true );\n\r\t\t\t\t}\n\r\t\t\t}\n\r\n\r\t\t\treturn data;\n\r\t\t}\n\r\n\r\t\t// Sets multiple values\n\r\t\tif ( typeof key === \"object\" ) {\n\r\t\t\treturn this.each( function() {\n\r\t\t\t\tdataUser.set( this, key );\n\r\t\t\t} );\n\r\t\t}\n\r\n\r\t\treturn access( this, function( value ) {\n\r\t\t\tvar data;\n\r\n\r\t\t\t// The calling jQuery object (element matches) is not empty\n\r\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\r\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\r\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\r\t\t\t// throw an exception if an attempt to read a data cache is made.\n\r\t\t\tif ( elem && value === undefined ) {\n\r\n\r\t\t\t\t// Attempt to get data from the cache\n\r\t\t\t\t// The key will always be camelCased in Data\n\r\t\t\t\tdata = dataUser.get( elem, key );\n\r\t\t\t\tif ( data !== undefined ) {\n\r\t\t\t\t\treturn data;\n\r\t\t\t\t}\n\r\n\r\t\t\t\t// Attempt to \"discover\" the data in\n\r\t\t\t\t// HTML5 custom data-* attrs\n\r\t\t\t\tdata = dataAttr( elem, key );\n\r\t\t\t\tif ( data !== undefined ) {\n\r\t\t\t\t\treturn data;\n\r\t\t\t\t}\n\r\n\r\t\t\t\t// We tried really hard, but the data doesn't exist.\n\r\t\t\t\treturn;\n\r\t\t\t}\n\r\n\r\t\t\t// Set the data...\n\r\t\t\tthis.each( function() {\n\r\n\r\t\t\t\t// We always store the camelCased key\n\r\t\t\t\tdataUser.set( this, key, value );\n\r\t\t\t} );\n\r\t\t}, null, value, arguments.length > 1, null, true );\n\r\t},\n\r\n\r\tremoveData: function( key ) {\n\r\t\treturn this.each( function() {\n\r\t\t\tdataUser.remove( this, key );\n\r\t\t} );\n\r\t}\n\r} );\n\r\n\r\n\rjQuery.extend( {\n\r\tqueue: function( elem, type, data ) {\n\r\t\tvar queue;\n\r\n\r\t\tif ( elem ) {\n\r\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\r\t\t\tqueue = dataPriv.get( elem, type );\n\r\n\r\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\r\t\t\tif ( data ) {\n\r\t\t\t\tif ( !queue || Array.isArray( data ) ) {\n\r\t\t\t\t\tqueue = dataPriv.access( elem, type, jQuery.makeArray( data ) );\n\r\t\t\t\t} else {\n\r\t\t\t\t\tqueue.push( data );\n\r\t\t\t\t}\n\r\t\t\t}\n\r\t\t\treturn queue || [];\n\r\t\t}\n\r\t},\n\r\n\r\tdequeue: function( elem, type ) {\n\r\t\ttype = type || \"fx\";\n\r\n\r\t\tvar queue = jQuery.queue( elem, type ),\n\r\t\t\tstartLength = queue.length,\n\r\t\t\tfn = queue.shift(),\n\r\t\t\thooks = jQuery._queueHooks( elem, type ),\n\r\t\t\tnext = function() {\n\r\t\t\t\tjQuery.dequeue( elem, type );\n\r\t\t\t};\n\r\n\r\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\r\t\tif ( fn === \"inprogress\" ) {\n\r\t\t\tfn = queue.shift();\n\r\t\t\tstartLength--;\n\r\t\t}\n\r\n\r\t\tif ( fn ) {\n\r\n\r\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\r\t\t\t// automatically dequeued\n\r\t\t\tif ( type === \"fx\" ) {\n\r\t\t\t\tqueue.unshift( \"inprogress\" );\n\r\t\t\t}\n\r\n\r\t\t\t// Clear up the last queue stop function\n\r\t\t\tdelete hooks.stop;\n\r\t\t\tfn.call( elem, next, hooks );\n\r\t\t}\n\r\n\r\t\tif ( !startLength && hooks ) {\n\r\t\t\thooks.empty.fire();\n\r\t\t}\n\r\t},\n\r\n\r\t// Not public - generate a queueHooks object, or return the current one\n\r\t_queueHooks: function( elem, type ) {\n\r\t\tvar key = type + \"queueHooks\";\n\r\t\treturn dataPriv.get( elem, key ) || dataPriv.access( elem, key, {\n\r\t\t\tempty: jQuery.Callbacks( \"once memory\" ).add( function() {\n\r\t\t\t\tdataPriv.remove( elem, [ type + \"queue\", key ] );\n\r\t\t\t} )\n\r\t\t} );\n\r\t}\n\r} );\n\r\n\rjQuery.fn.extend( {\n\r\tqueue: function( type, data ) {\n\r\t\tvar setter = 2;\n\r\n\r\t\tif ( typeof type !== \"string\" ) {\n\r\t\t\tdata = type;\n\r\t\t\ttype = \"fx\";\n\r\t\t\tsetter--;\n\r\t\t}\n\r\n\r\t\tif ( arguments.length < setter ) {\n\r\t\t\treturn jQuery.queue( this[ 0 ], type );\n\r\t\t}\n\r\n\r\t\treturn data === undefined ?\n\r\t\t\tthis :\n\r\t\t\tthis.each( function() {\n\r\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\r\n\r\t\t\t\t// Ensure a hooks for this queue\n\r\t\t\t\tjQuery._queueHooks( this, type );\n\r\n\r\t\t\t\tif ( type === \"fx\" && queue[ 0 ] !== \"inprogress\" ) {\n\r\t\t\t\t\tjQuery.dequeue( this, type );\n\r\t\t\t\t}\n\r\t\t\t} );\n\r\t},\n\r\tdequeue: function( type ) {\n\r\t\treturn this.each( function() {\n\r\t\t\tjQuery.dequeue( this, type );\n\r\t\t} );\n\r\t},\n\r\tclearQueue: function( type ) {\n\r\t\treturn this.queue( type || \"fx\", [] );\n\r\t},\n\r\n\r\t// Get a promise resolved when queues of a certain type\n\r\t// are emptied (fx is the type by default)\n\r\tpromise: function( type, obj ) {\n\r\t\tvar tmp,\n\r\t\t\tcount = 1,\n\r\t\t\tdefer = jQuery.Deferred(),\n\r\t\t\telements = this,\n\r\t\t\ti = this.length,\n\r\t\t\tresolve = function() {\n\r\t\t\t\tif ( !( --count ) ) {\n\r\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\r\t\t\t\t}\n\r\t\t\t};\n\r\n\r\t\tif ( typeof type !== \"string\" ) {\n\r\t\t\tobj = type;\n\r\t\t\ttype = undefined;\n\r\t\t}\n\r\t\ttype = type || \"fx\";\n\r\n\r\t\twhile ( i-- ) {\n\r\t\t\ttmp = dataPriv.get( elements[ i ], type + \"queueHooks\" );\n\r\t\t\tif ( tmp && tmp.empty ) {\n\r\t\t\t\tcount++;\n\r\t\t\t\ttmp.empty.add( resolve );\n\r\t\t\t}\n\r\t\t}\n\r\t\tresolve();\n\r\t\treturn defer.promise( obj );\n\r\t}\n\r} );\n\rvar pnum = ( /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/ ).source;\n\r\n\rvar rcssNum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" );\n\r\n\r\n\rvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\r\n\rvar documentElement = document.documentElement;\n\r\n\r\n\r\n\r\tvar isAttached = function( elem ) {\n\r\t\t\treturn jQuery.contains( elem.ownerDocument, elem );\n\r\t\t},\n\r\t\tcomposed = { composed: true };\n\r\n\r\t// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n\r\t// Check attachment across shadow DOM boundaries when possible (gh-3504)\n\r\t// Support: iOS 10.0-10.2 only\n\r\t// Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n\r\t// leading to errors. We need to check for `getRootNode`.\n\r\tif ( documentElement.getRootNode ) {\n\r\t\tisAttached = function( elem ) {\n\r\t\t\treturn jQuery.contains( elem.ownerDocument, elem ) ||\n\r\t\t\t\telem.getRootNode( composed ) === elem.ownerDocument;\n\r\t\t};\n\r\t}\n\rvar isHiddenWithinTree = function( elem, el ) {\n\r\n\r\t\t// isHiddenWithinTree might be called from jQuery#filter function;\n\r\t\t// in that case, element will be second argument\n\r\t\telem = el || elem;\n\r\n\r\t\t// Inline style trumps all\n\r\t\treturn elem.style.display === \"none\" ||\n\r\t\t\telem.style.display === \"\" &&\n\r\n\r\t\t\t// Otherwise, check computed style\n\r\t\t\t// Support: Firefox <=43 - 45\n\r\t\t\t// Disconnected elements can have computed display: none, so first confirm that elem is\n\r\t\t\t// in the document.\n\r\t\t\tisAttached( elem ) &&\n\r\n\r\t\t\tjQuery.css( elem, \"display\" ) === \"none\";\n\r\t};\n\r\n\rvar swap = function( elem, options, callback, args ) {\n\r\tvar ret, name,\n\r\t\told = {};\n\r\n\r\t// Remember the old values, and insert the new ones\n\r\tfor ( name in options ) {\n\r\t\told[ name ] = elem.style[ name ];\n\r\t\telem.style[ name ] = options[ name ];\n\r\t}\n\r\n\r\tret = callback.apply( elem, args || [] );\n\r\n\r\t// Revert the old values\n\r\tfor ( name in options ) {\n\r\t\telem.style[ name ] = old[ name ];\n\r\t}\n\r\n\r\treturn ret;\n\r};\n\r\n\r\n\r\n\r\n\rfunction adjustCSS( elem, prop, valueParts, tween ) {\n\r\tvar adjusted, scale,\n\r\t\tmaxIterations = 20,\n\r\t\tcurrentValue = tween ?\n\r\t\t\tfunction() {\n\r\t\t\t\treturn tween.cur();\n\r\t\t\t} :\n\r\t\t\tfunction() {\n\r\t\t\t\treturn jQuery.css( elem, prop, \"\" );\n\r\t\t\t},\n\r\t\tinitial = currentValue(),\n\r\t\tunit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\r\n\r\t\t// Starting value computation is required for potential unit mismatches\n\r\t\tinitialInUnit = elem.nodeType &&\n\r\t\t\t( jQuery.cssNumber[ prop ] || unit !== \"px\" && +initial ) &&\n\r\t\t\trcssNum.exec( jQuery.css( elem, prop ) );\n\r\n\r\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\n\r\n\r\t\t// Support: Firefox <=54\n\r\t\t// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n\r\t\tinitial = initial / 2;\n\r\n\r\t\t// Trust units reported by jQuery.css\n\r\t\tunit = unit || initialInUnit[ 3 ];\n\r\n\r\t\t// Iteratively approximate from a nonzero starting point\n\r\t\tinitialInUnit = +initial || 1;\n\r\n\r\t\twhile ( maxIterations-- ) {\n\r\n\r\t\t\t// Evaluate and update our best guess (doubling guesses that zero out).\n\r\t\t\t// Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n\r\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\r\t\t\tif ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {\n\r\t\t\t\tmaxIterations = 0;\n\r\t\t\t}\n\r\t\t\tinitialInUnit = initialInUnit / scale;\n\r\n\r\t\t}\n\r\n\r\t\tinitialInUnit = initialInUnit * 2;\n\r\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\r\n\r\t\t// Make sure we update the tween properties later on\n\r\t\tvalueParts = valueParts || [];\n\r\t}\n\r\n\r\tif ( valueParts ) {\n\r\t\tinitialInUnit = +initialInUnit || +initial || 0;\n\r\n\r\t\t// Apply relative offset (+=/-=) if specified\n\r\t\tadjusted = valueParts[ 1 ] ?\n\r\t\t\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\n\r\t\t\t+valueParts[ 2 ];\n\r\t\tif ( tween ) {\n\r\t\t\ttween.unit = unit;\n\r\t\t\ttween.start = initialInUnit;\n\r\t\t\ttween.end = adjusted;\n\r\t\t}\n\r\t}\n\r\treturn adjusted;\n\r}\n\r\n\r\n\rvar defaultDisplayMap = {};\n\r\n\rfunction getDefaultDisplay( elem ) {\n\r\tvar temp,\n\r\t\tdoc = elem.ownerDocument,\n\r\t\tnodeName = elem.nodeName,\n\r\t\tdisplay = defaultDisplayMap[ nodeName ];\n\r\n\r\tif ( display ) {\n\r\t\treturn display;\n\r\t}\n\r\n\r\ttemp = doc.body.appendChild( doc.createElement( nodeName ) );\n\r\tdisplay = jQuery.css( temp, \"display\" );\n\r\n\r\ttemp.parentNode.removeChild( temp );\n\r\n\r\tif ( display === \"none\" ) {\n\r\t\tdisplay = \"block\";\n\r\t}\n\r\tdefaultDisplayMap[ nodeName ] = display;\n\r\n\r\treturn display;\n\r}\n\r\n\rfunction showHide( elements, show ) {\n\r\tvar display, elem,\n\r\t\tvalues = [],\n\r\t\tindex = 0,\n\r\t\tlength = elements.length;\n\r\n\r\t// Determine new display value for elements that need to change\n\r\tfor ( ; index < length; index++ ) {\n\r\t\telem = elements[ index ];\n\r\t\tif ( !elem.style ) {\n\r\t\t\tcontinue;\n\r\t\t}\n\r\n\r\t\tdisplay = elem.style.display;\n\r\t\tif ( show ) {\n\r\n\r\t\t\t// Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n\r\t\t\t// check is required in this first loop unless we have a nonempty display value (either\n\r\t\t\t// inline or about-to-be-restored)\n\r\t\t\tif ( display === \"none\" ) {\n\r\t\t\t\tvalues[ index ] = dataPriv.get( elem, \"display\" ) || null;\n\r\t\t\t\tif ( !values[ index ] ) {\n\r\t\t\t\t\telem.style.display = \"\";\n\r\t\t\t\t}\n\r\t\t\t}\n\r\t\t\tif ( elem.style.display === \"\" && isHiddenWithinTree( elem ) ) {\n\r\t\t\t\tvalues[ index ] = getDefaultDisplay( elem );\n\r\t\t\t}\n\r\t\t} else {\n\r\t\t\tif ( display !== \"none\" ) {\n\r\t\t\t\tvalues[ index ] = \"none\";\n\r\n\r\t\t\t\t// Remember what we're overwriting\n\r\t\t\t\tdataPriv.set( elem, \"display\", display );\n\r\t\t\t}\n\r\t\t}\n\r\t}\n\r\n\r\t// Set the display of the elements in a second loop to avoid constant reflow\n\r\tfor ( index = 0; index < length; index++ ) {\n\r\t\tif ( values[ index ] != null ) {\n\r\t\t\telements[ index ].style.display = values[ index ];\n\r\t\t}\n\r\t}\n\r\n\r\treturn elements;\n\r}\n\r\n\rjQuery.fn.extend( {\n\r\tshow: function() {\n\r\t\treturn showHide( this, true );\n\r\t},\n\r\thide: function() {\n\r\t\treturn showHide( this );\n\r\t},\n\r\ttoggle: function( state ) {\n\r\t\tif ( typeof state === \"boolean\" ) {\n\r\t\t\treturn state ? this.show() : this.hide();\n\r\t\t}\n\r\n\r\t\treturn this.each( function() {\n\r\t\t\tif ( isHiddenWithinTree( this ) ) {\n\r\t\t\t\tjQuery( this ).show();\n\r\t\t\t} else {\n\r\t\t\t\tjQuery( this ).hide();\n\r\t\t\t}\n\r\t\t} );\n\r\t}\n\r} );\n\rvar rcheckableType = ( /^(?:checkbox|radio)$/i );\n\r\n\rvar rtagName = ( /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i );\n\r\n\rvar rscriptType = ( /^$|^module$|\\/(?:java|ecma)script/i );\n\r\n\r\n\r\n\r// We have to close these tags to support XHTML (#13200)\n\rvar wrapMap = {\n\r\n\r\t// Support: IE <=9 only\n\r\toption: [ 1, \"\" ],\n\r\n\r\t// XHTML parsers do not magically insert elements in the\n\r\t// same way that tag soup parsers do. So we cannot shorten\n\r\t// this by omitting or other required elements.\n\r\tthead: [ 1, \"\", \"
\" ],\n\r\tcol: [ 2, \"\", \"
\" ],\n\r\ttr: [ 2, \"\", \"
\" ],\n\r\ttd: [ 3, \"\", \"
\" ],\n\r\n\r\t_default: [ 0, \"\", \"\" ]\n\r};\n\r\n\r// Support: IE <=9 only\n\rwrapMap.optgroup = wrapMap.option;\n\r\n\rwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\n\rwrapMap.th = wrapMap.td;\n\r\n\r\n\rfunction getAll( context, tag ) {\n\r\n\r\t// Support: IE <=9 - 11 only\n\r\t// Use typeof to avoid zero-argument method invocation on host objects (#15151)\n\r\tvar ret;\n\r\n\r\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\r\t\tret = context.getElementsByTagName( tag || \"*\" );\n\r\n\r\t} else if ( typeof context.querySelectorAll !== \"undefined\" ) {\n\r\t\tret = context.querySelectorAll( tag || \"*\" );\n\r\n\r\t} else {\n\r\t\tret = [];\n\r\t}\n\r\n\r\tif ( tag === undefined || tag && nodeName( context, tag ) ) {\n\r\t\treturn jQuery.merge( [ context ], ret );\n\r\t}\n\r\n\r\treturn ret;\n\r}\n\r\n\r\n\r// Mark scripts as having already been evaluated\n\rfunction setGlobalEval( elems, refElements ) {\n\r\tvar i = 0,\n\r\t\tl = elems.length;\n\r\n\r\tfor ( ; i < l; i++ ) {\n\r\t\tdataPriv.set(\n\r\t\t\telems[ i ],\n\r\t\t\t\"globalEval\",\n\r\t\t\t!refElements || dataPriv.get( refElements[ i ], \"globalEval\" )\n\r\t\t);\n\r\t}\n\r}\n\r\n\r\n\rvar rhtml = /<|&#?\\w+;/;\n\r\n\rfunction buildFragment( elems, context, scripts, selection, ignored ) {\n\r\tvar elem, tmp, tag, wrap, attached, j,\n\r\t\tfragment = context.createDocumentFragment(),\n\r\t\tnodes = [],\n\r\t\ti = 0,\n\r\t\tl = elems.length;\n\r\n\r\tfor ( ; i < l; i++ ) {\n\r\t\telem = elems[ i ];\n\r\n\r\t\tif ( elem || elem === 0 ) {\n\r\n\r\t\t\t// Add nodes directly\n\r\t\t\tif ( toType( elem ) === \"object\" ) {\n\r\n\r\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\r\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\r\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\r\n\r\t\t\t// Convert non-html into a text node\n\r\t\t\t} else if ( !rhtml.test( elem ) ) {\n\r\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\r\n\r\t\t\t// Convert html into DOM nodes\n\r\t\t\t} else {\n\r\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( \"div\" ) );\n\r\n\r\t\t\t\t// Deserialize a standard representation\n\r\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\r\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\r\t\t\t\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\n\r\n\r\t\t\t\t// Descend through wrappers to the right content\n\r\t\t\t\tj = wrap[ 0 ];\n\r\t\t\t\twhile ( j-- ) {\n\r\t\t\t\t\ttmp = tmp.lastChild;\n\r\t\t\t\t}\n\r\n\r\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\r\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\r\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\r\n\r\t\t\t\t// Remember the top-level container\n\r\t\t\t\ttmp = fragment.firstChild;\n\r\n\r\t\t\t\t// Ensure the created nodes are orphaned (#12392)\n\r\t\t\t\ttmp.textContent = \"\";\n\r\t\t\t}\n\r\t\t}\n\r\t}\n\r\n\r\t// Remove wrapper from fragment\n\r\tfragment.textContent = \"\";\n\r\n\r\ti = 0;\n\r\twhile ( ( elem = nodes[ i++ ] ) ) {\n\r\n\r\t\t// Skip elements already in the context collection (trac-4087)\n\r\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\r\t\t\tif ( ignored ) {\n\r\t\t\t\tignored.push( elem );\n\r\t\t\t}\n\r\t\t\tcontinue;\n\r\t\t}\n\r\n\r\t\tattached = isAttached( elem );\n\r\n\r\t\t// Append to fragment\n\r\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\r\n\r\t\t// Preserve script evaluation history\n\r\t\tif ( attached ) {\n\r\t\t\tsetGlobalEval( tmp );\n\r\t\t}\n\r\n\r\t\t// Capture executables\n\r\t\tif ( scripts ) {\n\r\t\t\tj = 0;\n\r\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\r\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\r\t\t\t\t\tscripts.push( elem );\n\r\t\t\t\t}\n\r\t\t\t}\n\r\t\t}\n\r\t}\n\r\n\r\treturn fragment;\n\r}\n\r\n\r\n\r( function() {\n\r\tvar fragment = document.createDocumentFragment(),\n\r\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\n\r\t\tinput = document.createElement( \"input\" );\n\r\n\r\t// Support: Android 4.0 - 4.3 only\n\r\t// Check state lost if the name is set (#11217)\n\r\t// Support: Windows Web Apps (WWA)\n\r\t// `name` and `type` must use .setAttribute for WWA (#14901)\n\r\tinput.setAttribute( \"type\", \"radio\" );\n\r\tinput.setAttribute( \"checked\", \"checked\" );\n\r\tinput.setAttribute( \"name\", \"t\" );\n\r\n\r\tdiv.appendChild( input );\n\r\n\r\t// Support: Android <=4.1 only\n\r\t// Older WebKit doesn't clone checked state correctly in fragments\n\r\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\r\n\r\t// Support: IE <=11 only\n\r\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\r\tdiv.innerHTML = \"\";\n\r\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n\r} )();\n\r\n\r\n\rvar\n\r\trkeyEvent = /^key/,\n\r\trmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,\n\r\trtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\r\n\rfunction returnTrue() {\n\r\treturn true;\n\r}\n\r\n\rfunction returnFalse() {\n\r\treturn false;\n\r}\n\r\n\r// Support: IE <=9 - 11+\n\r// focus() and blur() are asynchronous, except when they are no-op.\n\r// So expect focus to be synchronous when the element is already active,\n\r// and blur to be synchronous when the element is not already active.\n\r// (focus and blur are always synchronous in other supported browsers,\n\r// this just defines when we can count on it).\n\rfunction expectSync( elem, type ) {\n\r\treturn ( elem === safeActiveElement() ) === ( type === \"focus\" );\n\r}\n\r\n\r// Support: IE <=9 only\n\r// Accessing document.activeElement can throw unexpectedly\n\r// https://bugs.jquery.com/ticket/13393\n\rfunction safeActiveElement() {\n\r\ttry {\n\r\t\treturn document.activeElement;\n\r\t} catch ( err ) { }\n\r}\n\r\n\rfunction on( elem, types, selector, data, fn, one ) {\n\r\tvar origFn, type;\n\r\n\r\t// Types can be a map of types/handlers\n\r\tif ( typeof types === \"object\" ) {\n\r\n\r\t\t// ( types-Object, selector, data )\n\r\t\tif ( typeof selector !== \"string\" ) {\n\r\n\r\t\t\t// ( types-Object, data )\n\r\t\t\tdata = data || selector;\n\r\t\t\tselector = undefined;\n\r\t\t}\n\r\t\tfor ( type in types ) {\n\r\t\t\ton( elem, type, selector, data, types[ type ], one );\n\r\t\t}\n\r\t\treturn elem;\n\r\t}\n\r\n\r\tif ( data == null && fn == null ) {\n\r\n\r\t\t// ( types, fn )\n\r\t\tfn = selector;\n\r\t\tdata = selector = undefined;\n\r\t} else if ( fn == null ) {\n\r\t\tif ( typeof selector === \"string\" ) {\n\r\n\r\t\t\t// ( types, selector, fn )\n\r\t\t\tfn = data;\n\r\t\t\tdata = undefined;\n\r\t\t} else {\n\r\n\r\t\t\t// ( types, data, fn )\n\r\t\t\tfn = data;\n\r\t\t\tdata = selector;\n\r\t\t\tselector = undefined;\n\r\t\t}\n\r\t}\n\r\tif ( fn === false ) {\n\r\t\tfn = returnFalse;\n\r\t} else if ( !fn ) {\n\r\t\treturn elem;\n\r\t}\n\r\n\r\tif ( one === 1 ) {\n\r\t\torigFn = fn;\n\r\t\tfn = function( event ) {\n\r\n\r\t\t\t// Can use an empty set, since event contains the info\n\r\t\t\tjQuery().off( event );\n\r\t\t\treturn origFn.apply( this, arguments );\n\r\t\t};\n\r\n\r\t\t// Use same guid so caller can remove using origFn\n\r\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\r\t}\n\r\treturn elem.each( function() {\n\r\t\tjQuery.event.add( this, types, fn, data, selector );\n\r\t} );\n\r}\n\r\n\r/*\n\r * Helper functions for managing events -- not part of the public interface.\n\r * Props to Dean Edwards' addEvent library for many of the ideas.\n\r */\n\rjQuery.event = {\n\r\n\r\tglobal: {},\n\r\n\r\tadd: function( elem, types, handler, data, selector ) {\n\r\n\r\t\tvar handleObjIn, eventHandle, tmp,\n\r\t\t\tevents, t, handleObj,\n\r\t\t\tspecial, handlers, type, namespaces, origType,\n\r\t\t\telemData = dataPriv.get( elem );\n\r\n\r\t\t// Don't attach events to noData or text/comment nodes (but allow plain objects)\n\r\t\tif ( !elemData ) {\n\r\t\t\treturn;\n\r\t\t}\n\r\n\r\t\t// Caller can pass in an object of custom data in lieu of the handler\n\r\t\tif ( handler.handler ) {\n\r\t\t\thandleObjIn = handler;\n\r\t\t\thandler = handleObjIn.handler;\n\r\t\t\tselector = handleObjIn.selector;\n\r\t\t}\n\r\n\r\t\t// Ensure that invalid selectors throw exceptions at attach time\n\r\t\t// Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\r\t\tif ( selector ) {\n\r\t\t\tjQuery.find.matchesSelector( documentElement, selector );\n\r\t\t}\n\r\n\r\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\r\t\tif ( !handler.guid ) {\n\r\t\t\thandler.guid = jQuery.guid++;\n\r\t\t}\n\r\n\r\t\t// Init the element's event structure and main handler, if this is the first\n\r\t\tif ( !( events = elemData.events ) ) {\n\r\t\t\tevents = elemData.events = {};\n\r\t\t}\n\r\t\tif ( !( eventHandle = elemData.handle ) ) {\n\r\t\t\teventHandle = elemData.handle = function( e ) {\n\r\n\r\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\r\t\t\t\t// when an event is called after a page has unloaded\n\r\t\t\t\treturn typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ?\n\r\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\r\t\t\t};\n\r\t\t}\n\r\n\r\t\t// Handle multiple events separated by a space\n\r\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\r\t\tt = types.length;\n\r\t\twhile ( t-- ) {\n\r\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\r\t\t\ttype = origType = tmp[ 1 ];\n\r\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\r\n\r\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\r\t\t\tif ( !type ) {\n\r\t\t\t\tcontinue;\n\r\t\t\t}\n\r\n\r\t\t\t// If event changes its type, use the special event handlers for the changed type\n\r\t\t\tspecial = jQuery.event.special[ type ] || {};\n\r\n\r\t\t\t// If selector defined, determine special event api type, otherwise given type\n\r\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\r\n\r\t\t\t// Update special based on newly reset type\n\r\t\t\tspecial = jQuery.event.special[ type ] || {};\n\r\n\r\t\t\t// handleObj is passed to all event handlers\n\r\t\t\thandleObj = jQuery.extend( {\n\r\t\t\t\ttype: type,\n\r\t\t\t\torigType: origType,\n\r\t\t\t\tdata: data,\n\r\t\t\t\thandler: handler,\n\r\t\t\t\tguid: handler.guid,\n\r\t\t\t\tselector: selector,\n\r\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\r\t\t\t\tnamespace: namespaces.join( \".\" )\n\r\t\t\t}, handleObjIn );\n\r\n\r\t\t\t// Init the event handler queue if we're the first\n\r\t\t\tif ( !( handlers = events[ type ] ) ) {\n\r\t\t\t\thandlers = events[ type ] = [];\n\r\t\t\t\thandlers.delegateCount = 0;\n\r\n\r\t\t\t\t// Only use addEventListener if the special events handler returns false\n\r\t\t\t\tif ( !special.setup ||\n\r\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\r\n\r\t\t\t\t\tif ( elem.addEventListener ) {\n\r\t\t\t\t\t\telem.addEventListener( type, eventHandle );\n\r\t\t\t\t\t}\n\r\t\t\t\t}\n\r\t\t\t}\n\r\n\r\t\t\tif ( special.add ) {\n\r\t\t\t\tspecial.add.call( elem, handleObj );\n\r\n\r\t\t\t\tif ( !handleObj.handler.guid ) {\n\r\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\r\t\t\t\t}\n\r\t\t\t}\n\r\n\r\t\t\t// Add to the element's handler list, delegates in front\n\r\t\t\tif ( selector ) {\n\r\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\r\t\t\t} else {\n\r\t\t\t\thandlers.push( handleObj );\n\r\t\t\t}\n\r\n\r\t\t\t// Keep track of which events have ever been used, for event optimization\n\r\t\t\tjQuery.event.global[ type ] = true;\n\r\t\t}\n\r\n\r\t},\n\r\n\r\t// Detach an event or set of events from an element\n\r\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\r\n\r\t\tvar j, origCount, tmp,\n\r\t\t\tevents, t, handleObj,\n\r\t\t\tspecial, handlers, type, namespaces, origType,\n\r\t\t\telemData = dataPriv.hasData( elem ) && dataPriv.get( elem );\n\r\n\r\t\tif ( !elemData || !( events = elemData.events ) ) {\n\r\t\t\treturn;\n\r\t\t}\n\r\n\r\t\t// Once for each type.namespace in types; type may be omitted\n\r\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\r\t\tt = types.length;\n\r\t\twhile ( t-- ) {\n\r\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\r\t\t\ttype = origType = tmp[ 1 ];\n\r\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\r\n\r\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\r\t\t\tif ( !type ) {\n\r\t\t\t\tfor ( type in events ) {\n\r\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\r\t\t\t\t}\n\r\t\t\t\tcontinue;\n\r\t\t\t}\n\r\n\r\t\t\tspecial = jQuery.event.special[ type ] || {};\n\r\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\r\t\t\thandlers = events[ type ] || [];\n\r\t\t\ttmp = tmp[ 2 ] &&\n\r\t\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" );\n\r\n\r\t\t\t// Remove matching events\n\r\t\t\torigCount = j = handlers.length;\n\r\t\t\twhile ( j-- ) {\n\r\t\t\t\thandleObj = handlers[ j ];\n\r\n\r\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\r\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\r\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\r\t\t\t\t\t( !selector || selector === handleObj.selector ||\n\r\t\t\t\t\t\tselector === \"**\" && handleObj.selector ) ) {\n\r\t\t\t\t\thandlers.splice( j, 1 );\n\r\n\r\t\t\t\t\tif ( handleObj.selector ) {\n\r\t\t\t\t\t\thandlers.delegateCount--;\n\r\t\t\t\t\t}\n\r\t\t\t\t\tif ( special.remove ) {\n\r\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\r\t\t\t\t\t}\n\r\t\t\t\t}\n\r\t\t\t}\n\r\n\r\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\r\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\r\t\t\tif ( origCount && !handlers.length ) {\n\r\t\t\t\tif ( !special.teardown ||\n\r\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\r\n\r\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\r\t\t\t\t}\n\r\n\r\t\t\t\tdelete events[ type ];\n\r\t\t\t}\n\r\t\t}\n\r\n\r\t\t// Remove data and the expando if it's no longer used\n\r\t\tif ( jQuery.isEmptyObject( events ) ) {\n\r\t\t\tdataPriv.remove( elem, \"handle events\" );\n\r\t\t}\n\r\t},\n\r\n\r\tdispatch: function( nativeEvent ) {\n\r\n\r\t\t// Make a writable jQuery.Event from the native event object\n\r\t\tvar event = jQuery.event.fix( nativeEvent );\n\r\n\r\t\tvar i, j, ret, matched, handleObj, handlerQueue,\n\r\t\t\targs = new Array( arguments.length ),\n\r\t\t\thandlers = ( dataPriv.get( this, \"events\" ) || {} )[ event.type ] || [],\n\r\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\r\n\r\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\r\t\targs[ 0 ] = event;\n\r\n\r\t\tfor ( i = 1; i < arguments.length; i++ ) {\n\r\t\t\targs[ i ] = arguments[ i ];\n\r\t\t}\n\r\n\r\t\tevent.delegateTarget = this;\n\r\n\r\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\r\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\r\t\t\treturn;\n\r\t\t}\n\r\n\r\t\t// Determine handlers\n\r\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\r\n\r\t\t// Run delegates first; they may want to stop propagation beneath us\n\r\t\ti = 0;\n\r\t\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\n\r\t\t\tevent.currentTarget = matched.elem;\n\r\n\r\t\t\tj = 0;\n\r\t\t\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\n\r\t\t\t\t!event.isImmediatePropagationStopped() ) {\n\r\n\r\t\t\t\t// If the event is namespaced, then each handler is only invoked if it is\n\r\t\t\t\t// specially universal or its namespaces are a superset of the event's.\n\r\t\t\t\tif ( !event.rnamespace || handleObj.namespace === false ||\n\r\t\t\t\t\tevent.rnamespace.test( handleObj.namespace ) ) {\n\r\n\r\t\t\t\t\tevent.handleObj = handleObj;\n\r\t\t\t\t\tevent.data = handleObj.data;\n\r\n\r\t\t\t\t\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\n\r\t\t\t\t\t\thandleObj.handler ).apply( matched.elem, args );\n\r\n\r\t\t\t\t\tif ( ret !== undefined ) {\n\r\t\t\t\t\t\tif ( ( event.result = ret ) === false ) {\n\r\t\t\t\t\t\t\tevent.preventDefault();\n\r\t\t\t\t\t\t\tevent.stopPropagation();\n\r\t\t\t\t\t\t}\n\r\t\t\t\t\t}\n\r\t\t\t\t}\n\r\t\t\t}\n\r\t\t}\n\r\n\r\t\t// Call the postDispatch hook for the mapped type\n\r\t\tif ( special.postDispatch ) {\n\r\t\t\tspecial.postDispatch.call( this, event );\n\r\t\t}\n\r\n\r\t\treturn event.result;\n\r\t},\n\r\n\r\thandlers: function( event, handlers ) {\n\r\t\tvar i, handleObj, sel, matchedHandlers, matchedSelectors,\n\r\t\t\thandlerQueue = [],\n\r\t\t\tdelegateCount = handlers.delegateCount,\n\r\t\t\tcur = event.target;\n\r\n\r\t\t// Find delegate handlers\n\r\t\tif ( delegateCount &&\n\r\n\r\t\t\t// Support: IE <=9\n\r\t\t\t// Black-hole SVG instance trees (trac-13180)\n\r\t\t\tcur.nodeType &&\n\r\n\r\t\t\t// Support: Firefox <=42\n\r\t\t\t// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n\r\t\t\t// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n\r\t\t\t// Support: IE 11 only\n\r\t\t\t// ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n\r\t\t\t!( event.type === \"click\" && event.button >= 1 ) ) {\n\r\n\r\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\r\n\r\t\t\t\t// Don't check non-elements (#13208)\n\r\t\t\t\t// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n\r\t\t\t\tif ( cur.nodeType === 1 && !( event.type === \"click\" && cur.disabled === true ) ) {\n\r\t\t\t\t\tmatchedHandlers = [];\n\r\t\t\t\t\tmatchedSelectors = {};\n\r\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\r\t\t\t\t\t\thandleObj = handlers[ i ];\n\r\n\r\t\t\t\t\t\t// Don't conflict with Object.prototype properties (#13203)\n\r\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\r\n\r\t\t\t\t\t\tif ( matchedSelectors[ sel ] === undefined ) {\n\r\t\t\t\t\t\t\tmatchedSelectors[ sel ] = handleObj.needsContext ?\n\r\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\n\r\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\r\t\t\t\t\t\t}\n\r\t\t\t\t\t\tif ( matchedSelectors[ sel ] ) {\n\r\t\t\t\t\t\t\tmatchedHandlers.push( handleObj );\n\r\t\t\t\t\t\t}\n\r\t\t\t\t\t}\n\r\t\t\t\t\tif ( matchedHandlers.length ) {\n\r\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matchedHandlers } );\n\r\t\t\t\t\t}\n\r\t\t\t\t}\n\r\t\t\t}\n\r\t\t}\n\r\n\r\t\t// Add the remaining (directly-bound) handlers\n\r\t\tcur = this;\n\r\t\tif ( delegateCount < handlers.length ) {\n\r\t\t\thandlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );\n\r\t\t}\n\r\n\r\t\treturn handlerQueue;\n\r\t},\n\r\n\r\taddProp: function( name, hook ) {\n\r\t\tObject.defineProperty( jQuery.Event.prototype, name, {\n\r\t\t\tenumerable: true,\n\r\t\t\tconfigurable: true,\n\r\n\r\t\t\tget: isFunction( hook ) ?\n\r\t\t\t\tfunction() {\n\r\t\t\t\t\tif ( this.originalEvent ) {\n\r\t\t\t\t\t\t\treturn hook( this.originalEvent );\n\r\t\t\t\t\t}\n\r\t\t\t\t} :\n\r\t\t\t\tfunction() {\n\r\t\t\t\t\tif ( this.originalEvent ) {\n\r\t\t\t\t\t\t\treturn this.originalEvent[ name ];\n\r\t\t\t\t\t}\n\r\t\t\t\t},\n\r\n\r\t\t\tset: function( value ) {\n\r\t\t\t\tObject.defineProperty( this, name, {\n\r\t\t\t\t\tenumerable: true,\n\r\t\t\t\t\tconfigurable: true,\n\r\t\t\t\t\twritable: true,\n\r\t\t\t\t\tvalue: value\n\r\t\t\t\t} );\n\r\t\t\t}\n\r\t\t} );\n\r\t},\n\r\n\r\tfix: function( originalEvent ) {\n\r\t\treturn originalEvent[ jQuery.expando ] ?\n\r\t\t\toriginalEvent :\n\r\t\t\tnew jQuery.Event( originalEvent );\n\r\t},\n\r\n\r\tspecial: {\n\r\t\tload: {\n\r\n\r\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\r\t\t\tnoBubble: true\n\r\t\t},\n\r\t\tclick: {\n\r\n\r\t\t\t// Utilize native event to ensure correct state for checkable inputs\n\r\t\t\tsetup: function( data ) {\n\r\n\r\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\r\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\r\t\t\t\tvar el = this || data;\n\r\n\r\t\t\t\t// Claim the first handler\n\r\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\r\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\r\n\r\t\t\t\t\t// dataPriv.set( el, \"click\", ... )\n\r\t\t\t\t\tleverageNative( el, \"click\", returnTrue );\n\r\t\t\t\t}\n\r\n\r\t\t\t\t// Return false to allow normal processing in the caller\n\r\t\t\t\treturn false;\n\r\t\t\t},\n\r\t\t\ttrigger: function( data ) {\n\r\n\r\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\r\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\r\t\t\t\tvar el = this || data;\n\r\n\r\t\t\t\t// Force setup before triggering a click\n\r\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\r\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\r\n\r\t\t\t\t\tleverageNative( el, \"click\" );\n\r\t\t\t\t}\n\r\n\r\t\t\t\t// Return non-false to allow normal event-path propagation\n\r\t\t\t\treturn true;\n\r\t\t\t},\n\r\n\r\t\t\t// For cross-browser consistency, suppress native .click() on links\n\r\t\t\t// Also prevent it if we're currently inside a leveraged native-event stack\n\r\t\t\t_default: function( event ) {\n\r\t\t\t\tvar target = event.target;\n\r\t\t\t\treturn rcheckableType.test( target.type ) &&\n\r\t\t\t\t\ttarget.click && nodeName( target, \"input\" ) &&\n\r\t\t\t\t\tdataPriv.get( target, \"click\" ) ||\n\r\t\t\t\t\tnodeName( target, \"a\" );\n\r\t\t\t}\n\r\t\t},\n\r\n\r\t\tbeforeunload: {\n\r\t\t\tpostDispatch: function( event ) {\n\r\n\r\t\t\t\t// Support: Firefox 20+\n\r\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\r\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\r\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\r\t\t\t\t}\n\r\t\t\t}\n\r\t\t}\n\r\t}\n\r};\n\r\n\r// Ensure the presence of an event listener that handles manually-triggered\n\r// synthetic events by interrupting progress until reinvoked in response to\n\r// *native* events that it fires directly, ensuring that state changes have\n\r// already occurred before other listeners are invoked.\n\rfunction leverageNative( el, type, expectSync ) {\n\r\n\r\t// Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add\n\r\tif ( !expectSync ) {\n\r\t\tif ( dataPriv.get( el, type ) === undefined ) {\n\r\t\t\tjQuery.event.add( el, type, returnTrue );\n\r\t\t}\n\r\t\treturn;\n\r\t}\n\r\n\r\t// Register the controller as a special universal handler for all event namespaces\n\r\tdataPriv.set( el, type, false );\n\r\tjQuery.event.add( el, type, {\n\r\t\tnamespace: false,\n\r\t\thandler: function( event ) {\n\r\t\t\tvar notAsync, result,\n\r\t\t\t\tsaved = dataPriv.get( this, type );\n\r\n\r\t\t\tif ( ( event.isTrigger & 1 ) && this[ type ] ) {\n\r\n\r\t\t\t\t// Interrupt processing of the outer synthetic .trigger()ed event\n\r\t\t\t\t// Saved data should be false in such cases, but might be a leftover capture object\n\r\t\t\t\t// from an async native handler (gh-4350)\n\r\t\t\t\tif ( !saved.length ) {\n\r\n\r\t\t\t\t\t// Store arguments for use when handling the inner native event\n\r\t\t\t\t\t// There will always be at least one argument (an event object), so this array\n\r\t\t\t\t\t// will not be confused with a leftover capture object.\n\r\t\t\t\t\tsaved = slice.call( arguments );\n\r\t\t\t\t\tdataPriv.set( this, type, saved );\n\r\n\r\t\t\t\t\t// Trigger the native event and capture its result\n\r\t\t\t\t\t// Support: IE <=9 - 11+\n\r\t\t\t\t\t// focus() and blur() are asynchronous\n\r\t\t\t\t\tnotAsync = expectSync( this, type );\n\r\t\t\t\t\tthis[ type ]();\n\r\t\t\t\t\tresult = dataPriv.get( this, type );\n\r\t\t\t\t\tif ( saved !== result || notAsync ) {\n\r\t\t\t\t\t\tdataPriv.set( this, type, false );\n\r\t\t\t\t\t} else {\n\r\t\t\t\t\t\tresult = {};\n\r\t\t\t\t\t}\n\r\t\t\t\t\tif ( saved !== result ) {\n\r\n\r\t\t\t\t\t\t// Cancel the outer synthetic event\n\r\t\t\t\t\t\tevent.stopImmediatePropagation();\n\r\t\t\t\t\t\tevent.preventDefault();\n\r\t\t\t\t\t\treturn result.value;\n\r\t\t\t\t\t}\n\r\n\r\t\t\t\t// If this is an inner synthetic event for an event with a bubbling surrogate\n\r\t\t\t\t// (focus or blur), assume that the surrogate already propagated from triggering the\n\r\t\t\t\t// native event and prevent that from happening again here.\n\r\t\t\t\t// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n\r\t\t\t\t// bubbling surrogate propagates *after* the non-bubbling base), but that seems\n\r\t\t\t\t// less bad than duplication.\n\r\t\t\t\t} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {\n\r\t\t\t\t\tevent.stopPropagation();\n\r\t\t\t\t}\n\r\n\r\t\t\t// If this is a native event triggered above, everything is now in order\n\r\t\t\t// Fire an inner synthetic event with the original arguments\n\r\t\t\t} else if ( saved.length ) {\n\r\n\r\t\t\t\t// ...and capture the result\n\r\t\t\t\tdataPriv.set( this, type, {\n\r\t\t\t\t\tvalue: jQuery.event.trigger(\n\r\n\r\t\t\t\t\t\t// Support: IE <=9 - 11+\n\r\t\t\t\t\t\t// Extend with the prototype to reset the above stopImmediatePropagation()\n\r\t\t\t\t\t\tjQuery.extend( saved[ 0 ], jQuery.Event.prototype ),\n\r\t\t\t\t\t\tsaved.slice( 1 ),\n\r\t\t\t\t\t\tthis\n\r\t\t\t\t\t)\n\r\t\t\t\t} );\n\r\n\r\t\t\t\t// Abort handling of the native event\n\r\t\t\t\tevent.stopImmediatePropagation();\n\r\t\t\t}\n\r\t\t}\n\r\t} );\n\r}\n\r\n\rjQuery.removeEvent = function( elem, type, handle ) {\n\r\n\r\t// This \"if\" is needed for plain objects\n\r\tif ( elem.removeEventListener ) {\n\r\t\telem.removeEventListener( type, handle );\n\r\t}\n\r};\n\r\n\rjQuery.Event = function( src, props ) {\n\r\n\r\t// Allow instantiation without the 'new' keyword\n\r\tif ( !( this instanceof jQuery.Event ) ) {\n\r\t\treturn new jQuery.Event( src, props );\n\r\t}\n\r\n\r\t// Event object\n\r\tif ( src && src.type ) {\n\r\t\tthis.originalEvent = src;\n\r\t\tthis.type = src.type;\n\r\n\r\t\t// Events bubbling up the document may have been marked as prevented\n\r\t\t// by a handler lower down the tree; reflect the correct value.\n\r\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\r\t\t\t\tsrc.defaultPrevented === undefined &&\n\r\n\r\t\t\t\t// Support: Android <=2.3 only\n\r\t\t\t\tsrc.returnValue === false ?\n\r\t\t\treturnTrue :\n\r\t\t\treturnFalse;\n\r\n\r\t\t// Create target properties\n\r\t\t// Support: Safari <=6 - 7 only\n\r\t\t// Target should not be a text node (#504, #13143)\n\r\t\tthis.target = ( src.target && src.target.nodeType === 3 ) ?\n\r\t\t\tsrc.target.parentNode :\n\r\t\t\tsrc.target;\n\r\n\r\t\tthis.currentTarget = src.currentTarget;\n\r\t\tthis.relatedTarget = src.relatedTarget;\n\r\n\r\t// Event type\n\r\t} else {\n\r\t\tthis.type = src;\n\r\t}\n\r\n\r\t// Put explicitly provided properties onto the event object\n\r\tif ( props ) {\n\r\t\tjQuery.extend( this, props );\n\r\t}\n\r\n\r\t// Create a timestamp if incoming event doesn't have one\n\r\tthis.timeStamp = src && src.timeStamp || Date.now();\n\r\n\r\t// Mark it as fixed\n\r\tthis[ jQuery.expando ] = true;\n\r};\n\r\n\r// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n\r// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\n\rjQuery.Event.prototype = {\n\r\tconstructor: jQuery.Event,\n\r\tisDefaultPrevented: returnFalse,\n\r\tisPropagationStopped: returnFalse,\n\r\tisImmediatePropagationStopped: returnFalse,\n\r\tisSimulated: false,\n\r\n\r\tpreventDefault: function() {\n\r\t\tvar e = this.originalEvent;\n\r\n\r\t\tthis.isDefaultPrevented = returnTrue;\n\r\n\r\t\tif ( e && !this.isSimulated ) {\n\r\t\t\te.preventDefault();\n\r\t\t}\n\r\t},\n\r\tstopPropagation: function() {\n\r\t\tvar e = this.originalEvent;\n\r\n\r\t\tthis.isPropagationStopped = returnTrue;\n\r\n\r\t\tif ( e && !this.isSimulated ) {\n\r\t\t\te.stopPropagation();\n\r\t\t}\n\r\t},\n\r\tstopImmediatePropagation: function() {\n\r\t\tvar e = this.originalEvent;\n\r\n\r\t\tthis.isImmediatePropagationStopped = returnTrue;\n\r\n\r\t\tif ( e && !this.isSimulated ) {\n\r\t\t\te.stopImmediatePropagation();\n\r\t\t}\n\r\n\r\t\tthis.stopPropagation();\n\r\t}\n\r};\n\r\n\r// Includes all common event props including KeyEvent and MouseEvent specific props\n\rjQuery.each( {\n\r\taltKey: true,\n\r\tbubbles: true,\n\r\tcancelable: true,\n\r\tchangedTouches: true,\n\r\tctrlKey: true,\n\r\tdetail: true,\n\r\teventPhase: true,\n\r\tmetaKey: true,\n\r\tpageX: true,\n\r\tpageY: true,\n\r\tshiftKey: true,\n\r\tview: true,\n\r\t\"char\": true,\n\r\tcode: true,\n\r\tcharCode: true,\n\r\tkey: true,\n\r\tkeyCode: true,\n\r\tbutton: true,\n\r\tbuttons: true,\n\r\tclientX: true,\n\r\tclientY: true,\n\r\toffsetX: true,\n\r\toffsetY: true,\n\r\tpointerId: true,\n\r\tpointerType: true,\n\r\tscreenX: true,\n\r\tscreenY: true,\n\r\ttargetTouches: true,\n\r\ttoElement: true,\n\r\ttouches: true,\n\r\n\r\twhich: function( event ) {\n\r\t\tvar button = event.button;\n\r\n\r\t\t// Add which for key events\n\r\t\tif ( event.which == null && rkeyEvent.test( event.type ) ) {\n\r\t\t\treturn event.charCode != null ? event.charCode : event.keyCode;\n\r\t\t}\n\r\n\r\t\t// Add which for click: 1 === left; 2 === middle; 3 === right\n\r\t\tif ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) {\n\r\t\t\tif ( button & 1 ) {\n\r\t\t\t\treturn 1;\n\r\t\t\t}\n\r\n\r\t\t\tif ( button & 2 ) {\n\r\t\t\t\treturn 3;\n\r\t\t\t}\n\r\n\r\t\t\tif ( button & 4 ) {\n\r\t\t\t\treturn 2;\n\r\t\t\t}\n\r\n\r\t\t\treturn 0;\n\r\t\t}\n\r\n\r\t\treturn event.which;\n\r\t}\n\r}, jQuery.event.addProp );\n\r\n\rjQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( type, delegateType ) {\n\r\tjQuery.event.special[ type ] = {\n\r\n\r\t\t// Utilize native event if possible so blur/focus sequence is correct\n\r\t\tsetup: function() {\n\r\n\r\t\t\t// Claim the first handler\n\r\t\t\t// dataPriv.set( this, \"focus\", ... )\n\r\t\t\t// dataPriv.set( this, \"blur\", ... )\n\r\t\t\tleverageNative( this, type, expectSync );\n\r\n\r\t\t\t// Return false to allow normal processing in the caller\n\r\t\t\treturn false;\n\r\t\t},\n\r\t\ttrigger: function() {\n\r\n\r\t\t\t// Force setup before trigger\n\r\t\t\tleverageNative( this, type );\n\r\n\r\t\t\t// Return non-false to allow normal event-path propagation\n\r\t\t\treturn true;\n\r\t\t},\n\r\n\r\t\tdelegateType: delegateType\n\r\t};\n\r} );\n\r\n\r// Create mouseenter/leave events using mouseover/out and event-time checks\n\r// so that event delegation works in jQuery.\n\r// Do the same for pointerenter/pointerleave and pointerover/pointerout\n\r//\n\r// Support: Safari 7 only\n\r// Safari sends mouseenter too often; see:\n\r// https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n\r// for the description of the bug (it existed in older Chrome versions as well).\n\rjQuery.each( {\n\r\tmouseenter: \"mouseover\",\n\r\tmouseleave: \"mouseout\",\n\r\tpointerenter: \"pointerover\",\n\r\tpointerleave: \"pointerout\"\n\r}, function( orig, fix ) {\n\r\tjQuery.event.special[ orig ] = {\n\r\t\tdelegateType: fix,\n\r\t\tbindType: fix,\n\r\n\r\t\thandle: function( event ) {\n\r\t\t\tvar ret,\n\r\t\t\t\ttarget = this,\n\r\t\t\t\trelated = event.relatedTarget,\n\r\t\t\t\thandleObj = event.handleObj;\n\r\n\r\t\t\t// For mouseenter/leave call the handler if related is outside the target.\n\r\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\r\t\t\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\n\r\t\t\t\tevent.type = handleObj.origType;\n\r\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\r\t\t\t\tevent.type = fix;\n\r\t\t\t}\n\r\t\t\treturn ret;\n\r\t\t}\n\r\t};\n\r} );\n\r\n\rjQuery.fn.extend( {\n\r\n\r\ton: function( types, selector, data, fn ) {\n\r\t\treturn on( this, types, selector, data, fn );\n\r\t},\n\r\tone: function( types, selector, data, fn ) {\n\r\t\treturn on( this, types, selector, data, fn, 1 );\n\r\t},\n\r\toff: function( types, selector, fn ) {\n\r\t\tvar handleObj, type;\n\r\t\tif ( types && types.preventDefault && types.handleObj ) {\n\r\n\r\t\t\t// ( event ) dispatched jQuery.Event\n\r\t\t\thandleObj = types.handleObj;\n\r\t\t\tjQuery( types.delegateTarget ).off(\n\r\t\t\t\thandleObj.namespace ?\n\r\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\n\r\t\t\t\t\thandleObj.origType,\n\r\t\t\t\thandleObj.selector,\n\r\t\t\t\thandleObj.handler\n\r\t\t\t);\n\r\t\t\treturn this;\n\r\t\t}\n\r\t\tif ( typeof types === \"object\" ) {\n\r\n\r\t\t\t// ( types-object [, selector] )\n\r\t\t\tfor ( type in types ) {\n\r\t\t\t\tthis.off( type, selector, types[ type ] );\n\r\t\t\t}\n\r\t\t\treturn this;\n\r\t\t}\n\r\t\tif ( selector === false || typeof selector === \"function\" ) {\n\r\n\r\t\t\t// ( types [, fn] )\n\r\t\t\tfn = selector;\n\r\t\t\tselector = undefined;\n\r\t\t}\n\r\t\tif ( fn === false ) {\n\r\t\t\tfn = returnFalse;\n\r\t\t}\n\r\t\treturn this.each( function() {\n\r\t\t\tjQuery.event.remove( this, types, fn, selector );\n\r\t\t} );\n\r\t}\n\r} );\n\r\n\r\n\rvar\n\r\n\r\t/* eslint-disable max-len */\n\r\n\r\t// See https://github.com/eslint/eslint/issues/3229\n\r\trxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)[^>]*)\\/>/gi,\n\r\n\r\t/* eslint-enable */\n\r\n\r\t// Support: IE <=10 - 11, Edge 12 - 13 only\n\r\t// In IE/Edge using regex groups here causes severe slowdowns.\n\r\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\n\r\trnoInnerhtml = /\\s*$/g;\n\r\n\r// Prefer a tbody over its parent table for containing new rows\n\rfunction manipulationTarget( elem, content ) {\n\r\tif ( nodeName( elem, \"table\" ) &&\n\r\t\tnodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ) {\n\r\n\r\t\treturn jQuery( elem ).children( \"tbody\" )[ 0 ] || elem;\n\r\t}\n\r\n\r\treturn elem;\n\r}\n\r\n\r// Replace/restore the type attribute of script elements for safe DOM manipulation\n\rfunction disableScript( elem ) {\n\r\telem.type = ( elem.getAttribute( \"type\" ) !== null ) + \"/\" + elem.type;\n\r\treturn elem;\n\r}\n\rfunction restoreScript( elem ) {\n\r\tif ( ( elem.type || \"\" ).slice( 0, 5 ) === \"true/\" ) {\n\r\t\telem.type = elem.type.slice( 5 );\n\r\t} else {\n\r\t\telem.removeAttribute( \"type\" );\n\r\t}\n\r\n\r\treturn elem;\n\r}\n\r\n\rfunction cloneCopyEvent( src, dest ) {\n\r\tvar i, l, type, pdataOld, pdataCur, udataOld, udataCur, events;\n\r\n\r\tif ( dest.nodeType !== 1 ) {\n\r\t\treturn;\n\r\t}\n\r\n\r\t// 1. Copy private data: events, handlers, etc.\n\r\tif ( dataPriv.hasData( src ) ) {\n\r\t\tpdataOld = dataPriv.access( src );\n\r\t\tpdataCur = dataPriv.set( dest, pdataOld );\n\r\t\tevents = pdataOld.events;\n\r\n\r\t\tif ( events ) {\n\r\t\t\tdelete pdataCur.handle;\n\r\t\t\tpdataCur.events = {};\n\r\n\r\t\t\tfor ( type in events ) {\n\r\t\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\r\t\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\r\t\t\t\t}\n\r\t\t\t}\n\r\t\t}\n\r\t}\n\r\n\r\t// 2. Copy user data\n\r\tif ( dataUser.hasData( src ) ) {\n\r\t\tudataOld = dataUser.access( src );\n\r\t\tudataCur = jQuery.extend( {}, udataOld );\n\r\n\r\t\tdataUser.set( dest, udataCur );\n\r\t}\n\r}\n\r\n\r// Fix IE bugs, see support tests\n\rfunction fixInput( src, dest ) {\n\r\tvar nodeName = dest.nodeName.toLowerCase();\n\r\n\r\t// Fails to persist the checked state of a cloned checkbox or radio button.\n\r\tif ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\r\t\tdest.checked = src.checked;\n\r\n\r\t// Fails to return the selected option to the default selected state when cloning options\n\r\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\r\t\tdest.defaultValue = src.defaultValue;\n\r\t}\n\r}\n\r\n\rfunction domManip( collection, args, callback, ignored ) {\n\r\n\r\t// Flatten any nested arrays\n\r\targs = concat.apply( [], args );\n\r\n\r\tvar fragment, first, scripts, hasScripts, node, doc,\n\r\t\ti = 0,\n\r\t\tl = collection.length,\n\r\t\tiNoClone = l - 1,\n\r\t\tvalue = args[ 0 ],\n\r\t\tvalueIsFunction = isFunction( value );\n\r\n\r\t// We can't cloneNode fragments that contain checked, in WebKit\n\r\tif ( valueIsFunction ||\n\r\t\t\t( l > 1 && typeof value === \"string\" &&\n\r\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\r\t\treturn collection.each( function( index ) {\n\r\t\t\tvar self = collection.eq( index );\n\r\t\t\tif ( valueIsFunction ) {\n\r\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\n\r\t\t\t}\n\r\t\t\tdomManip( self, args, callback, ignored );\n\r\t\t} );\n\r\t}\n\r\n\r\tif ( l ) {\n\r\t\tfragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );\n\r\t\tfirst = fragment.firstChild;\n\r\n\r\t\tif ( fragment.childNodes.length === 1 ) {\n\r\t\t\tfragment = first;\n\r\t\t}\n\r\n\r\t\t// Require either new content or an interest in ignored elements to invoke the callback\n\r\t\tif ( first || ignored ) {\n\r\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\r\t\t\thasScripts = scripts.length;\n\r\n\r\t\t\t// Use the original fragment for the last item\n\r\t\t\t// instead of the first because it can end up\n\r\t\t\t// being emptied incorrectly in certain situations (#8070).\n\r\t\t\tfor ( ; i < l; i++ ) {\n\r\t\t\t\tnode = fragment;\n\r\n\r\t\t\t\tif ( i !== iNoClone ) {\n\r\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\r\n\r\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\r\t\t\t\t\tif ( hasScripts ) {\n\r\n\r\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\r\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\r\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\r\t\t\t\t\t}\n\r\t\t\t\t}\n\r\n\r\t\t\t\tcallback.call( collection[ i ], node, i );\n\r\t\t\t}\n\r\n\r\t\t\tif ( hasScripts ) {\n\r\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\r\n\r\t\t\t\t// Reenable scripts\n\r\t\t\t\tjQuery.map( scripts, restoreScript );\n\r\n\r\t\t\t\t// Evaluate executable scripts on first document insertion\n\r\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\r\t\t\t\t\tnode = scripts[ i ];\n\r\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\r\t\t\t\t\t\t!dataPriv.access( node, \"globalEval\" ) &&\n\r\t\t\t\t\t\tjQuery.contains( doc, node ) ) {\n\r\n\r\t\t\t\t\t\tif ( node.src && ( node.type || \"\" ).toLowerCase() !== \"module\" ) {\n\r\n\r\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\r\t\t\t\t\t\t\tif ( jQuery._evalUrl && !node.noModule ) {\n\r\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src, {\n\r\t\t\t\t\t\t\t\t\tnonce: node.nonce || node.getAttribute( \"nonce\" )\n\r\t\t\t\t\t\t\t\t} );\n\r\t\t\t\t\t\t\t}\n\r\t\t\t\t\t\t} else {\n\r\t\t\t\t\t\t\tDOMEval( node.textContent.replace( rcleanScript, \"\" ), node, doc );\n\r\t\t\t\t\t\t}\n\r\t\t\t\t\t}\n\r\t\t\t\t}\n\r\t\t\t}\n\r\t\t}\n\r\t}\n\r\n\r\treturn collection;\n\r}\n\r\n\rfunction remove( elem, selector, keepData ) {\n\r\tvar node,\n\r\t\tnodes = selector ? jQuery.filter( selector, elem ) : elem,\n\r\t\ti = 0;\n\r\n\r\tfor ( ; ( node = nodes[ i ] ) != null; i++ ) {\n\r\t\tif ( !keepData && node.nodeType === 1 ) {\n\r\t\t\tjQuery.cleanData( getAll( node ) );\n\r\t\t}\n\r\n\r\t\tif ( node.parentNode ) {\n\r\t\t\tif ( keepData && isAttached( node ) ) {\n\r\t\t\t\tsetGlobalEval( getAll( node, \"script\" ) );\n\r\t\t\t}\n\r\t\t\tnode.parentNode.removeChild( node );\n\r\t\t}\n\r\t}\n\r\n\r\treturn elem;\n\r}\n\r\n\rjQuery.extend( {\n\r\thtmlPrefilter: function( html ) {\n\r\t\treturn html.replace( rxhtmlTag, \"<$1>\" );\n\r\t},\n\r\n\r\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\r\t\tvar i, l, srcElements, destElements,\n\r\t\t\tclone = elem.cloneNode( true ),\n\r\t\t\tinPage = isAttached( elem );\n\r\n\r\t\t// Fix IE cloning issues\n\r\t\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\n\r\t\t\t\t!jQuery.isXMLDoc( elem ) ) {\n\r\n\r\t\t\t// We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\n\r\t\t\tdestElements = getAll( clone );\n\r\t\t\tsrcElements = getAll( elem );\n\r\n\r\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\r\t\t\t\tfixInput( srcElements[ i ], destElements[ i ] );\n\r\t\t\t}\n\r\t\t}\n\r\n\r\t\t// Copy the events from the original to the clone\n\r\t\tif ( dataAndEvents ) {\n\r\t\t\tif ( deepDataAndEvents ) {\n\r\t\t\t\tsrcElements = srcElements || getAll( elem );\n\r\t\t\t\tdestElements = destElements || getAll( clone );\n\r\n\r\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\r\t\t\t\t\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\n\r\t\t\t\t}\n\r\t\t\t} else {\n\r\t\t\t\tcloneCopyEvent( elem, clone );\n\r\t\t\t}\n\r\t\t}\n\r\n\r\t\t// Preserve script evaluation history\n\r\t\tdestElements = getAll( clone, \"script\" );\n\r\t\tif ( destElements.length > 0 ) {\n\r\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\r\t\t}\n\r\n\r\t\t// Return the cloned set\n\r\t\treturn clone;\n\r\t},\n\r\n\r\tcleanData: function( elems ) {\n\r\t\tvar data, elem, type,\n\r\t\t\tspecial = jQuery.event.special,\n\r\t\t\ti = 0;\n\r\n\r\t\tfor ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {\n\r\t\t\tif ( acceptData( elem ) ) {\n\r\t\t\t\tif ( ( data = elem[ dataPriv.expando ] ) ) {\n\r\t\t\t\t\tif ( data.events ) {\n\r\t\t\t\t\t\tfor ( type in data.events ) {\n\r\t\t\t\t\t\t\tif ( special[ type ] ) {\n\r\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\r\n\r\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\r\t\t\t\t\t\t\t} else {\n\r\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\r\t\t\t\t\t\t\t}\n\r\t\t\t\t\t\t}\n\r\t\t\t\t\t}\n\r\n\r\t\t\t\t\t// Support: Chrome <=35 - 45+\n\r\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\r\t\t\t\t\telem[ dataPriv.expando ] = undefined;\n\r\t\t\t\t}\n\r\t\t\t\tif ( elem[ dataUser.expando ] ) {\n\r\n\r\t\t\t\t\t// Support: Chrome <=35 - 45+\n\r\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\r\t\t\t\t\telem[ dataUser.expando ] = undefined;\n\r\t\t\t\t}\n\r\t\t\t}\n\r\t\t}\n\r\t}\n\r} );\n\r\n\rjQuery.fn.extend( {\n\r\tdetach: function( selector ) {\n\r\t\treturn remove( this, selector, true );\n\r\t},\n\r\n\r\tremove: function( selector ) {\n\r\t\treturn remove( this, selector );\n\r\t},\n\r\n\r\ttext: function( value ) {\n\r\t\treturn access( this, function( value ) {\n\r\t\t\treturn value === undefined ?\n\r\t\t\t\tjQuery.text( this ) :\n\r\t\t\t\tthis.empty().each( function() {\n\r\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\r\t\t\t\t\t\tthis.textContent = value;\n\r\t\t\t\t\t}\n\r\t\t\t\t} );\n\r\t\t}, null, value, arguments.length );\n\r\t},\n\r\n\r\tappend: function() {\n\r\t\treturn domManip( this, arguments, function( elem ) {\n\r\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\r\t\t\t\tvar target = manipulationTarget( this, elem );\n\r\t\t\t\ttarget.appendChild( elem );\n\r\t\t\t}\n\r\t\t} );\n\r\t},\n\r\n\r\tprepend: function() {\n\r\t\treturn domManip( this, arguments, function( elem ) {\n\r\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\r\t\t\t\tvar target = manipulationTarget( this, elem );\n\r\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\r\t\t\t}\n\r\t\t} );\n\r\t},\n\r\n\r\tbefore: function() {\n\r\t\treturn domManip( this, arguments, function( elem ) {\n\r\t\t\tif ( this.parentNode ) {\n\r\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\r\t\t\t}\n\r\t\t} );\n\r\t},\n\r\n\r\tafter: function() {\n\r\t\treturn domManip( this, arguments, function( elem ) {\n\r\t\t\tif ( this.parentNode ) {\n\r\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\r\t\t\t}\n\r\t\t} );\n\r\t},\n\r\n\r\tempty: function() {\n\r\t\tvar elem,\n\r\t\t\ti = 0;\n\r\n\r\t\tfor ( ; ( elem = this[ i ] ) != null; i++ ) {\n\r\t\t\tif ( elem.nodeType === 1 ) {\n\r\n\r\t\t\t\t// Prevent memory leaks\n\r\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\r\n\r\t\t\t\t// Remove any remaining nodes\n\r\t\t\t\telem.textContent = \"\";\n\r\t\t\t}\n\r\t\t}\n\r\n\r\t\treturn this;\n\r\t},\n\r\n\r\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\r\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\r\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\r\n\r\t\treturn this.map( function() {\n\r\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\r\t\t} );\n\r\t},\n\r\n\r\thtml: function( value ) {\n\r\t\treturn access( this, function( value ) {\n\r\t\t\tvar elem = this[ 0 ] || {},\n\r\t\t\t\ti = 0,\n\r\t\t\t\tl = this.length;\n\r\n\r\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\n\r\t\t\t\treturn elem.innerHTML;\n\r\t\t\t}\n\r\n\r\t\t\t// See if we can take a shortcut and just use innerHTML\n\r\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\r\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\n\r\n\r\t\t\t\tvalue = jQuery.htmlPrefilter( value );\n\r\n\r\t\t\t\ttry {\n\r\t\t\t\t\tfor ( ; i < l; i++ ) {\n\r\t\t\t\t\t\telem = this[ i ] || {};\n\r\n\r\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\r\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\r\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\r\t\t\t\t\t\t\telem.innerHTML = value;\n\r\t\t\t\t\t\t}\n\r\t\t\t\t\t}\n\r\n\r\t\t\t\t\telem = 0;\n\r\n\r\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\r\t\t\t\t} catch ( e ) {}\n\r\t\t\t}\n\r\n\r\t\t\tif ( elem ) {\n\r\t\t\t\tthis.empty().append( value );\n\r\t\t\t}\n\r\t\t}, null, value, arguments.length );\n\r\t},\n\r\n\r\treplaceWith: function() {\n\r\t\tvar ignored = [];\n\r\n\r\t\t// Make the changes, replacing each non-ignored context element with the new content\n\r\t\treturn domManip( this, arguments, function( elem ) {\n\r\t\t\tvar parent = this.parentNode;\n\r\n\r\t\t\tif ( jQuery.inArray( this, ignored ) < 0 ) {\n\r\t\t\t\tjQuery.cleanData( getAll( this ) );\n\r\t\t\t\tif ( parent ) {\n\r\t\t\t\t\tparent.replaceChild( elem, this );\n\r\t\t\t\t}\n\r\t\t\t}\n\r\n\r\t\t// Force callback invocation\n\r\t\t}, ignored );\n\r\t}\n\r} );\n\r\n\rjQuery.each( {\n\r\tappendTo: \"append\",\n\r\tprependTo: \"prepend\",\n\r\tinsertBefore: \"before\",\n\r\tinsertAfter: \"after\",\n\r\treplaceAll: \"replaceWith\"\n\r}, function( name, original ) {\n\r\tjQuery.fn[ name ] = function( selector ) {\n\r\t\tvar elems,\n\r\t\t\tret = [],\n\r\t\t\tinsert = jQuery( selector ),\n\r\t\t\tlast = insert.length - 1,\n\r\t\t\ti = 0;\n\r\n\r\t\tfor ( ; i <= last; i++ ) {\n\r\t\t\telems = i === last ? this : this.clone( true );\n\r\t\t\tjQuery( insert[ i ] )[ original ]( elems );\n\r\n\r\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\r\t\t\t// .get() because push.apply(_, arraylike) throws on ancient WebKit\n\r\t\t\tpush.apply( ret, elems.get() );\n\r\t\t}\n\r\n\r\t\treturn this.pushStack( ret );\n\r\t};\n\r} );\n\rvar rnumnonpx = new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\n\r\n\rvar getStyles = function( elem ) {\n\r\n\r\t\t// Support: IE <=11 only, Firefox <=30 (#15098, #14150)\n\r\t\t// IE throws on elements created in popups\n\r\t\t// FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n\r\t\tvar view = elem.ownerDocument.defaultView;\n\r\n\r\t\tif ( !view || !view.opener ) {\n\r\t\t\tview = window;\n\r\t\t}\n\r\n\r\t\treturn view.getComputedStyle( elem );\n\r\t};\n\r\n\rvar rboxStyle = new RegExp( cssExpand.join( \"|\" ), \"i\" );\n\r\n\r\n\r\n\r( function() {\n\r\n\r\t// Executing both pixelPosition & boxSizingReliable tests require only one layout\n\r\t// so they're executed at the same time to save the second computation.\n\r\tfunction computeStyleTests() {\n\r\n\r\t\t// This is a singleton, we need to execute it only once\n\r\t\tif ( !div ) {\n\r\t\t\treturn;\n\r\t\t}\n\r\n\r\t\tcontainer.style.cssText = \"position:absolute;left:-11111px;width:60px;\" +\n\r\t\t\t\"margin-top:1px;padding:0;border:0\";\n\r\t\tdiv.style.cssText =\n\r\t\t\t\"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" +\n\r\t\t\t\"margin:auto;border:1px;padding:1px;\" +\n\r\t\t\t\"width:60%;top:1%\";\n\r\t\tdocumentElement.appendChild( container ).appendChild( div );\n\r\n\r\t\tvar divStyle = window.getComputedStyle( div );\n\r\t\tpixelPositionVal = divStyle.top !== \"1%\";\n\r\n\r\t\t// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\r\t\treliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;\n\r\n\r\t\t// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n\r\t\t// Some styles come back with percentage values, even though they shouldn't\n\r\t\tdiv.style.right = \"60%\";\n\r\t\tpixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;\n\r\n\r\t\t// Support: IE 9 - 11 only\n\r\t\t// Detect misreporting of content dimensions for box-sizing:border-box elements\n\r\t\tboxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;\n\r\n\r\t\t// Support: IE 9 only\n\r\t\t// Detect overflow:scroll screwiness (gh-3699)\n\r\t\t// Support: Chrome <=64\n\r\t\t// Don't get tricked when zoom affects offsetWidth (gh-4029)\n\r\t\tdiv.style.position = \"absolute\";\n\r\t\tscrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;\n\r\n\r\t\tdocumentElement.removeChild( container );\n\r\n\r\t\t// Nullify the div so it wouldn't be stored in the memory and\n\r\t\t// it will also be a sign that checks already performed\n\r\t\tdiv = null;\n\r\t}\n\r\n\r\tfunction roundPixelMeasures( measure ) {\n\r\t\treturn Math.round( parseFloat( measure ) );\n\r\t}\n\r\n\r\tvar pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,\n\r\t\treliableMarginLeftVal,\n\r\t\tcontainer = document.createElement( \"div\" ),\n\r\t\tdiv = document.createElement( \"div\" );\n\r\n\r\t// Finish early in limited (non-browser) environments\n\r\tif ( !div.style ) {\n\r\t\treturn;\n\r\t}\n\r\n\r\t// Support: IE <=9 - 11 only\n\r\t// Style of cloned element affects source element cloned (#8908)\n\r\tdiv.style.backgroundClip = \"content-box\";\n\r\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\r\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\r\n\r\tjQuery.extend( support, {\n\r\t\tboxSizingReliable: function() {\n\r\t\t\tcomputeStyleTests();\n\r\t\t\treturn boxSizingReliableVal;\n\r\t\t},\n\r\t\tpixelBoxStyles: function() {\n\r\t\t\tcomputeStyleTests();\n\r\t\t\treturn pixelBoxStylesVal;\n\r\t\t},\n\r\t\tpixelPosition: function() {\n\r\t\t\tcomputeStyleTests();\n\r\t\t\treturn pixelPositionVal;\n\r\t\t},\n\r\t\treliableMarginLeft: function() {\n\r\t\t\tcomputeStyleTests();\n\r\t\t\treturn reliableMarginLeftVal;\n\r\t\t},\n\r\t\tscrollboxSize: function() {\n\r\t\t\tcomputeStyleTests();\n\r\t\t\treturn scrollboxSizeVal;\n\r\t\t}\n\r\t} );\n\r} )();\n\r\n\r\n\rfunction curCSS( elem, name, computed ) {\n\r\tvar width, minWidth, maxWidth, ret,\n\r\n\r\t\t// Support: Firefox 51+\n\r\t\t// Retrieving style before computed somehow\n\r\t\t// fixes an issue with getting wrong values\n\r\t\t// on detached elements\n\r\t\tstyle = elem.style;\n\r\n\r\tcomputed = computed || getStyles( elem );\n\r\n\r\t// getPropertyValue is needed for:\n\r\t// .css('filter') (IE 9 only, #12537)\n\r\t// .css('--customProperty) (#3144)\n\r\tif ( computed ) {\n\r\t\tret = computed.getPropertyValue( name ) || computed[ name ];\n\r\n\r\t\tif ( ret === \"\" && !isAttached( elem ) ) {\n\r\t\t\tret = jQuery.style( elem, name );\n\r\t\t}\n\r\n\r\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\r\t\t// Android Browser returns percentage for some values,\n\r\t\t// but width seems to be reliably pixels.\n\r\t\t// This is against the CSSOM draft spec:\n\r\t\t// https://drafts.csswg.org/cssom/#resolved-values\n\r\t\tif ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {\n\r\n\r\t\t\t// Remember the original values\n\r\t\t\twidth = style.width;\n\r\t\t\tminWidth = style.minWidth;\n\r\t\t\tmaxWidth = style.maxWidth;\n\r\n\r\t\t\t// Put in the new values to get a computed value out\n\r\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\r\t\t\tret = computed.width;\n\r\n\r\t\t\t// Revert the changed values\n\r\t\t\tstyle.width = width;\n\r\t\t\tstyle.minWidth = minWidth;\n\r\t\t\tstyle.maxWidth = maxWidth;\n\r\t\t}\n\r\t}\n\r\n\r\treturn ret !== undefined ?\n\r\n\r\t\t// Support: IE <=9 - 11 only\n\r\t\t// IE returns zIndex value as an integer.\n\r\t\tret + \"\" :\n\r\t\tret;\n\r}\n\r\n\r\n\rfunction addGetHookIf( conditionFn, hookFn ) {\n\r\n\r\t// Define the hook, we'll check on the first run if it's really needed.\n\r\treturn {\n\r\t\tget: function() {\n\r\t\t\tif ( conditionFn() ) {\n\r\n\r\t\t\t\t// Hook not needed (or it's not possible to use it due\n\r\t\t\t\t// to missing dependency), remove it.\n\r\t\t\t\tdelete this.get;\n\r\t\t\t\treturn;\n\r\t\t\t}\n\r\n\r\t\t\t// Hook needed; redefine it so that the support test is not executed again.\n\r\t\t\treturn ( this.get = hookFn ).apply( this, arguments );\n\r\t\t}\n\r\t};\n\r}\n\r\n\r\n\rvar cssPrefixes = [ \"Webkit\", \"Moz\", \"ms\" ],\n\r\temptyStyle = document.createElement( \"div\" ).style,\n\r\tvendorProps = {};\n\r\n\r// Return a vendor-prefixed property or undefined\n\rfunction vendorPropName( name ) {\n\r\n\r\t// Check for vendor prefixed names\n\r\tvar capName = name[ 0 ].toUpperCase() + name.slice( 1 ),\n\r\t\ti = cssPrefixes.length;\n\r\n\r\twhile ( i-- ) {\n\r\t\tname = cssPrefixes[ i ] + capName;\n\r\t\tif ( name in emptyStyle ) {\n\r\t\t\treturn name;\n\r\t\t}\n\r\t}\n\r}\n\r\n\r// Return a potentially-mapped jQuery.cssProps or vendor prefixed property\n\rfunction finalPropName( name ) {\n\r\tvar final = jQuery.cssProps[ name ] || vendorProps[ name ];\n\r\n\r\tif ( final ) {\n\r\t\treturn final;\n\r\t}\n\r\tif ( name in emptyStyle ) {\n\r\t\treturn name;\n\r\t}\n\r\treturn vendorProps[ name ] = vendorPropName( name ) || name;\n\r}\n\r\n\r\n\rvar\n\r\n\r\t// Swappable if display is none or starts with table\n\r\t// except \"table\", \"table-cell\", or \"table-caption\"\n\r\t// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n\r\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\n\r\trcustomProp = /^--/,\n\r\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\r\tcssNormalTransform = {\n\r\t\tletterSpacing: \"0\",\n\r\t\tfontWeight: \"400\"\n\r\t};\n\r\n\rfunction setPositiveNumber( elem, value, subtract ) {\n\r\n\r\t// Any relative (+/-) values have already been\n\r\t// normalized at this point\n\r\tvar matches = rcssNum.exec( value );\n\r\treturn matches ?\n\r\n\r\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\r\t\tMath.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || \"px\" ) :\n\r\t\tvalue;\n\r}\n\r\n\rfunction boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {\n\r\tvar i = dimension === \"width\" ? 1 : 0,\n\r\t\textra = 0,\n\r\t\tdelta = 0;\n\r\n\r\t// Adjustment may not be necessary\n\r\tif ( box === ( isBorderBox ? \"border\" : \"content\" ) ) {\n\r\t\treturn 0;\n\r\t}\n\r\n\r\tfor ( ; i < 4; i += 2 ) {\n\r\n\r\t\t// Both box models exclude margin\n\r\t\tif ( box === \"margin\" ) {\n\r\t\t\tdelta += jQuery.css( elem, box + cssExpand[ i ], true, styles );\n\r\t\t}\n\r\n\r\t\t// If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\r\t\tif ( !isBorderBox ) {\n\r\n\r\t\t\t// Add padding\n\r\t\t\tdelta += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\r\n\r\t\t\t// For \"border\" or \"margin\", add border\n\r\t\t\tif ( box !== \"padding\" ) {\n\r\t\t\t\tdelta += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\r\n\r\t\t\t// But still keep track of it otherwise\n\r\t\t\t} else {\n\r\t\t\t\textra += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\r\t\t\t}\n\r\n\r\t\t// If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n\r\t\t// \"padding\" or \"margin\"\n\r\t\t} else {\n\r\n\r\t\t\t// For \"content\", subtract padding\n\r\t\t\tif ( box === \"content\" ) {\n\r\t\t\t\tdelta -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\r\t\t\t}\n\r\n\r\t\t\t// For \"content\" or \"padding\", subtract border\n\r\t\t\tif ( box !== \"margin\" ) {\n\r\t\t\t\tdelta -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\r\t\t\t}\n\r\t\t}\n\r\t}\n\r\n\r\t// Account for positive content-box scroll gutter when requested by providing computedVal\n\r\tif ( !isBorderBox && computedVal >= 0 ) {\n\r\n\r\t\t// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n\r\t\t// Assuming integer scroll gutter, subtract the rest and round down\n\r\t\tdelta += Math.max( 0, Math.ceil(\n\r\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\r\t\t\tcomputedVal -\n\r\t\t\tdelta -\n\r\t\t\textra -\n\r\t\t\t0.5\n\r\n\r\t\t// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n\r\t\t// Use an explicit zero to avoid NaN (gh-3964)\n\r\t\t) ) || 0;\n\r\t}\n\r\n\r\treturn delta;\n\r}\n\r\n\rfunction getWidthOrHeight( elem, dimension, extra ) {\n\r\n\r\t// Start with computed style\n\r\tvar styles = getStyles( elem ),\n\r\n\r\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n\r\t\t// Fake content-box until we know it's needed to know the true value.\n\r\t\tboxSizingNeeded = !support.boxSizingReliable() || extra,\n\r\t\tisBorderBox = boxSizingNeeded &&\n\r\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\r\t\tvalueIsBorderBox = isBorderBox,\n\r\n\r\t\tval = curCSS( elem, dimension, styles ),\n\r\t\toffsetProp = \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );\n\r\n\r\t// Support: Firefox <=54\n\r\t// Return a confounding non-pixel value or feign ignorance, as appropriate.\n\r\tif ( rnumnonpx.test( val ) ) {\n\r\t\tif ( !extra ) {\n\r\t\t\treturn val;\n\r\t\t}\n\r\t\tval = \"auto\";\n\r\t}\n\r\n\r\n\r\t// Fall back to offsetWidth/offsetHeight when value is \"auto\"\n\r\t// This happens for inline elements with no explicit setting (gh-3571)\n\r\t// Support: Android <=4.1 - 4.3 only\n\r\t// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n\r\t// Support: IE 9-11 only\n\r\t// Also use offsetWidth/offsetHeight for when box sizing is unreliable\n\r\t// We use getClientRects() to check for hidden/disconnected.\n\r\t// In those cases, the computed value can be trusted to be border-box\n\r\tif ( ( !support.boxSizingReliable() && isBorderBox ||\n\r\t\tval === \"auto\" ||\n\r\t\t!parseFloat( val ) && jQuery.css( elem, \"display\", false, styles ) === \"inline\" ) &&\n\r\t\telem.getClientRects().length ) {\n\r\n\r\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\n\r\n\r\t\t// Where available, offsetWidth/offsetHeight approximate border box dimensions.\n\r\t\t// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n\r\t\t// retrieved value as a content box dimension.\n\r\t\tvalueIsBorderBox = offsetProp in elem;\n\r\t\tif ( valueIsBorderBox ) {\n\r\t\t\tval = elem[ offsetProp ];\n\r\t\t}\n\r\t}\n\r\n\r\t// Normalize \"\" and auto\n\r\tval = parseFloat( val ) || 0;\n\r\n\r\t// Adjust for the element's box model\n\r\treturn ( val +\n\r\t\tboxModelAdjustment(\n\r\t\t\telem,\n\r\t\t\tdimension,\n\r\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\r\t\t\tvalueIsBorderBox,\n\r\t\t\tstyles,\n\r\n\r\t\t\t// Provide the current computed size to request scroll gutter calculation (gh-3589)\n\r\t\t\tval\n\r\t\t)\n\r\t) + \"px\";\n\r}\n\r\n\rjQuery.extend( {\n\r\n\r\t// Add in style property hooks for overriding the default\n\r\t// behavior of getting and setting a style property\n\r\tcssHooks: {\n\r\t\topacity: {\n\r\t\t\tget: function( elem, computed ) {\n\r\t\t\t\tif ( computed ) {\n\r\n\r\t\t\t\t\t// We should always get a number back from opacity\n\r\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\n\r\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\n\r\t\t\t\t}\n\r\t\t\t}\n\r\t\t}\n\r\t},\n\r\n\r\t// Don't automatically add \"px\" to these possibly-unitless properties\n\r\tcssNumber: {\n\r\t\t\"animationIterationCount\": true,\n\r\t\t\"columnCount\": true,\n\r\t\t\"fillOpacity\": true,\n\r\t\t\"flexGrow\": true,\n\r\t\t\"flexShrink\": true,\n\r\t\t\"fontWeight\": true,\n\r\t\t\"gridArea\": true,\n\r\t\t\"gridColumn\": true,\n\r\t\t\"gridColumnEnd\": true,\n\r\t\t\"gridColumnStart\": true,\n\r\t\t\"gridRow\": true,\n\r\t\t\"gridRowEnd\": true,\n\r\t\t\"gridRowStart\": true,\n\r\t\t\"lineHeight\": true,\n\r\t\t\"opacity\": true,\n\r\t\t\"order\": true,\n\r\t\t\"orphans\": true,\n\r\t\t\"widows\": true,\n\r\t\t\"zIndex\": true,\n\r\t\t\"zoom\": true\n\r\t},\n\r\n\r\t// Add in properties whose names you wish to fix before\n\r\t// setting or getting the value\n\r\tcssProps: {},\n\r\n\r\t// Get and set the style property on a DOM Node\n\r\tstyle: function( elem, name, value, extra ) {\n\r\n\r\t\t// Don't set styles on text and comment nodes\n\r\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\r\t\t\treturn;\n\r\t\t}\n\r\n\r\t\t// Make sure that we're working with the right name\n\r\t\tvar ret, type, hooks,\n\r\t\t\torigName = camelCase( name ),\n\r\t\t\tisCustomProp = rcustomProp.test( name ),\n\r\t\t\tstyle = elem.style;\n\r\n\r\t\t// Make sure that we're working with the right name. We don't\n\r\t\t// want to query the value if it is a CSS custom property\n\r\t\t// since they are user-defined.\n\r\t\tif ( !isCustomProp ) {\n\r\t\t\tname = finalPropName( origName );\n\r\t\t}\n\r\n\r\t\t// Gets hook for the prefixed version, then unprefixed version\n\r\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\r\n\r\t\t// Check if we're setting a value\n\r\t\tif ( value !== undefined ) {\n\r\t\t\ttype = typeof value;\n\r\n\r\t\t\t// Convert \"+=\" or \"-=\" to relative numbers (#7345)\n\r\t\t\tif ( type === \"string\" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {\n\r\t\t\t\tvalue = adjustCSS( elem, name, ret );\n\r\n\r\t\t\t\t// Fixes bug #9237\n\r\t\t\t\ttype = \"number\";\n\r\t\t\t}\n\r\n\r\t\t\t// Make sure that null and NaN values aren't set (#7116)\n\r\t\t\tif ( value == null || value !== value ) {\n\r\t\t\t\treturn;\n\r\t\t\t}\n\r\n\r\t\t\t// If a number was passed in, add the unit (except for certain CSS properties)\n\r\t\t\t// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n\r\t\t\t// \"px\" to a few hardcoded values.\n\r\t\t\tif ( type === \"number\" && !isCustomProp ) {\n\r\t\t\t\tvalue += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? \"\" : \"px\" );\n\r\t\t\t}\n\r\n\r\t\t\t// background-* props affect original clone's values\n\r\t\t\tif ( !support.clearCloneStyle && value === \"\" && name.indexOf( \"background\" ) === 0 ) {\n\r\t\t\t\tstyle[ name ] = \"inherit\";\n\r\t\t\t}\n\r\n\r\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\r\t\t\tif ( !hooks || !( \"set\" in hooks ) ||\n\r\t\t\t\t( value = hooks.set( elem, value, extra ) ) !== undefined ) {\n\r\n\r\t\t\t\tif ( isCustomProp ) {\n\r\t\t\t\t\tstyle.setProperty( name, value );\n\r\t\t\t\t} else {\n\r\t\t\t\t\tstyle[ name ] = value;\n\r\t\t\t\t}\n\r\t\t\t}\n\r\n\r\t\t} else {\n\r\n\r\t\t\t// If a hook was provided get the non-computed value from there\n\r\t\t\tif ( hooks && \"get\" in hooks &&\n\r\t\t\t\t( ret = hooks.get( elem, false, extra ) ) !== undefined ) {\n\r\n\r\t\t\t\treturn ret;\n\r\t\t\t}\n\r\n\r\t\t\t// Otherwise just get the value from the style object\n\r\t\t\treturn style[ name ];\n\r\t\t}\n\r\t},\n\r\n\r\tcss: function( elem, name, extra, styles ) {\n\r\t\tvar val, num, hooks,\n\r\t\t\torigName = camelCase( name ),\n\r\t\t\tisCustomProp = rcustomProp.test( name );\n\r\n\r\t\t// Make sure that we're working with the right name. We don't\n\r\t\t// want to modify the value if it is a CSS custom property\n\r\t\t// since they are user-defined.\n\r\t\tif ( !isCustomProp ) {\n\r\t\t\tname = finalPropName( origName );\n\r\t\t}\n\r\n\r\t\t// Try prefixed name followed by the unprefixed name\n\r\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\r\n\r\t\t// If a hook was provided get the computed value from there\n\r\t\tif ( hooks && \"get\" in hooks ) {\n\r\t\t\tval = hooks.get( elem, true, extra );\n\r\t\t}\n\r\n\r\t\t// Otherwise, if a way to get the computed value exists, use that\n\r\t\tif ( val === undefined ) {\n\r\t\t\tval = curCSS( elem, name, styles );\n\r\t\t}\n\r\n\r\t\t// Convert \"normal\" to computed value\n\r\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\r\t\t\tval = cssNormalTransform[ name ];\n\r\t\t}\n\r\n\r\t\t// Make numeric if forced or a qualifier was provided and val looks numeric\n\r\t\tif ( extra === \"\" || extra ) {\n\r\t\t\tnum = parseFloat( val );\n\r\t\t\treturn extra === true || isFinite( num ) ? num || 0 : val;\n\r\t\t}\n\r\n\r\t\treturn val;\n\r\t}\n\r} );\n\r\n\rjQuery.each( [ \"height\", \"width\" ], function( i, dimension ) {\n\r\tjQuery.cssHooks[ dimension ] = {\n\r\t\tget: function( elem, computed, extra ) {\n\r\t\t\tif ( computed ) {\n\r\n\r\t\t\t\t// Certain elements can have dimension info if we invisibly show them\n\r\t\t\t\t// but it must have a current display style that would benefit\n\r\t\t\t\treturn rdisplayswap.test( jQuery.css( elem, \"display\" ) ) &&\n\r\n\r\t\t\t\t\t// Support: Safari 8+\n\r\t\t\t\t\t// Table columns in Safari have non-zero offsetWidth & zero\n\r\t\t\t\t\t// getBoundingClientRect().width unless display is changed.\n\r\t\t\t\t\t// Support: IE <=11 only\n\r\t\t\t\t\t// Running getBoundingClientRect on a disconnected node\n\r\t\t\t\t\t// in IE throws an error.\n\r\t\t\t\t\t( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?\n\r\t\t\t\t\t\tswap( elem, cssShow, function() {\n\r\t\t\t\t\t\t\treturn getWidthOrHeight( elem, dimension, extra );\n\r\t\t\t\t\t\t} ) :\n\r\t\t\t\t\t\tgetWidthOrHeight( elem, dimension, extra );\n\r\t\t\t}\n\r\t\t},\n\r\n\r\t\tset: function( elem, value, extra ) {\n\r\t\t\tvar matches,\n\r\t\t\t\tstyles = getStyles( elem ),\n\r\n\r\t\t\t\t// Only read styles.position if the test has a chance to fail\n\r\t\t\t\t// to avoid forcing a reflow.\n\r\t\t\t\tscrollboxSizeBuggy = !support.scrollboxSize() &&\n\r\t\t\t\t\tstyles.position === \"absolute\",\n\r\n\r\t\t\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n\r\t\t\t\tboxSizingNeeded = scrollboxSizeBuggy || extra,\n\r\t\t\t\tisBorderBox = boxSizingNeeded &&\n\r\t\t\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\r\t\t\t\tsubtract = extra ?\n\r\t\t\t\t\tboxModelAdjustment(\n\r\t\t\t\t\t\telem,\n\r\t\t\t\t\t\tdimension,\n\r\t\t\t\t\t\textra,\n\r\t\t\t\t\t\tisBorderBox,\n\r\t\t\t\t\t\tstyles\n\r\t\t\t\t\t) :\n\r\t\t\t\t\t0;\n\r\n\r\t\t\t// Account for unreliable border-box dimensions by comparing offset* to computed and\n\r\t\t\t// faking a content-box to get border and padding (gh-3699)\n\r\t\t\tif ( isBorderBox && scrollboxSizeBuggy ) {\n\r\t\t\t\tsubtract -= Math.ceil(\n\r\t\t\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\r\t\t\t\t\tparseFloat( styles[ dimension ] ) -\n\r\t\t\t\t\tboxModelAdjustment( elem, dimension, \"border\", false, styles ) -\n\r\t\t\t\t\t0.5\n\r\t\t\t\t);\n\r\t\t\t}\n\r\n\r\t\t\t// Convert to pixels if value adjustment is needed\n\r\t\t\tif ( subtract && ( matches = rcssNum.exec( value ) ) &&\n\r\t\t\t\t( matches[ 3 ] || \"px\" ) !== \"px\" ) {\n\r\n\r\t\t\t\telem.style[ dimension ] = value;\n\r\t\t\t\tvalue = jQuery.css( elem, dimension );\n\r\t\t\t}\n\r\n\r\t\t\treturn setPositiveNumber( elem, value, subtract );\n\r\t\t}\n\r\t};\n\r} );\n\r\n\rjQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,\n\r\tfunction( elem, computed ) {\n\r\t\tif ( computed ) {\n\r\t\t\treturn ( parseFloat( curCSS( elem, \"marginLeft\" ) ) ||\n\r\t\t\t\telem.getBoundingClientRect().left -\n\r\t\t\t\t\tswap( elem, { marginLeft: 0 }, function() {\n\r\t\t\t\t\t\treturn elem.getBoundingClientRect().left;\n\r\t\t\t\t\t} )\n\r\t\t\t\t) + \"px\";\n\r\t\t}\n\r\t}\n\r);\n\r\n\r// These hooks are used by animate to expand properties\n\rjQuery.each( {\n\r\tmargin: \"\",\n\r\tpadding: \"\",\n\r\tborder: \"Width\"\n\r}, function( prefix, suffix ) {\n\r\tjQuery.cssHooks[ prefix + suffix ] = {\n\r\t\texpand: function( value ) {\n\r\t\t\tvar i = 0,\n\r\t\t\t\texpanded = {},\n\r\n\r\t\t\t\t// Assumes a single number if not a string\n\r\t\t\t\tparts = typeof value === \"string\" ? value.split( \" \" ) : [ value ];\n\r\n\r\t\t\tfor ( ; i < 4; i++ ) {\n\r\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\n\r\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\n\r\t\t\t}\n\r\n\r\t\t\treturn expanded;\n\r\t\t}\n\r\t};\n\r\n\r\tif ( prefix !== \"margin\" ) {\n\r\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\n\r\t}\n\r} );\n\r\n\rjQuery.fn.extend( {\n\r\tcss: function( name, value ) {\n\r\t\treturn access( this, function( elem, name, value ) {\n\r\t\t\tvar styles, len,\n\r\t\t\t\tmap = {},\n\r\t\t\t\ti = 0;\n\r\n\r\t\t\tif ( Array.isArray( name ) ) {\n\r\t\t\t\tstyles = getStyles( elem );\n\r\t\t\t\tlen = name.length;\n\r\n\r\t\t\t\tfor ( ; i < len; i++ ) {\n\r\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\r\t\t\t\t}\n\r\n\r\t\t\t\treturn map;\n\r\t\t\t}\n\r\n\r\t\t\treturn value !== undefined ?\n\r\t\t\t\tjQuery.style( elem, name, value ) :\n\r\t\t\t\tjQuery.css( elem, name );\n\r\t\t}, name, value, arguments.length > 1 );\n\r\t}\n\r} );\n\r\n\r\n\rfunction Tween( elem, options, prop, end, easing ) {\n\r\treturn new Tween.prototype.init( elem, options, prop, end, easing );\n\r}\n\rjQuery.Tween = Tween;\n\r\n\rTween.prototype = {\n\r\tconstructor: Tween,\n\r\tinit: function( elem, options, prop, end, easing, unit ) {\n\r\t\tthis.elem = elem;\n\r\t\tthis.prop = prop;\n\r\t\tthis.easing = easing || jQuery.easing._default;\n\r\t\tthis.options = options;\n\r\t\tthis.start = this.now = this.cur();\n\r\t\tthis.end = end;\n\r\t\tthis.unit = unit || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" );\n\r\t},\n\r\tcur: function() {\n\r\t\tvar hooks = Tween.propHooks[ this.prop ];\n\r\n\r\t\treturn hooks && hooks.get ?\n\r\t\t\thooks.get( this ) :\n\r\t\t\tTween.propHooks._default.get( this );\n\r\t},\n\r\trun: function( percent ) {\n\r\t\tvar eased,\n\r\t\t\thooks = Tween.propHooks[ this.prop ];\n\r\n\r\t\tif ( this.options.duration ) {\n\r\t\t\tthis.pos = eased = jQuery.easing[ this.easing ](\n\r\t\t\t\tpercent, this.options.duration * percent, 0, 1, this.options.duration\n\r\t\t\t);\n\r\t\t} else {\n\r\t\t\tthis.pos = eased = percent;\n\r\t\t}\n\r\t\tthis.now = ( this.end - this.start ) * eased + this.start;\n\r\n\r\t\tif ( this.options.step ) {\n\r\t\t\tthis.options.step.call( this.elem, this.now, this );\n\r\t\t}\n\r\n\r\t\tif ( hooks && hooks.set ) {\n\r\t\t\thooks.set( this );\n\r\t\t} else {\n\r\t\t\tTween.propHooks._default.set( this );\n\r\t\t}\n\r\t\treturn this;\n\r\t}\n\r};\n\r\n\rTween.prototype.init.prototype = Tween.prototype;\n\r\n\rTween.propHooks = {\n\r\t_default: {\n\r\t\tget: function( tween ) {\n\r\t\t\tvar result;\n\r\n\r\t\t\t// Use a property on the element directly when it is not a DOM element,\n\r\t\t\t// or when there is no matching style property that exists.\n\r\t\t\tif ( tween.elem.nodeType !== 1 ||\n\r\t\t\t\ttween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {\n\r\t\t\t\treturn tween.elem[ tween.prop ];\n\r\t\t\t}\n\r\n\r\t\t\t// Passing an empty string as a 3rd parameter to .css will automatically\n\r\t\t\t// attempt a parseFloat and fallback to a string if the parse fails.\n\r\t\t\t// Simple values such as \"10px\" are parsed to Float;\n\r\t\t\t// complex values such as \"rotate(1rad)\" are returned as-is.\n\r\t\t\tresult = jQuery.css( tween.elem, tween.prop, \"\" );\n\r\n\r\t\t\t// Empty strings, null, undefined and \"auto\" are converted to 0.\n\r\t\t\treturn !result || result === \"auto\" ? 0 : result;\n\r\t\t},\n\r\t\tset: function( tween ) {\n\r\n\r\t\t\t// Use step hook for back compat.\n\r\t\t\t// Use cssHook if its there.\n\r\t\t\t// Use .style if available and use plain properties where available.\n\r\t\t\tif ( jQuery.fx.step[ tween.prop ] ) {\n\r\t\t\t\tjQuery.fx.step[ tween.prop ]( tween );\n\r\t\t\t} else if ( tween.elem.nodeType === 1 && (\n\r\t\t\t\t\tjQuery.cssHooks[ tween.prop ] ||\n\r\t\t\t\t\ttween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {\n\r\t\t\t\tjQuery.style( tween.elem, tween.prop, tween.now + tween.unit );\n\r\t\t\t} else {\n\r\t\t\t\ttween.elem[ tween.prop ] = tween.now;\n\r\t\t\t}\n\r\t\t}\n\r\t}\n\r};\n\r\n\r// Support: IE <=9 only\n\r// Panic based approach to setting things on disconnected nodes\n\rTween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n\r\tset: function( tween ) {\n\r\t\tif ( tween.elem.nodeType && tween.elem.parentNode ) {\n\r\t\t\ttween.elem[ tween.prop ] = tween.now;\n\r\t\t}\n\r\t}\n\r};\n\r\n\rjQuery.easing = {\n\r\tlinear: function( p ) {\n\r\t\treturn p;\n\r\t},\n\r\tswing: function( p ) {\n\r\t\treturn 0.5 - Math.cos( p * Math.PI ) / 2;\n\r\t},\n\r\t_default: \"swing\"\n\r};\n\r\n\rjQuery.fx = Tween.prototype.init;\n\r\n\r// Back compat <1.8 extension point\n\rjQuery.fx.step = {};\n\r\n\r\n\r\n\r\n\rvar\n\r\tfxNow, inProgress,\n\r\trfxtypes = /^(?:toggle|show|hide)$/,\n\r\trrun = /queueHooks$/;\n\r\n\rfunction schedule() {\n\r\tif ( inProgress ) {\n\r\t\tif ( document.hidden === false && window.requestAnimationFrame ) {\n\r\t\t\twindow.requestAnimationFrame( schedule );\n\r\t\t} else {\n\r\t\t\twindow.setTimeout( schedule, jQuery.fx.interval );\n\r\t\t}\n\r\n\r\t\tjQuery.fx.tick();\n\r\t}\n\r}\n\r\n\r// Animations created synchronously will run synchronously\n\rfunction createFxNow() {\n\r\twindow.setTimeout( function() {\n\r\t\tfxNow = undefined;\n\r\t} );\n\r\treturn ( fxNow = Date.now() );\n\r}\n\r\n\r// Generate parameters to create a standard animation\n\rfunction genFx( type, includeWidth ) {\n\r\tvar which,\n\r\t\ti = 0,\n\r\t\tattrs = { height: type };\n\r\n\r\t// If we include width, step value is 1 to do all cssExpand values,\n\r\t// otherwise step value is 2 to skip over Left and Right\n\r\tincludeWidth = includeWidth ? 1 : 0;\n\r\tfor ( ; i < 4; i += 2 - includeWidth ) {\n\r\t\twhich = cssExpand[ i ];\n\r\t\tattrs[ \"margin\" + which ] = attrs[ \"padding\" + which ] = type;\n\r\t}\n\r\n\r\tif ( includeWidth ) {\n\r\t\tattrs.opacity = attrs.width = type;\n\r\t}\n\r\n\r\treturn attrs;\n\r}\n\r\n\rfunction createTween( value, prop, animation ) {\n\r\tvar tween,\n\r\t\tcollection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ \"*\" ] ),\n\r\t\tindex = 0,\n\r\t\tlength = collection.length;\n\r\tfor ( ; index < length; index++ ) {\n\r\t\tif ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {\n\r\n\r\t\t\t// We're done with this property\n\r\t\t\treturn tween;\n\r\t\t}\n\r\t}\n\r}\n\r\n\rfunction defaultPrefilter( elem, props, opts ) {\n\r\tvar prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,\n\r\t\tisBox = \"width\" in props || \"height\" in props,\n\r\t\tanim = this,\n\r\t\torig = {},\n\r\t\tstyle = elem.style,\n\r\t\thidden = elem.nodeType && isHiddenWithinTree( elem ),\n\r\t\tdataShow = dataPriv.get( elem, \"fxshow\" );\n\r\n\r\t// Queue-skipping animations hijack the fx hooks\n\r\tif ( !opts.queue ) {\n\r\t\thooks = jQuery._queueHooks( elem, \"fx\" );\n\r\t\tif ( hooks.unqueued == null ) {\n\r\t\t\thooks.unqueued = 0;\n\r\t\t\toldfire = hooks.empty.fire;\n\r\t\t\thooks.empty.fire = function() {\n\r\t\t\t\tif ( !hooks.unqueued ) {\n\r\t\t\t\t\toldfire();\n\r\t\t\t\t}\n\r\t\t\t};\n\r\t\t}\n\r\t\thooks.unqueued++;\n\r\n\r\t\tanim.always( function() {\n\r\n\r\t\t\t// Ensure the complete handler is called before this completes\n\r\t\t\tanim.always( function() {\n\r\t\t\t\thooks.unqueued--;\n\r\t\t\t\tif ( !jQuery.queue( elem, \"fx\" ).length ) {\n\r\t\t\t\t\thooks.empty.fire();\n\r\t\t\t\t}\n\r\t\t\t} );\n\r\t\t} );\n\r\t}\n\r\n\r\t// Detect show/hide animations\n\r\tfor ( prop in props ) {\n\r\t\tvalue = props[ prop ];\n\r\t\tif ( rfxtypes.test( value ) ) {\n\r\t\t\tdelete props[ prop ];\n\r\t\t\ttoggle = toggle || value === \"toggle\";\n\r\t\t\tif ( value === ( hidden ? \"hide\" : \"show\" ) ) {\n\r\n\r\t\t\t\t// Pretend to be hidden if this is a \"show\" and\n\r\t\t\t\t// there is still data from a stopped show/hide\n\r\t\t\t\tif ( value === \"show\" && dataShow && dataShow[ prop ] !== undefined ) {\n\r\t\t\t\t\thidden = true;\n\r\n\r\t\t\t\t// Ignore all other no-op show/hide data\n\r\t\t\t\t} else {\n\r\t\t\t\t\tcontinue;\n\r\t\t\t\t}\n\r\t\t\t}\n\r\t\t\torig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );\n\r\t\t}\n\r\t}\n\r\n\r\t// Bail out if this is a no-op like .hide().hide()\n\r\tpropTween = !jQuery.isEmptyObject( props );\n\r\tif ( !propTween && jQuery.isEmptyObject( orig ) ) {\n\r\t\treturn;\n\r\t}\n\r\n\r\t// Restrict \"overflow\" and \"display\" styles during box animations\n\r\tif ( isBox && elem.nodeType === 1 ) {\n\r\n\r\t\t// Support: IE <=9 - 11, Edge 12 - 15\n\r\t\t// Record all 3 overflow attributes because IE does not infer the shorthand\n\r\t\t// from identically-valued overflowX and overflowY and Edge just mirrors\n\r\t\t// the overflowX value there.\n\r\t\topts.overflow = [ style.overflow, style.overflowX, style.overflowY ];\n\r\n\r\t\t// Identify a display type, preferring old show/hide data over the CSS cascade\n\r\t\trestoreDisplay = dataShow && dataShow.display;\n\r\t\tif ( restoreDisplay == null ) {\n\r\t\t\trestoreDisplay = dataPriv.get( elem, \"display\" );\n\r\t\t}\n\r\t\tdisplay = jQuery.css( elem, \"display\" );\n\r\t\tif ( display === \"none\" ) {\n\r\t\t\tif ( restoreDisplay ) {\n\r\t\t\t\tdisplay = restoreDisplay;\n\r\t\t\t} else {\n\r\n\r\t\t\t\t// Get nonempty value(s) by temporarily forcing visibility\n\r\t\t\t\tshowHide( [ elem ], true );\n\r\t\t\t\trestoreDisplay = elem.style.display || restoreDisplay;\n\r\t\t\t\tdisplay = jQuery.css( elem, \"display\" );\n\r\t\t\t\tshowHide( [ elem ] );\n\r\t\t\t}\n\r\t\t}\n\r\n\r\t\t// Animate inline elements as inline-block\n\r\t\tif ( display === \"inline\" || display === \"inline-block\" && restoreDisplay != null ) {\n\r\t\t\tif ( jQuery.css( elem, \"float\" ) === \"none\" ) {\n\r\n\r\t\t\t\t// Restore the original display value at the end of pure show/hide animations\n\r\t\t\t\tif ( !propTween ) {\n\r\t\t\t\t\tanim.done( function() {\n\r\t\t\t\t\t\tstyle.display = restoreDisplay;\n\r\t\t\t\t\t} );\n\r\t\t\t\t\tif ( restoreDisplay == null ) {\n\r\t\t\t\t\t\tdisplay = style.display;\n\r\t\t\t\t\t\trestoreDisplay = display === \"none\" ? \"\" : display;\n\r\t\t\t\t\t}\n\r\t\t\t\t}\n\r\t\t\t\tstyle.display = \"inline-block\";\n\r\t\t\t}\n\r\t\t}\n\r\t}\n\r\n\r\tif ( opts.overflow ) {\n\r\t\tstyle.overflow = \"hidden\";\n\r\t\tanim.always( function() {\n\r\t\t\tstyle.overflow = opts.overflow[ 0 ];\n\r\t\t\tstyle.overflowX = opts.overflow[ 1 ];\n\r\t\t\tstyle.overflowY = opts.overflow[ 2 ];\n\r\t\t} );\n\r\t}\n\r\n\r\t// Implement show/hide animations\n\r\tpropTween = false;\n\r\tfor ( prop in orig ) {\n\r\n\r\t\t// General show/hide setup for this element animation\n\r\t\tif ( !propTween ) {\n\r\t\t\tif ( dataShow ) {\n\r\t\t\t\tif ( \"hidden\" in dataShow ) {\n\r\t\t\t\t\thidden = dataShow.hidden;\n\r\t\t\t\t}\n\r\t\t\t} else {\n\r\t\t\t\tdataShow = dataPriv.access( elem, \"fxshow\", { display: restoreDisplay } );\n\r\t\t\t}\n\r\n\r\t\t\t// Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\r\t\t\tif ( toggle ) {\n\r\t\t\t\tdataShow.hidden = !hidden;\n\r\t\t\t}\n\r\n\r\t\t\t// Show elements before animating them\n\r\t\t\tif ( hidden ) {\n\r\t\t\t\tshowHide( [ elem ], true );\n\r\t\t\t}\n\r\n\r\t\t\t/* eslint-disable no-loop-func */\n\r\n\r\t\t\tanim.done( function() {\n\r\n\r\t\t\t/* eslint-enable no-loop-func */\n\r\n\r\t\t\t\t// The final step of a \"hide\" animation is actually hiding the element\n\r\t\t\t\tif ( !hidden ) {\n\r\t\t\t\t\tshowHide( [ elem ] );\n\r\t\t\t\t}\n\r\t\t\t\tdataPriv.remove( elem, \"fxshow\" );\n\r\t\t\t\tfor ( prop in orig ) {\n\r\t\t\t\t\tjQuery.style( elem, prop, orig[ prop ] );\n\r\t\t\t\t}\n\r\t\t\t} );\n\r\t\t}\n\r\n\r\t\t// Per-property setup\n\r\t\tpropTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );\n\r\t\tif ( !( prop in dataShow ) ) {\n\r\t\t\tdataShow[ prop ] = propTween.start;\n\r\t\t\tif ( hidden ) {\n\r\t\t\t\tpropTween.end = propTween.start;\n\r\t\t\t\tpropTween.start = 0;\n\r\t\t\t}\n\r\t\t}\n\r\t}\n\r}\n\r\n\rfunction propFilter( props, specialEasing ) {\n\r\tvar index, name, easing, value, hooks;\n\r\n\r\t// camelCase, specialEasing and expand cssHook pass\n\r\tfor ( index in props ) {\n\r\t\tname = camelCase( index );\n\r\t\teasing = specialEasing[ name ];\n\r\t\tvalue = props[ index ];\n\r\t\tif ( Array.isArray( value ) ) {\n\r\t\t\teasing = value[ 1 ];\n\r\t\t\tvalue = props[ index ] = value[ 0 ];\n\r\t\t}\n\r\n\r\t\tif ( index !== name ) {\n\r\t\t\tprops[ name ] = value;\n\r\t\t\tdelete props[ index ];\n\r\t\t}\n\r\n\r\t\thooks = jQuery.cssHooks[ name ];\n\r\t\tif ( hooks && \"expand\" in hooks ) {\n\r\t\t\tvalue = hooks.expand( value );\n\r\t\t\tdelete props[ name ];\n\r\n\r\t\t\t// Not quite $.extend, this won't overwrite existing keys.\n\r\t\t\t// Reusing 'index' because we have the correct \"name\"\n\r\t\t\tfor ( index in value ) {\n\r\t\t\t\tif ( !( index in props ) ) {\n\r\t\t\t\t\tprops[ index ] = value[ index ];\n\r\t\t\t\t\tspecialEasing[ index ] = easing;\n\r\t\t\t\t}\n\r\t\t\t}\n\r\t\t} else {\n\r\t\t\tspecialEasing[ name ] = easing;\n\r\t\t}\n\r\t}\n\r}\n\r\n\rfunction Animation( elem, properties, options ) {\n\r\tvar result,\n\r\t\tstopped,\n\r\t\tindex = 0,\n\r\t\tlength = Animation.prefilters.length,\n\r\t\tdeferred = jQuery.Deferred().always( function() {\n\r\n\r\t\t\t// Don't match elem in the :animated selector\n\r\t\t\tdelete tick.elem;\n\r\t\t} ),\n\r\t\ttick = function() {\n\r\t\t\tif ( stopped ) {\n\r\t\t\t\treturn false;\n\r\t\t\t}\n\r\t\t\tvar currentTime = fxNow || createFxNow(),\n\r\t\t\t\tremaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),\n\r\n\r\t\t\t\t// Support: Android 2.3 only\n\r\t\t\t\t// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)\n\r\t\t\t\ttemp = remaining / animation.duration || 0,\n\r\t\t\t\tpercent = 1 - temp,\n\r\t\t\t\tindex = 0,\n\r\t\t\t\tlength = animation.tweens.length;\n\r\n\r\t\t\tfor ( ; index < length; index++ ) {\n\r\t\t\t\tanimation.tweens[ index ].run( percent );\n\r\t\t\t}\n\r\n\r\t\t\tdeferred.notifyWith( elem, [ animation, percent, remaining ] );\n\r\n\r\t\t\t// If there's more to do, yield\n\r\t\t\tif ( percent < 1 && length ) {\n\r\t\t\t\treturn remaining;\n\r\t\t\t}\n\r\n\r\t\t\t// If this was an empty animation, synthesize a final progress notification\n\r\t\t\tif ( !length ) {\n\r\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\r\t\t\t}\n\r\n\r\t\t\t// Resolve the animation and report its conclusion\n\r\t\t\tdeferred.resolveWith( elem, [ animation ] );\n\r\t\t\treturn false;\n\r\t\t},\n\r\t\tanimation = deferred.promise( {\n\r\t\t\telem: elem,\n\r\t\t\tprops: jQuery.extend( {}, properties ),\n\r\t\t\topts: jQuery.extend( true, {\n\r\t\t\t\tspecialEasing: {},\n\r\t\t\t\teasing: jQuery.easing._default\n\r\t\t\t}, options ),\n\r\t\t\toriginalProperties: properties,\n\r\t\t\toriginalOptions: options,\n\r\t\t\tstartTime: fxNow || createFxNow(),\n\r\t\t\tduration: options.duration,\n\r\t\t\ttweens: [],\n\r\t\t\tcreateTween: function( prop, end ) {\n\r\t\t\t\tvar tween = jQuery.Tween( elem, animation.opts, prop, end,\n\r\t\t\t\t\t\tanimation.opts.specialEasing[ prop ] || animation.opts.easing );\n\r\t\t\t\tanimation.tweens.push( tween );\n\r\t\t\t\treturn tween;\n\r\t\t\t},\n\r\t\t\tstop: function( gotoEnd ) {\n\r\t\t\t\tvar index = 0,\n\r\n\r\t\t\t\t\t// If we are going to the end, we want to run all the tweens\n\r\t\t\t\t\t// otherwise we skip this part\n\r\t\t\t\t\tlength = gotoEnd ? animation.tweens.length : 0;\n\r\t\t\t\tif ( stopped ) {\n\r\t\t\t\t\treturn this;\n\r\t\t\t\t}\n\r\t\t\t\tstopped = true;\n\r\t\t\t\tfor ( ; index < length; index++ ) {\n\r\t\t\t\t\tanimation.tweens[ index ].run( 1 );\n\r\t\t\t\t}\n\r\n\r\t\t\t\t// Resolve when we played the last frame; otherwise, reject\n\r\t\t\t\tif ( gotoEnd ) {\n\r\t\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\r\t\t\t\t\tdeferred.resolveWith( elem, [ animation, gotoEnd ] );\n\r\t\t\t\t} else {\n\r\t\t\t\t\tdeferred.rejectWith( elem, [ animation, gotoEnd ] );\n\r\t\t\t\t}\n\r\t\t\t\treturn this;\n\r\t\t\t}\n\r\t\t} ),\n\r\t\tprops = animation.props;\n\r\n\r\tpropFilter( props, animation.opts.specialEasing );\n\r\n\r\tfor ( ; index < length; index++ ) {\n\r\t\tresult = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );\n\r\t\tif ( result ) {\n\r\t\t\tif ( isFunction( result.stop ) ) {\n\r\t\t\t\tjQuery._queueHooks( animation.elem, animation.opts.queue ).stop =\n\r\t\t\t\t\tresult.stop.bind( result );\n\r\t\t\t}\n\r\t\t\treturn result;\n\r\t\t}\n\r\t}\n\r\n\r\tjQuery.map( props, createTween, animation );\n\r\n\r\tif ( isFunction( animation.opts.start ) ) {\n\r\t\tanimation.opts.start.call( elem, animation );\n\r\t}\n\r\n\r\t// Attach callbacks from options\n\r\tanimation\n\r\t\t.progress( animation.opts.progress )\n\r\t\t.done( animation.opts.done, animation.opts.complete )\n\r\t\t.fail( animation.opts.fail )\n\r\t\t.always( animation.opts.always );\n\r\n\r\tjQuery.fx.timer(\n\r\t\tjQuery.extend( tick, {\n\r\t\t\telem: elem,\n\r\t\t\tanim: animation,\n\r\t\t\tqueue: animation.opts.queue\n\r\t\t} )\n\r\t);\n\r\n\r\treturn animation;\n\r}\n\r\n\rjQuery.Animation = jQuery.extend( Animation, {\n\r\n\r\ttweeners: {\n\r\t\t\"*\": [ function( prop, value ) {\n\r\t\t\tvar tween = this.createTween( prop, value );\n\r\t\t\tadjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );\n\r\t\t\treturn tween;\n\r\t\t} ]\n\r\t},\n\r\n\r\ttweener: function( props, callback ) {\n\r\t\tif ( isFunction( props ) ) {\n\r\t\t\tcallback = props;\n\r\t\t\tprops = [ \"*\" ];\n\r\t\t} else {\n\r\t\t\tprops = props.match( rnothtmlwhite );\n\r\t\t}\n\r\n\r\t\tvar prop,\n\r\t\t\tindex = 0,\n\r\t\t\tlength = props.length;\n\r\n\r\t\tfor ( ; index < length; index++ ) {\n\r\t\t\tprop = props[ index ];\n\r\t\t\tAnimation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];\n\r\t\t\tAnimation.tweeners[ prop ].unshift( callback );\n\r\t\t}\n\r\t},\n\r\n\r\tprefilters: [ defaultPrefilter ],\n\r\n\r\tprefilter: function( callback, prepend ) {\n\r\t\tif ( prepend ) {\n\r\t\t\tAnimation.prefilters.unshift( callback );\n\r\t\t} else {\n\r\t\t\tAnimation.prefilters.push( callback );\n\r\t\t}\n\r\t}\n\r} );\n\r\n\rjQuery.speed = function( speed, easing, fn ) {\n\r\tvar opt = speed && typeof speed === \"object\" ? jQuery.extend( {}, speed ) : {\n\r\t\tcomplete: fn || !fn && easing ||\n\r\t\t\tisFunction( speed ) && speed,\n\r\t\tduration: speed,\n\r\t\teasing: fn && easing || easing && !isFunction( easing ) && easing\n\r\t};\n\r\n\r\t// Go to the end state if fx are off\n\r\tif ( jQuery.fx.off ) {\n\r\t\topt.duration = 0;\n\r\n\r\t} else {\n\r\t\tif ( typeof opt.duration !== \"number\" ) {\n\r\t\t\tif ( opt.duration in jQuery.fx.speeds ) {\n\r\t\t\t\topt.duration = jQuery.fx.speeds[ opt.duration ];\n\r\n\r\t\t\t} else {\n\r\t\t\t\topt.duration = jQuery.fx.speeds._default;\n\r\t\t\t}\n\r\t\t}\n\r\t}\n\r\n\r\t// Normalize opt.queue - true/undefined/null -> \"fx\"\n\r\tif ( opt.queue == null || opt.queue === true ) {\n\r\t\topt.queue = \"fx\";\n\r\t}\n\r\n\r\t// Queueing\n\r\topt.old = opt.complete;\n\r\n\r\topt.complete = function() {\n\r\t\tif ( isFunction( opt.old ) ) {\n\r\t\t\topt.old.call( this );\n\r\t\t}\n\r\n\r\t\tif ( opt.queue ) {\n\r\t\t\tjQuery.dequeue( this, opt.queue );\n\r\t\t}\n\r\t};\n\r\n\r\treturn opt;\n\r};\n\r\n\rjQuery.fn.extend( {\n\r\tfadeTo: function( speed, to, easing, callback ) {\n\r\n\r\t\t// Show any hidden elements after setting opacity to 0\n\r\t\treturn this.filter( isHiddenWithinTree ).css( \"opacity\", 0 ).show()\n\r\n\r\t\t\t// Animate to the value specified\n\r\t\t\t.end().animate( { opacity: to }, speed, easing, callback );\n\r\t},\n\r\tanimate: function( prop, speed, easing, callback ) {\n\r\t\tvar empty = jQuery.isEmptyObject( prop ),\n\r\t\t\toptall = jQuery.speed( speed, easing, callback ),\n\r\t\t\tdoAnimation = function() {\n\r\n\r\t\t\t\t// Operate on a copy of prop so per-property easing won't be lost\n\r\t\t\t\tvar anim = Animation( this, jQuery.extend( {}, prop ), optall );\n\r\n\r\t\t\t\t// Empty animations, or finishing resolves immediately\n\r\t\t\t\tif ( empty || dataPriv.get( this, \"finish\" ) ) {\n\r\t\t\t\t\tanim.stop( true );\n\r\t\t\t\t}\n\r\t\t\t};\n\r\t\t\tdoAnimation.finish = doAnimation;\n\r\n\r\t\treturn empty || optall.queue === false ?\n\r\t\t\tthis.each( doAnimation ) :\n\r\t\t\tthis.queue( optall.queue, doAnimation );\n\r\t},\n\r\tstop: function( type, clearQueue, gotoEnd ) {\n\r\t\tvar stopQueue = function( hooks ) {\n\r\t\t\tvar stop = hooks.stop;\n\r\t\t\tdelete hooks.stop;\n\r\t\t\tstop( gotoEnd );\n\r\t\t};\n\r\n\r\t\tif ( typeof type !== \"string\" ) {\n\r\t\t\tgotoEnd = clearQueue;\n\r\t\t\tclearQueue = type;\n\r\t\t\ttype = undefined;\n\r\t\t}\n\r\t\tif ( clearQueue && type !== false ) {\n\r\t\t\tthis.queue( type || \"fx\", [] );\n\r\t\t}\n\r\n\r\t\treturn this.each( function() {\n\r\t\t\tvar dequeue = true,\n\r\t\t\t\tindex = type != null && type + \"queueHooks\",\n\r\t\t\t\ttimers = jQuery.timers,\n\r\t\t\t\tdata = dataPriv.get( this );\n\r\n\r\t\t\tif ( index ) {\n\r\t\t\t\tif ( data[ index ] && data[ index ].stop ) {\n\r\t\t\t\t\tstopQueue( data[ index ] );\n\r\t\t\t\t}\n\r\t\t\t} else {\n\r\t\t\t\tfor ( index in data ) {\n\r\t\t\t\t\tif ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {\n\r\t\t\t\t\t\tstopQueue( data[ index ] );\n\r\t\t\t\t\t}\n\r\t\t\t\t}\n\r\t\t\t}\n\r\n\r\t\t\tfor ( index = timers.length; index--; ) {\n\r\t\t\t\tif ( timers[ index ].elem === this &&\n\r\t\t\t\t\t( type == null || timers[ index ].queue === type ) ) {\n\r\n\r\t\t\t\t\ttimers[ index ].anim.stop( gotoEnd );\n\r\t\t\t\t\tdequeue = false;\n\r\t\t\t\t\ttimers.splice( index, 1 );\n\r\t\t\t\t}\n\r\t\t\t}\n\r\n\r\t\t\t// Start the next in the queue if the last step wasn't forced.\n\r\t\t\t// Timers currently will call their complete callbacks, which\n\r\t\t\t// will dequeue but only if they were gotoEnd.\n\r\t\t\tif ( dequeue || !gotoEnd ) {\n\r\t\t\t\tjQuery.dequeue( this, type );\n\r\t\t\t}\n\r\t\t} );\n\r\t},\n\r\tfinish: function( type ) {\n\r\t\tif ( type !== false ) {\n\r\t\t\ttype = type || \"fx\";\n\r\t\t}\n\r\t\treturn this.each( function() {\n\r\t\t\tvar index,\n\r\t\t\t\tdata = dataPriv.get( this ),\n\r\t\t\t\tqueue = data[ type + \"queue\" ],\n\r\t\t\t\thooks = data[ type + \"queueHooks\" ],\n\r\t\t\t\ttimers = jQuery.timers,\n\r\t\t\t\tlength = queue ? queue.length : 0;\n\r\n\r\t\t\t// Enable finishing flag on private data\n\r\t\t\tdata.finish = true;\n\r\n\r\t\t\t// Empty the queue first\n\r\t\t\tjQuery.queue( this, type, [] );\n\r\n\r\t\t\tif ( hooks && hooks.stop ) {\n\r\t\t\t\thooks.stop.call( this, true );\n\r\t\t\t}\n\r\n\r\t\t\t// Look for any active animations, and finish them\n\r\t\t\tfor ( index = timers.length; index--; ) {\n\r\t\t\t\tif ( timers[ index ].elem === this && timers[ index ].queue === type ) {\n\r\t\t\t\t\ttimers[ index ].anim.stop( true );\n\r\t\t\t\t\ttimers.splice( index, 1 );\n\r\t\t\t\t}\n\r\t\t\t}\n\r\n\r\t\t\t// Look for any animations in the old queue and finish them\n\r\t\t\tfor ( index = 0; index < length; index++ ) {\n\r\t\t\t\tif ( queue[ index ] && queue[ index ].finish ) {\n\r\t\t\t\t\tqueue[ index ].finish.call( this );\n\r\t\t\t\t}\n\r\t\t\t}\n\r\n\r\t\t\t// Turn off finishing flag\n\r\t\t\tdelete data.finish;\n\r\t\t} );\n\r\t}\n\r} );\n\r\n\rjQuery.each( [ \"toggle\", \"show\", \"hide\" ], function( i, name ) {\n\r\tvar cssFn = jQuery.fn[ name ];\n\r\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\r\t\treturn speed == null || typeof speed === \"boolean\" ?\n\r\t\t\tcssFn.apply( this, arguments ) :\n\r\t\t\tthis.animate( genFx( name, true ), speed, easing, callback );\n\r\t};\n\r} );\n\r\n\r// Generate shortcuts for custom animations\n\rjQuery.each( {\n\r\tslideDown: genFx( \"show\" ),\n\r\tslideUp: genFx( \"hide\" ),\n\r\tslideToggle: genFx( \"toggle\" ),\n\r\tfadeIn: { opacity: \"show\" },\n\r\tfadeOut: { opacity: \"hide\" },\n\r\tfadeToggle: { opacity: \"toggle\" }\n\r}, function( name, props ) {\n\r\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\r\t\treturn this.animate( props, speed, easing, callback );\n\r\t};\n\r} );\n\r\n\rjQuery.timers = [];\n\rjQuery.fx.tick = function() {\n\r\tvar timer,\n\r\t\ti = 0,\n\r\t\ttimers = jQuery.timers;\n\r\n\r\tfxNow = Date.now();\n\r\n\r\tfor ( ; i < timers.length; i++ ) {\n\r\t\ttimer = timers[ i ];\n\r\n\r\t\t// Run the timer and safely remove it when done (allowing for external removal)\n\r\t\tif ( !timer() && timers[ i ] === timer ) {\n\r\t\t\ttimers.splice( i--, 1 );\n\r\t\t}\n\r\t}\n\r\n\r\tif ( !timers.length ) {\n\r\t\tjQuery.fx.stop();\n\r\t}\n\r\tfxNow = undefined;\n\r};\n\r\n\rjQuery.fx.timer = function( timer ) {\n\r\tjQuery.timers.push( timer );\n\r\tjQuery.fx.start();\n\r};\n\r\n\rjQuery.fx.interval = 13;\n\rjQuery.fx.start = function() {\n\r\tif ( inProgress ) {\n\r\t\treturn;\n\r\t}\n\r\n\r\tinProgress = true;\n\r\tschedule();\n\r};\n\r\n\rjQuery.fx.stop = function() {\n\r\tinProgress = null;\n\r};\n\r\n\rjQuery.fx.speeds = {\n\r\tslow: 600,\n\r\tfast: 200,\n\r\n\r\t// Default speed\n\r\t_default: 400\n\r};\n\r\n\r\n\r// Based off of the plugin by Clint Helfers, with permission.\n\r// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/\n\rjQuery.fn.delay = function( time, type ) {\n\r\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\r\ttype = type || \"fx\";\n\r\n\r\treturn this.queue( type, function( next, hooks ) {\n\r\t\tvar timeout = window.setTimeout( next, time );\n\r\t\thooks.stop = function() {\n\r\t\t\twindow.clearTimeout( timeout );\n\r\t\t};\n\r\t} );\n\r};\n\r\n\r\n\r( function() {\n\r\tvar input = document.createElement( \"input\" ),\n\r\t\tselect = document.createElement( \"select\" ),\n\r\t\topt = select.appendChild( document.createElement( \"option\" ) );\n\r\n\r\tinput.type = \"checkbox\";\n\r\n\r\t// Support: Android <=4.3 only\n\r\t// Default value for a checkbox should be \"on\"\n\r\tsupport.checkOn = input.value !== \"\";\n\r\n\r\t// Support: IE <=11 only\n\r\t// Must access selectedIndex to make default options select\n\r\tsupport.optSelected = opt.selected;\n\r\n\r\t// Support: IE <=11 only\n\r\t// An input loses its value after becoming a radio\n\r\tinput = document.createElement( \"input\" );\n\r\tinput.value = \"t\";\n\r\tinput.type = \"radio\";\n\r\tsupport.radioValue = input.value === \"t\";\n\r} )();\n\r\n\r\n\rvar boolHook,\n\r\tattrHandle = jQuery.expr.attrHandle;\n\r\n\rjQuery.fn.extend( {\n\r\tattr: function( name, value ) {\n\r\t\treturn access( this, jQuery.attr, name, value, arguments.length > 1 );\n\r\t},\n\r\n\r\tremoveAttr: function( name ) {\n\r\t\treturn this.each( function() {\n\r\t\t\tjQuery.removeAttr( this, name );\n\r\t\t} );\n\r\t}\n\r} );\n\r\n\rjQuery.extend( {\n\r\tattr: function( elem, name, value ) {\n\r\t\tvar ret, hooks,\n\r\t\t\tnType = elem.nodeType;\n\r\n\r\t\t// Don't get/set attributes on text, comment and attribute nodes\n\r\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\r\t\t\treturn;\n\r\t\t}\n\r\n\r\t\t// Fallback to prop when attributes are not supported\n\r\t\tif ( typeof elem.getAttribute === \"undefined\" ) {\n\r\t\t\treturn jQuery.prop( elem, name, value );\n\r\t\t}\n\r\n\r\t\t// Attribute hooks are determined by the lowercase version\n\r\t\t// Grab necessary hook if one is defined\n\r\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\r\t\t\thooks = jQuery.attrHooks[ name.toLowerCase() ] ||\n\r\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );\n\r\t\t}\n\r\n\r\t\tif ( value !== undefined ) {\n\r\t\t\tif ( value === null ) {\n\r\t\t\t\tjQuery.removeAttr( elem, name );\n\r\t\t\t\treturn;\n\r\t\t\t}\n\r\n\r\t\t\tif ( hooks && \"set\" in hooks &&\n\r\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\r\t\t\t\treturn ret;\n\r\t\t\t}\n\r\n\r\t\t\telem.setAttribute( name, value + \"\" );\n\r\t\t\treturn value;\n\r\t\t}\n\r\n\r\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\r\t\t\treturn ret;\n\r\t\t}\n\r\n\r\t\tret = jQuery.find.attr( elem, name );\n\r\n\r\t\t// Non-existent attributes return null, we normalize to undefined\n\r\t\treturn ret == null ? undefined : ret;\n\r\t},\n\r\n\r\tattrHooks: {\n\r\t\ttype: {\n\r\t\t\tset: function( elem, value ) {\n\r\t\t\t\tif ( !support.radioValue && value === \"radio\" &&\n\r\t\t\t\t\tnodeName( elem, \"input\" ) ) {\n\r\t\t\t\t\tvar val = elem.value;\n\r\t\t\t\t\telem.setAttribute( \"type\", value );\n\r\t\t\t\t\tif ( val ) {\n\r\t\t\t\t\t\telem.value = val;\n\r\t\t\t\t\t}\n\r\t\t\t\t\treturn value;\n\r\t\t\t\t}\n\r\t\t\t}\n\r\t\t}\n\r\t},\n\r\n\r\tremoveAttr: function( elem, value ) {\n\r\t\tvar name,\n\r\t\t\ti = 0,\n\r\n\r\t\t\t// Attribute names can contain non-HTML whitespace characters\n\r\t\t\t// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n\r\t\t\tattrNames = value && value.match( rnothtmlwhite );\n\r\n\r\t\tif ( attrNames && elem.nodeType === 1 ) {\n\r\t\t\twhile ( ( name = attrNames[ i++ ] ) ) {\n\r\t\t\t\telem.removeAttribute( name );\n\r\t\t\t}\n\r\t\t}\n\r\t}\n\r} );\n\r\n\r// Hooks for boolean attributes\n\rboolHook = {\n\r\tset: function( elem, value, name ) {\n\r\t\tif ( value === false ) {\n\r\n\r\t\t\t// Remove boolean attributes when set to false\n\r\t\t\tjQuery.removeAttr( elem, name );\n\r\t\t} else {\n\r\t\t\telem.setAttribute( name, name );\n\r\t\t}\n\r\t\treturn name;\n\r\t}\n\r};\n\r\n\rjQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( i, name ) {\n\r\tvar getter = attrHandle[ name ] || jQuery.find.attr;\n\r\n\r\tattrHandle[ name ] = function( elem, name, isXML ) {\n\r\t\tvar ret, handle,\n\r\t\t\tlowercaseName = name.toLowerCase();\n\r\n\r\t\tif ( !isXML ) {\n\r\n\r\t\t\t// Avoid an infinite loop by temporarily removing this function from the getter\n\r\t\t\thandle = attrHandle[ lowercaseName ];\n\r\t\t\tattrHandle[ lowercaseName ] = ret;\n\r\t\t\tret = getter( elem, name, isXML ) != null ?\n\r\t\t\t\tlowercaseName :\n\r\t\t\t\tnull;\n\r\t\t\tattrHandle[ lowercaseName ] = handle;\n\r\t\t}\n\r\t\treturn ret;\n\r\t};\n\r} );\n\r\n\r\n\r\n\r\n\rvar rfocusable = /^(?:input|select|textarea|button)$/i,\n\r\trclickable = /^(?:a|area)$/i;\n\r\n\rjQuery.fn.extend( {\n\r\tprop: function( name, value ) {\n\r\t\treturn access( this, jQuery.prop, name, value, arguments.length > 1 );\n\r\t},\n\r\n\r\tremoveProp: function( name ) {\n\r\t\treturn this.each( function() {\n\r\t\t\tdelete this[ jQuery.propFix[ name ] || name ];\n\r\t\t} );\n\r\t}\n\r} );\n\r\n\rjQuery.extend( {\n\r\tprop: function( elem, name, value ) {\n\r\t\tvar ret, hooks,\n\r\t\t\tnType = elem.nodeType;\n\r\n\r\t\t// Don't get/set properties on text, comment and attribute nodes\n\r\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\r\t\t\treturn;\n\r\t\t}\n\r\n\r\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\r\n\r\t\t\t// Fix name and attach hooks\n\r\t\t\tname = jQuery.propFix[ name ] || name;\n\r\t\t\thooks = jQuery.propHooks[ name ];\n\r\t\t}\n\r\n\r\t\tif ( value !== undefined ) {\n\r\t\t\tif ( hooks && \"set\" in hooks &&\n\r\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\r\t\t\t\treturn ret;\n\r\t\t\t}\n\r\n\r\t\t\treturn ( elem[ name ] = value );\n\r\t\t}\n\r\n\r\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\r\t\t\treturn ret;\n\r\t\t}\n\r\n\r\t\treturn elem[ name ];\n\r\t},\n\r\n\r\tpropHooks: {\n\r\t\ttabIndex: {\n\r\t\t\tget: function( elem ) {\n\r\n\r\t\t\t\t// Support: IE <=9 - 11 only\n\r\t\t\t\t// elem.tabIndex doesn't always return the\n\r\t\t\t\t// correct value when it hasn't been explicitly set\n\r\t\t\t\t// https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\n\r\t\t\t\t// Use proper attribute retrieval(#12072)\n\r\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\n\r\n\r\t\t\t\tif ( tabindex ) {\n\r\t\t\t\t\treturn parseInt( tabindex, 10 );\n\r\t\t\t\t}\n\r\n\r\t\t\t\tif (\n\r\t\t\t\t\trfocusable.test( elem.nodeName ) ||\n\r\t\t\t\t\trclickable.test( elem.nodeName ) &&\n\r\t\t\t\t\telem.href\n\r\t\t\t\t) {\n\r\t\t\t\t\treturn 0;\n\r\t\t\t\t}\n\r\n\r\t\t\t\treturn -1;\n\r\t\t\t}\n\r\t\t}\n\r\t},\n\r\n\r\tpropFix: {\n\r\t\t\"for\": \"htmlFor\",\n\r\t\t\"class\": \"className\"\n\r\t}\n\r} );\n\r\n\r// Support: IE <=11 only\n\r// Accessing the selectedIndex property\n\r// forces the browser to respect setting selected\n\r// on the option\n\r// The getter ensures a default option is selected\n\r// when in an optgroup\n\r// eslint rule \"no-unused-expressions\" is disabled for this code\n\r// since it considers such accessions noop\n\rif ( !support.optSelected ) {\n\r\tjQuery.propHooks.selected = {\n\r\t\tget: function( elem ) {\n\r\n\r\t\t\t/* eslint no-unused-expressions: \"off\" */\n\r\n\r\t\t\tvar parent = elem.parentNode;\n\r\t\t\tif ( parent && parent.parentNode ) {\n\r\t\t\t\tparent.parentNode.selectedIndex;\n\r\t\t\t}\n\r\t\t\treturn null;\n\r\t\t},\n\r\t\tset: function( elem ) {\n\r\n\r\t\t\t/* eslint no-unused-expressions: \"off\" */\n\r\n\r\t\t\tvar parent = elem.parentNode;\n\r\t\t\tif ( parent ) {\n\r\t\t\t\tparent.selectedIndex;\n\r\n\r\t\t\t\tif ( parent.parentNode ) {\n\r\t\t\t\t\tparent.parentNode.selectedIndex;\n\r\t\t\t\t}\n\r\t\t\t}\n\r\t\t}\n\r\t};\n\r}\n\r\n\rjQuery.each( [\n\r\t\"tabIndex\",\n\r\t\"readOnly\",\n\r\t\"maxLength\",\n\r\t\"cellSpacing\",\n\r\t\"cellPadding\",\n\r\t\"rowSpan\",\n\r\t\"colSpan\",\n\r\t\"useMap\",\n\r\t\"frameBorder\",\n\r\t\"contentEditable\"\n\r], function() {\n\r\tjQuery.propFix[ this.toLowerCase() ] = this;\n\r} );\n\r\n\r\n\r\n\r\n\r\t// Strip and collapse whitespace according to HTML spec\n\r\t// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\r\tfunction stripAndCollapse( value ) {\n\r\t\tvar tokens = value.match( rnothtmlwhite ) || [];\n\r\t\treturn tokens.join( \" \" );\n\r\t}\n\r\n\r\n\rfunction getClass( elem ) {\n\r\treturn elem.getAttribute && elem.getAttribute( \"class\" ) || \"\";\n\r}\n\r\n\rfunction classesToArray( value ) {\n\r\tif ( Array.isArray( value ) ) {\n\r\t\treturn value;\n\r\t}\n\r\tif ( typeof value === \"string\" ) {\n\r\t\treturn value.match( rnothtmlwhite ) || [];\n\r\t}\n\r\treturn [];\n\r}\n\r\n\rjQuery.fn.extend( {\n\r\taddClass: function( value ) {\n\r\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\r\t\t\ti = 0;\n\r\n\r\t\tif ( isFunction( value ) ) {\n\r\t\t\treturn this.each( function( j ) {\n\r\t\t\t\tjQuery( this ).addClass( value.call( this, j, getClass( this ) ) );\n\r\t\t\t} );\n\r\t\t}\n\r\n\r\t\tclasses = classesToArray( value );\n\r\n\r\t\tif ( classes.length ) {\n\r\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\r\t\t\t\tcurValue = getClass( elem );\n\r\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\r\n\r\t\t\t\tif ( cur ) {\n\r\t\t\t\t\tj = 0;\n\r\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\r\t\t\t\t\t\tif ( cur.indexOf( \" \" + clazz + \" \" ) < 0 ) {\n\r\t\t\t\t\t\t\tcur += clazz + \" \";\n\r\t\t\t\t\t\t}\n\r\t\t\t\t\t}\n\r\n\r\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\r\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\r\t\t\t\t\tif ( curValue !== finalValue ) {\n\r\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\r\t\t\t\t\t}\n\r\t\t\t\t}\n\r\t\t\t}\n\r\t\t}\n\r\n\r\t\treturn this;\n\r\t},\n\r\n\r\tremoveClass: function( value ) {\n\r\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\r\t\t\ti = 0;\n\r\n\r\t\tif ( isFunction( value ) ) {\n\r\t\t\treturn this.each( function( j ) {\n\r\t\t\t\tjQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );\n\r\t\t\t} );\n\r\t\t}\n\r\n\r\t\tif ( !arguments.length ) {\n\r\t\t\treturn this.attr( \"class\", \"\" );\n\r\t\t}\n\r\n\r\t\tclasses = classesToArray( value );\n\r\n\r\t\tif ( classes.length ) {\n\r\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\r\t\t\t\tcurValue = getClass( elem );\n\r\n\r\t\t\t\t// This expression is here for better compressibility (see addClass)\n\r\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\r\n\r\t\t\t\tif ( cur ) {\n\r\t\t\t\t\tj = 0;\n\r\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\r\n\r\t\t\t\t\t\t// Remove *all* instances\n\r\t\t\t\t\t\twhile ( cur.indexOf( \" \" + clazz + \" \" ) > -1 ) {\n\r\t\t\t\t\t\t\tcur = cur.replace( \" \" + clazz + \" \", \" \" );\n\r\t\t\t\t\t\t}\n\r\t\t\t\t\t}\n\r\n\r\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\r\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\r\t\t\t\t\tif ( curValue !== finalValue ) {\n\r\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\r\t\t\t\t\t}\n\r\t\t\t\t}\n\r\t\t\t}\n\r\t\t}\n\r\n\r\t\treturn this;\n\r\t},\n\r\n\r\ttoggleClass: function( value, stateVal ) {\n\r\t\tvar type = typeof value,\n\r\t\t\tisValidValue = type === \"string\" || Array.isArray( value );\n\r\n\r\t\tif ( typeof stateVal === \"boolean\" && isValidValue ) {\n\r\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\r\t\t}\n\r\n\r\t\tif ( isFunction( value ) ) {\n\r\t\t\treturn this.each( function( i ) {\n\r\t\t\t\tjQuery( this ).toggleClass(\n\r\t\t\t\t\tvalue.call( this, i, getClass( this ), stateVal ),\n\r\t\t\t\t\tstateVal\n\r\t\t\t\t);\n\r\t\t\t} );\n\r\t\t}\n\r\n\r\t\treturn this.each( function() {\n\r\t\t\tvar className, i, self, classNames;\n\r\n\r\t\t\tif ( isValidValue ) {\n\r\n\r\t\t\t\t// Toggle individual class names\n\r\t\t\t\ti = 0;\n\r\t\t\t\tself = jQuery( this );\n\r\t\t\t\tclassNames = classesToArray( value );\n\r\n\r\t\t\t\twhile ( ( className = classNames[ i++ ] ) ) {\n\r\n\r\t\t\t\t\t// Check each className given, space separated list\n\r\t\t\t\t\tif ( self.hasClass( className ) ) {\n\r\t\t\t\t\t\tself.removeClass( className );\n\r\t\t\t\t\t} else {\n\r\t\t\t\t\t\tself.addClass( className );\n\r\t\t\t\t\t}\n\r\t\t\t\t}\n\r\n\r\t\t\t// Toggle whole class name\n\r\t\t\t} else if ( value === undefined || type === \"boolean\" ) {\n\r\t\t\t\tclassName = getClass( this );\n\r\t\t\t\tif ( className ) {\n\r\n\r\t\t\t\t\t// Store className if set\n\r\t\t\t\t\tdataPriv.set( this, \"__className__\", className );\n\r\t\t\t\t}\n\r\n\r\t\t\t\t// If the element has a class name or if we're passed `false`,\n\r\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\r\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\r\t\t\t\t// falling back to the empty string if nothing was stored.\n\r\t\t\t\tif ( this.setAttribute ) {\n\r\t\t\t\t\tthis.setAttribute( \"class\",\n\r\t\t\t\t\t\tclassName || value === false ?\n\r\t\t\t\t\t\t\"\" :\n\r\t\t\t\t\t\tdataPriv.get( this, \"__className__\" ) || \"\"\n\r\t\t\t\t\t);\n\r\t\t\t\t}\n\r\t\t\t}\n\r\t\t} );\n\r\t},\n\r\n\r\thasClass: function( selector ) {\n\r\t\tvar className, elem,\n\r\t\t\ti = 0;\n\r\n\r\t\tclassName = \" \" + selector + \" \";\n\r\t\twhile ( ( elem = this[ i++ ] ) ) {\n\r\t\t\tif ( elem.nodeType === 1 &&\n\r\t\t\t\t( \" \" + stripAndCollapse( getClass( elem ) ) + \" \" ).indexOf( className ) > -1 ) {\n\r\t\t\t\t\treturn true;\n\r\t\t\t}\n\r\t\t}\n\r\n\r\t\treturn false;\n\r\t}\n\r} );\n\r\n\r\n\r\n\r\n\rvar rreturn = /\\r/g;\n\r\n\rjQuery.fn.extend( {\n\r\tval: function( value ) {\n\r\t\tvar hooks, ret, valueIsFunction,\n\r\t\t\telem = this[ 0 ];\n\r\n\r\t\tif ( !arguments.length ) {\n\r\t\t\tif ( elem ) {\n\r\t\t\t\thooks = jQuery.valHooks[ elem.type ] ||\n\r\t\t\t\t\tjQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\r\n\r\t\t\t\tif ( hooks &&\n\r\t\t\t\t\t\"get\" in hooks &&\n\r\t\t\t\t\t( ret = hooks.get( elem, \"value\" ) ) !== undefined\n\r\t\t\t\t) {\n\r\t\t\t\t\treturn ret;\n\r\t\t\t\t}\n\r\n\r\t\t\t\tret = elem.value;\n\r\n\r\t\t\t\t// Handle most common string cases\n\r\t\t\t\tif ( typeof ret === \"string\" ) {\n\r\t\t\t\t\treturn ret.replace( rreturn, \"\" );\n\r\t\t\t\t}\n\r\n\r\t\t\t\t// Handle cases where value is null/undef or number\n\r\t\t\t\treturn ret == null ? \"\" : ret;\n\r\t\t\t}\n\r\n\r\t\t\treturn;\n\r\t\t}\n\r\n\r\t\tvalueIsFunction = isFunction( value );\n\r\n\r\t\treturn this.each( function( i ) {\n\r\t\t\tvar val;\n\r\n\r\t\t\tif ( this.nodeType !== 1 ) {\n\r\t\t\t\treturn;\n\r\t\t\t}\n\r\n\r\t\t\tif ( valueIsFunction ) {\n\r\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\n\r\t\t\t} else {\n\r\t\t\t\tval = value;\n\r\t\t\t}\n\r\n\r\t\t\t// Treat null/undefined as \"\"; convert numbers to string\n\r\t\t\tif ( val == null ) {\n\r\t\t\t\tval = \"\";\n\r\n\r\t\t\t} else if ( typeof val === \"number\" ) {\n\r\t\t\t\tval += \"\";\n\r\n\r\t\t\t} else if ( Array.isArray( val ) ) {\n\r\t\t\t\tval = jQuery.map( val, function( value ) {\n\r\t\t\t\t\treturn value == null ? \"\" : value + \"\";\n\r\t\t\t\t} );\n\r\t\t\t}\n\r\n\r\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\r\n\r\t\t\t// If set returns undefined, fall back to normal setting\n\r\t\t\tif ( !hooks || !( \"set\" in hooks ) || hooks.set( this, val, \"value\" ) === undefined ) {\n\r\t\t\t\tthis.value = val;\n\r\t\t\t}\n\r\t\t} );\n\r\t}\n\r} );\n\r\n\rjQuery.extend( {\n\r\tvalHooks: {\n\r\t\toption: {\n\r\t\t\tget: function( elem ) {\n\r\n\r\t\t\t\tvar val = jQuery.find.attr( elem, \"value\" );\n\r\t\t\t\treturn val != null ?\n\r\t\t\t\t\tval :\n\r\n\r\t\t\t\t\t// Support: IE <=10 - 11 only\n\r\t\t\t\t\t// option.text throws exceptions (#14686, #14858)\n\r\t\t\t\t\t// Strip and collapse whitespace\n\r\t\t\t\t\t// https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n\r\t\t\t\t\tstripAndCollapse( jQuery.text( elem ) );\n\r\t\t\t}\n\r\t\t},\n\r\t\tselect: {\n\r\t\t\tget: function( elem ) {\n\r\t\t\t\tvar value, option, i,\n\r\t\t\t\t\toptions = elem.options,\n\r\t\t\t\t\tindex = elem.selectedIndex,\n\r\t\t\t\t\tone = elem.type === \"select-one\",\n\r\t\t\t\t\tvalues = one ? null : [],\n\r\t\t\t\t\tmax = one ? index + 1 : options.length;\n\r\n\r\t\t\t\tif ( index < 0 ) {\n\r\t\t\t\t\ti = max;\n\r\n\r\t\t\t\t} else {\n\r\t\t\t\t\ti = one ? index : 0;\n\r\t\t\t\t}\n\r\n\r\t\t\t\t// Loop through all the selected options\n\r\t\t\t\tfor ( ; i < max; i++ ) {\n\r\t\t\t\t\toption = options[ i ];\n\r\n\r\t\t\t\t\t// Support: IE <=9 only\n\r\t\t\t\t\t// IE8-9 doesn't update selected after form reset (#2551)\n\r\t\t\t\t\tif ( ( option.selected || i === index ) &&\n\r\n\r\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\r\t\t\t\t\t\t\t!option.disabled &&\n\r\t\t\t\t\t\t\t( !option.parentNode.disabled ||\n\r\t\t\t\t\t\t\t\t!nodeName( option.parentNode, \"optgroup\" ) ) ) {\n\r\n\r\t\t\t\t\t\t// Get the specific value for the option\n\r\t\t\t\t\t\tvalue = jQuery( option ).val();\n\r\n\r\t\t\t\t\t\t// We don't need an array for one selects\n\r\t\t\t\t\t\tif ( one ) {\n\r\t\t\t\t\t\t\treturn value;\n\r\t\t\t\t\t\t}\n\r\n\r\t\t\t\t\t\t// Multi-Selects return an array\n\r\t\t\t\t\t\tvalues.push( value );\n\r\t\t\t\t\t}\n\r\t\t\t\t}\n\r\n\r\t\t\t\treturn values;\n\r\t\t\t},\n\r\n\r\t\t\tset: function( elem, value ) {\n\r\t\t\t\tvar optionSet, option,\n\r\t\t\t\t\toptions = elem.options,\n\r\t\t\t\t\tvalues = jQuery.makeArray( value ),\n\r\t\t\t\t\ti = options.length;\n\r\n\r\t\t\t\twhile ( i-- ) {\n\r\t\t\t\t\toption = options[ i ];\n\r\n\r\t\t\t\t\t/* eslint-disable no-cond-assign */\n\r\n\r\t\t\t\t\tif ( option.selected =\n\r\t\t\t\t\t\tjQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1\n\r\t\t\t\t\t) {\n\r\t\t\t\t\t\toptionSet = true;\n\r\t\t\t\t\t}\n\r\n\r\t\t\t\t\t/* eslint-enable no-cond-assign */\n\r\t\t\t\t}\n\r\n\r\t\t\t\t// Force browsers to behave consistently when non-matching value is set\n\r\t\t\t\tif ( !optionSet ) {\n\r\t\t\t\t\telem.selectedIndex = -1;\n\r\t\t\t\t}\n\r\t\t\t\treturn values;\n\r\t\t\t}\n\r\t\t}\n\r\t}\n\r} );\n\r\n\r// Radios and checkboxes getter/setter\n\rjQuery.each( [ \"radio\", \"checkbox\" ], function() {\n\r\tjQuery.valHooks[ this ] = {\n\r\t\tset: function( elem, value ) {\n\r\t\t\tif ( Array.isArray( value ) ) {\n\r\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );\n\r\t\t\t}\n\r\t\t}\n\r\t};\n\r\tif ( !support.checkOn ) {\n\r\t\tjQuery.valHooks[ this ].get = function( elem ) {\n\r\t\t\treturn elem.getAttribute( \"value\" ) === null ? \"on\" : elem.value;\n\r\t\t};\n\r\t}\n\r} );\n\r\n\r\n\r\n\r\n\r// Return jQuery for attributes-only inclusion\n\r\n\r\n\rsupport.focusin = \"onfocusin\" in window;\n\r\n\r\n\rvar rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\r\tstopPropagationCallback = function( e ) {\n\r\t\te.stopPropagation();\n\r\t};\n\r\n\rjQuery.extend( jQuery.event, {\n\r\n\r\ttrigger: function( event, data, elem, onlyHandlers ) {\n\r\n\r\t\tvar i, cur, tmp, bubbleType, ontype, handle, special, lastElement,\n\r\t\t\teventPath = [ elem || document ],\n\r\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\r\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split( \".\" ) : [];\n\r\n\r\t\tcur = lastElement = tmp = elem = elem || document;\n\r\n\r\t\t// Don't do events on text and comment nodes\n\r\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\r\t\t\treturn;\n\r\t\t}\n\r\n\r\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\r\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\r\t\t\treturn;\n\r\t\t}\n\r\n\r\t\tif ( type.indexOf( \".\" ) > -1 ) {\n\r\n\r\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\r\t\t\tnamespaces = type.split( \".\" );\n\r\t\t\ttype = namespaces.shift();\n\r\t\t\tnamespaces.sort();\n\r\t\t}\n\r\t\tontype = type.indexOf( \":\" ) < 0 && \"on\" + type;\n\r\n\r\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\r\t\tevent = event[ jQuery.expando ] ?\n\r\t\t\tevent :\n\r\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\r\n\r\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\r\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\r\t\tevent.namespace = namespaces.join( \".\" );\n\r\t\tevent.rnamespace = event.namespace ?\n\r\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" ) :\n\r\t\t\tnull;\n\r\n\r\t\t// Clean up the event in case it is being reused\n\r\t\tevent.result = undefined;\n\r\t\tif ( !event.target ) {\n\r\t\t\tevent.target = elem;\n\r\t\t}\n\r\n\r\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\r\t\tdata = data == null ?\n\r\t\t\t[ event ] :\n\r\t\t\tjQuery.makeArray( data, [ event ] );\n\r\n\r\t\t// Allow special events to draw outside the lines\n\r\t\tspecial = jQuery.event.special[ type ] || {};\n\r\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\r\t\t\treturn;\n\r\t\t}\n\r\n\r\t\t// Determine event propagation path in advance, per W3C events spec (#9951)\n\r\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\r\t\tif ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {\n\r\n\r\t\t\tbubbleType = special.delegateType || type;\n\r\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\r\t\t\t\tcur = cur.parentNode;\n\r\t\t\t}\n\r\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\r\t\t\t\teventPath.push( cur );\n\r\t\t\t\ttmp = cur;\n\r\t\t\t}\n\r\n\r\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\r\t\t\tif ( tmp === ( elem.ownerDocument || document ) ) {\n\r\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\r\t\t\t}\n\r\t\t}\n\r\n\r\t\t// Fire handlers on the event path\n\r\t\ti = 0;\n\r\t\twhile ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {\n\r\t\t\tlastElement = cur;\n\r\t\t\tevent.type = i > 1 ?\n\r\t\t\t\tbubbleType :\n\r\t\t\t\tspecial.bindType || type;\n\r\n\r\t\t\t// jQuery handler\n\r\t\t\thandle = ( dataPriv.get( cur, \"events\" ) || {} )[ event.type ] &&\n\r\t\t\t\tdataPriv.get( cur, \"handle\" );\n\r\t\t\tif ( handle ) {\n\r\t\t\t\thandle.apply( cur, data );\n\r\t\t\t}\n\r\n\r\t\t\t// Native handler\n\r\t\t\thandle = ontype && cur[ ontype ];\n\r\t\t\tif ( handle && handle.apply && acceptData( cur ) ) {\n\r\t\t\t\tevent.result = handle.apply( cur, data );\n\r\t\t\t\tif ( event.result === false ) {\n\r\t\t\t\t\tevent.preventDefault();\n\r\t\t\t\t}\n\r\t\t\t}\n\r\t\t}\n\r\t\tevent.type = type;\n\r\n\r\t\t// If nobody prevented the default action, do it now\n\r\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\r\n\r\t\t\tif ( ( !special._default ||\n\r\t\t\t\tspecial._default.apply( eventPath.pop(), data ) === false ) &&\n\r\t\t\t\tacceptData( elem ) ) {\n\r\n\r\t\t\t\t// Call a native DOM method on the target with the same name as the event.\n\r\t\t\t\t// Don't do default actions on window, that's where global variables be (#6170)\n\r\t\t\t\tif ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {\n\r\n\r\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\r\t\t\t\t\ttmp = elem[ ontype ];\n\r\n\r\t\t\t\t\tif ( tmp ) {\n\r\t\t\t\t\t\telem[ ontype ] = null;\n\r\t\t\t\t\t}\n\r\n\r\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\r\t\t\t\t\tjQuery.event.triggered = type;\n\r\n\r\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\r\t\t\t\t\t\tlastElement.addEventListener( type, stopPropagationCallback );\n\r\t\t\t\t\t}\n\r\n\r\t\t\t\t\telem[ type ]();\n\r\n\r\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\r\t\t\t\t\t\tlastElement.removeEventListener( type, stopPropagationCallback );\n\r\t\t\t\t\t}\n\r\n\r\t\t\t\t\tjQuery.event.triggered = undefined;\n\r\n\r\t\t\t\t\tif ( tmp ) {\n\r\t\t\t\t\t\telem[ ontype ] = tmp;\n\r\t\t\t\t\t}\n\r\t\t\t\t}\n\r\t\t\t}\n\r\t\t}\n\r\n\r\t\treturn event.result;\n\r\t},\n\r\n\r\t// Piggyback on a donor event to simulate a different one\n\r\t// Used only for `focus(in | out)` events\n\r\tsimulate: function( type, elem, event ) {\n\r\t\tvar e = jQuery.extend(\n\r\t\t\tnew jQuery.Event(),\n\r\t\t\tevent,\n\r\t\t\t{\n\r\t\t\t\ttype: type,\n\r\t\t\t\tisSimulated: true\n\r\t\t\t}\n\r\t\t);\n\r\n\r\t\tjQuery.event.trigger( e, null, elem );\n\r\t}\n\r\n\r} );\n\r\n\rjQuery.fn.extend( {\n\r\n\r\ttrigger: function( type, data ) {\n\r\t\treturn this.each( function() {\n\r\t\t\tjQuery.event.trigger( type, data, this );\n\r\t\t} );\n\r\t},\n\r\ttriggerHandler: function( type, data ) {\n\r\t\tvar elem = this[ 0 ];\n\r\t\tif ( elem ) {\n\r\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\r\t\t}\n\r\t}\n\r} );\n\r\n\r\n\r// Support: Firefox <=44\n\r// Firefox doesn't have focus(in | out) events\n\r// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n\r//\n\r// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n\r// focus(in | out) events fire after focus & blur events,\n\r// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n\r// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\n\rif ( !support.focusin ) {\n\r\tjQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( orig, fix ) {\n\r\n\r\t\t// Attach a single capturing handler on the document while someone wants focusin/focusout\n\r\t\tvar handler = function( event ) {\n\r\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );\n\r\t\t};\n\r\n\r\t\tjQuery.event.special[ fix ] = {\n\r\t\t\tsetup: function() {\n\r\t\t\t\tvar doc = this.ownerDocument || this,\n\r\t\t\t\t\tattaches = dataPriv.access( doc, fix );\n\r\n\r\t\t\t\tif ( !attaches ) {\n\r\t\t\t\t\tdoc.addEventListener( orig, handler, true );\n\r\t\t\t\t}\n\r\t\t\t\tdataPriv.access( doc, fix, ( attaches || 0 ) + 1 );\n\r\t\t\t},\n\r\t\t\tteardown: function() {\n\r\t\t\t\tvar doc = this.ownerDocument || this,\n\r\t\t\t\t\tattaches = dataPriv.access( doc, fix ) - 1;\n\r\n\r\t\t\t\tif ( !attaches ) {\n\r\t\t\t\t\tdoc.removeEventListener( orig, handler, true );\n\r\t\t\t\t\tdataPriv.remove( doc, fix );\n\r\n\r\t\t\t\t} else {\n\r\t\t\t\t\tdataPriv.access( doc, fix, attaches );\n\r\t\t\t\t}\n\r\t\t\t}\n\r\t\t};\n\r\t} );\n\r}\n\rvar location = window.location;\n\r\n\rvar nonce = Date.now();\n\r\n\rvar rquery = ( /\\?/ );\n\r\n\r\n\r\n\r// Cross-browser xml parsing\n\rjQuery.parseXML = function( data ) {\n\r\tvar xml;\n\r\tif ( !data || typeof data !== \"string\" ) {\n\r\t\treturn null;\n\r\t}\n\r\n\r\t// Support: IE 9 - 11 only\n\r\t// IE throws on parseFromString with invalid input.\n\r\ttry {\n\r\t\txml = ( new window.DOMParser() ).parseFromString( data, \"text/xml\" );\n\r\t} catch ( e ) {\n\r\t\txml = undefined;\n\r\t}\n\r\n\r\tif ( !xml || xml.getElementsByTagName( \"parsererror\" ).length ) {\n\r\t\tjQuery.error( \"Invalid XML: \" + data );\n\r\t}\n\r\treturn xml;\n\r};\n\r\n\r\n\rvar\n\r\trbracket = /\\[\\]$/,\n\r\trCRLF = /\\r?\\n/g,\n\r\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n\r\trsubmittable = /^(?:input|select|textarea|keygen)/i;\n\r\n\rfunction buildParams( prefix, obj, traditional, add ) {\n\r\tvar name;\n\r\n\r\tif ( Array.isArray( obj ) ) {\n\r\n\r\t\t// Serialize array item.\n\r\t\tjQuery.each( obj, function( i, v ) {\n\r\t\t\tif ( traditional || rbracket.test( prefix ) ) {\n\r\n\r\t\t\t\t// Treat each array item as a scalar.\n\r\t\t\t\tadd( prefix, v );\n\r\n\r\t\t\t} else {\n\r\n\r\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\n\r\t\t\t\tbuildParams(\n\r\t\t\t\t\tprefix + \"[\" + ( typeof v === \"object\" && v != null ? i : \"\" ) + \"]\",\n\r\t\t\t\t\tv,\n\r\t\t\t\t\ttraditional,\n\r\t\t\t\t\tadd\n\r\t\t\t\t);\n\r\t\t\t}\n\r\t\t} );\n\r\n\r\t} else if ( !traditional && toType( obj ) === \"object\" ) {\n\r\n\r\t\t// Serialize object item.\n\r\t\tfor ( name in obj ) {\n\r\t\t\tbuildParams( prefix + \"[\" + name + \"]\", obj[ name ], traditional, add );\n\r\t\t}\n\r\n\r\t} else {\n\r\n\r\t\t// Serialize scalar item.\n\r\t\tadd( prefix, obj );\n\r\t}\n\r}\n\r\n\r// Serialize an array of form elements or a set of\n\r// key/values into a query string\n\rjQuery.param = function( a, traditional ) {\n\r\tvar prefix,\n\r\t\ts = [],\n\r\t\tadd = function( key, valueOrFunction ) {\n\r\n\r\t\t\t// If value is a function, invoke it and use its return value\n\r\t\t\tvar value = isFunction( valueOrFunction ) ?\n\r\t\t\t\tvalueOrFunction() :\n\r\t\t\t\tvalueOrFunction;\n\r\n\r\t\t\ts[ s.length ] = encodeURIComponent( key ) + \"=\" +\n\r\t\t\t\tencodeURIComponent( value == null ? \"\" : value );\n\r\t\t};\n\r\n\r\tif ( a == null ) {\n\r\t\treturn \"\";\n\r\t}\n\r\n\r\t// If an array was passed in, assume that it is an array of form elements.\n\r\tif ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\n\r\n\r\t\t// Serialize the form elements\n\r\t\tjQuery.each( a, function() {\n\r\t\t\tadd( this.name, this.value );\n\r\t\t} );\n\r\n\r\t} else {\n\r\n\r\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\n\r\t\t// did it), otherwise encode params recursively.\n\r\t\tfor ( prefix in a ) {\n\r\t\t\tbuildParams( prefix, a[ prefix ], traditional, add );\n\r\t\t}\n\r\t}\n\r\n\r\t// Return the resulting serialization\n\r\treturn s.join( \"&\" );\n\r};\n\r\n\rjQuery.fn.extend( {\n\r\tserialize: function() {\n\r\t\treturn jQuery.param( this.serializeArray() );\n\r\t},\n\r\tserializeArray: function() {\n\r\t\treturn this.map( function() {\n\r\n\r\t\t\t// Can add propHook for \"elements\" to filter or add form elements\n\r\t\t\tvar elements = jQuery.prop( this, \"elements\" );\n\r\t\t\treturn elements ? jQuery.makeArray( elements ) : this;\n\r\t\t} )\n\r\t\t.filter( function() {\n\r\t\t\tvar type = this.type;\n\r\n\r\t\t\t// Use .is( \":disabled\" ) so that fieldset[disabled] works\n\r\t\t\treturn this.name && !jQuery( this ).is( \":disabled\" ) &&\n\r\t\t\t\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\n\r\t\t\t\t( this.checked || !rcheckableType.test( type ) );\n\r\t\t} )\n\r\t\t.map( function( i, elem ) {\n\r\t\t\tvar val = jQuery( this ).val();\n\r\n\r\t\t\tif ( val == null ) {\n\r\t\t\t\treturn null;\n\r\t\t\t}\n\r\n\r\t\t\tif ( Array.isArray( val ) ) {\n\r\t\t\t\treturn jQuery.map( val, function( val ) {\n\r\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\r\t\t\t\t} );\n\r\t\t\t}\n\r\n\r\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\r\t\t} ).get();\n\r\t}\n\r} );\n\r\n\r\n\rvar\n\r\tr20 = /%20/g,\n\r\trhash = /#.*$/,\n\r\trantiCache = /([?&])_=[^&]*/,\n\r\trheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n\r\n\r\t// #7653, #8125, #8152: local protocol detection\n\r\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n\r\trnoContent = /^(?:GET|HEAD)$/,\n\r\trprotocol = /^\\/\\//,\n\r\n\r\t/* Prefilters\n\r\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n\r\t * 2) These are called:\n\r\t * - BEFORE asking for a transport\n\r\t * - AFTER param serialization (s.data is a string if s.processData is true)\n\r\t * 3) key is the dataType\n\r\t * 4) the catchall symbol \"*\" can be used\n\r\t * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n\r\t */\n\r\tprefilters = {},\n\r\n\r\t/* Transports bindings\n\r\t * 1) key is the dataType\n\r\t * 2) the catchall symbol \"*\" can be used\n\r\t * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n\r\t */\n\r\ttransports = {},\n\r\n\r\t// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression\n\r\tallTypes = \"*/\".concat( \"*\" ),\n\r\n\r\t// Anchor tag for parsing the document origin\n\r\toriginAnchor = document.createElement( \"a\" );\n\r\toriginAnchor.href = location.href;\n\r\n\r// Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\n\rfunction addToPrefiltersOrTransports( structure ) {\n\r\n\r\t// dataTypeExpression is optional and defaults to \"*\"\n\r\treturn function( dataTypeExpression, func ) {\n\r\n\r\t\tif ( typeof dataTypeExpression !== \"string\" ) {\n\r\t\t\tfunc = dataTypeExpression;\n\r\t\t\tdataTypeExpression = \"*\";\n\r\t\t}\n\r\n\r\t\tvar dataType,\n\r\t\t\ti = 0,\n\r\t\t\tdataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];\n\r\n\r\t\tif ( isFunction( func ) ) {\n\r\n\r\t\t\t// For each dataType in the dataTypeExpression\n\r\t\t\twhile ( ( dataType = dataTypes[ i++ ] ) ) {\n\r\n\r\t\t\t\t// Prepend if requested\n\r\t\t\t\tif ( dataType[ 0 ] === \"+\" ) {\n\r\t\t\t\t\tdataType = dataType.slice( 1 ) || \"*\";\n\r\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );\n\r\n\r\t\t\t\t// Otherwise append\n\r\t\t\t\t} else {\n\r\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).push( func );\n\r\t\t\t\t}\n\r\t\t\t}\n\r\t\t}\n\r\t};\n\r}\n\r\n\r// Base inspection function for prefilters and transports\n\rfunction inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {\n\r\n\r\tvar inspected = {},\n\r\t\tseekingTransport = ( structure === transports );\n\r\n\r\tfunction inspect( dataType ) {\n\r\t\tvar selected;\n\r\t\tinspected[ dataType ] = true;\n\r\t\tjQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {\n\r\t\t\tvar dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );\n\r\t\t\tif ( typeof dataTypeOrTransport === \"string\" &&\n\r\t\t\t\t!seekingTransport && !inspected[ dataTypeOrTransport ] ) {\n\r\n\r\t\t\t\toptions.dataTypes.unshift( dataTypeOrTransport );\n\r\t\t\t\tinspect( dataTypeOrTransport );\n\r\t\t\t\treturn false;\n\r\t\t\t} else if ( seekingTransport ) {\n\r\t\t\t\treturn !( selected = dataTypeOrTransport );\n\r\t\t\t}\n\r\t\t} );\n\r\t\treturn selected;\n\r\t}\n\r\n\r\treturn inspect( options.dataTypes[ 0 ] ) || !inspected[ \"*\" ] && inspect( \"*\" );\n\r}\n\r\n\r// A special extend for ajax options\n\r// that takes \"flat\" options (not to be deep extended)\n\r// Fixes #9887\n\rfunction ajaxExtend( target, src ) {\n\r\tvar key, deep,\n\r\t\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\n\r\n\r\tfor ( key in src ) {\n\r\t\tif ( src[ key ] !== undefined ) {\n\r\t\t\t( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];\n\r\t\t}\n\r\t}\n\r\tif ( deep ) {\n\r\t\tjQuery.extend( true, target, deep );\n\r\t}\n\r\n\r\treturn target;\n\r}\n\r\n\r/* Handles responses to an ajax request:\n\r * - finds the right dataType (mediates between content-type and expected dataType)\n\r * - returns the corresponding response\n\r */\n\rfunction ajaxHandleResponses( s, jqXHR, responses ) {\n\r\n\r\tvar ct, type, finalDataType, firstDataType,\n\r\t\tcontents = s.contents,\n\r\t\tdataTypes = s.dataTypes;\n\r\n\r\t// Remove auto dataType and get content-type in the process\n\r\twhile ( dataTypes[ 0 ] === \"*\" ) {\n\r\t\tdataTypes.shift();\n\r\t\tif ( ct === undefined ) {\n\r\t\t\tct = s.mimeType || jqXHR.getResponseHeader( \"Content-Type\" );\n\r\t\t}\n\r\t}\n\r\n\r\t// Check if we're dealing with a known content-type\n\r\tif ( ct ) {\n\r\t\tfor ( type in contents ) {\n\r\t\t\tif ( contents[ type ] && contents[ type ].test( ct ) ) {\n\r\t\t\t\tdataTypes.unshift( type );\n\r\t\t\t\tbreak;\n\r\t\t\t}\n\r\t\t}\n\r\t}\n\r\n\r\t// Check to see if we have a response for the expected dataType\n\r\tif ( dataTypes[ 0 ] in responses ) {\n\r\t\tfinalDataType = dataTypes[ 0 ];\n\r\t} else {\n\r\n\r\t\t// Try convertible dataTypes\n\r\t\tfor ( type in responses ) {\n\r\t\t\tif ( !dataTypes[ 0 ] || s.converters[ type + \" \" + dataTypes[ 0 ] ] ) {\n\r\t\t\t\tfinalDataType = type;\n\r\t\t\t\tbreak;\n\r\t\t\t}\n\r\t\t\tif ( !firstDataType ) {\n\r\t\t\t\tfirstDataType = type;\n\r\t\t\t}\n\r\t\t}\n\r\n\r\t\t// Or just use first one\n\r\t\tfinalDataType = finalDataType || firstDataType;\n\r\t}\n\r\n\r\t// If we found a dataType\n\r\t// We add the dataType to the list if needed\n\r\t// and return the corresponding response\n\r\tif ( finalDataType ) {\n\r\t\tif ( finalDataType !== dataTypes[ 0 ] ) {\n\r\t\t\tdataTypes.unshift( finalDataType );\n\r\t\t}\n\r\t\treturn responses[ finalDataType ];\n\r\t}\n\r}\n\r\n\r/* Chain conversions given the request and the original response\n\r * Also sets the responseXXX fields on the jqXHR instance\n\r */\n\rfunction ajaxConvert( s, response, jqXHR, isSuccess ) {\n\r\tvar conv2, current, conv, tmp, prev,\n\r\t\tconverters = {},\n\r\n\r\t\t// Work with a copy of dataTypes in case we need to modify it for conversion\n\r\t\tdataTypes = s.dataTypes.slice();\n\r\n\r\t// Create converters map with lowercased keys\n\r\tif ( dataTypes[ 1 ] ) {\n\r\t\tfor ( conv in s.converters ) {\n\r\t\t\tconverters[ conv.toLowerCase() ] = s.converters[ conv ];\n\r\t\t}\n\r\t}\n\r\n\r\tcurrent = dataTypes.shift();\n\r\n\r\t// Convert to each sequential dataType\n\r\twhile ( current ) {\n\r\n\r\t\tif ( s.responseFields[ current ] ) {\n\r\t\t\tjqXHR[ s.responseFields[ current ] ] = response;\n\r\t\t}\n\r\n\r\t\t// Apply the dataFilter if provided\n\r\t\tif ( !prev && isSuccess && s.dataFilter ) {\n\r\t\t\tresponse = s.dataFilter( response, s.dataType );\n\r\t\t}\n\r\n\r\t\tprev = current;\n\r\t\tcurrent = dataTypes.shift();\n\r\n\r\t\tif ( current ) {\n\r\n\r\t\t\t// There's only work to do if current dataType is non-auto\n\r\t\t\tif ( current === \"*\" ) {\n\r\n\r\t\t\t\tcurrent = prev;\n\r\n\r\t\t\t// Convert response if prev dataType is non-auto and differs from current\n\r\t\t\t} else if ( prev !== \"*\" && prev !== current ) {\n\r\n\r\t\t\t\t// Seek a direct converter\n\r\t\t\t\tconv = converters[ prev + \" \" + current ] || converters[ \"* \" + current ];\n\r\n\r\t\t\t\t// If none found, seek a pair\n\r\t\t\t\tif ( !conv ) {\n\r\t\t\t\t\tfor ( conv2 in converters ) {\n\r\n\r\t\t\t\t\t\t// If conv2 outputs current\n\r\t\t\t\t\t\ttmp = conv2.split( \" \" );\n\r\t\t\t\t\t\tif ( tmp[ 1 ] === current ) {\n\r\n\r\t\t\t\t\t\t\t// If prev can be converted to accepted input\n\r\t\t\t\t\t\t\tconv = converters[ prev + \" \" + tmp[ 0 ] ] ||\n\r\t\t\t\t\t\t\t\tconverters[ \"* \" + tmp[ 0 ] ];\n\r\t\t\t\t\t\t\tif ( conv ) {\n\r\n\r\t\t\t\t\t\t\t\t// Condense equivalence converters\n\r\t\t\t\t\t\t\t\tif ( conv === true ) {\n\r\t\t\t\t\t\t\t\t\tconv = converters[ conv2 ];\n\r\n\r\t\t\t\t\t\t\t\t// Otherwise, insert the intermediate dataType\n\r\t\t\t\t\t\t\t\t} else if ( converters[ conv2 ] !== true ) {\n\r\t\t\t\t\t\t\t\t\tcurrent = tmp[ 0 ];\n\r\t\t\t\t\t\t\t\t\tdataTypes.unshift( tmp[ 1 ] );\n\r\t\t\t\t\t\t\t\t}\n\r\t\t\t\t\t\t\t\tbreak;\n\r\t\t\t\t\t\t\t}\n\r\t\t\t\t\t\t}\n\r\t\t\t\t\t}\n\r\t\t\t\t}\n\r\n\r\t\t\t\t// Apply converter (if not an equivalence)\n\r\t\t\t\tif ( conv !== true ) {\n\r\n\r\t\t\t\t\t// Unless errors are allowed to bubble, catch and return them\n\r\t\t\t\t\tif ( conv && s.throws ) {\n\r\t\t\t\t\t\tresponse = conv( response );\n\r\t\t\t\t\t} else {\n\r\t\t\t\t\t\ttry {\n\r\t\t\t\t\t\t\tresponse = conv( response );\n\r\t\t\t\t\t\t} catch ( e ) {\n\r\t\t\t\t\t\t\treturn {\n\r\t\t\t\t\t\t\t\tstate: \"parsererror\",\n\r\t\t\t\t\t\t\t\terror: conv ? e : \"No conversion from \" + prev + \" to \" + current\n\r\t\t\t\t\t\t\t};\n\r\t\t\t\t\t\t}\n\r\t\t\t\t\t}\n\r\t\t\t\t}\n\r\t\t\t}\n\r\t\t}\n\r\t}\n\r\n\r\treturn { state: \"success\", data: response };\n\r}\n\r\n\rjQuery.extend( {\n\r\n\r\t// Counter for holding the number of active queries\n\r\tactive: 0,\n\r\n\r\t// Last-Modified header cache for next request\n\r\tlastModified: {},\n\r\tetag: {},\n\r\n\r\tajaxSettings: {\n\r\t\turl: location.href,\n\r\t\ttype: \"GET\",\n\r\t\tisLocal: rlocalProtocol.test( location.protocol ),\n\r\t\tglobal: true,\n\r\t\tprocessData: true,\n\r\t\tasync: true,\n\r\t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\r\n\r\t\t/*\n\r\t\ttimeout: 0,\n\r\t\tdata: null,\n\r\t\tdataType: null,\n\r\t\tusername: null,\n\r\t\tpassword: null,\n\r\t\tcache: null,\n\r\t\tthrows: false,\n\r\t\ttraditional: false,\n\r\t\theaders: {},\n\r\t\t*/\n\r\n\r\t\taccepts: {\n\r\t\t\t\"*\": allTypes,\n\r\t\t\ttext: \"text/plain\",\n\r\t\t\thtml: \"text/html\",\n\r\t\t\txml: \"application/xml, text/xml\",\n\r\t\t\tjson: \"application/json, text/javascript\"\n\r\t\t},\n\r\n\r\t\tcontents: {\n\r\t\t\txml: /\\bxml\\b/,\n\r\t\t\thtml: /\\bhtml/,\n\r\t\t\tjson: /\\bjson\\b/\n\r\t\t},\n\r\n\r\t\tresponseFields: {\n\r\t\t\txml: \"responseXML\",\n\r\t\t\ttext: \"responseText\",\n\r\t\t\tjson: \"responseJSON\"\n\r\t\t},\n\r\n\r\t\t// Data converters\n\r\t\t// Keys separate source (or catchall \"*\") and destination types with a single space\n\r\t\tconverters: {\n\r\n\r\t\t\t// Convert anything to text\n\r\t\t\t\"* text\": String,\n\r\n\r\t\t\t// Text to html (true = no transformation)\n\r\t\t\t\"text html\": true,\n\r\n\r\t\t\t// Evaluate text as a json expression\n\r\t\t\t\"text json\": JSON.parse,\n\r\n\r\t\t\t// Parse text as xml\n\r\t\t\t\"text xml\": jQuery.parseXML\n\r\t\t},\n\r\n\r\t\t// For options that shouldn't be deep extended:\n\r\t\t// you can add your own custom options here if\n\r\t\t// and when you create one that shouldn't be\n\r\t\t// deep extended (see ajaxExtend)\n\r\t\tflatOptions: {\n\r\t\t\turl: true,\n\r\t\t\tcontext: true\n\r\t\t}\n\r\t},\n\r\n\r\t// Creates a full fledged settings object into target\n\r\t// with both ajaxSettings and settings fields.\n\r\t// If target is omitted, writes into ajaxSettings.\n\r\tajaxSetup: function( target, settings ) {\n\r\t\treturn settings ?\n\r\n\r\t\t\t// Building a settings object\n\r\t\t\tajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :\n\r\n\r\t\t\t// Extending ajaxSettings\n\r\t\t\tajaxExtend( jQuery.ajaxSettings, target );\n\r\t},\n\r\n\r\tajaxPrefilter: addToPrefiltersOrTransports( prefilters ),\n\r\tajaxTransport: addToPrefiltersOrTransports( transports ),\n\r\n\r\t// Main method\n\r\tajax: function( url, options ) {\n\r\n\r\t\t// If url is an object, simulate pre-1.5 signature\n\r\t\tif ( typeof url === \"object\" ) {\n\r\t\t\toptions = url;\n\r\t\t\turl = undefined;\n\r\t\t}\n\r\n\r\t\t// Force options to be an object\n\r\t\toptions = options || {};\n\r\n\r\t\tvar transport,\n\r\n\r\t\t\t// URL without anti-cache param\n\r\t\t\tcacheURL,\n\r\n\r\t\t\t// Response headers\n\r\t\t\tresponseHeadersString,\n\r\t\t\tresponseHeaders,\n\r\n\r\t\t\t// timeout handle\n\r\t\t\ttimeoutTimer,\n\r\n\r\t\t\t// Url cleanup var\n\r\t\t\turlAnchor,\n\r\n\r\t\t\t// Request state (becomes false upon send and true upon completion)\n\r\t\t\tcompleted,\n\r\n\r\t\t\t// To know if global events are to be dispatched\n\r\t\t\tfireGlobals,\n\r\n\r\t\t\t// Loop variable\n\r\t\t\ti,\n\r\n\r\t\t\t// uncached part of the url\n\r\t\t\tuncached,\n\r\n\r\t\t\t// Create the final options object\n\r\t\t\ts = jQuery.ajaxSetup( {}, options ),\n\r\n\r\t\t\t// Callbacks context\n\r\t\t\tcallbackContext = s.context || s,\n\r\n\r\t\t\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\n\r\t\t\tglobalEventContext = s.context &&\n\r\t\t\t\t( callbackContext.nodeType || callbackContext.jquery ) ?\n\r\t\t\t\t\tjQuery( callbackContext ) :\n\r\t\t\t\t\tjQuery.event,\n\r\n\r\t\t\t// Deferreds\n\r\t\t\tdeferred = jQuery.Deferred(),\n\r\t\t\tcompleteDeferred = jQuery.Callbacks( \"once memory\" ),\n\r\n\r\t\t\t// Status-dependent callbacks\n\r\t\t\tstatusCode = s.statusCode || {},\n\r\n\r\t\t\t// Headers (they are sent all at once)\n\r\t\t\trequestHeaders = {},\n\r\t\t\trequestHeadersNames = {},\n\r\n\r\t\t\t// Default abort message\n\r\t\t\tstrAbort = \"canceled\",\n\r\n\r\t\t\t// Fake xhr\n\r\t\t\tjqXHR = {\n\r\t\t\t\treadyState: 0,\n\r\n\r\t\t\t\t// Builds headers hashtable if needed\n\r\t\t\t\tgetResponseHeader: function( key ) {\n\r\t\t\t\t\tvar match;\n\r\t\t\t\t\tif ( completed ) {\n\r\t\t\t\t\t\tif ( !responseHeaders ) {\n\r\t\t\t\t\t\t\tresponseHeaders = {};\n\r\t\t\t\t\t\t\twhile ( ( match = rheaders.exec( responseHeadersString ) ) ) {\n\r\t\t\t\t\t\t\t\tresponseHeaders[ match[ 1 ].toLowerCase() + \" \" ] =\n\r\t\t\t\t\t\t\t\t\t( responseHeaders[ match[ 1 ].toLowerCase() + \" \" ] || [] )\n\r\t\t\t\t\t\t\t\t\t\t.concat( match[ 2 ] );\n\r\t\t\t\t\t\t\t}\n\r\t\t\t\t\t\t}\n\r\t\t\t\t\t\tmatch = responseHeaders[ key.toLowerCase() + \" \" ];\n\r\t\t\t\t\t}\n\r\t\t\t\t\treturn match == null ? null : match.join( \", \" );\n\r\t\t\t\t},\n\r\n\r\t\t\t\t// Raw string\n\r\t\t\t\tgetAllResponseHeaders: function() {\n\r\t\t\t\t\treturn completed ? responseHeadersString : null;\n\r\t\t\t\t},\n\r\n\r\t\t\t\t// Caches the header\n\r\t\t\t\tsetRequestHeader: function( name, value ) {\n\r\t\t\t\t\tif ( completed == null ) {\n\r\t\t\t\t\t\tname = requestHeadersNames[ name.toLowerCase() ] =\n\r\t\t\t\t\t\t\trequestHeadersNames[ name.toLowerCase() ] || name;\n\r\t\t\t\t\t\trequestHeaders[ name ] = value;\n\r\t\t\t\t\t}\n\r\t\t\t\t\treturn this;\n\r\t\t\t\t},\n\r\n\r\t\t\t\t// Overrides response content-type header\n\r\t\t\t\toverrideMimeType: function( type ) {\n\r\t\t\t\t\tif ( completed == null ) {\n\r\t\t\t\t\t\ts.mimeType = type;\n\r\t\t\t\t\t}\n\r\t\t\t\t\treturn this;\n\r\t\t\t\t},\n\r\n\r\t\t\t\t// Status-dependent callbacks\n\r\t\t\t\tstatusCode: function( map ) {\n\r\t\t\t\t\tvar code;\n\r\t\t\t\t\tif ( map ) {\n\r\t\t\t\t\t\tif ( completed ) {\n\r\n\r\t\t\t\t\t\t\t// Execute the appropriate callbacks\n\r\t\t\t\t\t\t\tjqXHR.always( map[ jqXHR.status ] );\n\r\t\t\t\t\t\t} else {\n\r\n\r\t\t\t\t\t\t\t// Lazy-add the new callbacks in a way that preserves old ones\n\r\t\t\t\t\t\t\tfor ( code in map ) {\n\r\t\t\t\t\t\t\t\tstatusCode[ code ] = [ statusCode[ code ], map[ code ] ];\n\r\t\t\t\t\t\t\t}\n\r\t\t\t\t\t\t}\n\r\t\t\t\t\t}\n\r\t\t\t\t\treturn this;\n\r\t\t\t\t},\n\r\n\r\t\t\t\t// Cancel the request\n\r\t\t\t\tabort: function( statusText ) {\n\r\t\t\t\t\tvar finalText = statusText || strAbort;\n\r\t\t\t\t\tif ( transport ) {\n\r\t\t\t\t\t\ttransport.abort( finalText );\n\r\t\t\t\t\t}\n\r\t\t\t\t\tdone( 0, finalText );\n\r\t\t\t\t\treturn this;\n\r\t\t\t\t}\n\r\t\t\t};\n\r\n\r\t\t// Attach deferreds\n\r\t\tdeferred.promise( jqXHR );\n\r\n\r\t\t// Add protocol if not provided (prefilters might expect it)\n\r\t\t// Handle falsy url in the settings object (#10093: consistency with old signature)\n\r\t\t// We also use the url parameter if available\n\r\t\ts.url = ( ( url || s.url || location.href ) + \"\" )\n\r\t\t\t.replace( rprotocol, location.protocol + \"//\" );\n\r\n\r\t\t// Alias method option to type as per ticket #12004\n\r\t\ts.type = options.method || options.type || s.method || s.type;\n\r\n\r\t\t// Extract dataTypes list\n\r\t\ts.dataTypes = ( s.dataType || \"*\" ).toLowerCase().match( rnothtmlwhite ) || [ \"\" ];\n\r\n\r\t\t// A cross-domain request is in order when the origin doesn't match the current origin.\n\r\t\tif ( s.crossDomain == null ) {\n\r\t\t\turlAnchor = document.createElement( \"a\" );\n\r\n\r\t\t\t// Support: IE <=8 - 11, Edge 12 - 15\n\r\t\t\t// IE throws exception on accessing the href property if url is malformed,\n\r\t\t\t// e.g. http://example.com:80x/\n\r\t\t\ttry {\n\r\t\t\t\turlAnchor.href = s.url;\n\r\n\r\t\t\t\t// Support: IE <=8 - 11 only\n\r\t\t\t\t// Anchor's host property isn't correctly set when s.url is relative\n\r\t\t\t\turlAnchor.href = urlAnchor.href;\n\r\t\t\t\ts.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !==\n\r\t\t\t\t\turlAnchor.protocol + \"//\" + urlAnchor.host;\n\r\t\t\t} catch ( e ) {\n\r\n\r\t\t\t\t// If there is an error parsing the URL, assume it is crossDomain,\n\r\t\t\t\t// it can be rejected by the transport if it is invalid\n\r\t\t\t\ts.crossDomain = true;\n\r\t\t\t}\n\r\t\t}\n\r\n\r\t\t// Convert data if not already a string\n\r\t\tif ( s.data && s.processData && typeof s.data !== \"string\" ) {\n\r\t\t\ts.data = jQuery.param( s.data, s.traditional );\n\r\t\t}\n\r\n\r\t\t// Apply prefilters\n\r\t\tinspectPrefiltersOrTransports( prefilters, s, options, jqXHR );\n\r\n\r\t\t// If request was aborted inside a prefilter, stop there\n\r\t\tif ( completed ) {\n\r\t\t\treturn jqXHR;\n\r\t\t}\n\r\n\r\t\t// We can fire global events as of now if asked to\n\r\t\t// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)\n\r\t\tfireGlobals = jQuery.event && s.global;\n\r\n\r\t\t// Watch for a new set of requests\n\r\t\tif ( fireGlobals && jQuery.active++ === 0 ) {\n\r\t\t\tjQuery.event.trigger( \"ajaxStart\" );\n\r\t\t}\n\r\n\r\t\t// Uppercase the type\n\r\t\ts.type = s.type.toUpperCase();\n\r\n\r\t\t// Determine if request has content\n\r\t\ts.hasContent = !rnoContent.test( s.type );\n\r\n\r\t\t// Save the URL in case we're toying with the If-Modified-Since\n\r\t\t// and/or If-None-Match header later on\n\r\t\t// Remove hash to simplify url manipulation\n\r\t\tcacheURL = s.url.replace( rhash, \"\" );\n\r\n\r\t\t// More options handling for requests with no content\n\r\t\tif ( !s.hasContent ) {\n\r\n\r\t\t\t// Remember the hash so we can put it back\n\r\t\t\tuncached = s.url.slice( cacheURL.length );\n\r\n\r\t\t\t// If data is available and should be processed, append data to url\n\r\t\t\tif ( s.data && ( s.processData || typeof s.data === \"string\" ) ) {\n\r\t\t\t\tcacheURL += ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + s.data;\n\r\n\r\t\t\t\t// #9682: remove data so that it's not used in an eventual retry\n\r\t\t\t\tdelete s.data;\n\r\t\t\t}\n\r\n\r\t\t\t// Add or update anti-cache param if needed\n\r\t\t\tif ( s.cache === false ) {\n\r\t\t\t\tcacheURL = cacheURL.replace( rantiCache, \"$1\" );\n\r\t\t\t\tuncached = ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + \"_=\" + ( nonce++ ) + uncached;\n\r\t\t\t}\n\r\n\r\t\t\t// Put hash and anti-cache on the URL that will be requested (gh-1732)\n\r\t\t\ts.url = cacheURL + uncached;\n\r\n\r\t\t// Change '%20' to '+' if this is encoded form body content (gh-2658)\n\r\t\t} else if ( s.data && s.processData &&\n\r\t\t\t( s.contentType || \"\" ).indexOf( \"application/x-www-form-urlencoded\" ) === 0 ) {\n\r\t\t\ts.data = s.data.replace( r20, \"+\" );\n\r\t\t}\n\r\n\r\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\r\t\tif ( s.ifModified ) {\n\r\t\t\tif ( jQuery.lastModified[ cacheURL ] ) {\n\r\t\t\t\tjqXHR.setRequestHeader( \"If-Modified-Since\", jQuery.lastModified[ cacheURL ] );\n\r\t\t\t}\n\r\t\t\tif ( jQuery.etag[ cacheURL ] ) {\n\r\t\t\t\tjqXHR.setRequestHeader( \"If-None-Match\", jQuery.etag[ cacheURL ] );\n\r\t\t\t}\n\r\t\t}\n\r\n\r\t\t// Set the correct header, if data is being sent\n\r\t\tif ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {\n\r\t\t\tjqXHR.setRequestHeader( \"Content-Type\", s.contentType );\n\r\t\t}\n\r\n\r\t\t// Set the Accepts header for the server, depending on the dataType\n\r\t\tjqXHR.setRequestHeader(\n\r\t\t\t\"Accept\",\n\r\t\t\ts.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?\n\r\t\t\t\ts.accepts[ s.dataTypes[ 0 ] ] +\n\r\t\t\t\t\t( s.dataTypes[ 0 ] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\" ) :\n\r\t\t\t\ts.accepts[ \"*\" ]\n\r\t\t);\n\r\n\r\t\t// Check for headers option\n\r\t\tfor ( i in s.headers ) {\n\r\t\t\tjqXHR.setRequestHeader( i, s.headers[ i ] );\n\r\t\t}\n\r\n\r\t\t// Allow custom headers/mimetypes and early abort\n\r\t\tif ( s.beforeSend &&\n\r\t\t\t( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {\n\r\n\r\t\t\t// Abort if not done already and return\n\r\t\t\treturn jqXHR.abort();\n\r\t\t}\n\r\n\r\t\t// Aborting is no longer a cancellation\n\r\t\tstrAbort = \"abort\";\n\r\n\r\t\t// Install callbacks on deferreds\n\r\t\tcompleteDeferred.add( s.complete );\n\r\t\tjqXHR.done( s.success );\n\r\t\tjqXHR.fail( s.error );\n\r\n\r\t\t// Get transport\n\r\t\ttransport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );\n\r\n\r\t\t// If no transport, we auto-abort\n\r\t\tif ( !transport ) {\n\r\t\t\tdone( -1, \"No Transport\" );\n\r\t\t} else {\n\r\t\t\tjqXHR.readyState = 1;\n\r\n\r\t\t\t// Send global event\n\r\t\t\tif ( fireGlobals ) {\n\r\t\t\t\tglobalEventContext.trigger( \"ajaxSend\", [ jqXHR, s ] );\n\r\t\t\t}\n\r\n\r\t\t\t// If request was aborted inside ajaxSend, stop there\n\r\t\t\tif ( completed ) {\n\r\t\t\t\treturn jqXHR;\n\r\t\t\t}\n\r\n\r\t\t\t// Timeout\n\r\t\t\tif ( s.async && s.timeout > 0 ) {\n\r\t\t\t\ttimeoutTimer = window.setTimeout( function() {\n\r\t\t\t\t\tjqXHR.abort( \"timeout\" );\n\r\t\t\t\t}, s.timeout );\n\r\t\t\t}\n\r\n\r\t\t\ttry {\n\r\t\t\t\tcompleted = false;\n\r\t\t\t\ttransport.send( requestHeaders, done );\n\r\t\t\t} catch ( e ) {\n\r\n\r\t\t\t\t// Rethrow post-completion exceptions\n\r\t\t\t\tif ( completed ) {\n\r\t\t\t\t\tthrow e;\n\r\t\t\t\t}\n\r\n\r\t\t\t\t// Propagate others as results\n\r\t\t\t\tdone( -1, e );\n\r\t\t\t}\n\r\t\t}\n\r\n\r\t\t// Callback for when everything is done\n\r\t\tfunction done( status, nativeStatusText, responses, headers ) {\n\r\t\t\tvar isSuccess, success, error, response, modified,\n\r\t\t\t\tstatusText = nativeStatusText;\n\r\n\r\t\t\t// Ignore repeat invocations\n\r\t\t\tif ( completed ) {\n\r\t\t\t\treturn;\n\r\t\t\t}\n\r\n\r\t\t\tcompleted = true;\n\r\n\r\t\t\t// Clear timeout if it exists\n\r\t\t\tif ( timeoutTimer ) {\n\r\t\t\t\twindow.clearTimeout( timeoutTimer );\n\r\t\t\t}\n\r\n\r\t\t\t// Dereference transport for early garbage collection\n\r\t\t\t// (no matter how long the jqXHR object will be used)\n\r\t\t\ttransport = undefined;\n\r\n\r\t\t\t// Cache response headers\n\r\t\t\tresponseHeadersString = headers || \"\";\n\r\n\r\t\t\t// Set readyState\n\r\t\t\tjqXHR.readyState = status > 0 ? 4 : 0;\n\r\n\r\t\t\t// Determine if successful\n\r\t\t\tisSuccess = status >= 200 && status < 300 || status === 304;\n\r\n\r\t\t\t// Get response data\n\r\t\t\tif ( responses ) {\n\r\t\t\t\tresponse = ajaxHandleResponses( s, jqXHR, responses );\n\r\t\t\t}\n\r\n\r\t\t\t// Convert no matter what (that way responseXXX fields are always set)\n\r\t\t\tresponse = ajaxConvert( s, response, jqXHR, isSuccess );\n\r\n\r\t\t\t// If successful, handle type chaining\n\r\t\t\tif ( isSuccess ) {\n\r\n\r\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\r\t\t\t\tif ( s.ifModified ) {\n\r\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"Last-Modified\" );\n\r\t\t\t\t\tif ( modified ) {\n\r\t\t\t\t\t\tjQuery.lastModified[ cacheURL ] = modified;\n\r\t\t\t\t\t}\n\r\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"etag\" );\n\r\t\t\t\t\tif ( modified ) {\n\r\t\t\t\t\t\tjQuery.etag[ cacheURL ] = modified;\n\r\t\t\t\t\t}\n\r\t\t\t\t}\n\r\n\r\t\t\t\t// if no content\n\r\t\t\t\tif ( status === 204 || s.type === \"HEAD\" ) {\n\r\t\t\t\t\tstatusText = \"nocontent\";\n\r\n\r\t\t\t\t// if not modified\n\r\t\t\t\t} else if ( status === 304 ) {\n\r\t\t\t\t\tstatusText = \"notmodified\";\n\r\n\r\t\t\t\t// If we have data, let's convert it\n\r\t\t\t\t} else {\n\r\t\t\t\t\tstatusText = response.state;\n\r\t\t\t\t\tsuccess = response.data;\n\r\t\t\t\t\terror = response.error;\n\r\t\t\t\t\tisSuccess = !error;\n\r\t\t\t\t}\n\r\t\t\t} else {\n\r\n\r\t\t\t\t// Extract error from statusText and normalize for non-aborts\n\r\t\t\t\terror = statusText;\n\r\t\t\t\tif ( status || !statusText ) {\n\r\t\t\t\t\tstatusText = \"error\";\n\r\t\t\t\t\tif ( status < 0 ) {\n\r\t\t\t\t\t\tstatus = 0;\n\r\t\t\t\t\t}\n\r\t\t\t\t}\n\r\t\t\t}\n\r\n\r\t\t\t// Set data for the fake xhr object\n\r\t\t\tjqXHR.status = status;\n\r\t\t\tjqXHR.statusText = ( nativeStatusText || statusText ) + \"\";\n\r\n\r\t\t\t// Success/Error\n\r\t\t\tif ( isSuccess ) {\n\r\t\t\t\tdeferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );\n\r\t\t\t} else {\n\r\t\t\t\tdeferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );\n\r\t\t\t}\n\r\n\r\t\t\t// Status-dependent callbacks\n\r\t\t\tjqXHR.statusCode( statusCode );\n\r\t\t\tstatusCode = undefined;\n\r\n\r\t\t\tif ( fireGlobals ) {\n\r\t\t\t\tglobalEventContext.trigger( isSuccess ? \"ajaxSuccess\" : \"ajaxError\",\n\r\t\t\t\t\t[ jqXHR, s, isSuccess ? success : error ] );\n\r\t\t\t}\n\r\n\r\t\t\t// Complete\n\r\t\t\tcompleteDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );\n\r\n\r\t\t\tif ( fireGlobals ) {\n\r\t\t\t\tglobalEventContext.trigger( \"ajaxComplete\", [ jqXHR, s ] );\n\r\n\r\t\t\t\t// Handle the global AJAX counter\n\r\t\t\t\tif ( !( --jQuery.active ) ) {\n\r\t\t\t\t\tjQuery.event.trigger( \"ajaxStop\" );\n\r\t\t\t\t}\n\r\t\t\t}\n\r\t\t}\n\r\n\r\t\treturn jqXHR;\n\r\t},\n\r\n\r\tgetJSON: function( url, data, callback ) {\n\r\t\treturn jQuery.get( url, data, callback, \"json\" );\n\r\t},\n\r\n\r\tgetScript: function( url, callback ) {\n\r\t\treturn jQuery.get( url, undefined, callback, \"script\" );\n\r\t}\n\r} );\n\r\n\rjQuery.each( [ \"get\", \"post\" ], function( i, method ) {\n\r\tjQuery[ method ] = function( url, data, callback, type ) {\n\r\n\r\t\t// Shift arguments if data argument was omitted\n\r\t\tif ( isFunction( data ) ) {\n\r\t\t\ttype = type || callback;\n\r\t\t\tcallback = data;\n\r\t\t\tdata = undefined;\n\r\t\t}\n\r\n\r\t\t// The url can be an options object (which then must have .url)\n\r\t\treturn jQuery.ajax( jQuery.extend( {\n\r\t\t\turl: url,\n\r\t\t\ttype: method,\n\r\t\t\tdataType: type,\n\r\t\t\tdata: data,\n\r\t\t\tsuccess: callback\n\r\t\t}, jQuery.isPlainObject( url ) && url ) );\n\r\t};\n\r} );\n\r\n\r\n\rjQuery._evalUrl = function( url, options ) {\n\r\treturn jQuery.ajax( {\n\r\t\turl: url,\n\r\n\r\t\t// Make this explicit, since user can override this through ajaxSetup (#11264)\n\r\t\ttype: \"GET\",\n\r\t\tdataType: \"script\",\n\r\t\tcache: true,\n\r\t\tasync: false,\n\r\t\tglobal: false,\n\r\n\r\t\t// Only evaluate the response if it is successful (gh-4126)\n\r\t\t// dataFilter is not invoked for failure responses, so using it instead\n\r\t\t// of the default converter is kludgy but it works.\n\r\t\tconverters: {\n\r\t\t\t\"text script\": function() {}\n\r\t\t},\n\r\t\tdataFilter: function( response ) {\n\r\t\t\tjQuery.globalEval( response, options );\n\r\t\t}\n\r\t} );\n\r};\n\r\n\r\n\rjQuery.fn.extend( {\n\r\twrapAll: function( html ) {\n\r\t\tvar wrap;\n\r\n\r\t\tif ( this[ 0 ] ) {\n\r\t\t\tif ( isFunction( html ) ) {\n\r\t\t\t\thtml = html.call( this[ 0 ] );\n\r\t\t\t}\n\r\n\r\t\t\t// The elements to wrap the target around\n\r\t\t\twrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );\n\r\n\r\t\t\tif ( this[ 0 ].parentNode ) {\n\r\t\t\t\twrap.insertBefore( this[ 0 ] );\n\r\t\t\t}\n\r\n\r\t\t\twrap.map( function() {\n\r\t\t\t\tvar elem = this;\n\r\n\r\t\t\t\twhile ( elem.firstElementChild ) {\n\r\t\t\t\t\telem = elem.firstElementChild;\n\r\t\t\t\t}\n\r\n\r\t\t\t\treturn elem;\n\r\t\t\t} ).append( this );\n\r\t\t}\n\r\n\r\t\treturn this;\n\r\t},\n\r\n\r\twrapInner: function( html ) {\n\r\t\tif ( isFunction( html ) ) {\n\r\t\t\treturn this.each( function( i ) {\n\r\t\t\t\tjQuery( this ).wrapInner( html.call( this, i ) );\n\r\t\t\t} );\n\r\t\t}\n\r\n\r\t\treturn this.each( function() {\n\r\t\t\tvar self = jQuery( this ),\n\r\t\t\t\tcontents = self.contents();\n\r\n\r\t\t\tif ( contents.length ) {\n\r\t\t\t\tcontents.wrapAll( html );\n\r\n\r\t\t\t} else {\n\r\t\t\t\tself.append( html );\n\r\t\t\t}\n\r\t\t} );\n\r\t},\n\r\n\r\twrap: function( html ) {\n\r\t\tvar htmlIsFunction = isFunction( html );\n\r\n\r\t\treturn this.each( function( i ) {\n\r\t\t\tjQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );\n\r\t\t} );\n\r\t},\n\r\n\r\tunwrap: function( selector ) {\n\r\t\tthis.parent( selector ).not( \"body\" ).each( function() {\n\r\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\r\t\t} );\n\r\t\treturn this;\n\r\t}\n\r} );\n\r\n\r\n\rjQuery.expr.pseudos.hidden = function( elem ) {\n\r\treturn !jQuery.expr.pseudos.visible( elem );\n\r};\n\rjQuery.expr.pseudos.visible = function( elem ) {\n\r\treturn !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );\n\r};\n\r\n\r\n\r\n\r\n\rjQuery.ajaxSettings.xhr = function() {\n\r\ttry {\n\r\t\treturn new window.XMLHttpRequest();\n\r\t} catch ( e ) {}\n\r};\n\r\n\rvar xhrSuccessStatus = {\n\r\n\r\t\t// File protocol always yields status code 0, assume 200\n\r\t\t0: 200,\n\r\n\r\t\t// Support: IE <=9 only\n\r\t\t// #1450: sometimes IE returns 1223 when it should be 204\n\r\t\t1223: 204\n\r\t},\n\r\txhrSupported = jQuery.ajaxSettings.xhr();\n\r\n\rsupport.cors = !!xhrSupported && ( \"withCredentials\" in xhrSupported );\n\rsupport.ajax = xhrSupported = !!xhrSupported;\n\r\n\rjQuery.ajaxTransport( function( options ) {\n\r\tvar callback, errorCallback;\n\r\n\r\t// Cross domain only allowed if supported through XMLHttpRequest\n\r\tif ( support.cors || xhrSupported && !options.crossDomain ) {\n\r\t\treturn {\n\r\t\t\tsend: function( headers, complete ) {\n\r\t\t\t\tvar i,\n\r\t\t\t\t\txhr = options.xhr();\n\r\n\r\t\t\t\txhr.open(\n\r\t\t\t\t\toptions.type,\n\r\t\t\t\t\toptions.url,\n\r\t\t\t\t\toptions.async,\n\r\t\t\t\t\toptions.username,\n\r\t\t\t\t\toptions.password\n\r\t\t\t\t);\n\r\n\r\t\t\t\t// Apply custom fields if provided\n\r\t\t\t\tif ( options.xhrFields ) {\n\r\t\t\t\t\tfor ( i in options.xhrFields ) {\n\r\t\t\t\t\t\txhr[ i ] = options.xhrFields[ i ];\n\r\t\t\t\t\t}\n\r\t\t\t\t}\n\r\n\r\t\t\t\t// Override mime type if needed\n\r\t\t\t\tif ( options.mimeType && xhr.overrideMimeType ) {\n\r\t\t\t\t\txhr.overrideMimeType( options.mimeType );\n\r\t\t\t\t}\n\r\n\r\t\t\t\t// X-Requested-With header\n\r\t\t\t\t// For cross-domain requests, seeing as conditions for a preflight are\n\r\t\t\t\t// akin to a jigsaw puzzle, we simply never set it to be sure.\n\r\t\t\t\t// (it can always be set on a per-request basis or even using ajaxSetup)\n\r\t\t\t\t// For same-domain requests, won't change header if already provided.\n\r\t\t\t\tif ( !options.crossDomain && !headers[ \"X-Requested-With\" ] ) {\n\r\t\t\t\t\theaders[ \"X-Requested-With\" ] = \"XMLHttpRequest\";\n\r\t\t\t\t}\n\r\n\r\t\t\t\t// Set headers\n\r\t\t\t\tfor ( i in headers ) {\n\r\t\t\t\t\txhr.setRequestHeader( i, headers[ i ] );\n\r\t\t\t\t}\n\r\n\r\t\t\t\t// Callback\n\r\t\t\t\tcallback = function( type ) {\n\r\t\t\t\t\treturn function() {\n\r\t\t\t\t\t\tif ( callback ) {\n\r\t\t\t\t\t\t\tcallback = errorCallback = xhr.onload =\n\r\t\t\t\t\t\t\t\txhr.onerror = xhr.onabort = xhr.ontimeout =\n\r\t\t\t\t\t\t\t\t\txhr.onreadystatechange = null;\n\r\n\r\t\t\t\t\t\t\tif ( type === \"abort\" ) {\n\r\t\t\t\t\t\t\t\txhr.abort();\n\r\t\t\t\t\t\t\t} else if ( type === \"error\" ) {\n\r\n\r\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\r\t\t\t\t\t\t\t\t// On a manual native abort, IE9 throws\n\r\t\t\t\t\t\t\t\t// errors on any property access that is not readyState\n\r\t\t\t\t\t\t\t\tif ( typeof xhr.status !== \"number\" ) {\n\r\t\t\t\t\t\t\t\t\tcomplete( 0, \"error\" );\n\r\t\t\t\t\t\t\t\t} else {\n\r\t\t\t\t\t\t\t\t\tcomplete(\n\r\n\r\t\t\t\t\t\t\t\t\t\t// File: protocol always yields status 0; see #8605, #14207\n\r\t\t\t\t\t\t\t\t\t\txhr.status,\n\r\t\t\t\t\t\t\t\t\t\txhr.statusText\n\r\t\t\t\t\t\t\t\t\t);\n\r\t\t\t\t\t\t\t\t}\n\r\t\t\t\t\t\t\t} else {\n\r\t\t\t\t\t\t\t\tcomplete(\n\r\t\t\t\t\t\t\t\t\txhrSuccessStatus[ xhr.status ] || xhr.status,\n\r\t\t\t\t\t\t\t\t\txhr.statusText,\n\r\n\r\t\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\r\t\t\t\t\t\t\t\t\t// IE9 has no XHR2 but throws on binary (trac-11426)\n\r\t\t\t\t\t\t\t\t\t// For XHR2 non-text, let the caller handle it (gh-2498)\n\r\t\t\t\t\t\t\t\t\t( xhr.responseType || \"text\" ) !== \"text\" ||\n\r\t\t\t\t\t\t\t\t\ttypeof xhr.responseText !== \"string\" ?\n\r\t\t\t\t\t\t\t\t\t\t{ binary: xhr.response } :\n\r\t\t\t\t\t\t\t\t\t\t{ text: xhr.responseText },\n\r\t\t\t\t\t\t\t\t\txhr.getAllResponseHeaders()\n\r\t\t\t\t\t\t\t\t);\n\r\t\t\t\t\t\t\t}\n\r\t\t\t\t\t\t}\n\r\t\t\t\t\t};\n\r\t\t\t\t};\n\r\n\r\t\t\t\t// Listen to events\n\r\t\t\t\txhr.onload = callback();\n\r\t\t\t\terrorCallback = xhr.onerror = xhr.ontimeout = callback( \"error\" );\n\r\n\r\t\t\t\t// Support: IE 9 only\n\r\t\t\t\t// Use onreadystatechange to replace onabort\n\r\t\t\t\t// to handle uncaught aborts\n\r\t\t\t\tif ( xhr.onabort !== undefined ) {\n\r\t\t\t\t\txhr.onabort = errorCallback;\n\r\t\t\t\t} else {\n\r\t\t\t\t\txhr.onreadystatechange = function() {\n\r\n\r\t\t\t\t\t\t// Check readyState before timeout as it changes\n\r\t\t\t\t\t\tif ( xhr.readyState === 4 ) {\n\r\n\r\t\t\t\t\t\t\t// Allow onerror to be called first,\n\r\t\t\t\t\t\t\t// but that will not handle a native abort\n\r\t\t\t\t\t\t\t// Also, save errorCallback to a variable\n\r\t\t\t\t\t\t\t// as xhr.onerror cannot be accessed\n\r\t\t\t\t\t\t\twindow.setTimeout( function() {\n\r\t\t\t\t\t\t\t\tif ( callback ) {\n\r\t\t\t\t\t\t\t\t\terrorCallback();\n\r\t\t\t\t\t\t\t\t}\n\r\t\t\t\t\t\t\t} );\n\r\t\t\t\t\t\t}\n\r\t\t\t\t\t};\n\r\t\t\t\t}\n\r\n\r\t\t\t\t// Create the abort callback\n\r\t\t\t\tcallback = callback( \"abort\" );\n\r\n\r\t\t\t\ttry {\n\r\n\r\t\t\t\t\t// Do send the request (this may raise an exception)\n\r\t\t\t\t\txhr.send( options.hasContent && options.data || null );\n\r\t\t\t\t} catch ( e ) {\n\r\n\r\t\t\t\t\t// #14683: Only rethrow if this hasn't been notified as an error yet\n\r\t\t\t\t\tif ( callback ) {\n\r\t\t\t\t\t\tthrow e;\n\r\t\t\t\t\t}\n\r\t\t\t\t}\n\r\t\t\t},\n\r\n\r\t\t\tabort: function() {\n\r\t\t\t\tif ( callback ) {\n\r\t\t\t\t\tcallback();\n\r\t\t\t\t}\n\r\t\t\t}\n\r\t\t};\n\r\t}\n\r} );\n\r\n\r\n\r\n\r\n\r// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\n\rjQuery.ajaxPrefilter( function( s ) {\n\r\tif ( s.crossDomain ) {\n\r\t\ts.contents.script = false;\n\r\t}\n\r} );\n\r\n\r// Install script dataType\n\rjQuery.ajaxSetup( {\n\r\taccepts: {\n\r\t\tscript: \"text/javascript, application/javascript, \" +\n\r\t\t\t\"application/ecmascript, application/x-ecmascript\"\n\r\t},\n\r\tcontents: {\n\r\t\tscript: /\\b(?:java|ecma)script\\b/\n\r\t},\n\r\tconverters: {\n\r\t\t\"text script\": function( text ) {\n\r\t\t\tjQuery.globalEval( text );\n\r\t\t\treturn text;\n\r\t\t}\n\r\t}\n\r} );\n\r\n\r// Handle cache's special case and crossDomain\n\rjQuery.ajaxPrefilter( \"script\", function( s ) {\n\r\tif ( s.cache === undefined ) {\n\r\t\ts.cache = false;\n\r\t}\n\r\tif ( s.crossDomain ) {\n\r\t\ts.type = \"GET\";\n\r\t}\n\r} );\n\r\n\r// Bind script tag hack transport\n\rjQuery.ajaxTransport( \"script\", function( s ) {\n\r\n\r\t// This transport only deals with cross domain or forced-by-attrs requests\n\r\tif ( s.crossDomain || s.scriptAttrs ) {\n\r\t\tvar script, callback;\n\r\t\treturn {\n\r\t\t\tsend: function( _, complete ) {\n\r\t\t\t\tscript = jQuery( \"