-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgdpr.js.map
1 lines (1 loc) · 930 KB
/
gdpr.js.map
1
{"version":3,"sources":["node_modules/bootstrap/dist/js/npm.js","node_modules/bootstrap/js/affix.js","node_modules/bootstrap/js/alert.js","node_modules/bootstrap/js/button.js","node_modules/bootstrap/js/carousel.js","node_modules/bootstrap/js/collapse.js","node_modules/bootstrap/js/dropdown.js","node_modules/bootstrap/js/modal.js","node_modules/bootstrap/js/popover.js","node_modules/bootstrap/js/scrollspy.js","node_modules/bootstrap/js/tab.js","node_modules/bootstrap/js/tooltip.js","node_modules/bootstrap/js/transition.js","node_modules/jquery/dist/jquery.js","app/404.static.pug","app/about-us/index.static.pug","app/case-studies/2020_casting.static.pug","app/case-studies/brilliant_basics.static.pug","app/case-studies/case_study_01.static.pug","app/case-studies/checkmarx_codebashing.static.pug","app/case-studies/click_mechanic.static.pug","app/case-studies/index.static.pug","app/case-studies/rhodar_asbestos.static.pug","app/case-studies/space_studios.static.pug","app/case-studies/stage_castings.static.pug","app/community/hacknight.static.pug","app/community/unconference.static.pug","app/partials/case-studies/case_study_01/detail_content.static.pug","app/partials/case-studies/case_study_01/features_icons_images.static.pug","app/partials/case-studies/case_study_01/features_step_numbers.static.pug","app/partials/case-studies/case_study_01/header_lg_dark_parallax.static.pug","app/partials/case-studies/case_study_01/simple_contact_form.static.pug","app/partials/case-studies/case_study_01/testimonial.static.pug","app/partials/community/project_nav.static.pug","app/partials/elements/404.static.pug","app/partials/google/gtm_no_script.static.pug","app/partials/google/gtm_script.static.pug","app/privacy-policy.static.pug","app/scripts/cookies.js","app/scripts/gdpr-initialize.js","app/scripts/landing-page.js","app/scripts/simple-form.js","app/scripts/validator.min.js","app/services/machine_learning.static.pug","app/services/maintenance_support.static.pug","app/services/mobile_development.static.pug","app/services/specific_solutions.static.pug","app/services/step_comparison.static.pug","app/services/step_four.static.pug","app/services/step_one.static.pug","app/services/step_three.static.pug","app/services/step_two.static.pug","app/services/team_extension.static.pug","app/services/web_development.static.pug","app/thanks.static.pug","app/scripts/vendor/circle-progress.min.js","app/scripts/vendor/countup.min.js","app/scripts/vendor/isotope.pkgd.min.js","app/scripts/vendor/jquery.mb.YTPlayer.min.js","app/scripts/vendor/jquery.waypoints.min.js","app/scripts/vendor/slick.min.js","app/scripts/vendor/wow.min.js"],"names":["window","addEventListener","cookieconsent","initialise","document","console","log","require","$","load","initPortfolio","click","parent","toggleClass","addClass","ready","initNavbar","initVideoBg","initCountNbr","initSliders","initAnimation","initWaypoints","initSmoothScroll","initBackupPicture","initCircleProgress","initTwitterWidgetCSS","initLayerImagesHover","width","counter1","counter2","counter3","counter4","initContactMap","initGMap","mapOptions","zoom","scrollwheel","center","google","maps","LatLng","styles","map","Map","getElementById","image","myLatLng","beachMarker","Marker","position","icon","event","addDomListener","length","countersWaypoint","Waypoint","element","handler","reset","start","offset","removeClass","hasCounters","hasClass","options","separator","useEasing","useGrouping","CountUp","hover","initFloatingLayersAnimation","layer_1","querySelector","layer_2","layer_3","circleProgress","value","size","fill","gradient","gradientAngle","Math","PI","css","on","progress","find","html","round","twttr","events","bind","tgt","target","contents","append","prop","appendTo","title","attr","not","location","pathname","replace","hostname","hash","slice","preventDefault","animate","scrollTop","top","initServicesAffix","matchMedia","matches","serviceAffixLeftSidebarTop","height","serviceAffixMiddleSidebarTop","serviceAffixfooterHeight","affix","bottom","outerWidth","scrollspy","x","data","initBanner","scroll","fadeOut","resize","collapse","e","stopPropagation","getAttribute","maxHeight","hasBgVideo","hasFwBgVideo","hasSecBgVideo","YTPlayer","pfolio3colFW","$container","isotope","itemSelector","filterValue","filter","pfolioMasonry","percentPosition","layoutMode","masonry","columnWidth","initParallax","isSafari","test","navigator","userAgent","vendor","parallax","slick","autoplay","autoplaySpeed","slidesToShow","slidesToScroll","dots","arrows","prevArrow","nextArrow","responsive","breakpoint","settings","infinite","adaptiveHeight","centerMode","centerPadding","useCSS","fade","speed","accessibility","customPaging","slider","i","WOW","init","request","serializeddata","values","$inputs","$form","originalInputSelector","fn","validator","Constructor","INPUT_SELECTOR","verifyRecaptchaCallback","response","val","trigger","isDefaultPrevented","serialize","each","name","abort","ajax","url","type","done","textStatus","cod","href","fail","jqXHR","errorThrown","error","alert","a","b","is","c","extend","d","DEFAULTS","f","validators","VALIDATORS","custom","$element","$btn","add","update","proxy","onInput","onSubmit","closest","VERSION","FOCUS_OFFSET","delay","disable","focus","errors","match","minlength","feedback","success","checkValidity","validity","valid","validationMessage","prototype","clearErrors","toggleSubmit","validateInput","Event","relatedTarget","g","runValidators","defer","showErrors","toString","detail","typeMismatch","patternMismatch","stepMismatch","rangeOverflow","rangeUnderflow","valueMissing","h","Deferred","reject","call","indexOf","push","get","always","resolve","promise","validate","when","then","focusError","empty","hasErrors","isIncomplete","trim","clearTimeout","setTimeout","removeData","destroy","removeAttr","off","noConflict","jQuery","define","amd","module","exports","t","startAngle","thickness","emptyFill","animation","duration","easing","animationStartValue","reverse","lineCap","insertMode","constructor","el","canvas","ctx","radius","arcFill","lastFrameValue","initWidget","initFill","draw","getContext","devicePixelRatio","style","scale","drawImage","r","createPattern","drawFrame","n","Error","color","s","l","o","gradientDirection","cos","sin","createLinearGradient","apply","u","isArray","addColorStop","Image","src","complete","onload","drawAnimated","clearRect","drawEmptyArc","drawArc","getThickness","save","beginPath","arc","lineWidth","strokeStyle","stroke","restore","stop","animationProgress","step","isNumeric","getValue","setValue","defaults","circleProgressEasing","arguments","isPlainObject","JSON","parse","requestAnimationFrame","cancelAnimationFrame","Date","getTime","max","decimal","j","hasOwnProperty","prefix","suffix","startVal","Number","isNaN","join","endVal","countDown","frameVal","decimals","dec","pow","k","version","printValue","formatNumber","tagName","textContent","innerHTML","easeOutExpo","count","startTime","timestamp","remaining","rAF","callback","pauseResume","paused","toFixed","split","jQueryBridget","charAt","option","_init","bridget","Array","EvEmitter","_events","once","_onceEvents","splice","emitEvent","allOff","getSize","parseFloat","innerWidth","innerHeight","outerHeight","getComputedStyle","createElement","padding","borderStyle","borderWidth","boxSizing","body","documentElement","appendChild","isBoxSizeOuter","removeChild","nodeType","display","offsetWidth","offsetHeight","isBorderBox","m","p","paddingLeft","paddingRight","y","paddingTop","paddingBottom","marginLeft","marginRight","v","marginTop","marginBottom","_","borderLeftWidth","borderRightWidth","z","borderTopWidth","borderBottomWidth","I","S","matchesSelector","Element","fizzyUIUtils","modulo","makeArray","removeFrom","getParent","parentNode","getQueryElement","handleEvent","filterFindElements","forEach","HTMLElement","querySelectorAll","debounceMethod","docReady","readyState","toDashed","toLowerCase","htmlInit","concat","className","Outlayer","Item","layout","_create","transition","transform","WebkitTransition","transitionDuration","transitionProperty","transitionDelay","Object","create","_transn","ingProperties","clean","onEnd","getPosition","_getOption","layoutPosition","getXValue","getYValue","_transitionTo","setPosition","isTransitioning","getTranslate","to","onTransitionEnd","isCleaning","goTo","moveTo","_nonTransition","_removeStyles","from","enableTransition","staggerDelay","onwebkitTransitionEnd","ontransitionend","onotransitionend","propertyName","disableTransition","removeTransitionStyles","removeEventListener","stagger","removeElem","remove","hide","reveal","isHidden","getHideRevealTransitionEndProperty","onRevealTransitionEnd","hiddenStyle","visibleStyle","opacity","onHideTransitionEnd","left","right","namespace","outlayerGUID","containerStyle","initLayout","originLeft","originTop","resizeContainer","compatOptions","horizontal","layoutInstant","reloadItems","stamps","stamp","bindResize","items","_itemize","children","_filterFindItemElements","getItemElements","_resetLayout","_manageStamps","_isLayoutInited","layoutItems","_getMeasurement","_getItemsForLayout","_layoutItems","_postLayout","isIgnored","_emitCompleteOnItems","_getItemLayoutPosition","item","isInstant","isLayoutInstant","_processLayoutQueue","updateStagger","_positionItem","_getContainerSize","_setContainerMeasure","dispatchEvent","ignore","getItem","unignore","_find","unstamp","_getBoundingRect","_manageStamp","getBoundingClientRect","_boundingRect","_getElementOffset","isResizeBound","unbindResize","onresize","needsResizeLayout","addItems","appended","prepended","revealItemElements","getItems","hideItemElements","ms","Isotope","id","itemGUID","sortData","updateSortData","random","getSortData","_sorters","LayoutMode","filteredItems","needsVerticalResizeLayout","getColumnWidth","getSegmentSize","getRowHeight","getFirstItemSize","modes","Masonry","fitWidth","measureColumns","colYs","cols","maxY","horizontalColIndex","getContainerWidth","containerWidth","gutter","min","horizontalOrder","col","_getTopColPosition","_getTopColGroup","_getColGroupY","_getHorizontalColPosition","floor","_getContainerFitWidth","isFitWidth","horizontalAlignment","String","isJQueryFiltering","sortAscending","_getSorters","sortHistory","_initLayoutMode","_updateItemsSortData","arrange","_layout","_getIsInstant","_filter","_bindArrangeComplete","_isInstant","_noTransition","_hideReveal","_sort","needReveal","needHide","_getFilterTest","sortDataParsers","parseInt","sortBy","_getIsSameSortBy","sort","_mode","_filterRevealAdded","insert","shuffle","getFilteredItemElements","onYouTubeIframeAPIReady","ytp","YTAPIReady","getYTPVideoID","substr","lastIndexOf","videoID","playlistID","mbYTPlayer","author","apiKey","containment","ratio","videoURL","playlistURL","startAt","stopAt","autoPlay","vol","addRaster","quality","mute","loop","showControls","showAnnotations","showYTLogo","stopMovieOnBlur","realfullscreen","gaTrack","optimizeDisplay","onReady","controls","play","pause","unmute","onlyYT","showSite","ytLogo","locationProtocol","buildPlayer","$YTPlayer","opt","state","filtersEnabled","filters","grayscale","unit","hue_rotate","invert","saturate","sepia","brightness","contrast","blur","property","eval","hasChanged","defaultOpt","isRetina","retina","isIframe","self","canGoFullScreen","browser","msie","opera","playerID","isAlone","hasFocus","playerVars","modestbranding","showinfo","rel","enablejsapi","playerapiid","origin","allowfullscreen","wmode","iv_load_policy","canPlayType","html5","playerBox","overlay","isSelf","isBackground","backgroundIsInited","isPlayer","canPlayOnMobile","mobile","wrapper","zIndex","minWidth","minHeight","overflow","prepend","after","controlBar","tag","isInit","getDataFromAPI","maxWidth","YT","Player","videoId","player","isReady","playerEl","getIframe","checkForState","time","canTrigger","onStateChange","getPlayerState","eventType","_gaq","hasData","videoData","ga","setPlaybackQuality","YTPEvent","onPlaybackQualityChange","getPlaybackQuality","onError","isPlayList","playNext","mbStorage","dataReceived","getJSON","channelTitle","description","substring","aspectratio","thumb_max","thumbnails","maxres","thumb_high","high","thumb_medium","medium","set","snippet","background","backgroundSize","backgroundUrl","loading","fadeIn","removeStoredData","getVideoData","getVideoID","setVideoQuality","chrome","playlist","videos","videoCounter","videoLength","mb_YTPlayer","changeMovie","playPrev","CSSAnimate","YTPGetPlayer","cueVideoByUrl","encodeURI","getPlayer","playerDestroy","clearInterval","checkForStartAt","getState","fullscreen","real","hideMouse","cursor","RunPrefixMethod","launchFullscreen","cancelFullscreen","fullScreenBtn","videoWrapper","fullscreenchange","mozilla","webkit","YTPSetVideoQuality","before","hideCursor","parents","seekTo","getCurrentTime","toggleLoops","playVideo","togglePlay","YTPPause","YTPPlay","stopVideo","pauseVideo","setVolume","getVolume","isMute","YTPUnmute","YTPMute","volumeBar","updateSliderVal","unMute","applyFilter","YTPEnableFilters","applyFilters","YTPApplyFilter","toggleFilter","toggleFilters","YTPDisableFilters","disableFilters","enableFilters","removeFilter","manageProgress","getDuration","getVideoLoadedFraction","totalTime","currentTime","buildControls","printUrl","whiteSpace","buttonBar","playpause","MuteUnmute","idx","vURL","movieUrl","open","onlyVideo","YTPFullscreen","progressBar","timeBar","clientX","timeW","loadedBar","simpleSlider","initialval","orientation","interval","contains","checkForStart","setInterval","prog","YTPManageProgress","formatTime","isCompact","isEnded","YTPEnd","YTPPlayerDestroy","muteYTPVolume","slideDown","toggleVolume","isMuted","ceil","YTPlaylist","YTPPlayNext","YTPPlayPrev","YTPChangeMovie","YTPGetVideoID","YTPTogglePlay","YTPToggleLoops","YTPStop","YTPSeekTo","YTPToggleVolume","YTPSetVolume","YTPGetVideoData","YTPApplyFilters","YTPToggleFilter","YTPToggleFilters","YTPRemoveFilter","buildYTPControls","playYTP","stopYTP","pauseYTP","seekToYTP","unmuteYTPVolume","setYTPVolume","manageYTPProgress","YTPGetDataFromFeed","uncamel","setUnit","setFilter","CSS","sfx","RegExp","support","CSStransition","MozTransition","MsTransition","OTransition","transitionEnd","hueRotate","normalizeCss","getProp","called","CSSAIsRunning","timeout","CSSqueue","fx","speeds","_default","out","snap","easeOutCubic","easeInOutCubic","easeInCirc","easeOutCirc","easeInOutCirc","easeInExpo","easeInOutExpo","easeInQuad","easeOutQuad","easeInOutQuad","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInSine","easeOutSine","easeInOutSine","easeInBack","easeOutBack","easeInOutBack","one","css3","nAgt","safari","ua","appName","fullVersion","appVersion","majorVersion","nameOffset","verOffset","ix","end","toUpperCase","android","blackberry","ios","operaMobile","windowsMobile","kindle","isMobile","isAndroidDefault","msPointerEnabled","MSGesture","DocumentTouch","readonly","move","level","changedTouches","canSlide","scrollLeft","clientY","scaleX","scaleY","outOfRangeX","outOfRangeY","outOfRange","mbCookie","stringify","setTime","toGMTString","cookie","localStorage","setItem","removeItem","clear","key","Adapter","adapter","axis","enabled","triggerPoint","group","Group","findOrCreate","context","Context","findOrCreateByElement","offsetAliases","queueTrigger","enable","refresh","next","previous","invokeAll","destroyAll","disableAll","enableAll","refreshAll","viewportHeight","clientHeight","viewportWidth","clientWidth","adapters","continuous","didScroll","didResize","oldScroll","waypoints","vertical","waypointContextKey","windowContext","createThrottledScrollHandler","createThrottledResizeHandler","checkEmpty","isEmptyObject","handleResize","handleScroll","isTouch","newScroll","forward","backward","flushTriggers","contextOffset","contextScroll","contextDimension","offsetProp","w","findByElement","mozRequestAnimationFrame","webkitRequestAnimationFrame","clearTriggerQueues","triggerQueues","up","down","inArray","first","last","isFunction","waypoint","Zepto","Slick","appendArrows","appendDots","asNavFor","cssEase","dotsClass","draggable","edgeFriction","focusOnSelect","initialSlide","lazyLoad","mobileFirst","pauseOnHover","pauseOnDotsHover","respondTo","rows","rtl","slide","slidesPerRow","swipe","swipeToSlide","touchMove","touchThreshold","variableWidth","verticalSwiping","waitForAnimate","initials","animating","dragging","autoPlayTimer","currentDirection","currentLeft","currentSlide","direction","$dots","listWidth","listHeight","loadIndex","$nextArrow","$prevArrow","slideCount","slideWidth","$slideTrack","$slides","sliding","slideOffset","swipeLeft","$list","touchObject","transformsEnabled","unslicked","activeBreakpoint","animType","animProp","breakpoints","breakpointSettings","cssTransitions","hidden","positionProp","rowCount","shouldClick","$slider","$slidesCache","transformType","transitionType","visibilityChange","windowWidth","windowTimer","originalSettings","mozHidden","webkitHidden","autoPlayClear","changeSlide","clickHandler","selectHandler","swipeHandler","dragHandler","keyHandler","autoPlayIterator","instanceUid","htmlExpr","checkResponsive","addSlide","slickAdd","unload","insertBefore","eq","insertAfter","prependTo","detach","reinit","animateHeight","animateSlide","animStart","applyTransition","slideHandler","buildArrows","buildDots","getDotCount","buildOut","wrapAll","wrap","setupInfinite","updateDots","setSlideClasses","buildRows","createDocumentFragment","unslick","message","index","checkNavigable","getNavigableIndexes","cleanUpEvents","setPaused","visibility","orientationChange","cleanUpRows","stopImmediatePropagation","fadeSlide","filterSlides","slickFilter","getCurrent","slickCurrentSlide","getLeft","offsetLeft","getOption","slickGetOption","getSlick","getSlideCount","abs","slickGoTo","setProps","startLoad","loadSlider","initializeEvents","updateArrows","initArrowEvents","initDotEvents","action","initUI","show","keyCode","progressiveLazyLoad","slickNext","slickPause","slickPlay","postSlide","prev","slickPrev","windowDelay","removeSlide","slickRemove","setCSS","setDimensions","setFade","setHeight","setOption","slickSetOption","msTransition","OTransform","perspectiveProperty","webkitPerspective","MozTransform","MozPerspective","webkitTransform","msTransform","clone","swipeDirection","startX","curX","startY","curY","atan2","swipeEnd","swipeLength","edgeHit","minSwipe","fingerCount","originalEvent","touches","swipeStart","swipeMove","pageX","pageY","sqrt","unfilterSlides","slickUnfilter","createEvent","initCustomEvent","createEventObject","eventName","addEvent","attachEvent","removeEvent","detachEvent","WeakMap","MozWeakMap","keys","MutationObserver","WebkitMutationObserver","MozMutationObserver","warn","notSupported","observe","getPropertyValue","currentStyle","scrollCallback","scrollHandler","resetAnimation","scrolled","config","util","animationNameCache","wowEvent","boxClass","animateClass","live","finished","stopped","boxes","all","disabled","resetStyle","applyStyle","addedNodes","doSync","childList","subtree","sync","customStyle","srcElement","cacheAnimationName","vendorSet","animationDuration","animationDelay","animationIterationCount","animationName","cachedAnimationName","vendors","vendorCSS","getPropertyCSSValue","cssText","isVisible","offsetTop","offsetParent","pageYOffset","_util"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACvKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACnGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AClIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AClPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACzNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC1KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACxVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACjHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACjLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AChKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC7gBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AChEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC/mUA;AAAA;AAAA;AAAA;CCAA;AAAA;AAAA;AAAA;CCAA;AAAA;AAAA;AAAA;CCAA;AAAA;AAAA;AAAA;CCAA;AAAA;AAAA;AAAA;CCAA;AAAA;AAAA;AAAA;CCAA;AAAA;AAAA;AAAA;CCAA;AAAA;AAAA;AAAA;CCAA;AAAA;AAAA;AAAA;CCAA;AAAA;AAAA;AAAA;CCAA;AAAA;AAAA;AAAA;CCAA;AAAA;AAAA;AAAA;CCAA;AAAA;AAAA;AAAA;CCAA;AAAA;AAAA;AAAA;CCAA;AAAA;AAAA;AAAA;CCAA;AAAA;AAAA;AAAA;CCAA;AAAA;AAAA;AAAA;CCAA;AAAA;AAAA;AAAA;CCAA;AAAA;AAAA;AAAA;CCAA;AAAA;AAAA;AAAA;CCAA;AAAA;AAAA;AAAA;CCAA;AAAA;AAAA;AAAA;CCAA;AAAA;AAAA;AAAA;CCAA;AAAA;AAAA;AAAA;;;;ACAAA,OAAOC,gBAAP,CAAwB,MAAxB,EAAgC,YAAU;AACxCD,SAAOE,aAAP,CAAqBC,UAArB,CAAgC;AAC9B,eAAW;AACT,eAAS;AACP,sBAAc,SADP;AAEP,gBAAQ;AAFD,OADA;AAKT,gBAAU;AACR,sBAAc;AADN;AALD,KADmB;AAU9B,gBAAY,QAVkB;AAW9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","file":"public/gdpr.js","sourcesContent":["\nrequire.register(\"bootstrap/dist/js/npm.js\", function(exports, require, module) {\n require = __makeRelativeRequire(require, {}, \"bootstrap\");\n (function() {\n // This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment.\nrequire('../../js/transition.js')\nrequire('../../js/alert.js')\nrequire('../../js/button.js')\nrequire('../../js/carousel.js')\nrequire('../../js/collapse.js')\nrequire('../../js/dropdown.js')\nrequire('../../js/modal.js')\nrequire('../../js/tooltip.js')\nrequire('../../js/popover.js')\nrequire('../../js/scrollspy.js')\nrequire('../../js/tab.js')\nrequire('../../js/affix.js')\n })();\n});","\nrequire.register(\"bootstrap/js/affix.js\", function(exports, require, module) {\n require = __makeRelativeRequire(require, {}, \"bootstrap\");\n (function() {\n /* ========================================================================\n * Bootstrap: affix.js v3.3.7\n * http://getbootstrap.com/javascript/#affix\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // AFFIX CLASS DEFINITION\n // ======================\n\n var Affix = function (element, options) {\n this.options = $.extend({}, Affix.DEFAULTS, options)\n\n this.$target = $(this.options.target)\n .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this))\n .on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this))\n\n this.$element = $(element)\n this.affixed = null\n this.unpin = null\n this.pinnedOffset = null\n\n this.checkPosition()\n }\n\n Affix.VERSION = '3.3.7'\n\n Affix.RESET = 'affix affix-top affix-bottom'\n\n Affix.DEFAULTS = {\n offset: 0,\n target: window\n }\n\n Affix.prototype.getState = function (scrollHeight, height, offsetTop, offsetBottom) {\n var scrollTop = this.$target.scrollTop()\n var position = this.$element.offset()\n var targetHeight = this.$target.height()\n\n if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false\n\n if (this.affixed == 'bottom') {\n if (offsetTop != null) return (scrollTop + this.unpin <= position.top) ? false : 'bottom'\n return (scrollTop + targetHeight <= scrollHeight - offsetBottom) ? false : 'bottom'\n }\n\n var initializing = this.affixed == null\n var colliderTop = initializing ? scrollTop : position.top\n var colliderHeight = initializing ? targetHeight : height\n\n if (offsetTop != null && scrollTop <= offsetTop) return 'top'\n if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom'\n\n return false\n }\n\n Affix.prototype.getPinnedOffset = function () {\n if (this.pinnedOffset) return this.pinnedOffset\n this.$element.removeClass(Affix.RESET).addClass('affix')\n var scrollTop = this.$target.scrollTop()\n var position = this.$element.offset()\n return (this.pinnedOffset = position.top - scrollTop)\n }\n\n Affix.prototype.checkPositionWithEventLoop = function () {\n setTimeout($.proxy(this.checkPosition, this), 1)\n }\n\n Affix.prototype.checkPosition = function () {\n if (!this.$element.is(':visible')) return\n\n var height = this.$element.height()\n var offset = this.options.offset\n var offsetTop = offset.top\n var offsetBottom = offset.bottom\n var scrollHeight = Math.max($(document).height(), $(document.body).height())\n\n if (typeof offset != 'object') offsetBottom = offsetTop = offset\n if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element)\n if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element)\n\n var affix = this.getState(scrollHeight, height, offsetTop, offsetBottom)\n\n if (this.affixed != affix) {\n if (this.unpin != null) this.$element.css('top', '')\n\n var affixType = 'affix' + (affix ? '-' + affix : '')\n var e = $.Event(affixType + '.bs.affix')\n\n this.$element.trigger(e)\n\n if (e.isDefaultPrevented()) return\n\n this.affixed = affix\n this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null\n\n this.$element\n .removeClass(Affix.RESET)\n .addClass(affixType)\n .trigger(affixType.replace('affix', 'affixed') + '.bs.affix')\n }\n\n if (affix == 'bottom') {\n this.$element.offset({\n top: scrollHeight - height - offsetBottom\n })\n }\n }\n\n\n // AFFIX PLUGIN DEFINITION\n // =======================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.affix')\n var options = typeof option == 'object' && option\n\n if (!data) $this.data('bs.affix', (data = new Affix(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.affix\n\n $.fn.affix = Plugin\n $.fn.affix.Constructor = Affix\n\n\n // AFFIX NO CONFLICT\n // =================\n\n $.fn.affix.noConflict = function () {\n $.fn.affix = old\n return this\n }\n\n\n // AFFIX DATA-API\n // ==============\n\n $(window).on('load', function () {\n $('[data-spy=\"affix\"]').each(function () {\n var $spy = $(this)\n var data = $spy.data()\n\n data.offset = data.offset || {}\n\n if (data.offsetBottom != null) data.offset.bottom = data.offsetBottom\n if (data.offsetTop != null) data.offset.top = data.offsetTop\n\n Plugin.call($spy, data)\n })\n })\n\n}(jQuery);\n })();\n});","\nrequire.register(\"bootstrap/js/alert.js\", function(exports, require, module) {\n require = __makeRelativeRequire(require, {}, \"bootstrap\");\n (function() {\n /* ========================================================================\n * Bootstrap: alert.js v3.3.7\n * http://getbootstrap.com/javascript/#alerts\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // ALERT CLASS DEFINITION\n // ======================\n\n var dismiss = '[data-dismiss=\"alert\"]'\n var Alert = function (el) {\n $(el).on('click', dismiss, this.close)\n }\n\n Alert.VERSION = '3.3.7'\n\n Alert.TRANSITION_DURATION = 150\n\n Alert.prototype.close = function (e) {\n var $this = $(this)\n var selector = $this.attr('data-target')\n\n if (!selector) {\n selector = $this.attr('href')\n selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n }\n\n var $parent = $(selector === '#' ? [] : selector)\n\n if (e) e.preventDefault()\n\n if (!$parent.length) {\n $parent = $this.closest('.alert')\n }\n\n $parent.trigger(e = $.Event('close.bs.alert'))\n\n if (e.isDefaultPrevented()) return\n\n $parent.removeClass('in')\n\n function removeElement() {\n // detach from parent, fire event then clean up data\n $parent.detach().trigger('closed.bs.alert').remove()\n }\n\n $.support.transition && $parent.hasClass('fade') ?\n $parent\n .one('bsTransitionEnd', removeElement)\n .emulateTransitionEnd(Alert.TRANSITION_DURATION) :\n removeElement()\n }\n\n\n // ALERT PLUGIN DEFINITION\n // =======================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.alert')\n\n if (!data) $this.data('bs.alert', (data = new Alert(this)))\n if (typeof option == 'string') data[option].call($this)\n })\n }\n\n var old = $.fn.alert\n\n $.fn.alert = Plugin\n $.fn.alert.Constructor = Alert\n\n\n // ALERT NO CONFLICT\n // =================\n\n $.fn.alert.noConflict = function () {\n $.fn.alert = old\n return this\n }\n\n\n // ALERT DATA-API\n // ==============\n\n $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close)\n\n}(jQuery);\n })();\n});","\nrequire.register(\"bootstrap/js/button.js\", function(exports, require, module) {\n require = __makeRelativeRequire(require, {}, \"bootstrap\");\n (function() {\n /* ========================================================================\n * Bootstrap: button.js v3.3.7\n * http://getbootstrap.com/javascript/#buttons\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // BUTTON PUBLIC CLASS DEFINITION\n // ==============================\n\n var Button = function (element, options) {\n this.$element = $(element)\n this.options = $.extend({}, Button.DEFAULTS, options)\n this.isLoading = false\n }\n\n Button.VERSION = '3.3.7'\n\n Button.DEFAULTS = {\n loadingText: 'loading...'\n }\n\n Button.prototype.setState = function (state) {\n var d = 'disabled'\n var $el = this.$element\n var val = $el.is('input') ? 'val' : 'html'\n var data = $el.data()\n\n state += 'Text'\n\n if (data.resetText == null) $el.data('resetText', $el[val]())\n\n // push to event loop to allow forms to submit\n setTimeout($.proxy(function () {\n $el[val](data[state] == null ? this.options[state] : data[state])\n\n if (state == 'loadingText') {\n this.isLoading = true\n $el.addClass(d).attr(d, d).prop(d, true)\n } else if (this.isLoading) {\n this.isLoading = false\n $el.removeClass(d).removeAttr(d).prop(d, false)\n }\n }, this), 0)\n }\n\n Button.prototype.toggle = function () {\n var changed = true\n var $parent = this.$element.closest('[data-toggle=\"buttons\"]')\n\n if ($parent.length) {\n var $input = this.$element.find('input')\n if ($input.prop('type') == 'radio') {\n if ($input.prop('checked')) changed = false\n $parent.find('.active').removeClass('active')\n this.$element.addClass('active')\n } else if ($input.prop('type') == 'checkbox') {\n if (($input.prop('checked')) !== this.$element.hasClass('active')) changed = false\n this.$element.toggleClass('active')\n }\n $input.prop('checked', this.$element.hasClass('active'))\n if (changed) $input.trigger('change')\n } else {\n this.$element.attr('aria-pressed', !this.$element.hasClass('active'))\n this.$element.toggleClass('active')\n }\n }\n\n\n // BUTTON PLUGIN DEFINITION\n // ========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.button')\n var options = typeof option == 'object' && option\n\n if (!data) $this.data('bs.button', (data = new Button(this, options)))\n\n if (option == 'toggle') data.toggle()\n else if (option) data.setState(option)\n })\n }\n\n var old = $.fn.button\n\n $.fn.button = Plugin\n $.fn.button.Constructor = Button\n\n\n // BUTTON NO CONFLICT\n // ==================\n\n $.fn.button.noConflict = function () {\n $.fn.button = old\n return this\n }\n\n\n // BUTTON DATA-API\n // ===============\n\n $(document)\n .on('click.bs.button.data-api', '[data-toggle^=\"button\"]', function (e) {\n var $btn = $(e.target).closest('.btn')\n Plugin.call($btn, 'toggle')\n if (!($(e.target).is('input[type=\"radio\"], input[type=\"checkbox\"]'))) {\n // Prevent double click on radios, and the double selections (so cancellation) on checkboxes\n e.preventDefault()\n // The target component still receive the focus\n if ($btn.is('input,button')) $btn.trigger('focus')\n else $btn.find('input:visible,button:visible').first().trigger('focus')\n }\n })\n .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^=\"button\"]', function (e) {\n $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type))\n })\n\n}(jQuery);\n })();\n});","\nrequire.register(\"bootstrap/js/carousel.js\", function(exports, require, module) {\n require = __makeRelativeRequire(require, {}, \"bootstrap\");\n (function() {\n /* ========================================================================\n * Bootstrap: carousel.js v3.3.7\n * http://getbootstrap.com/javascript/#carousel\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // CAROUSEL CLASS DEFINITION\n // =========================\n\n var Carousel = function (element, options) {\n this.$element = $(element)\n this.$indicators = this.$element.find('.carousel-indicators')\n this.options = options\n this.paused = null\n this.sliding = null\n this.interval = null\n this.$active = null\n this.$items = null\n\n this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this))\n\n this.options.pause == 'hover' && !('ontouchstart' in document.documentElement) && this.$element\n .on('mouseenter.bs.carousel', $.proxy(this.pause, this))\n .on('mouseleave.bs.carousel', $.proxy(this.cycle, this))\n }\n\n Carousel.VERSION = '3.3.7'\n\n Carousel.TRANSITION_DURATION = 600\n\n Carousel.DEFAULTS = {\n interval: 5000,\n pause: 'hover',\n wrap: true,\n keyboard: true\n }\n\n Carousel.prototype.keydown = function (e) {\n if (/input|textarea/i.test(e.target.tagName)) return\n switch (e.which) {\n case 37: this.prev(); break\n case 39: this.next(); break\n default: return\n }\n\n e.preventDefault()\n }\n\n Carousel.prototype.cycle = function (e) {\n e || (this.paused = false)\n\n this.interval && clearInterval(this.interval)\n\n this.options.interval\n && !this.paused\n && (this.interval = setInterval($.proxy(this.next, this), this.options.interval))\n\n return this\n }\n\n Carousel.prototype.getItemIndex = function (item) {\n this.$items = item.parent().children('.item')\n return this.$items.index(item || this.$active)\n }\n\n Carousel.prototype.getItemForDirection = function (direction, active) {\n var activeIndex = this.getItemIndex(active)\n var willWrap = (direction == 'prev' && activeIndex === 0)\n || (direction == 'next' && activeIndex == (this.$items.length - 1))\n if (willWrap && !this.options.wrap) return active\n var delta = direction == 'prev' ? -1 : 1\n var itemIndex = (activeIndex + delta) % this.$items.length\n return this.$items.eq(itemIndex)\n }\n\n Carousel.prototype.to = function (pos) {\n var that = this\n var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active'))\n\n if (pos > (this.$items.length - 1) || pos < 0) return\n\n if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, \"slid\"\n if (activeIndex == pos) return this.pause().cycle()\n\n return this.slide(pos > activeIndex ? 'next' : 'prev', this.$items.eq(pos))\n }\n\n Carousel.prototype.pause = function (e) {\n e || (this.paused = true)\n\n if (this.$element.find('.next, .prev').length && $.support.transition) {\n this.$element.trigger($.support.transition.end)\n this.cycle(true)\n }\n\n this.interval = clearInterval(this.interval)\n\n return this\n }\n\n Carousel.prototype.next = function () {\n if (this.sliding) return\n return this.slide('next')\n }\n\n Carousel.prototype.prev = function () {\n if (this.sliding) return\n return this.slide('prev')\n }\n\n Carousel.prototype.slide = function (type, next) {\n var $active = this.$element.find('.item.active')\n var $next = next || this.getItemForDirection(type, $active)\n var isCycling = this.interval\n var direction = type == 'next' ? 'left' : 'right'\n var that = this\n\n if ($next.hasClass('active')) return (this.sliding = false)\n\n var relatedTarget = $next[0]\n var slideEvent = $.Event('slide.bs.carousel', {\n relatedTarget: relatedTarget,\n direction: direction\n })\n this.$element.trigger(slideEvent)\n if (slideEvent.isDefaultPrevented()) return\n\n this.sliding = true\n\n isCycling && this.pause()\n\n if (this.$indicators.length) {\n this.$indicators.find('.active').removeClass('active')\n var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)])\n $nextIndicator && $nextIndicator.addClass('active')\n }\n\n var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, \"slid\"\n if ($.support.transition && this.$element.hasClass('slide')) {\n $next.addClass(type)\n $next[0].offsetWidth // force reflow\n $active.addClass(direction)\n $next.addClass(direction)\n $active\n .one('bsTransitionEnd', function () {\n $next.removeClass([type, direction].join(' ')).addClass('active')\n $active.removeClass(['active', direction].join(' '))\n that.sliding = false\n setTimeout(function () {\n that.$element.trigger(slidEvent)\n }, 0)\n })\n .emulateTransitionEnd(Carousel.TRANSITION_DURATION)\n } else {\n $active.removeClass('active')\n $next.addClass('active')\n this.sliding = false\n this.$element.trigger(slidEvent)\n }\n\n isCycling && this.cycle()\n\n return this\n }\n\n\n // CAROUSEL PLUGIN DEFINITION\n // ==========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.carousel')\n var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option)\n var action = typeof option == 'string' ? option : options.slide\n\n if (!data) $this.data('bs.carousel', (data = new Carousel(this, options)))\n if (typeof option == 'number') data.to(option)\n else if (action) data[action]()\n else if (options.interval) data.pause().cycle()\n })\n }\n\n var old = $.fn.carousel\n\n $.fn.carousel = Plugin\n $.fn.carousel.Constructor = Carousel\n\n\n // CAROUSEL NO CONFLICT\n // ====================\n\n $.fn.carousel.noConflict = function () {\n $.fn.carousel = old\n return this\n }\n\n\n // CAROUSEL DATA-API\n // =================\n\n var clickHandler = function (e) {\n var href\n var $this = $(this)\n var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, '')) // strip for ie7\n if (!$target.hasClass('carousel')) return\n var options = $.extend({}, $target.data(), $this.data())\n var slideIndex = $this.attr('data-slide-to')\n if (slideIndex) options.interval = false\n\n Plugin.call($target, options)\n\n if (slideIndex) {\n $target.data('bs.carousel').to(slideIndex)\n }\n\n e.preventDefault()\n }\n\n $(document)\n .on('click.bs.carousel.data-api', '[data-slide]', clickHandler)\n .on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler)\n\n $(window).on('load', function () {\n $('[data-ride=\"carousel\"]').each(function () {\n var $carousel = $(this)\n Plugin.call($carousel, $carousel.data())\n })\n })\n\n}(jQuery);\n })();\n});","\nrequire.register(\"bootstrap/js/collapse.js\", function(exports, require, module) {\n require = __makeRelativeRequire(require, {}, \"bootstrap\");\n (function() {\n /* ========================================================================\n * Bootstrap: collapse.js v3.3.7\n * http://getbootstrap.com/javascript/#collapse\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n/* jshint latedef: false */\n\n+function ($) {\n 'use strict';\n\n // COLLAPSE PUBLIC CLASS DEFINITION\n // ================================\n\n var Collapse = function (element, options) {\n this.$element = $(element)\n this.options = $.extend({}, Collapse.DEFAULTS, options)\n this.$trigger = $('[data-toggle=\"collapse\"][href=\"#' + element.id + '\"],' +\n '[data-toggle=\"collapse\"][data-target=\"#' + element.id + '\"]')\n this.transitioning = null\n\n if (this.options.parent) {\n this.$parent = this.getParent()\n } else {\n this.addAriaAndCollapsedClass(this.$element, this.$trigger)\n }\n\n if (this.options.toggle) this.toggle()\n }\n\n Collapse.VERSION = '3.3.7'\n\n Collapse.TRANSITION_DURATION = 350\n\n Collapse.DEFAULTS = {\n toggle: true\n }\n\n Collapse.prototype.dimension = function () {\n var hasWidth = this.$element.hasClass('width')\n return hasWidth ? 'width' : 'height'\n }\n\n Collapse.prototype.show = function () {\n if (this.transitioning || this.$element.hasClass('in')) return\n\n var activesData\n var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing')\n\n if (actives && actives.length) {\n activesData = actives.data('bs.collapse')\n if (activesData && activesData.transitioning) return\n }\n\n var startEvent = $.Event('show.bs.collapse')\n this.$element.trigger(startEvent)\n if (startEvent.isDefaultPrevented()) return\n\n if (actives && actives.length) {\n Plugin.call(actives, 'hide')\n activesData || actives.data('bs.collapse', null)\n }\n\n var dimension = this.dimension()\n\n this.$element\n .removeClass('collapse')\n .addClass('collapsing')[dimension](0)\n .attr('aria-expanded', true)\n\n this.$trigger\n .removeClass('collapsed')\n .attr('aria-expanded', true)\n\n this.transitioning = 1\n\n var complete = function () {\n this.$element\n .removeClass('collapsing')\n .addClass('collapse in')[dimension]('')\n this.transitioning = 0\n this.$element\n .trigger('shown.bs.collapse')\n }\n\n if (!$.support.transition) return complete.call(this)\n\n var scrollSize = $.camelCase(['scroll', dimension].join('-'))\n\n this.$element\n .one('bsTransitionEnd', $.proxy(complete, this))\n .emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize])\n }\n\n Collapse.prototype.hide = function () {\n if (this.transitioning || !this.$element.hasClass('in')) return\n\n var startEvent = $.Event('hide.bs.collapse')\n this.$element.trigger(startEvent)\n if (startEvent.isDefaultPrevented()) return\n\n var dimension = this.dimension()\n\n this.$element[dimension](this.$element[dimension]())[0].offsetHeight\n\n this.$element\n .addClass('collapsing')\n .removeClass('collapse in')\n .attr('aria-expanded', false)\n\n this.$trigger\n .addClass('collapsed')\n .attr('aria-expanded', false)\n\n this.transitioning = 1\n\n var complete = function () {\n this.transitioning = 0\n this.$element\n .removeClass('collapsing')\n .addClass('collapse')\n .trigger('hidden.bs.collapse')\n }\n\n if (!$.support.transition) return complete.call(this)\n\n this.$element\n [dimension](0)\n .one('bsTransitionEnd', $.proxy(complete, this))\n .emulateTransitionEnd(Collapse.TRANSITION_DURATION)\n }\n\n Collapse.prototype.toggle = function () {\n this[this.$element.hasClass('in') ? 'hide' : 'show']()\n }\n\n Collapse.prototype.getParent = function () {\n return $(this.options.parent)\n .find('[data-toggle=\"collapse\"][data-parent=\"' + this.options.parent + '\"]')\n .each($.proxy(function (i, element) {\n var $element = $(element)\n this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element)\n }, this))\n .end()\n }\n\n Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) {\n var isOpen = $element.hasClass('in')\n\n $element.attr('aria-expanded', isOpen)\n $trigger\n .toggleClass('collapsed', !isOpen)\n .attr('aria-expanded', isOpen)\n }\n\n function getTargetFromTrigger($trigger) {\n var href\n var target = $trigger.attr('data-target')\n || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, '') // strip for ie7\n\n return $(target)\n }\n\n\n // COLLAPSE PLUGIN DEFINITION\n // ==========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.collapse')\n var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)\n\n if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false\n if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.collapse\n\n $.fn.collapse = Plugin\n $.fn.collapse.Constructor = Collapse\n\n\n // COLLAPSE NO CONFLICT\n // ====================\n\n $.fn.collapse.noConflict = function () {\n $.fn.collapse = old\n return this\n }\n\n\n // COLLAPSE DATA-API\n // =================\n\n $(document).on('click.bs.collapse.data-api', '[data-toggle=\"collapse\"]', function (e) {\n var $this = $(this)\n\n if (!$this.attr('data-target')) e.preventDefault()\n\n var $target = getTargetFromTrigger($this)\n var data = $target.data('bs.collapse')\n var option = data ? 'toggle' : $this.data()\n\n Plugin.call($target, option)\n })\n\n}(jQuery);\n })();\n});","\nrequire.register(\"bootstrap/js/dropdown.js\", function(exports, require, module) {\n require = __makeRelativeRequire(require, {}, \"bootstrap\");\n (function() {\n /* ========================================================================\n * Bootstrap: dropdown.js v3.3.7\n * http://getbootstrap.com/javascript/#dropdowns\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // DROPDOWN CLASS DEFINITION\n // =========================\n\n var backdrop = '.dropdown-backdrop'\n var toggle = '[data-toggle=\"dropdown\"]'\n var Dropdown = function (element) {\n $(element).on('click.bs.dropdown', this.toggle)\n }\n\n Dropdown.VERSION = '3.3.7'\n\n function getParent($this) {\n var selector = $this.attr('data-target')\n\n if (!selector) {\n selector = $this.attr('href')\n selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n }\n\n var $parent = selector && $(selector)\n\n return $parent && $parent.length ? $parent : $this.parent()\n }\n\n function clearMenus(e) {\n if (e && e.which === 3) return\n $(backdrop).remove()\n $(toggle).each(function () {\n var $this = $(this)\n var $parent = getParent($this)\n var relatedTarget = { relatedTarget: this }\n\n if (!$parent.hasClass('open')) return\n\n if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return\n\n $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))\n\n if (e.isDefaultPrevented()) return\n\n $this.attr('aria-expanded', 'false')\n $parent.removeClass('open').trigger($.Event('hidden.bs.dropdown', relatedTarget))\n })\n }\n\n Dropdown.prototype.toggle = function (e) {\n var $this = $(this)\n\n if ($this.is('.disabled, :disabled')) return\n\n var $parent = getParent($this)\n var isActive = $parent.hasClass('open')\n\n clearMenus()\n\n if (!isActive) {\n if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {\n // if mobile we use a backdrop because click events don't delegate\n $(document.createElement('div'))\n .addClass('dropdown-backdrop')\n .insertAfter($(this))\n .on('click', clearMenus)\n }\n\n var relatedTarget = { relatedTarget: this }\n $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget))\n\n if (e.isDefaultPrevented()) return\n\n $this\n .trigger('focus')\n .attr('aria-expanded', 'true')\n\n $parent\n .toggleClass('open')\n .trigger($.Event('shown.bs.dropdown', relatedTarget))\n }\n\n return false\n }\n\n Dropdown.prototype.keydown = function (e) {\n if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return\n\n var $this = $(this)\n\n e.preventDefault()\n e.stopPropagation()\n\n if ($this.is('.disabled, :disabled')) return\n\n var $parent = getParent($this)\n var isActive = $parent.hasClass('open')\n\n if (!isActive && e.which != 27 || isActive && e.which == 27) {\n if (e.which == 27) $parent.find(toggle).trigger('focus')\n return $this.trigger('click')\n }\n\n var desc = ' li:not(.disabled):visible a'\n var $items = $parent.find('.dropdown-menu' + desc)\n\n if (!$items.length) return\n\n var index = $items.index(e.target)\n\n if (e.which == 38 && index > 0) index-- // up\n if (e.which == 40 && index < $items.length - 1) index++ // down\n if (!~index) index = 0\n\n $items.eq(index).trigger('focus')\n }\n\n\n // DROPDOWN PLUGIN DEFINITION\n // ==========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.dropdown')\n\n if (!data) $this.data('bs.dropdown', (data = new Dropdown(this)))\n if (typeof option == 'string') data[option].call($this)\n })\n }\n\n var old = $.fn.dropdown\n\n $.fn.dropdown = Plugin\n $.fn.dropdown.Constructor = Dropdown\n\n\n // DROPDOWN NO CONFLICT\n // ====================\n\n $.fn.dropdown.noConflict = function () {\n $.fn.dropdown = old\n return this\n }\n\n\n // APPLY TO STANDARD DROPDOWN ELEMENTS\n // ===================================\n\n $(document)\n .on('click.bs.dropdown.data-api', clearMenus)\n .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })\n .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)\n .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown)\n .on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown)\n\n}(jQuery);\n })();\n});","\nrequire.register(\"bootstrap/js/modal.js\", function(exports, require, module) {\n require = __makeRelativeRequire(require, {}, \"bootstrap\");\n (function() {\n /* ========================================================================\n * Bootstrap: modal.js v3.3.7\n * http://getbootstrap.com/javascript/#modals\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // MODAL CLASS DEFINITION\n // ======================\n\n var Modal = function (element, options) {\n this.options = options\n this.$body = $(document.body)\n this.$element = $(element)\n this.$dialog = this.$element.find('.modal-dialog')\n this.$backdrop = null\n this.isShown = null\n this.originalBodyPad = null\n this.scrollbarWidth = 0\n this.ignoreBackdropClick = false\n\n if (this.options.remote) {\n this.$element\n .find('.modal-content')\n .load(this.options.remote, $.proxy(function () {\n this.$element.trigger('loaded.bs.modal')\n }, this))\n }\n }\n\n Modal.VERSION = '3.3.7'\n\n Modal.TRANSITION_DURATION = 300\n Modal.BACKDROP_TRANSITION_DURATION = 150\n\n Modal.DEFAULTS = {\n backdrop: true,\n keyboard: true,\n show: true\n }\n\n Modal.prototype.toggle = function (_relatedTarget) {\n return this.isShown ? this.hide() : this.show(_relatedTarget)\n }\n\n Modal.prototype.show = function (_relatedTarget) {\n var that = this\n var e = $.Event('show.bs.modal', { relatedTarget: _relatedTarget })\n\n this.$element.trigger(e)\n\n if (this.isShown || e.isDefaultPrevented()) return\n\n this.isShown = true\n\n this.checkScrollbar()\n this.setScrollbar()\n this.$body.addClass('modal-open')\n\n this.escape()\n this.resize()\n\n this.$element.on('click.dismiss.bs.modal', '[data-dismiss=\"modal\"]', $.proxy(this.hide, this))\n\n this.$dialog.on('mousedown.dismiss.bs.modal', function () {\n that.$element.one('mouseup.dismiss.bs.modal', function (e) {\n if ($(e.target).is(that.$element)) that.ignoreBackdropClick = true\n })\n })\n\n this.backdrop(function () {\n var transition = $.support.transition && that.$element.hasClass('fade')\n\n if (!that.$element.parent().length) {\n that.$element.appendTo(that.$body) // don't move modals dom position\n }\n\n that.$element\n .show()\n .scrollTop(0)\n\n that.adjustDialog()\n\n if (transition) {\n that.$element[0].offsetWidth // force reflow\n }\n\n that.$element.addClass('in')\n\n that.enforceFocus()\n\n var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })\n\n transition ?\n that.$dialog // wait for modal to slide in\n .one('bsTransitionEnd', function () {\n that.$element.trigger('focus').trigger(e)\n })\n .emulateTransitionEnd(Modal.TRANSITION_DURATION) :\n that.$element.trigger('focus').trigger(e)\n })\n }\n\n Modal.prototype.hide = function (e) {\n if (e) e.preventDefault()\n\n e = $.Event('hide.bs.modal')\n\n this.$element.trigger(e)\n\n if (!this.isShown || e.isDefaultPrevented()) return\n\n this.isShown = false\n\n this.escape()\n this.resize()\n\n $(document).off('focusin.bs.modal')\n\n this.$element\n .removeClass('in')\n .off('click.dismiss.bs.modal')\n .off('mouseup.dismiss.bs.modal')\n\n this.$dialog.off('mousedown.dismiss.bs.modal')\n\n $.support.transition && this.$element.hasClass('fade') ?\n this.$element\n .one('bsTransitionEnd', $.proxy(this.hideModal, this))\n .emulateTransitionEnd(Modal.TRANSITION_DURATION) :\n this.hideModal()\n }\n\n Modal.prototype.enforceFocus = function () {\n $(document)\n .off('focusin.bs.modal') // guard against infinite focus loop\n .on('focusin.bs.modal', $.proxy(function (e) {\n if (document !== e.target &&\n this.$element[0] !== e.target &&\n !this.$element.has(e.target).length) {\n this.$element.trigger('focus')\n }\n }, this))\n }\n\n Modal.prototype.escape = function () {\n if (this.isShown && this.options.keyboard) {\n this.$element.on('keydown.dismiss.bs.modal', $.proxy(function (e) {\n e.which == 27 && this.hide()\n }, this))\n } else if (!this.isShown) {\n this.$element.off('keydown.dismiss.bs.modal')\n }\n }\n\n Modal.prototype.resize = function () {\n if (this.isShown) {\n $(window).on('resize.bs.modal', $.proxy(this.handleUpdate, this))\n } else {\n $(window).off('resize.bs.modal')\n }\n }\n\n Modal.prototype.hideModal = function () {\n var that = this\n this.$element.hide()\n this.backdrop(function () {\n that.$body.removeClass('modal-open')\n that.resetAdjustments()\n that.resetScrollbar()\n that.$element.trigger('hidden.bs.modal')\n })\n }\n\n Modal.prototype.removeBackdrop = function () {\n this.$backdrop && this.$backdrop.remove()\n this.$backdrop = null\n }\n\n Modal.prototype.backdrop = function (callback) {\n var that = this\n var animate = this.$element.hasClass('fade') ? 'fade' : ''\n\n if (this.isShown && this.options.backdrop) {\n var doAnimate = $.support.transition && animate\n\n this.$backdrop = $(document.createElement('div'))\n .addClass('modal-backdrop ' + animate)\n .appendTo(this.$body)\n\n this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {\n if (this.ignoreBackdropClick) {\n this.ignoreBackdropClick = false\n return\n }\n if (e.target !== e.currentTarget) return\n this.options.backdrop == 'static'\n ? this.$element[0].focus()\n : this.hide()\n }, this))\n\n if (doAnimate) this.$backdrop[0].offsetWidth // force reflow\n\n this.$backdrop.addClass('in')\n\n if (!callback) return\n\n doAnimate ?\n this.$backdrop\n .one('bsTransitionEnd', callback)\n .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :\n callback()\n\n } else if (!this.isShown && this.$backdrop) {\n this.$backdrop.removeClass('in')\n\n var callbackRemove = function () {\n that.removeBackdrop()\n callback && callback()\n }\n $.support.transition && this.$element.hasClass('fade') ?\n this.$backdrop\n .one('bsTransitionEnd', callbackRemove)\n .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :\n callbackRemove()\n\n } else if (callback) {\n callback()\n }\n }\n\n // these following methods are used to handle overflowing modals\n\n Modal.prototype.handleUpdate = function () {\n this.adjustDialog()\n }\n\n Modal.prototype.adjustDialog = function () {\n var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight\n\n this.$element.css({\n paddingLeft: !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '',\n paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : ''\n })\n }\n\n Modal.prototype.resetAdjustments = function () {\n this.$element.css({\n paddingLeft: '',\n paddingRight: ''\n })\n }\n\n Modal.prototype.checkScrollbar = function () {\n var fullWindowWidth = window.innerWidth\n if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8\n var documentElementRect = document.documentElement.getBoundingClientRect()\n fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left)\n }\n this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth\n this.scrollbarWidth = this.measureScrollbar()\n }\n\n Modal.prototype.setScrollbar = function () {\n var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)\n this.originalBodyPad = document.body.style.paddingRight || ''\n if (this.bodyIsOverflowing) this.$body.css('padding-right', bodyPad + this.scrollbarWidth)\n }\n\n Modal.prototype.resetScrollbar = function () {\n this.$body.css('padding-right', this.originalBodyPad)\n }\n\n Modal.prototype.measureScrollbar = function () { // thx walsh\n var scrollDiv = document.createElement('div')\n scrollDiv.className = 'modal-scrollbar-measure'\n this.$body.append(scrollDiv)\n var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth\n this.$body[0].removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n\n // MODAL PLUGIN DEFINITION\n // =======================\n\n function Plugin(option, _relatedTarget) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.modal')\n var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)\n\n if (!data) $this.data('bs.modal', (data = new Modal(this, options)))\n if (typeof option == 'string') data[option](_relatedTarget)\n else if (options.show) data.show(_relatedTarget)\n })\n }\n\n var old = $.fn.modal\n\n $.fn.modal = Plugin\n $.fn.modal.Constructor = Modal\n\n\n // MODAL NO CONFLICT\n // =================\n\n $.fn.modal.noConflict = function () {\n $.fn.modal = old\n return this\n }\n\n\n // MODAL DATA-API\n // ==============\n\n $(document).on('click.bs.modal.data-api', '[data-toggle=\"modal\"]', function (e) {\n var $this = $(this)\n var href = $this.attr('href')\n var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\\s]+$)/, ''))) // strip for ie7\n var option = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())\n\n if ($this.is('a')) e.preventDefault()\n\n $target.one('show.bs.modal', function (showEvent) {\n if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown\n $target.one('hidden.bs.modal', function () {\n $this.is(':visible') && $this.trigger('focus')\n })\n })\n Plugin.call($target, option, this)\n })\n\n}(jQuery);\n })();\n});","\nrequire.register(\"bootstrap/js/popover.js\", function(exports, require, module) {\n require = __makeRelativeRequire(require, {}, \"bootstrap\");\n (function() {\n /* ========================================================================\n * Bootstrap: popover.js v3.3.7\n * http://getbootstrap.com/javascript/#popovers\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // POPOVER PUBLIC CLASS DEFINITION\n // ===============================\n\n var Popover = function (element, options) {\n this.init('popover', element, options)\n }\n\n if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')\n\n Popover.VERSION = '3.3.7'\n\n Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '<div class=\"popover\" role=\"tooltip\"><div class=\"arrow\"></div><h3 class=\"popover-title\"></h3><div class=\"popover-content\"></div></div>'\n })\n\n\n // NOTE: POPOVER EXTENDS tooltip.js\n // ================================\n\n Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype)\n\n Popover.prototype.constructor = Popover\n\n Popover.prototype.getDefaults = function () {\n return Popover.DEFAULTS\n }\n\n Popover.prototype.setContent = function () {\n var $tip = this.tip()\n var title = this.getTitle()\n var content = this.getContent()\n\n $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)\n $tip.find('.popover-content').children().detach().end()[ // we use append for html objects to maintain js events\n this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text'\n ](content)\n\n $tip.removeClass('fade top bottom left right in')\n\n // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do\n // this manually by checking the contents.\n if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide()\n }\n\n Popover.prototype.hasContent = function () {\n return this.getTitle() || this.getContent()\n }\n\n Popover.prototype.getContent = function () {\n var $e = this.$element\n var o = this.options\n\n return $e.attr('data-content')\n || (typeof o.content == 'function' ?\n o.content.call($e[0]) :\n o.content)\n }\n\n Popover.prototype.arrow = function () {\n return (this.$arrow = this.$arrow || this.tip().find('.arrow'))\n }\n\n\n // POPOVER PLUGIN DEFINITION\n // =========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.popover')\n var options = typeof option == 'object' && option\n\n if (!data && /destroy|hide/.test(option)) return\n if (!data) $this.data('bs.popover', (data = new Popover(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.popover\n\n $.fn.popover = Plugin\n $.fn.popover.Constructor = Popover\n\n\n // POPOVER NO CONFLICT\n // ===================\n\n $.fn.popover.noConflict = function () {\n $.fn.popover = old\n return this\n }\n\n}(jQuery);\n })();\n});","\nrequire.register(\"bootstrap/js/scrollspy.js\", function(exports, require, module) {\n require = __makeRelativeRequire(require, {}, \"bootstrap\");\n (function() {\n /* ========================================================================\n * Bootstrap: scrollspy.js v3.3.7\n * http://getbootstrap.com/javascript/#scrollspy\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // SCROLLSPY CLASS DEFINITION\n // ==========================\n\n function ScrollSpy(element, options) {\n this.$body = $(document.body)\n this.$scrollElement = $(element).is(document.body) ? $(window) : $(element)\n this.options = $.extend({}, ScrollSpy.DEFAULTS, options)\n this.selector = (this.options.target || '') + ' .nav li > a'\n this.offsets = []\n this.targets = []\n this.activeTarget = null\n this.scrollHeight = 0\n\n this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this))\n this.refresh()\n this.process()\n }\n\n ScrollSpy.VERSION = '3.3.7'\n\n ScrollSpy.DEFAULTS = {\n offset: 10\n }\n\n ScrollSpy.prototype.getScrollHeight = function () {\n return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)\n }\n\n ScrollSpy.prototype.refresh = function () {\n var that = this\n var offsetMethod = 'offset'\n var offsetBase = 0\n\n this.offsets = []\n this.targets = []\n this.scrollHeight = this.getScrollHeight()\n\n if (!$.isWindow(this.$scrollElement[0])) {\n offsetMethod = 'position'\n offsetBase = this.$scrollElement.scrollTop()\n }\n\n this.$body\n .find(this.selector)\n .map(function () {\n var $el = $(this)\n var href = $el.data('target') || $el.attr('href')\n var $href = /^#./.test(href) && $(href)\n\n return ($href\n && $href.length\n && $href.is(':visible')\n && [[$href[offsetMethod]().top + offsetBase, href]]) || null\n })\n .sort(function (a, b) { return a[0] - b[0] })\n .each(function () {\n that.offsets.push(this[0])\n that.targets.push(this[1])\n })\n }\n\n ScrollSpy.prototype.process = function () {\n var scrollTop = this.$scrollElement.scrollTop() + this.options.offset\n var scrollHeight = this.getScrollHeight()\n var maxScroll = this.options.offset + scrollHeight - this.$scrollElement.height()\n var offsets = this.offsets\n var targets = this.targets\n var activeTarget = this.activeTarget\n var i\n\n if (this.scrollHeight != scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n return activeTarget != (i = targets[targets.length - 1]) && this.activate(i)\n }\n\n if (activeTarget && scrollTop < offsets[0]) {\n this.activeTarget = null\n return this.clear()\n }\n\n for (i = offsets.length; i--;) {\n activeTarget != targets[i]\n && scrollTop >= offsets[i]\n && (offsets[i + 1] === undefined || scrollTop < offsets[i + 1])\n && this.activate(targets[i])\n }\n }\n\n ScrollSpy.prototype.activate = function (target) {\n this.activeTarget = target\n\n this.clear()\n\n var selector = this.selector +\n '[data-target=\"' + target + '\"],' +\n this.selector + '[href=\"' + target + '\"]'\n\n var active = $(selector)\n .parents('li')\n .addClass('active')\n\n if (active.parent('.dropdown-menu').length) {\n active = active\n .closest('li.dropdown')\n .addClass('active')\n }\n\n active.trigger('activate.bs.scrollspy')\n }\n\n ScrollSpy.prototype.clear = function () {\n $(this.selector)\n .parentsUntil(this.options.target, '.active')\n .removeClass('active')\n }\n\n\n // SCROLLSPY PLUGIN DEFINITION\n // ===========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.scrollspy')\n var options = typeof option == 'object' && option\n\n if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.scrollspy\n\n $.fn.scrollspy = Plugin\n $.fn.scrollspy.Constructor = ScrollSpy\n\n\n // SCROLLSPY NO CONFLICT\n // =====================\n\n $.fn.scrollspy.noConflict = function () {\n $.fn.scrollspy = old\n return this\n }\n\n\n // SCROLLSPY DATA-API\n // ==================\n\n $(window).on('load.bs.scrollspy.data-api', function () {\n $('[data-spy=\"scroll\"]').each(function () {\n var $spy = $(this)\n Plugin.call($spy, $spy.data())\n })\n })\n\n}(jQuery);\n })();\n});","\nrequire.register(\"bootstrap/js/tab.js\", function(exports, require, module) {\n require = __makeRelativeRequire(require, {}, \"bootstrap\");\n (function() {\n /* ========================================================================\n * Bootstrap: tab.js v3.3.7\n * http://getbootstrap.com/javascript/#tabs\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // TAB CLASS DEFINITION\n // ====================\n\n var Tab = function (element) {\n // jscs:disable requireDollarBeforejQueryAssignment\n this.element = $(element)\n // jscs:enable requireDollarBeforejQueryAssignment\n }\n\n Tab.VERSION = '3.3.7'\n\n Tab.TRANSITION_DURATION = 150\n\n Tab.prototype.show = function () {\n var $this = this.element\n var $ul = $this.closest('ul:not(.dropdown-menu)')\n var selector = $this.data('target')\n\n if (!selector) {\n selector = $this.attr('href')\n selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n }\n\n if ($this.parent('li').hasClass('active')) return\n\n var $previous = $ul.find('.active:last a')\n var hideEvent = $.Event('hide.bs.tab', {\n relatedTarget: $this[0]\n })\n var showEvent = $.Event('show.bs.tab', {\n relatedTarget: $previous[0]\n })\n\n $previous.trigger(hideEvent)\n $this.trigger(showEvent)\n\n if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return\n\n var $target = $(selector)\n\n this.activate($this.closest('li'), $ul)\n this.activate($target, $target.parent(), function () {\n $previous.trigger({\n type: 'hidden.bs.tab',\n relatedTarget: $this[0]\n })\n $this.trigger({\n type: 'shown.bs.tab',\n relatedTarget: $previous[0]\n })\n })\n }\n\n Tab.prototype.activate = function (element, container, callback) {\n var $active = container.find('> .active')\n var transition = callback\n && $.support.transition\n && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length)\n\n function next() {\n $active\n .removeClass('active')\n .find('> .dropdown-menu > .active')\n .removeClass('active')\n .end()\n .find('[data-toggle=\"tab\"]')\n .attr('aria-expanded', false)\n\n element\n .addClass('active')\n .find('[data-toggle=\"tab\"]')\n .attr('aria-expanded', true)\n\n if (transition) {\n element[0].offsetWidth // reflow for transition\n element.addClass('in')\n } else {\n element.removeClass('fade')\n }\n\n if (element.parent('.dropdown-menu').length) {\n element\n .closest('li.dropdown')\n .addClass('active')\n .end()\n .find('[data-toggle=\"tab\"]')\n .attr('aria-expanded', true)\n }\n\n callback && callback()\n }\n\n $active.length && transition ?\n $active\n .one('bsTransitionEnd', next)\n .emulateTransitionEnd(Tab.TRANSITION_DURATION) :\n next()\n\n $active.removeClass('in')\n }\n\n\n // TAB PLUGIN DEFINITION\n // =====================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.tab')\n\n if (!data) $this.data('bs.tab', (data = new Tab(this)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.tab\n\n $.fn.tab = Plugin\n $.fn.tab.Constructor = Tab\n\n\n // TAB NO CONFLICT\n // ===============\n\n $.fn.tab.noConflict = function () {\n $.fn.tab = old\n return this\n }\n\n\n // TAB DATA-API\n // ============\n\n var clickHandler = function (e) {\n e.preventDefault()\n Plugin.call($(this), 'show')\n }\n\n $(document)\n .on('click.bs.tab.data-api', '[data-toggle=\"tab\"]', clickHandler)\n .on('click.bs.tab.data-api', '[data-toggle=\"pill\"]', clickHandler)\n\n}(jQuery);\n })();\n});","\nrequire.register(\"bootstrap/js/tooltip.js\", function(exports, require, module) {\n require = __makeRelativeRequire(require, {}, \"bootstrap\");\n (function() {\n /* ========================================================================\n * Bootstrap: tooltip.js v3.3.7\n * http://getbootstrap.com/javascript/#tooltip\n * Inspired by the original jQuery.tipsy by Jason Frame\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // TOOLTIP PUBLIC CLASS DEFINITION\n // ===============================\n\n var Tooltip = function (element, options) {\n this.type = null\n this.options = null\n this.enabled = null\n this.timeout = null\n this.hoverState = null\n this.$element = null\n this.inState = null\n\n this.init('tooltip', element, options)\n }\n\n Tooltip.VERSION = '3.3.7'\n\n Tooltip.TRANSITION_DURATION = 150\n\n Tooltip.DEFAULTS = {\n animation: true,\n placement: 'top',\n selector: false,\n template: '<div class=\"tooltip\" role=\"tooltip\"><div class=\"tooltip-arrow\"></div><div class=\"tooltip-inner\"></div></div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n container: false,\n viewport: {\n selector: 'body',\n padding: 0\n }\n }\n\n Tooltip.prototype.init = function (type, element, options) {\n this.enabled = true\n this.type = type\n this.$element = $(element)\n this.options = this.getOptions(options)\n this.$viewport = this.options.viewport && $($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport))\n this.inState = { click: false, hover: false, focus: false }\n\n if (this.$element[0] instanceof document.constructor && !this.options.selector) {\n throw new Error('`selector` option must be specified when initializing ' + this.type + ' on the window.document object!')\n }\n\n var triggers = this.options.trigger.split(' ')\n\n for (var i = triggers.length; i--;) {\n var trigger = triggers[i]\n\n if (trigger == 'click') {\n this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))\n } else if (trigger != 'manual') {\n var eventIn = trigger == 'hover' ? 'mouseenter' : 'focusin'\n var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout'\n\n this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))\n this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))\n }\n }\n\n this.options.selector ?\n (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :\n this.fixTitle()\n }\n\n Tooltip.prototype.getDefaults = function () {\n return Tooltip.DEFAULTS\n }\n\n Tooltip.prototype.getOptions = function (options) {\n options = $.extend({}, this.getDefaults(), this.$element.data(), options)\n\n if (options.delay && typeof options.delay == 'number') {\n options.delay = {\n show: options.delay,\n hide: options.delay\n }\n }\n\n return options\n }\n\n Tooltip.prototype.getDelegateOptions = function () {\n var options = {}\n var defaults = this.getDefaults()\n\n this._options && $.each(this._options, function (key, value) {\n if (defaults[key] != value) options[key] = value\n })\n\n return options\n }\n\n Tooltip.prototype.enter = function (obj) {\n var self = obj instanceof this.constructor ?\n obj : $(obj.currentTarget).data('bs.' + this.type)\n\n if (!self) {\n self = new this.constructor(obj.currentTarget, this.getDelegateOptions())\n $(obj.currentTarget).data('bs.' + this.type, self)\n }\n\n if (obj instanceof $.Event) {\n self.inState[obj.type == 'focusin' ? 'focus' : 'hover'] = true\n }\n\n if (self.tip().hasClass('in') || self.hoverState == 'in') {\n self.hoverState = 'in'\n return\n }\n\n clearTimeout(self.timeout)\n\n self.hoverState = 'in'\n\n if (!self.options.delay || !self.options.delay.show) return self.show()\n\n self.timeout = setTimeout(function () {\n if (self.hoverState == 'in') self.show()\n }, self.options.delay.show)\n }\n\n Tooltip.prototype.isInStateTrue = function () {\n for (var key in this.inState) {\n if (this.inState[key]) return true\n }\n\n return false\n }\n\n Tooltip.prototype.leave = function (obj) {\n var self = obj instanceof this.constructor ?\n obj : $(obj.currentTarget).data('bs.' + this.type)\n\n if (!self) {\n self = new this.constructor(obj.currentTarget, this.getDelegateOptions())\n $(obj.currentTarget).data('bs.' + this.type, self)\n }\n\n if (obj instanceof $.Event) {\n self.inState[obj.type == 'focusout' ? 'focus' : 'hover'] = false\n }\n\n if (self.isInStateTrue()) return\n\n clearTimeout(self.timeout)\n\n self.hoverState = 'out'\n\n if (!self.options.delay || !self.options.delay.hide) return self.hide()\n\n self.timeout = setTimeout(function () {\n if (self.hoverState == 'out') self.hide()\n }, self.options.delay.hide)\n }\n\n Tooltip.prototype.show = function () {\n var e = $.Event('show.bs.' + this.type)\n\n if (this.hasContent() && this.enabled) {\n this.$element.trigger(e)\n\n var inDom = $.contains(this.$element[0].ownerDocument.documentElement, this.$element[0])\n if (e.isDefaultPrevented() || !inDom) return\n var that = this\n\n var $tip = this.tip()\n\n var tipId = this.getUID(this.type)\n\n this.setContent()\n $tip.attr('id', tipId)\n this.$element.attr('aria-describedby', tipId)\n\n if (this.options.animation) $tip.addClass('fade')\n\n var placement = typeof this.options.placement == 'function' ?\n this.options.placement.call(this, $tip[0], this.$element[0]) :\n this.options.placement\n\n var autoToken = /\\s?auto?\\s?/i\n var autoPlace = autoToken.test(placement)\n if (autoPlace) placement = placement.replace(autoToken, '') || 'top'\n\n $tip\n .detach()\n .css({ top: 0, left: 0, display: 'block' })\n .addClass(placement)\n .data('bs.' + this.type, this)\n\n this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)\n this.$element.trigger('inserted.bs.' + this.type)\n\n var pos = this.getPosition()\n var actualWidth = $tip[0].offsetWidth\n var actualHeight = $tip[0].offsetHeight\n\n if (autoPlace) {\n var orgPlacement = placement\n var viewportDim = this.getPosition(this.$viewport)\n\n placement = placement == 'bottom' && pos.bottom + actualHeight > viewportDim.bottom ? 'top' :\n placement == 'top' && pos.top - actualHeight < viewportDim.top ? 'bottom' :\n placement == 'right' && pos.right + actualWidth > viewportDim.width ? 'left' :\n placement == 'left' && pos.left - actualWidth < viewportDim.left ? 'right' :\n placement\n\n $tip\n .removeClass(orgPlacement)\n .addClass(placement)\n }\n\n var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)\n\n this.applyPlacement(calculatedOffset, placement)\n\n var complete = function () {\n var prevHoverState = that.hoverState\n that.$element.trigger('shown.bs.' + that.type)\n that.hoverState = null\n\n if (prevHoverState == 'out') that.leave(that)\n }\n\n $.support.transition && this.$tip.hasClass('fade') ?\n $tip\n .one('bsTransitionEnd', complete)\n .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :\n complete()\n }\n }\n\n Tooltip.prototype.applyPlacement = function (offset, placement) {\n var $tip = this.tip()\n var width = $tip[0].offsetWidth\n var height = $tip[0].offsetHeight\n\n // manually read margins because getBoundingClientRect includes difference\n var marginTop = parseInt($tip.css('margin-top'), 10)\n var marginLeft = parseInt($tip.css('margin-left'), 10)\n\n // we must check for NaN for ie 8/9\n if (isNaN(marginTop)) marginTop = 0\n if (isNaN(marginLeft)) marginLeft = 0\n\n offset.top += marginTop\n offset.left += marginLeft\n\n // $.fn.offset doesn't round pixel values\n // so we use setOffset directly with our own function B-0\n $.offset.setOffset($tip[0], $.extend({\n using: function (props) {\n $tip.css({\n top: Math.round(props.top),\n left: Math.round(props.left)\n })\n }\n }, offset), 0)\n\n $tip.addClass('in')\n\n // check to see if placing tip in new offset caused the tip to resize itself\n var actualWidth = $tip[0].offsetWidth\n var actualHeight = $tip[0].offsetHeight\n\n if (placement == 'top' && actualHeight != height) {\n offset.top = offset.top + height - actualHeight\n }\n\n var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight)\n\n if (delta.left) offset.left += delta.left\n else offset.top += delta.top\n\n var isVertical = /top|bottom/.test(placement)\n var arrowDelta = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight\n var arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight'\n\n $tip.offset(offset)\n this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical)\n }\n\n Tooltip.prototype.replaceArrow = function (delta, dimension, isVertical) {\n this.arrow()\n .css(isVertical ? 'left' : 'top', 50 * (1 - delta / dimension) + '%')\n .css(isVertical ? 'top' : 'left', '')\n }\n\n Tooltip.prototype.setContent = function () {\n var $tip = this.tip()\n var title = this.getTitle()\n\n $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)\n $tip.removeClass('fade in top bottom left right')\n }\n\n Tooltip.prototype.hide = function (callback) {\n var that = this\n var $tip = $(this.$tip)\n var e = $.Event('hide.bs.' + this.type)\n\n function complete() {\n if (that.hoverState != 'in') $tip.detach()\n if (that.$element) { // TODO: Check whether guarding this code with this `if` is really necessary.\n that.$element\n .removeAttr('aria-describedby')\n .trigger('hidden.bs.' + that.type)\n }\n callback && callback()\n }\n\n this.$element.trigger(e)\n\n if (e.isDefaultPrevented()) return\n\n $tip.removeClass('in')\n\n $.support.transition && $tip.hasClass('fade') ?\n $tip\n .one('bsTransitionEnd', complete)\n .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :\n complete()\n\n this.hoverState = null\n\n return this\n }\n\n Tooltip.prototype.fixTitle = function () {\n var $e = this.$element\n if ($e.attr('title') || typeof $e.attr('data-original-title') != 'string') {\n $e.attr('data-original-title', $e.attr('title') || '').attr('title', '')\n }\n }\n\n Tooltip.prototype.hasContent = function () {\n return this.getTitle()\n }\n\n Tooltip.prototype.getPosition = function ($element) {\n $element = $element || this.$element\n\n var el = $element[0]\n var isBody = el.tagName == 'BODY'\n\n var elRect = el.getBoundingClientRect()\n if (elRect.width == null) {\n // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093\n elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top })\n }\n var isSvg = window.SVGElement && el instanceof window.SVGElement\n // Avoid using $.offset() on SVGs since it gives incorrect results in jQuery 3.\n // See https://github.com/twbs/bootstrap/issues/20280\n var elOffset = isBody ? { top: 0, left: 0 } : (isSvg ? null : $element.offset())\n var scroll = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() }\n var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null\n\n return $.extend({}, elRect, scroll, outerDims, elOffset)\n }\n\n Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {\n return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } :\n placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :\n placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :\n /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }\n\n }\n\n Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) {\n var delta = { top: 0, left: 0 }\n if (!this.$viewport) return delta\n\n var viewportPadding = this.options.viewport && this.options.viewport.padding || 0\n var viewportDimensions = this.getPosition(this.$viewport)\n\n if (/right|left/.test(placement)) {\n var topEdgeOffset = pos.top - viewportPadding - viewportDimensions.scroll\n var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight\n if (topEdgeOffset < viewportDimensions.top) { // top overflow\n delta.top = viewportDimensions.top - topEdgeOffset\n } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow\n delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset\n }\n } else {\n var leftEdgeOffset = pos.left - viewportPadding\n var rightEdgeOffset = pos.left + viewportPadding + actualWidth\n if (leftEdgeOffset < viewportDimensions.left) { // left overflow\n delta.left = viewportDimensions.left - leftEdgeOffset\n } else if (rightEdgeOffset > viewportDimensions.right) { // right overflow\n delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset\n }\n }\n\n return delta\n }\n\n Tooltip.prototype.getTitle = function () {\n var title\n var $e = this.$element\n var o = this.options\n\n title = $e.attr('data-original-title')\n || (typeof o.title == 'function' ? o.title.call($e[0]) : o.title)\n\n return title\n }\n\n Tooltip.prototype.getUID = function (prefix) {\n do prefix += ~~(Math.random() * 1000000)\n while (document.getElementById(prefix))\n return prefix\n }\n\n Tooltip.prototype.tip = function () {\n if (!this.$tip) {\n this.$tip = $(this.options.template)\n if (this.$tip.length != 1) {\n throw new Error(this.type + ' `template` option must consist of exactly 1 top-level element!')\n }\n }\n return this.$tip\n }\n\n Tooltip.prototype.arrow = function () {\n return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow'))\n }\n\n Tooltip.prototype.enable = function () {\n this.enabled = true\n }\n\n Tooltip.prototype.disable = function () {\n this.enabled = false\n }\n\n Tooltip.prototype.toggleEnabled = function () {\n this.enabled = !this.enabled\n }\n\n Tooltip.prototype.toggle = function (e) {\n var self = this\n if (e) {\n self = $(e.currentTarget).data('bs.' + this.type)\n if (!self) {\n self = new this.constructor(e.currentTarget, this.getDelegateOptions())\n $(e.currentTarget).data('bs.' + this.type, self)\n }\n }\n\n if (e) {\n self.inState.click = !self.inState.click\n if (self.isInStateTrue()) self.enter(self)\n else self.leave(self)\n } else {\n self.tip().hasClass('in') ? self.leave(self) : self.enter(self)\n }\n }\n\n Tooltip.prototype.destroy = function () {\n var that = this\n clearTimeout(this.timeout)\n this.hide(function () {\n that.$element.off('.' + that.type).removeData('bs.' + that.type)\n if (that.$tip) {\n that.$tip.detach()\n }\n that.$tip = null\n that.$arrow = null\n that.$viewport = null\n that.$element = null\n })\n }\n\n\n // TOOLTIP PLUGIN DEFINITION\n // =========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.tooltip')\n var options = typeof option == 'object' && option\n\n if (!data && /destroy|hide/.test(option)) return\n if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.tooltip\n\n $.fn.tooltip = Plugin\n $.fn.tooltip.Constructor = Tooltip\n\n\n // TOOLTIP NO CONFLICT\n // ===================\n\n $.fn.tooltip.noConflict = function () {\n $.fn.tooltip = old\n return this\n }\n\n}(jQuery);\n })();\n});","\nrequire.register(\"bootstrap/js/transition.js\", function(exports, require, module) {\n require = __makeRelativeRequire(require, {}, \"bootstrap\");\n (function() {\n /* ========================================================================\n * Bootstrap: transition.js v3.3.7\n * http://getbootstrap.com/javascript/#transitions\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)\n // ============================================================\n\n function transitionEnd() {\n var el = document.createElement('bootstrap')\n\n var transEndEventNames = {\n WebkitTransition : 'webkitTransitionEnd',\n MozTransition : 'transitionend',\n OTransition : 'oTransitionEnd otransitionend',\n transition : 'transitionend'\n }\n\n for (var name in transEndEventNames) {\n if (el.style[name] !== undefined) {\n return { end: transEndEventNames[name] }\n }\n }\n\n return false // explicit for ie8 ( ._.)\n }\n\n // http://blog.alexmaccaw.com/css-transitions\n $.fn.emulateTransitionEnd = function (duration) {\n var called = false\n var $el = this\n $(this).one('bsTransitionEnd', function () { called = true })\n var callback = function () { if (!called) $($el).trigger($.support.transition.end) }\n setTimeout(callback, duration)\n return this\n }\n\n $(function () {\n $.support.transition = transitionEnd()\n\n if (!$.support.transition) return\n\n $.event.special.bsTransitionEnd = {\n bindType: $.support.transition.end,\n delegateType: $.support.transition.end,\n handle: function (e) {\n if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)\n }\n }\n })\n\n}(jQuery);\n })();\n});","\nrequire.register(\"jquery/dist/jquery.js\", function(exports, require, module) {\n require = __makeRelativeRequire(require, {}, \"jquery\");\n (function() {\n /*!\n * jQuery JavaScript Library v1.11.2\n * http://jquery.com/\n *\n * Includes Sizzle.js\n * http://sizzlejs.com/\n *\n * Copyright 2005, 2014 jQuery Foundation, Inc. and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2014-12-17T15:27Z\n */\n\n(function( global, factory ) {\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\t\t// For CommonJS and CommonJS-like environments where a proper window is present,\n\t\t// execute the factory and get jQuery\n\t\t// For environments that do not inherently posses a window with a document\n\t\t// (such as Node.js), expose a jQuery-making factory as module.exports\n\t\t// This accentuates the need for the creation of a real window\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket #14549 for more info\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n}(typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Can't do this because several apps including ASP.NET trace\n// the stack via arguments.caller.callee and Firefox dies if\n// you try to trace through \"use strict\" call chains. (#13335)\n// Support: Firefox 18+\n//\n\nvar deletedIds = [];\n\nvar slice = deletedIds.slice;\n\nvar concat = deletedIds.concat;\n\nvar push = deletedIds.push;\n\nvar indexOf = deletedIds.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar support = {};\n\n\n\nvar\n\tversion = \"1.11.2\",\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t},\n\n\t// Support: Android<4.1, IE<9\n\t// Make sure we trim BOM and NBSP\n\trtrim = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g,\n\n\t// Matches dashed string for camelizing\n\trmsPrefix = /^-ms-/,\n\trdashAlpha = /-([\\da-z])/gi,\n\n\t// Used by jQuery.camelCase as callback to replace()\n\tfcamelCase = function( all, letter ) {\n\t\treturn letter.toUpperCase();\n\t};\n\njQuery.fn = jQuery.prototype = {\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// Start with an empty selector\n\tselector: \"\",\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\t\treturn num != null ?\n\n\t\t\t// Return just the one element from the set\n\t\t\t( num < 0 ? this[ num + this.length ] : this[ num ] ) :\n\n\t\t\t// Return all the elements in a clean array\n\t\t\tslice.call( this );\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\t\tret.context = this.context;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\t// (You can seed the arguments with an array of args, but this is\n\t// only used internally.)\n\teach: function( callback, args ) {\n\t\treturn jQuery.each( this, callback, args );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map(this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t}));\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[j] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor(null);\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: deletedIds.sort,\n\tsplice: deletedIds.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar src, copyIsArray, copy, name, options, clone,\n\t\ttarget = arguments[0] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !jQuery.isFunction(target) ) {\n\t\ttarget = {};\n\t}\n\n\t// extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\t\t// Only deal with non-null/undefined values\n\t\tif ( (options = arguments[ i ]) != null ) {\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tsrc = target[ name ];\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) {\n\t\t\t\t\tif ( copyIsArray ) {\n\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\tclone = src && jQuery.isArray(src) ? src : [];\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src && jQuery.isPlainObject(src) ? src : {};\n\t\t\t\t\t}\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend({\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\t// See test/unit/core.js for details concerning isFunction.\n\t// Since version 1.3, DOM methods and functions like alert\n\t// aren't supported. They return false on IE (#2968).\n\tisFunction: function( obj ) {\n\t\treturn jQuery.type(obj) === \"function\";\n\t},\n\n\tisArray: Array.isArray || function( obj ) {\n\t\treturn jQuery.type(obj) === \"array\";\n\t},\n\n\tisWindow: function( obj ) {\n\t\t/* jshint eqeqeq: false */\n\t\treturn obj != null && obj == obj.window;\n\t},\n\n\tisNumeric: function( obj ) {\n\t\t// parseFloat NaNs numeric-cast false positives (null|true|false|\"\")\n\t\t// ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\n\t\t// subtraction forces infinities to NaN\n\t\t// adding 1 corrects loss of precision from parseFloat (#15100)\n\t\treturn !jQuery.isArray( obj ) && (obj - parseFloat( obj ) + 1) >= 0;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\tisPlainObject: function( obj ) {\n\t\tvar key;\n\n\t\t// Must be an Object.\n\t\t// Because of IE, we also have to check the presence of the constructor property.\n\t\t// Make sure that DOM nodes and window objects don't pass through, as well\n\t\tif ( !obj || jQuery.type(obj) !== \"object\" || obj.nodeType || jQuery.isWindow( obj ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\ttry {\n\t\t\t// Not own constructor property must be Object\n\t\t\tif ( obj.constructor &&\n\t\t\t\t!hasOwn.call(obj, \"constructor\") &&\n\t\t\t\t!hasOwn.call(obj.constructor.prototype, \"isPrototypeOf\") ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t} catch ( e ) {\n\t\t\t// IE8,9 Will throw exceptions on certain host objects #9897\n\t\t\treturn false;\n\t\t}\n\n\t\t// Support: IE<9\n\t\t// Handle iteration over inherited properties before own properties.\n\t\tif ( support.ownLast ) {\n\t\t\tfor ( key in obj ) {\n\t\t\t\treturn hasOwn.call( obj, key );\n\t\t\t}\n\t\t}\n\n\t\t// Own properties are enumerated firstly, so to speed up,\n\t\t// if last one is own, then all properties are own.\n\t\tfor ( key in obj ) {}\n\n\t\treturn key === undefined || hasOwn.call( obj, key );\n\t},\n\n\ttype: function( obj ) {\n\t\tif ( obj == null ) {\n\t\t\treturn obj + \"\";\n\t\t}\n\t\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\t\tclass2type[ toString.call(obj) ] || \"object\" :\n\t\t\ttypeof obj;\n\t},\n\n\t// Evaluates a script in a global context\n\t// Workarounds based on findings by Jim Driscoll\n\t// http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context\n\tglobalEval: function( data ) {\n\t\tif ( data && jQuery.trim( data ) ) {\n\t\t\t// We use execScript on Internet Explorer\n\t\t\t// We use an anonymous function so that context is window\n\t\t\t// rather than jQuery in Firefox\n\t\t\t( window.execScript || function( data ) {\n\t\t\t\twindow[ \"eval\" ].call( window, data );\n\t\t\t} )( data );\n\t\t}\n\t},\n\n\t// Convert dashed to camelCase; used by the css and data modules\n\t// Microsoft forgot to hump their vendor prefix (#9572)\n\tcamelCase: function( string ) {\n\t\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n\t},\n\n\tnodeName: function( elem, name ) {\n\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\t},\n\n\t// args is for internal usage only\n\teach: function( obj, callback, args ) {\n\t\tvar value,\n\t\t\ti = 0,\n\t\t\tlength = obj.length,\n\t\t\tisArray = isArraylike( obj );\n\n\t\tif ( args ) {\n\t\t\tif ( isArray ) {\n\t\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\t\tvalue = callback.apply( obj[ i ], args );\n\n\t\t\t\t\tif ( value === false ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( i in obj ) {\n\t\t\t\t\tvalue = callback.apply( obj[ i ], args );\n\n\t\t\t\t\tif ( value === false ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// A special, fast, case for the most common use of each\n\t\t} else {\n\t\t\tif ( isArray ) {\n\t\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\t\tvalue = callback.call( obj[ i ], i, obj[ i ] );\n\n\t\t\t\t\tif ( value === false ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( i in obj ) {\n\t\t\t\t\tvalue = callback.call( obj[ i ], i, obj[ i ] );\n\n\t\t\t\t\tif ( value === false ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// Support: Android<4.1, IE<9\n\ttrim: function( text ) {\n\t\treturn text == null ?\n\t\t\t\"\" :\n\t\t\t( text + \"\" ).replace( rtrim, \"\" );\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArraylike( Object(arr) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\tvar len;\n\n\t\tif ( arr ) {\n\t\t\tif ( indexOf ) {\n\t\t\t\treturn indexOf.call( arr, elem, i );\n\t\t\t}\n\n\t\t\tlen = arr.length;\n\t\t\ti = i ? i < 0 ? Math.max( 0, len + i ) : i : 0;\n\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t// Skip accessing in sparse arrays\n\t\t\t\tif ( i in arr && arr[ i ] === elem ) {\n\t\t\t\t\treturn i;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn -1;\n\t},\n\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\twhile ( j < len ) {\n\t\t\tfirst[ i++ ] = second[ j++ ];\n\t\t}\n\n\t\t// Support: IE<9\n\t\t// Workaround casting of .length to NaN on otherwise arraylike objects (e.g., NodeLists)\n\t\tif ( len !== len ) {\n\t\t\twhile ( second[j] !== undefined ) {\n\t\t\t\tfirst[ i++ ] = second[ j++ ];\n\t\t\t}\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar value,\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tisArray = isArraylike( elems ),\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArray ) {\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn concat.apply( [], ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// Bind a function to a context, optionally partially applying any\n\t// arguments.\n\tproxy: function( fn, context ) {\n\t\tvar args, proxy, tmp;\n\n\t\tif ( typeof context === \"string\" ) {\n\t\t\ttmp = fn[ context ];\n\t\t\tcontext = fn;\n\t\t\tfn = tmp;\n\t\t}\n\n\t\t// Quick check to determine if target is callable, in the spec\n\t\t// this throws a TypeError, but we will just return undefined.\n\t\tif ( !jQuery.isFunction( fn ) ) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\t// Simulated bind\n\t\targs = slice.call( arguments, 2 );\n\t\tproxy = function() {\n\t\t\treturn fn.apply( context || this, args.concat( slice.call( arguments ) ) );\n\t\t};\n\n\t\t// Set the guid of unique handler to the same of original handler, so it can be removed\n\t\tproxy.guid = fn.guid = fn.guid || jQuery.guid++;\n\n\t\treturn proxy;\n\t},\n\n\tnow: function() {\n\t\treturn +( new Date() );\n\t},\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n});\n\n// Populate the class2type map\njQuery.each(\"Boolean Number String Function Array Date RegExp Object Error\".split(\" \"), function(i, name) {\n\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n});\n\nfunction isArraylike( obj ) {\n\tvar length = obj.length,\n\t\ttype = jQuery.type( obj );\n\n\tif ( type === \"function\" || jQuery.isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\tif ( obj.nodeType === 1 && length ) {\n\t\treturn true;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\nvar Sizzle =\n/*!\n * Sizzle CSS Selector Engine v2.2.0-pre\n * http://sizzlejs.com/\n *\n * Copyright 2008, 2014 jQuery Foundation, Inc. and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2014-12-16\n */\n(function( window ) {\n\nvar i,\n\tsupport,\n\tExpr,\n\tgetText,\n\tisXML,\n\ttokenize,\n\tcompile,\n\tselect,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + 1 * new Date(),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// General-purpose constants\n\tMAX_NEGATIVE = 1 << 31,\n\n\t// Instance methods\n\thasOwn = ({}).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpush_native = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\t// Use a stripped-down indexOf as it's faster than native\n\t// http://jsperf.com/thor-indexof-vs-for/5\n\tindexOf = function( list, elem ) {\n\t\tvar i = 0,\n\t\t\tlen = list.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( list[i] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\t// http://www.w3.org/TR/css3-syntax/#characters\n\tcharacterEncoding = \"(?:\\\\\\\\.|[\\\\w-]|[^\\\\x00-\\\\xa0])+\",\n\n\t// Loosely modeled on CSS identifier characters\n\t// An unquoted value should be a CSS identifier http://www.w3.org/TR/css3-selectors/#attribute-selectors\n\t// Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier\n\tidentifier = characterEncoding.replace( \"w\", \"w#\" ),\n\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + characterEncoding + \")(?:\" + whitespace +\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\t\t// \"Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" + whitespace +\n\t\t\"*\\\\]\",\n\n\tpseudos = \":(\" + characterEncoding + \")(?:\\\\((\" +\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace + \"*\" ),\n\n\trattributeQuotes = new RegExp( \"=\" + whitespace + \"*([^\\\\]'\\\"]*?)\" + whitespace + \"*\\\\]\", \"g\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + characterEncoding + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + characterEncoding + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + characterEncoding.replace( \"w\", \"w*\" ) + \")\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + whitespace +\n\t\t\t\"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" + whitespace +\n\t\t\t\"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" +\n\t\t\twhitespace + \"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\trescape = /'|\\\\/g,\n\n\t// CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\([\\\\da-f]{1,6}\" + whitespace + \"?|(\" + whitespace + \")|.)\", \"ig\" ),\n\tfunescape = function( _, escaped, escapedWhitespace ) {\n\t\tvar high = \"0x\" + escaped - 0x10000;\n\t\t// NaN means non-codepoint\n\t\t// Support: Firefox<24\n\t\t// Workaround erroneous numeric interpretation of +\"0x\"\n\t\treturn high !== high || escapedWhitespace ?\n\t\t\tescaped :\n\t\t\thigh < 0 ?\n\t\t\t\t// BMP codepoint\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\t// Supplemental Plane codepoint (surrogate pair)\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t};\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t(arr = slice.call( preferredDoc.childNodes )),\n\t\tpreferredDoc.childNodes\n\t);\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpush_native.apply( target, slice.call(els) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( (target[j++] = els[i++]) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar match, elem, m, nodeType,\n\t\t// QSA vars\n\t\ti, groups, old, nid, newContext, newSelector;\n\n\tif ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {\n\t\tsetDocument( context );\n\t}\n\n\tcontext = context || document;\n\tresults = results || [];\n\tnodeType = context.nodeType;\n\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\tif ( !seed && documentIsHTML ) {\n\n\t\t// Try to shortcut find operations when possible (e.g., not under DocumentFragment)\n\t\tif ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {\n\t\t\t// Speed-up: Sizzle(\"#ID\")\n\t\t\tif ( (m = match[1]) ) {\n\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\telem = context.getElementById( m );\n\t\t\t\t\t// Check parentNode to catch when Blackberry 4.6 returns\n\t\t\t\t\t// nodes that are no longer in the document (jQuery #6963)\n\t\t\t\t\tif ( elem && elem.parentNode ) {\n\t\t\t\t\t\t// Handle the case where IE, Opera, and Webkit return items\n\t\t\t\t\t\t// by name instead of ID\n\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// Context is not a document\n\t\t\t\t\tif ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) &&\n\t\t\t\t\t\tcontains( context, elem ) && elem.id === m ) {\n\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Speed-up: Sizzle(\"TAG\")\n\t\t\t} else if ( match[2] ) {\n\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\treturn results;\n\n\t\t\t// Speed-up: Sizzle(\".CLASS\")\n\t\t\t} else if ( (m = match[3]) && support.getElementsByClassName ) {\n\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\treturn results;\n\t\t\t}\n\t\t}\n\n\t\t// QSA path\n\t\tif ( support.qsa && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) {\n\t\t\tnid = old = expando;\n\t\t\tnewContext = context;\n\t\t\tnewSelector = nodeType !== 1 && selector;\n\n\t\t\t// qSA works strangely on Element-rooted queries\n\t\t\t// We can work around this by specifying an extra ID on the root\n\t\t\t// and working up from there (Thanks to Andrew Dupont for the technique)\n\t\t\t// IE 8 doesn't work on object elements\n\t\t\tif ( nodeType === 1 && context.nodeName.toLowerCase() !== \"object\" ) {\n\t\t\t\tgroups = tokenize( selector );\n\n\t\t\t\tif ( (old = context.getAttribute(\"id\")) ) {\n\t\t\t\t\tnid = old.replace( rescape, \"\\\\$&\" );\n\t\t\t\t} else {\n\t\t\t\t\tcontext.setAttribute( \"id\", nid );\n\t\t\t\t}\n\t\t\t\tnid = \"[id='\" + nid + \"'] \";\n\n\t\t\t\ti = groups.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tgroups[i] = nid + toSelector( groups[i] );\n\t\t\t\t}\n\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) || context;\n\t\t\t\tnewSelector = groups.join(\",\");\n\t\t\t}\n\n\t\t\tif ( newSelector ) {\n\t\t\t\ttry {\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch(qsaError) {\n\t\t\t\t} finally {\n\t\t\t\t\tif ( !old ) {\n\t\t\t\t\t\tcontext.removeAttribute(\"id\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {Function(string, Object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn (cache[ key + \" \" ] = value);\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created div and expects a boolean result\n */\nfunction assert( fn ) {\n\tvar div = document.createElement(\"div\");\n\n\ttry {\n\t\treturn !!fn( div );\n\t} catch (e) {\n\t\treturn false;\n\t} finally {\n\t\t// Remove from its parent by default\n\t\tif ( div.parentNode ) {\n\t\t\tdiv.parentNode.removeChild( div );\n\t\t}\n\t\t// release memory in IE\n\t\tdiv = null;\n\t}\n}\n\n/**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split(\"|\"),\n\t\ti = attrs.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[i] ] = handler;\n\t}\n}\n\n/**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\t( ~b.sourceIndex || MAX_NEGATIVE ) -\n\t\t\t( ~a.sourceIndex || MAX_NEGATIVE );\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( (cur = cur.nextSibling) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn (name === \"input\" || name === \"button\") && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction(function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction(function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ (j = matchIndexes[i]) ] ) {\n\t\t\t\t\tseed[j] = !(matches[j] = seed[j]);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\nisXML = Sizzle.isXML = function( elem ) {\n\t// documentElement is verified for cases where it doesn't yet exist\n\t// (such as loading iframes in IE - #4833)\n\tvar documentElement = elem && (elem.ownerDocument || elem).documentElement;\n\treturn documentElement ? documentElement.nodeName !== \"HTML\" : false;\n};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar hasCompare, parent,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// If no document and documentElement is available, return\n\tif ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Set our document\n\tdocument = doc;\n\tdocElem = doc.documentElement;\n\tparent = doc.defaultView;\n\n\t// Support: IE>8\n\t// If iframe document is assigned to \"document\" variable and if iframe has been reloaded,\n\t// IE will throw \"permission denied\" error when accessing \"document\" variable, see jQuery #13936\n\t// IE6-8 do not support the defaultView property so parent will be undefined\n\tif ( parent && parent !== parent.top ) {\n\t\t// IE11 does not have attachEvent, so all must suffer\n\t\tif ( parent.addEventListener ) {\n\t\t\tparent.addEventListener( \"unload\", unloadHandler, false );\n\t\t} else if ( parent.attachEvent ) {\n\t\t\tparent.attachEvent( \"onunload\", unloadHandler );\n\t\t}\n\t}\n\n\t/* Support tests\n\t---------------------------------------------------------------------- */\n\tdocumentIsHTML = !isXML( doc );\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert(function( div ) {\n\t\tdiv.className = \"i\";\n\t\treturn !div.getAttribute(\"className\");\n\t});\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert(function( div ) {\n\t\tdiv.appendChild( doc.createComment(\"\") );\n\t\treturn !div.getElementsByTagName(\"*\").length;\n\t});\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( doc.getElementsByClassName );\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert(function( div ) {\n\t\tdocElem.appendChild( div ).id = expando;\n\t\treturn !doc.getElementsByName || !doc.getElementsByName( expando ).length;\n\t});\n\n\t// ID find and filter\n\tif ( support.getById ) {\n\t\tExpr.find[\"ID\"] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar m = context.getElementById( id );\n\t\t\t\t// Check parentNode to catch when Blackberry 4.6 returns\n\t\t\t\t// nodes that are no longer in the document #6963\n\t\t\t\treturn m && m.parentNode ? [ m ] : [];\n\t\t\t}\n\t\t};\n\t\tExpr.filter[\"ID\"] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute(\"id\") === attrId;\n\t\t\t};\n\t\t};\n\t} else {\n\t\t// Support: IE6/7\n\t\t// getElementById is not reliable as a find shortcut\n\t\tdelete Expr.find[\"ID\"];\n\n\t\tExpr.filter[\"ID\"] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" && elem.getAttributeNode(\"id\");\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[\"TAG\"] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( (elem = results[i++]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[\"CLASS\"] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See http://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( (support.qsa = rnative.test( doc.querySelectorAll )) ) {\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert(function( div ) {\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// http://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( div ).innerHTML = \"<a id='\" + expando + \"'></a>\" +\n\t\t\t\t\"<select id='\" + expando + \"-\\f]' msallowcapture=''>\" +\n\t\t\t\t\"<option selected=''></option></select>\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// http://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( div.querySelectorAll(\"[msallowcapture^='']\").length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !div.querySelectorAll(\"[selected]\").length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.2+, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.7+\n\t\t\tif ( !div.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push(\"~=\");\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !div.querySelectorAll(\":checked\").length ) {\n\t\t\t\trbuggyQSA.push(\":checked\");\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibing-combinator selector` fails\n\t\t\tif ( !div.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push(\".#.+[+~]\");\n\t\t\t}\n\t\t});\n\n\t\tassert(function( div ) {\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = doc.createElement(\"input\");\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tdiv.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( div.querySelectorAll(\"[name=d]\").length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !div.querySelectorAll(\":enabled\").length ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tdiv.querySelectorAll(\"*,:x\");\n\t\t\trbuggyQSA.push(\",.*:\");\n\t\t});\n\t}\n\n\tif ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector) )) ) {\n\n\t\tassert(function( div ) {\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( div, \"div\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( div, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t});\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join(\"|\") );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join(\"|\") );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully does not implement inclusive descendent\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t));\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( (b = b.parentNode) ) {\n\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = hasCompare ?\n\tfunction( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\tcompare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t(!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\tif ( a === doc || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\tif ( b === doc || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\tif ( !aup || !bup ) {\n\t\t\treturn a === doc ? -1 :\n\t\t\t\tb === doc ? 1 :\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[i] === bp[i] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[i], bp[i] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\tap[i] === preferredDoc ? -1 :\n\t\t\tbp[i] === preferredDoc ? 1 :\n\t\t\t0;\n\t};\n\n\treturn doc;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\t// Set document vars if needed\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\tsetDocument( elem );\n\t}\n\n\t// Make sure that attribute selectors are quoted\n\texpr = expr.replace( rattributeQuotes, \"='$1']\" );\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\t\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t\t// fragment in IE 9\n\t\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch (e) {}\n\t}\n\n\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\t// Set document vars if needed\n\tif ( ( context.ownerDocument || context ) !== document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\t// Set document vars if needed\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val !== undefined ?\n\t\tval :\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t(val = elem.getAttributeNode(name)) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull;\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\nSizzle.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( (elem = results[i++]) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\t\t// If no nodeType, this is expected to be an array\n\t\twhile ( (node = elem[i++]) ) {\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\t\"ATTR\": function( match ) {\n\t\t\tmatch[1] = match[1].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[3] = ( match[3] || match[4] || match[5] || \"\" ).replace( runescape, funescape );\n\n\t\t\tif ( match[2] === \"~=\" ) {\n\t\t\t\tmatch[3] = \" \" + match[3] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\t\"CHILD\": function( match ) {\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[1] = match[1].toLowerCase();\n\n\t\t\tif ( match[1].slice( 0, 3 ) === \"nth\" ) {\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[3] ) {\n\t\t\t\t\tSizzle.error( match[0] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === \"even\" || match[3] === \"odd\" ) );\n\t\t\t\tmatch[5] = +( ( match[7] + match[8] ) || match[3] === \"odd\" );\n\n\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[3] ) {\n\t\t\t\tSizzle.error( match[0] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[6] && match[2];\n\n\t\t\tif ( matchExpr[\"CHILD\"].test( match[0] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[3] ) {\n\t\t\t\tmatch[2] = match[4] || match[5] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t(excess = tokenize( unquoted, true )) &&\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t(excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[0] = match[0].slice( 0, excess );\n\t\t\t\tmatch[2] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\t\"TAG\": function( nodeNameSelector ) {\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() { return true; } :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t(pattern = new RegExp( \"(^|\" + whitespace + \")\" + className + \"(\" + whitespace + \"|$)\" )) &&\n\t\t\t\tclassCache( className, function( elem ) {\n\t\t\t\t\treturn pattern.test( typeof elem.className === \"string\" && elem.className || typeof elem.getAttribute !== \"undefined\" && elem.getAttribute(\"class\") || \"\" );\n\t\t\t\t});\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": function( type, what, argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, context, xml ) {\n\t\t\t\t\tvar cache, outerCache, node, diff, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( (node = node[ dir ]) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) {\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\t\t\t\t\t\t\touterCache = parent[ expando ] || (parent[ expando ] = {});\n\t\t\t\t\t\t\tcache = outerCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[0] === dirruns && cache[1];\n\t\t\t\t\t\t\tdiff = cache[0] === dirruns && cache[2];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\touterCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t} else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) {\n\t\t\t\t\t\t\tdiff = cache[1];\n\n\t\t\t\t\t\t// xml :nth-child(...) or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\n\t\t\t\t\t\t\t\tif ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) {\n\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t(node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\t\"PSEUDO\": function( pseudo, argument ) {\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as Sizzle does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction(function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf( seed, matched[i] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[i] );\n\t\t\t\t\t\t}\n\t\t\t\t\t}) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\t\t// Potentially complex pseudos\n\t\t\"not\": markFunction(function( selector ) {\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction(function( seed, matches, context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( (elem = unmatched[i]) ) {\n\t\t\t\t\t\t\tseed[i] = !(matches[i] = elem);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}) :\n\t\t\t\tfunction( elem, context, xml ) {\n\t\t\t\t\tinput[0] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\t\t\t\t\t// Don't keep the element (issue #299)\n\t\t\t\t\tinput[0] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t}),\n\n\t\t\"has\": markFunction(function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t}),\n\n\t\t\"contains\": markFunction(function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t}),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": markFunction( function( lang ) {\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test(lang || \"\") ) {\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( (elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute(\"xml:lang\") || elem.getAttribute(\"lang\")) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( (elem = elem.parentNode) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t}),\n\n\t\t// Miscellaneous\n\t\t\"target\": function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": function( elem ) {\n\t\t\treturn elem.disabled === false;\n\t\t},\n\n\t\t\"disabled\": function( elem ) {\n\t\t\treturn elem.disabled === true;\n\t\t},\n\n\t\t\"checked\": function( elem ) {\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn (nodeName === \"input\" && !!elem.checked) || (nodeName === \"option\" && !!elem.selected);\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\t\"empty\": function( elem ) {\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[\"empty\"]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\n\t\t\t\t// Support: IE<8\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n\t\t\t\t( (attr = elem.getAttribute(\"type\")) == null || attr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t\"first\": createPositionalPseudo(function() {\n\t\t\treturn [ 0 ];\n\t\t}),\n\n\t\t\"last\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t}),\n\n\t\t\"eq\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t}),\n\n\t\t\"even\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"odd\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"lt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"gt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t})\n\t}\n};\n\nExpr.pseudos[\"nth\"] = Expr.pseudos[\"eq\"];\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\ntokenize = Sizzle.tokenize = function( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || (match = rcomma.exec( soFar )) ) {\n\t\t\tif ( match ) {\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[0].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( (tokens = []) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( (match = rcombinators.exec( soFar )) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push({\n\t\t\t\tvalue: matched,\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[0].replace( rtrim, \" \" )\n\t\t\t});\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||\n\t\t\t\t(match = preFilters[ type ]( match ))) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push({\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t});\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\t\t\t// Cache the tokens\n\t\t\ttokenCache( selector, groups ).slice( 0 );\n};\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[i].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tcheckNonElements = base && dir === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from dir caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || (elem[ expando ] = {});\n\t\t\t\t\t\tif ( (oldCache = outerCache[ dir ]) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn (newCache[ 2 ] = oldCache[ 2 ]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\touterCache[ dir ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[i]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[0];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tSizzle( selector, contexts[i], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( (elem = unmatched[i]) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction(function( seed, results, context, xml ) {\n\t\tvar temp, i, elem,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed || multipleContexts( selector || \"*\", context.nodeType ? [ context ] : context, [] ),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems,\n\n\t\t\tmatcherOut = matcher ?\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( (elem = temp[i]) ) {\n\t\t\t\t\tmatcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( (elem = matcherOut[i]) ) {\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( (matcherIn[i] = elem) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, (matcherOut = []), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( (elem = matcherOut[i]) &&\n\t\t\t\t\t\t(temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {\n\n\t\t\t\t\t\tseed[temp] = !(results[temp] = elem);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[0].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[\" \"],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t(checkContext = context).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\t\t\t// Avoid hanging onto element (issue #299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( (matcher = Expr.relative[ tokens[i].type ]) ) {\n\t\t\tmatchers = [ addCombinator(elementMatcher( matchers ), matcher) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[j].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\t\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\t\ttokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" })\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( (tokens = tokens.slice( j )) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find[\"TAG\"]( \"*\", outermost ),\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\t\t\t\toutermostContext = context !== document && context;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Keep `i` a string if there are no elements so `matchedCount` will be \"00\" below\n\t\t\t// Support: IE<9, Safari\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: <number>) matching elements by id\n\t\t\tfor ( ; i !== len && (elem = elems[i]) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( (matcher = elementMatchers[j++]) ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( (elem = !matcher && elem) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\tmatchedCount += i;\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( (matcher = setMatchers[j++]) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !(unmatched[i] || setMatched[i]) ) {\n\t\t\t\t\t\t\t\tsetMatched[i] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[i] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n};\n\n/**\n * A low-level selection function that works with Sizzle's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nselect = Sizzle.select = function( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( (selector = compiled.selector || selector) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is no seed and only one group\n\tif ( match.length === 1 ) {\n\n\t\t// Take a shortcut and set the context if the root selector is an ID\n\t\ttokens = match[0] = match[0].slice( 0 );\n\t\tif ( tokens.length > 2 && (token = tokens[0]).type === \"ID\" &&\n\t\t\t\tsupport.getById && context.nodeType === 9 && documentIsHTML &&\n\t\t\t\tExpr.relative[ tokens[1].type ] ) {\n\n\t\t\tcontext = ( Expr.find[\"ID\"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr[\"needsContext\"].test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[i];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ (type = token.type) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( (find = Expr.find[ type ]) ) {\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( (seed = find(\n\t\t\t\t\ttoken.matches[0].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context\n\t\t\t\t)) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\trsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n};\n\n// One-time assignments\n\n// Sort stability\nsupport.sortStable = expando.split(\"\").sort( sortOrder ).join(\"\") === expando;\n\n// Support: Chrome 14-35+\n// Always assume duplicates if they aren't passed to the comparison function\nsupport.detectDuplicates = !!hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert(function( div1 ) {\n\t// Should return 1, but returns 4 (following)\n\treturn div1.compareDocumentPosition( document.createElement(\"div\") ) & 1;\n});\n\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert(function( div ) {\n\tdiv.innerHTML = \"<a href='#'></a>\";\n\treturn div.firstChild.getAttribute(\"href\") === \"#\" ;\n}) ) {\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t}\n\t});\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute(\"value\")\nif ( !support.attributes || !assert(function( div ) {\n\tdiv.innerHTML = \"<input/>\";\n\tdiv.firstChild.setAttribute( \"value\", \"\" );\n\treturn div.firstChild.getAttribute( \"value\" ) === \"\";\n}) ) {\n\taddHandle( \"value\", function( elem, name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t});\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert(function( div ) {\n\treturn div.getAttribute(\"disabled\") == null;\n}) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\t\t\t\t\t(val = elem.getAttributeNode( name )) && val.specified ?\n\t\t\t\t\tval.value :\n\t\t\t\tnull;\n\t\t}\n\t});\n}\n\nreturn Sizzle;\n\n})( window );\n\n\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\njQuery.expr[\":\"] = jQuery.expr.pseudos;\njQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\n\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\nvar rsingleTag = (/^<(\\w+)\\s*\\/?>(?:<\\/\\1>|)$/);\n\n\n\nvar risSimple = /^.[^:#\\[\\.,]*$/;\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( jQuery.isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\t/* jshint -W018 */\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t});\n\n\t}\n\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t});\n\n\t}\n\n\tif ( typeof qualifier === \"string\" ) {\n\t\tif ( risSimple.test( qualifier ) ) {\n\t\t\treturn jQuery.filter( qualifier, elements, not );\n\t\t}\n\n\t\tqualifier = jQuery.filter( qualifier, elements );\n\t}\n\n\treturn jQuery.grep( elements, function( elem ) {\n\t\treturn ( jQuery.inArray( elem, qualifier ) >= 0 ) !== not;\n\t});\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\treturn elems.length === 1 && elem.nodeType === 1 ?\n\t\tjQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] :\n\t\tjQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\t\treturn elem.nodeType === 1;\n\t\t}));\n};\n\njQuery.fn.extend({\n\tfind: function( selector ) {\n\t\tvar i,\n\t\t\tret = [],\n\t\t\tself = this,\n\t\t\tlen = self.length;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter(function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}) );\n\t\t}\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\t// Needed because $( selector, context ) becomes $( context ).find( selector )\n\t\tret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret );\n\t\tret.selector = this.selector ? this.selector + \" \" + selector : selector;\n\t\treturn ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow(this, selector || [], false) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow(this, selector || [], true) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n});\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// Use the correct document accordingly with window argument (sandbox)\n\tdocument = window.document,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over <tag> to avoid XSS via location.hash (#9521)\n\t// Strict HTML recognition (#11290: must start with <)\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]*))$/,\n\n\tinit = jQuery.fn.init = function( selector, context ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector.charAt(0) === \"<\" && selector.charAt( selector.length - 1 ) === \">\" && selector.length >= 3 ) {\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && (match[1] || !context) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[1] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[0] : context;\n\n\t\t\t\t\t// scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[1],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( jQuery.isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[2] );\n\n\t\t\t\t\t// Check parentNode to catch when Blackberry 4.6 returns\n\t\t\t\t\t// nodes that are no longer in the document #6963\n\t\t\t\t\tif ( elem && elem.parentNode ) {\n\t\t\t\t\t\t// Handle the case where IE and Opera return items\n\t\t\t\t\t\t// by name instead of ID\n\t\t\t\t\t\tif ( elem.id !== match[2] ) {\n\t\t\t\t\t\t\treturn rootjQuery.find( selector );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Otherwise, we inject the element directly into the jQuery object\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t\tthis[0] = elem;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.context = document;\n\t\t\t\t\tthis.selector = selector;\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || rootjQuery ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis.context = this[0] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( jQuery.isFunction( selector ) ) {\n\t\t\treturn typeof rootjQuery.ready !== \"undefined\" ?\n\t\t\t\trootjQuery.ready( selector ) :\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\tif ( selector.selector !== undefined ) {\n\t\t\tthis.selector = selector.selector;\n\t\t\tthis.context = selector.context;\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\t// methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.extend({\n\tdir: function( elem, dir, until ) {\n\t\tvar matched = [],\n\t\t\tcur = elem[ dir ];\n\n\t\twhile ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) {\n\t\t\tif ( cur.nodeType === 1 ) {\n\t\t\t\tmatched.push( cur );\n\t\t\t}\n\t\t\tcur = cur[dir];\n\t\t}\n\t\treturn matched;\n\t},\n\n\tsibling: function( n, elem ) {\n\t\tvar r = [];\n\n\t\tfor ( ; n; n = n.nextSibling ) {\n\t\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\t\tr.push( n );\n\t\t\t}\n\t\t}\n\n\t\treturn r;\n\t}\n});\n\njQuery.fn.extend({\n\thas: function( target ) {\n\t\tvar i,\n\t\t\ttargets = jQuery( target, this ),\n\t\t\tlen = targets.length;\n\n\t\treturn this.filter(function() {\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[i] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\tpos = rneedsContext.test( selectors ) || typeof selectors !== \"string\" ?\n\t\t\t\tjQuery( selectors, context || this.context ) :\n\t\t\t\t0;\n\n\t\tfor ( ; i < l; i++ ) {\n\t\t\tfor ( cur = this[i]; cur && cur !== context; cur = cur.parentNode ) {\n\t\t\t\t// Always skip document fragments\n\t\t\t\tif ( cur.nodeType < 11 && (pos ?\n\t\t\t\t\tpos.index(cur) > -1 :\n\n\t\t\t\t\t// Don't pass non-elements to Sizzle\n\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\tjQuery.find.matchesSelector(cur, selectors)) ) {\n\n\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.unique( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within\n\t// the matched set of elements\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[0] && this[0].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn jQuery.inArray( this[0], jQuery( elem ) );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn jQuery.inArray(\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[0] : elem, this );\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.unique(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter(selector)\n\t\t);\n\t}\n});\n\nfunction sibling( cur, dir ) {\n\tdo {\n\t\tcur = cur[ dir ];\n\t} while ( cur && cur.nodeType !== 1 );\n\n\treturn cur;\n}\n\njQuery.each({\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn jQuery.dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, i, until ) {\n\t\treturn jQuery.dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn jQuery.dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn jQuery.dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, i, until ) {\n\t\treturn jQuery.dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, i, until ) {\n\t\treturn jQuery.dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn jQuery.sibling( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\treturn jQuery.nodeName( elem, \"iframe\" ) ?\n\t\t\telem.contentDocument || elem.contentWindow.document :\n\t\t\tjQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar ret = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tret = jQuery.filter( selector, ret );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tret = jQuery.unique( ret );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tret = ret.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n});\nvar rnotwhite = (/\\S+/g);\n\n\n\n// String to Object options format cache\nvar optionsCache = {};\n\n// Convert String-formatted options into Object-formatted ones and store in cache\nfunction createOptions( options ) {\n\tvar object = optionsCache[ options ] = {};\n\tjQuery.each( options.match( rnotwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t});\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\t( optionsCache[ options ] || createOptions( options ) ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\t\t// Last fire value (for non-forgettable lists)\n\t\tmemory,\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\t\t// End of the loop when firing\n\t\tfiringLength,\n\t\t// Index of currently firing callback (modified by remove if needed)\n\t\tfiringIndex,\n\t\t// First callback to fire (used internally by add and fireWith)\n\t\tfiringStart,\n\t\t// Actual callback list\n\t\tlist = [],\n\t\t// Stack of fire calls for repeatable lists\n\t\tstack = !options.once && [],\n\t\t// Fire callbacks\n\t\tfire = function( data ) {\n\t\t\tmemory = options.memory && data;\n\t\t\tfired = true;\n\t\t\tfiringIndex = firingStart || 0;\n\t\t\tfiringStart = 0;\n\t\t\tfiringLength = list.length;\n\t\t\tfiring = true;\n\t\t\tfor ( ; list && firingIndex < firingLength; firingIndex++ ) {\n\t\t\t\tif ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) {\n\t\t\t\t\tmemory = false; // To prevent further calls using add\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tfiring = false;\n\t\t\tif ( list ) {\n\t\t\t\tif ( stack ) {\n\t\t\t\t\tif ( stack.length ) {\n\t\t\t\t\t\tfire( stack.shift() );\n\t\t\t\t\t}\n\t\t\t\t} else if ( memory ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t} else {\n\t\t\t\t\tself.disable();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t// Actual Callbacks object\n\t\tself = {\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\t// First, we save the current length\n\t\t\t\t\tvar start = list.length;\n\t\t\t\t\t(function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tvar type = jQuery.type( arg );\n\t\t\t\t\t\t\tif ( type === \"function\" ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && type !== \"string\" ) {\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t})( arguments );\n\t\t\t\t\t// Do we need to add the callbacks to the\n\t\t\t\t\t// current firing batch?\n\t\t\t\t\tif ( firing ) {\n\t\t\t\t\t\tfiringLength = list.length;\n\t\t\t\t\t// With memory, if we're not firing then\n\t\t\t\t\t// we should call right away\n\t\t\t\t\t} else if ( memory ) {\n\t\t\t\t\t\tfiringStart = start;\n\t\t\t\t\t\tfire( memory );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\t\tvar index;\n\t\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\t\tlist.splice( index, 1 );\n\t\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\t\tif ( firing ) {\n\t\t\t\t\t\t\t\tif ( index <= firingLength ) {\n\t\t\t\t\t\t\t\t\tfiringLength--;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ? jQuery.inArray( fn, list ) > -1 : !!( list && list.length );\n\t\t\t},\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tlist = [];\n\t\t\t\tfiringLength = 0;\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Have the list do nothing anymore\n\t\t\tdisable: function() {\n\t\t\t\tlist = stack = memory = undefined;\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Is it disabled?\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\t\t\t// Lock the list in its current state\n\t\t\tlock: function() {\n\t\t\t\tstack = undefined;\n\t\t\t\tif ( !memory ) {\n\t\t\t\t\tself.disable();\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Is it locked?\n\t\t\tlocked: function() {\n\t\t\t\treturn !stack;\n\t\t\t},\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( list && ( !fired || stack ) ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tif ( firing ) {\n\t\t\t\t\t\tstack.push( args );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfire( args );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\njQuery.extend({\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\t\t\t\t// action, add listener, listener list, final state\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks(\"once memory\"), \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks(\"once memory\"), \"rejected\" ],\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks(\"memory\") ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\tthen: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\t\t\t\t\treturn jQuery.Deferred(function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\t\t\t\t\tvar fn = jQuery.isFunction( fns[ i ] ) && fns[ i ];\n\t\t\t\t\t\t\t// deferred[ done | fail | progress ] for forwarding actions to newDefer\n\t\t\t\t\t\t\tdeferred[ tuple[1] ](function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && jQuery.isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject )\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t});\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t}).promise();\n\t\t\t\t},\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Keep pipe for back-compat\n\t\tpromise.pipe = promise.then;\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 3 ];\n\n\t\t\t// promise[ done | fail | progress ] = list.add\n\t\t\tpromise[ tuple[1] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(function() {\n\t\t\t\t\t// state = [ resolved | rejected ]\n\t\t\t\t\tstate = stateString;\n\n\t\t\t\t// [ reject_list | resolve_list ].disable; progress_list.lock\n\t\t\t\t}, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock );\n\t\t\t}\n\n\t\t\t// deferred[ resolve | reject | notify ]\n\t\t\tdeferred[ tuple[0] ] = function() {\n\t\t\t\tdeferred[ tuple[0] + \"With\" ]( this === deferred ? promise : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\t\t\tdeferred[ tuple[0] + \"With\" ] = list.fireWith;\n\t\t});\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( subordinate /* , ..., subordinateN */ ) {\n\t\tvar i = 0,\n\t\t\tresolveValues = slice.call( arguments ),\n\t\t\tlength = resolveValues.length,\n\n\t\t\t// the count of uncompleted subordinates\n\t\t\tremaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0,\n\n\t\t\t// the master Deferred. If resolveValues consist of only a single Deferred, just use that.\n\t\t\tdeferred = remaining === 1 ? subordinate : jQuery.Deferred(),\n\n\t\t\t// Update function for both resolve and progress values\n\t\t\tupdateFunc = function( i, contexts, values ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tcontexts[ i ] = this;\n\t\t\t\t\tvalues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( values === progressValues ) {\n\t\t\t\t\t\tdeferred.notifyWith( contexts, values );\n\n\t\t\t\t\t} else if ( !(--remaining) ) {\n\t\t\t\t\t\tdeferred.resolveWith( contexts, values );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t},\n\n\t\t\tprogressValues, progressContexts, resolveContexts;\n\n\t\t// add listeners to Deferred subordinates; treat others as resolved\n\t\tif ( length > 1 ) {\n\t\t\tprogressValues = new Array( length );\n\t\t\tprogressContexts = new Array( length );\n\t\t\tresolveContexts = new Array( length );\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) {\n\t\t\t\t\tresolveValues[ i ].promise()\n\t\t\t\t\t\t.done( updateFunc( i, resolveContexts, resolveValues ) )\n\t\t\t\t\t\t.fail( deferred.reject )\n\t\t\t\t\t\t.progress( updateFunc( i, progressContexts, progressValues ) );\n\t\t\t\t} else {\n\t\t\t\t\t--remaining;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// if we're not waiting on anything, resolve the master\n\t\tif ( !remaining ) {\n\t\t\tdeferred.resolveWith( resolveContexts, resolveValues );\n\t\t}\n\n\t\treturn deferred.promise();\n\t}\n});\n\n\n// The deferred used on DOM ready\nvar readyList;\n\njQuery.fn.ready = function( fn ) {\n\t// Add the callback\n\tjQuery.ready.promise().done( fn );\n\n\treturn this;\n};\n\njQuery.extend({\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See #6781\n\treadyWait: 1,\n\n\t// Hold (or release) the ready event\n\tholdReady: function( hold ) {\n\t\tif ( hold ) {\n\t\t\tjQuery.readyWait++;\n\t\t} else {\n\t\t\tjQuery.ready( true );\n\t\t}\n\t},\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).\n\t\tif ( !document.body ) {\n\t\t\treturn setTimeout( jQuery.ready );\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\n\t\t// Trigger any bound ready events\n\t\tif ( jQuery.fn.triggerHandler ) {\n\t\t\tjQuery( document ).triggerHandler( \"ready\" );\n\t\t\tjQuery( document ).off( \"ready\" );\n\t\t}\n\t}\n});\n\n/**\n * Clean-up method for dom ready events\n */\nfunction detach() {\n\tif ( document.addEventListener ) {\n\t\tdocument.removeEventListener( \"DOMContentLoaded\", completed, false );\n\t\twindow.removeEventListener( \"load\", completed, false );\n\n\t} else {\n\t\tdocument.detachEvent( \"onreadystatechange\", completed );\n\t\twindow.detachEvent( \"onload\", completed );\n\t}\n}\n\n/**\n * The ready event handler and self cleanup method\n */\nfunction completed() {\n\t// readyState === \"complete\" is good enough for us to call the dom ready in oldIE\n\tif ( document.addEventListener || event.type === \"load\" || document.readyState === \"complete\" ) {\n\t\tdetach();\n\t\tjQuery.ready();\n\t}\n}\n\njQuery.ready.promise = function( obj ) {\n\tif ( !readyList ) {\n\n\t\treadyList = jQuery.Deferred();\n\n\t\t// Catch cases where $(document).ready() is called after the browser event has already occurred.\n\t\t// we once tried to use readyState \"interactive\" here, but it caused issues like the one\n\t\t// discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15\n\t\tif ( document.readyState === \"complete\" ) {\n\t\t\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\t\t\tsetTimeout( jQuery.ready );\n\n\t\t// Standards-based browsers support DOMContentLoaded\n\t\t} else if ( document.addEventListener ) {\n\t\t\t// Use the handy event callback\n\t\t\tdocument.addEventListener( \"DOMContentLoaded\", completed, false );\n\n\t\t\t// A fallback to window.onload, that will always work\n\t\t\twindow.addEventListener( \"load\", completed, false );\n\n\t\t// If IE event model is used\n\t\t} else {\n\t\t\t// Ensure firing before onload, maybe late but safe also for iframes\n\t\t\tdocument.attachEvent( \"onreadystatechange\", completed );\n\n\t\t\t// A fallback to window.onload, that will always work\n\t\t\twindow.attachEvent( \"onload\", completed );\n\n\t\t\t// If IE and not a frame\n\t\t\t// continually check to see if the document is ready\n\t\t\tvar top = false;\n\n\t\t\ttry {\n\t\t\t\ttop = window.frameElement == null && document.documentElement;\n\t\t\t} catch(e) {}\n\n\t\t\tif ( top && top.doScroll ) {\n\t\t\t\t(function doScrollCheck() {\n\t\t\t\t\tif ( !jQuery.isReady ) {\n\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t// Use the trick by Diego Perini\n\t\t\t\t\t\t\t// http://javascript.nwbox.com/IEContentLoaded/\n\t\t\t\t\t\t\ttop.doScroll(\"left\");\n\t\t\t\t\t\t} catch(e) {\n\t\t\t\t\t\t\treturn setTimeout( doScrollCheck, 50 );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// detach all dom ready events\n\t\t\t\t\t\tdetach();\n\n\t\t\t\t\t\t// and execute any waiting functions\n\t\t\t\t\t\tjQuery.ready();\n\t\t\t\t\t}\n\t\t\t\t})();\n\t\t\t}\n\t\t}\n\t}\n\treturn readyList.promise( obj );\n};\n\n\nvar strundefined = typeof undefined;\n\n\n\n// Support: IE<9\n// Iteration over object's inherited properties before its own\nvar i;\nfor ( i in jQuery( support ) ) {\n\tbreak;\n}\nsupport.ownLast = i !== \"0\";\n\n// Note: most support tests are defined in their respective modules.\n// false until the test is run\nsupport.inlineBlockNeedsLayout = false;\n\n// Execute ASAP in case we need to set body.style.zoom\njQuery(function() {\n\t// Minified: var a,b,c,d\n\tvar val, div, body, container;\n\n\tbody = document.getElementsByTagName( \"body\" )[ 0 ];\n\tif ( !body || !body.style ) {\n\t\t// Return for frameset docs that don't have a body\n\t\treturn;\n\t}\n\n\t// Setup\n\tdiv = document.createElement( \"div\" );\n\tcontainer = document.createElement( \"div\" );\n\tcontainer.style.cssText = \"position:absolute;border:0;width:0;height:0;top:0;left:-9999px\";\n\tbody.appendChild( container ).appendChild( div );\n\n\tif ( typeof div.style.zoom !== strundefined ) {\n\t\t// Support: IE<8\n\t\t// Check if natively block-level elements act like inline-block\n\t\t// elements when setting their display to 'inline' and giving\n\t\t// them layout\n\t\tdiv.style.cssText = \"display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1\";\n\n\t\tsupport.inlineBlockNeedsLayout = val = div.offsetWidth === 3;\n\t\tif ( val ) {\n\t\t\t// Prevent IE 6 from affecting layout for positioned elements #11048\n\t\t\t// Prevent IE from shrinking the body in IE 7 mode #12869\n\t\t\t// Support: IE<8\n\t\t\tbody.style.zoom = 1;\n\t\t}\n\t}\n\n\tbody.removeChild( container );\n});\n\n\n\n\n(function() {\n\tvar div = document.createElement( \"div\" );\n\n\t// Execute the test only if not already executed in another module.\n\tif (support.deleteExpando == null) {\n\t\t// Support: IE<9\n\t\tsupport.deleteExpando = true;\n\t\ttry {\n\t\t\tdelete div.test;\n\t\t} catch( e ) {\n\t\t\tsupport.deleteExpando = false;\n\t\t}\n\t}\n\n\t// Null elements to avoid leaks in IE.\n\tdiv = null;\n})();\n\n\n/**\n * Determines whether an object can have data\n */\njQuery.acceptData = function( elem ) {\n\tvar noData = jQuery.noData[ (elem.nodeName + \" \").toLowerCase() ],\n\t\tnodeType = +elem.nodeType || 1;\n\n\t// Do not set data on non-element DOM nodes because it will not be cleared (#8335).\n\treturn nodeType !== 1 && nodeType !== 9 ?\n\t\tfalse :\n\n\t\t// Nodes accept data unless otherwise specified; rejection can be conditional\n\t\t!noData || noData !== true && elem.getAttribute(\"classid\") === noData;\n};\n\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /([A-Z])/g;\n\nfunction dataAttr( elem, key, data ) {\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\n\t\tvar name = \"data-\" + key.replace( rmultiDash, \"-$1\" ).toLowerCase();\n\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = data === \"true\" ? true :\n\t\t\t\t\tdata === \"false\" ? false :\n\t\t\t\t\tdata === \"null\" ? null :\n\t\t\t\t\t// Only convert to a number if it doesn't change the string\n\t\t\t\t\t+data + \"\" === data ? +data :\n\t\t\t\t\trbrace.test( data ) ? jQuery.parseJSON( data ) :\n\t\t\t\t\tdata;\n\t\t\t} catch( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tjQuery.data( elem, key, data );\n\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\n\treturn data;\n}\n\n// checks a cache object for emptiness\nfunction isEmptyDataObject( obj ) {\n\tvar name;\n\tfor ( name in obj ) {\n\n\t\t// if the public data object is empty, the private is still empty\n\t\tif ( name === \"data\" && jQuery.isEmptyObject( obj[name] ) ) {\n\t\t\tcontinue;\n\t\t}\n\t\tif ( name !== \"toJSON\" ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}\n\nfunction internalData( elem, name, data, pvt /* Internal Use Only */ ) {\n\tif ( !jQuery.acceptData( elem ) ) {\n\t\treturn;\n\t}\n\n\tvar ret, thisCache,\n\t\tinternalKey = jQuery.expando,\n\n\t\t// We have to handle DOM nodes and JS objects differently because IE6-7\n\t\t// can't GC object references properly across the DOM-JS boundary\n\t\tisNode = elem.nodeType,\n\n\t\t// Only DOM nodes need the global jQuery cache; JS object data is\n\t\t// attached directly to the object so GC can occur automatically\n\t\tcache = isNode ? jQuery.cache : elem,\n\n\t\t// Only defining an ID for JS objects if its cache already exists allows\n\t\t// the code to shortcut on the same path as a DOM node with no cache\n\t\tid = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey;\n\n\t// Avoid doing any more work than we need to when trying to get data on an\n\t// object that has no data at all\n\tif ( (!id || !cache[id] || (!pvt && !cache[id].data)) && data === undefined && typeof name === \"string\" ) {\n\t\treturn;\n\t}\n\n\tif ( !id ) {\n\t\t// Only DOM nodes need a new unique ID for each element since their data\n\t\t// ends up in the global cache\n\t\tif ( isNode ) {\n\t\t\tid = elem[ internalKey ] = deletedIds.pop() || jQuery.guid++;\n\t\t} else {\n\t\t\tid = internalKey;\n\t\t}\n\t}\n\n\tif ( !cache[ id ] ) {\n\t\t// Avoid exposing jQuery metadata on plain JS objects when the object\n\t\t// is serialized using JSON.stringify\n\t\tcache[ id ] = isNode ? {} : { toJSON: jQuery.noop };\n\t}\n\n\t// An object can be passed to jQuery.data instead of a key/value pair; this gets\n\t// shallow copied over onto the existing cache\n\tif ( typeof name === \"object\" || typeof name === \"function\" ) {\n\t\tif ( pvt ) {\n\t\t\tcache[ id ] = jQuery.extend( cache[ id ], name );\n\t\t} else {\n\t\t\tcache[ id ].data = jQuery.extend( cache[ id ].data, name );\n\t\t}\n\t}\n\n\tthisCache = cache[ id ];\n\n\t// jQuery data() is stored in a separate object inside the object's internal data\n\t// cache in order to avoid key collisions between internal data and user-defined\n\t// data.\n\tif ( !pvt ) {\n\t\tif ( !thisCache.data ) {\n\t\t\tthisCache.data = {};\n\t\t}\n\n\t\tthisCache = thisCache.data;\n\t}\n\n\tif ( data !== undefined ) {\n\t\tthisCache[ jQuery.camelCase( name ) ] = data;\n\t}\n\n\t// Check for both converted-to-camel and non-converted data property names\n\t// If a data property was specified\n\tif ( typeof name === \"string\" ) {\n\n\t\t// First Try to find as-is property data\n\t\tret = thisCache[ name ];\n\n\t\t// Test for null|undefined property data\n\t\tif ( ret == null ) {\n\n\t\t\t// Try to find the camelCased property\n\t\t\tret = thisCache[ jQuery.camelCase( name ) ];\n\t\t}\n\t} else {\n\t\tret = thisCache;\n\t}\n\n\treturn ret;\n}\n\nfunction internalRemoveData( elem, name, pvt ) {\n\tif ( !jQuery.acceptData( elem ) ) {\n\t\treturn;\n\t}\n\n\tvar thisCache, i,\n\t\tisNode = elem.nodeType,\n\n\t\t// See jQuery.data for more information\n\t\tcache = isNode ? jQuery.cache : elem,\n\t\tid = isNode ? elem[ jQuery.expando ] : jQuery.expando;\n\n\t// If there is already no cache entry for this object, there is no\n\t// purpose in continuing\n\tif ( !cache[ id ] ) {\n\t\treturn;\n\t}\n\n\tif ( name ) {\n\n\t\tthisCache = pvt ? cache[ id ] : cache[ id ].data;\n\n\t\tif ( thisCache ) {\n\n\t\t\t// Support array or space separated string names for data keys\n\t\t\tif ( !jQuery.isArray( name ) ) {\n\n\t\t\t\t// try the string as a key before any manipulation\n\t\t\t\tif ( name in thisCache ) {\n\t\t\t\t\tname = [ name ];\n\t\t\t\t} else {\n\n\t\t\t\t\t// split the camel cased version by spaces unless a key with the spaces exists\n\t\t\t\t\tname = jQuery.camelCase( name );\n\t\t\t\t\tif ( name in thisCache ) {\n\t\t\t\t\t\tname = [ name ];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tname = name.split(\" \");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// If \"name\" is an array of keys...\n\t\t\t\t// When data is initially created, via (\"key\", \"val\") signature,\n\t\t\t\t// keys will be converted to camelCase.\n\t\t\t\t// Since there is no way to tell _how_ a key was added, remove\n\t\t\t\t// both plain key and camelCase key. #12786\n\t\t\t\t// This will only penalize the array argument path.\n\t\t\t\tname = name.concat( jQuery.map( name, jQuery.camelCase ) );\n\t\t\t}\n\n\t\t\ti = name.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete thisCache[ name[i] ];\n\t\t\t}\n\n\t\t\t// If there is no data left in the cache, we want to continue\n\t\t\t// and let the cache object itself get destroyed\n\t\t\tif ( pvt ? !isEmptyDataObject(thisCache) : !jQuery.isEmptyObject(thisCache) ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t}\n\n\t// See jQuery.data for more information\n\tif ( !pvt ) {\n\t\tdelete cache[ id ].data;\n\n\t\t// Don't destroy the parent cache unless the internal data object\n\t\t// had been the only thing left in it\n\t\tif ( !isEmptyDataObject( cache[ id ] ) ) {\n\t\t\treturn;\n\t\t}\n\t}\n\n\t// Destroy the cache\n\tif ( isNode ) {\n\t\tjQuery.cleanData( [ elem ], true );\n\n\t// Use delete when supported for expandos or `cache` is not a window per isWindow (#10080)\n\t/* jshint eqeqeq: false */\n\t} else if ( support.deleteExpando || cache != cache.window ) {\n\t\t/* jshint eqeqeq: true */\n\t\tdelete cache[ id ];\n\n\t// When all else fails, null\n\t} else {\n\t\tcache[ id ] = null;\n\t}\n}\n\njQuery.extend({\n\tcache: {},\n\n\t// The following elements (space-suffixed to avoid Object.prototype collisions)\n\t// throw uncatchable exceptions if you attempt to set expando properties\n\tnoData: {\n\t\t\"applet \": true,\n\t\t\"embed \": true,\n\t\t// ...but Flash objects (which have this classid) *can* handle expandos\n\t\t\"object \": \"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\"\n\t},\n\n\thasData: function( elem ) {\n\t\telem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ];\n\t\treturn !!elem && !isEmptyDataObject( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn internalData( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\treturn internalRemoveData( elem, name );\n\t},\n\n\t// For internal use only.\n\t_data: function( elem, name, data ) {\n\t\treturn internalData( elem, name, data, true );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\treturn internalRemoveData( elem, name, true );\n\t}\n});\n\njQuery.fn.extend({\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[0],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Special expections of .data basically thwart jQuery.access,\n\t\t// so implement the relevant behavior ourselves\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = jQuery.data( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !jQuery._data( elem, \"parsedAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE11+\n\t\t\t\t\t\t// The attrs elements can be null (#14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = jQuery.camelCase( name.slice(5) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tjQuery._data( elem, \"parsedAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each(function() {\n\t\t\t\tjQuery.data( this, key );\n\t\t\t});\n\t\t}\n\n\t\treturn arguments.length > 1 ?\n\n\t\t\t// Sets one value\n\t\t\tthis.each(function() {\n\t\t\t\tjQuery.data( this, key, value );\n\t\t\t}) :\n\n\t\t\t// Gets one value\n\t\t\t// Try to fetch any internally stored data first\n\t\t\telem ? dataAttr( elem, key, jQuery.data( elem, key ) ) : undefined;\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each(function() {\n\t\t\tjQuery.removeData( this, key );\n\t\t});\n\t}\n});\n\n\njQuery.extend({\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = jQuery._data( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || jQuery.isArray(data) ) {\n\t\t\t\t\tqueue = jQuery._data( elem, type, jQuery.makeArray(data) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// not intended for public consumption - generates a queueHooks object, or returns the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn jQuery._data( elem, key ) || jQuery._data( elem, key, {\n\t\t\tempty: jQuery.Callbacks(\"once memory\").add(function() {\n\t\t\t\tjQuery._removeData( elem, type + \"queue\" );\n\t\t\t\tjQuery._removeData( elem, key );\n\t\t\t})\n\t\t});\n\t}\n});\n\njQuery.fn.extend({\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[0], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each(function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[0] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t});\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each(function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t});\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = jQuery._data( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n});\nvar pnum = (/[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/).source;\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar isHidden = function( elem, el ) {\n\t\t// isHidden might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\t\treturn jQuery.css( elem, \"display\" ) === \"none\" || !jQuery.contains( elem.ownerDocument, elem );\n\t};\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = jQuery.access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlength = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( jQuery.type( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\tjQuery.access( elems, fn, i, key[i], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !jQuery.isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tfn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) );\n\t\t\t}\n\t\t}\n\t}\n\n\treturn chainable ?\n\t\telems :\n\n\t\t// Gets\n\t\tbulk ?\n\t\t\tfn.call( elems ) :\n\t\t\tlength ? fn( elems[0], key ) : emptyGet;\n};\nvar rcheckableType = (/^(?:checkbox|radio)$/i);\n\n\n\n(function() {\n\t// Minified: var a,b,c\n\tvar input = document.createElement( \"input\" ),\n\t\tdiv = document.createElement( \"div\" ),\n\t\tfragment = document.createDocumentFragment();\n\n\t// Setup\n\tdiv.innerHTML = \" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>\";\n\n\t// IE strips leading whitespace when .innerHTML is used\n\tsupport.leadingWhitespace = div.firstChild.nodeType === 3;\n\n\t// Make sure that tbody elements aren't automatically inserted\n\t// IE will insert them into empty tables\n\tsupport.tbody = !div.getElementsByTagName( \"tbody\" ).length;\n\n\t// Make sure that link elements get serialized correctly by innerHTML\n\t// This requires a wrapper element in IE\n\tsupport.htmlSerialize = !!div.getElementsByTagName( \"link\" ).length;\n\n\t// Makes sure cloning an html5 element does not cause problems\n\t// Where outerHTML is undefined, this still works\n\tsupport.html5Clone =\n\t\tdocument.createElement( \"nav\" ).cloneNode( true ).outerHTML !== \"<:nav></:nav>\";\n\n\t// Check if a disconnected checkbox will retain its checked\n\t// value of true after appended to the DOM (IE6/7)\n\tinput.type = \"checkbox\";\n\tinput.checked = true;\n\tfragment.appendChild( input );\n\tsupport.appendChecked = input.checked;\n\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\t// Support: IE6-IE11+\n\tdiv.innerHTML = \"<textarea>x</textarea>\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n\n\t// #11217 - WebKit loses check when the name is after the checked attribute\n\tfragment.appendChild( div );\n\tdiv.innerHTML = \"<input type='radio' checked='checked' name='t'/>\";\n\n\t// Support: Safari 5.1, iOS 5.1, Android 4.x, Android 2.3\n\t// old WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE<9\n\t// Opera does not clone events (and typeof div.attachEvent === undefined).\n\t// IE9-10 clones events bound via attachEvent, but they don't trigger with .click()\n\tsupport.noCloneEvent = true;\n\tif ( div.attachEvent ) {\n\t\tdiv.attachEvent( \"onclick\", function() {\n\t\t\tsupport.noCloneEvent = false;\n\t\t});\n\n\t\tdiv.cloneNode( true ).click();\n\t}\n\n\t// Execute the test only if not already executed in another module.\n\tif (support.deleteExpando == null) {\n\t\t// Support: IE<9\n\t\tsupport.deleteExpando = true;\n\t\ttry {\n\t\t\tdelete div.test;\n\t\t} catch( e ) {\n\t\t\tsupport.deleteExpando = false;\n\t\t}\n\t}\n})();\n\n\n(function() {\n\tvar i, eventName,\n\t\tdiv = document.createElement( \"div\" );\n\n\t// Support: IE<9 (lack submit/change bubble), Firefox 23+ (lack focusin event)\n\tfor ( i in { submit: true, change: true, focusin: true }) {\n\t\teventName = \"on\" + i;\n\n\t\tif ( !(support[ i + \"Bubbles\" ] = eventName in window) ) {\n\t\t\t// Beware of CSP restrictions (https://developer.mozilla.org/en/Security/CSP)\n\t\t\tdiv.setAttribute( eventName, \"t\" );\n\t\t\tsupport[ i + \"Bubbles\" ] = div.attributes[ eventName ].expando === false;\n\t\t}\n\t}\n\n\t// Null elements to avoid leaks in IE.\n\tdiv = null;\n})();\n\n\nvar rformElems = /^(?:input|select|textarea)$/i,\n\trkeyEvent = /^key/,\n\trmouseEvent = /^(?:mouse|pointer|contextmenu)|click/,\n\trfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\trtypenamespace = /^([^.]*)(?:\\.(.+)|)$/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\t\tvar tmp, events, t, handleObjIn,\n\t\t\tspecial, eventHandle, handleObj,\n\t\t\thandlers, type, namespaces, origType,\n\t\t\telemData = jQuery._data( elem );\n\n\t\t// Don't attach events to noData or text/comment nodes (but allow plain objects)\n\t\tif ( !elemData ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !(events = elemData.events) ) {\n\t\t\tevents = elemData.events = {};\n\t\t}\n\t\tif ( !(eventHandle = elemData.handle) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== strundefined && (!e || jQuery.event.triggered !== e.type) ?\n\t\t\t\t\tjQuery.event.dispatch.apply( eventHandle.elem, arguments ) :\n\t\t\t\t\tundefined;\n\t\t\t};\n\t\t\t// Add elem as a property of the handle fn to prevent a memory leak with IE non-native events\n\t\t\teventHandle.elem = elem;\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnotwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[t] ) || [];\n\t\t\ttype = origType = tmp[1];\n\t\t\tnamespaces = ( tmp[2] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend({\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join(\".\")\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !(handlers = events[ type ]) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener/attachEvent if the special events handler returns false\n\t\t\t\tif ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\t\t\t\t\t// Bind the global event handler to the element\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle, false );\n\n\t\t\t\t\t} else if ( elem.attachEvent ) {\n\t\t\t\t\t\telem.attachEvent( \"on\" + type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t\t// Nullify elem to prevent memory leaks in IE\n\t\telem = null;\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\t\tvar j, handleObj, tmp,\n\t\t\torigCount, t, events,\n\t\t\tspecial, handlers, type,\n\t\t\tnamespaces, origType,\n\t\t\telemData = jQuery.hasData( elem ) && jQuery._data( elem );\n\n\t\tif ( !elemData || !(events = elemData.events) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnotwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[t] ) || [];\n\t\t\ttype = origType = tmp[1];\n\t\t\tnamespaces = ( tmp[2] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[2] && new RegExp( \"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector || selector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdelete elemData.handle;\n\n\t\t\t// removeData also checks for emptiness and clears the expando if empty\n\t\t\t// so use it instead of delete\n\t\t\tjQuery._removeData( elem, \"events\" );\n\t\t}\n\t},\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\t\tvar handle, ontype, cur,\n\t\t\tbubbleType, special, tmp, i,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split(\".\") : [];\n\n\t\tcur = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf(\".\") >= 0 ) {\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split(\".\");\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf(\":\") < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join(\".\");\n\t\tevent.namespace_re = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (#9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === (elem.ownerDocument || document) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( (cur = eventPath[i++]) && !event.isPropagationStopped() ) {\n\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( jQuery._data( cur, \"events\" ) || {} )[ event.type ] && jQuery._data( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && jQuery.acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( (!special._default || special._default.apply( eventPath.pop(), data ) === false) &&\n\t\t\t\tjQuery.acceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name name as the event.\n\t\t\t\t// Can't use an .isFunction() check here because IE6/7 fails that test.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (#6170)\n\t\t\t\tif ( ontype && elem[ type ] && !jQuery.isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\t\t\t\t\ttry {\n\t\t\t\t\t\telem[ type ]();\n\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t// IE<9 dies on focus/blur to hidden element (#1486,#12518)\n\t\t\t\t\t\t// only reproducible on winXP IE8 native, not IE9 in IE8 mode\n\t\t\t\t\t}\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\tdispatch: function( event ) {\n\n\t\t// Make a writable jQuery.Event from the native event object\n\t\tevent = jQuery.event.fix( event );\n\n\t\tvar i, ret, handleObj, matched, j,\n\t\t\thandlerQueue = [],\n\t\t\targs = slice.call( arguments ),\n\t\t\thandlers = ( jQuery._data( this, \"events\" ) || {} )[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[0] = event;\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( (matched = handlerQueue[ i++ ]) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( (handleObj = matched.handlers[ j++ ]) && !event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// Triggered event must either 1) have no namespace, or\n\t\t\t\t// 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace).\n\t\t\t\tif ( !event.namespace_re || event.namespace_re.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler )\n\t\t\t\t\t\t\t.apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( (event.result = ret) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar sel, handleObj, matches, i,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\t// Black-hole SVG <use> instance trees (#13180)\n\t\t// Avoid non-left-click bubbling in Firefox (#3861)\n\t\tif ( delegateCount && cur.nodeType && (!event.button || event.type !== \"click\") ) {\n\n\t\t\t/* jshint eqeqeq: false */\n\t\t\tfor ( ; cur != this; cur = cur.parentNode || this ) {\n\t\t\t\t/* jshint eqeqeq: true */\n\n\t\t\t\t// Don't check non-elements (#13208)\n\t\t\t\t// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n\t\t\t\tif ( cur.nodeType === 1 && (cur.disabled !== true || event.type !== \"click\") ) {\n\t\t\t\t\tmatches = [];\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (#13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matches[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatches[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) >= 0 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matches[ sel ] ) {\n\t\t\t\t\t\t\tmatches.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matches.length ) {\n\t\t\t\t\t\thandlerQueue.push({ elem: cur, handlers: matches });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push({ elem: this, handlers: handlers.slice( delegateCount ) });\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\tfix: function( event ) {\n\t\tif ( event[ jQuery.expando ] ) {\n\t\t\treturn event;\n\t\t}\n\n\t\t// Create a writable copy of the event object and normalize some properties\n\t\tvar i, prop, copy,\n\t\t\ttype = event.type,\n\t\t\toriginalEvent = event,\n\t\t\tfixHook = this.fixHooks[ type ];\n\n\t\tif ( !fixHook ) {\n\t\t\tthis.fixHooks[ type ] = fixHook =\n\t\t\t\trmouseEvent.test( type ) ? this.mouseHooks :\n\t\t\t\trkeyEvent.test( type ) ? this.keyHooks :\n\t\t\t\t{};\n\t\t}\n\t\tcopy = fixHook.props ? this.props.concat( fixHook.props ) : this.props;\n\n\t\tevent = new jQuery.Event( originalEvent );\n\n\t\ti = copy.length;\n\t\twhile ( i-- ) {\n\t\t\tprop = copy[ i ];\n\t\t\tevent[ prop ] = originalEvent[ prop ];\n\t\t}\n\n\t\t// Support: IE<9\n\t\t// Fix target property (#1925)\n\t\tif ( !event.target ) {\n\t\t\tevent.target = originalEvent.srcElement || document;\n\t\t}\n\n\t\t// Support: Chrome 23+, Safari?\n\t\t// Target should not be a text node (#504, #13143)\n\t\tif ( event.target.nodeType === 3 ) {\n\t\t\tevent.target = event.target.parentNode;\n\t\t}\n\n\t\t// Support: IE<9\n\t\t// For mouse/key events, metaKey==false if it's undefined (#3368, #11328)\n\t\tevent.metaKey = !!event.metaKey;\n\n\t\treturn fixHook.filter ? fixHook.filter( event, originalEvent ) : event;\n\t},\n\n\t// Includes some event props shared by KeyEvent and MouseEvent\n\tprops: \"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which\".split(\" \"),\n\n\tfixHooks: {},\n\n\tkeyHooks: {\n\t\tprops: \"char charCode key keyCode\".split(\" \"),\n\t\tfilter: function( event, original ) {\n\n\t\t\t// Add which for key events\n\t\t\tif ( event.which == null ) {\n\t\t\t\tevent.which = original.charCode != null ? original.charCode : original.keyCode;\n\t\t\t}\n\n\t\t\treturn event;\n\t\t}\n\t},\n\n\tmouseHooks: {\n\t\tprops: \"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement\".split(\" \"),\n\t\tfilter: function( event, original ) {\n\t\t\tvar body, eventDoc, doc,\n\t\t\t\tbutton = original.button,\n\t\t\t\tfromElement = original.fromElement;\n\n\t\t\t// Calculate pageX/Y if missing and clientX/Y available\n\t\t\tif ( event.pageX == null && original.clientX != null ) {\n\t\t\t\teventDoc = event.target.ownerDocument || document;\n\t\t\t\tdoc = eventDoc.documentElement;\n\t\t\t\tbody = eventDoc.body;\n\n\t\t\t\tevent.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 );\n\t\t\t\tevent.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 );\n\t\t\t}\n\n\t\t\t// Add relatedTarget, if necessary\n\t\t\tif ( !event.relatedTarget && fromElement ) {\n\t\t\t\tevent.relatedTarget = fromElement === event.target ? original.toElement : fromElement;\n\t\t\t}\n\n\t\t\t// Add which for click: 1 === left; 2 === middle; 3 === right\n\t\t\t// Note: button is not normalized, so don't use it\n\t\t\tif ( !event.which && button !== undefined ) {\n\t\t\t\tevent.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) );\n\t\t\t}\n\n\t\t\treturn event;\n\t\t}\n\t},\n\n\tspecial: {\n\t\tload: {\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tfocus: {\n\t\t\t// Fire native event if possible so blur/focus sequence is correct\n\t\t\ttrigger: function() {\n\t\t\t\tif ( this !== safeActiveElement() && this.focus ) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tthis.focus();\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t// Support: IE<9\n\t\t\t\t\t\t// If we error on focus to hidden element (#1486, #12518),\n\t\t\t\t\t\t// let .trigger() run the handlers\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tdelegateType: \"focusin\"\n\t\t},\n\t\tblur: {\n\t\t\ttrigger: function() {\n\t\t\t\tif ( this === safeActiveElement() && this.blur ) {\n\t\t\t\t\tthis.blur();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdelegateType: \"focusout\"\n\t\t},\n\t\tclick: {\n\t\t\t// For checkbox, fire native event so checked state will be right\n\t\t\ttrigger: function() {\n\t\t\t\tif ( jQuery.nodeName( this, \"input\" ) && this.type === \"checkbox\" && this.click ) {\n\t\t\t\t\tthis.click();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, don't fire native .click() on links\n\t\t\t_default: function( event ) {\n\t\t\t\treturn jQuery.nodeName( event.target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tsimulate: function( type, elem, event, bubble ) {\n\t\t// Piggyback on a donor event to simulate a different one.\n\t\t// Fake originalEvent to avoid donor's stopPropagation, but if the\n\t\t// simulated event prevents default then we do the same on the donor.\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true,\n\t\t\t\toriginalEvent: {}\n\t\t\t}\n\t\t);\n\t\tif ( bubble ) {\n\t\t\tjQuery.event.trigger( e, null, elem );\n\t\t} else {\n\t\t\tjQuery.event.dispatch.call( elem, e );\n\t\t}\n\t\tif ( e.isDefaultPrevented() ) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t}\n};\n\njQuery.removeEvent = document.removeEventListener ?\n\tfunction( elem, type, handle ) {\n\t\tif ( elem.removeEventListener ) {\n\t\t\telem.removeEventListener( type, handle, false );\n\t\t}\n\t} :\n\tfunction( elem, type, handle ) {\n\t\tvar name = \"on\" + type;\n\n\t\tif ( elem.detachEvent ) {\n\n\t\t\t// #8545, #7054, preventing memory leaks for custom events in IE6-8\n\t\t\t// detachEvent needed property on element, by name of that event, to properly expose it to GC\n\t\t\tif ( typeof elem[ name ] === strundefined ) {\n\t\t\t\telem[ name ] = null;\n\t\t\t}\n\n\t\t\telem.detachEvent( name, handle );\n\t\t}\n\t};\n\njQuery.Event = function( src, props ) {\n\t// Allow instantiation without the 'new' keyword\n\tif ( !(this instanceof jQuery.Event) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\t\t\t\t// Support: IE < 9, Android < 4.0\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || jQuery.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\t\tif ( !e ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If preventDefault exists, run it on the original event\n\t\tif ( e.preventDefault ) {\n\t\t\te.preventDefault();\n\n\t\t// Support: IE\n\t\t// Otherwise set the returnValue property of the original event to false\n\t\t} else {\n\t\t\te.returnValue = false;\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\t\tif ( !e ) {\n\t\t\treturn;\n\t\t}\n\t\t// If stopPropagation exists, run it on the original event\n\t\tif ( e.stopPropagation ) {\n\t\t\te.stopPropagation();\n\t\t}\n\n\t\t// Support: IE\n\t\t// Set the cancelBubble property of the original event to true\n\t\te.cancelBubble = true;\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && e.stopImmediatePropagation ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\njQuery.each({\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mousenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || (related !== target && !jQuery.contains( target, related )) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n});\n\n// IE submit delegation\nif ( !support.submitBubbles ) {\n\n\tjQuery.event.special.submit = {\n\t\tsetup: function() {\n\t\t\t// Only need this for delegated form submit events\n\t\t\tif ( jQuery.nodeName( this, \"form\" ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Lazy-add a submit handler when a descendant form may potentially be submitted\n\t\t\tjQuery.event.add( this, \"click._submit keypress._submit\", function( e ) {\n\t\t\t\t// Node name check avoids a VML-related crash in IE (#9807)\n\t\t\t\tvar elem = e.target,\n\t\t\t\t\tform = jQuery.nodeName( elem, \"input\" ) || jQuery.nodeName( elem, \"button\" ) ? elem.form : undefined;\n\t\t\t\tif ( form && !jQuery._data( form, \"submitBubbles\" ) ) {\n\t\t\t\t\tjQuery.event.add( form, \"submit._submit\", function( event ) {\n\t\t\t\t\t\tevent._submit_bubble = true;\n\t\t\t\t\t});\n\t\t\t\t\tjQuery._data( form, \"submitBubbles\", true );\n\t\t\t\t}\n\t\t\t});\n\t\t\t// return undefined since we don't need an event listener\n\t\t},\n\n\t\tpostDispatch: function( event ) {\n\t\t\t// If form was submitted by the user, bubble the event up the tree\n\t\t\tif ( event._submit_bubble ) {\n\t\t\t\tdelete event._submit_bubble;\n\t\t\t\tif ( this.parentNode && !event.isTrigger ) {\n\t\t\t\t\tjQuery.event.simulate( \"submit\", this.parentNode, event, true );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tteardown: function() {\n\t\t\t// Only need this for delegated form submit events\n\t\t\tif ( jQuery.nodeName( this, \"form\" ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Remove delegated handlers; cleanData eventually reaps submit handlers attached above\n\t\t\tjQuery.event.remove( this, \"._submit\" );\n\t\t}\n\t};\n}\n\n// IE change delegation and checkbox/radio fix\nif ( !support.changeBubbles ) {\n\n\tjQuery.event.special.change = {\n\n\t\tsetup: function() {\n\n\t\t\tif ( rformElems.test( this.nodeName ) ) {\n\t\t\t\t// IE doesn't fire change on a check/radio until blur; trigger it on click\n\t\t\t\t// after a propertychange. Eat the blur-change in special.change.handle.\n\t\t\t\t// This still fires onchange a second time for check/radio after blur.\n\t\t\t\tif ( this.type === \"checkbox\" || this.type === \"radio\" ) {\n\t\t\t\t\tjQuery.event.add( this, \"propertychange._change\", function( event ) {\n\t\t\t\t\t\tif ( event.originalEvent.propertyName === \"checked\" ) {\n\t\t\t\t\t\t\tthis._just_changed = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tjQuery.event.add( this, \"click._change\", function( event ) {\n\t\t\t\t\t\tif ( this._just_changed && !event.isTrigger ) {\n\t\t\t\t\t\t\tthis._just_changed = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Allow triggered, simulated change events (#11500)\n\t\t\t\t\t\tjQuery.event.simulate( \"change\", this, event, true );\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\t// Delegated event; lazy-add a change handler on descendant inputs\n\t\t\tjQuery.event.add( this, \"beforeactivate._change\", function( e ) {\n\t\t\t\tvar elem = e.target;\n\n\t\t\t\tif ( rformElems.test( elem.nodeName ) && !jQuery._data( elem, \"changeBubbles\" ) ) {\n\t\t\t\t\tjQuery.event.add( elem, \"change._change\", function( event ) {\n\t\t\t\t\t\tif ( this.parentNode && !event.isSimulated && !event.isTrigger ) {\n\t\t\t\t\t\t\tjQuery.event.simulate( \"change\", this.parentNode, event, true );\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tjQuery._data( elem, \"changeBubbles\", true );\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\thandle: function( event ) {\n\t\t\tvar elem = event.target;\n\n\t\t\t// Swallow native change events from checkbox/radio, we already triggered them above\n\t\t\tif ( this !== elem || event.isSimulated || event.isTrigger || (elem.type !== \"radio\" && elem.type !== \"checkbox\") ) {\n\t\t\t\treturn event.handleObj.handler.apply( this, arguments );\n\t\t\t}\n\t\t},\n\n\t\tteardown: function() {\n\t\t\tjQuery.event.remove( this, \"._change\" );\n\n\t\t\treturn !rformElems.test( this.nodeName );\n\t\t}\n\t};\n}\n\n// Create \"bubbling\" focus and blur events\nif ( !support.focusinBubbles ) {\n\tjQuery.each({ focus: \"focusin\", blur: \"focusout\" }, function( orig, fix ) {\n\n\t\t// Attach a single capturing handler on the document while someone wants focusin/focusout\n\t\tvar handler = function( event ) {\n\t\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true );\n\t\t\t};\n\n\t\tjQuery.event.special[ fix ] = {\n\t\t\tsetup: function() {\n\t\t\t\tvar doc = this.ownerDocument || this,\n\t\t\t\t\tattaches = jQuery._data( doc, fix );\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.addEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t\tjQuery._data( doc, fix, ( attaches || 0 ) + 1 );\n\t\t\t},\n\t\t\tteardown: function() {\n\t\t\t\tvar doc = this.ownerDocument || this,\n\t\t\t\t\tattaches = jQuery._data( doc, fix ) - 1;\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.removeEventListener( orig, handler, true );\n\t\t\t\t\tjQuery._removeData( doc, fix );\n\t\t\t\t} else {\n\t\t\t\t\tjQuery._data( doc, fix, attaches );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t});\n}\n\njQuery.fn.extend({\n\n\ton: function( types, selector, data, fn, /*INTERNAL*/ one ) {\n\t\tvar type, origFn;\n\n\t\t// Types can be a map of types/handlers\n\t\tif ( typeof types === \"object\" ) {\n\t\t\t// ( types-Object, selector, data )\n\t\t\tif ( typeof selector !== \"string\" ) {\n\t\t\t\t// ( types-Object, data )\n\t\t\t\tdata = data || selector;\n\t\t\t\tselector = undefined;\n\t\t\t}\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.on( type, selector, data, types[ type ], one );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\n\t\tif ( data == null && fn == null ) {\n\t\t\t// ( types, fn )\n\t\t\tfn = selector;\n\t\t\tdata = selector = undefined;\n\t\t} else if ( fn == null ) {\n\t\t\tif ( typeof selector === \"string\" ) {\n\t\t\t\t// ( types, selector, fn )\n\t\t\t\tfn = data;\n\t\t\t\tdata = undefined;\n\t\t\t} else {\n\t\t\t\t// ( types, data, fn )\n\t\t\t\tfn = data;\n\t\t\t\tdata = selector;\n\t\t\t\tselector = undefined;\n\t\t\t}\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t} else if ( !fn ) {\n\t\t\treturn this;\n\t\t}\n\n\t\tif ( one === 1 ) {\n\t\t\torigFn = fn;\n\t\t\tfn = function( event ) {\n\t\t\t\t// Can use an empty set, since event contains the info\n\t\t\t\tjQuery().off( event );\n\t\t\t\treturn origFn.apply( this, arguments );\n\t\t\t};\n\t\t\t// Use same guid so caller can remove using origFn\n\t\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.add( this, types, fn, data, selector );\n\t\t});\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn this.on( types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\t\t\t// ( event ) dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ? handleObj.origType + \".\" + handleObj.namespace : handleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each(function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t});\n\t},\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each(function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t});\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[0];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n});\n\n\nfunction createSafeFragment( document ) {\n\tvar list = nodeNames.split( \"|\" ),\n\t\tsafeFrag = document.createDocumentFragment();\n\n\tif ( safeFrag.createElement ) {\n\t\twhile ( list.length ) {\n\t\t\tsafeFrag.createElement(\n\t\t\t\tlist.pop()\n\t\t\t);\n\t\t}\n\t}\n\treturn safeFrag;\n}\n\nvar nodeNames = \"abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|\" +\n\t\t\"header|hgroup|mark|meter|nav|output|progress|section|summary|time|video\",\n\trinlinejQuery = / jQuery\\d+=\"(?:null|\\d+)\"/g,\n\trnoshimcache = new RegExp(\"<(?:\" + nodeNames + \")[\\\\s/>]\", \"i\"),\n\trleadingWhitespace = /^\\s+/,\n\trxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\\w:]+)[^>]*)\\/>/gi,\n\trtagName = /<([\\w:]+)/,\n\trtbody = /<tbody/i,\n\trhtml = /<|&#?\\w+;/,\n\trnoInnerhtml = /<(?:script|style|link)/i,\n\t// checked=\"checked\" or checked\n\trchecked = /checked\\s*(?:[^=]|=\\s*.checked.)/i,\n\trscriptType = /^$|\\/(?:java|ecma)script/i,\n\trscriptTypeMasked = /^true\\/(.*)/,\n\trcleanScript = /^\\s*<!(?:\\[CDATA\\[|--)|(?:\\]\\]|--)>\\s*$/g,\n\n\t// We have to close these tags to support XHTML (#13200)\n\twrapMap = {\n\t\toption: [ 1, \"<select multiple='multiple'>\", \"</select>\" ],\n\t\tlegend: [ 1, \"<fieldset>\", \"</fieldset>\" ],\n\t\tarea: [ 1, \"<map>\", \"</map>\" ],\n\t\tparam: [ 1, \"<object>\", \"</object>\" ],\n\t\tthead: [ 1, \"<table>\", \"</table>\" ],\n\t\ttr: [ 2, \"<table><tbody>\", \"</tbody></table>\" ],\n\t\tcol: [ 2, \"<table><tbody></tbody><colgroup>\", \"</colgroup></table>\" ],\n\t\ttd: [ 3, \"<table><tbody><tr>\", \"</tr></tbody></table>\" ],\n\n\t\t// IE6-8 can't serialize link, script, style, or any html5 (NoScope) tags,\n\t\t// unless wrapped in a div with non-breaking characters in front of it.\n\t\t_default: support.htmlSerialize ? [ 0, \"\", \"\" ] : [ 1, \"X<div>\", \"</div>\" ]\n\t},\n\tsafeFragment = createSafeFragment( document ),\n\tfragmentDiv = safeFragment.appendChild( document.createElement(\"div\") );\n\nwrapMap.optgroup = wrapMap.option;\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\nfunction getAll( context, tag ) {\n\tvar elems, elem,\n\t\ti = 0,\n\t\tfound = typeof context.getElementsByTagName !== strundefined ? context.getElementsByTagName( tag || \"*\" ) :\n\t\t\ttypeof context.querySelectorAll !== strundefined ? context.querySelectorAll( tag || \"*\" ) :\n\t\t\tundefined;\n\n\tif ( !found ) {\n\t\tfor ( found = [], elems = context.childNodes || context; (elem = elems[i]) != null; i++ ) {\n\t\t\tif ( !tag || jQuery.nodeName( elem, tag ) ) {\n\t\t\t\tfound.push( elem );\n\t\t\t} else {\n\t\t\t\tjQuery.merge( found, getAll( elem, tag ) );\n\t\t\t}\n\t\t}\n\t}\n\n\treturn tag === undefined || tag && jQuery.nodeName( context, tag ) ?\n\t\tjQuery.merge( [ context ], found ) :\n\t\tfound;\n}\n\n// Used in buildFragment, fixes the defaultChecked property\nfunction fixDefaultChecked( elem ) {\n\tif ( rcheckableType.test( elem.type ) ) {\n\t\telem.defaultChecked = elem.checked;\n\t}\n}\n\n// Support: IE<8\n// Manipulating tables requires a tbody\nfunction manipulationTarget( elem, content ) {\n\treturn jQuery.nodeName( elem, \"table\" ) &&\n\t\tjQuery.nodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ?\n\n\t\telem.getElementsByTagName(\"tbody\")[0] ||\n\t\t\telem.appendChild( elem.ownerDocument.createElement(\"tbody\") ) :\n\t\telem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = (jQuery.find.attr( elem, \"type\" ) !== null) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tvar match = rscriptTypeMasked.exec( elem.type );\n\tif ( match ) {\n\t\telem.type = match[1];\n\t} else {\n\t\telem.removeAttribute(\"type\");\n\t}\n\treturn elem;\n}\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar elem,\n\t\ti = 0;\n\tfor ( ; (elem = elems[i]) != null; i++ ) {\n\t\tjQuery._data( elem, \"globalEval\", !refElements || jQuery._data( refElements[i], \"globalEval\" ) );\n\t}\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\n\tif ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) {\n\t\treturn;\n\t}\n\n\tvar type, i, l,\n\t\toldData = jQuery._data( src ),\n\t\tcurData = jQuery._data( dest, oldData ),\n\t\tevents = oldData.events;\n\n\tif ( events ) {\n\t\tdelete curData.handle;\n\t\tcurData.events = {};\n\n\t\tfor ( type in events ) {\n\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t}\n\t\t}\n\t}\n\n\t// make the cloned public data object a copy from the original\n\tif ( curData.data ) {\n\t\tcurData.data = jQuery.extend( {}, curData.data );\n\t}\n}\n\nfunction fixCloneNodeIssues( src, dest ) {\n\tvar nodeName, e, data;\n\n\t// We do not need to do anything for non-Elements\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\tnodeName = dest.nodeName.toLowerCase();\n\n\t// IE6-8 copies events bound via attachEvent when using cloneNode.\n\tif ( !support.noCloneEvent && dest[ jQuery.expando ] ) {\n\t\tdata = jQuery._data( dest );\n\n\t\tfor ( e in data.events ) {\n\t\t\tjQuery.removeEvent( dest, e, data.handle );\n\t\t}\n\n\t\t// Event data gets referenced instead of copied if the expando gets copied too\n\t\tdest.removeAttribute( jQuery.expando );\n\t}\n\n\t// IE blanks contents when cloning scripts, and tries to evaluate newly-set text\n\tif ( nodeName === \"script\" && dest.text !== src.text ) {\n\t\tdisableScript( dest ).text = src.text;\n\t\trestoreScript( dest );\n\n\t// IE6-10 improperly clones children of object elements using classid.\n\t// IE10 throws NoModificationAllowedError if parent is null, #12132.\n\t} else if ( nodeName === \"object\" ) {\n\t\tif ( dest.parentNode ) {\n\t\t\tdest.outerHTML = src.outerHTML;\n\t\t}\n\n\t\t// This path appears unavoidable for IE9. When cloning an object\n\t\t// element in IE9, the outerHTML strategy above is not sufficient.\n\t\t// If the src has innerHTML and the destination does not,\n\t\t// copy the src.innerHTML into the dest.innerHTML. #10324\n\t\tif ( support.html5Clone && ( src.innerHTML && !jQuery.trim(dest.innerHTML) ) ) {\n\t\t\tdest.innerHTML = src.innerHTML;\n\t\t}\n\n\t} else if ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\t// IE6-8 fails to persist the checked state of a cloned checkbox\n\t\t// or radio button. Worse, IE6-7 fail to give the cloned element\n\t\t// a checked appearance if the defaultChecked value isn't also set\n\n\t\tdest.defaultChecked = dest.checked = src.checked;\n\n\t\t// IE6-7 get confused and end up setting the value of a cloned\n\t\t// checkbox/radio button to an empty string instead of \"on\"\n\t\tif ( dest.value !== src.value ) {\n\t\t\tdest.value = src.value;\n\t\t}\n\n\t// IE6-8 fails to return the selected option to the default selected\n\t// state when cloning options\n\t} else if ( nodeName === \"option\" ) {\n\t\tdest.defaultSelected = dest.selected = src.defaultSelected;\n\n\t// IE6-8 fails to set the defaultValue to the correct value when\n\t// cloning other types of input fields\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\njQuery.extend({\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar destElements, node, clone, i, srcElements,\n\t\t\tinPage = jQuery.contains( elem.ownerDocument, elem );\n\n\t\tif ( support.html5Clone || jQuery.isXMLDoc(elem) || !rnoshimcache.test( \"<\" + elem.nodeName + \">\" ) ) {\n\t\t\tclone = elem.cloneNode( true );\n\n\t\t// IE<=8 does not properly clone detached, unknown element nodes\n\t\t} else {\n\t\t\tfragmentDiv.innerHTML = elem.outerHTML;\n\t\t\tfragmentDiv.removeChild( clone = fragmentDiv.firstChild );\n\t\t}\n\n\t\tif ( (!support.noCloneEvent || !support.noCloneChecked) &&\n\t\t\t\t(elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) {\n\n\t\t\t// We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\t// Fix all IE cloning issues\n\t\t\tfor ( i = 0; (node = srcElements[i]) != null; ++i ) {\n\t\t\t\t// Ensure that the destination node is not null; Fixes #9587\n\t\t\t\tif ( destElements[i] ) {\n\t\t\t\t\tfixCloneNodeIssues( node, destElements[i] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0; (node = srcElements[i]) != null; i++ ) {\n\t\t\t\t\tcloneCopyEvent( node, destElements[i] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\tdestElements = srcElements = node = null;\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tbuildFragment: function( elems, context, scripts, selection ) {\n\t\tvar j, elem, contains,\n\t\t\ttmp, tag, tbody, wrap,\n\t\t\tl = elems.length,\n\n\t\t\t// Ensure a safe fragment\n\t\t\tsafe = createSafeFragment( context ),\n\n\t\t\tnodes = [],\n\t\t\ti = 0;\n\n\t\tfor ( ; i < l; i++ ) {\n\t\t\telem = elems[ i ];\n\n\t\t\tif ( elem || elem === 0 ) {\n\n\t\t\t\t// Add nodes directly\n\t\t\t\tif ( jQuery.type( elem ) === \"object\" ) {\n\t\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t\t// Convert non-html into a text node\n\t\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t\t// Convert html into DOM nodes\n\t\t\t\t} else {\n\t\t\t\t\ttmp = tmp || safe.appendChild( context.createElement(\"div\") );\n\n\t\t\t\t\t// Deserialize a standard representation\n\t\t\t\t\ttag = (rtagName.exec( elem ) || [ \"\", \"\" ])[ 1 ].toLowerCase();\n\t\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\n\t\t\t\t\ttmp.innerHTML = wrap[1] + elem.replace( rxhtmlTag, \"<$1></$2>\" ) + wrap[2];\n\n\t\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\t\tj = wrap[0];\n\t\t\t\t\twhile ( j-- ) {\n\t\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Manually add leading whitespace removed by IE\n\t\t\t\t\tif ( !support.leadingWhitespace && rleadingWhitespace.test( elem ) ) {\n\t\t\t\t\t\tnodes.push( context.createTextNode( rleadingWhitespace.exec( elem )[0] ) );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Remove IE's autoinserted <tbody> from table fragments\n\t\t\t\t\tif ( !support.tbody ) {\n\n\t\t\t\t\t\t// String was a <table>, *may* have spurious <tbody>\n\t\t\t\t\t\telem = tag === \"table\" && !rtbody.test( elem ) ?\n\t\t\t\t\t\t\ttmp.firstChild :\n\n\t\t\t\t\t\t\t// String was a bare <thead> or <tfoot>\n\t\t\t\t\t\t\twrap[1] === \"<table>\" && !rtbody.test( elem ) ?\n\t\t\t\t\t\t\t\ttmp :\n\t\t\t\t\t\t\t\t0;\n\n\t\t\t\t\t\tj = elem && elem.childNodes.length;\n\t\t\t\t\t\twhile ( j-- ) {\n\t\t\t\t\t\t\tif ( jQuery.nodeName( (tbody = elem.childNodes[j]), \"tbody\" ) && !tbody.childNodes.length ) {\n\t\t\t\t\t\t\t\telem.removeChild( tbody );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t\t// Fix #12392 for WebKit and IE > 9\n\t\t\t\t\ttmp.textContent = \"\";\n\n\t\t\t\t\t// Fix #12392 for oldIE\n\t\t\t\t\twhile ( tmp.firstChild ) {\n\t\t\t\t\t\ttmp.removeChild( tmp.firstChild );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Remember the top-level container for proper cleanup\n\t\t\t\t\ttmp = safe.lastChild;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Fix #11356: Clear elements from fragment\n\t\tif ( tmp ) {\n\t\t\tsafe.removeChild( tmp );\n\t\t}\n\n\t\t// Reset defaultChecked for any radios and checkboxes\n\t\t// about to be appended to the DOM in IE 6/7 (#8060)\n\t\tif ( !support.appendChecked ) {\n\t\t\tjQuery.grep( getAll( nodes, \"input\" ), fixDefaultChecked );\n\t\t}\n\n\t\ti = 0;\n\t\twhile ( (elem = nodes[ i++ ]) ) {\n\n\t\t\t// #4087 - If origin and destination elements are the same, and this is\n\t\t\t// that element, do not do anything\n\t\t\tif ( selection && jQuery.inArray( elem, selection ) !== -1 ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tcontains = jQuery.contains( elem.ownerDocument, elem );\n\n\t\t\t// Append to fragment\n\t\t\ttmp = getAll( safe.appendChild( elem ), \"script\" );\n\n\t\t\t// Preserve script evaluation history\n\t\t\tif ( contains ) {\n\t\t\t\tsetGlobalEval( tmp );\n\t\t\t}\n\n\t\t\t// Capture executables\n\t\t\tif ( scripts ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( (elem = tmp[ j++ ]) ) {\n\t\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\t\tscripts.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\ttmp = null;\n\n\t\treturn safe;\n\t},\n\n\tcleanData: function( elems, /* internal */ acceptData ) {\n\t\tvar elem, type, id, data,\n\t\t\ti = 0,\n\t\t\tinternalKey = jQuery.expando,\n\t\t\tcache = jQuery.cache,\n\t\t\tdeleteExpando = support.deleteExpando,\n\t\t\tspecial = jQuery.event.special;\n\n\t\tfor ( ; (elem = elems[i]) != null; i++ ) {\n\t\t\tif ( acceptData || jQuery.acceptData( elem ) ) {\n\n\t\t\t\tid = elem[ internalKey ];\n\t\t\t\tdata = id && cache[ id ];\n\n\t\t\t\tif ( data ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Remove cache only if it was not already removed by jQuery.event.remove\n\t\t\t\t\tif ( cache[ id ] ) {\n\n\t\t\t\t\t\tdelete cache[ id ];\n\n\t\t\t\t\t\t// IE does not allow us to delete expando properties from nodes,\n\t\t\t\t\t\t// nor does it have a removeAttribute function on Document nodes;\n\t\t\t\t\t\t// we must handle all of these cases\n\t\t\t\t\t\tif ( deleteExpando ) {\n\t\t\t\t\t\t\tdelete elem[ internalKey ];\n\n\t\t\t\t\t\t} else if ( typeof elem.removeAttribute !== strundefined ) {\n\t\t\t\t\t\t\telem.removeAttribute( internalKey );\n\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\telem[ internalKey ] = null;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tdeletedIds.push( id );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n});\n\njQuery.fn.extend({\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().append( ( this[0] && this[0].ownerDocument || document ).createTextNode( value ) );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn this.domManip( arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t});\n\t},\n\n\tprepend: function() {\n\t\treturn this.domManip( arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t});\n\t},\n\n\tbefore: function() {\n\t\treturn this.domManip( arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t});\n\t},\n\n\tafter: function() {\n\t\treturn this.domManip( arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t});\n\t},\n\n\tremove: function( selector, keepData /* Internal Use Only */ ) {\n\t\tvar elem,\n\t\t\telems = selector ? jQuery.filter( selector, this ) : this,\n\t\t\ti = 0;\n\n\t\tfor ( ; (elem = elems[i]) != null; i++ ) {\n\n\t\t\tif ( !keepData && elem.nodeType === 1 ) {\n\t\t\t\tjQuery.cleanData( getAll( elem ) );\n\t\t\t}\n\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\tif ( keepData && jQuery.contains( elem.ownerDocument, elem ) ) {\n\t\t\t\t\tsetGlobalEval( getAll( elem, \"script\" ) );\n\t\t\t\t}\n\t\t\t\telem.parentNode.removeChild( elem );\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; (elem = this[i]) != null; i++ ) {\n\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t}\n\n\t\t\t// Remove any remaining nodes\n\t\t\twhile ( elem.firstChild ) {\n\t\t\t\telem.removeChild( elem.firstChild );\n\t\t\t}\n\n\t\t\t// If this is a select, ensure that it displays empty (#12336)\n\t\t\t// Support: IE<9\n\t\t\tif ( elem.options && jQuery.nodeName( elem, \"select\" ) ) {\n\t\t\t\telem.options.length = 0;\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map(function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t});\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined ) {\n\t\t\t\treturn elem.nodeType === 1 ?\n\t\t\t\t\telem.innerHTML.replace( rinlinejQuery, \"\" ) :\n\t\t\t\t\tundefined;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t( support.htmlSerialize || !rnoshimcache.test( value ) ) &&\n\t\t\t\t( support.leadingWhitespace || !rleadingWhitespace.test( value ) ) &&\n\t\t\t\t!wrapMap[ (rtagName.exec( value ) || [ \"\", \"\" ])[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = value.replace( rxhtmlTag, \"<$1></$2>\" );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor (; i < l; i++ ) {\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\telem = this[i] || {};\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch(e) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar arg = arguments[ 0 ];\n\n\t\t// Make the changes, replacing each context element with the new content\n\t\tthis.domManip( arguments, function( elem ) {\n\t\t\targ = this.parentNode;\n\n\t\t\tjQuery.cleanData( getAll( this ) );\n\n\t\t\tif ( arg ) {\n\t\t\t\targ.replaceChild( elem, this );\n\t\t\t}\n\t\t});\n\n\t\t// Force removal if there was no new content (e.g., from empty arguments)\n\t\treturn arg && (arg.length || arg.nodeType) ? this : this.remove();\n\t},\n\n\tdetach: function( selector ) {\n\t\treturn this.remove( selector, true );\n\t},\n\n\tdomManip: function( args, callback ) {\n\n\t\t// Flatten any nested arrays\n\t\targs = concat.apply( [], args );\n\n\t\tvar first, node, hasScripts,\n\t\t\tscripts, doc, fragment,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tset = this,\n\t\t\tiNoClone = l - 1,\n\t\t\tvalue = args[0],\n\t\t\tisFunction = jQuery.isFunction( value );\n\n\t\t// We can't cloneNode fragments that contain checked, in WebKit\n\t\tif ( isFunction ||\n\t\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\t\treturn this.each(function( index ) {\n\t\t\t\tvar self = set.eq( index );\n\t\t\t\tif ( isFunction ) {\n\t\t\t\t\targs[0] = value.call( this, index, self.html() );\n\t\t\t\t}\n\t\t\t\tself.domManip( args, callback );\n\t\t\t});\n\t\t}\n\n\t\tif ( l ) {\n\t\t\tfragment = jQuery.buildFragment( args, this[ 0 ].ownerDocument, false, this );\n\t\t\tfirst = fragment.firstChild;\n\n\t\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\t\tfragment = first;\n\t\t\t}\n\n\t\t\tif ( first ) {\n\t\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\t\thasScripts = scripts.length;\n\n\t\t\t\t// Use the original fragment for the last item instead of the first because it can end up\n\t\t\t\t// being emptied incorrectly in certain situations (#8070).\n\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\tnode = fragment;\n\n\t\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\t\tif ( hasScripts ) {\n\t\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tcallback.call( this[i], node, i );\n\t\t\t\t}\n\n\t\t\t\tif ( hasScripts ) {\n\t\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t\t// Reenable scripts\n\t\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t\t!jQuery._data( node, \"globalEval\" ) && jQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\t\tif ( node.src ) {\n\t\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\t\tif ( jQuery._evalUrl ) {\n\t\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.globalEval( ( node.text || node.textContent || node.innerHTML || \"\" ).replace( rcleanScript, \"\" ) );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Fix #11809: Avoid leaking memory\n\t\t\t\tfragment = first = null;\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t}\n});\n\njQuery.each({\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\ti = 0,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone(true);\n\t\t\tjQuery( insert[i] )[ original ]( elems );\n\n\t\t\t// Modern browsers can apply jQuery collections as arrays, but oldIE needs a .get()\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n});\n\n\nvar iframe,\n\telemdisplay = {};\n\n/**\n * Retrieve the actual display of a element\n * @param {String} name nodeName of the element\n * @param {Object} doc Document object\n */\n// Called only from within defaultDisplay\nfunction actualDisplay( name, doc ) {\n\tvar style,\n\t\telem = jQuery( doc.createElement( name ) ).appendTo( doc.body ),\n\n\t\t// getDefaultComputedStyle might be reliably used only on attached element\n\t\tdisplay = window.getDefaultComputedStyle && ( style = window.getDefaultComputedStyle( elem[ 0 ] ) ) ?\n\n\t\t\t// Use of this method is a temporary fix (more like optmization) until something better comes along,\n\t\t\t// since it was removed from specification and supported only in FF\n\t\t\tstyle.display : jQuery.css( elem[ 0 ], \"display\" );\n\n\t// We don't have any data stored on the element,\n\t// so use \"detach\" method as fast way to get rid of the element\n\telem.detach();\n\n\treturn display;\n}\n\n/**\n * Try to determine the default display value of an element\n * @param {String} nodeName\n */\nfunction defaultDisplay( nodeName ) {\n\tvar doc = document,\n\t\tdisplay = elemdisplay[ nodeName ];\n\n\tif ( !display ) {\n\t\tdisplay = actualDisplay( nodeName, doc );\n\n\t\t// If the simple way fails, read from inside an iframe\n\t\tif ( display === \"none\" || !display ) {\n\n\t\t\t// Use the already-created iframe if possible\n\t\t\tiframe = (iframe || jQuery( \"<iframe frameborder='0' width='0' height='0'/>\" )).appendTo( doc.documentElement );\n\n\t\t\t// Always write a new HTML skeleton so Webkit and Firefox don't choke on reuse\n\t\t\tdoc = ( iframe[ 0 ].contentWindow || iframe[ 0 ].contentDocument ).document;\n\n\t\t\t// Support: IE\n\t\t\tdoc.write();\n\t\t\tdoc.close();\n\n\t\t\tdisplay = actualDisplay( nodeName, doc );\n\t\t\tiframe.detach();\n\t\t}\n\n\t\t// Store the correct default display\n\t\telemdisplay[ nodeName ] = display;\n\t}\n\n\treturn display;\n}\n\n\n(function() {\n\tvar shrinkWrapBlocksVal;\n\n\tsupport.shrinkWrapBlocks = function() {\n\t\tif ( shrinkWrapBlocksVal != null ) {\n\t\t\treturn shrinkWrapBlocksVal;\n\t\t}\n\n\t\t// Will be changed later if needed.\n\t\tshrinkWrapBlocksVal = false;\n\n\t\t// Minified: var b,c,d\n\t\tvar div, body, container;\n\n\t\tbody = document.getElementsByTagName( \"body\" )[ 0 ];\n\t\tif ( !body || !body.style ) {\n\t\t\t// Test fired too early or in an unsupported environment, exit.\n\t\t\treturn;\n\t\t}\n\n\t\t// Setup\n\t\tdiv = document.createElement( \"div\" );\n\t\tcontainer = document.createElement( \"div\" );\n\t\tcontainer.style.cssText = \"position:absolute;border:0;width:0;height:0;top:0;left:-9999px\";\n\t\tbody.appendChild( container ).appendChild( div );\n\n\t\t// Support: IE6\n\t\t// Check if elements with layout shrink-wrap their children\n\t\tif ( typeof div.style.zoom !== strundefined ) {\n\t\t\t// Reset CSS: box-sizing; display; margin; border\n\t\t\tdiv.style.cssText =\n\t\t\t\t// Support: Firefox<29, Android 2.3\n\t\t\t\t// Vendor-prefix box-sizing\n\t\t\t\t\"-webkit-box-sizing:content-box;-moz-box-sizing:content-box;\" +\n\t\t\t\t\"box-sizing:content-box;display:block;margin:0;border:0;\" +\n\t\t\t\t\"padding:1px;width:1px;zoom:1\";\n\t\t\tdiv.appendChild( document.createElement( \"div\" ) ).style.width = \"5px\";\n\t\t\tshrinkWrapBlocksVal = div.offsetWidth !== 3;\n\t\t}\n\n\t\tbody.removeChild( container );\n\n\t\treturn shrinkWrapBlocksVal;\n\t};\n\n})();\nvar rmargin = (/^margin/);\n\nvar rnumnonpx = new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\n\n\n\nvar getStyles, curCSS,\n\trposition = /^(top|right|bottom|left)$/;\n\nif ( window.getComputedStyle ) {\n\tgetStyles = function( elem ) {\n\t\t// Support: IE<=11+, Firefox<=30+ (#15098, #14150)\n\t\t// IE throws on elements created in popups\n\t\t// FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n\t\tif ( elem.ownerDocument.defaultView.opener ) {\n\t\t\treturn elem.ownerDocument.defaultView.getComputedStyle( elem, null );\n\t\t}\n\n\t\treturn window.getComputedStyle( elem, null );\n\t};\n\n\tcurCSS = function( elem, name, computed ) {\n\t\tvar width, minWidth, maxWidth, ret,\n\t\t\tstyle = elem.style;\n\n\t\tcomputed = computed || getStyles( elem );\n\n\t\t// getPropertyValue is only needed for .css('filter') in IE9, see #12537\n\t\tret = computed ? computed.getPropertyValue( name ) || computed[ name ] : undefined;\n\n\t\tif ( computed ) {\n\n\t\t\tif ( ret === \"\" && !jQuery.contains( elem.ownerDocument, elem ) ) {\n\t\t\t\tret = jQuery.style( elem, name );\n\t\t\t}\n\n\t\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\t\t\t// Chrome < 17 and Safari 5.0 uses \"computed value\" instead of \"used value\" for margin-right\n\t\t\t// Safari 5.1.7 (at least) returns percentage for a larger set of values, but width seems to be reliably pixels\n\t\t\t// this is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values\n\t\t\tif ( rnumnonpx.test( ret ) && rmargin.test( name ) ) {\n\n\t\t\t\t// Remember the original values\n\t\t\t\twidth = style.width;\n\t\t\t\tminWidth = style.minWidth;\n\t\t\t\tmaxWidth = style.maxWidth;\n\n\t\t\t\t// Put in the new values to get a computed value out\n\t\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\t\t\t\tret = computed.width;\n\n\t\t\t\t// Revert the changed values\n\t\t\t\tstyle.width = width;\n\t\t\t\tstyle.minWidth = minWidth;\n\t\t\t\tstyle.maxWidth = maxWidth;\n\t\t\t}\n\t\t}\n\n\t\t// Support: IE\n\t\t// IE returns zIndex value as an integer.\n\t\treturn ret === undefined ?\n\t\t\tret :\n\t\t\tret + \"\";\n\t};\n} else if ( document.documentElement.currentStyle ) {\n\tgetStyles = function( elem ) {\n\t\treturn elem.currentStyle;\n\t};\n\n\tcurCSS = function( elem, name, computed ) {\n\t\tvar left, rs, rsLeft, ret,\n\t\t\tstyle = elem.style;\n\n\t\tcomputed = computed || getStyles( elem );\n\t\tret = computed ? computed[ name ] : undefined;\n\n\t\t// Avoid setting ret to empty string here\n\t\t// so we don't default to auto\n\t\tif ( ret == null && style && style[ name ] ) {\n\t\t\tret = style[ name ];\n\t\t}\n\n\t\t// From the awesome hack by Dean Edwards\n\t\t// http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291\n\n\t\t// If we're not dealing with a regular pixel number\n\t\t// but a number that has a weird ending, we need to convert it to pixels\n\t\t// but not position css attributes, as those are proportional to the parent element instead\n\t\t// and we can't measure the parent instead because it might trigger a \"stacking dolls\" problem\n\t\tif ( rnumnonpx.test( ret ) && !rposition.test( name ) ) {\n\n\t\t\t// Remember the original values\n\t\t\tleft = style.left;\n\t\t\trs = elem.runtimeStyle;\n\t\t\trsLeft = rs && rs.left;\n\n\t\t\t// Put in the new values to get a computed value out\n\t\t\tif ( rsLeft ) {\n\t\t\t\trs.left = elem.currentStyle.left;\n\t\t\t}\n\t\t\tstyle.left = name === \"fontSize\" ? \"1em\" : ret;\n\t\t\tret = style.pixelLeft + \"px\";\n\n\t\t\t// Revert the changed values\n\t\t\tstyle.left = left;\n\t\t\tif ( rsLeft ) {\n\t\t\t\trs.left = rsLeft;\n\t\t\t}\n\t\t}\n\n\t\t// Support: IE\n\t\t// IE returns zIndex value as an integer.\n\t\treturn ret === undefined ?\n\t\t\tret :\n\t\t\tret + \"\" || \"auto\";\n\t};\n}\n\n\n\n\nfunction addGetHookIf( conditionFn, hookFn ) {\n\t// Define the hook, we'll check on the first run if it's really needed.\n\treturn {\n\t\tget: function() {\n\t\t\tvar condition = conditionFn();\n\n\t\t\tif ( condition == null ) {\n\t\t\t\t// The test was not ready at this point; screw the hook this time\n\t\t\t\t// but check again when needed next time.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( condition ) {\n\t\t\t\t// Hook not needed (or it's not possible to use it due to missing dependency),\n\t\t\t\t// remove it.\n\t\t\t\t// Since there are no other hooks for marginRight, remove the whole object.\n\t\t\t\tdelete this.get;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Hook needed; redefine it so that the support test is not executed again.\n\n\t\t\treturn (this.get = hookFn).apply( this, arguments );\n\t\t}\n\t};\n}\n\n\n(function() {\n\t// Minified: var b,c,d,e,f,g, h,i\n\tvar div, style, a, pixelPositionVal, boxSizingReliableVal,\n\t\treliableHiddenOffsetsVal, reliableMarginRightVal;\n\n\t// Setup\n\tdiv = document.createElement( \"div\" );\n\tdiv.innerHTML = \" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>\";\n\ta = div.getElementsByTagName( \"a\" )[ 0 ];\n\tstyle = a && a.style;\n\n\t// Finish early in limited (non-browser) environments\n\tif ( !style ) {\n\t\treturn;\n\t}\n\n\tstyle.cssText = \"float:left;opacity:.5\";\n\n\t// Support: IE<9\n\t// Make sure that element opacity exists (as opposed to filter)\n\tsupport.opacity = style.opacity === \"0.5\";\n\n\t// Verify style float existence\n\t// (IE uses styleFloat instead of cssFloat)\n\tsupport.cssFloat = !!style.cssFloat;\n\n\tdiv.style.backgroundClip = \"content-box\";\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\n\t// Support: Firefox<29, Android 2.3\n\t// Vendor-prefix box-sizing\n\tsupport.boxSizing = style.boxSizing === \"\" || style.MozBoxSizing === \"\" ||\n\t\tstyle.WebkitBoxSizing === \"\";\n\n\tjQuery.extend(support, {\n\t\treliableHiddenOffsets: function() {\n\t\t\tif ( reliableHiddenOffsetsVal == null ) {\n\t\t\t\tcomputeStyleTests();\n\t\t\t}\n\t\t\treturn reliableHiddenOffsetsVal;\n\t\t},\n\n\t\tboxSizingReliable: function() {\n\t\t\tif ( boxSizingReliableVal == null ) {\n\t\t\t\tcomputeStyleTests();\n\t\t\t}\n\t\t\treturn boxSizingReliableVal;\n\t\t},\n\n\t\tpixelPosition: function() {\n\t\t\tif ( pixelPositionVal == null ) {\n\t\t\t\tcomputeStyleTests();\n\t\t\t}\n\t\t\treturn pixelPositionVal;\n\t\t},\n\n\t\t// Support: Android 2.3\n\t\treliableMarginRight: function() {\n\t\t\tif ( reliableMarginRightVal == null ) {\n\t\t\t\tcomputeStyleTests();\n\t\t\t}\n\t\t\treturn reliableMarginRightVal;\n\t\t}\n\t});\n\n\tfunction computeStyleTests() {\n\t\t// Minified: var b,c,d,j\n\t\tvar div, body, container, contents;\n\n\t\tbody = document.getElementsByTagName( \"body\" )[ 0 ];\n\t\tif ( !body || !body.style ) {\n\t\t\t// Test fired too early or in an unsupported environment, exit.\n\t\t\treturn;\n\t\t}\n\n\t\t// Setup\n\t\tdiv = document.createElement( \"div\" );\n\t\tcontainer = document.createElement( \"div\" );\n\t\tcontainer.style.cssText = \"position:absolute;border:0;width:0;height:0;top:0;left:-9999px\";\n\t\tbody.appendChild( container ).appendChild( div );\n\n\t\tdiv.style.cssText =\n\t\t\t// Support: Firefox<29, Android 2.3\n\t\t\t// Vendor-prefix box-sizing\n\t\t\t\"-webkit-box-sizing:border-box;-moz-box-sizing:border-box;\" +\n\t\t\t\"box-sizing:border-box;display:block;margin-top:1%;top:1%;\" +\n\t\t\t\"border:1px;padding:1px;width:4px;position:absolute\";\n\n\t\t// Support: IE<9\n\t\t// Assume reasonable values in the absence of getComputedStyle\n\t\tpixelPositionVal = boxSizingReliableVal = false;\n\t\treliableMarginRightVal = true;\n\n\t\t// Check for getComputedStyle so that this code is not run in IE<9.\n\t\tif ( window.getComputedStyle ) {\n\t\t\tpixelPositionVal = ( window.getComputedStyle( div, null ) || {} ).top !== \"1%\";\n\t\t\tboxSizingReliableVal =\n\t\t\t\t( window.getComputedStyle( div, null ) || { width: \"4px\" } ).width === \"4px\";\n\n\t\t\t// Support: Android 2.3\n\t\t\t// Div with explicit width and no margin-right incorrectly\n\t\t\t// gets computed margin-right based on width of container (#3333)\n\t\t\t// WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right\n\t\t\tcontents = div.appendChild( document.createElement( \"div\" ) );\n\n\t\t\t// Reset CSS: box-sizing; display; margin; border; padding\n\t\t\tcontents.style.cssText = div.style.cssText =\n\t\t\t\t// Support: Firefox<29, Android 2.3\n\t\t\t\t// Vendor-prefix box-sizing\n\t\t\t\t\"-webkit-box-sizing:content-box;-moz-box-sizing:content-box;\" +\n\t\t\t\t\"box-sizing:content-box;display:block;margin:0;border:0;padding:0\";\n\t\t\tcontents.style.marginRight = contents.style.width = \"0\";\n\t\t\tdiv.style.width = \"1px\";\n\n\t\t\treliableMarginRightVal =\n\t\t\t\t!parseFloat( ( window.getComputedStyle( contents, null ) || {} ).marginRight );\n\n\t\t\tdiv.removeChild( contents );\n\t\t}\n\n\t\t// Support: IE8\n\t\t// Check if table cells still have offsetWidth/Height when they are set\n\t\t// to display:none and there are still other visible table cells in a\n\t\t// table row; if so, offsetWidth/Height are not reliable for use when\n\t\t// determining if an element has been hidden directly using\n\t\t// display:none (it is still safe to use offsets if a parent element is\n\t\t// hidden; don safety goggles and see bug #4512 for more information).\n\t\tdiv.innerHTML = \"<table><tr><td></td><td>t</td></tr></table>\";\n\t\tcontents = div.getElementsByTagName( \"td\" );\n\t\tcontents[ 0 ].style.cssText = \"margin:0;border:0;padding:0;display:none\";\n\t\treliableHiddenOffsetsVal = contents[ 0 ].offsetHeight === 0;\n\t\tif ( reliableHiddenOffsetsVal ) {\n\t\t\tcontents[ 0 ].style.display = \"\";\n\t\t\tcontents[ 1 ].style.display = \"none\";\n\t\t\treliableHiddenOffsetsVal = contents[ 0 ].offsetHeight === 0;\n\t\t}\n\n\t\tbody.removeChild( container );\n\t}\n\n})();\n\n\n// A method for quickly swapping in/out CSS properties to get correct calculations.\njQuery.swap = function( elem, options, callback, args ) {\n\tvar ret, name,\n\t\told = {};\n\n\t// Remember the old values, and insert the new ones\n\tfor ( name in options ) {\n\t\told[ name ] = elem.style[ name ];\n\t\telem.style[ name ] = options[ name ];\n\t}\n\n\tret = callback.apply( elem, args || [] );\n\n\t// Revert the old values\n\tfor ( name in options ) {\n\t\telem.style[ name ] = old[ name ];\n\t}\n\n\treturn ret;\n};\n\n\nvar\n\t\tralpha = /alpha\\([^)]*\\)/i,\n\tropacity = /opacity\\s*=\\s*([^)]*)/,\n\n\t// swappable if display is none or starts with table except \"table\", \"table-cell\", or \"table-caption\"\n\t// see here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\n\trnumsplit = new RegExp( \"^(\" + pnum + \")(.*)$\", \"i\" ),\n\trrelNum = new RegExp( \"^([+-])=(\" + pnum + \")\", \"i\" ),\n\n\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: \"0\",\n\t\tfontWeight: \"400\"\n\t},\n\n\tcssPrefixes = [ \"Webkit\", \"O\", \"Moz\", \"ms\" ];\n\n\n// return a css property mapped to a potentially vendor prefixed property\nfunction vendorPropName( style, name ) {\n\n\t// shortcut for names that are not vendor prefixed\n\tif ( name in style ) {\n\t\treturn name;\n\t}\n\n\t// check for vendor prefixed names\n\tvar capName = name.charAt(0).toUpperCase() + name.slice(1),\n\t\torigName = name,\n\t\ti = cssPrefixes.length;\n\n\twhile ( i-- ) {\n\t\tname = cssPrefixes[ i ] + capName;\n\t\tif ( name in style ) {\n\t\t\treturn name;\n\t\t}\n\t}\n\n\treturn origName;\n}\n\nfunction showHide( elements, show ) {\n\tvar display, elem, hidden,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\tfor ( ; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tvalues[ index ] = jQuery._data( elem, \"olddisplay\" );\n\t\tdisplay = elem.style.display;\n\t\tif ( show ) {\n\t\t\t// Reset the inline display of this element to learn if it is\n\t\t\t// being hidden by cascaded rules or not\n\t\t\tif ( !values[ index ] && display === \"none\" ) {\n\t\t\t\telem.style.display = \"\";\n\t\t\t}\n\n\t\t\t// Set elements which have been overridden with display: none\n\t\t\t// in a stylesheet to whatever the default browser style is\n\t\t\t// for such an element\n\t\t\tif ( elem.style.display === \"\" && isHidden( elem ) ) {\n\t\t\t\tvalues[ index ] = jQuery._data( elem, \"olddisplay\", defaultDisplay(elem.nodeName) );\n\t\t\t}\n\t\t} else {\n\t\t\thidden = isHidden( elem );\n\n\t\t\tif ( display && display !== \"none\" || !hidden ) {\n\t\t\t\tjQuery._data( elem, \"olddisplay\", hidden ? display : jQuery.css( elem, \"display\" ) );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set the display of most of the elements in a second loop\n\t// to avoid the constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\t\tif ( !show || elem.style.display === \"none\" || elem.style.display === \"\" ) {\n\t\t\telem.style.display = show ? values[ index ] || \"\" : \"none\";\n\t\t}\n\t}\n\n\treturn elements;\n}\n\nfunction setPositiveNumber( elem, value, subtract ) {\n\tvar matches = rnumsplit.exec( value );\n\treturn matches ?\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 1 ] - ( subtract || 0 ) ) + ( matches[ 2 ] || \"px\" ) :\n\t\tvalue;\n}\n\nfunction augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) {\n\tvar i = extra === ( isBorderBox ? \"border\" : \"content\" ) ?\n\t\t// If we already have the right measurement, avoid augmentation\n\t\t4 :\n\t\t// Otherwise initialize for horizontal or vertical properties\n\t\tname === \"width\" ? 1 : 0,\n\n\t\tval = 0;\n\n\tfor ( ; i < 4; i += 2 ) {\n\t\t// both box models exclude margin, so add it if we want it\n\t\tif ( extra === \"margin\" ) {\n\t\t\tval += jQuery.css( elem, extra + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\tif ( isBorderBox ) {\n\t\t\t// border-box includes padding, so remove it if we want content\n\t\t\tif ( extra === \"content\" ) {\n\t\t\t\tval -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// at this point, extra isn't border nor margin, so remove border\n\t\t\tif ( extra !== \"margin\" ) {\n\t\t\t\tval -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t} else {\n\t\t\t// at this point, extra isn't content, so add padding\n\t\t\tval += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t// at this point, extra isn't content nor padding, so add border\n\t\t\tif ( extra !== \"padding\" ) {\n\t\t\t\tval += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\treturn val;\n}\n\nfunction getWidthOrHeight( elem, name, extra ) {\n\n\t// Start with offset property, which is equivalent to the border-box value\n\tvar valueIsBorderBox = true,\n\t\tval = name === \"width\" ? elem.offsetWidth : elem.offsetHeight,\n\t\tstyles = getStyles( elem ),\n\t\tisBorderBox = support.boxSizing && jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\n\n\t// some non-html elements return undefined for offsetWidth, so check for null/undefined\n\t// svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285\n\t// MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668\n\tif ( val <= 0 || val == null ) {\n\t\t// Fall back to computed then uncomputed css if necessary\n\t\tval = curCSS( elem, name, styles );\n\t\tif ( val < 0 || val == null ) {\n\t\t\tval = elem.style[ name ];\n\t\t}\n\n\t\t// Computed unit is not pixels. Stop here and return.\n\t\tif ( rnumnonpx.test(val) ) {\n\t\t\treturn val;\n\t\t}\n\n\t\t// we need the check for style in case a browser which returns unreliable values\n\t\t// for getComputedStyle silently falls back to the reliable elem.style\n\t\tvalueIsBorderBox = isBorderBox && ( support.boxSizingReliable() || val === elem.style[ name ] );\n\n\t\t// Normalize \"\", auto, and prepare for extra\n\t\tval = parseFloat( val ) || 0;\n\t}\n\n\t// use the active box-sizing model to add/subtract irrelevant styles\n\treturn ( val +\n\t\taugmentWidthOrHeight(\n\t\t\telem,\n\t\t\tname,\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles\n\t\t)\n\t) + \"px\";\n}\n\njQuery.extend({\n\t// Add in style property hooks for overriding the default\n\t// behavior of getting and setting a style property\n\tcssHooks: {\n\t\topacity: {\n\t\t\tget: function( elem, computed ) {\n\t\t\t\tif ( computed ) {\n\t\t\t\t\t// We should always get a number back from opacity\n\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\n\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Don't automatically add \"px\" to these possibly-unitless properties\n\tcssNumber: {\n\t\t\"columnCount\": true,\n\t\t\"fillOpacity\": true,\n\t\t\"flexGrow\": true,\n\t\t\"flexShrink\": true,\n\t\t\"fontWeight\": true,\n\t\t\"lineHeight\": true,\n\t\t\"opacity\": true,\n\t\t\"order\": true,\n\t\t\"orphans\": true,\n\t\t\"widows\": true,\n\t\t\"zIndex\": true,\n\t\t\"zoom\": true\n\t},\n\n\t// Add in properties whose names you wish to fix before\n\t// setting or getting the value\n\tcssProps: {\n\t\t// normalize float css property\n\t\t\"float\": support.cssFloat ? \"cssFloat\" : \"styleFloat\"\n\t},\n\n\t// Get and set the style property on a DOM Node\n\tstyle: function( elem, name, value, extra ) {\n\t\t// Don't set styles on text and comment nodes\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure that we're working with the right name\n\t\tvar ret, type, hooks,\n\t\t\torigName = jQuery.camelCase( name ),\n\t\t\tstyle = elem.style;\n\n\t\tname = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( style, origName ) );\n\n\t\t// gets hook for the prefixed version\n\t\t// followed by the unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// Check if we're setting a value\n\t\tif ( value !== undefined ) {\n\t\t\ttype = typeof value;\n\n\t\t\t// convert relative number strings (+= or -=) to relative numbers. #7345\n\t\t\tif ( type === \"string\" && (ret = rrelNum.exec( value )) ) {\n\t\t\t\tvalue = ( ret[1] + 1 ) * ret[2] + parseFloat( jQuery.css( elem, name ) );\n\t\t\t\t// Fixes bug #9237\n\t\t\t\ttype = \"number\";\n\t\t\t}\n\n\t\t\t// Make sure that null and NaN values aren't set. See: #7116\n\t\t\tif ( value == null || value !== value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a number was passed in, add 'px' to the (except for certain CSS properties)\n\t\t\tif ( type === \"number\" && !jQuery.cssNumber[ origName ] ) {\n\t\t\t\tvalue += \"px\";\n\t\t\t}\n\n\t\t\t// Fixes #8908, it can be done more correctly by specifing setters in cssHooks,\n\t\t\t// but it would mean to define eight (for every problematic property) identical functions\n\t\t\tif ( !support.clearCloneStyle && value === \"\" && name.indexOf(\"background\") === 0 ) {\n\t\t\t\tstyle[ name ] = \"inherit\";\n\t\t\t}\n\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\tif ( !hooks || !(\"set\" in hooks) || (value = hooks.set( elem, value, extra )) !== undefined ) {\n\n\t\t\t\t// Support: IE\n\t\t\t\t// Swallow errors from 'invalid' CSS values (#5509)\n\t\t\t\ttry {\n\t\t\t\t\tstyle[ name ] = value;\n\t\t\t\t} catch(e) {}\n\t\t\t}\n\n\t\t} else {\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && \"get\" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Otherwise just get the value from the style object\n\t\t\treturn style[ name ];\n\t\t}\n\t},\n\n\tcss: function( elem, name, extra, styles ) {\n\t\tvar num, val, hooks,\n\t\t\torigName = jQuery.camelCase( name );\n\n\t\t// Make sure that we're working with the right name\n\t\tname = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( elem.style, origName ) );\n\n\t\t// gets hook for the prefixed version\n\t\t// followed by the unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// If a hook was provided get the computed value from there\n\t\tif ( hooks && \"get\" in hooks ) {\n\t\t\tval = hooks.get( elem, true, extra );\n\t\t}\n\n\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\tif ( val === undefined ) {\n\t\t\tval = curCSS( elem, name, styles );\n\t\t}\n\n\t\t//convert \"normal\" to computed value\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\t\t\tval = cssNormalTransform[ name ];\n\t\t}\n\n\t\t// Return, converting to number if forced or a qualifier was provided and val looks numeric\n\t\tif ( extra === \"\" || extra ) {\n\t\t\tnum = parseFloat( val );\n\t\t\treturn extra === true || jQuery.isNumeric( num ) ? num || 0 : val;\n\t\t}\n\t\treturn val;\n\t}\n});\n\njQuery.each([ \"height\", \"width\" ], function( i, name ) {\n\tjQuery.cssHooks[ name ] = {\n\t\tget: function( elem, computed, extra ) {\n\t\t\tif ( computed ) {\n\t\t\t\t// certain elements can have dimension info if we invisibly show them\n\t\t\t\t// however, it must have a current display style that would benefit from this\n\t\t\t\treturn rdisplayswap.test( jQuery.css( elem, \"display\" ) ) && elem.offsetWidth === 0 ?\n\t\t\t\t\tjQuery.swap( elem, cssShow, function() {\n\t\t\t\t\t\treturn getWidthOrHeight( elem, name, extra );\n\t\t\t\t\t}) :\n\t\t\t\t\tgetWidthOrHeight( elem, name, extra );\n\t\t\t}\n\t\t},\n\n\t\tset: function( elem, value, extra ) {\n\t\t\tvar styles = extra && getStyles( elem );\n\t\t\treturn setPositiveNumber( elem, value, extra ?\n\t\t\t\taugmentWidthOrHeight(\n\t\t\t\t\telem,\n\t\t\t\t\tname,\n\t\t\t\t\textra,\n\t\t\t\t\tsupport.boxSizing && jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\t\t\tstyles\n\t\t\t\t) : 0\n\t\t\t);\n\t\t}\n\t};\n});\n\nif ( !support.opacity ) {\n\tjQuery.cssHooks.opacity = {\n\t\tget: function( elem, computed ) {\n\t\t\t// IE uses filters for opacity\n\t\t\treturn ropacity.test( (computed && elem.currentStyle ? elem.currentStyle.filter : elem.style.filter) || \"\" ) ?\n\t\t\t\t( 0.01 * parseFloat( RegExp.$1 ) ) + \"\" :\n\t\t\t\tcomputed ? \"1\" : \"\";\n\t\t},\n\n\t\tset: function( elem, value ) {\n\t\t\tvar style = elem.style,\n\t\t\t\tcurrentStyle = elem.currentStyle,\n\t\t\t\topacity = jQuery.isNumeric( value ) ? \"alpha(opacity=\" + value * 100 + \")\" : \"\",\n\t\t\t\tfilter = currentStyle && currentStyle.filter || style.filter || \"\";\n\n\t\t\t// IE has trouble with opacity if it does not have layout\n\t\t\t// Force it by setting the zoom level\n\t\t\tstyle.zoom = 1;\n\n\t\t\t// if setting opacity to 1, and no other filters exist - attempt to remove filter attribute #6652\n\t\t\t// if value === \"\", then remove inline opacity #12685\n\t\t\tif ( ( value >= 1 || value === \"\" ) &&\n\t\t\t\t\tjQuery.trim( filter.replace( ralpha, \"\" ) ) === \"\" &&\n\t\t\t\t\tstyle.removeAttribute ) {\n\n\t\t\t\t// Setting style.filter to null, \"\" & \" \" still leave \"filter:\" in the cssText\n\t\t\t\t// if \"filter:\" is present at all, clearType is disabled, we want to avoid this\n\t\t\t\t// style.removeAttribute is IE Only, but so apparently is this code path...\n\t\t\t\tstyle.removeAttribute( \"filter\" );\n\n\t\t\t\t// if there is no filter style applied in a css rule or unset inline opacity, we are done\n\t\t\t\tif ( value === \"\" || currentStyle && !currentStyle.filter ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// otherwise, set new filter values\n\t\t\tstyle.filter = ralpha.test( filter ) ?\n\t\t\t\tfilter.replace( ralpha, opacity ) :\n\t\t\t\tfilter + \" \" + opacity;\n\t\t}\n\t};\n}\n\njQuery.cssHooks.marginRight = addGetHookIf( support.reliableMarginRight,\n\tfunction( elem, computed ) {\n\t\tif ( computed ) {\n\t\t\t// WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right\n\t\t\t// Work around by temporarily setting element display to inline-block\n\t\t\treturn jQuery.swap( elem, { \"display\": \"inline-block\" },\n\t\t\t\tcurCSS, [ elem, \"marginRight\" ] );\n\t\t}\n\t}\n);\n\n// These hooks are used by animate to expand properties\njQuery.each({\n\tmargin: \"\",\n\tpadding: \"\",\n\tborder: \"Width\"\n}, function( prefix, suffix ) {\n\tjQuery.cssHooks[ prefix + suffix ] = {\n\t\texpand: function( value ) {\n\t\t\tvar i = 0,\n\t\t\t\texpanded = {},\n\n\t\t\t\t// assumes a single number if not a string\n\t\t\t\tparts = typeof value === \"string\" ? value.split(\" \") : [ value ];\n\n\t\t\tfor ( ; i < 4; i++ ) {\n\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\n\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\n\t\t\t}\n\n\t\t\treturn expanded;\n\t\t}\n\t};\n\n\tif ( !rmargin.test( prefix ) ) {\n\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\n\t}\n});\n\njQuery.fn.extend({\n\tcss: function( name, value ) {\n\t\treturn access( this, function( elem, name, value ) {\n\t\t\tvar styles, len,\n\t\t\t\tmap = {},\n\t\t\t\ti = 0;\n\n\t\t\tif ( jQuery.isArray( name ) ) {\n\t\t\t\tstyles = getStyles( elem );\n\t\t\t\tlen = name.length;\n\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t}\n\n\t\t\t\treturn map;\n\t\t\t}\n\n\t\t\treturn value !== undefined ?\n\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\tjQuery.css( elem, name );\n\t\t}, name, value, arguments.length > 1 );\n\t},\n\tshow: function() {\n\t\treturn showHide( this, true );\n\t},\n\thide: function() {\n\t\treturn showHide( this );\n\t},\n\ttoggle: function( state ) {\n\t\tif ( typeof state === \"boolean\" ) {\n\t\t\treturn state ? this.show() : this.hide();\n\t\t}\n\n\t\treturn this.each(function() {\n\t\t\tif ( isHidden( this ) ) {\n\t\t\t\tjQuery( this ).show();\n\t\t\t} else {\n\t\t\t\tjQuery( this ).hide();\n\t\t\t}\n\t\t});\n\t}\n});\n\n\nfunction Tween( elem, options, prop, end, easing ) {\n\treturn new Tween.prototype.init( elem, options, prop, end, easing );\n}\njQuery.Tween = Tween;\n\nTween.prototype = {\n\tconstructor: Tween,\n\tinit: function( elem, options, prop, end, easing, unit ) {\n\t\tthis.elem = elem;\n\t\tthis.prop = prop;\n\t\tthis.easing = easing || \"swing\";\n\t\tthis.options = options;\n\t\tthis.start = this.now = this.cur();\n\t\tthis.end = end;\n\t\tthis.unit = unit || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" );\n\t},\n\tcur: function() {\n\t\tvar hooks = Tween.propHooks[ this.prop ];\n\n\t\treturn hooks && hooks.get ?\n\t\t\thooks.get( this ) :\n\t\t\tTween.propHooks._default.get( this );\n\t},\n\trun: function( percent ) {\n\t\tvar eased,\n\t\t\thooks = Tween.propHooks[ this.prop ];\n\n\t\tif ( this.options.duration ) {\n\t\t\tthis.pos = eased = jQuery.easing[ this.easing ](\n\t\t\t\tpercent, this.options.duration * percent, 0, 1, this.options.duration\n\t\t\t);\n\t\t} else {\n\t\t\tthis.pos = eased = percent;\n\t\t}\n\t\tthis.now = ( this.end - this.start ) * eased + this.start;\n\n\t\tif ( this.options.step ) {\n\t\t\tthis.options.step.call( this.elem, this.now, this );\n\t\t}\n\n\t\tif ( hooks && hooks.set ) {\n\t\t\thooks.set( this );\n\t\t} else {\n\t\t\tTween.propHooks._default.set( this );\n\t\t}\n\t\treturn this;\n\t}\n};\n\nTween.prototype.init.prototype = Tween.prototype;\n\nTween.propHooks = {\n\t_default: {\n\t\tget: function( tween ) {\n\t\t\tvar result;\n\n\t\t\tif ( tween.elem[ tween.prop ] != null &&\n\t\t\t\t(!tween.elem.style || tween.elem.style[ tween.prop ] == null) ) {\n\t\t\t\treturn tween.elem[ tween.prop ];\n\t\t\t}\n\n\t\t\t// passing an empty string as a 3rd parameter to .css will automatically\n\t\t\t// attempt a parseFloat and fallback to a string if the parse fails\n\t\t\t// so, simple values such as \"10px\" are parsed to Float.\n\t\t\t// complex values such as \"rotate(1rad)\" are returned as is.\n\t\t\tresult = jQuery.css( tween.elem, tween.prop, \"\" );\n\t\t\t// Empty strings, null, undefined and \"auto\" are converted to 0.\n\t\t\treturn !result || result === \"auto\" ? 0 : result;\n\t\t},\n\t\tset: function( tween ) {\n\t\t\t// use step hook for back compat - use cssHook if its there - use .style if its\n\t\t\t// available and use plain properties where available\n\t\t\tif ( jQuery.fx.step[ tween.prop ] ) {\n\t\t\t\tjQuery.fx.step[ tween.prop ]( tween );\n\t\t\t} else if ( tween.elem.style && ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null || jQuery.cssHooks[ tween.prop ] ) ) {\n\t\t\t\tjQuery.style( tween.elem, tween.prop, tween.now + tween.unit );\n\t\t\t} else {\n\t\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Support: IE <=9\n// Panic based approach to setting things on disconnected nodes\n\nTween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n\tset: function( tween ) {\n\t\tif ( tween.elem.nodeType && tween.elem.parentNode ) {\n\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t}\n\t}\n};\n\njQuery.easing = {\n\tlinear: function( p ) {\n\t\treturn p;\n\t},\n\tswing: function( p ) {\n\t\treturn 0.5 - Math.cos( p * Math.PI ) / 2;\n\t}\n};\n\njQuery.fx = Tween.prototype.init;\n\n// Back Compat <1.8 extension point\njQuery.fx.step = {};\n\n\n\n\nvar\n\tfxNow, timerId,\n\trfxtypes = /^(?:toggle|show|hide)$/,\n\trfxnum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" ),\n\trrun = /queueHooks$/,\n\tanimationPrefilters = [ defaultPrefilter ],\n\ttweeners = {\n\t\t\"*\": [ function( prop, value ) {\n\t\t\tvar tween = this.createTween( prop, value ),\n\t\t\t\ttarget = tween.cur(),\n\t\t\t\tparts = rfxnum.exec( value ),\n\t\t\t\tunit = parts && parts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\n\t\t\t\t// Starting value computation is required for potential unit mismatches\n\t\t\t\tstart = ( jQuery.cssNumber[ prop ] || unit !== \"px\" && +target ) &&\n\t\t\t\t\trfxnum.exec( jQuery.css( tween.elem, prop ) ),\n\t\t\t\tscale = 1,\n\t\t\t\tmaxIterations = 20;\n\n\t\t\tif ( start && start[ 3 ] !== unit ) {\n\t\t\t\t// Trust units reported by jQuery.css\n\t\t\t\tunit = unit || start[ 3 ];\n\n\t\t\t\t// Make sure we update the tween properties later on\n\t\t\t\tparts = parts || [];\n\n\t\t\t\t// Iteratively approximate from a nonzero starting point\n\t\t\t\tstart = +target || 1;\n\n\t\t\t\tdo {\n\t\t\t\t\t// If previous iteration zeroed out, double until we get *something*\n\t\t\t\t\t// Use a string for doubling factor so we don't accidentally see scale as unchanged below\n\t\t\t\t\tscale = scale || \".5\";\n\n\t\t\t\t\t// Adjust and apply\n\t\t\t\t\tstart = start / scale;\n\t\t\t\t\tjQuery.style( tween.elem, prop, start + unit );\n\n\t\t\t\t// Update scale, tolerating zero or NaN from tween.cur()\n\t\t\t\t// And breaking the loop if scale is unchanged or perfect, or if we've just had enough\n\t\t\t\t} while ( scale !== (scale = tween.cur() / target) && scale !== 1 && --maxIterations );\n\t\t\t}\n\n\t\t\t// Update tween properties\n\t\t\tif ( parts ) {\n\t\t\t\tstart = tween.start = +start || +target || 0;\n\t\t\t\ttween.unit = unit;\n\t\t\t\t// If a +=/-= token was provided, we're doing a relative animation\n\t\t\t\ttween.end = parts[ 1 ] ?\n\t\t\t\t\tstart + ( parts[ 1 ] + 1 ) * parts[ 2 ] :\n\t\t\t\t\t+parts[ 2 ];\n\t\t\t}\n\n\t\t\treturn tween;\n\t\t} ]\n\t};\n\n// Animations created synchronously will run synchronously\nfunction createFxNow() {\n\tsetTimeout(function() {\n\t\tfxNow = undefined;\n\t});\n\treturn ( fxNow = jQuery.now() );\n}\n\n// Generate parameters to create a standard animation\nfunction genFx( type, includeWidth ) {\n\tvar which,\n\t\tattrs = { height: type },\n\t\ti = 0;\n\n\t// if we include width, step value is 1 to do all cssExpand values,\n\t// if we don't include width, step value is 2 to skip over Left and Right\n\tincludeWidth = includeWidth ? 1 : 0;\n\tfor ( ; i < 4 ; i += 2 - includeWidth ) {\n\t\twhich = cssExpand[ i ];\n\t\tattrs[ \"margin\" + which ] = attrs[ \"padding\" + which ] = type;\n\t}\n\n\tif ( includeWidth ) {\n\t\tattrs.opacity = attrs.width = type;\n\t}\n\n\treturn attrs;\n}\n\nfunction createTween( value, prop, animation ) {\n\tvar tween,\n\t\tcollection = ( tweeners[ prop ] || [] ).concat( tweeners[ \"*\" ] ),\n\t\tindex = 0,\n\t\tlength = collection.length;\n\tfor ( ; index < length; index++ ) {\n\t\tif ( (tween = collection[ index ].call( animation, prop, value )) ) {\n\n\t\t\t// we're done with this property\n\t\t\treturn tween;\n\t\t}\n\t}\n}\n\nfunction defaultPrefilter( elem, props, opts ) {\n\t/* jshint validthis: true */\n\tvar prop, value, toggle, tween, hooks, oldfire, display, checkDisplay,\n\t\tanim = this,\n\t\torig = {},\n\t\tstyle = elem.style,\n\t\thidden = elem.nodeType && isHidden( elem ),\n\t\tdataShow = jQuery._data( elem, \"fxshow\" );\n\n\t// handle queue: false promises\n\tif ( !opts.queue ) {\n\t\thooks = jQuery._queueHooks( elem, \"fx\" );\n\t\tif ( hooks.unqueued == null ) {\n\t\t\thooks.unqueued = 0;\n\t\t\toldfire = hooks.empty.fire;\n\t\t\thooks.empty.fire = function() {\n\t\t\t\tif ( !hooks.unqueued ) {\n\t\t\t\t\toldfire();\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\thooks.unqueued++;\n\n\t\tanim.always(function() {\n\t\t\t// doing this makes sure that the complete handler will be called\n\t\t\t// before this completes\n\t\t\tanim.always(function() {\n\t\t\t\thooks.unqueued--;\n\t\t\t\tif ( !jQuery.queue( elem, \"fx\" ).length ) {\n\t\t\t\t\thooks.empty.fire();\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\t// height/width overflow pass\n\tif ( elem.nodeType === 1 && ( \"height\" in props || \"width\" in props ) ) {\n\t\t// Make sure that nothing sneaks out\n\t\t// Record all 3 overflow attributes because IE does not\n\t\t// change the overflow attribute when overflowX and\n\t\t// overflowY are set to the same value\n\t\topts.overflow = [ style.overflow, style.overflowX, style.overflowY ];\n\n\t\t// Set display property to inline-block for height/width\n\t\t// animations on inline elements that are having width/height animated\n\t\tdisplay = jQuery.css( elem, \"display\" );\n\n\t\t// Test default display if display is currently \"none\"\n\t\tcheckDisplay = display === \"none\" ?\n\t\t\tjQuery._data( elem, \"olddisplay\" ) || defaultDisplay( elem.nodeName ) : display;\n\n\t\tif ( checkDisplay === \"inline\" && jQuery.css( elem, \"float\" ) === \"none\" ) {\n\n\t\t\t// inline-level elements accept inline-block;\n\t\t\t// block-level elements need to be inline with layout\n\t\t\tif ( !support.inlineBlockNeedsLayout || defaultDisplay( elem.nodeName ) === \"inline\" ) {\n\t\t\t\tstyle.display = \"inline-block\";\n\t\t\t} else {\n\t\t\t\tstyle.zoom = 1;\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( opts.overflow ) {\n\t\tstyle.overflow = \"hidden\";\n\t\tif ( !support.shrinkWrapBlocks() ) {\n\t\t\tanim.always(function() {\n\t\t\t\tstyle.overflow = opts.overflow[ 0 ];\n\t\t\t\tstyle.overflowX = opts.overflow[ 1 ];\n\t\t\t\tstyle.overflowY = opts.overflow[ 2 ];\n\t\t\t});\n\t\t}\n\t}\n\n\t// show/hide pass\n\tfor ( prop in props ) {\n\t\tvalue = props[ prop ];\n\t\tif ( rfxtypes.exec( value ) ) {\n\t\t\tdelete props[ prop ];\n\t\t\ttoggle = toggle || value === \"toggle\";\n\t\t\tif ( value === ( hidden ? \"hide\" : \"show\" ) ) {\n\n\t\t\t\t// If there is dataShow left over from a stopped hide or show and we are going to proceed with show, we should pretend to be hidden\n\t\t\t\tif ( value === \"show\" && dataShow && dataShow[ prop ] !== undefined ) {\n\t\t\t\t\thidden = true;\n\t\t\t\t} else {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\torig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );\n\n\t\t// Any non-fx value stops us from restoring the original display value\n\t\t} else {\n\t\t\tdisplay = undefined;\n\t\t}\n\t}\n\n\tif ( !jQuery.isEmptyObject( orig ) ) {\n\t\tif ( dataShow ) {\n\t\t\tif ( \"hidden\" in dataShow ) {\n\t\t\t\thidden = dataShow.hidden;\n\t\t\t}\n\t\t} else {\n\t\t\tdataShow = jQuery._data( elem, \"fxshow\", {} );\n\t\t}\n\n\t\t// store state if its toggle - enables .stop().toggle() to \"reverse\"\n\t\tif ( toggle ) {\n\t\t\tdataShow.hidden = !hidden;\n\t\t}\n\t\tif ( hidden ) {\n\t\t\tjQuery( elem ).show();\n\t\t} else {\n\t\t\tanim.done(function() {\n\t\t\t\tjQuery( elem ).hide();\n\t\t\t});\n\t\t}\n\t\tanim.done(function() {\n\t\t\tvar prop;\n\t\t\tjQuery._removeData( elem, \"fxshow\" );\n\t\t\tfor ( prop in orig ) {\n\t\t\t\tjQuery.style( elem, prop, orig[ prop ] );\n\t\t\t}\n\t\t});\n\t\tfor ( prop in orig ) {\n\t\t\ttween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );\n\n\t\t\tif ( !( prop in dataShow ) ) {\n\t\t\t\tdataShow[ prop ] = tween.start;\n\t\t\t\tif ( hidden ) {\n\t\t\t\t\ttween.end = tween.start;\n\t\t\t\t\ttween.start = prop === \"width\" || prop === \"height\" ? 1 : 0;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t// If this is a noop like .hide().hide(), restore an overwritten display value\n\t} else if ( (display === \"none\" ? defaultDisplay( elem.nodeName ) : display) === \"inline\" ) {\n\t\tstyle.display = display;\n\t}\n}\n\nfunction propFilter( props, specialEasing ) {\n\tvar index, name, easing, value, hooks;\n\n\t// camelCase, specialEasing and expand cssHook pass\n\tfor ( index in props ) {\n\t\tname = jQuery.camelCase( index );\n\t\teasing = specialEasing[ name ];\n\t\tvalue = props[ index ];\n\t\tif ( jQuery.isArray( value ) ) {\n\t\t\teasing = value[ 1 ];\n\t\t\tvalue = props[ index ] = value[ 0 ];\n\t\t}\n\n\t\tif ( index !== name ) {\n\t\t\tprops[ name ] = value;\n\t\t\tdelete props[ index ];\n\t\t}\n\n\t\thooks = jQuery.cssHooks[ name ];\n\t\tif ( hooks && \"expand\" in hooks ) {\n\t\t\tvalue = hooks.expand( value );\n\t\t\tdelete props[ name ];\n\n\t\t\t// not quite $.extend, this wont overwrite keys already present.\n\t\t\t// also - reusing 'index' from above because we have the correct \"name\"\n\t\t\tfor ( index in value ) {\n\t\t\t\tif ( !( index in props ) ) {\n\t\t\t\t\tprops[ index ] = value[ index ];\n\t\t\t\t\tspecialEasing[ index ] = easing;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tspecialEasing[ name ] = easing;\n\t\t}\n\t}\n}\n\nfunction Animation( elem, properties, options ) {\n\tvar result,\n\t\tstopped,\n\t\tindex = 0,\n\t\tlength = animationPrefilters.length,\n\t\tdeferred = jQuery.Deferred().always( function() {\n\t\t\t// don't match elem in the :animated selector\n\t\t\tdelete tick.elem;\n\t\t}),\n\t\ttick = function() {\n\t\t\tif ( stopped ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar currentTime = fxNow || createFxNow(),\n\t\t\t\tremaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),\n\t\t\t\t// archaic crash bug won't allow us to use 1 - ( 0.5 || 0 ) (#12497)\n\t\t\t\ttemp = remaining / animation.duration || 0,\n\t\t\t\tpercent = 1 - temp,\n\t\t\t\tindex = 0,\n\t\t\t\tlength = animation.tweens.length;\n\n\t\t\tfor ( ; index < length ; index++ ) {\n\t\t\t\tanimation.tweens[ index ].run( percent );\n\t\t\t}\n\n\t\t\tdeferred.notifyWith( elem, [ animation, percent, remaining ]);\n\n\t\t\tif ( percent < 1 && length ) {\n\t\t\t\treturn remaining;\n\t\t\t} else {\n\t\t\t\tdeferred.resolveWith( elem, [ animation ] );\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\t\tanimation = deferred.promise({\n\t\t\telem: elem,\n\t\t\tprops: jQuery.extend( {}, properties ),\n\t\t\topts: jQuery.extend( true, { specialEasing: {} }, options ),\n\t\t\toriginalProperties: properties,\n\t\t\toriginalOptions: options,\n\t\t\tstartTime: fxNow || createFxNow(),\n\t\t\tduration: options.duration,\n\t\t\ttweens: [],\n\t\t\tcreateTween: function( prop, end ) {\n\t\t\t\tvar tween = jQuery.Tween( elem, animation.opts, prop, end,\n\t\t\t\t\t\tanimation.opts.specialEasing[ prop ] || animation.opts.easing );\n\t\t\t\tanimation.tweens.push( tween );\n\t\t\t\treturn tween;\n\t\t\t},\n\t\t\tstop: function( gotoEnd ) {\n\t\t\t\tvar index = 0,\n\t\t\t\t\t// if we are going to the end, we want to run all the tweens\n\t\t\t\t\t// otherwise we skip this part\n\t\t\t\t\tlength = gotoEnd ? animation.tweens.length : 0;\n\t\t\t\tif ( stopped ) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tstopped = true;\n\t\t\t\tfor ( ; index < length ; index++ ) {\n\t\t\t\t\tanimation.tweens[ index ].run( 1 );\n\t\t\t\t}\n\n\t\t\t\t// resolve when we played the last frame\n\t\t\t\t// otherwise, reject\n\t\t\t\tif ( gotoEnd ) {\n\t\t\t\t\tdeferred.resolveWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t} else {\n\t\t\t\t\tdeferred.rejectWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\t\t}),\n\t\tprops = animation.props;\n\n\tpropFilter( props, animation.opts.specialEasing );\n\n\tfor ( ; index < length ; index++ ) {\n\t\tresult = animationPrefilters[ index ].call( animation, elem, props, animation.opts );\n\t\tif ( result ) {\n\t\t\treturn result;\n\t\t}\n\t}\n\n\tjQuery.map( props, createTween, animation );\n\n\tif ( jQuery.isFunction( animation.opts.start ) ) {\n\t\tanimation.opts.start.call( elem, animation );\n\t}\n\n\tjQuery.fx.timer(\n\t\tjQuery.extend( tick, {\n\t\t\telem: elem,\n\t\t\tanim: animation,\n\t\t\tqueue: animation.opts.queue\n\t\t})\n\t);\n\n\t// attach callbacks from options\n\treturn animation.progress( animation.opts.progress )\n\t\t.done( animation.opts.done, animation.opts.complete )\n\t\t.fail( animation.opts.fail )\n\t\t.always( animation.opts.always );\n}\n\njQuery.Animation = jQuery.extend( Animation, {\n\ttweener: function( props, callback ) {\n\t\tif ( jQuery.isFunction( props ) ) {\n\t\t\tcallback = props;\n\t\t\tprops = [ \"*\" ];\n\t\t} else {\n\t\t\tprops = props.split(\" \");\n\t\t}\n\n\t\tvar prop,\n\t\t\tindex = 0,\n\t\t\tlength = props.length;\n\n\t\tfor ( ; index < length ; index++ ) {\n\t\t\tprop = props[ index ];\n\t\t\ttweeners[ prop ] = tweeners[ prop ] || [];\n\t\t\ttweeners[ prop ].unshift( callback );\n\t\t}\n\t},\n\n\tprefilter: function( callback, prepend ) {\n\t\tif ( prepend ) {\n\t\t\tanimationPrefilters.unshift( callback );\n\t\t} else {\n\t\t\tanimationPrefilters.push( callback );\n\t\t}\n\t}\n});\n\njQuery.speed = function( speed, easing, fn ) {\n\tvar opt = speed && typeof speed === \"object\" ? jQuery.extend( {}, speed ) : {\n\t\tcomplete: fn || !fn && easing ||\n\t\t\tjQuery.isFunction( speed ) && speed,\n\t\tduration: speed,\n\t\teasing: fn && easing || easing && !jQuery.isFunction( easing ) && easing\n\t};\n\n\topt.duration = jQuery.fx.off ? 0 : typeof opt.duration === \"number\" ? opt.duration :\n\t\topt.duration in jQuery.fx.speeds ? jQuery.fx.speeds[ opt.duration ] : jQuery.fx.speeds._default;\n\n\t// normalize opt.queue - true/undefined/null -> \"fx\"\n\tif ( opt.queue == null || opt.queue === true ) {\n\t\topt.queue = \"fx\";\n\t}\n\n\t// Queueing\n\topt.old = opt.complete;\n\n\topt.complete = function() {\n\t\tif ( jQuery.isFunction( opt.old ) ) {\n\t\t\topt.old.call( this );\n\t\t}\n\n\t\tif ( opt.queue ) {\n\t\t\tjQuery.dequeue( this, opt.queue );\n\t\t}\n\t};\n\n\treturn opt;\n};\n\njQuery.fn.extend({\n\tfadeTo: function( speed, to, easing, callback ) {\n\n\t\t// show any hidden elements after setting opacity to 0\n\t\treturn this.filter( isHidden ).css( \"opacity\", 0 ).show()\n\n\t\t\t// animate to the value specified\n\t\t\t.end().animate({ opacity: to }, speed, easing, callback );\n\t},\n\tanimate: function( prop, speed, easing, callback ) {\n\t\tvar empty = jQuery.isEmptyObject( prop ),\n\t\t\toptall = jQuery.speed( speed, easing, callback ),\n\t\t\tdoAnimation = function() {\n\t\t\t\t// Operate on a copy of prop so per-property easing won't be lost\n\t\t\t\tvar anim = Animation( this, jQuery.extend( {}, prop ), optall );\n\n\t\t\t\t// Empty animations, or finishing resolves immediately\n\t\t\t\tif ( empty || jQuery._data( this, \"finish\" ) ) {\n\t\t\t\t\tanim.stop( true );\n\t\t\t\t}\n\t\t\t};\n\t\t\tdoAnimation.finish = doAnimation;\n\n\t\treturn empty || optall.queue === false ?\n\t\t\tthis.each( doAnimation ) :\n\t\t\tthis.queue( optall.queue, doAnimation );\n\t},\n\tstop: function( type, clearQueue, gotoEnd ) {\n\t\tvar stopQueue = function( hooks ) {\n\t\t\tvar stop = hooks.stop;\n\t\t\tdelete hooks.stop;\n\t\t\tstop( gotoEnd );\n\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tgotoEnd = clearQueue;\n\t\t\tclearQueue = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\tif ( clearQueue && type !== false ) {\n\t\t\tthis.queue( type || \"fx\", [] );\n\t\t}\n\n\t\treturn this.each(function() {\n\t\t\tvar dequeue = true,\n\t\t\t\tindex = type != null && type + \"queueHooks\",\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tdata = jQuery._data( this );\n\n\t\t\tif ( index ) {\n\t\t\t\tif ( data[ index ] && data[ index ].stop ) {\n\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( index in data ) {\n\t\t\t\t\tif ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {\n\t\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this && (type == null || timers[ index ].queue === type) ) {\n\t\t\t\t\ttimers[ index ].anim.stop( gotoEnd );\n\t\t\t\t\tdequeue = false;\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// start the next in the queue if the last step wasn't forced\n\t\t\t// timers currently will call their complete callbacks, which will dequeue\n\t\t\t// but only if they were gotoEnd\n\t\t\tif ( dequeue || !gotoEnd ) {\n\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t}\n\t\t});\n\t},\n\tfinish: function( type ) {\n\t\tif ( type !== false ) {\n\t\t\ttype = type || \"fx\";\n\t\t}\n\t\treturn this.each(function() {\n\t\t\tvar index,\n\t\t\t\tdata = jQuery._data( this ),\n\t\t\t\tqueue = data[ type + \"queue\" ],\n\t\t\t\thooks = data[ type + \"queueHooks\" ],\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tlength = queue ? queue.length : 0;\n\n\t\t\t// enable finishing flag on private data\n\t\t\tdata.finish = true;\n\n\t\t\t// empty the queue first\n\t\t\tjQuery.queue( this, type, [] );\n\n\t\t\tif ( hooks && hooks.stop ) {\n\t\t\t\thooks.stop.call( this, true );\n\t\t\t}\n\n\t\t\t// look for any active animations, and finish them\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this && timers[ index ].queue === type ) {\n\t\t\t\t\ttimers[ index ].anim.stop( true );\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// look for any animations in the old queue and finish them\n\t\t\tfor ( index = 0; index < length; index++ ) {\n\t\t\t\tif ( queue[ index ] && queue[ index ].finish ) {\n\t\t\t\t\tqueue[ index ].finish.call( this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// turn off finishing flag\n\t\t\tdelete data.finish;\n\t\t});\n\t}\n});\n\njQuery.each([ \"toggle\", \"show\", \"hide\" ], function( i, name ) {\n\tvar cssFn = jQuery.fn[ name ];\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn speed == null || typeof speed === \"boolean\" ?\n\t\t\tcssFn.apply( this, arguments ) :\n\t\t\tthis.animate( genFx( name, true ), speed, easing, callback );\n\t};\n});\n\n// Generate shortcuts for custom animations\njQuery.each({\n\tslideDown: genFx(\"show\"),\n\tslideUp: genFx(\"hide\"),\n\tslideToggle: genFx(\"toggle\"),\n\tfadeIn: { opacity: \"show\" },\n\tfadeOut: { opacity: \"hide\" },\n\tfadeToggle: { opacity: \"toggle\" }\n}, function( name, props ) {\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn this.animate( props, speed, easing, callback );\n\t};\n});\n\njQuery.timers = [];\njQuery.fx.tick = function() {\n\tvar timer,\n\t\ttimers = jQuery.timers,\n\t\ti = 0;\n\n\tfxNow = jQuery.now();\n\n\tfor ( ; i < timers.length; i++ ) {\n\t\ttimer = timers[ i ];\n\t\t// Checks the timer has not already been removed\n\t\tif ( !timer() && timers[ i ] === timer ) {\n\t\t\ttimers.splice( i--, 1 );\n\t\t}\n\t}\n\n\tif ( !timers.length ) {\n\t\tjQuery.fx.stop();\n\t}\n\tfxNow = undefined;\n};\n\njQuery.fx.timer = function( timer ) {\n\tjQuery.timers.push( timer );\n\tif ( timer() ) {\n\t\tjQuery.fx.start();\n\t} else {\n\t\tjQuery.timers.pop();\n\t}\n};\n\njQuery.fx.interval = 13;\n\njQuery.fx.start = function() {\n\tif ( !timerId ) {\n\t\ttimerId = setInterval( jQuery.fx.tick, jQuery.fx.interval );\n\t}\n};\n\njQuery.fx.stop = function() {\n\tclearInterval( timerId );\n\ttimerId = null;\n};\n\njQuery.fx.speeds = {\n\tslow: 600,\n\tfast: 200,\n\t// Default speed\n\t_default: 400\n};\n\n\n// Based off of the plugin by Clint Helfers, with permission.\n// http://blindsignals.com/index.php/2009/07/jquery-delay/\njQuery.fn.delay = function( time, type ) {\n\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\ttype = type || \"fx\";\n\n\treturn this.queue( type, function( next, hooks ) {\n\t\tvar timeout = setTimeout( next, time );\n\t\thooks.stop = function() {\n\t\t\tclearTimeout( timeout );\n\t\t};\n\t});\n};\n\n\n(function() {\n\t// Minified: var a,b,c,d,e\n\tvar input, div, select, a, opt;\n\n\t// Setup\n\tdiv = document.createElement( \"div\" );\n\tdiv.setAttribute( \"className\", \"t\" );\n\tdiv.innerHTML = \" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>\";\n\ta = div.getElementsByTagName(\"a\")[ 0 ];\n\n\t// First batch of tests.\n\tselect = document.createElement(\"select\");\n\topt = select.appendChild( document.createElement(\"option\") );\n\tinput = div.getElementsByTagName(\"input\")[ 0 ];\n\n\ta.style.cssText = \"top:1px\";\n\n\t// Test setAttribute on camelCase class. If it works, we need attrFixes when doing get/setAttribute (ie6/7)\n\tsupport.getSetAttribute = div.className !== \"t\";\n\n\t// Get the style information from getAttribute\n\t// (IE uses .cssText instead)\n\tsupport.style = /top/.test( a.getAttribute(\"style\") );\n\n\t// Make sure that URLs aren't manipulated\n\t// (IE normalizes it by default)\n\tsupport.hrefNormalized = a.getAttribute(\"href\") === \"/a\";\n\n\t// Check the default checkbox/radio value (\"\" on WebKit; \"on\" elsewhere)\n\tsupport.checkOn = !!input.value;\n\n\t// Make sure that a selected-by-default option has a working selected property.\n\t// (WebKit defaults to false instead of true, IE too, if it's in an optgroup)\n\tsupport.optSelected = opt.selected;\n\n\t// Tests for enctype support on a form (#6743)\n\tsupport.enctype = !!document.createElement(\"form\").enctype;\n\n\t// Make sure that the options inside disabled selects aren't marked as disabled\n\t// (WebKit marks them as disabled)\n\tselect.disabled = true;\n\tsupport.optDisabled = !opt.disabled;\n\n\t// Support: IE8 only\n\t// Check if we can trust getAttribute(\"value\")\n\tinput = document.createElement( \"input\" );\n\tinput.setAttribute( \"value\", \"\" );\n\tsupport.input = input.getAttribute( \"value\" ) === \"\";\n\n\t// Check if an input maintains its value after becoming a radio\n\tinput.value = \"t\";\n\tinput.setAttribute( \"type\", \"radio\" );\n\tsupport.radioValue = input.value === \"t\";\n})();\n\n\nvar rreturn = /\\r/g;\n\njQuery.fn.extend({\n\tval: function( value ) {\n\t\tvar hooks, ret, isFunction,\n\t\t\telem = this[0];\n\n\t\tif ( !arguments.length ) {\n\t\t\tif ( elem ) {\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] || jQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\tif ( hooks && \"get\" in hooks && (ret = hooks.get( elem, \"value\" )) !== undefined ) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\tret = elem.value;\n\n\t\t\t\treturn typeof ret === \"string\" ?\n\t\t\t\t\t// handle most common string cases\n\t\t\t\t\tret.replace(rreturn, \"\") :\n\t\t\t\t\t// handle cases where value is null/undef or number\n\t\t\t\t\tret == null ? \"\" : ret;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tisFunction = jQuery.isFunction( value );\n\n\t\treturn this.each(function( i ) {\n\t\t\tvar val;\n\n\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( isFunction ) {\n\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\n\t\t\t} else {\n\t\t\t\tval = value;\n\t\t\t}\n\n\t\t\t// Treat null/undefined as \"\"; convert numbers to string\n\t\t\tif ( val == null ) {\n\t\t\t\tval = \"\";\n\t\t\t} else if ( typeof val === \"number\" ) {\n\t\t\t\tval += \"\";\n\t\t\t} else if ( jQuery.isArray( val ) ) {\n\t\t\t\tval = jQuery.map( val, function( value ) {\n\t\t\t\t\treturn value == null ? \"\" : value + \"\";\n\t\t\t\t});\n\t\t\t}\n\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\tif ( !hooks || !(\"set\" in hooks) || hooks.set( this, val, \"value\" ) === undefined ) {\n\t\t\t\tthis.value = val;\n\t\t\t}\n\t\t});\n\t}\n});\n\njQuery.extend({\n\tvalHooks: {\n\t\toption: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar val = jQuery.find.attr( elem, \"value\" );\n\t\t\t\treturn val != null ?\n\t\t\t\t\tval :\n\t\t\t\t\t// Support: IE10-11+\n\t\t\t\t\t// option.text throws exceptions (#14686, #14858)\n\t\t\t\t\tjQuery.trim( jQuery.text( elem ) );\n\t\t\t}\n\t\t},\n\t\tselect: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar value, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\tone = elem.type === \"select-one\" || index < 0,\n\t\t\t\t\tvalues = one ? null : [],\n\t\t\t\t\tmax = one ? index + 1 : options.length,\n\t\t\t\t\ti = index < 0 ?\n\t\t\t\t\t\tmax :\n\t\t\t\t\t\tone ? index : 0;\n\n\t\t\t\t// Loop through all the selected options\n\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t// oldIE doesn't update selected after form reset (#2551)\n\t\t\t\t\tif ( ( option.selected || i === index ) &&\n\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\t\t\t\t\t\t\t( support.optDisabled ? !option.disabled : option.getAttribute(\"disabled\") === null ) &&\n\t\t\t\t\t\t\t( !option.parentNode.disabled || !jQuery.nodeName( option.parentNode, \"optgroup\" ) ) ) {\n\n\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t// We don't need an array for one selects\n\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn values;\n\t\t\t},\n\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar optionSet, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tvalues = jQuery.makeArray( value ),\n\t\t\t\t\ti = options.length;\n\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\tif ( jQuery.inArray( jQuery.valHooks.option.get( option ), values ) >= 0 ) {\n\n\t\t\t\t\t\t// Support: IE6\n\t\t\t\t\t\t// When new option element is added to select box we need to\n\t\t\t\t\t\t// force reflow of newly added node in order to workaround delay\n\t\t\t\t\t\t// of initialization properties\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\toption.selected = optionSet = true;\n\n\t\t\t\t\t\t} catch ( _ ) {\n\n\t\t\t\t\t\t\t// Will be executed only in IE6\n\t\t\t\t\t\t\toption.scrollHeight;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\toption.selected = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Force browsers to behave consistently when non-matching value is set\n\t\t\t\tif ( !optionSet ) {\n\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t}\n\n\t\t\t\treturn options;\n\t\t\t}\n\t\t}\n\t}\n});\n\n// Radios and checkboxes getter/setter\njQuery.each([ \"radio\", \"checkbox\" ], function() {\n\tjQuery.valHooks[ this ] = {\n\t\tset: function( elem, value ) {\n\t\t\tif ( jQuery.isArray( value ) ) {\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0 );\n\t\t\t}\n\t\t}\n\t};\n\tif ( !support.checkOn ) {\n\t\tjQuery.valHooks[ this ].get = function( elem ) {\n\t\t\t// Support: Webkit\n\t\t\t// \"\" is returned instead of \"on\" if a value isn't specified\n\t\t\treturn elem.getAttribute(\"value\") === null ? \"on\" : elem.value;\n\t\t};\n\t}\n});\n\n\n\n\nvar nodeHook, boolHook,\n\tattrHandle = jQuery.expr.attrHandle,\n\truseDefault = /^(?:checked|selected)$/i,\n\tgetSetAttribute = support.getSetAttribute,\n\tgetSetInput = support.input;\n\njQuery.fn.extend({\n\tattr: function( name, value ) {\n\t\treturn access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t},\n\n\tremoveAttr: function( name ) {\n\t\treturn this.each(function() {\n\t\t\tjQuery.removeAttr( this, name );\n\t\t});\n\t}\n});\n\njQuery.extend({\n\tattr: function( elem, name, value ) {\n\t\tvar hooks, ret,\n\t\t\tnType = elem.nodeType;\n\n\t\t// don't get/set attributes on text, comment and attribute nodes\n\t\tif ( !elem || nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback to prop when attributes are not supported\n\t\tif ( typeof elem.getAttribute === strundefined ) {\n\t\t\treturn jQuery.prop( elem, name, value );\n\t\t}\n\n\t\t// All attributes are lowercase\n\t\t// Grab necessary hook if one is defined\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\t\t\tname = name.toLowerCase();\n\t\t\thooks = jQuery.attrHooks[ name ] ||\n\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : nodeHook );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\n\t\t\tif ( value === null ) {\n\t\t\t\tjQuery.removeAttr( elem, name );\n\n\t\t\t} else if ( hooks && \"set\" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) {\n\t\t\t\treturn ret;\n\n\t\t\t} else {\n\t\t\t\telem.setAttribute( name, value + \"\" );\n\t\t\t\treturn value;\n\t\t\t}\n\n\t\t} else if ( hooks && \"get\" in hooks && (ret = hooks.get( elem, name )) !== null ) {\n\t\t\treturn ret;\n\n\t\t} else {\n\t\t\tret = jQuery.find.attr( elem, name );\n\n\t\t\t// Non-existent attributes return null, we normalize to undefined\n\t\t\treturn ret == null ?\n\t\t\t\tundefined :\n\t\t\t\tret;\n\t\t}\n\t},\n\n\tremoveAttr: function( elem, value ) {\n\t\tvar name, propName,\n\t\t\ti = 0,\n\t\t\tattrNames = value && value.match( rnotwhite );\n\n\t\tif ( attrNames && elem.nodeType === 1 ) {\n\t\t\twhile ( (name = attrNames[i++]) ) {\n\t\t\t\tpropName = jQuery.propFix[ name ] || name;\n\n\t\t\t\t// Boolean attributes get special treatment (#10870)\n\t\t\t\tif ( jQuery.expr.match.bool.test( name ) ) {\n\t\t\t\t\t// Set corresponding property to false\n\t\t\t\t\tif ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) {\n\t\t\t\t\t\telem[ propName ] = false;\n\t\t\t\t\t// Support: IE<9\n\t\t\t\t\t// Also clear defaultChecked/defaultSelected (if appropriate)\n\t\t\t\t\t} else {\n\t\t\t\t\t\telem[ jQuery.camelCase( \"default-\" + name ) ] =\n\t\t\t\t\t\t\telem[ propName ] = false;\n\t\t\t\t\t}\n\n\t\t\t\t// See #9699 for explanation of this approach (setting first, then removal)\n\t\t\t\t} else {\n\t\t\t\t\tjQuery.attr( elem, name, \"\" );\n\t\t\t\t}\n\n\t\t\t\telem.removeAttribute( getSetAttribute ? name : propName );\n\t\t\t}\n\t\t}\n\t},\n\n\tattrHooks: {\n\t\ttype: {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( !support.radioValue && value === \"radio\" && jQuery.nodeName(elem, \"input\") ) {\n\t\t\t\t\t// Setting the type on a radio button after the value resets the value in IE6-9\n\t\t\t\t\t// Reset value to default in case type is set after value during creation\n\t\t\t\t\tvar val = elem.value;\n\t\t\t\t\telem.setAttribute( \"type\", value );\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\telem.value = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n});\n\n// Hook for boolean attributes\nboolHook = {\n\tset: function( elem, value, name ) {\n\t\tif ( value === false ) {\n\t\t\t// Remove boolean attributes when set to false\n\t\t\tjQuery.removeAttr( elem, name );\n\t\t} else if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) {\n\t\t\t// IE<8 needs the *property* name\n\t\t\telem.setAttribute( !getSetAttribute && jQuery.propFix[ name ] || name, name );\n\n\t\t// Use defaultChecked and defaultSelected for oldIE\n\t\t} else {\n\t\t\telem[ jQuery.camelCase( \"default-\" + name ) ] = elem[ name ] = true;\n\t\t}\n\n\t\treturn name;\n\t}\n};\n\n// Retrieve booleans specially\njQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( i, name ) {\n\n\tvar getter = attrHandle[ name ] || jQuery.find.attr;\n\n\tattrHandle[ name ] = getSetInput && getSetAttribute || !ruseDefault.test( name ) ?\n\t\tfunction( elem, name, isXML ) {\n\t\t\tvar ret, handle;\n\t\t\tif ( !isXML ) {\n\t\t\t\t// Avoid an infinite loop by temporarily removing this function from the getter\n\t\t\t\thandle = attrHandle[ name ];\n\t\t\t\tattrHandle[ name ] = ret;\n\t\t\t\tret = getter( elem, name, isXML ) != null ?\n\t\t\t\t\tname.toLowerCase() :\n\t\t\t\t\tnull;\n\t\t\t\tattrHandle[ name ] = handle;\n\t\t\t}\n\t\t\treturn ret;\n\t\t} :\n\t\tfunction( elem, name, isXML ) {\n\t\t\tif ( !isXML ) {\n\t\t\t\treturn elem[ jQuery.camelCase( \"default-\" + name ) ] ?\n\t\t\t\t\tname.toLowerCase() :\n\t\t\t\t\tnull;\n\t\t\t}\n\t\t};\n});\n\n// fix oldIE attroperties\nif ( !getSetInput || !getSetAttribute ) {\n\tjQuery.attrHooks.value = {\n\t\tset: function( elem, value, name ) {\n\t\t\tif ( jQuery.nodeName( elem, \"input\" ) ) {\n\t\t\t\t// Does not return so that setAttribute is also used\n\t\t\t\telem.defaultValue = value;\n\t\t\t} else {\n\t\t\t\t// Use nodeHook if defined (#1954); otherwise setAttribute is fine\n\t\t\t\treturn nodeHook && nodeHook.set( elem, value, name );\n\t\t\t}\n\t\t}\n\t};\n}\n\n// IE6/7 do not support getting/setting some attributes with get/setAttribute\nif ( !getSetAttribute ) {\n\n\t// Use this for any attribute in IE6/7\n\t// This fixes almost every IE6/7 issue\n\tnodeHook = {\n\t\tset: function( elem, value, name ) {\n\t\t\t// Set the existing or create a new attribute node\n\t\t\tvar ret = elem.getAttributeNode( name );\n\t\t\tif ( !ret ) {\n\t\t\t\telem.setAttributeNode(\n\t\t\t\t\t(ret = elem.ownerDocument.createAttribute( name ))\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tret.value = value += \"\";\n\n\t\t\t// Break association with cloned elements by also using setAttribute (#9646)\n\t\t\tif ( name === \"value\" || value === elem.getAttribute( name ) ) {\n\t\t\t\treturn value;\n\t\t\t}\n\t\t}\n\t};\n\n\t// Some attributes are constructed with empty-string values when not defined\n\tattrHandle.id = attrHandle.name = attrHandle.coords =\n\t\tfunction( elem, name, isXML ) {\n\t\t\tvar ret;\n\t\t\tif ( !isXML ) {\n\t\t\t\treturn (ret = elem.getAttributeNode( name )) && ret.value !== \"\" ?\n\t\t\t\t\tret.value :\n\t\t\t\t\tnull;\n\t\t\t}\n\t\t};\n\n\t// Fixing value retrieval on a button requires this module\n\tjQuery.valHooks.button = {\n\t\tget: function( elem, name ) {\n\t\t\tvar ret = elem.getAttributeNode( name );\n\t\t\tif ( ret && ret.specified ) {\n\t\t\t\treturn ret.value;\n\t\t\t}\n\t\t},\n\t\tset: nodeHook.set\n\t};\n\n\t// Set contenteditable to false on removals(#10429)\n\t// Setting to empty string throws an error as an invalid value\n\tjQuery.attrHooks.contenteditable = {\n\t\tset: function( elem, value, name ) {\n\t\t\tnodeHook.set( elem, value === \"\" ? false : value, name );\n\t\t}\n\t};\n\n\t// Set width and height to auto instead of 0 on empty string( Bug #8150 )\n\t// This is for removals\n\tjQuery.each([ \"width\", \"height\" ], function( i, name ) {\n\t\tjQuery.attrHooks[ name ] = {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( value === \"\" ) {\n\t\t\t\t\telem.setAttribute( name, \"auto\" );\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t});\n}\n\nif ( !support.style ) {\n\tjQuery.attrHooks.style = {\n\t\tget: function( elem ) {\n\t\t\t// Return undefined in the case of empty string\n\t\t\t// Note: IE uppercases css property names, but if we were to .toLowerCase()\n\t\t\t// .cssText, that would destroy case senstitivity in URL's, like in \"background\"\n\t\t\treturn elem.style.cssText || undefined;\n\t\t},\n\t\tset: function( elem, value ) {\n\t\t\treturn ( elem.style.cssText = value + \"\" );\n\t\t}\n\t};\n}\n\n\n\n\nvar rfocusable = /^(?:input|select|textarea|button|object)$/i,\n\trclickable = /^(?:a|area)$/i;\n\njQuery.fn.extend({\n\tprop: function( name, value ) {\n\t\treturn access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t},\n\n\tremoveProp: function( name ) {\n\t\tname = jQuery.propFix[ name ] || name;\n\t\treturn this.each(function() {\n\t\t\t// try/catch handles cases where IE balks (such as removing a property on window)\n\t\t\ttry {\n\t\t\t\tthis[ name ] = undefined;\n\t\t\t\tdelete this[ name ];\n\t\t\t} catch( e ) {}\n\t\t});\n\t}\n});\n\njQuery.extend({\n\tpropFix: {\n\t\t\"for\": \"htmlFor\",\n\t\t\"class\": \"className\"\n\t},\n\n\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks, notxml,\n\t\t\tnType = elem.nodeType;\n\n\t\t// don't get/set properties on text, comment and attribute nodes\n\t\tif ( !elem || nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tnotxml = nType !== 1 || !jQuery.isXMLDoc( elem );\n\n\t\tif ( notxml ) {\n\t\t\t// Fix name and attach hooks\n\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\thooks = jQuery.propHooks[ name ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\treturn hooks && \"set\" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ?\n\t\t\t\tret :\n\t\t\t\t( elem[ name ] = value );\n\n\t\t} else {\n\t\t\treturn hooks && \"get\" in hooks && (ret = hooks.get( elem, name )) !== null ?\n\t\t\t\tret :\n\t\t\t\telem[ name ];\n\t\t}\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\t\t\t\t// elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set\n\t\t\t\t// http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\n\t\t\t\t// Use proper attribute retrieval(#12072)\n\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\n\n\t\t\t\treturn tabindex ?\n\t\t\t\t\tparseInt( tabindex, 10 ) :\n\t\t\t\t\trfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ?\n\t\t\t\t\t\t0 :\n\t\t\t\t\t\t-1;\n\t\t\t}\n\t\t}\n\t}\n});\n\n// Some attributes require a special call on IE\n// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !support.hrefNormalized ) {\n\t// href/src property should get the full normalized URL (#10299/#12915)\n\tjQuery.each([ \"href\", \"src\" ], function( i, name ) {\n\t\tjQuery.propHooks[ name ] = {\n\t\t\tget: function( elem ) {\n\t\t\t\treturn elem.getAttribute( name, 4 );\n\t\t\t}\n\t\t};\n\t});\n}\n\n// Support: Safari, IE9+\n// mis-reports the default selected property of an option\n// Accessing the parent's selectedIndex property fixes it\nif ( !support.optSelected ) {\n\tjQuery.propHooks.selected = {\n\t\tget: function( elem ) {\n\t\t\tvar parent = elem.parentNode;\n\n\t\t\tif ( parent ) {\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\t// Make sure that it also works with optgroups, see #5701\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn null;\n\t\t}\n\t};\n}\n\njQuery.each([\n\t\"tabIndex\",\n\t\"readOnly\",\n\t\"maxLength\",\n\t\"cellSpacing\",\n\t\"cellPadding\",\n\t\"rowSpan\",\n\t\"colSpan\",\n\t\"useMap\",\n\t\"frameBorder\",\n\t\"contentEditable\"\n], function() {\n\tjQuery.propFix[ this.toLowerCase() ] = this;\n});\n\n// IE6/7 call enctype encoding\nif ( !support.enctype ) {\n\tjQuery.propFix.enctype = \"encoding\";\n}\n\n\n\n\nvar rclass = /[\\t\\r\\n\\f]/g;\n\njQuery.fn.extend({\n\taddClass: function( value ) {\n\t\tvar classes, elem, cur, clazz, j, finalValue,\n\t\t\ti = 0,\n\t\t\tlen = this.length,\n\t\t\tproceed = typeof value === \"string\" && value;\n\n\t\tif ( jQuery.isFunction( value ) ) {\n\t\t\treturn this.each(function( j ) {\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, this.className ) );\n\t\t\t});\n\t\t}\n\n\t\tif ( proceed ) {\n\t\t\t// The disjunction here is for better compressibility (see removeClass)\n\t\t\tclasses = ( value || \"\" ).match( rnotwhite ) || [];\n\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\telem = this[ i ];\n\t\t\t\tcur = elem.nodeType === 1 && ( elem.className ?\n\t\t\t\t\t( \" \" + elem.className + \" \" ).replace( rclass, \" \" ) :\n\t\t\t\t\t\" \"\n\t\t\t\t);\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( (clazz = classes[j++]) ) {\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + clazz + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += clazz + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = jQuery.trim( cur );\n\t\t\t\t\tif ( elem.className !== finalValue ) {\n\t\t\t\t\t\telem.className = finalValue;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tremoveClass: function( value ) {\n\t\tvar classes, elem, cur, clazz, j, finalValue,\n\t\t\ti = 0,\n\t\t\tlen = this.length,\n\t\t\tproceed = arguments.length === 0 || typeof value === \"string\" && value;\n\n\t\tif ( jQuery.isFunction( value ) ) {\n\t\t\treturn this.each(function( j ) {\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, this.className ) );\n\t\t\t});\n\t\t}\n\t\tif ( proceed ) {\n\t\t\tclasses = ( value || \"\" ).match( rnotwhite ) || [];\n\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\telem = this[ i ];\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = elem.nodeType === 1 && ( elem.className ?\n\t\t\t\t\t( \" \" + elem.className + \" \" ).replace( rclass, \" \" ) :\n\t\t\t\t\t\"\"\n\t\t\t\t);\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( (clazz = classes[j++]) ) {\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + clazz + \" \" ) >= 0 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + clazz + \" \", \" \" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = value ? jQuery.trim( cur ) : \"\";\n\t\t\t\t\tif ( elem.className !== finalValue ) {\n\t\t\t\t\t\telem.className = finalValue;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttoggleClass: function( value, stateVal ) {\n\t\tvar type = typeof value;\n\n\t\tif ( typeof stateVal === \"boolean\" && type === \"string\" ) {\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t}\n\n\t\tif ( jQuery.isFunction( value ) ) {\n\t\t\treturn this.each(function( i ) {\n\t\t\t\tjQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal );\n\t\t\t});\n\t\t}\n\n\t\treturn this.each(function() {\n\t\t\tif ( type === \"string\" ) {\n\t\t\t\t// toggle individual class names\n\t\t\t\tvar className,\n\t\t\t\t\ti = 0,\n\t\t\t\t\tself = jQuery( this ),\n\t\t\t\t\tclassNames = value.match( rnotwhite ) || [];\n\n\t\t\t\twhile ( (className = classNames[ i++ ]) ) {\n\t\t\t\t\t// check each className given, space separated list\n\t\t\t\t\tif ( self.hasClass( className ) ) {\n\t\t\t\t\t\tself.removeClass( className );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.addClass( className );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Toggle whole class name\n\t\t\t} else if ( type === strundefined || type === \"boolean\" ) {\n\t\t\t\tif ( this.className ) {\n\t\t\t\t\t// store className if set\n\t\t\t\t\tjQuery._data( this, \"__className__\", this.className );\n\t\t\t\t}\n\n\t\t\t\t// If the element has a class name or if we're passed \"false\",\n\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\t\t\t\t// falling back to the empty string if nothing was stored.\n\t\t\t\tthis.className = this.className || value === false ? \"\" : jQuery._data( this, \"__className__\" ) || \"\";\n\t\t\t}\n\t\t});\n\t},\n\n\thasClass: function( selector ) {\n\t\tvar className = \" \" + selector + \" \",\n\t\t\ti = 0,\n\t\t\tl = this.length;\n\t\tfor ( ; i < l; i++ ) {\n\t\t\tif ( this[i].nodeType === 1 && (\" \" + this[i].className + \" \").replace(rclass, \" \").indexOf( className ) >= 0 ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n});\n\n\n\n\n// Return jQuery for attributes-only inclusion\n\n\njQuery.each( (\"blur focus focusin focusout load resize scroll unload click dblclick \" +\n\t\"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave \" +\n\t\"change select submit keydown keypress keyup error contextmenu\").split(\" \"), function( i, name ) {\n\n\t// Handle event binding\n\tjQuery.fn[ name ] = function( data, fn ) {\n\t\treturn arguments.length > 0 ?\n\t\t\tthis.on( name, null, data, fn ) :\n\t\t\tthis.trigger( name );\n\t};\n});\n\njQuery.fn.extend({\n\thover: function( fnOver, fnOut ) {\n\t\treturn this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );\n\t},\n\n\tbind: function( types, data, fn ) {\n\t\treturn this.on( types, null, data, fn );\n\t},\n\tunbind: function( types, fn ) {\n\t\treturn this.off( types, null, fn );\n\t},\n\n\tdelegate: function( selector, types, data, fn ) {\n\t\treturn this.on( types, selector, data, fn );\n\t},\n\tundelegate: function( selector, types, fn ) {\n\t\t// ( namespace ) or ( selector, types [, fn] )\n\t\treturn arguments.length === 1 ? this.off( selector, \"**\" ) : this.off( types, selector || \"**\", fn );\n\t}\n});\n\n\nvar nonce = jQuery.now();\n\nvar rquery = (/\\?/);\n\n\n\nvar rvalidtokens = /(,)|(\\[|{)|(}|])|\"(?:[^\"\\\\\\r\\n]|\\\\[\"\\\\\\/bfnrt]|\\\\u[\\da-fA-F]{4})*\"\\s*:?|true|false|null|-?(?!0\\d)\\d+(?:\\.\\d+|)(?:[eE][+-]?\\d+|)/g;\n\njQuery.parseJSON = function( data ) {\n\t// Attempt to parse using the native JSON parser first\n\tif ( window.JSON && window.JSON.parse ) {\n\t\t// Support: Android 2.3\n\t\t// Workaround failure to string-cast null input\n\t\treturn window.JSON.parse( data + \"\" );\n\t}\n\n\tvar requireNonComma,\n\t\tdepth = null,\n\t\tstr = jQuery.trim( data + \"\" );\n\n\t// Guard against invalid (and possibly dangerous) input by ensuring that nothing remains\n\t// after removing valid tokens\n\treturn str && !jQuery.trim( str.replace( rvalidtokens, function( token, comma, open, close ) {\n\n\t\t// Force termination if we see a misplaced comma\n\t\tif ( requireNonComma && comma ) {\n\t\t\tdepth = 0;\n\t\t}\n\n\t\t// Perform no more replacements after returning to outermost depth\n\t\tif ( depth === 0 ) {\n\t\t\treturn token;\n\t\t}\n\n\t\t// Commas must not follow \"[\", \"{\", or \",\"\n\t\trequireNonComma = open || comma;\n\n\t\t// Determine new depth\n\t\t// array/object open (\"[\" or \"{\"): depth += true - false (increment)\n\t\t// array/object close (\"]\" or \"}\"): depth += false - true (decrement)\n\t\t// other cases (\",\" or primitive): depth += true - true (numeric cast)\n\t\tdepth += !close - !open;\n\n\t\t// Remove this token\n\t\treturn \"\";\n\t}) ) ?\n\t\t( Function( \"return \" + str ) )() :\n\t\tjQuery.error( \"Invalid JSON: \" + data );\n};\n\n\n// Cross-browser xml parsing\njQuery.parseXML = function( data ) {\n\tvar xml, tmp;\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\ttry {\n\t\tif ( window.DOMParser ) { // Standard\n\t\t\ttmp = new DOMParser();\n\t\t\txml = tmp.parseFromString( data, \"text/xml\" );\n\t\t} else { // IE\n\t\t\txml = new ActiveXObject( \"Microsoft.XMLDOM\" );\n\t\t\txml.async = \"false\";\n\t\t\txml.loadXML( data );\n\t\t}\n\t} catch( e ) {\n\t\txml = undefined;\n\t}\n\tif ( !xml || !xml.documentElement || xml.getElementsByTagName( \"parsererror\" ).length ) {\n\t\tjQuery.error( \"Invalid XML: \" + data );\n\t}\n\treturn xml;\n};\n\n\nvar\n\t// Document location\n\tajaxLocParts,\n\tajaxLocation,\n\n\trhash = /#.*$/,\n\trts = /([?&])_=[^&]*/,\n\trheaders = /^(.*?):[ \\t]*([^\\r\\n]*)\\r?$/mg, // IE leaves an \\r character at EOL\n\t// #7653, #8125, #8152: local protocol detection\n\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n\trnoContent = /^(?:GET|HEAD)$/,\n\trprotocol = /^\\/\\//,\n\trurl = /^([\\w.+-]+:)(?:\\/\\/(?:[^\\/?#]*@|)([^\\/?#:]*)(?::(\\d+)|)|)/,\n\n\t/* Prefilters\n\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n\t * 2) These are called:\n\t * - BEFORE asking for a transport\n\t * - AFTER param serialization (s.data is a string if s.processData is true)\n\t * 3) key is the dataType\n\t * 4) the catchall symbol \"*\" can be used\n\t * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n\t */\n\tprefilters = {},\n\n\t/* Transports bindings\n\t * 1) key is the dataType\n\t * 2) the catchall symbol \"*\" can be used\n\t * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n\t */\n\ttransports = {},\n\n\t// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression\n\tallTypes = \"*/\".concat(\"*\");\n\n// #8138, IE may throw an exception when accessing\n// a field from window.location if document.domain has been set\ntry {\n\tajaxLocation = location.href;\n} catch( e ) {\n\t// Use the href attribute of an A element\n\t// since IE will modify it given document.location\n\tajaxLocation = document.createElement( \"a\" );\n\tajaxLocation.href = \"\";\n\tajaxLocation = ajaxLocation.href;\n}\n\n// Segment location into parts\najaxLocParts = rurl.exec( ajaxLocation.toLowerCase() ) || [];\n\n// Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\nfunction addToPrefiltersOrTransports( structure ) {\n\n\t// dataTypeExpression is optional and defaults to \"*\"\n\treturn function( dataTypeExpression, func ) {\n\n\t\tif ( typeof dataTypeExpression !== \"string\" ) {\n\t\t\tfunc = dataTypeExpression;\n\t\t\tdataTypeExpression = \"*\";\n\t\t}\n\n\t\tvar dataType,\n\t\t\ti = 0,\n\t\t\tdataTypes = dataTypeExpression.toLowerCase().match( rnotwhite ) || [];\n\n\t\tif ( jQuery.isFunction( func ) ) {\n\t\t\t// For each dataType in the dataTypeExpression\n\t\t\twhile ( (dataType = dataTypes[i++]) ) {\n\t\t\t\t// Prepend if requested\n\t\t\t\tif ( dataType.charAt( 0 ) === \"+\" ) {\n\t\t\t\t\tdataType = dataType.slice( 1 ) || \"*\";\n\t\t\t\t\t(structure[ dataType ] = structure[ dataType ] || []).unshift( func );\n\n\t\t\t\t// Otherwise append\n\t\t\t\t} else {\n\t\t\t\t\t(structure[ dataType ] = structure[ dataType ] || []).push( func );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\n// Base inspection function for prefilters and transports\nfunction inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {\n\n\tvar inspected = {},\n\t\tseekingTransport = ( structure === transports );\n\n\tfunction inspect( dataType ) {\n\t\tvar selected;\n\t\tinspected[ dataType ] = true;\n\t\tjQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {\n\t\t\tvar dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );\n\t\t\tif ( typeof dataTypeOrTransport === \"string\" && !seekingTransport && !inspected[ dataTypeOrTransport ] ) {\n\t\t\t\toptions.dataTypes.unshift( dataTypeOrTransport );\n\t\t\t\tinspect( dataTypeOrTransport );\n\t\t\t\treturn false;\n\t\t\t} else if ( seekingTransport ) {\n\t\t\t\treturn !( selected = dataTypeOrTransport );\n\t\t\t}\n\t\t});\n\t\treturn selected;\n\t}\n\n\treturn inspect( options.dataTypes[ 0 ] ) || !inspected[ \"*\" ] && inspect( \"*\" );\n}\n\n// A special extend for ajax options\n// that takes \"flat\" options (not to be deep extended)\n// Fixes #9887\nfunction ajaxExtend( target, src ) {\n\tvar deep, key,\n\t\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n\tfor ( key in src ) {\n\t\tif ( src[ key ] !== undefined ) {\n\t\t\t( flatOptions[ key ] ? target : ( deep || (deep = {}) ) )[ key ] = src[ key ];\n\t\t}\n\t}\n\tif ( deep ) {\n\t\tjQuery.extend( true, target, deep );\n\t}\n\n\treturn target;\n}\n\n/* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\nfunction ajaxHandleResponses( s, jqXHR, responses ) {\n\tvar firstDataType, ct, finalDataType, type,\n\t\tcontents = s.contents,\n\t\tdataTypes = s.dataTypes;\n\n\t// Remove auto dataType and get content-type in the process\n\twhile ( dataTypes[ 0 ] === \"*\" ) {\n\t\tdataTypes.shift();\n\t\tif ( ct === undefined ) {\n\t\t\tct = s.mimeType || jqXHR.getResponseHeader(\"Content-Type\");\n\t\t}\n\t}\n\n\t// Check if we're dealing with a known content-type\n\tif ( ct ) {\n\t\tfor ( type in contents ) {\n\t\t\tif ( contents[ type ] && contents[ type ].test( ct ) ) {\n\t\t\t\tdataTypes.unshift( type );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check to see if we have a response for the expected dataType\n\tif ( dataTypes[ 0 ] in responses ) {\n\t\tfinalDataType = dataTypes[ 0 ];\n\t} else {\n\t\t// Try convertible dataTypes\n\t\tfor ( type in responses ) {\n\t\t\tif ( !dataTypes[ 0 ] || s.converters[ type + \" \" + dataTypes[0] ] ) {\n\t\t\t\tfinalDataType = type;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( !firstDataType ) {\n\t\t\t\tfirstDataType = type;\n\t\t\t}\n\t\t}\n\t\t// Or just use first one\n\t\tfinalDataType = finalDataType || firstDataType;\n\t}\n\n\t// If we found a dataType\n\t// We add the dataType to the list if needed\n\t// and return the corresponding response\n\tif ( finalDataType ) {\n\t\tif ( finalDataType !== dataTypes[ 0 ] ) {\n\t\t\tdataTypes.unshift( finalDataType );\n\t\t}\n\t\treturn responses[ finalDataType ];\n\t}\n}\n\n/* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\nfunction ajaxConvert( s, response, jqXHR, isSuccess ) {\n\tvar conv2, current, conv, tmp, prev,\n\t\tconverters = {},\n\t\t// Work with a copy of dataTypes in case we need to modify it for conversion\n\t\tdataTypes = s.dataTypes.slice();\n\n\t// Create converters map with lowercased keys\n\tif ( dataTypes[ 1 ] ) {\n\t\tfor ( conv in s.converters ) {\n\t\t\tconverters[ conv.toLowerCase() ] = s.converters[ conv ];\n\t\t}\n\t}\n\n\tcurrent = dataTypes.shift();\n\n\t// Convert to each sequential dataType\n\twhile ( current ) {\n\n\t\tif ( s.responseFields[ current ] ) {\n\t\t\tjqXHR[ s.responseFields[ current ] ] = response;\n\t\t}\n\n\t\t// Apply the dataFilter if provided\n\t\tif ( !prev && isSuccess && s.dataFilter ) {\n\t\t\tresponse = s.dataFilter( response, s.dataType );\n\t\t}\n\n\t\tprev = current;\n\t\tcurrent = dataTypes.shift();\n\n\t\tif ( current ) {\n\n\t\t\t// There's only work to do if current dataType is non-auto\n\t\t\tif ( current === \"*\" ) {\n\n\t\t\t\tcurrent = prev;\n\n\t\t\t// Convert response if prev dataType is non-auto and differs from current\n\t\t\t} else if ( prev !== \"*\" && prev !== current ) {\n\n\t\t\t\t// Seek a direct converter\n\t\t\t\tconv = converters[ prev + \" \" + current ] || converters[ \"* \" + current ];\n\n\t\t\t\t// If none found, seek a pair\n\t\t\t\tif ( !conv ) {\n\t\t\t\t\tfor ( conv2 in converters ) {\n\n\t\t\t\t\t\t// If conv2 outputs current\n\t\t\t\t\t\ttmp = conv2.split( \" \" );\n\t\t\t\t\t\tif ( tmp[ 1 ] === current ) {\n\n\t\t\t\t\t\t\t// If prev can be converted to accepted input\n\t\t\t\t\t\t\tconv = converters[ prev + \" \" + tmp[ 0 ] ] ||\n\t\t\t\t\t\t\t\tconverters[ \"* \" + tmp[ 0 ] ];\n\t\t\t\t\t\t\tif ( conv ) {\n\t\t\t\t\t\t\t\t// Condense equivalence converters\n\t\t\t\t\t\t\t\tif ( conv === true ) {\n\t\t\t\t\t\t\t\t\tconv = converters[ conv2 ];\n\n\t\t\t\t\t\t\t\t// Otherwise, insert the intermediate dataType\n\t\t\t\t\t\t\t\t} else if ( converters[ conv2 ] !== true ) {\n\t\t\t\t\t\t\t\t\tcurrent = tmp[ 0 ];\n\t\t\t\t\t\t\t\t\tdataTypes.unshift( tmp[ 1 ] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Apply converter (if not an equivalence)\n\t\t\t\tif ( conv !== true ) {\n\n\t\t\t\t\t// Unless errors are allowed to bubble, catch and return them\n\t\t\t\t\tif ( conv && s[ \"throws\" ] ) {\n\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\treturn { state: \"parsererror\", error: conv ? e : \"No conversion from \" + prev + \" to \" + current };\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { state: \"success\", data: response };\n}\n\njQuery.extend({\n\n\t// Counter for holding the number of active queries\n\tactive: 0,\n\n\t// Last-Modified header cache for next request\n\tlastModified: {},\n\tetag: {},\n\n\tajaxSettings: {\n\t\turl: ajaxLocation,\n\t\ttype: \"GET\",\n\t\tisLocal: rlocalProtocol.test( ajaxLocParts[ 1 ] ),\n\t\tglobal: true,\n\t\tprocessData: true,\n\t\tasync: true,\n\t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\t\t/*\n\t\ttimeout: 0,\n\t\tdata: null,\n\t\tdataType: null,\n\t\tusername: null,\n\t\tpassword: null,\n\t\tcache: null,\n\t\tthrows: false,\n\t\ttraditional: false,\n\t\theaders: {},\n\t\t*/\n\n\t\taccepts: {\n\t\t\t\"*\": allTypes,\n\t\t\ttext: \"text/plain\",\n\t\t\thtml: \"text/html\",\n\t\t\txml: \"application/xml, text/xml\",\n\t\t\tjson: \"application/json, text/javascript\"\n\t\t},\n\n\t\tcontents: {\n\t\t\txml: /xml/,\n\t\t\thtml: /html/,\n\t\t\tjson: /json/\n\t\t},\n\n\t\tresponseFields: {\n\t\t\txml: \"responseXML\",\n\t\t\ttext: \"responseText\",\n\t\t\tjson: \"responseJSON\"\n\t\t},\n\n\t\t// Data converters\n\t\t// Keys separate source (or catchall \"*\") and destination types with a single space\n\t\tconverters: {\n\n\t\t\t// Convert anything to text\n\t\t\t\"* text\": String,\n\n\t\t\t// Text to html (true = no transformation)\n\t\t\t\"text html\": true,\n\n\t\t\t// Evaluate text as a json expression\n\t\t\t\"text json\": jQuery.parseJSON,\n\n\t\t\t// Parse text as xml\n\t\t\t\"text xml\": jQuery.parseXML\n\t\t},\n\n\t\t// For options that shouldn't be deep extended:\n\t\t// you can add your own custom options here if\n\t\t// and when you create one that shouldn't be\n\t\t// deep extended (see ajaxExtend)\n\t\tflatOptions: {\n\t\t\turl: true,\n\t\t\tcontext: true\n\t\t}\n\t},\n\n\t// Creates a full fledged settings object into target\n\t// with both ajaxSettings and settings fields.\n\t// If target is omitted, writes into ajaxSettings.\n\tajaxSetup: function( target, settings ) {\n\t\treturn settings ?\n\n\t\t\t// Building a settings object\n\t\t\tajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :\n\n\t\t\t// Extending ajaxSettings\n\t\t\tajaxExtend( jQuery.ajaxSettings, target );\n\t},\n\n\tajaxPrefilter: addToPrefiltersOrTransports( prefilters ),\n\tajaxTransport: addToPrefiltersOrTransports( transports ),\n\n\t// Main method\n\tajax: function( url, options ) {\n\n\t\t// If url is an object, simulate pre-1.5 signature\n\t\tif ( typeof url === \"object\" ) {\n\t\t\toptions = url;\n\t\t\turl = undefined;\n\t\t}\n\n\t\t// Force options to be an object\n\t\toptions = options || {};\n\n\t\tvar // Cross-domain detection vars\n\t\t\tparts,\n\t\t\t// Loop variable\n\t\t\ti,\n\t\t\t// URL without anti-cache param\n\t\t\tcacheURL,\n\t\t\t// Response headers as string\n\t\t\tresponseHeadersString,\n\t\t\t// timeout handle\n\t\t\ttimeoutTimer,\n\n\t\t\t// To know if global events are to be dispatched\n\t\t\tfireGlobals,\n\n\t\t\ttransport,\n\t\t\t// Response headers\n\t\t\tresponseHeaders,\n\t\t\t// Create the final options object\n\t\t\ts = jQuery.ajaxSetup( {}, options ),\n\t\t\t// Callbacks context\n\t\t\tcallbackContext = s.context || s,\n\t\t\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\n\t\t\tglobalEventContext = s.context && ( callbackContext.nodeType || callbackContext.jquery ) ?\n\t\t\t\tjQuery( callbackContext ) :\n\t\t\t\tjQuery.event,\n\t\t\t// Deferreds\n\t\t\tdeferred = jQuery.Deferred(),\n\t\t\tcompleteDeferred = jQuery.Callbacks(\"once memory\"),\n\t\t\t// Status-dependent callbacks\n\t\t\tstatusCode = s.statusCode || {},\n\t\t\t// Headers (they are sent all at once)\n\t\t\trequestHeaders = {},\n\t\t\trequestHeadersNames = {},\n\t\t\t// The jqXHR state\n\t\t\tstate = 0,\n\t\t\t// Default abort message\n\t\t\tstrAbort = \"canceled\",\n\t\t\t// Fake xhr\n\t\t\tjqXHR = {\n\t\t\t\treadyState: 0,\n\n\t\t\t\t// Builds headers hashtable if needed\n\t\t\t\tgetResponseHeader: function( key ) {\n\t\t\t\t\tvar match;\n\t\t\t\t\tif ( state === 2 ) {\n\t\t\t\t\t\tif ( !responseHeaders ) {\n\t\t\t\t\t\t\tresponseHeaders = {};\n\t\t\t\t\t\t\twhile ( (match = rheaders.exec( responseHeadersString )) ) {\n\t\t\t\t\t\t\t\tresponseHeaders[ match[1].toLowerCase() ] = match[ 2 ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmatch = responseHeaders[ key.toLowerCase() ];\n\t\t\t\t\t}\n\t\t\t\t\treturn match == null ? null : match;\n\t\t\t\t},\n\n\t\t\t\t// Raw string\n\t\t\t\tgetAllResponseHeaders: function() {\n\t\t\t\t\treturn state === 2 ? responseHeadersString : null;\n\t\t\t\t},\n\n\t\t\t\t// Caches the header\n\t\t\t\tsetRequestHeader: function( name, value ) {\n\t\t\t\t\tvar lname = name.toLowerCase();\n\t\t\t\t\tif ( !state ) {\n\t\t\t\t\t\tname = requestHeadersNames[ lname ] = requestHeadersNames[ lname ] || name;\n\t\t\t\t\t\trequestHeaders[ name ] = value;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Overrides response content-type header\n\t\t\t\toverrideMimeType: function( type ) {\n\t\t\t\t\tif ( !state ) {\n\t\t\t\t\t\ts.mimeType = type;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Status-dependent callbacks\n\t\t\t\tstatusCode: function( map ) {\n\t\t\t\t\tvar code;\n\t\t\t\t\tif ( map ) {\n\t\t\t\t\t\tif ( state < 2 ) {\n\t\t\t\t\t\t\tfor ( code in map ) {\n\t\t\t\t\t\t\t\t// Lazy-add the new callback in a way that preserves old ones\n\t\t\t\t\t\t\t\tstatusCode[ code ] = [ statusCode[ code ], map[ code ] ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Execute the appropriate callbacks\n\t\t\t\t\t\t\tjqXHR.always( map[ jqXHR.status ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Cancel the request\n\t\t\t\tabort: function( statusText ) {\n\t\t\t\t\tvar finalText = statusText || strAbort;\n\t\t\t\t\tif ( transport ) {\n\t\t\t\t\t\ttransport.abort( finalText );\n\t\t\t\t\t}\n\t\t\t\t\tdone( 0, finalText );\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t};\n\n\t\t// Attach deferreds\n\t\tdeferred.promise( jqXHR ).complete = completeDeferred.add;\n\t\tjqXHR.success = jqXHR.done;\n\t\tjqXHR.error = jqXHR.fail;\n\n\t\t// Remove hash character (#7531: and string promotion)\n\t\t// Add protocol if not provided (#5866: IE7 issue with protocol-less urls)\n\t\t// Handle falsy url in the settings object (#10093: consistency with old signature)\n\t\t// We also use the url parameter if available\n\t\ts.url = ( ( url || s.url || ajaxLocation ) + \"\" ).replace( rhash, \"\" ).replace( rprotocol, ajaxLocParts[ 1 ] + \"//\" );\n\n\t\t// Alias method option to type as per ticket #12004\n\t\ts.type = options.method || options.type || s.method || s.type;\n\n\t\t// Extract dataTypes list\n\t\ts.dataTypes = jQuery.trim( s.dataType || \"*\" ).toLowerCase().match( rnotwhite ) || [ \"\" ];\n\n\t\t// A cross-domain request is in order when we have a protocol:host:port mismatch\n\t\tif ( s.crossDomain == null ) {\n\t\t\tparts = rurl.exec( s.url.toLowerCase() );\n\t\t\ts.crossDomain = !!( parts &&\n\t\t\t\t( parts[ 1 ] !== ajaxLocParts[ 1 ] || parts[ 2 ] !== ajaxLocParts[ 2 ] ||\n\t\t\t\t\t( parts[ 3 ] || ( parts[ 1 ] === \"http:\" ? \"80\" : \"443\" ) ) !==\n\t\t\t\t\t\t( ajaxLocParts[ 3 ] || ( ajaxLocParts[ 1 ] === \"http:\" ? \"80\" : \"443\" ) ) )\n\t\t\t);\n\t\t}\n\n\t\t// Convert data if not already a string\n\t\tif ( s.data && s.processData && typeof s.data !== \"string\" ) {\n\t\t\ts.data = jQuery.param( s.data, s.traditional );\n\t\t}\n\n\t\t// Apply prefilters\n\t\tinspectPrefiltersOrTransports( prefilters, s, options, jqXHR );\n\n\t\t// If request was aborted inside a prefilter, stop there\n\t\tif ( state === 2 ) {\n\t\t\treturn jqXHR;\n\t\t}\n\n\t\t// We can fire global events as of now if asked to\n\t\t// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)\n\t\tfireGlobals = jQuery.event && s.global;\n\n\t\t// Watch for a new set of requests\n\t\tif ( fireGlobals && jQuery.active++ === 0 ) {\n\t\t\tjQuery.event.trigger(\"ajaxStart\");\n\t\t}\n\n\t\t// Uppercase the type\n\t\ts.type = s.type.toUpperCase();\n\n\t\t// Determine if request has content\n\t\ts.hasContent = !rnoContent.test( s.type );\n\n\t\t// Save the URL in case we're toying with the If-Modified-Since\n\t\t// and/or If-None-Match header later on\n\t\tcacheURL = s.url;\n\n\t\t// More options handling for requests with no content\n\t\tif ( !s.hasContent ) {\n\n\t\t\t// If data is available, append data to url\n\t\t\tif ( s.data ) {\n\t\t\t\tcacheURL = ( s.url += ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + s.data );\n\t\t\t\t// #9682: remove data so that it's not used in an eventual retry\n\t\t\t\tdelete s.data;\n\t\t\t}\n\n\t\t\t// Add anti-cache in url if needed\n\t\t\tif ( s.cache === false ) {\n\t\t\t\ts.url = rts.test( cacheURL ) ?\n\n\t\t\t\t\t// If there is already a '_' parameter, set its value\n\t\t\t\t\tcacheURL.replace( rts, \"$1_=\" + nonce++ ) :\n\n\t\t\t\t\t// Otherwise add one to the end\n\t\t\t\t\tcacheURL + ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + \"_=\" + nonce++;\n\t\t\t}\n\t\t}\n\n\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\tif ( s.ifModified ) {\n\t\t\tif ( jQuery.lastModified[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-Modified-Since\", jQuery.lastModified[ cacheURL ] );\n\t\t\t}\n\t\t\tif ( jQuery.etag[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-None-Match\", jQuery.etag[ cacheURL ] );\n\t\t\t}\n\t\t}\n\n\t\t// Set the correct header, if data is being sent\n\t\tif ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {\n\t\t\tjqXHR.setRequestHeader( \"Content-Type\", s.contentType );\n\t\t}\n\n\t\t// Set the Accepts header for the server, depending on the dataType\n\t\tjqXHR.setRequestHeader(\n\t\t\t\"Accept\",\n\t\t\ts.dataTypes[ 0 ] && s.accepts[ s.dataTypes[0] ] ?\n\t\t\t\ts.accepts[ s.dataTypes[0] ] + ( s.dataTypes[ 0 ] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\" ) :\n\t\t\t\ts.accepts[ \"*\" ]\n\t\t);\n\n\t\t// Check for headers option\n\t\tfor ( i in s.headers ) {\n\t\t\tjqXHR.setRequestHeader( i, s.headers[ i ] );\n\t\t}\n\n\t\t// Allow custom headers/mimetypes and early abort\n\t\tif ( s.beforeSend && ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) {\n\t\t\t// Abort if not done already and return\n\t\t\treturn jqXHR.abort();\n\t\t}\n\n\t\t// aborting is no longer a cancellation\n\t\tstrAbort = \"abort\";\n\n\t\t// Install callbacks on deferreds\n\t\tfor ( i in { success: 1, error: 1, complete: 1 } ) {\n\t\t\tjqXHR[ i ]( s[ i ] );\n\t\t}\n\n\t\t// Get transport\n\t\ttransport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );\n\n\t\t// If no transport, we auto-abort\n\t\tif ( !transport ) {\n\t\t\tdone( -1, \"No Transport\" );\n\t\t} else {\n\t\t\tjqXHR.readyState = 1;\n\n\t\t\t// Send global event\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxSend\", [ jqXHR, s ] );\n\t\t\t}\n\t\t\t// Timeout\n\t\t\tif ( s.async && s.timeout > 0 ) {\n\t\t\t\ttimeoutTimer = setTimeout(function() {\n\t\t\t\t\tjqXHR.abort(\"timeout\");\n\t\t\t\t}, s.timeout );\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tstate = 1;\n\t\t\t\ttransport.send( requestHeaders, done );\n\t\t\t} catch ( e ) {\n\t\t\t\t// Propagate exception as error if not done\n\t\t\t\tif ( state < 2 ) {\n\t\t\t\t\tdone( -1, e );\n\t\t\t\t// Simply rethrow otherwise\n\t\t\t\t} else {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Callback for when everything is done\n\t\tfunction done( status, nativeStatusText, responses, headers ) {\n\t\t\tvar isSuccess, success, error, response, modified,\n\t\t\t\tstatusText = nativeStatusText;\n\n\t\t\t// Called once\n\t\t\tif ( state === 2 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// State is \"done\" now\n\t\t\tstate = 2;\n\n\t\t\t// Clear timeout if it exists\n\t\t\tif ( timeoutTimer ) {\n\t\t\t\tclearTimeout( timeoutTimer );\n\t\t\t}\n\n\t\t\t// Dereference transport for early garbage collection\n\t\t\t// (no matter how long the jqXHR object will be used)\n\t\t\ttransport = undefined;\n\n\t\t\t// Cache response headers\n\t\t\tresponseHeadersString = headers || \"\";\n\n\t\t\t// Set readyState\n\t\t\tjqXHR.readyState = status > 0 ? 4 : 0;\n\n\t\t\t// Determine if successful\n\t\t\tisSuccess = status >= 200 && status < 300 || status === 304;\n\n\t\t\t// Get response data\n\t\t\tif ( responses ) {\n\t\t\t\tresponse = ajaxHandleResponses( s, jqXHR, responses );\n\t\t\t}\n\n\t\t\t// Convert no matter what (that way responseXXX fields are always set)\n\t\t\tresponse = ajaxConvert( s, response, jqXHR, isSuccess );\n\n\t\t\t// If successful, handle type chaining\n\t\t\tif ( isSuccess ) {\n\n\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\t\t\tif ( s.ifModified ) {\n\t\t\t\t\tmodified = jqXHR.getResponseHeader(\"Last-Modified\");\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.lastModified[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t\tmodified = jqXHR.getResponseHeader(\"etag\");\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.etag[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// if no content\n\t\t\t\tif ( status === 204 || s.type === \"HEAD\" ) {\n\t\t\t\t\tstatusText = \"nocontent\";\n\n\t\t\t\t// if not modified\n\t\t\t\t} else if ( status === 304 ) {\n\t\t\t\t\tstatusText = \"notmodified\";\n\n\t\t\t\t// If we have data, let's convert it\n\t\t\t\t} else {\n\t\t\t\t\tstatusText = response.state;\n\t\t\t\t\tsuccess = response.data;\n\t\t\t\t\terror = response.error;\n\t\t\t\t\tisSuccess = !error;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// We extract error from statusText\n\t\t\t\t// then normalize statusText and status for non-aborts\n\t\t\t\terror = statusText;\n\t\t\t\tif ( status || !statusText ) {\n\t\t\t\t\tstatusText = \"error\";\n\t\t\t\t\tif ( status < 0 ) {\n\t\t\t\t\t\tstatus = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Set data for the fake xhr object\n\t\t\tjqXHR.status = status;\n\t\t\tjqXHR.statusText = ( nativeStatusText || statusText ) + \"\";\n\n\t\t\t// Success/Error\n\t\t\tif ( isSuccess ) {\n\t\t\t\tdeferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );\n\t\t\t} else {\n\t\t\t\tdeferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );\n\t\t\t}\n\n\t\t\t// Status-dependent callbacks\n\t\t\tjqXHR.statusCode( statusCode );\n\t\t\tstatusCode = undefined;\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( isSuccess ? \"ajaxSuccess\" : \"ajaxError\",\n\t\t\t\t\t[ jqXHR, s, isSuccess ? success : error ] );\n\t\t\t}\n\n\t\t\t// Complete\n\t\t\tcompleteDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxComplete\", [ jqXHR, s ] );\n\t\t\t\t// Handle the global AJAX counter\n\t\t\t\tif ( !( --jQuery.active ) ) {\n\t\t\t\t\tjQuery.event.trigger(\"ajaxStop\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn jqXHR;\n\t},\n\n\tgetJSON: function( url, data, callback ) {\n\t\treturn jQuery.get( url, data, callback, \"json\" );\n\t},\n\n\tgetScript: function( url, callback ) {\n\t\treturn jQuery.get( url, undefined, callback, \"script\" );\n\t}\n});\n\njQuery.each( [ \"get\", \"post\" ], function( i, method ) {\n\tjQuery[ method ] = function( url, data, callback, type ) {\n\t\t// shift arguments if data argument was omitted\n\t\tif ( jQuery.isFunction( data ) ) {\n\t\t\ttype = type || callback;\n\t\t\tcallback = data;\n\t\t\tdata = undefined;\n\t\t}\n\n\t\treturn jQuery.ajax({\n\t\t\turl: url,\n\t\t\ttype: method,\n\t\t\tdataType: type,\n\t\t\tdata: data,\n\t\t\tsuccess: callback\n\t\t});\n\t};\n});\n\n\njQuery._evalUrl = function( url ) {\n\treturn jQuery.ajax({\n\t\turl: url,\n\t\ttype: \"GET\",\n\t\tdataType: \"script\",\n\t\tasync: false,\n\t\tglobal: false,\n\t\t\"throws\": true\n\t});\n};\n\n\njQuery.fn.extend({\n\twrapAll: function( html ) {\n\t\tif ( jQuery.isFunction( html ) ) {\n\t\t\treturn this.each(function(i) {\n\t\t\t\tjQuery(this).wrapAll( html.call(this, i) );\n\t\t\t});\n\t\t}\n\n\t\tif ( this[0] ) {\n\t\t\t// The elements to wrap the target around\n\t\t\tvar wrap = jQuery( html, this[0].ownerDocument ).eq(0).clone(true);\n\n\t\t\tif ( this[0].parentNode ) {\n\t\t\t\twrap.insertBefore( this[0] );\n\t\t\t}\n\n\t\t\twrap.map(function() {\n\t\t\t\tvar elem = this;\n\n\t\t\t\twhile ( elem.firstChild && elem.firstChild.nodeType === 1 ) {\n\t\t\t\t\telem = elem.firstChild;\n\t\t\t\t}\n\n\t\t\t\treturn elem;\n\t\t\t}).append( this );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\twrapInner: function( html ) {\n\t\tif ( jQuery.isFunction( html ) ) {\n\t\t\treturn this.each(function(i) {\n\t\t\t\tjQuery(this).wrapInner( html.call(this, i) );\n\t\t\t});\n\t\t}\n\n\t\treturn this.each(function() {\n\t\t\tvar self = jQuery( this ),\n\t\t\t\tcontents = self.contents();\n\n\t\t\tif ( contents.length ) {\n\t\t\t\tcontents.wrapAll( html );\n\n\t\t\t} else {\n\t\t\t\tself.append( html );\n\t\t\t}\n\t\t});\n\t},\n\n\twrap: function( html ) {\n\t\tvar isFunction = jQuery.isFunction( html );\n\n\t\treturn this.each(function(i) {\n\t\t\tjQuery( this ).wrapAll( isFunction ? html.call(this, i) : html );\n\t\t});\n\t},\n\n\tunwrap: function() {\n\t\treturn this.parent().each(function() {\n\t\t\tif ( !jQuery.nodeName( this, \"body\" ) ) {\n\t\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\t\t\t}\n\t\t}).end();\n\t}\n});\n\n\njQuery.expr.filters.hidden = function( elem ) {\n\t// Support: Opera <= 12.12\n\t// Opera reports offsetWidths and offsetHeights less than zero on some elements\n\treturn elem.offsetWidth <= 0 && elem.offsetHeight <= 0 ||\n\t\t(!support.reliableHiddenOffsets() &&\n\t\t\t((elem.style && elem.style.display) || jQuery.css( elem, \"display\" )) === \"none\");\n};\n\njQuery.expr.filters.visible = function( elem ) {\n\treturn !jQuery.expr.filters.hidden( elem );\n};\n\n\n\n\nvar r20 = /%20/g,\n\trbracket = /\\[\\]$/,\n\trCRLF = /\\r?\\n/g,\n\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n\trsubmittable = /^(?:input|select|textarea|keygen)/i;\n\nfunction buildParams( prefix, obj, traditional, add ) {\n\tvar name;\n\n\tif ( jQuery.isArray( obj ) ) {\n\t\t// Serialize array item.\n\t\tjQuery.each( obj, function( i, v ) {\n\t\t\tif ( traditional || rbracket.test( prefix ) ) {\n\t\t\t\t// Treat each array item as a scalar.\n\t\t\t\tadd( prefix, v );\n\n\t\t\t} else {\n\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\n\t\t\t\tbuildParams( prefix + \"[\" + ( typeof v === \"object\" ? i : \"\" ) + \"]\", v, traditional, add );\n\t\t\t}\n\t\t});\n\n\t} else if ( !traditional && jQuery.type( obj ) === \"object\" ) {\n\t\t// Serialize object item.\n\t\tfor ( name in obj ) {\n\t\t\tbuildParams( prefix + \"[\" + name + \"]\", obj[ name ], traditional, add );\n\t\t}\n\n\t} else {\n\t\t// Serialize scalar item.\n\t\tadd( prefix, obj );\n\t}\n}\n\n// Serialize an array of form elements or a set of\n// key/values into a query string\njQuery.param = function( a, traditional ) {\n\tvar prefix,\n\t\ts = [],\n\t\tadd = function( key, value ) {\n\t\t\t// If value is a function, invoke it and return its value\n\t\t\tvalue = jQuery.isFunction( value ) ? value() : ( value == null ? \"\" : value );\n\t\t\ts[ s.length ] = encodeURIComponent( key ) + \"=\" + encodeURIComponent( value );\n\t\t};\n\n\t// Set traditional to true for jQuery <= 1.3.2 behavior.\n\tif ( traditional === undefined ) {\n\t\ttraditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional;\n\t}\n\n\t// If an array was passed in, assume that it is an array of form elements.\n\tif ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\n\t\t// Serialize the form elements\n\t\tjQuery.each( a, function() {\n\t\t\tadd( this.name, this.value );\n\t\t});\n\n\t} else {\n\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\n\t\t// did it), otherwise encode params recursively.\n\t\tfor ( prefix in a ) {\n\t\t\tbuildParams( prefix, a[ prefix ], traditional, add );\n\t\t}\n\t}\n\n\t// Return the resulting serialization\n\treturn s.join( \"&\" ).replace( r20, \"+\" );\n};\n\njQuery.fn.extend({\n\tserialize: function() {\n\t\treturn jQuery.param( this.serializeArray() );\n\t},\n\tserializeArray: function() {\n\t\treturn this.map(function() {\n\t\t\t// Can add propHook for \"elements\" to filter or add form elements\n\t\t\tvar elements = jQuery.prop( this, \"elements\" );\n\t\t\treturn elements ? jQuery.makeArray( elements ) : this;\n\t\t})\n\t\t.filter(function() {\n\t\t\tvar type = this.type;\n\t\t\t// Use .is(\":disabled\") so that fieldset[disabled] works\n\t\t\treturn this.name && !jQuery( this ).is( \":disabled\" ) &&\n\t\t\t\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\n\t\t\t\t( this.checked || !rcheckableType.test( type ) );\n\t\t})\n\t\t.map(function( i, elem ) {\n\t\t\tvar val = jQuery( this ).val();\n\n\t\t\treturn val == null ?\n\t\t\t\tnull :\n\t\t\t\tjQuery.isArray( val ) ?\n\t\t\t\t\tjQuery.map( val, function( val ) {\n\t\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t\t\t\t}) :\n\t\t\t\t\t{ name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t}).get();\n\t}\n});\n\n\n// Create the request object\n// (This is still attached to ajaxSettings for backward compatibility)\njQuery.ajaxSettings.xhr = window.ActiveXObject !== undefined ?\n\t// Support: IE6+\n\tfunction() {\n\n\t\t// XHR cannot access local files, always use ActiveX for that case\n\t\treturn !this.isLocal &&\n\n\t\t\t// Support: IE7-8\n\t\t\t// oldIE XHR does not support non-RFC2616 methods (#13240)\n\t\t\t// See http://msdn.microsoft.com/en-us/library/ie/ms536648(v=vs.85).aspx\n\t\t\t// and http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9\n\t\t\t// Although this check for six methods instead of eight\n\t\t\t// since IE also does not support \"trace\" and \"connect\"\n\t\t\t/^(get|post|head|put|delete|options)$/i.test( this.type ) &&\n\n\t\t\tcreateStandardXHR() || createActiveXHR();\n\t} :\n\t// For all other browsers, use the standard XMLHttpRequest object\n\tcreateStandardXHR;\n\nvar xhrId = 0,\n\txhrCallbacks = {},\n\txhrSupported = jQuery.ajaxSettings.xhr();\n\n// Support: IE<10\n// Open requests must be manually aborted on unload (#5280)\n// See https://support.microsoft.com/kb/2856746 for more info\nif ( window.attachEvent ) {\n\twindow.attachEvent( \"onunload\", function() {\n\t\tfor ( var key in xhrCallbacks ) {\n\t\t\txhrCallbacks[ key ]( undefined, true );\n\t\t}\n\t});\n}\n\n// Determine support properties\nsupport.cors = !!xhrSupported && ( \"withCredentials\" in xhrSupported );\nxhrSupported = support.ajax = !!xhrSupported;\n\n// Create transport if the browser can provide an xhr\nif ( xhrSupported ) {\n\n\tjQuery.ajaxTransport(function( options ) {\n\t\t// Cross domain only allowed if supported through XMLHttpRequest\n\t\tif ( !options.crossDomain || support.cors ) {\n\n\t\t\tvar callback;\n\n\t\t\treturn {\n\t\t\t\tsend: function( headers, complete ) {\n\t\t\t\t\tvar i,\n\t\t\t\t\t\txhr = options.xhr(),\n\t\t\t\t\t\tid = ++xhrId;\n\n\t\t\t\t\t// Open the socket\n\t\t\t\t\txhr.open( options.type, options.url, options.async, options.username, options.password );\n\n\t\t\t\t\t// Apply custom fields if provided\n\t\t\t\t\tif ( options.xhrFields ) {\n\t\t\t\t\t\tfor ( i in options.xhrFields ) {\n\t\t\t\t\t\t\txhr[ i ] = options.xhrFields[ i ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Override mime type if needed\n\t\t\t\t\tif ( options.mimeType && xhr.overrideMimeType ) {\n\t\t\t\t\t\txhr.overrideMimeType( options.mimeType );\n\t\t\t\t\t}\n\n\t\t\t\t\t// X-Requested-With header\n\t\t\t\t\t// For cross-domain requests, seeing as conditions for a preflight are\n\t\t\t\t\t// akin to a jigsaw puzzle, we simply never set it to be sure.\n\t\t\t\t\t// (it can always be set on a per-request basis or even using ajaxSetup)\n\t\t\t\t\t// For same-domain requests, won't change header if already provided.\n\t\t\t\t\tif ( !options.crossDomain && !headers[\"X-Requested-With\"] ) {\n\t\t\t\t\t\theaders[\"X-Requested-With\"] = \"XMLHttpRequest\";\n\t\t\t\t\t}\n\n\t\t\t\t\t// Set headers\n\t\t\t\t\tfor ( i in headers ) {\n\t\t\t\t\t\t// Support: IE<9\n\t\t\t\t\t\t// IE's ActiveXObject throws a 'Type Mismatch' exception when setting\n\t\t\t\t\t\t// request header to a null-value.\n\t\t\t\t\t\t//\n\t\t\t\t\t\t// To keep consistent with other XHR implementations, cast the value\n\t\t\t\t\t\t// to string and ignore `undefined`.\n\t\t\t\t\t\tif ( headers[ i ] !== undefined ) {\n\t\t\t\t\t\t\txhr.setRequestHeader( i, headers[ i ] + \"\" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Do send the request\n\t\t\t\t\t// This may raise an exception which is actually\n\t\t\t\t\t// handled in jQuery.ajax (so no try/catch here)\n\t\t\t\t\txhr.send( ( options.hasContent && options.data ) || null );\n\n\t\t\t\t\t// Listener\n\t\t\t\t\tcallback = function( _, isAbort ) {\n\t\t\t\t\t\tvar status, statusText, responses;\n\n\t\t\t\t\t\t// Was never called and is aborted or complete\n\t\t\t\t\t\tif ( callback && ( isAbort || xhr.readyState === 4 ) ) {\n\t\t\t\t\t\t\t// Clean up\n\t\t\t\t\t\t\tdelete xhrCallbacks[ id ];\n\t\t\t\t\t\t\tcallback = undefined;\n\t\t\t\t\t\t\txhr.onreadystatechange = jQuery.noop;\n\n\t\t\t\t\t\t\t// Abort manually if needed\n\t\t\t\t\t\t\tif ( isAbort ) {\n\t\t\t\t\t\t\t\tif ( xhr.readyState !== 4 ) {\n\t\t\t\t\t\t\t\t\txhr.abort();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tresponses = {};\n\t\t\t\t\t\t\t\tstatus = xhr.status;\n\n\t\t\t\t\t\t\t\t// Support: IE<10\n\t\t\t\t\t\t\t\t// Accessing binary-data responseText throws an exception\n\t\t\t\t\t\t\t\t// (#11426)\n\t\t\t\t\t\t\t\tif ( typeof xhr.responseText === \"string\" ) {\n\t\t\t\t\t\t\t\t\tresponses.text = xhr.responseText;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Firefox throws an exception when accessing\n\t\t\t\t\t\t\t\t// statusText for faulty cross-domain requests\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tstatusText = xhr.statusText;\n\t\t\t\t\t\t\t\t} catch( e ) {\n\t\t\t\t\t\t\t\t\t// We normalize with Webkit giving an empty statusText\n\t\t\t\t\t\t\t\t\tstatusText = \"\";\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Filter status for non standard behaviors\n\n\t\t\t\t\t\t\t\t// If the request is local and we have data: assume a success\n\t\t\t\t\t\t\t\t// (success with no data won't get notified, that's the best we\n\t\t\t\t\t\t\t\t// can do given current implementations)\n\t\t\t\t\t\t\t\tif ( !status && options.isLocal && !options.crossDomain ) {\n\t\t\t\t\t\t\t\t\tstatus = responses.text ? 200 : 404;\n\t\t\t\t\t\t\t\t// IE - #1450: sometimes returns 1223 when it should be 204\n\t\t\t\t\t\t\t\t} else if ( status === 1223 ) {\n\t\t\t\t\t\t\t\t\tstatus = 204;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Call complete if needed\n\t\t\t\t\t\tif ( responses ) {\n\t\t\t\t\t\t\tcomplete( status, statusText, responses, xhr.getAllResponseHeaders() );\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\n\t\t\t\t\tif ( !options.async ) {\n\t\t\t\t\t\t// if we're in sync mode we fire the callback\n\t\t\t\t\t\tcallback();\n\t\t\t\t\t} else if ( xhr.readyState === 4 ) {\n\t\t\t\t\t\t// (IE6 & IE7) if it's in cache and has been\n\t\t\t\t\t\t// retrieved directly we need to fire the callback\n\t\t\t\t\t\tsetTimeout( callback );\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Add to the list of active xhr callbacks\n\t\t\t\t\t\txhr.onreadystatechange = xhrCallbacks[ id ] = callback;\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\t\tabort: function() {\n\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\tcallback( undefined, true );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t});\n}\n\n// Functions to create xhrs\nfunction createStandardXHR() {\n\ttry {\n\t\treturn new window.XMLHttpRequest();\n\t} catch( e ) {}\n}\n\nfunction createActiveXHR() {\n\ttry {\n\t\treturn new window.ActiveXObject( \"Microsoft.XMLHTTP\" );\n\t} catch( e ) {}\n}\n\n\n\n\n// Install script dataType\njQuery.ajaxSetup({\n\taccepts: {\n\t\tscript: \"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript\"\n\t},\n\tcontents: {\n\t\tscript: /(?:java|ecma)script/\n\t},\n\tconverters: {\n\t\t\"text script\": function( text ) {\n\t\t\tjQuery.globalEval( text );\n\t\t\treturn text;\n\t\t}\n\t}\n});\n\n// Handle cache's special case and global\njQuery.ajaxPrefilter( \"script\", function( s ) {\n\tif ( s.cache === undefined ) {\n\t\ts.cache = false;\n\t}\n\tif ( s.crossDomain ) {\n\t\ts.type = \"GET\";\n\t\ts.global = false;\n\t}\n});\n\n// Bind script tag hack transport\njQuery.ajaxTransport( \"script\", function(s) {\n\n\t// This transport only deals with cross domain requests\n\tif ( s.crossDomain ) {\n\n\t\tvar script,\n\t\t\thead = document.head || jQuery(\"head\")[0] || document.documentElement;\n\n\t\treturn {\n\n\t\t\tsend: function( _, callback ) {\n\n\t\t\t\tscript = document.createElement(\"script\");\n\n\t\t\t\tscript.async = true;\n\n\t\t\t\tif ( s.scriptCharset ) {\n\t\t\t\t\tscript.charset = s.scriptCharset;\n\t\t\t\t}\n\n\t\t\t\tscript.src = s.url;\n\n\t\t\t\t// Attach handlers for all browsers\n\t\t\t\tscript.onload = script.onreadystatechange = function( _, isAbort ) {\n\n\t\t\t\t\tif ( isAbort || !script.readyState || /loaded|complete/.test( script.readyState ) ) {\n\n\t\t\t\t\t\t// Handle memory leak in IE\n\t\t\t\t\t\tscript.onload = script.onreadystatechange = null;\n\n\t\t\t\t\t\t// Remove the script\n\t\t\t\t\t\tif ( script.parentNode ) {\n\t\t\t\t\t\t\tscript.parentNode.removeChild( script );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Dereference the script\n\t\t\t\t\t\tscript = null;\n\n\t\t\t\t\t\t// Callback if not abort\n\t\t\t\t\t\tif ( !isAbort ) {\n\t\t\t\t\t\t\tcallback( 200, \"success\" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\t// Circumvent IE6 bugs with base elements (#2709 and #4378) by prepending\n\t\t\t\t// Use native DOM manipulation to avoid our domManip AJAX trickery\n\t\t\t\thead.insertBefore( script, head.firstChild );\n\t\t\t},\n\n\t\t\tabort: function() {\n\t\t\t\tif ( script ) {\n\t\t\t\t\tscript.onload( undefined, true );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n});\n\n\n\n\nvar oldCallbacks = [],\n\trjsonp = /(=)\\?(?=&|$)|\\?\\?/;\n\n// Default jsonp settings\njQuery.ajaxSetup({\n\tjsonp: \"callback\",\n\tjsonpCallback: function() {\n\t\tvar callback = oldCallbacks.pop() || ( jQuery.expando + \"_\" + ( nonce++ ) );\n\t\tthis[ callback ] = true;\n\t\treturn callback;\n\t}\n});\n\n// Detect, normalize options and install callbacks for jsonp requests\njQuery.ajaxPrefilter( \"json jsonp\", function( s, originalSettings, jqXHR ) {\n\n\tvar callbackName, overwritten, responseContainer,\n\t\tjsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?\n\t\t\t\"url\" :\n\t\t\ttypeof s.data === \"string\" && !( s.contentType || \"\" ).indexOf(\"application/x-www-form-urlencoded\") && rjsonp.test( s.data ) && \"data\"\n\t\t);\n\n\t// Handle iff the expected data type is \"jsonp\" or we have a parameter to set\n\tif ( jsonProp || s.dataTypes[ 0 ] === \"jsonp\" ) {\n\n\t\t// Get callback name, remembering preexisting value associated with it\n\t\tcallbackName = s.jsonpCallback = jQuery.isFunction( s.jsonpCallback ) ?\n\t\t\ts.jsonpCallback() :\n\t\t\ts.jsonpCallback;\n\n\t\t// Insert callback into url or form data\n\t\tif ( jsonProp ) {\n\t\t\ts[ jsonProp ] = s[ jsonProp ].replace( rjsonp, \"$1\" + callbackName );\n\t\t} else if ( s.jsonp !== false ) {\n\t\t\ts.url += ( rquery.test( s.url ) ? \"&\" : \"?\" ) + s.jsonp + \"=\" + callbackName;\n\t\t}\n\n\t\t// Use data converter to retrieve json after script execution\n\t\ts.converters[\"script json\"] = function() {\n\t\t\tif ( !responseContainer ) {\n\t\t\t\tjQuery.error( callbackName + \" was not called\" );\n\t\t\t}\n\t\t\treturn responseContainer[ 0 ];\n\t\t};\n\n\t\t// force json dataType\n\t\ts.dataTypes[ 0 ] = \"json\";\n\n\t\t// Install callback\n\t\toverwritten = window[ callbackName ];\n\t\twindow[ callbackName ] = function() {\n\t\t\tresponseContainer = arguments;\n\t\t};\n\n\t\t// Clean-up function (fires after converters)\n\t\tjqXHR.always(function() {\n\t\t\t// Restore preexisting value\n\t\t\twindow[ callbackName ] = overwritten;\n\n\t\t\t// Save back as free\n\t\t\tif ( s[ callbackName ] ) {\n\t\t\t\t// make sure that re-using the options doesn't screw things around\n\t\t\t\ts.jsonpCallback = originalSettings.jsonpCallback;\n\n\t\t\t\t// save the callback name for future use\n\t\t\t\toldCallbacks.push( callbackName );\n\t\t\t}\n\n\t\t\t// Call if it was a function and we have a response\n\t\t\tif ( responseContainer && jQuery.isFunction( overwritten ) ) {\n\t\t\t\toverwritten( responseContainer[ 0 ] );\n\t\t\t}\n\n\t\t\tresponseContainer = overwritten = undefined;\n\t\t});\n\n\t\t// Delegate to script\n\t\treturn \"script\";\n\t}\n});\n\n\n\n\n// data: string of html\n// context (optional): If specified, the fragment will be created in this context, defaults to document\n// keepScripts (optional): If true, will include scripts passed in the html string\njQuery.parseHTML = function( data, context, keepScripts ) {\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\tif ( typeof context === \"boolean\" ) {\n\t\tkeepScripts = context;\n\t\tcontext = false;\n\t}\n\tcontext = context || document;\n\n\tvar parsed = rsingleTag.exec( data ),\n\t\tscripts = !keepScripts && [];\n\n\t// Single tag\n\tif ( parsed ) {\n\t\treturn [ context.createElement( parsed[1] ) ];\n\t}\n\n\tparsed = jQuery.buildFragment( [ data ], context, scripts );\n\n\tif ( scripts && scripts.length ) {\n\t\tjQuery( scripts ).remove();\n\t}\n\n\treturn jQuery.merge( [], parsed.childNodes );\n};\n\n\n// Keep a copy of the old load method\nvar _load = jQuery.fn.load;\n\n/**\n * Load a url into a page\n */\njQuery.fn.load = function( url, params, callback ) {\n\tif ( typeof url !== \"string\" && _load ) {\n\t\treturn _load.apply( this, arguments );\n\t}\n\n\tvar selector, response, type,\n\t\tself = this,\n\t\toff = url.indexOf(\" \");\n\n\tif ( off >= 0 ) {\n\t\tselector = jQuery.trim( url.slice( off, url.length ) );\n\t\turl = url.slice( 0, off );\n\t}\n\n\t// If it's a function\n\tif ( jQuery.isFunction( params ) ) {\n\n\t\t// We assume that it's the callback\n\t\tcallback = params;\n\t\tparams = undefined;\n\n\t// Otherwise, build a param string\n\t} else if ( params && typeof params === \"object\" ) {\n\t\ttype = \"POST\";\n\t}\n\n\t// If we have elements to modify, make the request\n\tif ( self.length > 0 ) {\n\t\tjQuery.ajax({\n\t\t\turl: url,\n\n\t\t\t// if \"type\" variable is undefined, then \"GET\" method will be used\n\t\t\ttype: type,\n\t\t\tdataType: \"html\",\n\t\t\tdata: params\n\t\t}).done(function( responseText ) {\n\n\t\t\t// Save response for use in complete callback\n\t\t\tresponse = arguments;\n\n\t\t\tself.html( selector ?\n\n\t\t\t\t// If a selector was specified, locate the right elements in a dummy div\n\t\t\t\t// Exclude scripts to avoid IE 'Permission Denied' errors\n\t\t\t\tjQuery(\"<div>\").append( jQuery.parseHTML( responseText ) ).find( selector ) :\n\n\t\t\t\t// Otherwise use the full result\n\t\t\t\tresponseText );\n\n\t\t}).complete( callback && function( jqXHR, status ) {\n\t\t\tself.each( callback, response || [ jqXHR.responseText, status, jqXHR ] );\n\t\t});\n\t}\n\n\treturn this;\n};\n\n\n\n\n// Attach a bunch of functions for handling common AJAX events\njQuery.each( [ \"ajaxStart\", \"ajaxStop\", \"ajaxComplete\", \"ajaxError\", \"ajaxSuccess\", \"ajaxSend\" ], function( i, type ) {\n\tjQuery.fn[ type ] = function( fn ) {\n\t\treturn this.on( type, fn );\n\t};\n});\n\n\n\n\njQuery.expr.filters.animated = function( elem ) {\n\treturn jQuery.grep(jQuery.timers, function( fn ) {\n\t\treturn elem === fn.elem;\n\t}).length;\n};\n\n\n\n\n\nvar docElem = window.document.documentElement;\n\n/**\n * Gets a window from an element\n */\nfunction getWindow( elem ) {\n\treturn jQuery.isWindow( elem ) ?\n\t\telem :\n\t\telem.nodeType === 9 ?\n\t\t\telem.defaultView || elem.parentWindow :\n\t\t\tfalse;\n}\n\njQuery.offset = {\n\tsetOffset: function( elem, options, i ) {\n\t\tvar curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,\n\t\t\tposition = jQuery.css( elem, \"position\" ),\n\t\t\tcurElem = jQuery( elem ),\n\t\t\tprops = {};\n\n\t\t// set position first, in-case top/left are set even on static elem\n\t\tif ( position === \"static\" ) {\n\t\t\telem.style.position = \"relative\";\n\t\t}\n\n\t\tcurOffset = curElem.offset();\n\t\tcurCSSTop = jQuery.css( elem, \"top\" );\n\t\tcurCSSLeft = jQuery.css( elem, \"left\" );\n\t\tcalculatePosition = ( position === \"absolute\" || position === \"fixed\" ) &&\n\t\t\tjQuery.inArray(\"auto\", [ curCSSTop, curCSSLeft ] ) > -1;\n\n\t\t// need to be able to calculate position if either top or left is auto and position is either absolute or fixed\n\t\tif ( calculatePosition ) {\n\t\t\tcurPosition = curElem.position();\n\t\t\tcurTop = curPosition.top;\n\t\t\tcurLeft = curPosition.left;\n\t\t} else {\n\t\t\tcurTop = parseFloat( curCSSTop ) || 0;\n\t\t\tcurLeft = parseFloat( curCSSLeft ) || 0;\n\t\t}\n\n\t\tif ( jQuery.isFunction( options ) ) {\n\t\t\toptions = options.call( elem, i, curOffset );\n\t\t}\n\n\t\tif ( options.top != null ) {\n\t\t\tprops.top = ( options.top - curOffset.top ) + curTop;\n\t\t}\n\t\tif ( options.left != null ) {\n\t\t\tprops.left = ( options.left - curOffset.left ) + curLeft;\n\t\t}\n\n\t\tif ( \"using\" in options ) {\n\t\t\toptions.using.call( elem, props );\n\t\t} else {\n\t\t\tcurElem.css( props );\n\t\t}\n\t}\n};\n\njQuery.fn.extend({\n\toffset: function( options ) {\n\t\tif ( arguments.length ) {\n\t\t\treturn options === undefined ?\n\t\t\t\tthis :\n\t\t\t\tthis.each(function( i ) {\n\t\t\t\t\tjQuery.offset.setOffset( this, options, i );\n\t\t\t\t});\n\t\t}\n\n\t\tvar docElem, win,\n\t\t\tbox = { top: 0, left: 0 },\n\t\t\telem = this[ 0 ],\n\t\t\tdoc = elem && elem.ownerDocument;\n\n\t\tif ( !doc ) {\n\t\t\treturn;\n\t\t}\n\n\t\tdocElem = doc.documentElement;\n\n\t\t// Make sure it's not a disconnected DOM node\n\t\tif ( !jQuery.contains( docElem, elem ) ) {\n\t\t\treturn box;\n\t\t}\n\n\t\t// If we don't have gBCR, just use 0,0 rather than error\n\t\t// BlackBerry 5, iOS 3 (original iPhone)\n\t\tif ( typeof elem.getBoundingClientRect !== strundefined ) {\n\t\t\tbox = elem.getBoundingClientRect();\n\t\t}\n\t\twin = getWindow( doc );\n\t\treturn {\n\t\t\ttop: box.top + ( win.pageYOffset || docElem.scrollTop ) - ( docElem.clientTop || 0 ),\n\t\t\tleft: box.left + ( win.pageXOffset || docElem.scrollLeft ) - ( docElem.clientLeft || 0 )\n\t\t};\n\t},\n\n\tposition: function() {\n\t\tif ( !this[ 0 ] ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar offsetParent, offset,\n\t\t\tparentOffset = { top: 0, left: 0 },\n\t\t\telem = this[ 0 ];\n\n\t\t// fixed elements are offset from window (parentOffset = {top:0, left: 0}, because it is its only offset parent\n\t\tif ( jQuery.css( elem, \"position\" ) === \"fixed\" ) {\n\t\t\t// we assume that getBoundingClientRect is available when computed position is fixed\n\t\t\toffset = elem.getBoundingClientRect();\n\t\t} else {\n\t\t\t// Get *real* offsetParent\n\t\t\toffsetParent = this.offsetParent();\n\n\t\t\t// Get correct offsets\n\t\t\toffset = this.offset();\n\t\t\tif ( !jQuery.nodeName( offsetParent[ 0 ], \"html\" ) ) {\n\t\t\t\tparentOffset = offsetParent.offset();\n\t\t\t}\n\n\t\t\t// Add offsetParent borders\n\t\t\tparentOffset.top += jQuery.css( offsetParent[ 0 ], \"borderTopWidth\", true );\n\t\t\tparentOffset.left += jQuery.css( offsetParent[ 0 ], \"borderLeftWidth\", true );\n\t\t}\n\n\t\t// Subtract parent offsets and element margins\n\t\t// note: when an element has margin: auto the offsetLeft and marginLeft\n\t\t// are the same in Safari causing offset.left to incorrectly be 0\n\t\treturn {\n\t\t\ttop: offset.top - parentOffset.top - jQuery.css( elem, \"marginTop\", true ),\n\t\t\tleft: offset.left - parentOffset.left - jQuery.css( elem, \"marginLeft\", true)\n\t\t};\n\t},\n\n\toffsetParent: function() {\n\t\treturn this.map(function() {\n\t\t\tvar offsetParent = this.offsetParent || docElem;\n\n\t\t\twhile ( offsetParent && ( !jQuery.nodeName( offsetParent, \"html\" ) && jQuery.css( offsetParent, \"position\" ) === \"static\" ) ) {\n\t\t\t\toffsetParent = offsetParent.offsetParent;\n\t\t\t}\n\t\t\treturn offsetParent || docElem;\n\t\t});\n\t}\n});\n\n// Create scrollLeft and scrollTop methods\njQuery.each( { scrollLeft: \"pageXOffset\", scrollTop: \"pageYOffset\" }, function( method, prop ) {\n\tvar top = /Y/.test( prop );\n\n\tjQuery.fn[ method ] = function( val ) {\n\t\treturn access( this, function( elem, method, val ) {\n\t\t\tvar win = getWindow( elem );\n\n\t\t\tif ( val === undefined ) {\n\t\t\t\treturn win ? (prop in win) ? win[ prop ] :\n\t\t\t\t\twin.document.documentElement[ method ] :\n\t\t\t\t\telem[ method ];\n\t\t\t}\n\n\t\t\tif ( win ) {\n\t\t\t\twin.scrollTo(\n\t\t\t\t\t!top ? val : jQuery( win ).scrollLeft(),\n\t\t\t\t\ttop ? val : jQuery( win ).scrollTop()\n\t\t\t\t);\n\n\t\t\t} else {\n\t\t\t\telem[ method ] = val;\n\t\t\t}\n\t\t}, method, val, arguments.length, null );\n\t};\n});\n\n// Add the top/left cssHooks using jQuery.fn.position\n// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084\n// getComputedStyle returns percent when specified for top/left/bottom/right\n// rather than make the css module depend on the offset module, we just check for it here\njQuery.each( [ \"top\", \"left\" ], function( i, prop ) {\n\tjQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,\n\t\tfunction( elem, computed ) {\n\t\t\tif ( computed ) {\n\t\t\t\tcomputed = curCSS( elem, prop );\n\t\t\t\t// if curCSS returns percentage, fallback to offset\n\t\t\t\treturn rnumnonpx.test( computed ) ?\n\t\t\t\t\tjQuery( elem ).position()[ prop ] + \"px\" :\n\t\t\t\t\tcomputed;\n\t\t\t}\n\t\t}\n\t);\n});\n\n\n// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods\njQuery.each( { Height: \"height\", Width: \"width\" }, function( name, type ) {\n\tjQuery.each( { padding: \"inner\" + name, content: type, \"\": \"outer\" + name }, function( defaultExtra, funcName ) {\n\t\t// margin is only for outerHeight, outerWidth\n\t\tjQuery.fn[ funcName ] = function( margin, value ) {\n\t\t\tvar chainable = arguments.length && ( defaultExtra || typeof margin !== \"boolean\" ),\n\t\t\t\textra = defaultExtra || ( margin === true || value === true ? \"margin\" : \"border\" );\n\n\t\t\treturn access( this, function( elem, type, value ) {\n\t\t\t\tvar doc;\n\n\t\t\t\tif ( jQuery.isWindow( elem ) ) {\n\t\t\t\t\t// As of 5/8/2012 this will yield incorrect results for Mobile Safari, but there\n\t\t\t\t\t// isn't a whole lot we can do. See pull request at this URL for discussion:\n\t\t\t\t\t// https://github.com/jquery/jquery/pull/764\n\t\t\t\t\treturn elem.document.documentElement[ \"client\" + name ];\n\t\t\t\t}\n\n\t\t\t\t// Get document width or height\n\t\t\t\tif ( elem.nodeType === 9 ) {\n\t\t\t\t\tdoc = elem.documentElement;\n\n\t\t\t\t\t// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height], whichever is greatest\n\t\t\t\t\t// unfortunately, this causes bug #3838 in IE6/8 only, but there is currently no good, small way to fix it.\n\t\t\t\t\treturn Math.max(\n\t\t\t\t\t\telem.body[ \"scroll\" + name ], doc[ \"scroll\" + name ],\n\t\t\t\t\t\telem.body[ \"offset\" + name ], doc[ \"offset\" + name ],\n\t\t\t\t\t\tdoc[ \"client\" + name ]\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn value === undefined ?\n\t\t\t\t\t// Get width or height on the element, requesting but not forcing parseFloat\n\t\t\t\t\tjQuery.css( elem, type, extra ) :\n\n\t\t\t\t\t// Set width or height on the element\n\t\t\t\t\tjQuery.style( elem, type, value, extra );\n\t\t\t}, type, chainable ? margin : undefined, chainable, null );\n\t\t};\n\t});\n});\n\n\n// The number of elements contained in the matched element set\njQuery.fn.size = function() {\n\treturn this.length;\n};\n\njQuery.fn.andSelf = jQuery.fn.addBack;\n\n\n\n\n// Register as a named AMD module, since jQuery can be concatenated with other\n// files that may use define, but not via a proper concatenation script that\n// understands anonymous AMD modules. A named AMD is safest and most robust\n// way to register. Lowercase jquery is used because AMD module names are\n// derived from file names, and jQuery is normally delivered in a lowercase\n// file name. Do this after creating the global so that if an AMD module wants\n// to call noConflict to hide this version of jQuery, it will work.\n\n// Note that for maximum portability, libraries that are not jQuery should\n// declare themselves as anonymous modules, and avoid setting a global if an\n// AMD loader is present. jQuery is a special case. For more information, see\n// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon\n\nif ( typeof define === \"function\" && define.amd ) {\n\tdefine( \"jquery\", [], function() {\n\t\treturn jQuery;\n\t});\n}\n\n\n\n\nvar\n\t// Map over jQuery in case of overwrite\n\t_jQuery = window.jQuery,\n\n\t// Map over the $ in case of overwrite\n\t_$ = window.$;\n\njQuery.noConflict = function( deep ) {\n\tif ( window.$ === jQuery ) {\n\t\twindow.$ = _$;\n\t}\n\n\tif ( deep && window.jQuery === jQuery ) {\n\t\twindow.jQuery = _jQuery;\n\t}\n\n\treturn jQuery;\n};\n\n// Expose jQuery and $ identifiers, even in\n// AMD (#7102#comment:10, https://github.com/jquery/jquery/pull/557)\n// and CommonJS for browser emulators (#13566)\nif ( typeof noGlobal === strundefined ) {\n\twindow.jQuery = window.$ = jQuery;\n}\n\n\n\n\nreturn jQuery;\n\n}));\n })();\n});","","","","","","","","","","","","","","","","","","","","","","","","","window.addEventListener(\"load\", function(){\n window.cookieconsent.initialise({\n \"palette\": {\n \"popup\": {\n \"background\": \"#EB3B7F\",\n \"text\": \"rgba(255, 255, 255, 0.7)\"\n },\n \"button\": {\n \"background\": \"#fff\"\n }\n },\n \"position\": \"bottom\",\n \"content\": {\n \"message\": \"We use cookies, just to track visits to our website, we store no personal details.\"\n }\n })\n});\n","document.addEventListener('DOMContentLoaded', () => {\n // do your setup here\n console.log('Initialized app');\n \n require('scripts/landing-page.js');\n require('scripts/validator.min.js');\n require('scripts/simple-form.js');\n require('scripts/cookies.js');\n });\n ","/* --------------------------------------------------\n\tSTART Window Ready State\n-------------------------------------------------- */\n$(window).load(function () {\n\n\tinitPortfolio();\n\t// initServicesAffix();\n\n\t$(\".contact-form ul li input\").click(function () {\n\t\t$(this).parent().toggleClass(\"service-checked\");\n\t});\n\n $('body').addClass('cs-wb-loaded');\n});\n\n/* --------------------------------------------------\n\tSTART Document Ready State\n-------------------------------------------------- */\n$(document).ready(function () {\n\tconsole.log(\" --CS Start Script \");\n\tinitNavbar();\n\t// initBanner();\n\tinitVideoBg();\n\tinitCountNbr();\n\tinitSliders();\n\tinitAnimation();\n\tinitWaypoints();\n\t// initContactMap();\n\tinitSmoothScroll();\n\tinitBackupPicture();\n\tinitCircleProgress();\n\tinitTwitterWidgetCSS();\n\tinitLayerImagesHover();\n\n\t// initFloatingLayersAnimation();\n\n\t// Parallax disabled for mobile screens\n\tif ($(window).width() >= 1260) {\n\t\t// initParallax();\n\n\t\t// $(window).stellar({\n\t\t// hideDistantElements: false\n\t\t// });\n\t}\n\n\tconsole.log(\" --CS End Script \");\n});\n\n/* --------------------------------------------------\n\tGLOBAL VARIABLES\n-------------------------------------------------- */\nvar counter1, counter2, counter3, counter4;\n\n/* --------------------------------------------------\n\tGLOBAL FUNCTIONS\n-------------------------------------------------- */\n\n/* --------------------------------------------------\n Contact Pages\n-------------------------------------------------- */\n\n// $('.show-map').on('click', function (e) {\n// e.preventDefault();\n// $('.contact-info-wrapper').toggleClass('map-open');\n// $('.show-info-link').toggleClass('info-open');\n// });\n\n// $('.show-info-link').on('click', function (e) {\n// e.preventDefault();\n// $('.contact-info-wrapper').toggleClass('map-open');\n// $(this).toggleClass('info-open');\n// });\n\nfunction initContactMap() {\n function initGMap() {\n 'use strict';\n var mapOptions = {\n // How zoomed in you want the map to start at (always required)\n zoom: 13,\n scrollwheel: false,\n // The latitude and longitude to center the map (always required)\n center: new google.maps.LatLng(41.880038, -87.601127),\n // Styling of the map in JSON object\n styles: [{\n \"featureType\": \"administrative\",\n \"elementType\": \"labels.text.fill\",\n \"stylers\": [{\n \"color\": \"#444444\"\n }]\n }, {\n \"featureType\": \"landscape\",\n \"elementType\": \"all\",\n \"stylers\": [{\n \"color\": \"#f2f2f2\"\n }]\n }, {\n \"featureType\": \"poi\",\n \"elementType\": \"all\",\n \"stylers\": [{\n \"visibility\": \"off\"\n }]\n }, {\n \"featureType\": \"road\",\n \"elementType\": \"all\",\n \"stylers\": [{\n \"saturation\": -100\n }, {\n \"lightness\": 45\n }]\n }, {\n \"featureType\": \"road.highway\",\n \"elementType\": \"all\",\n \"stylers\": [{\n \"visibility\": \"simplified\"\n }]\n }, {\n \"featureType\": \"road.arterial\",\n \"elementType\": \"labels.icon\",\n \"stylers\": [{\n \"visibility\": \"off\"\n }]\n }, {\n \"featureType\": \"transit\",\n \"elementType\": \"all\",\n \"stylers\": [{\n \"visibility\": \"off\"\n }]\n }, {\n \"featureType\": \"water\",\n \"elementType\": \"all\",\n \"stylers\": [{\n \"color\": \"#cdd2d4\"\n }, {\n \"visibility\": \"on\"\n }]\n }]\n };\n var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);\n // Map marker \n var image = '/assets/images/map-pin.png';\n var myLatLng = new google.maps.LatLng(41.880038, -87.631127);\n var beachMarker = new google.maps.Marker({\n position: myLatLng,\n map: map,\n icon: image\n });\n } // initGMap\n google.maps.event.addDomListener(window, 'load', initGMap);\n}\n\n/* --------------------------------------------------\n\tWaypoints\n-------------------------------------------------- */\n\nfunction initWaypoints() {\n\tif ($('#counters').length) {\n\t\tvar countersWaypoint = new Waypoint({\n\t\t\telement: $('#counters'),\n\t\t\thandler: function() {\n\t\t\t\tcounter1.reset();\n\t\t\t\tcounter2.reset();\n\t\t\t\tcounter3.reset();\n\t\t\t\tcounter4.reset();\n\t\t\t\t// counter1.start(() => console.log('Completed!')); Callback function when done!\n\t\t\t\tcounter1.start();\n\t\t\t\tcounter2.start();\n\t\t\t\tcounter3.start();\n\t\t\t\tcounter4.start();\n\t\t\t},\n\t\t\toffset: '80%',\n\t\t});\t\n\t}\n\tif ($(window).width() < 768) {\n\t\tif ($('#main-services').length) {\n\t\t\t// What We Do Cards\n\t\t\tvar countersWaypoint = new Waypoint({\n\t\t\t\telement: $(\".ft-item[data-service='Web Development']\"),\n\t\t\t\thandler: function() {\n\t\t\t\t\t$(this.element).addClass('hoverClass');\n\t\t\t\t\t$(\".ft-item[data-service!='Web Development']\").removeClass('hoverClass');\n\t\t\t\t},\n\t\t\t\toffset: '50%',\n\t\t\t});\n\t\t\tvar countersWaypoint = new Waypoint({\n\t\t\t\telement: $(\".ft-item[data-service='Machine Learning']\"),\n\t\t\t\thandler: function() {\n\t\t\t\t\t$(this.element).addClass('hoverClass');\n\t\t\t\t\t$(\".ft-item[data-service!='Machine Learning']\").removeClass('hoverClass');\n\t\t\t\t},\n\t\t\t\toffset: '50%',\n\t\t\t});\n\t\t\tvar countersWaypoint = new Waypoint({\n\t\t\t\telement: $(\".ft-item[data-service='Specific Systems']\"),\n\t\t\t\thandler: function() {\n\t\t\t\t\t$(this.element).addClass('hoverClass');\n\t\t\t\t\t$(\".ft-item[data-service!='Specific Systems']\").removeClass('hoverClass');\n\t\t\t\t},\n\t\t\t\toffset: '50%',\n\t\t\t});\n\t\t\tvar countersWaypoint = new Waypoint({\n\t\t\t\telement: $(\".ft-item[data-service='Maintenance and Support']\"),\n\t\t\t\thandler: function() {\n\t\t\t\t\t$(this.element).addClass('hoverClass');\n\t\t\t\t\t$(\".ft-item[data-service!='Maintenance and Support']\").removeClass('hoverClass');\n\t\t\t\t},\n\t\t\t\toffset: '50%',\n\t\t\t});\n\t\t\tvar countersWaypoint = new Waypoint({\n\t\t\t\telement: $(\".ft-item[data-service='Team Extension']\"),\n\t\t\t\thandler: function() {\n\t\t\t\t\t$(this.element).addClass('hoverClass');\n\t\t\t\t\t$(\".ft-item[data-service!='Team Extension']\").removeClass('hoverClass');\n\t\t\t\t},\n\t\t\t\toffset: '50%',\n\t\t\t});\n\t\t}\n\t\tif ($('#main-community').length) {\n\t\t\t// Community Cards\n\t\t\tvar countersWaypoint = new Waypoint({\n\t\t\t\telement: $(\".ft-item[data-community='Unconference']\"),\n\t\t\t\thandler: function() {\n\t\t\t\t\t$(this.element).addClass('hoverClass');\n\t\t\t\t\t$(\".ft-item[data-community!='Unconference']\").removeClass('hoverClass');\n\t\t\t\t},\n\t\t\t\toffset: '50%',\n\t\t\t});\n\t\t\tvar countersWaypoint = new Waypoint({\n\t\t\t\telement: $(\".ft-item[data-community='Hacknight']\"),\n\t\t\t\thandler: function() {\n\t\t\t\t\t$(this.element).addClass('hoverClass');\n\t\t\t\t\t$(\".ft-item[data-community!='Hacknight']\").removeClass('hoverClass');\n\t\t\t\t},\n\t\t\t\toffset: '50%',\n\t\t\t});\n\t\t}\n\t\tif ($('#webdevelopment_frameworks').length) {\n\t\t\t// Frameworks Cards\n\t\t\tvar countersWaypoint = new Waypoint({\n\t\t\t\telement: $(\".ft-item[data-framework='Ruby On Rails']\"),\n\t\t\t\thandler: function() {\n\t\t\t\t\t$(this.element).addClass('hoverClass');\n\t\t\t\t\t$(\".ft-item[data-framework!='Ruby On Rails']\").removeClass('hoverClass');\n\t\t\t\t},\n\t\t\t\toffset: '50%',\n\t\t\t});\n\t\t\tvar countersWaypoint = new Waypoint({\n\t\t\t\telement: $(\".ft-item[data-framework='Elixir and Phoenix']\"),\n\t\t\t\thandler: function() {\n\t\t\t\t\t$(this.element).addClass('hoverClass');\n\t\t\t\t\t$(\".ft-item[data-framework!='Elixir and Phoenix']\").removeClass('hoverClass');\n\t\t\t\t},\n\t\t\t\toffset: '50%',\n\t\t\t});\t\n\t\t}\n\t}\n}\n\n/* --------------------------------------------------\n\tNumber Counters\n-------------------------------------------------- */\n\nfunction initCountNbr () {\n\tvar hasCounters = $('#counters').hasClass('count-wrapper');\n\tif (hasCounters) {\n\t\tvar options = {\n\t\t\tseparator : ',',\n\t\t\tuseEasing : true,\n\t\t\tuseGrouping : true, \n\t\t};\n\t\t// Counter 1\n\t\tcounter1 = new CountUp('count-1', 0, 8, 0, 4, options);\n\t\t// Counter 2\n\t\tcounter2 = new CountUp('count-2', 0, 30, 0, 4, options);\n\t\t// Counter 3\n\t\tcounter3 = new CountUp('count-3', 0, 40, 0, 4, options);\n\t\t// Counter 4\n\t\tcounter4 = new CountUp('count-4', 0, 1500, 0, 4, options);\n\t}\n\n\t/* ---- Hover Counters --------------------- */\n\t$('.number-counters-simple .count-wrapper .count-item:nth-child(1)').hover(function () { counter1.reset(); counter1.start(); }, function () { /* Reset */ });\n\t$('.number-counters-simple .count-wrapper .count-item:nth-child(2)').hover(function () { counter2.reset(); counter2.start(); }, function () { /* Reset */ });\n\t$('.number-counters-simple .count-wrapper .count-item:nth-child(3)').hover(function () { counter3.reset(); counter3.start(); }, function () { /* Reset */ });\n\t$('.number-counters-simple .count-wrapper .count-item:nth-child(4)').hover(function () { counter4.reset(); counter4.start(); }, function () { /* Reset */ });\n} // initCountNbr\n\n/* --------------------------------------------------\n\tinitFloatingLayersAnimation\n-------------------------------------------------- */\n\nfunction initFloatingLayersAnimation() {\n\tconst layer_1 = document.querySelector('.float-Y-1');\n\tlayer_1.addEventListener('animationend', () => {\n\t\t$('.float-Y-1.is-animated').removeClass(\"is-animated\");\n\t\t$('.float-Y-2').addClass(\"is-animated\");\n\t\t// console.log('Layer-1 Animation End');\n\t});\n\tconst layer_2 = document.querySelector('.float-Y-2');\n\tlayer_2.addEventListener('animationend', () => {\n\t\t$('.float-Y-2.is-animated').removeClass(\"is-animated\");\n\t\t$('.float-Y-3').addClass(\"is-animated\");\n\t\t// console.log('Layer-2 Animation End');\n\t});\n\tconst layer_3 = document.querySelector('.float-Y-3');\n\tlayer_3.addEventListener('animationend', () => {\n\t\t$('.float-Y-3.is-animated').removeClass(\"is-animated\");\n\t\t$('.float-Y-1').addClass(\"is-animated\");\n\t});\n}\n\n/* --------------------------------------------------\n\tinitCircleProgress\n-------------------------------------------------- */\n\nfunction initCircleProgress() {\n\t$('.cs-layers-img .layer-1 .layer-circle').circleProgress({\n\t\tvalue: 0.9,\n\t\tsize: 1000,\n\t\tfill: { gradient: [[\"#FFD100\", .5], [\"#00CDFF\", .5]], gradientAngle: Math.PI / 4 },\n\t});\n}\n\n/* --------------------------------------------------\n\tinitLayerImagesHover\n-------------------------------------------------- */\n\nfunction initLayerImagesHover() {\n\t/* ---- Hover Hero Layer 1 --------------------- */\n\t$('#codescrum-hero .overlay .cs-layers-img .layer.layer-1').hover(function () {\n\t\t$('#codescrum-hero .overlay .cs-layers-img .layer.layer-2 .layer-content').css({ 'opacity': '0.2', 'filter': 'grayscale(100%)' });\n\t\t$('#codescrum-hero .overlay .cs-layers-img .layer.layer-3 .layer-content').css({ 'opacity': '0.2', 'filter': 'grayscale(100%)' });\n\t\t// Init Barchart animation\n\t\t$('#codescrum-hero .overlay .cs-layers-img .layer.layer-1 .layer-content').addClass(\"no-width is-animated\");\n\t\t// Animate CircleProgress\n\t\t$('.cs-layers-img .layer-1 .layer-circle').circleProgress({\n\t\t\tvalue: 0.9,\n\t\t\tsize: 1000,\n\t\t\tfill: { gradient: [[\"#FFD100\", .5], [\"#00CDFF\", .5]], gradientAngle: Math.PI / 4 },\n\t\t}).on('circle-animation-progress', function (event, progress) {\n\t\t\t$(this).find('strong').html(Math.round(100 * progress) + '<i>%</i>');\n\t\t\tfill: {\n\t\t\t\tgradient: ['#fffff', '#000000'];\n\t\t\t}\n\t\t});\n\t}, function () {\n\t\t// Reset the Styles\n\t\t// Init Barchart animation\n\t\t$('#codescrum-hero .overlay .cs-layers-img .layer.layer-1 .layer-content').removeClass(\"no-width is-animated\");\n\t\t$('#codescrum-hero .overlay .cs-layers-img .layer.layer-2 .layer-content').css({ 'opacity': '1', 'filter': 'grayscale(0%)' });\n\t\t$('#codescrum-hero .overlay .cs-layers-img .layer.layer-3 .layer-content').css({ 'opacity': '1', 'filter': 'grayscale(0%)' });\n\t});\n\t/* ---- Hover Hero Layer 2 --------------------- */\n\t$('#codescrum-hero .overlay .cs-layers-img .layer.layer-2').hover(function () {\n\t\t$('#codescrum-hero .overlay .cs-layers-img .layer.layer-1 .layer-content').css({ 'opacity': '0.2', 'filter': 'grayscale(100%)' });\n\t\t$('#codescrum-hero .overlay .cs-layers-img .layer.layer-3 .layer-content').css({ 'opacity': '0.2', 'filter': 'grayscale(100%)' });\n\t\t// Init Typewriter animation\n\t\t$('#codescrum-hero .overlay .cs-layers-img .layer.layer-2 .layer-content .layer-moving_dots').addClass(\"no-width is-animated\");\n\t}, function () {\n\t\t// Reset the Styles\n\t\t$('#codescrum-hero .overlay .cs-layers-img .layer.layer-1 .layer-content').css({ 'opacity': '1', 'filter': 'grayscale(0%)' });\n\t\t$('#codescrum-hero .overlay .cs-layers-img .layer.layer-3 .layer-content').css({ 'opacity': '1', 'filter': 'grayscale(0%)' });\n\t\t// Stop Typewriter animation\n\t\t$('#codescrum-hero .overlay .cs-layers-img .layer.layer-2 .layer-content .layer-moving_dots').removeClass(\"no-width is-animated\");\n\t});\n\t/* ---- Hover Hero Layer 3 --------------------- */\n\t$('#codescrum-hero .overlay .cs-layers-img .layer.layer-3').hover(function () {\n\t\t$('#codescrum-hero .overlay .cs-layers-img .layer.layer-1 .layer-content').css({ 'opacity': '0.2', 'filter': 'grayscale(100%)' });\n\t\t$('#codescrum-hero .overlay .cs-layers-img .layer.layer-2 .layer-content').css({ 'opacity': '0.2', 'filter': 'grayscale(100%)' });\n\t\t// Init Typewriter animation\n\t\t$('#codescrum-hero .overlay .cs-layers-img .layer.layer-3 .layer-content .layer-typewriter').addClass(\"no-width is-animated\");\n\t}, function () {\n\t\t// Reset the Styles\n\t\t$('#codescrum-hero .overlay .cs-layers-img .layer.layer-1 .layer-content').css({ 'opacity': '1', 'filter': 'grayscale(0%)' });\n\t\t$('#codescrum-hero .overlay .cs-layers-img .layer.layer-2 .layer-content').css({ 'opacity': '1', 'filter': 'grayscale(0%)' });\n\t\t// Stop Typewriter animation\n\t\t$('#codescrum-hero .overlay .cs-layers-img .layer.layer-3 .layer-content .layer-typewriter').removeClass(\"no-width is-animated\");\n\t});\n}\n\n/* --------------------------------------------------\n\tinitTwitterWidgetCSS\n-------------------------------------------------- */\n\nfunction initTwitterWidgetCSS() {\n // Twitter Overrides\n twttr.ready(function (twttr) {\n twttr.events.bind('rendered', function (event) {\n var tgt = event.target;\n\n $(tgt).contents().find('head').append('<link type=\"text/css\" rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Roboto:100,300&display=swap\">');\n\n $(\"<style>\").prop(\"type\", \"text/css\").html(\"\\\n body {\\\n font-family: 'Roboto', sans-serif;\\\n }\\\n a {\\\n color: #41B5D9;\\\n }\\\n .TweetAuthor-name {\\\n color: #ddd;\\\n\t }\\\n\t .timeline-Tweet:hover{\\\n\t\t background-color: rgb(248 248 248 / .05);\\\n\t }\\\n .SandboxRoot.env-bp-min .timeline-Tweet-text {\\\n color: #ddd;\\\n font-weight: 100;\\\n }\\\n .TwitterCardsGrid .TwitterCardsGrid-col--12 {\\\n border-color: rgba(204, 204, 204, 0.2);\\\n }\\\n .TwitterCard .SummaryCard-content,\\\n .TwitterCard .SummaryCard--large .SummaryCard-content {\\\n color: #999;\\\n }\\\n \").appendTo($(tgt).contents().find('head'));\n\n console.log(\"Twitter Widget - Overrided Styles\");\n });\n });\n}\n\n/* --------------------------------------------------\n\tLoad Backup Picture (onError)\n-------------------------------------------------- */\n\nfunction initBackupPicture() {\n\t$(\".backup_picture\").on(\"error\", function () {\n\t\tconsole.log(\"[ERROR] Unable to load image: \" + this.title + \".\");\n\t\t$(this).attr('src', 'https://via.placeholder.com/600x400/2D3E56/DEE5ED/?text=Codescrum%20Image');\n\t});\n}\n\n/* --------------------------------------------------\n\tSmooth Scroll\n-------------------------------------------------- */\n\nfunction initSmoothScroll() {\n\n\t// Select all links with hashes\n\n\t// Remove links that don't actually link to anything\n $('a[href*=\"#\"]').not('[href=\"#\"]').not('[href=\"#0\"]').click(function (event) {\n // On-page links\n if (\n location.pathname.replace(/^\\//, '') == this.pathname.replace(/^\\//, '')\n &&\n location.hostname == this.hostname\n ) {\n // Figure out element to scroll to\n var target = $(this.hash);\n target = target.length ? target : $('[name=' + this.hash.slice(1) + ']');\n // Does a scroll target exist?\n if (target.length) {\n // Only prevent default if animation is actually gonna happen\n event.preventDefault();\n $('html, body').animate({\n scrollTop: target.offset().top\n }, 1000, function () {\n\n });\n }\n }\n });\n}\n\n/* --------------------------------------------------\n Services Affix\n-------------------------------------------------- */\n\nfunction initServicesAffix() {\n if (window.matchMedia('(min-width: 768px)').matches) {\n\n console.log(\"Screen wider than 768px!\");\n\n var serviceAffixLeftSidebarTop = $(\"#codescrum-services .affix-breakpoint-top\").position().top - $(window).height() / 2 + $(\"#codescrum-services .left-sidebar\").height() / 2;\n var serviceAffixMiddleSidebarTop = $(\"#codescrum-services .affix-breakpoint-top\").position().top - $(window).height() / 2 + $(\"#codescrum-services .middle-sidebar\").height() / 2;\n var serviceAffixfooterHeight = $(document).height() - $('.tag-end-serv').position().top + 150;\n\n $('#codescrum-services .left-sidebar').affix({\n\t\toffset: {\n\t\t\ttop: serviceAffixLeftSidebarTop,\n\t\t\tbottom: serviceAffixfooterHeight\n\t\t}\n\t\t}).on('affix.bs.affix', function () { // before affix\n\t\t\t$(this).css({\n\t\t\t\t/*'top': headerHeight,*/ // for fixed height\n 'width': $(this).outerWidth() // variable widths\n\t\t\t});\n\t\t});\n\n\t\t$('#codescrum-services .middle-sidebar').affix({\n\t\t\toffset: {\n\t\t\t\ttop: serviceAffixMiddleSidebarTop,\n\t\t\t\tbottom: serviceAffixfooterHeight\n\t\t\t}\n\t\t}).on('affix.bs.affix', function () { // before affix\n\t\t\t$(this).css({\n\t\t\t\t/*'top': headerHeight,*/ // for fixed height\n 'width': $(this).outerWidth() // variable widths\n\t\t\t});\n\t\t});\n\n\t\tconsole.log(\"Affix created!\");\n\n\t\t// For multiple navbar's Scrollspy use target empty\n //$('body').scrollspy({target: \"\", offset: $( window ).height()/2});\n $('body').scrollspy({ target: \".desktopScrollspy\", offset: $(window).height() - 50 });\n\n $(\"#codescrum-services .desktopScrollspy\").on(\"activate.bs.scrollspy\", function () {\n var x = $(\"#codescrum-services .left-sidebar li.active > a\").data(\"service\");\n if (x == \"1\") {\n $(\"#codescrum-services\").removeClass(\"bg-color-1 bg-color-2 bg-color-3 bg-color-4\").addClass(\"bg-color-1\");\n } else if (x == \"2\") {\n $(\"#codescrum-services\").removeClass(\"bg-color-1 bg-color-2 bg-color-3 bg-color-4\").addClass(\"bg-color-2\");\n } else if (x == \"3\") {\n $(\"#codescrum-services\").removeClass(\"bg-color-1 bg-color-2 bg-color-3 bg-color-4\").addClass(\"bg-color-3\");\n } else {\n $(\"#codescrum-services\").removeClass(\"bg-color-1 bg-color-2 bg-color-3 bg-color-4\").addClass(\"bg-color-4\");\n }\n $(\".sidebar-section\").removeClass(\"active\");\n $(\"#section\" + x).addClass(\"active\");\n });\n\n console.log(\"Scrollspy created!\");\n\n } else {\n console.log(\"Screen smaller than 768px!\");\n\n // var serviceAffixMiddleSidebarTop = $(\"#codescrum-services .mobile-sidebar\").position().top;\n // var serviceAffixfooterHeight = $(document).height() - $('.tag-end-serv').position().top + 150;\n //\n // $('#codescrum-services .mobile-sidebar').affix({\n\t\t// offset: {\n // top: serviceAffixMiddleSidebarTop,\n // bottom: serviceAffixfooterHeight\n // }\n // }).on('affix.bs.affix', function () { // before affix\n // $(this).css({\n // //'top': headerHeight, // for fixed height\n // 'width': $(this).outerWidth() // variable widths\n // });\n\t\t// });\n\t\t//\n\t\t// console.log(\"Affix created!\");\n\n\t\t$('body').scrollspy({ target: \".desktopScrollspy\", offset: $(window).height() - 200 });\n\n\t\t$(\"#codescrum-services .desktopScrollspy\").on(\"activate.bs.scrollspy\", function () {\n\t\t\tvar x = $(\"#codescrum-services .left-sidebar li.active > a\").data(\"service\");\n\t\t\tif (x == \"1\") {\n\t\t\t\t$(\"#codescrum-services\").removeClass(\"bg-color-1 bg-color-2 bg-color-3 bg-color-4\").addClass(\"bg-color-1\");\n\t\t\t\t$(\".mobile-sidebar li.active\").removeClass(\"bg-color-1 bg-color-2 bg-color-3 bg-color-4\").addClass(\"bg-color-1\");\n\t\t\t} else if (x == \"2\") {\n\t\t\t\t$(\"#codescrum-services\").removeClass(\"bg-color-1 bg-color-2 bg-color-3 bg-color-4\").addClass(\"bg-color-2\");\n\t\t\t\t$(\".mobile-sidebar li.active\").removeClass(\"bg-color-1 bg-color-2 bg-color-3 bg-color-4\").addClass(\"bg-color-2\");\n\t\t\t} else if (x == \"3\") {\n\t\t\t\t$(\"#codescrum-services\").removeClass(\"bg-color-1 bg-color-2 bg-color-3 bg-color-4\").addClass(\"bg-color-3\");\n\t\t\t\t$(\".mobile-sidebar li.active\").removeClass(\"bg-color-1 bg-color-2 bg-color-3 bg-color-4\").addClass(\"bg-color-3\");\n\t\t\t} else {\n\t\t\t\t$(\"#codescrum-services\").removeClass(\"bg-color-1 bg-color-2 bg-color-3 bg-color-4\").addClass(\"bg-color-4\");\n\t\t\t\t$(\".mobile-sidebar li.active\").removeClass(\"bg-color-1 bg-color-2 bg-color-3 bg-color-4\").addClass(\"bg-color-4\");\n\t\t\t}\n\t\t\t$(\".sidebar-section\").removeClass(\"active\");\n\t\t\t$(\"#section\" + x).addClass(\"active\");\n\t\t});\n\n\t\tconsole.log(\"Scrollspy created!\");\n\n\t}\n}\n\n/* --------------------------------------------------\n\tBanner Promotion\n-------------------------------------------------- */\n\nfunction initBanner() {\n\n\t$(window).scroll(function () {\n\n\t\tif ($(window).scrollTop() > 20) {\n\t\t\t$('#banner_promotion').addClass('banner_promotion_sm', 300);\n\t\t}\n\t\telse {\n\t\t\t$('#banner_promotion').removeClass('banner_promotion_sm', 300);\n\t\t}\n\t});\n\n\t// Dismiss the Banner Promotion on Close icon click\n $('#banner_promotion .close').click(function() {\n\t\t$('#banner_promotion').fadeOut();\n\t})\n\n} // InitBanner\n\n/* --------------------------------------------------\n\tNavigation | Navbar\n-------------------------------------------------- */\n\nfunction initNavbar() {\n\n\t// Sticky Nav & Transparent Background\n\t$(window).scroll(function () {\n\n\t\tif ($(window).scrollTop() > 20) {\n\t\t\t$('nav').removeClass('navbar-trans', 300);\n\t\t\t$('nav').removeClass('navbar-trans-dark');\n\t\t\t$('nav').addClass('navbar-small', 300);\n\t\t}\n\t\telse {\n\t\t\t$('nav:not(.mobile-nav)').addClass('navbar-trans', 300);\n\t\t\t$('nav').removeClass('navbar-small', 300);\n\n\t\t\tif ($('nav').hasClass('trans-helper')) {\n\t\t\t\t$('nav:not(.mobile-nav)').addClass('navbar-trans-dark');\n\t\t\t}\n\t\t}\n\n\t\t$('nav:not(.navbar-fixed-top)').removeClass('navbar-trans navbar-small navbar-trans-dark');\n\n\t});\n\n\n\t// Nav on mobile screens\n\t$(window).resize(function () {\n\t\t// Close mobile menu when clicked any side of page\n\t\t$(document).on('click', function () {\n\t\t\t$('.collapse').collapse('hide');\n\t\t})\n\n\t\tif ($(window).width() <= 1259) {\n\t\t\t$('nav').addClass('mobile-nav');\n\t\t} else {\n\t\t\t$('nav').removeClass('mobile-nav');\n\t\t}\n\n\t\tif ($('nav').hasClass('mobile-nav')) {\n\t\t\t$('nav').removeClass('navbar-trans');\n\t\t\t$('nav').removeClass('navbar-trans-dark');\n\t\t} else {\n\t\t\tif ($(window).width() >= 1259 && $(window).top) {\n\t\t\t\t$('nav').addClass('navbar-trans');\n\t\t\t}\n\t\t}\n\n\t\t// Remove dropdown open on hover for small screens\n\t\tif ($('nav').hasClass('mobile-nav')) {\n\n\t\t\t$('.dropdown-toggle').on('mouseover', function (e) {\n\t\t\t\te.preventDefault();\n\n\t\t\t\t$('.dropdown').removeClass('open');\n\n\t\t\t\te.stopPropagation();\n\t\t\t});\n\t\t}\n\n\t\t// Close mobile menu when clicked hamburger icon\n\t\t$(\"#button_collapse\").on('click', function () {\n\t\t\tvar x = document.getElementById(\"collapse\").getAttribute(\"class\");\n\t\t\tif (x == \"navbar-collapse navbar-right collapse in\") {\n\t\t\t\t$('.collapse').collapse('hide');\n\t\t\t\treturn false;\n\t\t\t}\n\t\t})\n\n\n\t}).resize();\n\n\t// Bugfix for iOS not scrolling on open menu\n\t$(\".navbar-collapse\").css({ maxHeight: $(window).height() - $(\".navbar-header\").height() + \"px\" });\n\n\n\n\t//Reuse navbar links for non home pages. These change from anchors to static pages \n\tif (location.pathname != \"/\" && location.pathname != \"/index.html\") {\n\n\t\t$(\"#navbar-home-link\").attr(\"href\", \"/index.html\");\n\t\t$(\"#navbar-main_services-link\").attr(\"href\", \"/index.html#main-services\");\n\t\t$(\"#navbar-main_case-link\").attr(\"href\", \"/case-studies/\");\n\t\t$(\"#navbar-about_us-link\").attr(\"href\", \"/about-us/\");\n\t\t$(\"#navbar-main_commmunity-link\").attr(\"href\", \"/index.html#main-community\");\n\t\t$(\"#navbar-main_contact_us-link\").attr(\"href\", \"/#main-contact-us\");\n\n\t}\n\n} // initNavbar\n\n/* --------------------------------------------------\n\tVideo Background\n-------------------------------------------------- */\n\nfunction initVideoBg() {\n\n\tvar hasBgVideo = $('#fs-video-one-bg').hasClass('player');\n\tvar hasFwBgVideo = $('#fw-video-one-bg').hasClass('player');\n\tvar hasSecBgVideo = $('#section-video').hasClass('player');\n\n\tif (hasBgVideo || hasFwBgVideo || hasSecBgVideo) {\n\n\t\t$('.player').YTPlayer();\n\n\t}\n\n\n}\n\n/* --------------------------------------------------\n\tPortfolio\n-------------------------------------------------- */\n\nfunction initPortfolio() {\n\n\t// Filters\n\t$('.portfolio-filters a').click(function (e) {\n\t\te.preventDefault();\n\n\t\t$('li').removeClass('active');\n\t\t$(this).parent().addClass('active');\n\t});\n\n\n\t// Full Width Gallery (3 columns)\n\tfunction pfolio3colFW() {\n\n\t\tvar $container = $('#pfolio');\n\t\t// init\n\t\t$container.isotope({\n\t\t\t// options\n\t\t\titemSelector: '.portfolio-item',\n\t\t});\n\n\t\t// Filter items\n\t\t$('#pfolio-filters').on('click', 'a', function () {\n\t\t\tvar filterValue = $(this).attr('data-filter');\n\t\t\t$container.isotope({ filter: filterValue });\n\t\t});\n\n\t} // fwNogap3col\n\n\n\tfunction pfolioMasonry() {\n\n\t\tvar $container = $('.pfolio-items');\n\t\t// init\n\t\t$container.isotope({\n\t\t\t// options\n\t\t\titemSelector: '.p-item',\n\t\t\tpercentPosition: true,\n\t\t\tlayoutMode: 'packery',\n\t\t\tmasonry: {\n\t\t\t\tcolumnWidth: '.grid-sizer'\n\t\t\t}\n\t\t});\n\n\t\t// Filter items\n\t\t$('#pfolio-filters').on('click', 'a', function () {\n\t\t\tvar filterValue = $(this).attr('data-filter');\n\t\t\t$container.isotope({ filter: filterValue });\n\t\t});\n\n\t}\n\n\n\tpfolio3colFW();\n\tpfolioMasonry();\n\n} // initPortfolio\n\n/* --------------------------------------------------\n\tParallax\n-------------------------------------------------- */\n\n\nfunction initParallax() {\n\n\tvar isSafari = /Safari/.test(navigator.userAgent) && /Apple Computer/.test(navigator.vendor);\n\n\tif (!isSafari) {\n\t\t$(\".main-op\").parallax(\"50%\", 0.2);\n\t\t$(\".number-counters\").parallax(\"50%\", 0.2);\n\t\t$(\".cirlce-counters\").parallax(\"50%\", 0.3);\n\t\t$(\".client-list-parallax\").parallax(\"50%\", 0.4);\n\t\t$(\".ft-slider-parallax\").parallax(\"50%\", 0.4);\n\t\t$(\".testimonials-parallaxx\").parallax(\"50%\", 0.4);\n\t\t$(\".twitter-slider\").parallax(\"50%\", 0.4);\n\t\t$(\".login-2\").parallax(\"50%\", 0.2);\n\t}\n}\n\n/* --------------------------------------------------\n\t Sliders\n-------------------------------------------------- */\n\nfunction initSliders() {\n\n\t// Features Slider\n\t$('.ft-slider').slick({\n\t\tautoplay: true,\n\t\tautoplaySpeed: 4000,\n\t\tslidesToShow: 3,\n\t\tslidesToScroll: 1,\n\t\tdots: false,\n\t\tarrows: true,\n\t\tprevArrow: '<button type=\"button\" class=\"info-slider-nav slick-prev\"><i class=\"fa fa-long-arrow-left\"></i></button>',\n\t\tnextArrow: '<button type=\"button\" class=\"info-slider-nav slick-next\"><i class=\"fa fa-long-arrow-right\"></i></button>',\n\t\tresponsive: [\n\t\t\t{\n\t\t\t\tbreakpoint: 999,\n\t\t\t\tsettings: {\n\t\t\t\t\tslidesToShow: 2,\n\t\t\t\t\tslidesToScroll: 2,\n\t\t\t\t\tinfinite: true,\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tbreakpoint: 770,\n\t\t\t\tsettings: {\n\t\t\t\t\tslidesToShow: 1,\n\t\t\t\t\tslidesToScroll: 1\n\t\t\t\t}\n\t\t\t}\n\t\t]\n\t});\n\n\t// Testimonials Sliders\n\t$('.t-slider').slick({\n\t\tautoplay: false,\n\t\tautoplaySpeed: 2000,\n\t\tslidesToShow: 1,\n\t\tslidesToScroll: 1,\n\t\tdots: false,\n\t\tarrows: true,\n\t\tprevArrow: '<button type=\"button\" class=\"t-slider-nav slick-prev\"><span class=\"linea-arrows-slim-left\"></span></button>',\n\t\tnextArrow: '<button type=\"button\" class=\"t-slider-nav slick-next\"><span class=\"linea-arrows-slim-right\"></span></button>',\n\t});\n\n\t// Brands/Clients Slider\n\t$('.clients-slider').slick({\n\t\tautoplay: true,\n\t\tautoplaySpeed: 4000,\n\t\tslidesToShow: 5,\n\t\tslidesToScroll: 1,\n\t\tdots: false,\n\t\tarrows: false,\n\t\tresponsive: [\n\t\t\t{\n\t\t\t\tbreakpoint: 999,\n\t\t\t\tsettings: {\n\t\t\t\t\tslidesToShow: 3,\n\t\t\t\t\tslidesToScroll: 2,\n\t\t\t\t\tinfinite: true,\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tbreakpoint: 770,\n\t\t\t\tsettings: {\n\t\t\t\t\tslidesToShow: 2,\n\t\t\t\t\tslidesToScroll: 1\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tbreakpoint: 599,\n\t\t\t\tsettings: {\n\t\t\t\t\tslidesToShow: 1,\n\t\t\t\t\tslidesToScroll: 1\n\t\t\t\t}\n\t\t\t}\n\t\t]\n\t});\n\n\t// Portfolio Single Slider\n\t$('.single-img-slider').slick({\n\t\tautoplay: true,\n\t\tautoplaySpeed: 4000,\n\t\tslidesToShow: 1,\n\t\tslidesToScroll: 1,\n\t\tadaptiveHeight: true,\n\t\tdots: false,\n\t\tarrows: true,\n\t\tprevArrow: '<button type=\"button\" class=\"slider-nav sl-prev\"><span class=\"linea-arrows-slim-left\"></span></button>',\n\t\tnextArrow: '<button type=\"button\" class=\"slider-nav sl-next\"><span class=\"linea-arrows-slim-right\"></span></button>',\n\t});\n\n\t// Centered Gallery\n\t$('.centered-gallery').slick({\n\t\tcenterMode: true,\n\t\tcenterPadding: '60px',\n\t\tslidesToShow: 3,\n\t\tresponsive: [\n\t\t\t{\n\t\t\t\tbreakpoint: 768,\n\t\t\t\tsettings: {\n\t\t\t\t\tarrows: false,\n\t\t\t\t\tcenterMode: true,\n\t\t\t\t\tcenterPadding: '40px',\n\t\t\t\t\tslidesToShow: 3\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tbreakpoint: 480,\n\t\t\t\tsettings: {\n\t\t\t\t\tarrows: false,\n\t\t\t\t\tcenterMode: true,\n\t\t\t\t\tcenterPadding: '40px',\n\t\t\t\t\tslidesToShow: 1\n\t\t\t\t}\n\t\t\t}\n\t\t]\n\t});\n\n\t// Full Screen Hero Slider\n\t$('.fs-slider').slick({\n\t\tslidesToShow: 1,\n\t\tslidesToScroll: 1,\n\t\tuseCSS: true,\n\t\tfade: true,\n\t\tdots: false,\n\t\tarrows: true,\n\t\tprevArrow: '<button type=\"button\" class=\"slick-prev\"><span class=\"linea-arrows-slim-left\"></span></button>',\n\t\tnextArrow: '<button type=\"button\" class=\"slick-next\"><span class=\"linea-arrows-slim-right\"></span></button>',\n\t\tautoplay: true,\n\t\tautoplaySpeed: 4000,\n\t});\n\n\t// Full Width Hero Slider\n\t$('.fw-slider').slick({\n\t\tslidesToShow: 1,\n\t\tslidesToScroll: 1,\n\t\tfade: true,\n\t\tdots: false,\n\t\tarrows: true,\n\t\tprevArrow: '<button type=\"button\" class=\"slick-prev\"><span class=\"linea-arrows-slim-left\"></span></button>',\n\t\tnextArrow: '<button type=\"button\" class=\"slick-next\"><span class=\"linea-arrows-slim-right\"></span></button>',\n\t\tautoplay: true,\n\t\tautoplaySpeed: 4000,\n\t});\n\n\t// Text Slider\n\t$('.text-slider').slick({\n\t\tslidesToShow: 1,\n\t\tslidesToScroll: 1,\n\t\tadaptiveHeight: true,\n\t\tspeed: 300,\n\t\tfade: true,\n\t\tdots: false,\n\t\tarrows: true,\n\t\tprevArrow: '<button type=\"button\" class=\"slick-prev\"><span class=\"linea-arrows-slim-left\"></span></button>',\n\t\tnextArrow: '<button type=\"button\" class=\"slick-next\"><span class=\"linea-arrows-slim-right\"></span></button>',\n\t\tautoplay: true,\n\t\tautoplaySpeed: 4000,\n\t});\n\n\t// Shop Product Slider\n\t$('.shop-p-slider').slick({\n\t\tslidesToShow: 1,\n\t\tslidesToScroll: 1,\n\t\tadaptiveHeight: true,\n\t\tspeed: 300,\n\t\t// fade: false,\n\t\tdots: false,\n\t\tarrows: true,\n\t\tprevArrow: '<button type=\"button\" class=\"shop-p-slider-nav shop-p-slider-nav-left\"><span class=\"linea-arrows-slim-left\"></span></button>',\n\t\tnextArrow: '<button type=\"button\" class=\"shop-p-slider-nav shop-p-slider-nav-right\"><span class=\"linea-arrows-slim-right\"></span></button>',\n\t\tautoplay: false,\n\t});\n\n\t// Shop Product Single - Slider\n\t$('.prod_single_img_slider').slick({\n\t\tslidesToShow: 1,\n\t\tslidesToScroll: 1,\n\t\tadaptiveHeight: true,\n\t\tspeed: 300,\n\t\t// fade: false,\n\t\tinfinite: true,\n\t\tdots: true,\n\t\tarrows: true,\n\t\tprevArrow: '<button type=\"button\" class=\"shop-p-slider-nav shop-p-slider-nav-left\"><span class=\"linea-arrows-slim-left\"></span></button>',\n\t\tnextArrow: '<button type=\"button\" class=\"shop-p-slider-nav shop-p-slider-nav-right\"><span class=\"linea-arrows-slim-right\"></span></button>',\n\t\tautoplay: false,\n\t\taccessibility: false,\n\t\tcustomPaging: function (slider, i) {\n\t\t\treturn '<a href=\"#\">' + $('.prod_single_thumbs_slider li:nth-child(' + (i + 1) + ')').html() + '</a>';\n\t\t}\n\t});\n\n} // initSliders\n\n/* --------------------------------------------------\n\t Animation\n-------------------------------------------------- */\n\nfunction initAnimation() {\n\n\tnew WOW().init();\n\n}\n","var request,serializeddata,values;\nvar $inputs,$form;\n\nvar originalInputSelector = $.fn.validator.Constructor.INPUT_SELECTOR\n$.fn.validator.Constructor.INPUT_SELECTOR = originalInputSelector + ', input[data-recaptcha]'\n\nwindow.verifyRecaptchaCallback = function (response) {\n $('input[data-recaptcha]').val(response).trigger('change')\n}\n\n// $('form#csSimpleForm').validator({\n// custom: {\n// recaptcha: function ($el) {\n// if (!$el.val()) {\n// grecaptcha.execute();\n// return \"Please, complete the Captcha\"\n// }\n// }\n// }\n// });\n\n$('form#csSimpleForm').validator().on('submit', function (e) {\n if (e.isDefaultPrevented()) {\n // handle the invalid form...\n console.log(\"Form validation failed!\");\n } else {\n // everything looks good!\n console.log('Simple Form Submit Ok');\n $form = $(this);\n $inputs = $form.find(\"input,select\");\n serializeddata = $form.serialize();\n $inputs.prop(\"disabled\", true);\n values = {};\n $inputs.each(function() {\n values[this.name] = $(this).val();\n });\n $('#cs-submit_button').prop('disabled',true);\n $('#cs-submit_button').attr('value','Sending...');\n if(request){\n request.abort();\n }\n\n request = $.ajax({\n url: '@@GSF@', ///////////////PUT YOUR GOOGLE URL HERE*//////////////////////,\n type: \"post\",\n data: serializeddata\n });\n\n request.done(function(response,textStatus, cod){\n $('#cs-submit_button').attr('value','CONTACT US');\n $form.trigger('reset');\n $inputs.prop(\"disabled\", false);\n console.log(response);\n console.log(textStatus);\n console.log(cod);\n window.location.href = '../thanks.html';\n });\n\n // Callback handler that will be called on failure\n request.fail(function (jqXHR, textStatus, errorThrown){\n // Log the error to the console\n console.error(\n \"The following error occurred: \"+\n textStatus, errorThrown\n );\n $inputs.prop(\"disabled\", false);\n alert('We could not send the message, try again');\n });\n\n event.preventDefault();\n }\n});\n","/*!\n * Validator v0.11.9 for Bootstrap 3, by @1000hz\n * Copyright 2017 Cina Saffary\n * Licensed under http://opensource.org/licenses/MIT\n *\n * https://github.com/1000hz/bootstrap-validator\n */\n\n+function(a){\"use strict\";function b(b){return b.is('[type=\"checkbox\"]')?b.prop(\"checked\"):b.is('[type=\"radio\"]')?!!a('[name=\"'+b.attr(\"name\")+'\"]:checked').length:b.is(\"select[multiple]\")?(b.val()||[]).length:b.val()}function c(b){return this.each(function(){var c=a(this),e=a.extend({},d.DEFAULTS,c.data(),\"object\"==typeof b&&b),f=c.data(\"bs.validator\");(f||\"destroy\"!=b)&&(f||c.data(\"bs.validator\",f=new d(this,e)),\"string\"==typeof b&&f[b]())})}var d=function(c,e){this.options=e,this.validators=a.extend({},d.VALIDATORS,e.custom),this.$element=a(c),this.$btn=a('button[type=\"submit\"], input[type=\"submit\"]').filter('[form=\"'+this.$element.attr(\"id\")+'\"]').add(this.$element.find('input[type=\"submit\"], button[type=\"submit\"]')),this.update(),this.$element.on(\"input.bs.validator change.bs.validator focusout.bs.validator\",a.proxy(this.onInput,this)),this.$element.on(\"submit.bs.validator\",a.proxy(this.onSubmit,this)),this.$element.on(\"reset.bs.validator\",a.proxy(this.reset,this)),this.$element.find(\"[data-match]\").each(function(){var c=a(this),d=c.attr(\"data-match\");a(d).on(\"input.bs.validator\",function(){b(c)&&c.trigger(\"input.bs.validator\")})}),this.$inputs.filter(function(){return b(a(this))&&!a(this).closest(\".has-error\").length}).trigger(\"focusout\"),this.$element.attr(\"novalidate\",!0)};d.VERSION=\"0.11.9\",d.INPUT_SELECTOR=':input:not([type=\"hidden\"], [type=\"submit\"], [type=\"reset\"], button)',d.FOCUS_OFFSET=20,d.DEFAULTS={delay:500,html:!1,disable:!0,focus:!0,custom:{},errors:{match:\"Does not match\",minlength:\"Not long enough\"},feedback:{success:\"glyphicon-ok\",error:\"glyphicon-remove\"}},d.VALIDATORS={\"native\":function(a){var b=a[0];return b.checkValidity?!b.checkValidity()&&!b.validity.valid&&(b.validationMessage||\"error!\"):void 0},match:function(b){var c=b.attr(\"data-match\");return b.val()!==a(c).val()&&d.DEFAULTS.errors.match},minlength:function(a){var b=a.attr(\"data-minlength\");return a.val().length<b&&d.DEFAULTS.errors.minlength}},d.prototype.update=function(){var b=this;return this.$inputs=this.$element.find(d.INPUT_SELECTOR).add(this.$element.find('[data-validate=\"true\"]')).not(this.$element.find('[data-validate=\"false\"]').each(function(){b.clearErrors(a(this))})),this.toggleSubmit(),this},d.prototype.onInput=function(b){var c=this,d=a(b.target),e=\"focusout\"!==b.type;this.$inputs.is(d)&&this.validateInput(d,e).done(function(){c.toggleSubmit()})},d.prototype.validateInput=function(c,d){var e=(b(c),c.data(\"bs.validator.errors\"));c.is('[type=\"radio\"]')&&(c=this.$element.find('input[name=\"'+c.attr(\"name\")+'\"]'));var f=a.Event(\"validate.bs.validator\",{relatedTarget:c[0]});if(this.$element.trigger(f),!f.isDefaultPrevented()){var g=this;return this.runValidators(c).done(function(b){c.data(\"bs.validator.errors\",b),b.length?d?g.defer(c,g.showErrors):g.showErrors(c):g.clearErrors(c),e&&b.toString()===e.toString()||(f=b.length?a.Event(\"invalid.bs.validator\",{relatedTarget:c[0],detail:b}):a.Event(\"valid.bs.validator\",{relatedTarget:c[0],detail:e}),g.$element.trigger(f)),g.toggleSubmit(),g.$element.trigger(a.Event(\"validated.bs.validator\",{relatedTarget:c[0]}))})}},d.prototype.runValidators=function(c){function d(a){return c.attr(\"data-\"+a+\"-error\")}function e(){var a=c[0].validity;return a.typeMismatch?c.attr(\"data-type-error\"):a.patternMismatch?c.attr(\"data-pattern-error\"):a.stepMismatch?c.attr(\"data-step-error\"):a.rangeOverflow?c.attr(\"data-max-error\"):a.rangeUnderflow?c.attr(\"data-min-error\"):a.valueMissing?c.attr(\"data-required-error\"):null}function f(){return c.attr(\"data-error\")}function g(a){return d(a)||e()||f()}var h=[],i=a.Deferred();return c.data(\"bs.validator.deferred\")&&c.data(\"bs.validator.deferred\").reject(),c.data(\"bs.validator.deferred\",i),a.each(this.validators,a.proxy(function(a,d){var e=null;!b(c)&&!c.attr(\"required\")||void 0===c.attr(\"data-\"+a)&&\"native\"!=a||!(e=d.call(this,c))||(e=g(a)||e,!~h.indexOf(e)&&h.push(e))},this)),!h.length&&b(c)&&c.attr(\"data-remote\")?this.defer(c,function(){var d={};d[c.attr(\"name\")]=b(c),a.get(c.attr(\"data-remote\"),d).fail(function(a,b,c){h.push(g(\"remote\")||c)}).always(function(){i.resolve(h)})}):i.resolve(h),i.promise()},d.prototype.validate=function(){var b=this;return a.when(this.$inputs.map(function(){return b.validateInput(a(this),!1)})).then(function(){b.toggleSubmit(),b.focusError()}),this},d.prototype.focusError=function(){if(this.options.focus){var b=this.$element.find(\".has-error :input:first\");0!==b.length&&(a(\"html, body\").animate({scrollTop:b.offset().top-d.FOCUS_OFFSET},250),b.focus())}},d.prototype.showErrors=function(b){var c=this.options.html?\"html\":\"text\",d=b.data(\"bs.validator.errors\"),e=b.closest(\".form-group\"),f=e.find(\".help-block.with-errors\"),g=e.find(\".form-control-feedback\");d.length&&(d=a(\"<ul/>\").addClass(\"list-unstyled\").append(a.map(d,function(b){return a(\"<li/>\")[c](b)})),void 0===f.data(\"bs.validator.originalContent\")&&f.data(\"bs.validator.originalContent\",f.html()),f.empty().append(d),e.addClass(\"has-error has-danger\"),e.hasClass(\"has-feedback\")&&g.removeClass(this.options.feedback.success)&&g.addClass(this.options.feedback.error)&&e.removeClass(\"has-success\"))},d.prototype.clearErrors=function(a){var c=a.closest(\".form-group\"),d=c.find(\".help-block.with-errors\"),e=c.find(\".form-control-feedback\");d.html(d.data(\"bs.validator.originalContent\")),c.removeClass(\"has-error has-danger has-success\"),c.hasClass(\"has-feedback\")&&e.removeClass(this.options.feedback.error)&&e.removeClass(this.options.feedback.success)&&b(a)&&e.addClass(this.options.feedback.success)&&c.addClass(\"has-success\")},d.prototype.hasErrors=function(){function b(){return!!(a(this).data(\"bs.validator.errors\")||[]).length}return!!this.$inputs.filter(b).length},d.prototype.isIncomplete=function(){function c(){var c=b(a(this));return!(\"string\"==typeof c?a.trim(c):c)}return!!this.$inputs.filter(\"[required]\").filter(c).length},d.prototype.onSubmit=function(a){this.validate(),(this.isIncomplete()||this.hasErrors())&&a.preventDefault()},d.prototype.toggleSubmit=function(){this.options.disable&&this.$btn.toggleClass(\"disabled\",this.isIncomplete()||this.hasErrors())},d.prototype.defer=function(b,c){return c=a.proxy(c,this,b),this.options.delay?(window.clearTimeout(b.data(\"bs.validator.timeout\")),void b.data(\"bs.validator.timeout\",window.setTimeout(c,this.options.delay))):c()},d.prototype.reset=function(){return this.$element.find(\".form-control-feedback\").removeClass(this.options.feedback.error).removeClass(this.options.feedback.success),this.$inputs.removeData([\"bs.validator.errors\",\"bs.validator.deferred\"]).each(function(){var b=a(this),c=b.data(\"bs.validator.timeout\");window.clearTimeout(c)&&b.removeData(\"bs.validator.timeout\")}),this.$element.find(\".help-block.with-errors\").each(function(){var b=a(this),c=b.data(\"bs.validator.originalContent\");b.removeData(\"bs.validator.originalContent\").html(c)}),this.$btn.removeClass(\"disabled\"),this.$element.find(\".has-error, .has-danger, .has-success\").removeClass(\"has-error has-danger has-success\"),this},d.prototype.destroy=function(){return this.reset(),this.$element.removeAttr(\"novalidate\").removeData(\"bs.validator\").off(\".bs.validator\"),this.$inputs.off(\".bs.validator\"),this.options=null,this.validators=null,this.$element=null,this.$btn=null,this.$inputs=null,this};var e=a.fn.validator;a.fn.validator=c,a.fn.validator.Constructor=d,a.fn.validator.noConflict=function(){return a.fn.validator=e,this},a(window).on(\"load\",function(){a('form[data-toggle=\"validator\"]').each(function(){var b=a(this);c.call(b,b.data())})})}(jQuery);","","","","","","","","","","","","","/**\n * jquery-circle-progress - jQuery Plugin to draw animated circular progress bars:\n * {@link http://kottenator.github.io/jquery-circle-progress/}\n *\n * @author Rostyslav Bryzgunov <kottenator@gmail.com>\n * @version 1.2.2\n * @licence MIT\n * @preserve\n */\n!function(i){if(\"function\"==typeof define&&define.amd)define([\"jquery\"],i);else if(\"object\"==typeof module&&module.exports){var t=require(\"jquery\");i(t),module.exports=t}else i(jQuery)}(function(i){function t(i){this.init(i)}t.prototype={value:0,size:100,startAngle:-Math.PI,thickness:\"auto\",fill:{gradient:[\"#3aeabb\",\"#fdd250\"]},emptyFill:\"rgba(0, 0, 0, .1)\",animation:{duration:1200,easing:\"circleProgressEasing\"},animationStartValue:0,reverse:!1,lineCap:\"butt\",insertMode:\"prepend\",constructor:t,el:null,canvas:null,ctx:null,radius:0,arcFill:null,lastFrameValue:0,init:function(t){i.extend(this,t),this.radius=this.size/2,this.initWidget(),this.initFill(),this.draw(),this.el.trigger(\"circle-inited\")},initWidget:function(){this.canvas||(this.canvas=i(\"<canvas>\")[\"prepend\"==this.insertMode?\"prependTo\":\"appendTo\"](this.el)[0]);var t=this.canvas;if(t.width=this.size,t.height=this.size,this.ctx=t.getContext(\"2d\"),window.devicePixelRatio>1){var e=window.devicePixelRatio;t.style.width=t.style.height=this.size+\"px\",t.width=t.height=this.size*e,this.ctx.scale(e,e)}},initFill:function(){function t(){var t=i(\"<canvas>\")[0];t.width=e.size,t.height=e.size,t.getContext(\"2d\").drawImage(g,0,0,r,r),e.arcFill=e.ctx.createPattern(t,\"no-repeat\"),e.drawFrame(e.lastFrameValue)}var e=this,a=this.fill,n=this.ctx,r=this.size;if(!a)throw Error(\"The fill is not specified!\");if(\"string\"==typeof a&&(a={color:a}),a.color&&(this.arcFill=a.color),a.gradient){var s=a.gradient;if(1==s.length)this.arcFill=s[0];else if(s.length>1){for(var l=a.gradientAngle||0,o=a.gradientDirection||[r/2*(1-Math.cos(l)),r/2*(1+Math.sin(l)),r/2*(1+Math.cos(l)),r/2*(1-Math.sin(l))],h=n.createLinearGradient.apply(n,o),c=0;c<s.length;c++){var d=s[c],u=c/(s.length-1);i.isArray(d)&&(u=d[1],d=d[0]),h.addColorStop(u,d)}this.arcFill=h}}if(a.image){var g;a.image instanceof Image?g=a.image:(g=new Image,g.src=a.image),g.complete?t():g.onload=t}},draw:function(){this.animation?this.drawAnimated(this.value):this.drawFrame(this.value)},drawFrame:function(i){this.lastFrameValue=i,this.ctx.clearRect(0,0,this.size,this.size),this.drawEmptyArc(i),this.drawArc(i)},drawArc:function(i){if(0!==i){var t=this.ctx,e=this.radius,a=this.getThickness(),n=this.startAngle;t.save(),t.beginPath(),this.reverse?t.arc(e,e,e-a/2,n-2*Math.PI*i,n):t.arc(e,e,e-a/2,n,n+2*Math.PI*i),t.lineWidth=a,t.lineCap=this.lineCap,t.strokeStyle=this.arcFill,t.stroke(),t.restore()}},drawEmptyArc:function(i){var t=this.ctx,e=this.radius,a=this.getThickness(),n=this.startAngle;i<1&&(t.save(),t.beginPath(),i<=0?t.arc(e,e,e-a/2,0,2*Math.PI):this.reverse?t.arc(e,e,e-a/2,n,n-2*Math.PI*i):t.arc(e,e,e-a/2,n+2*Math.PI*i,n),t.lineWidth=a,t.strokeStyle=this.emptyFill,t.stroke(),t.restore())},drawAnimated:function(t){var e=this,a=this.el,n=i(this.canvas);n.stop(!0,!1),a.trigger(\"circle-animation-start\"),n.css({animationProgress:0}).animate({animationProgress:1},i.extend({},this.animation,{step:function(i){var n=e.animationStartValue*(1-i)+t*i;e.drawFrame(n),a.trigger(\"circle-animation-progress\",[i,n])}})).promise().always(function(){a.trigger(\"circle-animation-end\")})},getThickness:function(){return i.isNumeric(this.thickness)?this.thickness:this.size/14},getValue:function(){return this.value},setValue:function(i){this.animation&&(this.animationStartValue=this.lastFrameValue),this.value=i,this.draw()}},i.circleProgress={defaults:t.prototype},i.easing.circleProgressEasing=function(i){return i<.5?(i=2*i,.5*i*i*i):(i=2-2*i,1-.5*i*i*i)},i.fn.circleProgress=function(e,a){var n=\"circle-progress\",r=this.data(n);if(\"widget\"==e){if(!r)throw Error('Calling \"widget\" method on not initialized instance is forbidden');return r.canvas}if(\"value\"==e){if(!r)throw Error('Calling \"value\" method on not initialized instance is forbidden');if(\"undefined\"==typeof a)return r.getValue();var s=arguments[1];return this.each(function(){i(this).data(n).setValue(s)})}return this.each(function(){var a=i(this),r=a.data(n),s=i.isPlainObject(e)?e:{};if(r)r.init(s);else{var l=i.extend({},a.data());\"string\"==typeof l.fill&&(l.fill=JSON.parse(l.fill)),\"string\"==typeof l.animation&&(l.animation=JSON.parse(l.animation)),s=i.extend(l,s),s.el=a,r=new t(s),a.data(n,r)}})}});","var CountUp=function(a,b,c,d,e,f){for(var g=0,h=[\"webkit\",\"moz\",\"ms\",\"o\"],i=0;i<h.length&&!window.requestAnimationFrame;++i)window.requestAnimationFrame=window[h[i]+\"RequestAnimationFrame\"],window.cancelAnimationFrame=window[h[i]+\"CancelAnimationFrame\"]||window[h[i]+\"CancelRequestAnimationFrame\"];window.requestAnimationFrame||(window.requestAnimationFrame=function(a){var c=(new Date).getTime(),d=Math.max(0,16-(c-g)),e=window.setTimeout(function(){a(c+d)},d);return g=c+d,e}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(a){clearTimeout(a)}),this.options={useEasing:!0,useGrouping:!0,separator:\",\",decimal:\".\"};for(var j in f)f.hasOwnProperty(j)&&(this.options[j]=f[j]);\"\"===this.options.separator&&(this.options.useGrouping=!1),this.options.prefix||(this.options.prefix=\"\"),this.options.suffix||(this.options.suffix=\"\"),this.d=\"string\"==typeof a?document.getElementById(a):a,this.startVal=Number(b),isNaN(b)&&(this.startVal=Number(b.match(/[\\d]+/g).join(\"\"))),this.endVal=Number(c),isNaN(c)&&(this.endVal=Number(c.match(/[\\d]+/g).join(\"\"))),this.countDown=this.startVal>this.endVal,this.frameVal=this.startVal,this.decimals=Math.max(0,d||0),this.dec=Math.pow(10,this.decimals),this.duration=1e3*Number(e)||2e3;var k=this;this.version=function(){return\"1.5.3\"},this.printValue=function(a){var b=isNaN(a)?\"--\":k.formatNumber(a);\"INPUT\"==k.d.tagName?this.d.value=b:\"text\"==k.d.tagName?this.d.textContent=b:this.d.innerHTML=b},this.easeOutExpo=function(a,b,c,d){return 1024*c*(-Math.pow(2,-10*a/d)+1)/1023+b},this.count=function(a){k.startTime||(k.startTime=a),k.timestamp=a;var b=a-k.startTime;k.remaining=k.duration-b,k.frameVal=k.options.useEasing?k.countDown?k.startVal-k.easeOutExpo(b,0,k.startVal-k.endVal,k.duration):k.easeOutExpo(b,k.startVal,k.endVal-k.startVal,k.duration):k.countDown?k.startVal-(k.startVal-k.endVal)*(b/k.duration):k.startVal+(k.endVal-k.startVal)*(b/k.duration),k.frameVal=k.countDown?k.frameVal<k.endVal?k.endVal:k.frameVal:k.frameVal>k.endVal?k.endVal:k.frameVal,k.frameVal=Math.round(k.frameVal*k.dec)/k.dec,k.printValue(k.frameVal),b<k.duration?k.rAF=requestAnimationFrame(k.count):k.callback&&k.callback()},this.start=function(a){return k.callback=a,isNaN(k.endVal)||isNaN(k.startVal)||k.startVal===k.endVal?(console.log(\"countUp error: startVal or endVal is not a number\"),k.printValue(c)):k.rAF=requestAnimationFrame(k.count),!1},this.pauseResume=function(){k.paused?(k.paused=!1,delete k.startTime,k.duration=k.remaining,k.startVal=k.frameVal,requestAnimationFrame(k.count)):(k.paused=!0,cancelAnimationFrame(k.rAF))},this.reset=function(){k.paused=!1,delete k.startTime,k.startVal=b,cancelAnimationFrame(k.rAF),k.printValue(k.startVal)},this.update=function(a){cancelAnimationFrame(k.rAF),k.paused=!1,delete k.startTime,k.startVal=k.frameVal,k.endVal=Number(a),k.countDown=k.startVal>k.endVal,k.rAF=requestAnimationFrame(k.count)},this.formatNumber=function(a){a=a.toFixed(k.decimals),a+=\"\";var b,c,d,e;if(b=a.split(\".\"),c=b[0],d=b.length>1?k.options.decimal+b[1]:\"\",e=/(\\d+)(\\d{3})/,k.options.useGrouping)for(;e.test(c);)c=c.replace(e,\"$1\"+k.options.separator+\"$2\");return k.options.prefix+c+d+k.options.suffix},k.printValue(k.startVal)};","/*!\n * Isotope PACKAGED v3.0.6\n *\n * Licensed GPLv3 for open source use\n * or Isotope Commercial License for commercial use\n *\n * https://isotope.metafizzy.co\n * Copyright 2010-2018 Metafizzy\n */\n\n!function(t,e){\"function\"==typeof define&&define.amd?define(\"jquery-bridget/jquery-bridget\",[\"jquery\"],function(i){return e(t,i)}):\"object\"==typeof module&&module.exports?module.exports=e(t,require(\"jquery\")):t.jQueryBridget=e(t,t.jQuery)}(window,function(t,e){\"use strict\";function i(i,s,a){function u(t,e,o){var n,s=\"$().\"+i+'(\"'+e+'\")';return t.each(function(t,u){var h=a.data(u,i);if(!h)return void r(i+\" not initialized. Cannot call methods, i.e. \"+s);var d=h[e];if(!d||\"_\"==e.charAt(0))return void r(s+\" is not a valid method\");var l=d.apply(h,o);n=void 0===n?l:n}),void 0!==n?n:t}function h(t,e){t.each(function(t,o){var n=a.data(o,i);n?(n.option(e),n._init()):(n=new s(o,e),a.data(o,i,n))})}a=a||e||t.jQuery,a&&(s.prototype.option||(s.prototype.option=function(t){a.isPlainObject(t)&&(this.options=a.extend(!0,this.options,t))}),a.fn[i]=function(t){if(\"string\"==typeof t){var e=n.call(arguments,1);return u(this,t,e)}return h(this,t),this},o(a))}function o(t){!t||t&&t.bridget||(t.bridget=i)}var n=Array.prototype.slice,s=t.console,r=\"undefined\"==typeof s?function(){}:function(t){s.error(t)};return o(e||t.jQuery),i}),function(t,e){\"function\"==typeof define&&define.amd?define(\"ev-emitter/ev-emitter\",e):\"object\"==typeof module&&module.exports?module.exports=e():t.EvEmitter=e()}(\"undefined\"!=typeof window?window:this,function(){function t(){}var e=t.prototype;return e.on=function(t,e){if(t&&e){var i=this._events=this._events||{},o=i[t]=i[t]||[];return o.indexOf(e)==-1&&o.push(e),this}},e.once=function(t,e){if(t&&e){this.on(t,e);var i=this._onceEvents=this._onceEvents||{},o=i[t]=i[t]||{};return o[e]=!0,this}},e.off=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){var o=i.indexOf(e);return o!=-1&&i.splice(o,1),this}},e.emitEvent=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){i=i.slice(0),e=e||[];for(var o=this._onceEvents&&this._onceEvents[t],n=0;n<i.length;n++){var s=i[n],r=o&&o[s];r&&(this.off(t,s),delete o[s]),s.apply(this,e)}return this}},e.allOff=function(){delete this._events,delete this._onceEvents},t}),function(t,e){\"function\"==typeof define&&define.amd?define(\"get-size/get-size\",e):\"object\"==typeof module&&module.exports?module.exports=e():t.getSize=e()}(window,function(){\"use strict\";function t(t){var e=parseFloat(t),i=t.indexOf(\"%\")==-1&&!isNaN(e);return i&&e}function e(){}function i(){for(var t={width:0,height:0,innerWidth:0,innerHeight:0,outerWidth:0,outerHeight:0},e=0;e<h;e++){var i=u[e];t[i]=0}return t}function o(t){var e=getComputedStyle(t);return e||a(\"Style returned \"+e+\". Are you running this code in a hidden iframe on Firefox? See https://bit.ly/getsizebug1\"),e}function n(){if(!d){d=!0;var e=document.createElement(\"div\");e.style.width=\"200px\",e.style.padding=\"1px 2px 3px 4px\",e.style.borderStyle=\"solid\",e.style.borderWidth=\"1px 2px 3px 4px\",e.style.boxSizing=\"border-box\";var i=document.body||document.documentElement;i.appendChild(e);var n=o(e);r=200==Math.round(t(n.width)),s.isBoxSizeOuter=r,i.removeChild(e)}}function s(e){if(n(),\"string\"==typeof e&&(e=document.querySelector(e)),e&&\"object\"==typeof e&&e.nodeType){var s=o(e);if(\"none\"==s.display)return i();var a={};a.width=e.offsetWidth,a.height=e.offsetHeight;for(var d=a.isBorderBox=\"border-box\"==s.boxSizing,l=0;l<h;l++){var f=u[l],c=s[f],m=parseFloat(c);a[f]=isNaN(m)?0:m}var p=a.paddingLeft+a.paddingRight,y=a.paddingTop+a.paddingBottom,g=a.marginLeft+a.marginRight,v=a.marginTop+a.marginBottom,_=a.borderLeftWidth+a.borderRightWidth,z=a.borderTopWidth+a.borderBottomWidth,I=d&&r,x=t(s.width);x!==!1&&(a.width=x+(I?0:p+_));var S=t(s.height);return S!==!1&&(a.height=S+(I?0:y+z)),a.innerWidth=a.width-(p+_),a.innerHeight=a.height-(y+z),a.outerWidth=a.width+g,a.outerHeight=a.height+v,a}}var r,a=\"undefined\"==typeof console?e:function(t){console.error(t)},u=[\"paddingLeft\",\"paddingRight\",\"paddingTop\",\"paddingBottom\",\"marginLeft\",\"marginRight\",\"marginTop\",\"marginBottom\",\"borderLeftWidth\",\"borderRightWidth\",\"borderTopWidth\",\"borderBottomWidth\"],h=u.length,d=!1;return s}),function(t,e){\"use strict\";\"function\"==typeof define&&define.amd?define(\"desandro-matches-selector/matches-selector\",e):\"object\"==typeof module&&module.exports?module.exports=e():t.matchesSelector=e()}(window,function(){\"use strict\";var t=function(){var t=window.Element.prototype;if(t.matches)return\"matches\";if(t.matchesSelector)return\"matchesSelector\";for(var e=[\"webkit\",\"moz\",\"ms\",\"o\"],i=0;i<e.length;i++){var o=e[i],n=o+\"MatchesSelector\";if(t[n])return n}}();return function(e,i){return e[t](i)}}),function(t,e){\"function\"==typeof define&&define.amd?define(\"fizzy-ui-utils/utils\",[\"desandro-matches-selector/matches-selector\"],function(i){return e(t,i)}):\"object\"==typeof module&&module.exports?module.exports=e(t,require(\"desandro-matches-selector\")):t.fizzyUIUtils=e(t,t.matchesSelector)}(window,function(t,e){var i={};i.extend=function(t,e){for(var i in e)t[i]=e[i];return t},i.modulo=function(t,e){return(t%e+e)%e};var o=Array.prototype.slice;i.makeArray=function(t){if(Array.isArray(t))return t;if(null===t||void 0===t)return[];var e=\"object\"==typeof t&&\"number\"==typeof t.length;return e?o.call(t):[t]},i.removeFrom=function(t,e){var i=t.indexOf(e);i!=-1&&t.splice(i,1)},i.getParent=function(t,i){for(;t.parentNode&&t!=document.body;)if(t=t.parentNode,e(t,i))return t},i.getQueryElement=function(t){return\"string\"==typeof t?document.querySelector(t):t},i.handleEvent=function(t){var e=\"on\"+t.type;this[e]&&this[e](t)},i.filterFindElements=function(t,o){t=i.makeArray(t);var n=[];return t.forEach(function(t){if(t instanceof HTMLElement){if(!o)return void n.push(t);e(t,o)&&n.push(t);for(var i=t.querySelectorAll(o),s=0;s<i.length;s++)n.push(i[s])}}),n},i.debounceMethod=function(t,e,i){i=i||100;var o=t.prototype[e],n=e+\"Timeout\";t.prototype[e]=function(){var t=this[n];clearTimeout(t);var e=arguments,s=this;this[n]=setTimeout(function(){o.apply(s,e),delete s[n]},i)}},i.docReady=function(t){var e=document.readyState;\"complete\"==e||\"interactive\"==e?setTimeout(t):document.addEventListener(\"DOMContentLoaded\",t)},i.toDashed=function(t){return t.replace(/(.)([A-Z])/g,function(t,e,i){return e+\"-\"+i}).toLowerCase()};var n=t.console;return i.htmlInit=function(e,o){i.docReady(function(){var s=i.toDashed(o),r=\"data-\"+s,a=document.querySelectorAll(\"[\"+r+\"]\"),u=document.querySelectorAll(\".js-\"+s),h=i.makeArray(a).concat(i.makeArray(u)),d=r+\"-options\",l=t.jQuery;h.forEach(function(t){var i,s=t.getAttribute(r)||t.getAttribute(d);try{i=s&&JSON.parse(s)}catch(a){return void(n&&n.error(\"Error parsing \"+r+\" on \"+t.className+\": \"+a))}var u=new e(t,i);l&&l.data(t,o,u)})})},i}),function(t,e){\"function\"==typeof define&&define.amd?define(\"outlayer/item\",[\"ev-emitter/ev-emitter\",\"get-size/get-size\"],e):\"object\"==typeof module&&module.exports?module.exports=e(require(\"ev-emitter\"),require(\"get-size\")):(t.Outlayer={},t.Outlayer.Item=e(t.EvEmitter,t.getSize))}(window,function(t,e){\"use strict\";function i(t){for(var e in t)return!1;return e=null,!0}function o(t,e){t&&(this.element=t,this.layout=e,this.position={x:0,y:0},this._create())}function n(t){return t.replace(/([A-Z])/g,function(t){return\"-\"+t.toLowerCase()})}var s=document.documentElement.style,r=\"string\"==typeof s.transition?\"transition\":\"WebkitTransition\",a=\"string\"==typeof s.transform?\"transform\":\"WebkitTransform\",u={WebkitTransition:\"webkitTransitionEnd\",transition:\"transitionend\"}[r],h={transform:a,transition:r,transitionDuration:r+\"Duration\",transitionProperty:r+\"Property\",transitionDelay:r+\"Delay\"},d=o.prototype=Object.create(t.prototype);d.constructor=o,d._create=function(){this._transn={ingProperties:{},clean:{},onEnd:{}},this.css({position:\"absolute\"})},d.handleEvent=function(t){var e=\"on\"+t.type;this[e]&&this[e](t)},d.getSize=function(){this.size=e(this.element)},d.css=function(t){var e=this.element.style;for(var i in t){var o=h[i]||i;e[o]=t[i]}},d.getPosition=function(){var t=getComputedStyle(this.element),e=this.layout._getOption(\"originLeft\"),i=this.layout._getOption(\"originTop\"),o=t[e?\"left\":\"right\"],n=t[i?\"top\":\"bottom\"],s=parseFloat(o),r=parseFloat(n),a=this.layout.size;o.indexOf(\"%\")!=-1&&(s=s/100*a.width),n.indexOf(\"%\")!=-1&&(r=r/100*a.height),s=isNaN(s)?0:s,r=isNaN(r)?0:r,s-=e?a.paddingLeft:a.paddingRight,r-=i?a.paddingTop:a.paddingBottom,this.position.x=s,this.position.y=r},d.layoutPosition=function(){var t=this.layout.size,e={},i=this.layout._getOption(\"originLeft\"),o=this.layout._getOption(\"originTop\"),n=i?\"paddingLeft\":\"paddingRight\",s=i?\"left\":\"right\",r=i?\"right\":\"left\",a=this.position.x+t[n];e[s]=this.getXValue(a),e[r]=\"\";var u=o?\"paddingTop\":\"paddingBottom\",h=o?\"top\":\"bottom\",d=o?\"bottom\":\"top\",l=this.position.y+t[u];e[h]=this.getYValue(l),e[d]=\"\",this.css(e),this.emitEvent(\"layout\",[this])},d.getXValue=function(t){var e=this.layout._getOption(\"horizontal\");return this.layout.options.percentPosition&&!e?t/this.layout.size.width*100+\"%\":t+\"px\"},d.getYValue=function(t){var e=this.layout._getOption(\"horizontal\");return this.layout.options.percentPosition&&e?t/this.layout.size.height*100+\"%\":t+\"px\"},d._transitionTo=function(t,e){this.getPosition();var i=this.position.x,o=this.position.y,n=t==this.position.x&&e==this.position.y;if(this.setPosition(t,e),n&&!this.isTransitioning)return void this.layoutPosition();var s=t-i,r=e-o,a={};a.transform=this.getTranslate(s,r),this.transition({to:a,onTransitionEnd:{transform:this.layoutPosition},isCleaning:!0})},d.getTranslate=function(t,e){var i=this.layout._getOption(\"originLeft\"),o=this.layout._getOption(\"originTop\");return t=i?t:-t,e=o?e:-e,\"translate3d(\"+t+\"px, \"+e+\"px, 0)\"},d.goTo=function(t,e){this.setPosition(t,e),this.layoutPosition()},d.moveTo=d._transitionTo,d.setPosition=function(t,e){this.position.x=parseFloat(t),this.position.y=parseFloat(e)},d._nonTransition=function(t){this.css(t.to),t.isCleaning&&this._removeStyles(t.to);for(var e in t.onTransitionEnd)t.onTransitionEnd[e].call(this)},d.transition=function(t){if(!parseFloat(this.layout.options.transitionDuration))return void this._nonTransition(t);var e=this._transn;for(var i in t.onTransitionEnd)e.onEnd[i]=t.onTransitionEnd[i];for(i in t.to)e.ingProperties[i]=!0,t.isCleaning&&(e.clean[i]=!0);if(t.from){this.css(t.from);var o=this.element.offsetHeight;o=null}this.enableTransition(t.to),this.css(t.to),this.isTransitioning=!0};var l=\"opacity,\"+n(a);d.enableTransition=function(){if(!this.isTransitioning){var t=this.layout.options.transitionDuration;t=\"number\"==typeof t?t+\"ms\":t,this.css({transitionProperty:l,transitionDuration:t,transitionDelay:this.staggerDelay||0}),this.element.addEventListener(u,this,!1)}},d.onwebkitTransitionEnd=function(t){this.ontransitionend(t)},d.onotransitionend=function(t){this.ontransitionend(t)};var f={\"-webkit-transform\":\"transform\"};d.ontransitionend=function(t){if(t.target===this.element){var e=this._transn,o=f[t.propertyName]||t.propertyName;if(delete e.ingProperties[o],i(e.ingProperties)&&this.disableTransition(),o in e.clean&&(this.element.style[t.propertyName]=\"\",delete e.clean[o]),o in e.onEnd){var n=e.onEnd[o];n.call(this),delete e.onEnd[o]}this.emitEvent(\"transitionEnd\",[this])}},d.disableTransition=function(){this.removeTransitionStyles(),this.element.removeEventListener(u,this,!1),this.isTransitioning=!1},d._removeStyles=function(t){var e={};for(var i in t)e[i]=\"\";this.css(e)};var c={transitionProperty:\"\",transitionDuration:\"\",transitionDelay:\"\"};return d.removeTransitionStyles=function(){this.css(c)},d.stagger=function(t){t=isNaN(t)?0:t,this.staggerDelay=t+\"ms\"},d.removeElem=function(){this.element.parentNode.removeChild(this.element),this.css({display:\"\"}),this.emitEvent(\"remove\",[this])},d.remove=function(){return r&&parseFloat(this.layout.options.transitionDuration)?(this.once(\"transitionEnd\",function(){this.removeElem()}),void this.hide()):void this.removeElem()},d.reveal=function(){delete this.isHidden,this.css({display:\"\"});var t=this.layout.options,e={},i=this.getHideRevealTransitionEndProperty(\"visibleStyle\");e[i]=this.onRevealTransitionEnd,this.transition({from:t.hiddenStyle,to:t.visibleStyle,isCleaning:!0,onTransitionEnd:e})},d.onRevealTransitionEnd=function(){this.isHidden||this.emitEvent(\"reveal\")},d.getHideRevealTransitionEndProperty=function(t){var e=this.layout.options[t];if(e.opacity)return\"opacity\";for(var i in e)return i},d.hide=function(){this.isHidden=!0,this.css({display:\"\"});var t=this.layout.options,e={},i=this.getHideRevealTransitionEndProperty(\"hiddenStyle\");e[i]=this.onHideTransitionEnd,this.transition({from:t.visibleStyle,to:t.hiddenStyle,isCleaning:!0,onTransitionEnd:e})},d.onHideTransitionEnd=function(){this.isHidden&&(this.css({display:\"none\"}),this.emitEvent(\"hide\"))},d.destroy=function(){this.css({position:\"\",left:\"\",right:\"\",top:\"\",bottom:\"\",transition:\"\",transform:\"\"})},o}),function(t,e){\"use strict\";\"function\"==typeof define&&define.amd?define(\"outlayer/outlayer\",[\"ev-emitter/ev-emitter\",\"get-size/get-size\",\"fizzy-ui-utils/utils\",\"./item\"],function(i,o,n,s){return e(t,i,o,n,s)}):\"object\"==typeof module&&module.exports?module.exports=e(t,require(\"ev-emitter\"),require(\"get-size\"),require(\"fizzy-ui-utils\"),require(\"./item\")):t.Outlayer=e(t,t.EvEmitter,t.getSize,t.fizzyUIUtils,t.Outlayer.Item)}(window,function(t,e,i,o,n){\"use strict\";function s(t,e){var i=o.getQueryElement(t);if(!i)return void(u&&u.error(\"Bad element for \"+this.constructor.namespace+\": \"+(i||t)));this.element=i,h&&(this.$element=h(this.element)),this.options=o.extend({},this.constructor.defaults),this.option(e);var n=++l;this.element.outlayerGUID=n,f[n]=this,this._create();var s=this._getOption(\"initLayout\");s&&this.layout()}function r(t){function e(){t.apply(this,arguments)}return e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e}function a(t){if(\"number\"==typeof t)return t;var e=t.match(/(^\\d*\\.?\\d*)(\\w*)/),i=e&&e[1],o=e&&e[2];if(!i.length)return 0;i=parseFloat(i);var n=m[o]||1;return i*n}var u=t.console,h=t.jQuery,d=function(){},l=0,f={};s.namespace=\"outlayer\",s.Item=n,s.defaults={containerStyle:{position:\"relative\"},initLayout:!0,originLeft:!0,originTop:!0,resize:!0,resizeContainer:!0,transitionDuration:\"0.4s\",hiddenStyle:{opacity:0,transform:\"scale(0.001)\"},visibleStyle:{opacity:1,transform:\"scale(1)\"}};var c=s.prototype;o.extend(c,e.prototype),c.option=function(t){o.extend(this.options,t)},c._getOption=function(t){var e=this.constructor.compatOptions[t];return e&&void 0!==this.options[e]?this.options[e]:this.options[t]},s.compatOptions={initLayout:\"isInitLayout\",horizontal:\"isHorizontal\",layoutInstant:\"isLayoutInstant\",originLeft:\"isOriginLeft\",originTop:\"isOriginTop\",resize:\"isResizeBound\",resizeContainer:\"isResizingContainer\"},c._create=function(){this.reloadItems(),this.stamps=[],this.stamp(this.options.stamp),o.extend(this.element.style,this.options.containerStyle);var t=this._getOption(\"resize\");t&&this.bindResize()},c.reloadItems=function(){this.items=this._itemize(this.element.children)},c._itemize=function(t){for(var e=this._filterFindItemElements(t),i=this.constructor.Item,o=[],n=0;n<e.length;n++){var s=e[n],r=new i(s,this);o.push(r)}return o},c._filterFindItemElements=function(t){return o.filterFindElements(t,this.options.itemSelector)},c.getItemElements=function(){return this.items.map(function(t){return t.element})},c.layout=function(){this._resetLayout(),this._manageStamps();var t=this._getOption(\"layoutInstant\"),e=void 0!==t?t:!this._isLayoutInited;this.layoutItems(this.items,e),this._isLayoutInited=!0},c._init=c.layout,c._resetLayout=function(){this.getSize()},c.getSize=function(){this.size=i(this.element)},c._getMeasurement=function(t,e){var o,n=this.options[t];n?(\"string\"==typeof n?o=this.element.querySelector(n):n instanceof HTMLElement&&(o=n),this[t]=o?i(o)[e]:n):this[t]=0},c.layoutItems=function(t,e){t=this._getItemsForLayout(t),this._layoutItems(t,e),this._postLayout()},c._getItemsForLayout=function(t){return t.filter(function(t){return!t.isIgnored})},c._layoutItems=function(t,e){if(this._emitCompleteOnItems(\"layout\",t),t&&t.length){var i=[];t.forEach(function(t){var o=this._getItemLayoutPosition(t);o.item=t,o.isInstant=e||t.isLayoutInstant,i.push(o)},this),this._processLayoutQueue(i)}},c._getItemLayoutPosition=function(){return{x:0,y:0}},c._processLayoutQueue=function(t){this.updateStagger(),t.forEach(function(t,e){this._positionItem(t.item,t.x,t.y,t.isInstant,e)},this)},c.updateStagger=function(){var t=this.options.stagger;return null===t||void 0===t?void(this.stagger=0):(this.stagger=a(t),this.stagger)},c._positionItem=function(t,e,i,o,n){o?t.goTo(e,i):(t.stagger(n*this.stagger),t.moveTo(e,i))},c._postLayout=function(){this.resizeContainer()},c.resizeContainer=function(){var t=this._getOption(\"resizeContainer\");if(t){var e=this._getContainerSize();e&&(this._setContainerMeasure(e.width,!0),this._setContainerMeasure(e.height,!1))}},c._getContainerSize=d,c._setContainerMeasure=function(t,e){if(void 0!==t){var i=this.size;i.isBorderBox&&(t+=e?i.paddingLeft+i.paddingRight+i.borderLeftWidth+i.borderRightWidth:i.paddingBottom+i.paddingTop+i.borderTopWidth+i.borderBottomWidth),t=Math.max(t,0),this.element.style[e?\"width\":\"height\"]=t+\"px\"}},c._emitCompleteOnItems=function(t,e){function i(){n.dispatchEvent(t+\"Complete\",null,[e])}function o(){r++,r==s&&i()}var n=this,s=e.length;if(!e||!s)return void i();var r=0;e.forEach(function(e){e.once(t,o)})},c.dispatchEvent=function(t,e,i){var o=e?[e].concat(i):i;if(this.emitEvent(t,o),h)if(this.$element=this.$element||h(this.element),e){var n=h.Event(e);n.type=t,this.$element.trigger(n,i)}else this.$element.trigger(t,i)},c.ignore=function(t){var e=this.getItem(t);e&&(e.isIgnored=!0)},c.unignore=function(t){var e=this.getItem(t);e&&delete e.isIgnored},c.stamp=function(t){t=this._find(t),t&&(this.stamps=this.stamps.concat(t),t.forEach(this.ignore,this))},c.unstamp=function(t){t=this._find(t),t&&t.forEach(function(t){o.removeFrom(this.stamps,t),this.unignore(t)},this)},c._find=function(t){if(t)return\"string\"==typeof t&&(t=this.element.querySelectorAll(t)),t=o.makeArray(t)},c._manageStamps=function(){this.stamps&&this.stamps.length&&(this._getBoundingRect(),this.stamps.forEach(this._manageStamp,this))},c._getBoundingRect=function(){var t=this.element.getBoundingClientRect(),e=this.size;this._boundingRect={left:t.left+e.paddingLeft+e.borderLeftWidth,top:t.top+e.paddingTop+e.borderTopWidth,right:t.right-(e.paddingRight+e.borderRightWidth),bottom:t.bottom-(e.paddingBottom+e.borderBottomWidth)}},c._manageStamp=d,c._getElementOffset=function(t){var e=t.getBoundingClientRect(),o=this._boundingRect,n=i(t),s={left:e.left-o.left-n.marginLeft,top:e.top-o.top-n.marginTop,right:o.right-e.right-n.marginRight,bottom:o.bottom-e.bottom-n.marginBottom};return s},c.handleEvent=o.handleEvent,c.bindResize=function(){t.addEventListener(\"resize\",this),this.isResizeBound=!0},c.unbindResize=function(){t.removeEventListener(\"resize\",this),this.isResizeBound=!1},c.onresize=function(){this.resize()},o.debounceMethod(s,\"onresize\",100),c.resize=function(){this.isResizeBound&&this.needsResizeLayout()&&this.layout()},c.needsResizeLayout=function(){var t=i(this.element),e=this.size&&t;return e&&t.innerWidth!==this.size.innerWidth},c.addItems=function(t){var e=this._itemize(t);return e.length&&(this.items=this.items.concat(e)),e},c.appended=function(t){var e=this.addItems(t);e.length&&(this.layoutItems(e,!0),this.reveal(e))},c.prepended=function(t){var e=this._itemize(t);if(e.length){var i=this.items.slice(0);this.items=e.concat(i),this._resetLayout(),this._manageStamps(),this.layoutItems(e,!0),this.reveal(e),this.layoutItems(i)}},c.reveal=function(t){if(this._emitCompleteOnItems(\"reveal\",t),t&&t.length){var e=this.updateStagger();t.forEach(function(t,i){t.stagger(i*e),t.reveal()})}},c.hide=function(t){if(this._emitCompleteOnItems(\"hide\",t),t&&t.length){var e=this.updateStagger();t.forEach(function(t,i){t.stagger(i*e),t.hide()})}},c.revealItemElements=function(t){var e=this.getItems(t);this.reveal(e)},c.hideItemElements=function(t){var e=this.getItems(t);this.hide(e)},c.getItem=function(t){for(var e=0;e<this.items.length;e++){var i=this.items[e];if(i.element==t)return i}},c.getItems=function(t){t=o.makeArray(t);var e=[];return t.forEach(function(t){var i=this.getItem(t);i&&e.push(i)},this),e},c.remove=function(t){var e=this.getItems(t);this._emitCompleteOnItems(\"remove\",e),e&&e.length&&e.forEach(function(t){t.remove(),o.removeFrom(this.items,t)},this)},c.destroy=function(){var t=this.element.style;t.height=\"\",t.position=\"\",t.width=\"\",this.items.forEach(function(t){t.destroy()}),this.unbindResize();var e=this.element.outlayerGUID;delete f[e],delete this.element.outlayerGUID,h&&h.removeData(this.element,this.constructor.namespace)},s.data=function(t){t=o.getQueryElement(t);var e=t&&t.outlayerGUID;return e&&f[e]},s.create=function(t,e){var i=r(s);return i.defaults=o.extend({},s.defaults),o.extend(i.defaults,e),i.compatOptions=o.extend({},s.compatOptions),i.namespace=t,i.data=s.data,i.Item=r(n),o.htmlInit(i,t),h&&h.bridget&&h.bridget(t,i),i};var m={ms:1,s:1e3};return s.Item=n,s}),function(t,e){\"function\"==typeof define&&define.amd?define(\"isotope-layout/js/item\",[\"outlayer/outlayer\"],e):\"object\"==typeof module&&module.exports?module.exports=e(require(\"outlayer\")):(t.Isotope=t.Isotope||{},t.Isotope.Item=e(t.Outlayer))}(window,function(t){\"use strict\";function e(){t.Item.apply(this,arguments)}var i=e.prototype=Object.create(t.Item.prototype),o=i._create;i._create=function(){this.id=this.layout.itemGUID++,o.call(this),this.sortData={}},i.updateSortData=function(){if(!this.isIgnored){this.sortData.id=this.id,this.sortData[\"original-order\"]=this.id,this.sortData.random=Math.random();var t=this.layout.options.getSortData,e=this.layout._sorters;for(var i in t){var o=e[i];this.sortData[i]=o(this.element,this)}}};var n=i.destroy;return i.destroy=function(){n.apply(this,arguments),this.css({display:\"\"})},e}),function(t,e){\"function\"==typeof define&&define.amd?define(\"isotope-layout/js/layout-mode\",[\"get-size/get-size\",\"outlayer/outlayer\"],e):\"object\"==typeof module&&module.exports?module.exports=e(require(\"get-size\"),require(\"outlayer\")):(t.Isotope=t.Isotope||{},t.Isotope.LayoutMode=e(t.getSize,t.Outlayer))}(window,function(t,e){\"use strict\";function i(t){this.isotope=t,t&&(this.options=t.options[this.namespace],this.element=t.element,this.items=t.filteredItems,this.size=t.size)}var o=i.prototype,n=[\"_resetLayout\",\"_getItemLayoutPosition\",\"_manageStamp\",\"_getContainerSize\",\"_getElementOffset\",\"needsResizeLayout\",\"_getOption\"];return n.forEach(function(t){o[t]=function(){return e.prototype[t].apply(this.isotope,arguments)}}),o.needsVerticalResizeLayout=function(){var e=t(this.isotope.element),i=this.isotope.size&&e;return i&&e.innerHeight!=this.isotope.size.innerHeight},o._getMeasurement=function(){this.isotope._getMeasurement.apply(this,arguments)},o.getColumnWidth=function(){this.getSegmentSize(\"column\",\"Width\")},o.getRowHeight=function(){this.getSegmentSize(\"row\",\"Height\")},o.getSegmentSize=function(t,e){var i=t+e,o=\"outer\"+e;if(this._getMeasurement(i,o),!this[i]){var n=this.getFirstItemSize();this[i]=n&&n[o]||this.isotope.size[\"inner\"+e]}},o.getFirstItemSize=function(){var e=this.isotope.filteredItems[0];return e&&e.element&&t(e.element)},o.layout=function(){this.isotope.layout.apply(this.isotope,arguments)},o.getSize=function(){this.isotope.getSize(),this.size=this.isotope.size},i.modes={},i.create=function(t,e){function n(){i.apply(this,arguments)}return n.prototype=Object.create(o),n.prototype.constructor=n,e&&(n.options=e),n.prototype.namespace=t,i.modes[t]=n,n},i}),function(t,e){\"function\"==typeof define&&define.amd?define(\"masonry-layout/masonry\",[\"outlayer/outlayer\",\"get-size/get-size\"],e):\"object\"==typeof module&&module.exports?module.exports=e(require(\"outlayer\"),require(\"get-size\")):t.Masonry=e(t.Outlayer,t.getSize)}(window,function(t,e){var i=t.create(\"masonry\");i.compatOptions.fitWidth=\"isFitWidth\";var o=i.prototype;return o._resetLayout=function(){this.getSize(),this._getMeasurement(\"columnWidth\",\"outerWidth\"),this._getMeasurement(\"gutter\",\"outerWidth\"),this.measureColumns(),this.colYs=[];for(var t=0;t<this.cols;t++)this.colYs.push(0);this.maxY=0,this.horizontalColIndex=0},o.measureColumns=function(){if(this.getContainerWidth(),!this.columnWidth){var t=this.items[0],i=t&&t.element;this.columnWidth=i&&e(i).outerWidth||this.containerWidth}var o=this.columnWidth+=this.gutter,n=this.containerWidth+this.gutter,s=n/o,r=o-n%o,a=r&&r<1?\"round\":\"floor\";s=Math[a](s),this.cols=Math.max(s,1)},o.getContainerWidth=function(){var t=this._getOption(\"fitWidth\"),i=t?this.element.parentNode:this.element,o=e(i);this.containerWidth=o&&o.innerWidth},o._getItemLayoutPosition=function(t){t.getSize();var e=t.size.outerWidth%this.columnWidth,i=e&&e<1?\"round\":\"ceil\",o=Math[i](t.size.outerWidth/this.columnWidth);o=Math.min(o,this.cols);for(var n=this.options.horizontalOrder?\"_getHorizontalColPosition\":\"_getTopColPosition\",s=this[n](o,t),r={x:this.columnWidth*s.col,y:s.y},a=s.y+t.size.outerHeight,u=o+s.col,h=s.col;h<u;h++)this.colYs[h]=a;return r},o._getTopColPosition=function(t){var e=this._getTopColGroup(t),i=Math.min.apply(Math,e);return{col:e.indexOf(i),y:i}},o._getTopColGroup=function(t){if(t<2)return this.colYs;for(var e=[],i=this.cols+1-t,o=0;o<i;o++)e[o]=this._getColGroupY(o,t);return e},o._getColGroupY=function(t,e){if(e<2)return this.colYs[t];var i=this.colYs.slice(t,t+e);return Math.max.apply(Math,i)},o._getHorizontalColPosition=function(t,e){var i=this.horizontalColIndex%this.cols,o=t>1&&i+t>this.cols;i=o?0:i;var n=e.size.outerWidth&&e.size.outerHeight;return this.horizontalColIndex=n?i+t:this.horizontalColIndex,{col:i,y:this._getColGroupY(i,t)}},o._manageStamp=function(t){var i=e(t),o=this._getElementOffset(t),n=this._getOption(\"originLeft\"),s=n?o.left:o.right,r=s+i.outerWidth,a=Math.floor(s/this.columnWidth);a=Math.max(0,a);var u=Math.floor(r/this.columnWidth);u-=r%this.columnWidth?0:1,u=Math.min(this.cols-1,u);for(var h=this._getOption(\"originTop\"),d=(h?o.top:o.bottom)+i.outerHeight,l=a;l<=u;l++)this.colYs[l]=Math.max(d,this.colYs[l])},o._getContainerSize=function(){this.maxY=Math.max.apply(Math,this.colYs);var t={height:this.maxY};return this._getOption(\"fitWidth\")&&(t.width=this._getContainerFitWidth()),t},o._getContainerFitWidth=function(){for(var t=0,e=this.cols;--e&&0===this.colYs[e];)t++;return(this.cols-t)*this.columnWidth-this.gutter},o.needsResizeLayout=function(){var t=this.containerWidth;return this.getContainerWidth(),t!=this.containerWidth},i}),function(t,e){\"function\"==typeof define&&define.amd?define(\"isotope-layout/js/layout-modes/masonry\",[\"../layout-mode\",\"masonry-layout/masonry\"],e):\"object\"==typeof module&&module.exports?module.exports=e(require(\"../layout-mode\"),require(\"masonry-layout\")):e(t.Isotope.LayoutMode,t.Masonry)}(window,function(t,e){\"use strict\";var i=t.create(\"masonry\"),o=i.prototype,n={_getElementOffset:!0,layout:!0,_getMeasurement:!0};for(var s in e.prototype)n[s]||(o[s]=e.prototype[s]);var r=o.measureColumns;o.measureColumns=function(){this.items=this.isotope.filteredItems,r.call(this)};var a=o._getOption;return o._getOption=function(t){return\"fitWidth\"==t?void 0!==this.options.isFitWidth?this.options.isFitWidth:this.options.fitWidth:a.apply(this.isotope,arguments)},i}),function(t,e){\"function\"==typeof define&&define.amd?define(\"isotope-layout/js/layout-modes/fit-rows\",[\"../layout-mode\"],e):\"object\"==typeof exports?module.exports=e(require(\"../layout-mode\")):e(t.Isotope.LayoutMode)}(window,function(t){\"use strict\";var e=t.create(\"fitRows\"),i=e.prototype;return i._resetLayout=function(){this.x=0,this.y=0,this.maxY=0,this._getMeasurement(\"gutter\",\"outerWidth\")},i._getItemLayoutPosition=function(t){t.getSize();var e=t.size.outerWidth+this.gutter,i=this.isotope.size.innerWidth+this.gutter;0!==this.x&&e+this.x>i&&(this.x=0,this.y=this.maxY);var o={x:this.x,y:this.y};return this.maxY=Math.max(this.maxY,this.y+t.size.outerHeight),this.x+=e,o},i._getContainerSize=function(){return{height:this.maxY}},e}),function(t,e){\"function\"==typeof define&&define.amd?define(\"isotope-layout/js/layout-modes/vertical\",[\"../layout-mode\"],e):\"object\"==typeof module&&module.exports?module.exports=e(require(\"../layout-mode\")):e(t.Isotope.LayoutMode)}(window,function(t){\"use strict\";var e=t.create(\"vertical\",{horizontalAlignment:0}),i=e.prototype;return i._resetLayout=function(){this.y=0},i._getItemLayoutPosition=function(t){t.getSize();var e=(this.isotope.size.innerWidth-t.size.outerWidth)*this.options.horizontalAlignment,i=this.y;return this.y+=t.size.outerHeight,{x:e,y:i}},i._getContainerSize=function(){return{height:this.y}},e}),function(t,e){\"function\"==typeof define&&define.amd?define([\"outlayer/outlayer\",\"get-size/get-size\",\"desandro-matches-selector/matches-selector\",\"fizzy-ui-utils/utils\",\"isotope-layout/js/item\",\"isotope-layout/js/layout-mode\",\"isotope-layout/js/layout-modes/masonry\",\"isotope-layout/js/layout-modes/fit-rows\",\"isotope-layout/js/layout-modes/vertical\"],function(i,o,n,s,r,a){return e(t,i,o,n,s,r,a)}):\"object\"==typeof module&&module.exports?module.exports=e(t,require(\"outlayer\"),require(\"get-size\"),require(\"desandro-matches-selector\"),require(\"fizzy-ui-utils\"),require(\"isotope-layout/js/item\"),require(\"isotope-layout/js/layout-mode\"),require(\"isotope-layout/js/layout-modes/masonry\"),require(\"isotope-layout/js/layout-modes/fit-rows\"),require(\"isotope-layout/js/layout-modes/vertical\")):t.Isotope=e(t,t.Outlayer,t.getSize,t.matchesSelector,t.fizzyUIUtils,t.Isotope.Item,t.Isotope.LayoutMode)}(window,function(t,e,i,o,n,s,r){function a(t,e){return function(i,o){for(var n=0;n<t.length;n++){var s=t[n],r=i.sortData[s],a=o.sortData[s];if(r>a||r<a){var u=void 0!==e[s]?e[s]:e,h=u?1:-1;return(r>a?1:-1)*h}}return 0}}var u=t.jQuery,h=String.prototype.trim?function(t){return t.trim()}:function(t){return t.replace(/^\\s+|\\s+$/g,\"\")},d=e.create(\"isotope\",{layoutMode:\"masonry\",isJQueryFiltering:!0,sortAscending:!0});d.Item=s,d.LayoutMode=r;var l=d.prototype;l._create=function(){this.itemGUID=0,this._sorters={},this._getSorters(),e.prototype._create.call(this),this.modes={},this.filteredItems=this.items,this.sortHistory=[\"original-order\"];for(var t in r.modes)this._initLayoutMode(t)},l.reloadItems=function(){this.itemGUID=0,e.prototype.reloadItems.call(this)},l._itemize=function(){for(var t=e.prototype._itemize.apply(this,arguments),i=0;i<t.length;i++){var o=t[i];o.id=this.itemGUID++}return this._updateItemsSortData(t),t},l._initLayoutMode=function(t){var e=r.modes[t],i=this.options[t]||{};this.options[t]=e.options?n.extend(e.options,i):i,this.modes[t]=new e(this)},l.layout=function(){return!this._isLayoutInited&&this._getOption(\"initLayout\")?void this.arrange():void this._layout()},l._layout=function(){var t=this._getIsInstant();this._resetLayout(),this._manageStamps(),this.layoutItems(this.filteredItems,t),this._isLayoutInited=!0},l.arrange=function(t){this.option(t),this._getIsInstant();var e=this._filter(this.items);this.filteredItems=e.matches,this._bindArrangeComplete(),this._isInstant?this._noTransition(this._hideReveal,[e]):this._hideReveal(e),this._sort(),this._layout()},l._init=l.arrange,l._hideReveal=function(t){this.reveal(t.needReveal),this.hide(t.needHide)},l._getIsInstant=function(){var t=this._getOption(\"layoutInstant\"),e=void 0!==t?t:!this._isLayoutInited;return this._isInstant=e,e},l._bindArrangeComplete=function(){function t(){e&&i&&o&&n.dispatchEvent(\"arrangeComplete\",null,[n.filteredItems])}var e,i,o,n=this;this.once(\"layoutComplete\",function(){e=!0,t()}),this.once(\"hideComplete\",function(){i=!0,t()}),this.once(\"revealComplete\",function(){o=!0,t()})},l._filter=function(t){var e=this.options.filter;e=e||\"*\";for(var i=[],o=[],n=[],s=this._getFilterTest(e),r=0;r<t.length;r++){var a=t[r];if(!a.isIgnored){var u=s(a);u&&i.push(a),u&&a.isHidden?o.push(a):u||a.isHidden||n.push(a)}}return{matches:i,needReveal:o,needHide:n}},l._getFilterTest=function(t){return u&&this.options.isJQueryFiltering?function(e){return u(e.element).is(t);\n}:\"function\"==typeof t?function(e){return t(e.element)}:function(e){return o(e.element,t)}},l.updateSortData=function(t){var e;t?(t=n.makeArray(t),e=this.getItems(t)):e=this.items,this._getSorters(),this._updateItemsSortData(e)},l._getSorters=function(){var t=this.options.getSortData;for(var e in t){var i=t[e];this._sorters[e]=f(i)}},l._updateItemsSortData=function(t){for(var e=t&&t.length,i=0;e&&i<e;i++){var o=t[i];o.updateSortData()}};var f=function(){function t(t){if(\"string\"!=typeof t)return t;var i=h(t).split(\" \"),o=i[0],n=o.match(/^\\[(.+)\\]$/),s=n&&n[1],r=e(s,o),a=d.sortDataParsers[i[1]];return t=a?function(t){return t&&a(r(t))}:function(t){return t&&r(t)}}function e(t,e){return t?function(e){return e.getAttribute(t)}:function(t){var i=t.querySelector(e);return i&&i.textContent}}return t}();d.sortDataParsers={parseInt:function(t){return parseInt(t,10)},parseFloat:function(t){return parseFloat(t)}},l._sort=function(){if(this.options.sortBy){var t=n.makeArray(this.options.sortBy);this._getIsSameSortBy(t)||(this.sortHistory=t.concat(this.sortHistory));var e=a(this.sortHistory,this.options.sortAscending);this.filteredItems.sort(e)}},l._getIsSameSortBy=function(t){for(var e=0;e<t.length;e++)if(t[e]!=this.sortHistory[e])return!1;return!0},l._mode=function(){var t=this.options.layoutMode,e=this.modes[t];if(!e)throw new Error(\"No layout mode: \"+t);return e.options=this.options[t],e},l._resetLayout=function(){e.prototype._resetLayout.call(this),this._mode()._resetLayout()},l._getItemLayoutPosition=function(t){return this._mode()._getItemLayoutPosition(t)},l._manageStamp=function(t){this._mode()._manageStamp(t)},l._getContainerSize=function(){return this._mode()._getContainerSize()},l.needsResizeLayout=function(){return this._mode().needsResizeLayout()},l.appended=function(t){var e=this.addItems(t);if(e.length){var i=this._filterRevealAdded(e);this.filteredItems=this.filteredItems.concat(i)}},l.prepended=function(t){var e=this._itemize(t);if(e.length){this._resetLayout(),this._manageStamps();var i=this._filterRevealAdded(e);this.layoutItems(this.filteredItems),this.filteredItems=i.concat(this.filteredItems),this.items=e.concat(this.items)}},l._filterRevealAdded=function(t){var e=this._filter(t);return this.hide(e.needHide),this.reveal(e.matches),this.layoutItems(e.matches,!0),e.matches},l.insert=function(t){var e=this.addItems(t);if(e.length){var i,o,n=e.length;for(i=0;i<n;i++)o=e[i],this.element.appendChild(o.element);var s=this._filter(e).matches;for(i=0;i<n;i++)e[i].isLayoutInstant=!0;for(this.arrange(),i=0;i<n;i++)delete e[i].isLayoutInstant;this.reveal(s)}};var c=l.remove;return l.remove=function(t){t=n.makeArray(t);var e=this.getItems(t);c.call(this,t);for(var i=e&&e.length,o=0;i&&o<i;o++){var s=e[o];n.removeFrom(this.filteredItems,s)}},l.shuffle=function(){for(var t=0;t<this.items.length;t++){var e=this.items[t];e.sortData.random=Math.random()}this.options.sortBy=\"random\",this._sort(),this._layout()},l._noTransition=function(t,e){var i=this.options.transitionDuration;this.options.transitionDuration=0;var o=t.apply(this,e);return this.options.transitionDuration=i,o},l.getFilteredItemElements=function(){return this.filteredItems.map(function(t){return t.element})},d});","/*jquery.mb.YTPlayer 30-05-2015\n _ jquery.mb.components \n _ email: matteo@open-lab.com \n _ Copyright (c) 2001-2015. Matteo Bicocchi (Pupunzi); \n _ blog: http://pupunzi.open-lab.com \n _ Open Lab s.r.l., Florence - Italy \n */\nfunction onYouTubeIframeAPIReady(){ytp.YTAPIReady||(ytp.YTAPIReady=!0,jQuery(document).trigger(\"YTAPIReady\"))}var ytp=ytp||{};!function(jQuery,ytp){var getYTPVideoID=function(a){var b,c;return a.indexOf(\"youtu.be\")>0?(b=a.substr(a.lastIndexOf(\"/\")+1,a.length),c=b.indexOf(\"?list=\")>0?b.substr(b.lastIndexOf(\"=\"),b.length):null,b=c?b.substr(0,b.lastIndexOf(\"?\")):b):a.indexOf(\"http\")>-1?(b=a.match(/[\\\\?&]v=([^&#]*)/)[1],c=a.indexOf(\"list=\")>0?a.match(/[\\\\?&]list=([^&#]*)/)[1]:null):(b=a.length>15?null:a,c=b?null:a),{videoID:b,playlistID:c}};jQuery.mbYTPlayer={name:\"jquery.mb.YTPlayer\",version:\"2.9.3\",author:\"Matteo Bicocchi\",apiKey:\"\",defaults:{containment:\"body\",ratio:\"auto\",videoURL:null,playlistURL:null,startAt:0,stopAt:0,autoPlay:!0,vol:50,addRaster:!1,opacity:1,quality:\"default\",mute:!1,loop:!0,showControls:!0,showAnnotations:!1,showYTLogo:!0,stopMovieOnBlur:!0,realfullscreen:!0,gaTrack:!0,optimizeDisplay:!0,onReady:function(a){}},controls:{play:\"P\",pause:\"p\",mute:\"M\",unmute:\"A\",onlyYT:\"O\",showSite:\"R\",ytLogo:\"Y\"},locationProtocol:\"https:\",buildPlayer:function(options){return this.each(function(){var YTPlayer=this,$YTPlayer=jQuery(YTPlayer);YTPlayer.loop=0,YTPlayer.opt={},YTPlayer.state={},YTPlayer.filtersEnabled=!0,YTPlayer.filters={grayscale:{value:0,unit:\"%\"},hue_rotate:{value:0,unit:\"deg\"},invert:{value:0,unit:\"%\"},opacity:{value:0,unit:\"%\"},saturate:{value:0,unit:\"%\"},sepia:{value:0,unit:\"%\"},brightness:{value:0,unit:\"%\"},contrast:{value:0,unit:\"%\"},blur:{value:0,unit:\"px\"}},$YTPlayer.addClass(\"mb_YTPlayer\");var property=$YTPlayer.data(\"property\")&&\"string\"==typeof $YTPlayer.data(\"property\")?eval(\"(\"+$YTPlayer.data(\"property\")+\")\"):$YTPlayer.data(\"property\");\"undefined\"!=typeof property&&\"undefined\"!=typeof property.vol&&(property.vol=0===property.vol?property.vol=1:property.vol),jQuery.extend(YTPlayer.opt,jQuery.mbYTPlayer.defaults,options,property),YTPlayer.hasChanged||(YTPlayer.defaultOpt={},jQuery.extend(YTPlayer.defaultOpt,jQuery.mbYTPlayer.defaults,options,property)),YTPlayer.isRetina=window.retina||window.devicePixelRatio>1;var isIframe=function(){var a=!1;try{self.location.href!=top.location.href&&(a=!0)}catch(b){a=!0}return a};YTPlayer.canGoFullScreen=!(jQuery.browser.msie||jQuery.browser.opera||isIframe()),YTPlayer.canGoFullScreen||(YTPlayer.opt.realfullscreen=!1),$YTPlayer.attr(\"id\")||$YTPlayer.attr(\"id\",\"video_\"+(new Date).getTime());var playerID=\"mbYTP_\"+YTPlayer.id;YTPlayer.isAlone=!1,YTPlayer.hasFocus=!0;var videoID=this.opt.videoURL?getYTPVideoID(this.opt.videoURL).videoID:$YTPlayer.attr(\"href\")?getYTPVideoID($YTPlayer.attr(\"href\")).videoID:!1,playlistID=this.opt.videoURL?getYTPVideoID(this.opt.videoURL).playlistID:$YTPlayer.attr(\"href\")?getYTPVideoID($YTPlayer.attr(\"href\")).playlistID:!1;YTPlayer.videoID=videoID,YTPlayer.playlistID=playlistID,YTPlayer.opt.showAnnotations=YTPlayer.opt.showAnnotations?\"0\":\"3\";var playerVars={autoplay:0,modestbranding:1,controls:0,showinfo:0,rel:0,enablejsapi:1,version:3,playerapiid:playerID,origin:\"*\",allowfullscreen:!0,wmode:\"transparent\",iv_load_policy:YTPlayer.opt.showAnnotations};document.createElement(\"video\").canPlayType&&jQuery.extend(playerVars,{html5:1}),jQuery.browser.msie&&jQuery.browser.version<9&&(this.opt.opacity=1);var playerBox=jQuery(\"<div/>\").attr(\"id\",playerID).addClass(\"playerBox\"),overlay=jQuery(\"<div/>\").css({position:\"absolute\",top:0,left:0,width:\"100%\",height:\"100%\"}).addClass(\"YTPOverlay\");if(YTPlayer.isSelf=\"self\"==YTPlayer.opt.containment,YTPlayer.defaultOpt.containment=YTPlayer.opt.containment=jQuery(\"self\"==YTPlayer.opt.containment?this:YTPlayer.opt.containment),YTPlayer.isBackground=\"body\"==YTPlayer.opt.containment.get(0).tagName.toLowerCase(),!YTPlayer.isBackground||!ytp.backgroundIsInited){var isPlayer=YTPlayer.opt.containment.is(jQuery(this));if(YTPlayer.canPlayOnMobile=isPlayer&&0===jQuery(this).children().length,isPlayer?YTPlayer.isPlayer=!0:$YTPlayer.hide(),jQuery.browser.mobile&&!YTPlayer.canPlayOnMobile)return void $YTPlayer.remove();var wrapper=jQuery(\"<div/>\").addClass(\"mbYTP_wrapper\").attr(\"id\",\"wrapper_\"+playerID);if(wrapper.css({position:\"absolute\",zIndex:0,minWidth:\"100%\",minHeight:\"100%\",left:0,top:0,overflow:\"hidden\",opacity:0}),playerBox.css({position:\"absolute\",zIndex:0,width:\"100%\",height:\"100%\",top:0,left:0,overflow:\"hidden\"}),wrapper.append(playerBox),YTPlayer.opt.containment.children().not(\"script, style\").each(function(){\"static\"==jQuery(this).css(\"position\")&&jQuery(this).css(\"position\",\"relative\")}),YTPlayer.isBackground?(jQuery(\"body\").css({boxSizing:\"border-box\"}),wrapper.css({position:\"fixed\",top:0,left:0,zIndex:0}),$YTPlayer.hide()):\"static\"==YTPlayer.opt.containment.css(\"position\")&&YTPlayer.opt.containment.css({position:\"relative\"}),YTPlayer.opt.containment.prepend(wrapper),YTPlayer.wrapper=wrapper,playerBox.css({opacity:1}),jQuery.browser.mobile||(playerBox.after(overlay),YTPlayer.overlay=overlay),YTPlayer.isBackground||overlay.on(\"mouseenter\",function(){YTPlayer.controlBar&&YTPlayer.controlBar.addClass(\"visible\")}).on(\"mouseleave\",function(){YTPlayer.controlBar&&YTPlayer.controlBar.removeClass(\"visible\")}),ytp.YTAPIReady)setTimeout(function(){jQuery(document).trigger(\"YTAPIReady\")},100);else{jQuery(\"#YTAPI\").remove();var tag=jQuery(\"<script></script>\").attr({src:jQuery.mbYTPlayer.locationProtocol+\"//www.youtube.com/iframe_api?v=\"+jQuery.mbYTPlayer.version,id:\"YTAPI\"});jQuery(\"head\").prepend(tag)}jQuery(document).on(\"YTAPIReady\",function(){YTPlayer.isBackground&&ytp.backgroundIsInited||YTPlayer.isInit||(YTPlayer.isBackground&&(ytp.backgroundIsInited=!0),YTPlayer.opt.autoPlay=\"undefined\"==typeof YTPlayer.opt.autoPlay?YTPlayer.isBackground?!0:!1:YTPlayer.opt.autoPlay,YTPlayer.opt.vol=YTPlayer.opt.vol?YTPlayer.opt.vol:100,jQuery.mbYTPlayer.getDataFromAPI(YTPlayer),jQuery(YTPlayer).on(\"YTPChanged\",function(){if(!YTPlayer.isInit){if(YTPlayer.isInit=!0,jQuery.browser.mobile&&YTPlayer.canPlayOnMobile){if(YTPlayer.opt.containment.outerWidth()>jQuery(window).width()){YTPlayer.opt.containment.css({maxWidth:\"100%\"});var h=.6*YTPlayer.opt.containment.outerWidth();YTPlayer.opt.containment.css({maxHeight:h})}return void new YT.Player(playerID,{videoId:YTPlayer.videoID.toString(),height:\"100%\",width:\"100%\",events:{onReady:function(a){YTPlayer.player=a.target,playerBox.css({opacity:1}),YTPlayer.wrapper.css({opacity:1})}}})}new YT.Player(playerID,{videoId:YTPlayer.videoID.toString(),playerVars:playerVars,events:{onReady:function(a){if(YTPlayer.player=a.target,!YTPlayer.isReady){YTPlayer.isReady=YTPlayer.isPlayer&&!YTPlayer.opt.autoPlay?!1:!0,YTPlayer.playerEl=YTPlayer.player.getIframe(),$YTPlayer.optimizeDisplay(),YTPlayer.videoID=videoID,jQuery(window).on(\"resize.YTP\",function(){$YTPlayer.optimizeDisplay()}),jQuery.mbYTPlayer.checkForState(YTPlayer);var b=jQuery.Event(\"YTPUnstarted\");b.time=YTPlayer.player.time,YTPlayer.canTrigger&&jQuery(YTPlayer).trigger(b)}},onStateChange:function(event){if(\"function\"==typeof event.target.getPlayerState){var state=event.target.getPlayerState();if(YTPlayer.state!=state){YTPlayer.state=state;var eventType;switch(state){case-1:eventType=\"YTPUnstarted\";break;case 0:eventType=\"YTPEnd\";break;case 1:eventType=\"YTPStart\",YTPlayer.controlBar&&YTPlayer.controlBar.find(\".mb_YTPPlaypause\").html(jQuery.mbYTPlayer.controls.pause),\"undefined\"!=typeof _gaq&&eval(YTPlayer.opt.gaTrack)&&_gaq.push([\"_trackEvent\",\"YTPlayer\",\"Play\",YTPlayer.hasData?YTPlayer.videoData.title:YTPlayer.videoID.toString()]),\"undefined\"!=typeof ga&&eval(YTPlayer.opt.gaTrack)&&ga(\"send\",\"event\",\"YTPlayer\",\"play\",YTPlayer.hasData?YTPlayer.videoData.title:YTPlayer.videoID.toString());break;case 2:eventType=\"YTPPause\",YTPlayer.controlBar&&YTPlayer.controlBar.find(\".mb_YTPPlaypause\").html(jQuery.mbYTPlayer.controls.play);break;case 3:YTPlayer.player.setPlaybackQuality(YTPlayer.opt.quality),eventType=\"YTPBuffering\",YTPlayer.controlBar&&YTPlayer.controlBar.find(\".mb_YTPPlaypause\").html(jQuery.mbYTPlayer.controls.play);break;case 5:eventType=\"YTPCued\"}var YTPEvent=jQuery.Event(eventType);YTPEvent.time=YTPlayer.player.time,YTPlayer.canTrigger&&jQuery(YTPlayer).trigger(YTPEvent)}}},onPlaybackQualityChange:function(a){var b=a.target.getPlaybackQuality(),c=jQuery.Event(\"YTPQualityChange\");c.quality=b,jQuery(YTPlayer).trigger(c)},onError:function(a){150==a.data&&(console.log(\"Embedding this video is restricted by Youtube.\"),YTPlayer.isPlayList&&jQuery(YTPlayer).playNext()),2==a.data&&YTPlayer.isPlayList&&jQuery(YTPlayer).playNext(),\"function\"==typeof YTPlayer.opt.onError&&YTPlayer.opt.onError($YTPlayer,a)}}})}}))})}})},getDataFromAPI:function(a){if(a.videoData=jQuery.mbStorage.get(\"YYTPlayer_data_\"+a.videoID),a.videoData)setTimeout(function(){a.opt.ratio=\"auto\"==a.opt.ratio?\"16/9\":a.opt.ratio,a.dataReceived=!0,jQuery(a).trigger(\"YTPChanged\");var b=jQuery.Event(\"YTPData\");b.prop={};for(var c in a.videoData)b.prop[c]=a.videoData[c];jQuery(a).trigger(b)},500),a.hasData=!0;else if(jQuery.mbYTPlayer.apiKey)jQuery.getJSON(\"https://www.googleapis.com/youtube/v3/videos?id=\"+a.videoID+\"&key=\"+jQuery.mbYTPlayer.apiKey+\"&part=snippet\",function(b){function c(b){a.videoData={},a.videoData.id=a.videoID,a.videoData.channelTitle=b.channelTitle,a.videoData.title=b.title,a.videoData.description=b.description.length<400?b.description:b.description.substring(0,400)+\" ...\",a.videoData.aspectratio=\"auto\"==a.opt.ratio?\"16/9\":a.opt.ratio,a.opt.ratio=a.videoData.aspectratio,a.videoData.thumb_max=b.thumbnails.maxres?b.thumbnails.maxres.url:null,a.videoData.thumb_high=b.thumbnails.high?b.thumbnails.high.url:null,a.videoData.thumb_medium=b.thumbnails.medium?b.thumbnails.medium.url:null,jQuery.mbStorage.set(\"YYTPlayer_data_\"+a.videoID,a.videoData)}a.dataReceived=!0,jQuery(a).trigger(\"YTPChanged\"),c(b.items[0].snippet),a.hasData=!0;var d=jQuery.Event(\"YTPData\");d.prop={};for(var e in a.videoData)d.prop[e]=a.videoData[e];jQuery(a).trigger(d)});else{if(setTimeout(function(){jQuery(a).trigger(\"YTPChanged\")},50),a.isPlayer&&!a.opt.autoPlay){var b=\"https://i.ytimg.com/vi/\"+a.videoID+\"/hqdefault.jpg\";a.opt.containment.css({background:\"rgba(0,0,0,0.5) url(\"+b+\") center center\",backgroundSize:\"cover\"}),a.opt.backgroundUrl=b}a.videoData=null,a.opt.ratio=\"auto\"==a.opt.ratio?\"16/9\":a.opt.ratio}jQuery(a).off(\"YTPData.YTPlayer\").on(\"YTPData.YTPlayer\",function(){if(!a.hasData&&(a.hasData=!0,a.isPlayer&&!a.opt.autoPlay)){var b=a.videoData.thumb_max||a.videoData.thumb_high||a.videoData.thumb_medium;a.opt.containment.css({background:\"rgba(0,0,0,0.5) url(\"+b+\") center center\",backgroundSize:\"cover\"}),a.opt.backgroundUrl=b}}),a.isPlayer&&!a.opt.autoPlay&&(a.loading=jQuery(\"<div/>\").addClass(\"loading\").html(\"Loading\").hide(),jQuery(a).append(a.loading),a.loading.fadeIn())},removeStoredData:function(){jQuery.mbStorage.remove()},getVideoData:function(){var a=this.get(0);return a.videoData},getVideoID:function(){var a=this.get(0);return a.videoID||!1},setVideoQuality:function(a){var b=this.get(0);jQuery.browser.chrome||b.player.setPlaybackQuality(a)},playlist:function(a,b,c){var d=this,e=d.get(0);return e.isPlayList=!0,b&&(a=jQuery.shuffle(a)),e.videoID||(e.videos=a,e.videoCounter=0,e.videoLength=a.length,jQuery(e).data(\"property\",a[0]),jQuery(e).mb_YTPlayer()),\"function\"==typeof c&&jQuery(e).on(\"YTPChanged\",function(){c(e)}),jQuery(e).on(\"YTPEnd\",function(){jQuery(e).playNext()}),d},playNext:function(){var a=this.get(0);return a.videoCounter++,a.videoCounter>=a.videoLength&&(a.videoCounter=0),jQuery(a).changeMovie(a.videos[a.videoCounter]),this},playPrev:function(){var a=this.get(0);return a.videoCounter--,a.videoCounter<0&&(a.videoCounter=a.videoLength-1),jQuery(a).changeMovie(a.videos[a.videoCounter]),this},changeMovie:function(a){var b=this.get(0);b.opt.startAt=0,b.opt.stopAt=0,b.opt.mute=!0,b.hasData=!1,b.hasChanged=!0,a&&jQuery.extend(b.opt,b.defaultOpt,a),b.videoID=getYTPVideoID(b.opt.videoURL).videoID,jQuery(b.playerEl).CSSAnimate({opacity:0},200,function(){return jQuery(b).YTPGetPlayer().cueVideoByUrl(encodeURI(jQuery.mbYTPlayer.locationProtocol+\"//www.youtube.com/v/\"+b.videoID),1,b.opt.quality),jQuery.mbYTPlayer.checkForState(b),jQuery(b).optimizeDisplay(),jQuery.mbYTPlayer.getDataFromAPI(b),this})},getPlayer:function(){return jQuery(this).get(0).player},playerDestroy:function(){var a=this.get(0);ytp.YTAPIReady=!1,ytp.backgroundIsInited=!1,a.isInit=!1,a.videoID=null;var b=a.wrapper;return b.remove(),jQuery(\"#controlBar_\"+a.id).remove(),clearInterval(a.checkForStartAt),clearInterval(a.getState),this},fullscreen:function(real){function hideMouse(){YTPlayer.overlay.css({cursor:\"none\"})}function RunPrefixMethod(a,b){for(var c,d,e=[\"webkit\",\"moz\",\"ms\",\"o\",\"\"],f=0;f<e.length&&!a[c];){if(c=b,\"\"==e[f]&&(c=c.substr(0,1).toLowerCase()+c.substr(1)),c=e[f]+c,d=typeof a[c],\"undefined\"!=d)return e=[e[f]],\"function\"==d?a[c]():a[c];f++}}function launchFullscreen(a){RunPrefixMethod(a,\"RequestFullScreen\")}function cancelFullscreen(){(RunPrefixMethod(document,\"FullScreen\")||RunPrefixMethod(document,\"IsFullScreen\"))&&RunPrefixMethod(document,\"CancelFullScreen\")}var YTPlayer=this.get(0);\"undefined\"==typeof real&&(real=YTPlayer.opt.realfullscreen),real=eval(real);var controls=jQuery(\"#controlBar_\"+YTPlayer.id),fullScreenBtn=controls.find(\".mb_OnlyYT\"),videoWrapper=YTPlayer.isSelf?YTPlayer.opt.containment:YTPlayer.wrapper;if(real){var fullscreenchange=jQuery.browser.mozilla?\"mozfullscreenchange\":jQuery.browser.webkit?\"webkitfullscreenchange\":\"fullscreenchange\";jQuery(document).off(fullscreenchange).on(fullscreenchange,function(){var a=RunPrefixMethod(document,\"IsFullScreen\")||RunPrefixMethod(document,\"FullScreen\");a?(jQuery(YTPlayer).YTPSetVideoQuality(\"default\"),jQuery(YTPlayer).trigger(\"YTPFullScreenStart\")):(YTPlayer.isAlone=!1,fullScreenBtn.html(jQuery.mbYTPlayer.controls.onlyYT),jQuery(YTPlayer).YTPSetVideoQuality(YTPlayer.opt.quality),videoWrapper.removeClass(\"fullscreen\"),videoWrapper.CSSAnimate({opacity:YTPlayer.opt.opacity},500),videoWrapper.css({zIndex:0}),YTPlayer.isBackground?jQuery(\"body\").after(controls):YTPlayer.wrapper.before(controls),jQuery(window).resize(),jQuery(YTPlayer).trigger(\"YTPFullScreenEnd\"))})}return YTPlayer.isAlone?(jQuery(document).off(\"mousemove.YTPlayer\"),YTPlayer.overlay.css({cursor:\"auto\"}),real?cancelFullscreen():(videoWrapper.CSSAnimate({opacity:YTPlayer.opt.opacity},500),videoWrapper.css({zIndex:0})),fullScreenBtn.html(jQuery.mbYTPlayer.controls.onlyYT),YTPlayer.isAlone=!1):(jQuery(document).on(\"mousemove.YTPlayer\",function(a){YTPlayer.overlay.css({cursor:\"auto\"}),clearTimeout(YTPlayer.hideCursor),jQuery(a.target).parents().is(\".mb_YTPBar\")||(YTPlayer.hideCursor=setTimeout(hideMouse,3e3))}),hideMouse(),real?(videoWrapper.css({opacity:0}),videoWrapper.addClass(\"fullscreen\"),launchFullscreen(videoWrapper.get(0)),setTimeout(function(){videoWrapper.CSSAnimate({opacity:1},1e3),YTPlayer.wrapper.append(controls),jQuery(YTPlayer).optimizeDisplay(),YTPlayer.player.seekTo(YTPlayer.player.getCurrentTime()+.1,!0)},500)):videoWrapper.css({zIndex:1e4}).CSSAnimate({opacity:1},1e3),fullScreenBtn.html(jQuery.mbYTPlayer.controls.showSite),YTPlayer.isAlone=!0),this},toggleLoops:function(){var a=this.get(0),b=a.opt;return 1==b.loop?b.loop=0:(b.startAt?a.player.seekTo(b.startAt):a.player.playVideo(),b.loop=1),this},play:function(){var a=this.get(0);if(a.isReady){var b=jQuery(\"#controlBar_\"+a.id),c=b.find(\".mb_YTPPlaypause\");return c.html(jQuery.mbYTPlayer.controls.pause),a.player.playVideo(),a.wrapper.CSSAnimate({opacity:a.isAlone?1:a.opt.opacity},2e3),jQuery(a.playerEl).CSSAnimate({opacity:1},1e3),jQuery(a).css(\"background-image\",\"none\"),this}},togglePlay:function(a){var b=this.get(0);return 1==b.state?this.YTPPause():this.YTPPlay(),\"function\"==typeof a&&a(b.state),this},stop:function(){var a=this.get(0),b=jQuery(\"#controlBar_\"+a.id),c=b.find(\".mb_YTPPlaypause\");return c.html(jQuery.mbYTPlayer.controls.play),a.player.stopVideo(),this},pause:function(){var a=this.get(0),b=jQuery(\"#controlBar_\"+a.id),c=b.find(\".mb_YTPPlaypause\");return c.html(jQuery.mbYTPlayer.controls.play),a.player.pauseVideo(),this},seekTo:function(a){var b=this.get(0);return b.player.seekTo(a,!0),this},setVolume:function(a){var b=this.get(0);return a||b.opt.vol||0!=b.player.getVolume()?!a&&b.player.getVolume()>0||a&&b.opt.vol==a?b.isMute?jQuery(b).YTPUnmute():jQuery(b).YTPMute():(b.opt.vol=a,b.player.setVolume(b.opt.vol),b.volumeBar&&b.volumeBar.length&&b.volumeBar.updateSliderVal(a)):jQuery(b).YTPUnmute(),this},mute:function(){var a=this.get(0);if(!a.isMute){a.player.mute(),a.isMute=!0,a.player.setVolume(0),a.volumeBar&&a.volumeBar.length&&a.volumeBar.width()>10&&a.volumeBar.updateSliderVal(0);var b=jQuery(\"#controlBar_\"+a.id),c=b.find(\".mb_YTPMuteUnmute\");c.html(jQuery.mbYTPlayer.controls.unmute),jQuery(a).addClass(\"isMuted\"),a.volumeBar&&a.volumeBar.length&&a.volumeBar.addClass(\"muted\");var d=jQuery.Event(\"YTPMuted\");return d.time=a.player.time,a.canTrigger&&jQuery(a).trigger(d),this}},unmute:function(){var a=this.get(0);if(a.isMute){a.player.unMute(),a.isMute=!1,a.player.setVolume(a.opt.vol),a.volumeBar&&a.volumeBar.length&&a.volumeBar.updateSliderVal(a.opt.vol>10?a.opt.vol:10);var b=jQuery(\"#controlBar_\"+a.id),c=b.find(\".mb_YTPMuteUnmute\");c.html(jQuery.mbYTPlayer.controls.mute),jQuery(a).removeClass(\"isMuted\"),a.volumeBar&&a.volumeBar.length&&a.volumeBar.removeClass(\"muted\");var d=jQuery.Event(\"YTPUnmuted\");return d.time=a.player.time,a.canTrigger&&jQuery(a).trigger(d),this}},applyFilter:function(a,b){var c=this.get(0);return c.filters[a].value=b,c.filtersEnabled&&this.YTPEnableFilters(),this},applyFilters:function(a){var b=this.get(0);return this.on(\"YTPReady\",function(){for(var c in a)b.filters[c].value=a[c],jQuery(b).YTPApplyFilter(c,a[c]);jQuery(b).trigger(\"YTPFiltersApplied\")}),this},toggleFilter:function(a,b){return this.each(function(){var c=this;c.filters[a].value?c.filters[a].value=0:c.filters[a].value=b,c.filtersEnabled&&jQuery(this).YTPEnableFilters()})},toggleFilters:function(a){return this.each(function(){var b=this;b.filtersEnabled?(jQuery(b).trigger(\"YTPDisableFilters\"),jQuery(b).YTPDisableFilters()):(jQuery(b).YTPEnableFilters(),jQuery(b).trigger(\"YTPEnableFilters\")),\"function\"==typeof a&&a(b.filtersEnabled)})},disableFilters:function(){return this.each(function(){var a=this,b=jQuery(a.playerEl);b.css(\"-webkit-filter\",\"\"),b.css(\"filter\",\"\"),a.filtersEnabled=!1})},enableFilters:function(){return this.each(function(){var a=this,b=jQuery(a.playerEl),c=\"\";for(var d in a.filters)a.filters[d].value&&(c+=d.replace(\"_\",\"-\")+\"(\"+a.filters[d].value+a.filters[d].unit+\") \");b.css(\"-webkit-filter\",c),b.css(\"filter\",c),a.filtersEnabled=!0})},removeFilter:function(a,b){return this.each(function(){\"function\"==typeof a&&(b=a,a=null);var c=this;if(a)jQuery(this).YTPApplyFilter(a,0),\"function\"==typeof b&&b(a);else for(var d in c.filters)jQuery(this).YTPApplyFilter(d,0),\"function\"==typeof b&&b(d)})},manageProgress:function(){var a=this.get(0),b=jQuery(\"#controlBar_\"+a.id),c=b.find(\".mb_YTPProgress\"),d=b.find(\".mb_YTPLoaded\"),e=b.find(\".mb_YTPseekbar\"),f=c.outerWidth(),g=Math.floor(a.player.getCurrentTime()),h=Math.floor(a.player.getDuration()),i=g*f/h,j=0,k=100*a.player.getVideoLoadedFraction();return d.css({left:j,width:k+\"%\"}),e.css({left:0,width:i}),{totalTime:h,currentTime:g}},buildControls:function(YTPlayer){var data=YTPlayer.opt;if(data.showYTLogo=data.showYTLogo||data.printUrl,!jQuery(\"#controlBar_\"+YTPlayer.id).length){YTPlayer.controlBar=jQuery(\"<span/>\").attr(\"id\",\"controlBar_\"+YTPlayer.id).addClass(\"mb_YTPBar\").css({whiteSpace:\"noWrap\",position:YTPlayer.isBackground?\"fixed\":\"absolute\",zIndex:YTPlayer.isBackground?1e4:1e3}).hide();var buttonBar=jQuery(\"<div/>\").addClass(\"buttonBar\"),playpause=jQuery(\"<span>\"+jQuery.mbYTPlayer.controls.play+\"</span>\").addClass(\"mb_YTPPlaypause ytpicon\").click(function(){1==YTPlayer.player.getPlayerState()?jQuery(YTPlayer).YTPPause():jQuery(YTPlayer).YTPPlay()}),MuteUnmute=jQuery(\"<span>\"+jQuery.mbYTPlayer.controls.mute+\"</span>\").addClass(\"mb_YTPMuteUnmute ytpicon\").click(function(){0==YTPlayer.player.getVolume()?jQuery(YTPlayer).YTPUnmute():jQuery(YTPlayer).YTPMute()}),volumeBar=jQuery(\"<div/>\").addClass(\"mb_YTPVolumeBar\").css({display:\"inline-block\"});YTPlayer.volumeBar=volumeBar;var idx=jQuery(\"<span/>\").addClass(\"mb_YTPTime\"),vURL=data.videoURL?data.videoURL:\"\";vURL.indexOf(\"http\")<0&&(vURL=jQuery.mbYTPlayer.locationProtocol+\"//www.youtube.com/watch?v=\"+data.videoURL);var movieUrl=jQuery(\"<span/>\").html(jQuery.mbYTPlayer.controls.ytLogo).addClass(\"mb_YTPUrl ytpicon\").attr(\"title\",\"view on YouTube\").on(\"click\",function(){window.open(vURL,\"viewOnYT\")}),onlyVideo=jQuery(\"<span/>\").html(jQuery.mbYTPlayer.controls.onlyYT).addClass(\"mb_OnlyYT ytpicon\").on(\"click\",function(){jQuery(YTPlayer).YTPFullscreen(data.realfullscreen)}),progressBar=jQuery(\"<div/>\").addClass(\"mb_YTPProgress\").css(\"position\",\"absolute\").click(function(a){timeBar.css({width:a.clientX-timeBar.offset().left}),YTPlayer.timeW=a.clientX-timeBar.offset().left,YTPlayer.controlBar.find(\".mb_YTPLoaded\").css({width:0});var b=Math.floor(YTPlayer.player.getDuration());YTPlayer[\"goto\"]=timeBar.outerWidth()*b/progressBar.outerWidth(),YTPlayer.player.seekTo(parseFloat(YTPlayer[\"goto\"]),!0),YTPlayer.controlBar.find(\".mb_YTPLoaded\").css({width:0})}),loadedBar=jQuery(\"<div/>\").addClass(\"mb_YTPLoaded\").css(\"position\",\"absolute\"),timeBar=jQuery(\"<div/>\").addClass(\"mb_YTPseekbar\").css(\"position\",\"absolute\");progressBar.append(loadedBar).append(timeBar),buttonBar.append(playpause).append(MuteUnmute).append(volumeBar).append(idx),data.showYTLogo&&buttonBar.append(movieUrl),(YTPlayer.isBackground||eval(YTPlayer.opt.realfullscreen)&&!YTPlayer.isBackground)&&buttonBar.append(onlyVideo),YTPlayer.controlBar.append(buttonBar).append(progressBar),YTPlayer.isBackground?jQuery(\"body\").after(YTPlayer.controlBar):(YTPlayer.controlBar.addClass(\"inlinePlayer\"),YTPlayer.wrapper.before(YTPlayer.controlBar)),volumeBar.simpleSlider({initialval:YTPlayer.opt.vol,scale:100,orientation:\"h\",callback:function(a){0==a.value?jQuery(YTPlayer).YTPMute():jQuery(YTPlayer).YTPUnmute(),YTPlayer.player.setVolume(a.value),YTPlayer.isMute||(YTPlayer.opt.vol=a.value)}})}},checkForState:function(YTPlayer){var interval=YTPlayer.opt.showControls?100:1e3;return clearInterval(YTPlayer.getState),jQuery.contains(document,YTPlayer)?(jQuery.mbYTPlayer.checkForStart(YTPlayer),void(YTPlayer.getState=setInterval(function(){var prog=jQuery(YTPlayer).YTPManageProgress(),$YTPlayer=jQuery(YTPlayer),data=YTPlayer.opt,startAt=YTPlayer.opt.startAt?YTPlayer.opt.startAt:0,stopAt=YTPlayer.opt.stopAt>YTPlayer.opt.startAt?YTPlayer.opt.stopAt:0;if(stopAt=stopAt<YTPlayer.player.getDuration()?stopAt:0,YTPlayer.player.time!=prog.currentTime){var YTPEvent=jQuery.Event(\"YTPTime\");YTPEvent.time=YTPlayer.player.time,jQuery(YTPlayer).trigger(YTPEvent)}if(YTPlayer.player.time=prog.currentTime,0==YTPlayer.player.getVolume()?$YTPlayer.addClass(\"isMuted\"):$YTPlayer.removeClass(\"isMuted\"),YTPlayer.opt.showControls&&(prog.totalTime?YTPlayer.controlBar.find(\".mb_YTPTime\").html(jQuery.mbYTPlayer.formatTime(prog.currentTime)+\" / \"+jQuery.mbYTPlayer.formatTime(prog.totalTime)):YTPlayer.controlBar.find(\".mb_YTPTime\").html(\"-- : -- / -- : --\")),eval(YTPlayer.opt.stopMovieOnBlur)&&(document.hasFocus()?document.hasFocus()&&!YTPlayer.hasFocus&&-1!=YTPlayer.state&&0!=YTPlayer.state&&(YTPlayer.hasFocus=!0,$YTPlayer.YTPPlay()):1==YTPlayer.state&&(YTPlayer.hasFocus=!1,$YTPlayer.YTPPause())),YTPlayer.controlBar&&YTPlayer.controlBar.outerWidth()<=400&&!YTPlayer.isCompact?(YTPlayer.controlBar.addClass(\"compact\"),YTPlayer.isCompact=!0,!YTPlayer.isMute&&YTPlayer.volumeBar&&YTPlayer.volumeBar.updateSliderVal(YTPlayer.opt.vol)):YTPlayer.controlBar&&YTPlayer.controlBar.outerWidth()>400&&YTPlayer.isCompact&&(YTPlayer.controlBar.removeClass(\"compact\"),YTPlayer.isCompact=!1,!YTPlayer.isMute&&YTPlayer.volumeBar&&YTPlayer.volumeBar.updateSliderVal(YTPlayer.opt.vol)),1==YTPlayer.player.getPlayerState()&&(parseFloat(YTPlayer.player.getDuration()-3)<YTPlayer.player.getCurrentTime()||stopAt>0&&parseFloat(YTPlayer.player.getCurrentTime())>stopAt)){if(YTPlayer.isEnded)return;if(YTPlayer.isEnded=!0,setTimeout(function(){YTPlayer.isEnded=!1},2e3),YTPlayer.isPlayList){clearInterval(YTPlayer.getState);var YTPEnd=jQuery.Event(\"YTPEnd\");return YTPEnd.time=YTPlayer.player.time,void jQuery(YTPlayer).trigger(YTPEnd)}data.loop?YTPlayer.player.seekTo(startAt,!0):(YTPlayer.player.pauseVideo(),YTPlayer.wrapper.CSSAnimate({opacity:0},1e3,function(){var a=jQuery.Event(\"YTPEnd\");a.time=YTPlayer.player.time,jQuery(YTPlayer).trigger(a),YTPlayer.player.seekTo(startAt,!0),YTPlayer.isBackground||YTPlayer.opt.containment.css({background:\"rgba(0,0,0,0.5) url(\"+YTPlayer.opt.backgroundUrl+\") center center\",backgroundSize:\"cover\"})}))}},interval))):(jQuery(YTPlayer).YTPPlayerDestroy(),clearInterval(YTPlayer.getState),void clearInterval(YTPlayer.checkForStartAt))},checkForStart:function(a){var b=jQuery(a);if(!jQuery.contains(document,a))return void jQuery(a).YTPPlayerDestroy();if(jQuery.browser.chrome&&(a.opt.quality=\"default\"),a.player.pauseVideo(),jQuery(a).muteYTPVolume(),jQuery(\"#controlBar_\"+a.id).remove(),a.opt.showControls&&jQuery.mbYTPlayer.buildControls(a),a.opt.addRaster){var c=\"dot\"==a.opt.addRaster?\"raster-dot\":\"raster\";a.overlay.addClass(a.isRetina?c+\" retina\":c)}else a.overlay.removeClass(function(a,b){var c=b.split(\" \"),d=[];return jQuery.each(c,function(a,b){/raster.*/.test(b)&&d.push(b)}),d.push(\"retina\"),d.join(\" \")});a.checkForStartAt=setInterval(function(){jQuery(a).YTPMute();var c=a.opt.startAt?a.opt.startAt:1,d=a.player.getVideoLoadedFraction()>c/a.player.getDuration();if(a.player.getDuration()>0&&a.player.getCurrentTime()>=c&&d){clearInterval(a.checkForStartAt),a.isReady=!0,\"function\"==typeof a.opt.onReady&&a.opt.onReady(a);var e=jQuery.Event(\"YTPReady\");jQuery(a).trigger(e),a.player.pauseVideo(),a.opt.mute||jQuery(a).YTPUnmute(),a.canTrigger=!0,a.opt.autoPlay?(b.YTPPlay(),b.css(\"background-image\",\"none\"),jQuery(a.playerEl).CSSAnimate({opacity:1},1e3),a.wrapper.CSSAnimate({opacity:a.isAlone?1:a.opt.opacity},1e3)):(a.player.pauseVideo(),a.isPlayer||(jQuery(a.playerEl).CSSAnimate({opacity:1},1e3),a.wrapper.CSSAnimate({opacity:a.isAlone?1:a.opt.opacity},1e3))),a.isPlayer&&!a.opt.autoPlay&&(a.loading.html(\"Ready\"),setTimeout(function(){a.loading.fadeOut()},100)),a.controlBar&&a.controlBar.slideDown(1e3)}else c>=0&&a.player.seekTo(c,!0)},1e3)},formatTime:function(a){var b=Math.floor(a/60),c=Math.floor(a-60*b);return(9>=b?\"0\"+b:b)+\" : \"+(9>=c?\"0\"+c:c)}},jQuery.fn.toggleVolume=function(){var a=this.get(0);if(a)return a.player.isMuted()?(jQuery(a).YTPUnmute(),!0):(jQuery(a).YTPMute(),!1)},jQuery.fn.optimizeDisplay=function(){var a=this.get(0),b=a.opt,c=jQuery(a.playerEl),d={},e=a.wrapper;d.width=e.outerWidth(),d.height=e.outerHeight();var f=24,g=100,h={};b.optimizeDisplay?(h.width=d.width+d.width*f/100,h.height=\"16/9\"==b.ratio?Math.ceil(9*d.width/16):Math.ceil(3*d.width/4),h.marginTop=-((h.height-d.height)/2),h.marginLeft=-(d.width*(f/2)/100),h.height<d.height&&(h.height=d.height+d.height*f/100,h.width=\"16/9\"==b.ratio?Math.floor(16*d.height/9):Math.floor(4*d.height/3),h.marginTop=-(d.height*(f/2)/100),h.marginLeft=-((h.width-d.width)/2)),h.width+=g,h.height+=g,h.marginTop-=g/2,h.marginLeft-=g/2):(h.width=\"100%\",h.height=\"100%\",h.marginTop=0,h.marginLeft=0),c.css({width:h.width,height:h.height,marginTop:h.marginTop,marginLeft:h.marginLeft})},jQuery.shuffle=function(a){for(var b=a.slice(),c=b.length,d=c;d--;){var e=parseInt(Math.random()*c),f=b[d];b[d]=b[e],b[e]=f}return b},jQuery.fn.YTPlayer=jQuery.mbYTPlayer.buildPlayer,jQuery.fn.YTPlaylist=jQuery.mbYTPlayer.playlist,jQuery.fn.YTPPlayNext=jQuery.mbYTPlayer.playNext,jQuery.fn.YTPPlayPrev=jQuery.mbYTPlayer.playPrev,jQuery.fn.YTPChangeMovie=jQuery.mbYTPlayer.changeMovie,jQuery.fn.YTPGetVideoID=jQuery.mbYTPlayer.getVideoID,jQuery.fn.YTPGetPlayer=jQuery.mbYTPlayer.getPlayer,jQuery.fn.YTPPlayerDestroy=jQuery.mbYTPlayer.playerDestroy,jQuery.fn.YTPFullscreen=jQuery.mbYTPlayer.fullscreen,jQuery.fn.YTPPlay=jQuery.mbYTPlayer.play,jQuery.fn.YTPTogglePlay=jQuery.mbYTPlayer.togglePlay,jQuery.fn.YTPToggleLoops=jQuery.mbYTPlayer.toggleLoops,jQuery.fn.YTPStop=jQuery.mbYTPlayer.stop,jQuery.fn.YTPPause=jQuery.mbYTPlayer.pause,jQuery.fn.YTPSeekTo=jQuery.mbYTPlayer.seekTo,jQuery.fn.YTPMute=jQuery.mbYTPlayer.mute,jQuery.fn.YTPUnmute=jQuery.mbYTPlayer.unmute,jQuery.fn.YTPToggleVolume=jQuery.mbYTPlayer.toggleVolume,jQuery.fn.YTPSetVolume=jQuery.mbYTPlayer.setVolume,jQuery.fn.YTPSetVideoQuality=jQuery.mbYTPlayer.setVideoQuality,jQuery.fn.YTPManageProgress=jQuery.mbYTPlayer.manageProgress,jQuery.fn.YTPGetVideoData=jQuery.mbYTPlayer.getVideoData,jQuery.fn.YTPApplyFilter=jQuery.mbYTPlayer.applyFilter,jQuery.fn.YTPApplyFilters=jQuery.mbYTPlayer.applyFilters,jQuery.fn.YTPToggleFilter=jQuery.mbYTPlayer.toggleFilter,jQuery.fn.YTPToggleFilters=jQuery.mbYTPlayer.toggleFilters,jQuery.fn.YTPRemoveFilter=jQuery.mbYTPlayer.removeFilter,jQuery.fn.YTPDisableFilters=jQuery.mbYTPlayer.disableFilters,jQuery.fn.YTPEnableFilters=jQuery.mbYTPlayer.enableFilters,jQuery.fn.mb_YTPlayer=jQuery.mbYTPlayer.buildPlayer,jQuery.fn.playNext=jQuery.mbYTPlayer.playNext,jQuery.fn.playPrev=jQuery.mbYTPlayer.playPrev,jQuery.fn.changeMovie=jQuery.mbYTPlayer.changeMovie,jQuery.fn.getVideoID=jQuery.mbYTPlayer.getVideoID,jQuery.fn.getPlayer=jQuery.mbYTPlayer.getPlayer,jQuery.fn.playerDestroy=jQuery.mbYTPlayer.playerDestroy,jQuery.fn.fullscreen=jQuery.mbYTPlayer.fullscreen,jQuery.fn.buildYTPControls=jQuery.mbYTPlayer.buildControls,jQuery.fn.playYTP=jQuery.mbYTPlayer.play,jQuery.fn.toggleLoops=jQuery.mbYTPlayer.toggleLoops,jQuery.fn.stopYTP=jQuery.mbYTPlayer.stop,jQuery.fn.pauseYTP=jQuery.mbYTPlayer.pause,jQuery.fn.seekToYTP=jQuery.mbYTPlayer.seekTo,jQuery.fn.muteYTPVolume=jQuery.mbYTPlayer.mute,jQuery.fn.unmuteYTPVolume=jQuery.mbYTPlayer.unmute,jQuery.fn.setYTPVolume=jQuery.mbYTPlayer.setVolume,jQuery.fn.setVideoQuality=jQuery.mbYTPlayer.setVideoQuality,jQuery.fn.manageYTPProgress=jQuery.mbYTPlayer.manageProgress,jQuery.fn.YTPGetDataFromFeed=jQuery.mbYTPlayer.getVideoData}(jQuery,ytp),!function($){function uncamel(a){return a.replace(/([A-Z])/g,function(a){return\"-\"+a.toLowerCase()})}function setUnit(a,b){return\"string\"!=typeof a||a.match(/^[\\-0-9\\.]+$/)?\"\"+a+b:a}function setFilter(a,b,c){var d=uncamel(b),e=jQuery.browser.mozilla?\"\":$.CSS.sfx;a[e+\"filter\"]=a[e+\"filter\"]||\"\",c=setUnit(c>$.CSS.filters[b].max?$.CSS.filters[b].max:c,$.CSS.filters[b].unit),a[e+\"filter\"]+=d+\"(\"+c+\") \",delete a[b]}eval(function(a,b,c,d,e,f){if(e=function(a){return a},!\"\".replace(/^/,String)){for(;c--;)f[c]=d[c]||c;d=[function(a){return f[a]}],e=function(){return\"\\\\w+\"},c=1}for(;c--;)d[c]&&(a=a.replace(new RegExp(\"\\\\b\"+e(c)+\"\\\\b\",\"g\"),d[c]));return a}('29 11=17.53;24(!2.9){2.9={};2.9.34=!1;2.9.22=!1;2.9.45=!1;2.9.42=!1;2.9.40=!1;2.9.28=!1;2.9.56=11;2.9.16=17.51;2.9.13=\"\"+47(17.23);2.9.18=26(17.23,10);29 32,12,20;24(-1!=(12=11.15(\"33\")))2.9.45=!0,2.9.16=\"33\",2.9.13=11.14(12+6),-1!=(12=11.15(\"25\"))&&(2.9.13=11.14(12+8));27 24(-1!=(12=11.15(\"58\")))2.9.28=!0,2.9.16=\"36 38 39\",2.9.13=11.14(12+5);27 24(-1!=11.15(\"57\")){2.9.28=!0;2.9.16=\"36 38 39\";29 30=11.15(\"59:\")+3,43=30+4;2.9.13=11.14(30,43)}27-1!=(12=11.15(\"41\"))?(2.9.22=!0,2.9.40=!0,2.9.16=\"41\",2.9.13=11.14(12+7)):-1!=(12=11.15(\"31\"))?(2.9.22=!0,2.9.42=!0,2.9.16=\"31\",2.9.13=11.14(12+7),-1!=(12=11.15(\"25\"))&&(2.9.13=11.14(12+8))):-1!=(12=11.15(\"68\"))?(2.9.22=!0,2.9.16=\"31\",2.9.13=11.14(12+7),-1!=(12=11.15(\"25\"))&&(2.9.13=11.14(12+8))):-1!=(12=11.15(\"35\"))?(2.9.34=!0,2.9.16=\"35\",2.9.13=11.14(12+8)):(32=11.37(\" \")+1)<(12=11.37(\"/\"))&&(2.9.16=11.14(32,12),2.9.13=11.14(12+1),2.9.16.63()==2.9.16.64()&&(2.9.16=17.51));-1!=(20=2.9.13.15(\";\"))&&(2.9.13=2.9.13.14(0,20));-1!=(20=2.9.13.15(\" \"))&&(2.9.13=2.9.13.14(0,20));2.9.18=26(\"\"+2.9.13,10);67(2.9.18)&&(2.9.13=\"\"+47(17.23),2.9.18=26(17.23,10));2.9.69=2.9.18}2.9.46=/65/19.21(11);2.9.49=/66/19.21(11);2.9.48=/60|61|55/19.21(11);2.9.50=/33 52/19.21(11);2.9.44=/54/19.21(11);2.9.62=2.9.46||2.9.49||2.9.48||2.9.44||2.9.50;',10,70,\"||jQuery|||||||browser||nAgt|verOffset|fullVersion|substring|indexOf|name|navigator|majorVersion|i|ix|test|webkit|appVersion|if|Version|parseInt|else|msie|var|start|Safari|nameOffset|Opera|mozilla|Firefox|Microsoft|lastIndexOf|Internet|Explorer|chrome|Chrome|safari|end|windowsMobile|opera|android|parseFloat|ios|blackberry|operaMobile|appName|Mini|userAgent|IEMobile|iPod|ua|Trident|MSIE|rv|iPhone|iPad|mobile|toLowerCase|toUpperCase|Android|BlackBerry|isNaN|AppleWebkit|version\".split(\"|\"),0,{})),\njQuery.support.CSStransition=function(){var a=document.body||document.documentElement,b=a.style;return void 0!==b.transition||void 0!==b.WebkitTransition||void 0!==b.MozTransition||void 0!==b.MsTransition||void 0!==b.OTransition}(),$.CSS={name:\"mb.CSSAnimate\",author:\"Matteo Bicocchi\",version:\"2.0.0\",transitionEnd:\"transitionEnd\",sfx:\"\",filters:{blur:{min:0,max:100,unit:\"px\"},brightness:{min:0,max:400,unit:\"%\"},contrast:{min:0,max:400,unit:\"%\"},grayscale:{min:0,max:100,unit:\"%\"},hueRotate:{min:0,max:360,unit:\"deg\"},invert:{min:0,max:100,unit:\"%\"},saturate:{min:0,max:400,unit:\"%\"},sepia:{min:0,max:100,unit:\"%\"}},normalizeCss:function(a){var b=jQuery.extend(!0,{},a);jQuery.browser.webkit||jQuery.browser.opera?$.CSS.sfx=\"-webkit-\":jQuery.browser.mozilla?$.CSS.sfx=\"-moz-\":jQuery.browser.msie&&($.CSS.sfx=\"-ms-\");for(var c in b){\"transform\"===c&&(b[$.CSS.sfx+\"transform\"]=b[c],delete b[c]),\"transform-origin\"===c&&(b[$.CSS.sfx+\"transform-origin\"]=a[c],delete b[c]),\"filter\"!==c||jQuery.browser.mozilla||(b[$.CSS.sfx+\"filter\"]=a[c],delete b[c]),\"blur\"===c&&setFilter(b,\"blur\",a[c]),\"brightness\"===c&&setFilter(b,\"brightness\",a[c]),\"contrast\"===c&&setFilter(b,\"contrast\",a[c]),\"grayscale\"===c&&setFilter(b,\"grayscale\",a[c]),\"hueRotate\"===c&&setFilter(b,\"hueRotate\",a[c]),\"invert\"===c&&setFilter(b,\"invert\",a[c]),\"saturate\"===c&&setFilter(b,\"saturate\",a[c]),\"sepia\"===c&&setFilter(b,\"sepia\",a[c]);var d=\"\";\"x\"===c&&(d=$.CSS.sfx+\"transform\",b[d]=b[d]||\"\",b[d]+=\" translateX(\"+setUnit(a[c],\"px\")+\")\",delete b[c]),\"y\"===c&&(d=$.CSS.sfx+\"transform\",b[d]=b[d]||\"\",b[d]+=\" translateY(\"+setUnit(a[c],\"px\")+\")\",delete b[c]),\"z\"===c&&(d=$.CSS.sfx+\"transform\",b[d]=b[d]||\"\",b[d]+=\" translateZ(\"+setUnit(a[c],\"px\")+\")\",delete b[c]),\"rotate\"===c&&(d=$.CSS.sfx+\"transform\",b[d]=b[d]||\"\",b[d]+=\" rotate(\"+setUnit(a[c],\"deg\")+\")\",delete b[c]),\"rotateX\"===c&&(d=$.CSS.sfx+\"transform\",b[d]=b[d]||\"\",b[d]+=\" rotateX(\"+setUnit(a[c],\"deg\")+\")\",delete b[c]),\"rotateY\"===c&&(d=$.CSS.sfx+\"transform\",b[d]=b[d]||\"\",b[d]+=\" rotateY(\"+setUnit(a[c],\"deg\")+\")\",delete b[c]),\"rotateZ\"===c&&(d=$.CSS.sfx+\"transform\",b[d]=b[d]||\"\",b[d]+=\" rotateZ(\"+setUnit(a[c],\"deg\")+\")\",delete b[c]),\"scale\"===c&&(d=$.CSS.sfx+\"transform\",b[d]=b[d]||\"\",b[d]+=\" scale(\"+setUnit(a[c],\"\")+\")\",delete b[c]),\"scaleX\"===c&&(d=$.CSS.sfx+\"transform\",b[d]=b[d]||\"\",b[d]+=\" scaleX(\"+setUnit(a[c],\"\")+\")\",delete b[c]),\"scaleY\"===c&&(d=$.CSS.sfx+\"transform\",b[d]=b[d]||\"\",b[d]+=\" scaleY(\"+setUnit(a[c],\"\")+\")\",delete b[c]),\"scaleZ\"===c&&(d=$.CSS.sfx+\"transform\",b[d]=b[d]||\"\",b[d]+=\" scaleZ(\"+setUnit(a[c],\"\")+\")\",delete b[c]),\"skew\"===c&&(d=$.CSS.sfx+\"transform\",b[d]=b[d]||\"\",b[d]+=\" skew(\"+setUnit(a[c],\"deg\")+\")\",delete b[c]),\"skewX\"===c&&(d=$.CSS.sfx+\"transform\",b[d]=b[d]||\"\",b[d]+=\" skewX(\"+setUnit(a[c],\"deg\")+\")\",delete b[c]),\"skewY\"===c&&(d=$.CSS.sfx+\"transform\",b[d]=b[d]||\"\",b[d]+=\" skewY(\"+setUnit(a[c],\"deg\")+\")\",delete b[c]),\"perspective\"===c&&(d=$.CSS.sfx+\"transform\",b[d]=b[d]||\"\",b[d]+=\" perspective(\"+setUnit(a[c],\"px\")+\")\",delete b[c])}return b},getProp:function(a){var b=[];for(var c in a)b.indexOf(c)<0&&b.push(uncamel(c));return b.join(\",\")},animate:function(a,b,c,d,e){return this.each(function(){function f(){g.called=!0,g.CSSAIsRunning=!1,h.off($.CSS.transitionEnd+\".\"+g.id),clearTimeout(g.timeout),h.css($.CSS.sfx+\"transition\",\"\"),\"function\"==typeof e&&e.apply(g),\"function\"==typeof g.CSSqueue&&(g.CSSqueue(),g.CSSqueue=null)}var g=this,h=jQuery(this);g.id=g.id||\"CSSA_\"+(new Date).getTime();var i=i||{type:\"noEvent\"};if(g.CSSAIsRunning&&g.eventType==i.type&&!jQuery.browser.msie&&jQuery.browser.version<=9)return void(g.CSSqueue=function(){h.CSSAnimate(a,b,c,d,e)});if(g.CSSqueue=null,g.eventType=i.type,0!==h.length&&a){if(a=$.normalizeCss(a),g.CSSAIsRunning=!0,\"function\"==typeof b&&(e=b,b=jQuery.fx.speeds._default),\"function\"==typeof c&&(d=c,c=0),\"string\"==typeof c&&(e=c,c=0),\"function\"==typeof d&&(e=d,d=\"cubic-bezier(0.65,0.03,0.36,0.72)\"),\"string\"==typeof b)for(var j in jQuery.fx.speeds){if(b==j){b=jQuery.fx.speeds[j];break}b=jQuery.fx.speeds._default}if(b||(b=jQuery.fx.speeds._default),\"string\"==typeof e&&(d=e,e=null),!jQuery.support.CSStransition){for(var k in a){if(\"transform\"===k&&delete a[k],\"filter\"===k&&delete a[k],\"transform-origin\"===k&&delete a[k],\"auto\"===a[k]&&delete a[k],\"x\"===k){var l=a[k],m=\"left\";a[m]=l,delete a[k]}if(\"y\"===k){var l=a[k],m=\"top\";a[m]=l,delete a[k]}(\"-ms-transform\"===k||\"-ms-filter\"===k)&&delete a[k]}return void h.delay(c).animate(a,b,e)}var n={\"default\":\"ease\",\"in\":\"ease-in\",out:\"ease-out\",\"in-out\":\"ease-in-out\",snap:\"cubic-bezier(0,1,.5,1)\",easeOutCubic:\"cubic-bezier(.215,.61,.355,1)\",easeInOutCubic:\"cubic-bezier(.645,.045,.355,1)\",easeInCirc:\"cubic-bezier(.6,.04,.98,.335)\",easeOutCirc:\"cubic-bezier(.075,.82,.165,1)\",easeInOutCirc:\"cubic-bezier(.785,.135,.15,.86)\",easeInExpo:\"cubic-bezier(.95,.05,.795,.035)\",easeOutExpo:\"cubic-bezier(.19,1,.22,1)\",easeInOutExpo:\"cubic-bezier(1,0,0,1)\",easeInQuad:\"cubic-bezier(.55,.085,.68,.53)\",easeOutQuad:\"cubic-bezier(.25,.46,.45,.94)\",easeInOutQuad:\"cubic-bezier(.455,.03,.515,.955)\",easeInQuart:\"cubic-bezier(.895,.03,.685,.22)\",easeOutQuart:\"cubic-bezier(.165,.84,.44,1)\",easeInOutQuart:\"cubic-bezier(.77,0,.175,1)\",easeInQuint:\"cubic-bezier(.755,.05,.855,.06)\",easeOutQuint:\"cubic-bezier(.23,1,.32,1)\",easeInOutQuint:\"cubic-bezier(.86,0,.07,1)\",easeInSine:\"cubic-bezier(.47,0,.745,.715)\",easeOutSine:\"cubic-bezier(.39,.575,.565,1)\",easeInOutSine:\"cubic-bezier(.445,.05,.55,.95)\",easeInBack:\"cubic-bezier(.6,-.28,.735,.045)\",easeOutBack:\"cubic-bezier(.175, .885,.32,1.275)\",easeInOutBack:\"cubic-bezier(.68,-.55,.265,1.55)\"};n[d]&&(d=n[d]),h.off($.CSS.transitionEnd+\".\"+g.id);var o=$.CSS.getProp(a),p={};$.extend(p,a),p[$.CSS.sfx+\"transition-property\"]=o,p[$.CSS.sfx+\"transition-duration\"]=b+\"ms\",p[$.CSS.sfx+\"transition-delay\"]=c+\"ms\",p[$.CSS.sfx+\"transition-timing-function\"]=d,setTimeout(function(){h.one($.CSS.transitionEnd+\".\"+g.id,f),h.css(p)},1),g.timeout=setTimeout(function(){return g.called||!e?(g.called=!1,void(g.CSSAIsRunning=!1)):(h.css($.CSS.sfx+\"transition\",\"\"),e.apply(g),g.CSSAIsRunning=!1,void(\"function\"==typeof g.CSSqueue&&(g.CSSqueue(),g.CSSqueue=null)))},b+c+10)}})}},$.fn.CSSAnimate=$.CSS.animate,$.normalizeCss=$.CSS.normalizeCss,$.fn.css3=function(a){return this.each(function(){var b=$(this),c=$.normalizeCss(a);b.css(c)})}}(jQuery);var nAgt=navigator.userAgent;if(!jQuery.browser){jQuery.browser={},jQuery.browser.mozilla=!1,jQuery.browser.webkit=!1,jQuery.browser.opera=!1,jQuery.browser.safari=!1,jQuery.browser.chrome=!1,jQuery.browser.msie=!1,jQuery.browser.ua=nAgt,jQuery.browser.name=navigator.appName,jQuery.browser.fullVersion=\"\"+parseFloat(navigator.appVersion),jQuery.browser.majorVersion=parseInt(navigator.appVersion,10);var nameOffset,verOffset,ix;if(-1!=(verOffset=nAgt.indexOf(\"Opera\")))jQuery.browser.opera=!0,jQuery.browser.name=\"Opera\",jQuery.browser.fullVersion=nAgt.substring(verOffset+6),-1!=(verOffset=nAgt.indexOf(\"Version\"))&&(jQuery.browser.fullVersion=nAgt.substring(verOffset+8));else if(-1!=(verOffset=nAgt.indexOf(\"OPR\")))jQuery.browser.opera=!0,jQuery.browser.name=\"Opera\",jQuery.browser.fullVersion=nAgt.substring(verOffset+4);else if(-1!=(verOffset=nAgt.indexOf(\"MSIE\")))jQuery.browser.msie=!0,jQuery.browser.name=\"Microsoft Internet Explorer\",jQuery.browser.fullVersion=nAgt.substring(verOffset+5);else if(-1!=nAgt.indexOf(\"Trident\")){jQuery.browser.msie=!0,jQuery.browser.name=\"Microsoft Internet Explorer\";var start=nAgt.indexOf(\"rv:\")+3,end=start+4;jQuery.browser.fullVersion=nAgt.substring(start,end)}else-1!=(verOffset=nAgt.indexOf(\"Chrome\"))?(jQuery.browser.webkit=!0,jQuery.browser.chrome=!0,jQuery.browser.name=\"Chrome\",jQuery.browser.fullVersion=nAgt.substring(verOffset+7)):-1!=(verOffset=nAgt.indexOf(\"Safari\"))?(jQuery.browser.webkit=!0,jQuery.browser.safari=!0,jQuery.browser.name=\"Safari\",jQuery.browser.fullVersion=nAgt.substring(verOffset+7),-1!=(verOffset=nAgt.indexOf(\"Version\"))&&(jQuery.browser.fullVersion=nAgt.substring(verOffset+8))):-1!=(verOffset=nAgt.indexOf(\"AppleWebkit\"))?(jQuery.browser.webkit=!0,jQuery.browser.name=\"Safari\",jQuery.browser.fullVersion=nAgt.substring(verOffset+7),-1!=(verOffset=nAgt.indexOf(\"Version\"))&&(jQuery.browser.fullVersion=nAgt.substring(verOffset+8))):-1!=(verOffset=nAgt.indexOf(\"Firefox\"))?(jQuery.browser.mozilla=!0,jQuery.browser.name=\"Firefox\",jQuery.browser.fullVersion=nAgt.substring(verOffset+8)):(nameOffset=nAgt.lastIndexOf(\" \")+1)<(verOffset=nAgt.lastIndexOf(\"/\"))&&(jQuery.browser.name=nAgt.substring(nameOffset,verOffset),jQuery.browser.fullVersion=nAgt.substring(verOffset+1),jQuery.browser.name.toLowerCase()==jQuery.browser.name.toUpperCase()&&(jQuery.browser.name=navigator.appName));-1!=(ix=jQuery.browser.fullVersion.indexOf(\";\"))&&(jQuery.browser.fullVersion=jQuery.browser.fullVersion.substring(0,ix)),-1!=(ix=jQuery.browser.fullVersion.indexOf(\" \"))&&(jQuery.browser.fullVersion=jQuery.browser.fullVersion.substring(0,ix)),jQuery.browser.majorVersion=parseInt(\"\"+jQuery.browser.fullVersion,10),isNaN(jQuery.browser.majorVersion)&&(jQuery.browser.fullVersion=\"\"+parseFloat(navigator.appVersion),jQuery.browser.majorVersion=parseInt(navigator.appVersion,10)),jQuery.browser.version=jQuery.browser.majorVersion}jQuery.browser.android=/Android/i.test(nAgt),jQuery.browser.blackberry=/BlackBerry|BB|PlayBook/i.test(nAgt),jQuery.browser.ios=/iPhone|iPad|iPod|webOS/i.test(nAgt),jQuery.browser.operaMobile=/Opera Mini/i.test(nAgt),jQuery.browser.windowsMobile=/IEMobile|Windows Phone/i.test(nAgt),jQuery.browser.kindle=/Kindle|Silk/i.test(nAgt),jQuery.browser.mobile=jQuery.browser.android||jQuery.browser.blackberry||jQuery.browser.ios||jQuery.browser.windowsMobile||jQuery.browser.operaMobile||jQuery.browser.kindle,jQuery.isMobile=jQuery.browser.mobile,jQuery.isAndroidDefault=jQuery.browser.android&&!/chrome/i.test(nAgt),!function(a){/iphone|ipod|ipad|android|ie|blackberry|fennec/.test(navigator.userAgent.toLowerCase());var b=\"ontouchstart\"in window||window.navigator&&window.navigator.msPointerEnabled&&window.MSGesture||window.DocumentTouch&&document instanceof DocumentTouch||!1;a.simpleSlider={defaults:{initialval:0,scale:100,orientation:\"h\",readonly:!1,callback:!1},events:{start:b?\"touchstart\":\"mousedown\",end:b?\"touchend\":\"mouseup\",move:b?\"touchmove\":\"mousemove\"},init:function(c){return this.each(function(){var d=this,e=a(d);e.addClass(\"simpleSlider\"),d.opt={},a.extend(d.opt,a.simpleSlider.defaults,c),a.extend(d.opt,e.data());var f=\"h\"==d.opt.orientation?\"horizontal\":\"vertical\",g=a(\"<div/>\").addClass(\"level\").addClass(f);e.prepend(g),d.level=g,e.css({cursor:\"default\"}),\"auto\"==d.opt.scale&&(d.opt.scale=a(d).outerWidth()),e.updateSliderVal(),d.opt.readonly||(e.on(a.simpleSlider.events.start,function(a){b&&(a=a.changedTouches[0]),d.canSlide=!0,e.updateSliderVal(a),e.css({cursor:\"col-resize\"}),a.preventDefault(),a.stopPropagation()}),a(document).on(a.simpleSlider.events.move,function(c){b&&(c=c.changedTouches[0]),d.canSlide&&(a(document).css({cursor:\"default\"}),e.updateSliderVal(c),c.preventDefault(),c.stopPropagation())}).on(a.simpleSlider.events.end,function(){a(document).css({cursor:\"auto\"}),d.canSlide=!1,e.css({cursor:\"auto\"})}))})},updateSliderVal:function(b){function c(a,b){return Math.floor(100*a/b)}var d=this,e=d.get(0);e.opt.initialval=\"number\"==typeof e.opt.initialval?e.opt.initialval:e.opt.initialval(e);var f=a(e).outerWidth(),g=a(e).outerHeight();e.x=\"object\"==typeof b?b.clientX+document.body.scrollLeft-d.offset().left:\"number\"==typeof b?b*f/e.opt.scale:e.opt.initialval*f/e.opt.scale,e.y=\"object\"==typeof b?b.clientY+document.body.scrollTop-d.offset().top:\"number\"==typeof b?(e.opt.scale-e.opt.initialval-b)*g/e.opt.scale:e.opt.initialval*g/e.opt.scale,e.y=d.outerHeight()-e.y,e.scaleX=e.x*e.opt.scale/f,e.scaleY=e.y*e.opt.scale/g,e.outOfRangeX=e.scaleX>e.opt.scale?e.scaleX-e.opt.scale:e.scaleX<0?e.scaleX:0,e.outOfRangeY=e.scaleY>e.opt.scale?e.scaleY-e.opt.scale:e.scaleY<0?e.scaleY:0,e.outOfRange=\"h\"==e.opt.orientation?e.outOfRangeX:e.outOfRangeY,e.value=\"undefined\"!=typeof b?\"h\"==e.opt.orientation?e.x>=d.outerWidth()?e.opt.scale:e.x<=0?0:e.scaleX:e.y>=d.outerHeight()?e.opt.scale:e.y<=0?0:e.scaleY:\"h\"==e.opt.orientation?e.scaleX:e.scaleY,\"h\"==e.opt.orientation?e.level.width(c(e.x,f)+\"%\"):e.level.height(c(e.y,g)),\"function\"==typeof e.opt.callback&&e.opt.callback(e)}},a.fn.simpleSlider=a.simpleSlider.init,a.fn.updateSliderVal=a.simpleSlider.updateSliderVal}(jQuery),!function(a){a.mbCookie={set:function(a,b,c,d){b=JSON.stringify(b),c||(c=7),d=d?\"; domain=\"+d:\"\";var e,f=new Date;f.setTime(f.getTime()+864e5*c),e=\"; expires=\"+f.toGMTString(),document.cookie=a+\"=\"+b+e+\"; path=/\"+d},get:function(a){for(var b=a+\"=\",c=document.cookie.split(\";\"),d=0;d<c.length;d++){for(var e=c[d];\" \"==e.charAt(0);)e=e.substring(1,e.length);if(0==e.indexOf(b))return JSON.parse(e.substring(b.length,e.length))}return null},remove:function(b){a.mbCookie.set(b,\"\",-1)}},a.mbStorage={set:function(a,b){b=JSON.stringify(b),localStorage.setItem(a,b)},get:function(a){return localStorage[a]?JSON.parse(localStorage[a]):null},remove:function(a){a?localStorage.removeItem(a):localStorage.clear()}}}(jQuery);","/*!\nWaypoints - 4.0.1\nCopyright © 2011-2016 Caleb Troughton\nLicensed under the MIT license.\nhttps://github.com/imakewebthings/waypoints/blob/master/licenses.txt\n*/\n!function(){\"use strict\";function t(o){if(!o)throw new Error(\"No options passed to Waypoint constructor\");if(!o.element)throw new Error(\"No element option passed to Waypoint constructor\");if(!o.handler)throw new Error(\"No handler option passed to Waypoint constructor\");this.key=\"waypoint-\"+e,this.options=t.Adapter.extend({},t.defaults,o),this.element=this.options.element,this.adapter=new t.Adapter(this.element),this.callback=o.handler,this.axis=this.options.horizontal?\"horizontal\":\"vertical\",this.enabled=this.options.enabled,this.triggerPoint=null,this.group=t.Group.findOrCreate({name:this.options.group,axis:this.axis}),this.context=t.Context.findOrCreateByElement(this.options.context),t.offsetAliases[this.options.offset]&&(this.options.offset=t.offsetAliases[this.options.offset]),this.group.add(this),this.context.add(this),i[this.key]=this,e+=1}var e=0,i={};t.prototype.queueTrigger=function(t){this.group.queueTrigger(this,t)},t.prototype.trigger=function(t){this.enabled&&this.callback&&this.callback.apply(this,t)},t.prototype.destroy=function(){this.context.remove(this),this.group.remove(this),delete i[this.key]},t.prototype.disable=function(){return this.enabled=!1,this},t.prototype.enable=function(){return this.context.refresh(),this.enabled=!0,this},t.prototype.next=function(){return this.group.next(this)},t.prototype.previous=function(){return this.group.previous(this)},t.invokeAll=function(t){var e=[];for(var o in i)e.push(i[o]);for(var n=0,r=e.length;r>n;n++)e[n][t]()},t.destroyAll=function(){t.invokeAll(\"destroy\")},t.disableAll=function(){t.invokeAll(\"disable\")},t.enableAll=function(){t.Context.refreshAll();for(var e in i)i[e].enabled=!0;return this},t.refreshAll=function(){t.Context.refreshAll()},t.viewportHeight=function(){return window.innerHeight||document.documentElement.clientHeight},t.viewportWidth=function(){return document.documentElement.clientWidth},t.adapters=[],t.defaults={context:window,continuous:!0,enabled:!0,group:\"default\",horizontal:!1,offset:0},t.offsetAliases={\"bottom-in-view\":function(){return this.context.innerHeight()-this.adapter.outerHeight()},\"right-in-view\":function(){return this.context.innerWidth()-this.adapter.outerWidth()}},window.Waypoint=t}(),function(){\"use strict\";function t(t){window.setTimeout(t,1e3/60)}function e(t){this.element=t,this.Adapter=n.Adapter,this.adapter=new this.Adapter(t),this.key=\"waypoint-context-\"+i,this.didScroll=!1,this.didResize=!1,this.oldScroll={x:this.adapter.scrollLeft(),y:this.adapter.scrollTop()},this.waypoints={vertical:{},horizontal:{}},t.waypointContextKey=this.key,o[t.waypointContextKey]=this,i+=1,n.windowContext||(n.windowContext=!0,n.windowContext=new e(window)),this.createThrottledScrollHandler(),this.createThrottledResizeHandler()}var i=0,o={},n=window.Waypoint,r=window.onload;e.prototype.add=function(t){var e=t.options.horizontal?\"horizontal\":\"vertical\";this.waypoints[e][t.key]=t,this.refresh()},e.prototype.checkEmpty=function(){var t=this.Adapter.isEmptyObject(this.waypoints.horizontal),e=this.Adapter.isEmptyObject(this.waypoints.vertical),i=this.element==this.element.window;t&&e&&!i&&(this.adapter.off(\".waypoints\"),delete o[this.key])},e.prototype.createThrottledResizeHandler=function(){function t(){e.handleResize(),e.didResize=!1}var e=this;this.adapter.on(\"resize.waypoints\",function(){e.didResize||(e.didResize=!0,n.requestAnimationFrame(t))})},e.prototype.createThrottledScrollHandler=function(){function t(){e.handleScroll(),e.didScroll=!1}var e=this;this.adapter.on(\"scroll.waypoints\",function(){(!e.didScroll||n.isTouch)&&(e.didScroll=!0,n.requestAnimationFrame(t))})},e.prototype.handleResize=function(){n.Context.refreshAll()},e.prototype.handleScroll=function(){var t={},e={horizontal:{newScroll:this.adapter.scrollLeft(),oldScroll:this.oldScroll.x,forward:\"right\",backward:\"left\"},vertical:{newScroll:this.adapter.scrollTop(),oldScroll:this.oldScroll.y,forward:\"down\",backward:\"up\"}};for(var i in e){var o=e[i],n=o.newScroll>o.oldScroll,r=n?o.forward:o.backward;for(var s in this.waypoints[i]){var a=this.waypoints[i][s];if(null!==a.triggerPoint){var l=o.oldScroll<a.triggerPoint,h=o.newScroll>=a.triggerPoint,p=l&&h,u=!l&&!h;(p||u)&&(a.queueTrigger(r),t[a.group.id]=a.group)}}}for(var c in t)t[c].flushTriggers();this.oldScroll={x:e.horizontal.newScroll,y:e.vertical.newScroll}},e.prototype.innerHeight=function(){return this.element==this.element.window?n.viewportHeight():this.adapter.innerHeight()},e.prototype.remove=function(t){delete this.waypoints[t.axis][t.key],this.checkEmpty()},e.prototype.innerWidth=function(){return this.element==this.element.window?n.viewportWidth():this.adapter.innerWidth()},e.prototype.destroy=function(){var t=[];for(var e in this.waypoints)for(var i in this.waypoints[e])t.push(this.waypoints[e][i]);for(var o=0,n=t.length;n>o;o++)t[o].destroy()},e.prototype.refresh=function(){var t,e=this.element==this.element.window,i=e?void 0:this.adapter.offset(),o={};this.handleScroll(),t={horizontal:{contextOffset:e?0:i.left,contextScroll:e?0:this.oldScroll.x,contextDimension:this.innerWidth(),oldScroll:this.oldScroll.x,forward:\"right\",backward:\"left\",offsetProp:\"left\"},vertical:{contextOffset:e?0:i.top,contextScroll:e?0:this.oldScroll.y,contextDimension:this.innerHeight(),oldScroll:this.oldScroll.y,forward:\"down\",backward:\"up\",offsetProp:\"top\"}};for(var r in t){var s=t[r];for(var a in this.waypoints[r]){var l,h,p,u,c,d=this.waypoints[r][a],f=d.options.offset,w=d.triggerPoint,y=0,g=null==w;d.element!==d.element.window&&(y=d.adapter.offset()[s.offsetProp]),\"function\"==typeof f?f=f.apply(d):\"string\"==typeof f&&(f=parseFloat(f),d.options.offset.indexOf(\"%\")>-1&&(f=Math.ceil(s.contextDimension*f/100))),l=s.contextScroll-s.contextOffset,d.triggerPoint=Math.floor(y+l-f),h=w<s.oldScroll,p=d.triggerPoint>=s.oldScroll,u=h&&p,c=!h&&!p,!g&&u?(d.queueTrigger(s.backward),o[d.group.id]=d.group):!g&&c?(d.queueTrigger(s.forward),o[d.group.id]=d.group):g&&s.oldScroll>=d.triggerPoint&&(d.queueTrigger(s.forward),o[d.group.id]=d.group)}}return n.requestAnimationFrame(function(){for(var t in o)o[t].flushTriggers()}),this},e.findOrCreateByElement=function(t){return e.findByElement(t)||new e(t)},e.refreshAll=function(){for(var t in o)o[t].refresh()},e.findByElement=function(t){return o[t.waypointContextKey]},window.onload=function(){r&&r(),e.refreshAll()},n.requestAnimationFrame=function(e){var i=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||t;i.call(window,e)},n.Context=e}(),function(){\"use strict\";function t(t,e){return t.triggerPoint-e.triggerPoint}function e(t,e){return e.triggerPoint-t.triggerPoint}function i(t){this.name=t.name,this.axis=t.axis,this.id=this.name+\"-\"+this.axis,this.waypoints=[],this.clearTriggerQueues(),o[this.axis][this.name]=this}var o={vertical:{},horizontal:{}},n=window.Waypoint;i.prototype.add=function(t){this.waypoints.push(t)},i.prototype.clearTriggerQueues=function(){this.triggerQueues={up:[],down:[],left:[],right:[]}},i.prototype.flushTriggers=function(){for(var i in this.triggerQueues){var o=this.triggerQueues[i],n=\"up\"===i||\"left\"===i;o.sort(n?e:t);for(var r=0,s=o.length;s>r;r+=1){var a=o[r];(a.options.continuous||r===o.length-1)&&a.trigger([i])}}this.clearTriggerQueues()},i.prototype.next=function(e){this.waypoints.sort(t);var i=n.Adapter.inArray(e,this.waypoints),o=i===this.waypoints.length-1;return o?null:this.waypoints[i+1]},i.prototype.previous=function(e){this.waypoints.sort(t);var i=n.Adapter.inArray(e,this.waypoints);return i?this.waypoints[i-1]:null},i.prototype.queueTrigger=function(t,e){this.triggerQueues[e].push(t)},i.prototype.remove=function(t){var e=n.Adapter.inArray(t,this.waypoints);e>-1&&this.waypoints.splice(e,1)},i.prototype.first=function(){return this.waypoints[0]},i.prototype.last=function(){return this.waypoints[this.waypoints.length-1]},i.findOrCreate=function(t){return o[t.axis][t.name]||new i(t)},n.Group=i}(),function(){\"use strict\";function t(t){this.$element=e(t)}var e=window.jQuery,i=window.Waypoint;e.each([\"innerHeight\",\"innerWidth\",\"off\",\"offset\",\"on\",\"outerHeight\",\"outerWidth\",\"scrollLeft\",\"scrollTop\"],function(e,i){t.prototype[i]=function(){var t=Array.prototype.slice.call(arguments);return this.$element[i].apply(this.$element,t)}}),e.each([\"extend\",\"inArray\",\"isEmptyObject\"],function(i,o){t[o]=e[o]}),i.adapters.push({name:\"jquery\",Adapter:t}),i.Adapter=t}(),function(){\"use strict\";function t(t){return function(){var i=[],o=arguments[0];return t.isFunction(arguments[0])&&(o=t.extend({},arguments[1]),o.handler=arguments[0]),this.each(function(){var n=t.extend({},o,{element:this});\"string\"==typeof n.context&&(n.context=t(this).closest(n.context)[0]),i.push(new e(n))}),i}}var e=window.Waypoint;window.jQuery&&(window.jQuery.fn.waypoint=t(window.jQuery)),window.Zepto&&(window.Zepto.fn.waypoint=t(window.Zepto))}();","/*\n _ _ _ _\n ___| (_) ___| | __ (_)___\n/ __| | |/ __| |/ / | / __|\n\\__ \\ | | (__| < _ | \\__ \\\n|___/_|_|\\___|_|\\_(_)/ |___/\n |__/\n\n Version: 1.5.5\n Author: Ken Wheeler\n Website: http://kenwheeler.github.io\n Docs: http://kenwheeler.github.io/slick\n Repo: http://github.com/kenwheeler/slick\n Issues: http://github.com/kenwheeler/slick/issues\n\n */\n!function(a){\"use strict\";\"function\"==typeof define&&define.amd?define([\"jquery\"],a):\"undefined\"!=typeof exports?module.exports=a(require(\"jquery\")):a(jQuery)}(function(a){\"use strict\";var b=window.Slick||{};b=function(){function c(c,d){var f,g,h,e=this;if(e.defaults={accessibility:!0,adaptiveHeight:!1,appendArrows:a(c),appendDots:a(c),arrows:!0,asNavFor:null,prevArrow:'<button type=\"button\" data-role=\"none\" class=\"slick-prev\" aria-label=\"previous\">Previous</button>',nextArrow:'<button type=\"button\" data-role=\"none\" class=\"slick-next\" aria-label=\"next\">Next</button>',autoplay:!1,autoplaySpeed:3e3,centerMode:!1,centerPadding:\"50px\",cssEase:\"ease\",customPaging:function(a,b){return'<button type=\"button\" data-role=\"none\">'+(b+1)+\"</button>\"},dots:!1,dotsClass:\"slick-dots\",draggable:!0,easing:\"linear\",edgeFriction:.35,fade:!1,focusOnSelect:!1,infinite:!0,initialSlide:0,lazyLoad:\"ondemand\",mobileFirst:!1,pauseOnHover:!0,pauseOnDotsHover:!1,respondTo:\"window\",responsive:null,rows:1,rtl:!1,slide:\"\",slidesPerRow:1,slidesToShow:1,slidesToScroll:1,speed:500,swipe:!0,swipeToSlide:!1,touchMove:!0,touchThreshold:5,useCSS:!0,variableWidth:!1,vertical:!1,verticalSwiping:!1,waitForAnimate:!0},e.initials={animating:!1,dragging:!1,autoPlayTimer:null,currentDirection:0,currentLeft:null,currentSlide:0,direction:1,$dots:null,listWidth:null,listHeight:null,loadIndex:0,$nextArrow:null,$prevArrow:null,slideCount:null,slideWidth:null,$slideTrack:null,$slides:null,sliding:!1,slideOffset:0,swipeLeft:null,$list:null,touchObject:{},transformsEnabled:!1,unslicked:!1},a.extend(e,e.initials),e.activeBreakpoint=null,e.animType=null,e.animProp=null,e.breakpoints=[],e.breakpointSettings=[],e.cssTransitions=!1,e.hidden=\"hidden\",e.paused=!1,e.positionProp=null,e.respondTo=null,e.rowCount=1,e.shouldClick=!0,e.$slider=a(c),e.$slidesCache=null,e.transformType=null,e.transitionType=null,e.visibilityChange=\"visibilitychange\",e.windowWidth=0,e.windowTimer=null,f=a(c).data(\"slick\")||{},e.options=a.extend({},e.defaults,f,d),e.currentSlide=e.options.initialSlide,e.originalSettings=e.options,g=e.options.responsive||null,g&&g.length>-1){e.respondTo=e.options.respondTo||\"window\";for(h in g)g.hasOwnProperty(h)&&(e.breakpoints.push(g[h].breakpoint),e.breakpointSettings[g[h].breakpoint]=g[h].settings);e.breakpoints.sort(function(a,b){return e.options.mobileFirst===!0?a-b:b-a})}\"undefined\"!=typeof document.mozHidden?(e.hidden=\"mozHidden\",e.visibilityChange=\"mozvisibilitychange\"):\"undefined\"!=typeof document.webkitHidden&&(e.hidden=\"webkitHidden\",e.visibilityChange=\"webkitvisibilitychange\"),e.autoPlay=a.proxy(e.autoPlay,e),e.autoPlayClear=a.proxy(e.autoPlayClear,e),e.changeSlide=a.proxy(e.changeSlide,e),e.clickHandler=a.proxy(e.clickHandler,e),e.selectHandler=a.proxy(e.selectHandler,e),e.setPosition=a.proxy(e.setPosition,e),e.swipeHandler=a.proxy(e.swipeHandler,e),e.dragHandler=a.proxy(e.dragHandler,e),e.keyHandler=a.proxy(e.keyHandler,e),e.autoPlayIterator=a.proxy(e.autoPlayIterator,e),e.instanceUid=b++,e.htmlExpr=/^(?:\\s*(<[\\w\\W]+>)[^>]*)$/,e.init(!0),e.checkResponsive(!0)}var b=0;return c}(),b.prototype.addSlide=b.prototype.slickAdd=function(b,c,d){var e=this;if(\"boolean\"==typeof c)d=c,c=null;else if(0>c||c>=e.slideCount)return!1;e.unload(),\"number\"==typeof c?0===c&&0===e.$slides.length?a(b).appendTo(e.$slideTrack):d?a(b).insertBefore(e.$slides.eq(c)):a(b).insertAfter(e.$slides.eq(c)):d===!0?a(b).prependTo(e.$slideTrack):a(b).appendTo(e.$slideTrack),e.$slides=e.$slideTrack.children(this.options.slide),e.$slideTrack.children(this.options.slide).detach(),e.$slideTrack.append(e.$slides),e.$slides.each(function(b,c){a(c).attr(\"data-slick-index\",b)}),e.$slidesCache=e.$slides,e.reinit()},b.prototype.animateHeight=function(){var a=this;if(1===a.options.slidesToShow&&a.options.adaptiveHeight===!0&&a.options.vertical===!1){var b=a.$slides.eq(a.currentSlide).outerHeight(!0);a.$list.animate({height:b},a.options.speed)}},b.prototype.animateSlide=function(b,c){var d={},e=this;e.animateHeight(),e.options.rtl===!0&&e.options.vertical===!1&&(b=-b),e.transformsEnabled===!1?e.options.vertical===!1?e.$slideTrack.animate({left:b},e.options.speed,e.options.easing,c):e.$slideTrack.animate({top:b},e.options.speed,e.options.easing,c):e.cssTransitions===!1?(e.options.rtl===!0&&(e.currentLeft=-e.currentLeft),a({animStart:e.currentLeft}).animate({animStart:b},{duration:e.options.speed,easing:e.options.easing,step:function(a){a=Math.ceil(a),e.options.vertical===!1?(d[e.animType]=\"translate(\"+a+\"px, 0px)\",e.$slideTrack.css(d)):(d[e.animType]=\"translate(0px,\"+a+\"px)\",e.$slideTrack.css(d))},complete:function(){c&&c.call()}})):(e.applyTransition(),b=Math.ceil(b),d[e.animType]=e.options.vertical===!1?\"translate3d(\"+b+\"px, 0px, 0px)\":\"translate3d(0px,\"+b+\"px, 0px)\",e.$slideTrack.css(d),c&&setTimeout(function(){e.disableTransition(),c.call()},e.options.speed))},b.prototype.asNavFor=function(b){var c=this,d=c.options.asNavFor;d&&null!==d&&(d=a(d).not(c.$slider)),null!==d&&\"object\"==typeof d&&d.each(function(){var c=a(this).slick(\"getSlick\");c.unslicked||c.slideHandler(b,!0)})},b.prototype.applyTransition=function(a){var b=this,c={};c[b.transitionType]=b.options.fade===!1?b.transformType+\" \"+b.options.speed+\"ms \"+b.options.cssEase:\"opacity \"+b.options.speed+\"ms \"+b.options.cssEase,b.options.fade===!1?b.$slideTrack.css(c):b.$slides.eq(a).css(c)},b.prototype.autoPlay=function(){var a=this;a.autoPlayTimer&&clearInterval(a.autoPlayTimer),a.slideCount>a.options.slidesToShow&&a.paused!==!0&&(a.autoPlayTimer=setInterval(a.autoPlayIterator,a.options.autoplaySpeed))},b.prototype.autoPlayClear=function(){var a=this;a.autoPlayTimer&&clearInterval(a.autoPlayTimer)},b.prototype.autoPlayIterator=function(){var a=this;a.options.infinite===!1?1===a.direction?(a.currentSlide+1===a.slideCount-1&&(a.direction=0),a.slideHandler(a.currentSlide+a.options.slidesToScroll)):(0===a.currentSlide-1&&(a.direction=1),a.slideHandler(a.currentSlide-a.options.slidesToScroll)):a.slideHandler(a.currentSlide+a.options.slidesToScroll)},b.prototype.buildArrows=function(){var b=this;b.options.arrows===!0&&b.slideCount>b.options.slidesToShow&&(b.$prevArrow=a(b.options.prevArrow),b.$nextArrow=a(b.options.nextArrow),b.htmlExpr.test(b.options.prevArrow)&&b.$prevArrow.appendTo(b.options.appendArrows),b.htmlExpr.test(b.options.nextArrow)&&b.$nextArrow.appendTo(b.options.appendArrows),b.options.infinite!==!0&&b.$prevArrow.addClass(\"slick-disabled\"))},b.prototype.buildDots=function(){var c,d,b=this;if(b.options.dots===!0&&b.slideCount>b.options.slidesToShow){for(d='<ul class=\"'+b.options.dotsClass+'\">',c=0;c<=b.getDotCount();c+=1)d+=\"<li>\"+b.options.customPaging.call(this,b,c)+\"</li>\";d+=\"</ul>\",b.$dots=a(d).appendTo(b.options.appendDots),b.$dots.find(\"li\").first().addClass(\"slick-active\").attr(\"aria-hidden\",\"false\")}},b.prototype.buildOut=function(){var b=this;b.$slides=b.$slider.children(\":not(.slick-cloned)\").addClass(\"slick-slide\"),b.slideCount=b.$slides.length,b.$slides.each(function(b,c){a(c).attr(\"data-slick-index\",b).data(\"originalStyling\",a(c).attr(\"style\")||\"\")}),b.$slidesCache=b.$slides,b.$slider.addClass(\"slick-slider\"),b.$slideTrack=0===b.slideCount?a('<div class=\"slick-track\"/>').appendTo(b.$slider):b.$slides.wrapAll('<div class=\"slick-track\"/>').parent(),b.$list=b.$slideTrack.wrap('<div aria-live=\"polite\" class=\"slick-list\"/>').parent(),b.$slideTrack.css(\"opacity\",0),(b.options.centerMode===!0||b.options.swipeToSlide===!0)&&(b.options.slidesToScroll=1),a(\"img[data-lazy]\",b.$slider).not(\"[src]\").addClass(\"slick-loading\"),b.setupInfinite(),b.buildArrows(),b.buildDots(),b.updateDots(),b.options.accessibility===!0&&b.$list.prop(\"tabIndex\",0),b.setSlideClasses(\"number\"==typeof this.currentSlide?this.currentSlide:0),b.options.draggable===!0&&b.$list.addClass(\"draggable\")},b.prototype.buildRows=function(){var b,c,d,e,f,g,h,a=this;if(e=document.createDocumentFragment(),g=a.$slider.children(),a.options.rows>1){for(h=a.options.slidesPerRow*a.options.rows,f=Math.ceil(g.length/h),b=0;f>b;b++){var i=document.createElement(\"div\");for(c=0;c<a.options.rows;c++){var j=document.createElement(\"div\");for(d=0;d<a.options.slidesPerRow;d++){var k=b*h+(c*a.options.slidesPerRow+d);g.get(k)&&j.appendChild(g.get(k))}i.appendChild(j)}e.appendChild(i)}a.$slider.html(e),a.$slider.children().children().children().css({width:100/a.options.slidesPerRow+\"%\",display:\"inline-block\"})}},b.prototype.checkResponsive=function(b){var d,e,f,c=this,g=!1,h=c.$slider.width(),i=window.innerWidth||a(window).width();if(\"window\"===c.respondTo?f=i:\"slider\"===c.respondTo?f=h:\"min\"===c.respondTo&&(f=Math.min(i,h)),c.originalSettings.responsive&&c.originalSettings.responsive.length>-1&&null!==c.originalSettings.responsive){e=null;for(d in c.breakpoints)c.breakpoints.hasOwnProperty(d)&&(c.originalSettings.mobileFirst===!1?f<c.breakpoints[d]&&(e=c.breakpoints[d]):f>c.breakpoints[d]&&(e=c.breakpoints[d]));null!==e?null!==c.activeBreakpoint?e!==c.activeBreakpoint&&(c.activeBreakpoint=e,\"unslick\"===c.breakpointSettings[e]?c.unslick(e):(c.options=a.extend({},c.originalSettings,c.breakpointSettings[e]),b===!0&&(c.currentSlide=c.options.initialSlide),c.refresh(b)),g=e):(c.activeBreakpoint=e,\"unslick\"===c.breakpointSettings[e]?c.unslick(e):(c.options=a.extend({},c.originalSettings,c.breakpointSettings[e]),b===!0&&(c.currentSlide=c.options.initialSlide),c.refresh(b)),g=e):null!==c.activeBreakpoint&&(c.activeBreakpoint=null,c.options=c.originalSettings,b===!0&&(c.currentSlide=c.options.initialSlide),c.refresh(b),g=e),b||g===!1||c.$slider.trigger(\"breakpoint\",[c,g])}},b.prototype.changeSlide=function(b,c){var f,g,h,d=this,e=a(b.target);switch(e.is(\"a\")&&b.preventDefault(),e.is(\"li\")||(e=e.closest(\"li\")),h=0!==d.slideCount%d.options.slidesToScroll,f=h?0:(d.slideCount-d.currentSlide)%d.options.slidesToScroll,b.data.message){case\"previous\":g=0===f?d.options.slidesToScroll:d.options.slidesToShow-f,d.slideCount>d.options.slidesToShow&&d.slideHandler(d.currentSlide-g,!1,c);break;case\"next\":g=0===f?d.options.slidesToScroll:f,d.slideCount>d.options.slidesToShow&&d.slideHandler(d.currentSlide+g,!1,c);break;case\"index\":var i=0===b.data.index?0:b.data.index||e.index()*d.options.slidesToScroll;d.slideHandler(d.checkNavigable(i),!1,c),e.children().trigger(\"focus\");break;default:return}},b.prototype.checkNavigable=function(a){var c,d,b=this;if(c=b.getNavigableIndexes(),d=0,a>c[c.length-1])a=c[c.length-1];else for(var e in c){if(a<c[e]){a=d;break}d=c[e]}return a},b.prototype.cleanUpEvents=function(){var b=this;b.options.dots&&null!==b.$dots&&(a(\"li\",b.$dots).off(\"click.slick\",b.changeSlide),b.options.pauseOnDotsHover===!0&&b.options.autoplay===!0&&a(\"li\",b.$dots).off(\"mouseenter.slick\",a.proxy(b.setPaused,b,!0)).off(\"mouseleave.slick\",a.proxy(b.setPaused,b,!1))),b.options.arrows===!0&&b.slideCount>b.options.slidesToShow&&(b.$prevArrow&&b.$prevArrow.off(\"click.slick\",b.changeSlide),b.$nextArrow&&b.$nextArrow.off(\"click.slick\",b.changeSlide)),b.$list.off(\"touchstart.slick mousedown.slick\",b.swipeHandler),b.$list.off(\"touchmove.slick mousemove.slick\",b.swipeHandler),b.$list.off(\"touchend.slick mouseup.slick\",b.swipeHandler),b.$list.off(\"touchcancel.slick mouseleave.slick\",b.swipeHandler),b.$list.off(\"click.slick\",b.clickHandler),a(document).off(b.visibilityChange,b.visibility),b.$list.off(\"mouseenter.slick\",a.proxy(b.setPaused,b,!0)),b.$list.off(\"mouseleave.slick\",a.proxy(b.setPaused,b,!1)),b.options.accessibility===!0&&b.$list.off(\"keydown.slick\",b.keyHandler),b.options.focusOnSelect===!0&&a(b.$slideTrack).children().off(\"click.slick\",b.selectHandler),a(window).off(\"orientationchange.slick.slick-\"+b.instanceUid,b.orientationChange),a(window).off(\"resize.slick.slick-\"+b.instanceUid,b.resize),a(\"[draggable!=true]\",b.$slideTrack).off(\"dragstart\",b.preventDefault),a(window).off(\"load.slick.slick-\"+b.instanceUid,b.setPosition),a(document).off(\"ready.slick.slick-\"+b.instanceUid,b.setPosition)},b.prototype.cleanUpRows=function(){var b,a=this;a.options.rows>1&&(b=a.$slides.children().children(),b.removeAttr(\"style\"),a.$slider.html(b))},b.prototype.clickHandler=function(a){var b=this;b.shouldClick===!1&&(a.stopImmediatePropagation(),a.stopPropagation(),a.preventDefault())},b.prototype.destroy=function(b){var c=this;c.autoPlayClear(),c.touchObject={},c.cleanUpEvents(),a(\".slick-cloned\",c.$slider).detach(),c.$dots&&c.$dots.remove(),c.$prevArrow&&\"object\"!=typeof c.options.prevArrow&&c.$prevArrow.remove(),c.$nextArrow&&\"object\"!=typeof c.options.nextArrow&&c.$nextArrow.remove(),c.$slides&&(c.$slides.removeClass(\"slick-slide slick-active slick-center slick-visible\").removeAttr(\"aria-hidden\").removeAttr(\"data-slick-index\").each(function(){a(this).attr(\"style\",a(this).data(\"originalStyling\"))}),c.$slideTrack.children(this.options.slide).detach(),c.$slideTrack.detach(),c.$list.detach(),c.$slider.append(c.$slides)),c.cleanUpRows(),c.$slider.removeClass(\"slick-slider\"),c.$slider.removeClass(\"slick-initialized\"),c.unslicked=!0,b||c.$slider.trigger(\"destroy\",[c])},b.prototype.disableTransition=function(a){var b=this,c={};c[b.transitionType]=\"\",b.options.fade===!1?b.$slideTrack.css(c):b.$slides.eq(a).css(c)},b.prototype.fadeSlide=function(a,b){var c=this;c.cssTransitions===!1?(c.$slides.eq(a).css({zIndex:1e3}),c.$slides.eq(a).animate({opacity:1},c.options.speed,c.options.easing,b)):(c.applyTransition(a),c.$slides.eq(a).css({opacity:1,zIndex:1e3}),b&&setTimeout(function(){c.disableTransition(a),b.call()},c.options.speed))},b.prototype.filterSlides=b.prototype.slickFilter=function(a){var b=this;null!==a&&(b.unload(),b.$slideTrack.children(this.options.slide).detach(),b.$slidesCache.filter(a).appendTo(b.$slideTrack),b.reinit())},b.prototype.getCurrent=b.prototype.slickCurrentSlide=function(){var a=this;return a.currentSlide},b.prototype.getDotCount=function(){var a=this,b=0,c=0,d=0;if(a.options.infinite===!0)for(;b<a.slideCount;)++d,b=c+a.options.slidesToShow,c+=a.options.slidesToScroll<=a.options.slidesToShow?a.options.slidesToScroll:a.options.slidesToShow;else if(a.options.centerMode===!0)d=a.slideCount;else for(;b<a.slideCount;)++d,b=c+a.options.slidesToShow,c+=a.options.slidesToScroll<=a.options.slidesToShow?a.options.slidesToScroll:a.options.slidesToShow;return d-1},b.prototype.getLeft=function(a){var c,d,f,b=this,e=0;return b.slideOffset=0,d=b.$slides.first().outerHeight(),b.options.infinite===!0?(b.slideCount>b.options.slidesToShow&&(b.slideOffset=-1*b.slideWidth*b.options.slidesToShow,e=-1*d*b.options.slidesToShow),0!==b.slideCount%b.options.slidesToScroll&&a+b.options.slidesToScroll>b.slideCount&&b.slideCount>b.options.slidesToShow&&(a>b.slideCount?(b.slideOffset=-1*(b.options.slidesToShow-(a-b.slideCount))*b.slideWidth,e=-1*(b.options.slidesToShow-(a-b.slideCount))*d):(b.slideOffset=-1*b.slideCount%b.options.slidesToScroll*b.slideWidth,e=-1*b.slideCount%b.options.slidesToScroll*d))):a+b.options.slidesToShow>b.slideCount&&(b.slideOffset=(a+b.options.slidesToShow-b.slideCount)*b.slideWidth,e=(a+b.options.slidesToShow-b.slideCount)*d),b.slideCount<=b.options.slidesToShow&&(b.slideOffset=0,e=0),b.options.centerMode===!0&&b.options.infinite===!0?b.slideOffset+=b.slideWidth*Math.floor(b.options.slidesToShow/2)-b.slideWidth:b.options.centerMode===!0&&(b.slideOffset=0,b.slideOffset+=b.slideWidth*Math.floor(b.options.slidesToShow/2)),c=b.options.vertical===!1?-1*a*b.slideWidth+b.slideOffset:-1*a*d+e,b.options.variableWidth===!0&&(f=b.slideCount<=b.options.slidesToShow||b.options.infinite===!1?b.$slideTrack.children(\".slick-slide\").eq(a):b.$slideTrack.children(\".slick-slide\").eq(a+b.options.slidesToShow),c=f[0]?-1*f[0].offsetLeft:0,b.options.centerMode===!0&&(f=b.options.infinite===!1?b.$slideTrack.children(\".slick-slide\").eq(a):b.$slideTrack.children(\".slick-slide\").eq(a+b.options.slidesToShow+1),c=f[0]?-1*f[0].offsetLeft:0,c+=(b.$list.width()-f.outerWidth())/2)),c},b.prototype.getOption=b.prototype.slickGetOption=function(a){var b=this;return b.options[a]},b.prototype.getNavigableIndexes=function(){var e,a=this,b=0,c=0,d=[];for(a.options.infinite===!1?e=a.slideCount:(b=-1*a.options.slidesToScroll,c=-1*a.options.slidesToScroll,e=2*a.slideCount);e>b;)d.push(b),b=c+a.options.slidesToScroll,c+=a.options.slidesToScroll<=a.options.slidesToShow?a.options.slidesToScroll:a.options.slidesToShow;return d},b.prototype.getSlick=function(){return this},b.prototype.getSlideCount=function(){var c,d,e,b=this;return e=b.options.centerMode===!0?b.slideWidth*Math.floor(b.options.slidesToShow/2):0,b.options.swipeToSlide===!0?(b.$slideTrack.find(\".slick-slide\").each(function(c,f){return f.offsetLeft-e+a(f).outerWidth()/2>-1*b.swipeLeft?(d=f,!1):void 0}),c=Math.abs(a(d).attr(\"data-slick-index\")-b.currentSlide)||1):b.options.slidesToScroll},b.prototype.goTo=b.prototype.slickGoTo=function(a,b){var c=this;c.changeSlide({data:{message:\"index\",index:parseInt(a)}},b)},b.prototype.init=function(b){var c=this;a(c.$slider).hasClass(\"slick-initialized\")||(a(c.$slider).addClass(\"slick-initialized\"),c.buildRows(),c.buildOut(),c.setProps(),c.startLoad(),c.loadSlider(),c.initializeEvents(),c.updateArrows(),c.updateDots()),b&&c.$slider.trigger(\"init\",[c])},b.prototype.initArrowEvents=function(){var a=this;a.options.arrows===!0&&a.slideCount>a.options.slidesToShow&&(a.$prevArrow.on(\"click.slick\",{message:\"previous\"},a.changeSlide),a.$nextArrow.on(\"click.slick\",{message:\"next\"},a.changeSlide))},b.prototype.initDotEvents=function(){var b=this;b.options.dots===!0&&b.slideCount>b.options.slidesToShow&&a(\"li\",b.$dots).on(\"click.slick\",{message:\"index\"},b.changeSlide),b.options.dots===!0&&b.options.pauseOnDotsHover===!0&&b.options.autoplay===!0&&a(\"li\",b.$dots).on(\"mouseenter.slick\",a.proxy(b.setPaused,b,!0)).on(\"mouseleave.slick\",a.proxy(b.setPaused,b,!1))},b.prototype.initializeEvents=function(){var b=this;b.initArrowEvents(),b.initDotEvents(),b.$list.on(\"touchstart.slick mousedown.slick\",{action:\"start\"},b.swipeHandler),b.$list.on(\"touchmove.slick mousemove.slick\",{action:\"move\"},b.swipeHandler),b.$list.on(\"touchend.slick mouseup.slick\",{action:\"end\"},b.swipeHandler),b.$list.on(\"touchcancel.slick mouseleave.slick\",{action:\"end\"},b.swipeHandler),b.$list.on(\"click.slick\",b.clickHandler),a(document).on(b.visibilityChange,a.proxy(b.visibility,b)),b.$list.on(\"mouseenter.slick\",a.proxy(b.setPaused,b,!0)),b.$list.on(\"mouseleave.slick\",a.proxy(b.setPaused,b,!1)),b.options.accessibility===!0&&b.$list.on(\"keydown.slick\",b.keyHandler),b.options.focusOnSelect===!0&&a(b.$slideTrack).children().on(\"click.slick\",b.selectHandler),a(window).on(\"orientationchange.slick.slick-\"+b.instanceUid,a.proxy(b.orientationChange,b)),a(window).on(\"resize.slick.slick-\"+b.instanceUid,a.proxy(b.resize,b)),a(\"[draggable!=true]\",b.$slideTrack).on(\"dragstart\",b.preventDefault),a(window).on(\"load.slick.slick-\"+b.instanceUid,b.setPosition),a(document).on(\"ready.slick.slick-\"+b.instanceUid,b.setPosition)},b.prototype.initUI=function(){var a=this;a.options.arrows===!0&&a.slideCount>a.options.slidesToShow&&(a.$prevArrow.show(),a.$nextArrow.show()),a.options.dots===!0&&a.slideCount>a.options.slidesToShow&&a.$dots.show(),a.options.autoplay===!0&&a.autoPlay()},b.prototype.keyHandler=function(a){var b=this;37===a.keyCode&&b.options.accessibility===!0?b.changeSlide({data:{message:\"previous\"}}):39===a.keyCode&&b.options.accessibility===!0&&b.changeSlide({data:{message:\"next\"}})},b.prototype.lazyLoad=function(){function g(b){a(\"img[data-lazy]\",b).each(function(){var b=a(this),c=a(this).attr(\"data-lazy\"),d=document.createElement(\"img\");d.onload=function(){b.animate({opacity:1},200)},d.src=c,b.css({opacity:0}).attr(\"src\",c).removeAttr(\"data-lazy\").removeClass(\"slick-loading\")})}var c,d,e,f,b=this;b.options.centerMode===!0?b.options.infinite===!0?(e=b.currentSlide+(b.options.slidesToShow/2+1),f=e+b.options.slidesToShow+2):(e=Math.max(0,b.currentSlide-(b.options.slidesToShow/2+1)),f=2+(b.options.slidesToShow/2+1)+b.currentSlide):(e=b.options.infinite?b.options.slidesToShow+b.currentSlide:b.currentSlide,f=e+b.options.slidesToShow,b.options.fade===!0&&(e>0&&e--,f<=b.slideCount&&f++)),c=b.$slider.find(\".slick-slide\").slice(e,f),g(c),b.slideCount<=b.options.slidesToShow?(d=b.$slider.find(\".slick-slide\"),g(d)):b.currentSlide>=b.slideCount-b.options.slidesToShow?(d=b.$slider.find(\".slick-cloned\").slice(0,b.options.slidesToShow),g(d)):0===b.currentSlide&&(d=b.$slider.find(\".slick-cloned\").slice(-1*b.options.slidesToShow),g(d))},b.prototype.loadSlider=function(){var a=this;a.setPosition(),a.$slideTrack.css({opacity:1}),a.$slider.removeClass(\"slick-loading\"),a.initUI(),\"progressive\"===a.options.lazyLoad&&a.progressiveLazyLoad()},b.prototype.next=b.prototype.slickNext=function(){var a=this;a.changeSlide({data:{message:\"next\"}})},b.prototype.orientationChange=function(){var a=this;a.checkResponsive(),a.setPosition()},b.prototype.pause=b.prototype.slickPause=function(){var a=this;a.autoPlayClear(),a.paused=!0},b.prototype.play=b.prototype.slickPlay=function(){var a=this;a.paused=!1,a.autoPlay()},b.prototype.postSlide=function(a){var b=this;b.$slider.trigger(\"afterChange\",[b,a]),b.animating=!1,b.setPosition(),b.swipeLeft=null,b.options.autoplay===!0&&b.paused===!1&&b.autoPlay()},b.prototype.prev=b.prototype.slickPrev=function(){var a=this;a.changeSlide({data:{message:\"previous\"}})},b.prototype.preventDefault=function(a){a.preventDefault()},b.prototype.progressiveLazyLoad=function(){var c,d,b=this;c=a(\"img[data-lazy]\",b.$slider).length,c>0&&(d=a(\"img[data-lazy]\",b.$slider).first(),d.attr(\"src\",d.attr(\"data-lazy\")).removeClass(\"slick-loading\").load(function(){d.removeAttr(\"data-lazy\"),b.progressiveLazyLoad(),b.options.adaptiveHeight===!0&&b.setPosition()}).error(function(){d.removeAttr(\"data-lazy\"),b.progressiveLazyLoad()}))},b.prototype.refresh=function(b){var c=this,d=c.currentSlide;c.destroy(!0),a.extend(c,c.initials),c.init(),b||c.changeSlide({data:{message:\"index\",index:d}},!1)},b.prototype.reinit=function(){var b=this;b.$slides=b.$slideTrack.children(b.options.slide).addClass(\"slick-slide\"),b.slideCount=b.$slides.length,b.currentSlide>=b.slideCount&&0!==b.currentSlide&&(b.currentSlide=b.currentSlide-b.options.slidesToScroll),b.slideCount<=b.options.slidesToShow&&(b.currentSlide=0),b.setProps(),b.setupInfinite(),b.buildArrows(),b.updateArrows(),b.initArrowEvents(),b.buildDots(),b.updateDots(),b.initDotEvents(),b.options.focusOnSelect===!0&&a(b.$slideTrack).children().on(\"click.slick\",b.selectHandler),b.setSlideClasses(0),b.setPosition(),b.$slider.trigger(\"reInit\",[b])},b.prototype.resize=function(){var b=this;a(window).width()!==b.windowWidth&&(clearTimeout(b.windowDelay),b.windowDelay=window.setTimeout(function(){b.windowWidth=a(window).width(),b.checkResponsive(),b.unslicked||b.setPosition()},50))},b.prototype.removeSlide=b.prototype.slickRemove=function(a,b,c){var d=this;return\"boolean\"==typeof a?(b=a,a=b===!0?0:d.slideCount-1):a=b===!0?--a:a,d.slideCount<1||0>a||a>d.slideCount-1?!1:(d.unload(),c===!0?d.$slideTrack.children().remove():d.$slideTrack.children(this.options.slide).eq(a).remove(),d.$slides=d.$slideTrack.children(this.options.slide),d.$slideTrack.children(this.options.slide).detach(),d.$slideTrack.append(d.$slides),d.$slidesCache=d.$slides,d.reinit(),void 0)},b.prototype.setCSS=function(a){var d,e,b=this,c={};b.options.rtl===!0&&(a=-a),d=\"left\"==b.positionProp?Math.ceil(a)+\"px\":\"0px\",e=\"top\"==b.positionProp?Math.ceil(a)+\"px\":\"0px\",c[b.positionProp]=a,b.transformsEnabled===!1?b.$slideTrack.css(c):(c={},b.cssTransitions===!1?(c[b.animType]=\"translate(\"+d+\", \"+e+\")\",b.$slideTrack.css(c)):(c[b.animType]=\"translate3d(\"+d+\", \"+e+\", 0px)\",b.$slideTrack.css(c)))},b.prototype.setDimensions=function(){var a=this;a.options.vertical===!1?a.options.centerMode===!0&&a.$list.css({padding:\"0px \"+a.options.centerPadding}):(a.$list.height(a.$slides.first().outerHeight(!0)*a.options.slidesToShow),a.options.centerMode===!0&&a.$list.css({padding:a.options.centerPadding+\" 0px\"})),a.listWidth=a.$list.width(),a.listHeight=a.$list.height(),a.options.vertical===!1&&a.options.variableWidth===!1?(a.slideWidth=Math.ceil(a.listWidth/a.options.slidesToShow),a.$slideTrack.width(Math.ceil(a.slideWidth*a.$slideTrack.children(\".slick-slide\").length))):a.options.variableWidth===!0?a.$slideTrack.width(5e3*a.slideCount):(a.slideWidth=Math.ceil(a.listWidth),a.$slideTrack.height(Math.ceil(a.$slides.first().outerHeight(!0)*a.$slideTrack.children(\".slick-slide\").length)));var b=a.$slides.first().outerWidth(!0)-a.$slides.first().width();a.options.variableWidth===!1&&a.$slideTrack.children(\".slick-slide\").width(a.slideWidth-b)},b.prototype.setFade=function(){var c,b=this;b.$slides.each(function(d,e){c=-1*b.slideWidth*d,b.options.rtl===!0?a(e).css({position:\"relative\",right:c,top:0,zIndex:800,opacity:0}):a(e).css({position:\"relative\",left:c,top:0,zIndex:800,opacity:0})}),b.$slides.eq(b.currentSlide).css({zIndex:900,opacity:1})},b.prototype.setHeight=function(){var a=this;if(1===a.options.slidesToShow&&a.options.adaptiveHeight===!0&&a.options.vertical===!1){var b=a.$slides.eq(a.currentSlide).outerHeight(!0);a.$list.css(\"height\",b)}},b.prototype.setOption=b.prototype.slickSetOption=function(a,b,c){var d=this;d.options[a]=b,c===!0&&(d.unload(),d.reinit())},b.prototype.setPosition=function(){var a=this;a.setDimensions(),a.setHeight(),a.options.fade===!1?a.setCSS(a.getLeft(a.currentSlide)):a.setFade(),a.$slider.trigger(\"setPosition\",[a])},b.prototype.setProps=function(){var a=this,b=document.body.style;a.positionProp=a.options.vertical===!0?\"top\":\"left\",\"top\"===a.positionProp?a.$slider.addClass(\"slick-vertical\"):a.$slider.removeClass(\"slick-vertical\"),(void 0!==b.WebkitTransition||void 0!==b.MozTransition||void 0!==b.msTransition)&&a.options.useCSS===!0&&(a.cssTransitions=!0),void 0!==b.OTransform&&(a.animType=\"OTransform\",a.transformType=\"-o-transform\",a.transitionType=\"OTransition\",void 0===b.perspectiveProperty&&void 0===b.webkitPerspective&&(a.animType=!1)),void 0!==b.MozTransform&&(a.animType=\"MozTransform\",a.transformType=\"-moz-transform\",a.transitionType=\"MozTransition\",void 0===b.perspectiveProperty&&void 0===b.MozPerspective&&(a.animType=!1)),void 0!==b.webkitTransform&&(a.animType=\"webkitTransform\",a.transformType=\"-webkit-transform\",a.transitionType=\"webkitTransition\",void 0===b.perspectiveProperty&&void 0===b.webkitPerspective&&(a.animType=!1)),void 0!==b.msTransform&&(a.animType=\"msTransform\",a.transformType=\"-ms-transform\",a.transitionType=\"msTransition\",void 0===b.msTransform&&(a.animType=!1)),void 0!==b.transform&&a.animType!==!1&&(a.animType=\"transform\",a.transformType=\"transform\",a.transitionType=\"transition\"),a.transformsEnabled=null!==a.animType&&a.animType!==!1},b.prototype.setSlideClasses=function(a){var c,d,e,f,b=this;b.$slider.find(\".slick-slide\").removeClass(\"slick-active\").attr(\"aria-hidden\",\"true\").removeClass(\"slick-center\"),d=b.$slider.find(\".slick-slide\"),b.options.centerMode===!0?(c=Math.floor(b.options.slidesToShow/2),b.options.infinite===!0&&(a>=c&&a<=b.slideCount-1-c?b.$slides.slice(a-c,a+c+1).addClass(\"slick-active\").attr(\"aria-hidden\",\"false\"):(e=b.options.slidesToShow+a,d.slice(e-c+1,e+c+2).addClass(\"slick-active\").attr(\"aria-hidden\",\"false\")),0===a?d.eq(d.length-1-b.options.slidesToShow).addClass(\"slick-center\"):a===b.slideCount-1&&d.eq(b.options.slidesToShow).addClass(\"slick-center\")),b.$slides.eq(a).addClass(\"slick-center\")):a>=0&&a<=b.slideCount-b.options.slidesToShow?b.$slides.slice(a,a+b.options.slidesToShow).addClass(\"slick-active\").attr(\"aria-hidden\",\"false\"):d.length<=b.options.slidesToShow?d.addClass(\"slick-active\").attr(\"aria-hidden\",\"false\"):(f=b.slideCount%b.options.slidesToShow,e=b.options.infinite===!0?b.options.slidesToShow+a:a,b.options.slidesToShow==b.options.slidesToScroll&&b.slideCount-a<b.options.slidesToShow?d.slice(e-(b.options.slidesToShow-f),e+f).addClass(\"slick-active\").attr(\"aria-hidden\",\"false\"):d.slice(e,e+b.options.slidesToShow).addClass(\"slick-active\").attr(\"aria-hidden\",\"false\")),\"ondemand\"===b.options.lazyLoad&&b.lazyLoad()},b.prototype.setupInfinite=function(){var c,d,e,b=this;if(b.options.fade===!0&&(b.options.centerMode=!1),b.options.infinite===!0&&b.options.fade===!1&&(d=null,b.slideCount>b.options.slidesToShow)){for(e=b.options.centerMode===!0?b.options.slidesToShow+1:b.options.slidesToShow,c=b.slideCount;c>b.slideCount-e;c-=1)d=c-1,a(b.$slides[d]).clone(!0).attr(\"id\",\"\").attr(\"data-slick-index\",d-b.slideCount).prependTo(b.$slideTrack).addClass(\"slick-cloned\");for(c=0;e>c;c+=1)d=c,a(b.$slides[d]).clone(!0).attr(\"id\",\"\").attr(\"data-slick-index\",d+b.slideCount).appendTo(b.$slideTrack).addClass(\"slick-cloned\");b.$slideTrack.find(\".slick-cloned\").find(\"[id]\").each(function(){a(this).attr(\"id\",\"\")})}},b.prototype.setPaused=function(a){var b=this;b.options.autoplay===!0&&b.options.pauseOnHover===!0&&(b.paused=a,a?b.autoPlayClear():b.autoPlay())},b.prototype.selectHandler=function(b){var c=this,d=a(b.target).is(\".slick-slide\")?a(b.target):a(b.target).parents(\".slick-slide\"),e=parseInt(d.attr(\"data-slick-index\"));return e||(e=0),c.slideCount<=c.options.slidesToShow?(c.$slider.find(\".slick-slide\").removeClass(\"slick-active\").attr(\"aria-hidden\",\"true\"),c.$slides.eq(e).addClass(\"slick-active\").attr(\"aria-hidden\",\"false\"),c.options.centerMode===!0&&(c.$slider.find(\".slick-slide\").removeClass(\"slick-center\"),c.$slides.eq(e).addClass(\"slick-center\")),c.asNavFor(e),void 0):(c.slideHandler(e),void 0)},b.prototype.slideHandler=function(a,b,c){var d,e,f,g,h=null,i=this;return b=b||!1,i.animating===!0&&i.options.waitForAnimate===!0||i.options.fade===!0&&i.currentSlide===a||i.slideCount<=i.options.slidesToShow?void 0:(b===!1&&i.asNavFor(a),d=a,h=i.getLeft(d),g=i.getLeft(i.currentSlide),i.currentLeft=null===i.swipeLeft?g:i.swipeLeft,i.options.infinite===!1&&i.options.centerMode===!1&&(0>a||a>i.getDotCount()*i.options.slidesToScroll)?(i.options.fade===!1&&(d=i.currentSlide,c!==!0?i.animateSlide(g,function(){i.postSlide(d)}):i.postSlide(d)),void 0):i.options.infinite===!1&&i.options.centerMode===!0&&(0>a||a>i.slideCount-i.options.slidesToScroll)?(i.options.fade===!1&&(d=i.currentSlide,c!==!0?i.animateSlide(g,function(){i.postSlide(d)}):i.postSlide(d)),void 0):(i.options.autoplay===!0&&clearInterval(i.autoPlayTimer),e=0>d?0!==i.slideCount%i.options.slidesToScroll?i.slideCount-i.slideCount%i.options.slidesToScroll:i.slideCount+d:d>=i.slideCount?0!==i.slideCount%i.options.slidesToScroll?0:d-i.slideCount:d,i.animating=!0,i.$slider.trigger(\"beforeChange\",[i,i.currentSlide,e]),f=i.currentSlide,i.currentSlide=e,i.setSlideClasses(i.currentSlide),i.updateDots(),i.updateArrows(),i.options.fade===!0?(c!==!0?i.fadeSlide(e,function(){i.postSlide(e)}):i.postSlide(e),i.animateHeight(),void 0):(c!==!0?i.animateSlide(h,function(){i.postSlide(e)}):i.postSlide(e),void 0)))},b.prototype.startLoad=function(){var a=this;a.options.arrows===!0&&a.slideCount>a.options.slidesToShow&&(a.$prevArrow.hide(),a.$nextArrow.hide()),a.options.dots===!0&&a.slideCount>a.options.slidesToShow&&a.$dots.hide(),a.$slider.addClass(\"slick-loading\")},b.prototype.swipeDirection=function(){var a,b,c,d,e=this;return a=e.touchObject.startX-e.touchObject.curX,b=e.touchObject.startY-e.touchObject.curY,c=Math.atan2(b,a),d=Math.round(180*c/Math.PI),0>d&&(d=360-Math.abs(d)),45>=d&&d>=0?e.options.rtl===!1?\"left\":\"right\":360>=d&&d>=315?e.options.rtl===!1?\"left\":\"right\":d>=135&&225>=d?e.options.rtl===!1?\"right\":\"left\":e.options.verticalSwiping===!0?d>=35&&135>=d?\"left\":\"right\":\"vertical\"},b.prototype.swipeEnd=function(){var c,b=this;if(b.dragging=!1,b.shouldClick=b.touchObject.swipeLength>10?!1:!0,void 0===b.touchObject.curX)return!1;if(b.touchObject.edgeHit===!0&&b.$slider.trigger(\"edge\",[b,b.swipeDirection()]),b.touchObject.swipeLength>=b.touchObject.minSwipe)switch(b.swipeDirection()){case\"left\":c=b.options.swipeToSlide?b.checkNavigable(b.currentSlide+b.getSlideCount()):b.currentSlide+b.getSlideCount(),b.slideHandler(c),b.currentDirection=0,b.touchObject={},b.$slider.trigger(\"swipe\",[b,\"left\"]);break;case\"right\":c=b.options.swipeToSlide?b.checkNavigable(b.currentSlide-b.getSlideCount()):b.currentSlide-b.getSlideCount(),b.slideHandler(c),b.currentDirection=1,b.touchObject={},b.$slider.trigger(\"swipe\",[b,\"right\"])\n}else b.touchObject.startX!==b.touchObject.curX&&(b.slideHandler(b.currentSlide),b.touchObject={})},b.prototype.swipeHandler=function(a){var b=this;if(!(b.options.swipe===!1||\"ontouchend\"in document&&b.options.swipe===!1||b.options.draggable===!1&&-1!==a.type.indexOf(\"mouse\")))switch(b.touchObject.fingerCount=a.originalEvent&&void 0!==a.originalEvent.touches?a.originalEvent.touches.length:1,b.touchObject.minSwipe=b.listWidth/b.options.touchThreshold,b.options.verticalSwiping===!0&&(b.touchObject.minSwipe=b.listHeight/b.options.touchThreshold),a.data.action){case\"start\":b.swipeStart(a);break;case\"move\":b.swipeMove(a);break;case\"end\":b.swipeEnd(a)}},b.prototype.swipeMove=function(a){var d,e,f,g,h,b=this;return h=void 0!==a.originalEvent?a.originalEvent.touches:null,!b.dragging||h&&1!==h.length?!1:(d=b.getLeft(b.currentSlide),b.touchObject.curX=void 0!==h?h[0].pageX:a.clientX,b.touchObject.curY=void 0!==h?h[0].pageY:a.clientY,b.touchObject.swipeLength=Math.round(Math.sqrt(Math.pow(b.touchObject.curX-b.touchObject.startX,2))),b.options.verticalSwiping===!0&&(b.touchObject.swipeLength=Math.round(Math.sqrt(Math.pow(b.touchObject.curY-b.touchObject.startY,2)))),e=b.swipeDirection(),\"vertical\"!==e?(void 0!==a.originalEvent&&b.touchObject.swipeLength>4&&a.preventDefault(),g=(b.options.rtl===!1?1:-1)*(b.touchObject.curX>b.touchObject.startX?1:-1),b.options.verticalSwiping===!0&&(g=b.touchObject.curY>b.touchObject.startY?1:-1),f=b.touchObject.swipeLength,b.touchObject.edgeHit=!1,b.options.infinite===!1&&(0===b.currentSlide&&\"right\"===e||b.currentSlide>=b.getDotCount()&&\"left\"===e)&&(f=b.touchObject.swipeLength*b.options.edgeFriction,b.touchObject.edgeHit=!0),b.swipeLeft=b.options.vertical===!1?d+f*g:d+f*(b.$list.height()/b.listWidth)*g,b.options.verticalSwiping===!0&&(b.swipeLeft=d+f*g),b.options.fade===!0||b.options.touchMove===!1?!1:b.animating===!0?(b.swipeLeft=null,!1):(b.setCSS(b.swipeLeft),void 0)):void 0)},b.prototype.swipeStart=function(a){var c,b=this;return 1!==b.touchObject.fingerCount||b.slideCount<=b.options.slidesToShow?(b.touchObject={},!1):(void 0!==a.originalEvent&&void 0!==a.originalEvent.touches&&(c=a.originalEvent.touches[0]),b.touchObject.startX=b.touchObject.curX=void 0!==c?c.pageX:a.clientX,b.touchObject.startY=b.touchObject.curY=void 0!==c?c.pageY:a.clientY,b.dragging=!0,void 0)},b.prototype.unfilterSlides=b.prototype.slickUnfilter=function(){var a=this;null!==a.$slidesCache&&(a.unload(),a.$slideTrack.children(this.options.slide).detach(),a.$slidesCache.appendTo(a.$slideTrack),a.reinit())},b.prototype.unload=function(){var b=this;a(\".slick-cloned\",b.$slider).remove(),b.$dots&&b.$dots.remove(),b.$prevArrow&&\"object\"!=typeof b.options.prevArrow&&b.$prevArrow.remove(),b.$nextArrow&&\"object\"!=typeof b.options.nextArrow&&b.$nextArrow.remove(),b.$slides.removeClass(\"slick-slide slick-active slick-visible\").attr(\"aria-hidden\",\"true\").css(\"width\",\"\")},b.prototype.unslick=function(a){var b=this;b.$slider.trigger(\"unslick\",[b,a]),b.destroy()},b.prototype.updateArrows=function(){var b,a=this;b=Math.floor(a.options.slidesToShow/2),a.options.arrows===!0&&a.options.infinite!==!0&&a.slideCount>a.options.slidesToShow&&(a.$prevArrow.removeClass(\"slick-disabled\"),a.$nextArrow.removeClass(\"slick-disabled\"),0===a.currentSlide?(a.$prevArrow.addClass(\"slick-disabled\"),a.$nextArrow.removeClass(\"slick-disabled\")):a.currentSlide>=a.slideCount-a.options.slidesToShow&&a.options.centerMode===!1?(a.$nextArrow.addClass(\"slick-disabled\"),a.$prevArrow.removeClass(\"slick-disabled\")):a.currentSlide>=a.slideCount-1&&a.options.centerMode===!0&&(a.$nextArrow.addClass(\"slick-disabled\"),a.$prevArrow.removeClass(\"slick-disabled\")))},b.prototype.updateDots=function(){var a=this;null!==a.$dots&&(a.$dots.find(\"li\").removeClass(\"slick-active\").attr(\"aria-hidden\",\"true\"),a.$dots.find(\"li\").eq(Math.floor(a.currentSlide/a.options.slidesToScroll)).addClass(\"slick-active\").attr(\"aria-hidden\",\"false\"))},b.prototype.visibility=function(){var a=this;document[a.hidden]?(a.paused=!0,a.autoPlayClear()):a.options.autoplay===!0&&(a.paused=!1,a.autoPlay())},a.fn.slick=function(){var g,a=this,c=arguments[0],d=Array.prototype.slice.call(arguments,1),e=a.length,f=0;for(f;e>f;f++)if(\"object\"==typeof c||\"undefined\"==typeof c?a[f].slick=new b(a[f],c):g=a[f].slick[c].apply(a[f].slick,d),\"undefined\"!=typeof g)return g;return a}});","/*! WOW - v1.1.2 - 2015-04-07\n* Copyright (c) 2015 Matthieu Aussaguel; Licensed MIT */\n(function(){var a,b,c,d,e,f=function(a,b){return function(){return a.apply(b,arguments)}},g=[].indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(b in this&&this[b]===a)return b;return-1};b=function(){function a(){}return a.prototype.extend=function(a,b){var c,d;for(c in b)d=b[c],null==a[c]&&(a[c]=d);return a},a.prototype.isMobile=function(a){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(a)},a.prototype.createEvent=function(a,b,c,d){var e;return null==b&&(b=!1),null==c&&(c=!1),null==d&&(d=null),null!=document.createEvent?(e=document.createEvent(\"CustomEvent\"),e.initCustomEvent(a,b,c,d)):null!=document.createEventObject?(e=document.createEventObject(),e.eventType=a):e.eventName=a,e},a.prototype.emitEvent=function(a,b){return null!=a.dispatchEvent?a.dispatchEvent(b):b in(null!=a)?a[b]():\"on\"+b in(null!=a)?a[\"on\"+b]():void 0},a.prototype.addEvent=function(a,b,c){return null!=a.addEventListener?a.addEventListener(b,c,!1):null!=a.attachEvent?a.attachEvent(\"on\"+b,c):a[b]=c},a.prototype.removeEvent=function(a,b,c){return null!=a.removeEventListener?a.removeEventListener(b,c,!1):null!=a.detachEvent?a.detachEvent(\"on\"+b,c):delete a[b]},a.prototype.innerHeight=function(){return\"innerHeight\"in window?window.innerHeight:document.documentElement.clientHeight},a}(),c=this.WeakMap||this.MozWeakMap||(c=function(){function a(){this.keys=[],this.values=[]}return a.prototype.get=function(a){var b,c,d,e,f;for(f=this.keys,b=d=0,e=f.length;e>d;b=++d)if(c=f[b],c===a)return this.values[b]},a.prototype.set=function(a,b){var c,d,e,f,g;for(g=this.keys,c=e=0,f=g.length;f>e;c=++e)if(d=g[c],d===a)return void(this.values[c]=b);return this.keys.push(a),this.values.push(b)},a}()),a=this.MutationObserver||this.WebkitMutationObserver||this.MozMutationObserver||(a=function(){function a(){\"undefined\"!=typeof console&&null!==console&&console.warn(\"MutationObserver is not supported by your browser.\"),\"undefined\"!=typeof console&&null!==console&&console.warn(\"WOW.js cannot detect dom mutations, please call .sync() after loading new content.\")}return a.notSupported=!0,a.prototype.observe=function(){},a}()),d=this.getComputedStyle||function(a){return this.getPropertyValue=function(b){var c;return\"float\"===b&&(b=\"styleFloat\"),e.test(b)&&b.replace(e,function(a,b){return b.toUpperCase()}),(null!=(c=a.currentStyle)?c[b]:void 0)||null},this},e=/(\\-([a-z]){1})/g,this.WOW=function(){function e(a){null==a&&(a={}),this.scrollCallback=f(this.scrollCallback,this),this.scrollHandler=f(this.scrollHandler,this),this.resetAnimation=f(this.resetAnimation,this),this.start=f(this.start,this),this.scrolled=!0,this.config=this.util().extend(a,this.defaults),this.animationNameCache=new c,this.wowEvent=this.util().createEvent(this.config.boxClass)}return e.prototype.defaults={boxClass:\"wow\",animateClass:\"animated\",offset:0,mobile:!0,live:!0,callback:null},e.prototype.init=function(){var a;return this.element=window.document.documentElement,\"interactive\"===(a=document.readyState)||\"complete\"===a?this.start():this.util().addEvent(document,\"DOMContentLoaded\",this.start),this.finished=[]},e.prototype.start=function(){var b,c,d,e;if(this.stopped=!1,this.boxes=function(){var a,c,d,e;for(d=this.element.querySelectorAll(\".\"+this.config.boxClass),e=[],a=0,c=d.length;c>a;a++)b=d[a],e.push(b);return e}.call(this),this.all=function(){var a,c,d,e;for(d=this.boxes,e=[],a=0,c=d.length;c>a;a++)b=d[a],e.push(b);return e}.call(this),this.boxes.length)if(this.disabled())this.resetStyle();else for(e=this.boxes,c=0,d=e.length;d>c;c++)b=e[c],this.applyStyle(b,!0);return this.disabled()||(this.util().addEvent(window,\"scroll\",this.scrollHandler),this.util().addEvent(window,\"resize\",this.scrollHandler),this.interval=setInterval(this.scrollCallback,50)),this.config.live?new a(function(a){return function(b){var c,d,e,f,g;for(g=[],c=0,d=b.length;d>c;c++)f=b[c],g.push(function(){var a,b,c,d;for(c=f.addedNodes||[],d=[],a=0,b=c.length;b>a;a++)e=c[a],d.push(this.doSync(e));return d}.call(a));return g}}(this)).observe(document.body,{childList:!0,subtree:!0}):void 0},e.prototype.stop=function(){return this.stopped=!0,this.util().removeEvent(window,\"scroll\",this.scrollHandler),this.util().removeEvent(window,\"resize\",this.scrollHandler),null!=this.interval?clearInterval(this.interval):void 0},e.prototype.sync=function(){return a.notSupported?this.doSync(this.element):void 0},e.prototype.doSync=function(a){var b,c,d,e,f;if(null==a&&(a=this.element),1===a.nodeType){for(a=a.parentNode||a,e=a.querySelectorAll(\".\"+this.config.boxClass),f=[],c=0,d=e.length;d>c;c++)b=e[c],g.call(this.all,b)<0?(this.boxes.push(b),this.all.push(b),this.stopped||this.disabled()?this.resetStyle():this.applyStyle(b,!0),f.push(this.scrolled=!0)):f.push(void 0);return f}},e.prototype.show=function(a){return this.applyStyle(a),a.className=a.className+\" \"+this.config.animateClass,null!=this.config.callback&&this.config.callback(a),this.util().emitEvent(a,this.wowEvent),this.util().addEvent(a,\"animationend\",this.resetAnimation),this.util().addEvent(a,\"oanimationend\",this.resetAnimation),this.util().addEvent(a,\"webkitAnimationEnd\",this.resetAnimation),this.util().addEvent(a,\"MSAnimationEnd\",this.resetAnimation),a},e.prototype.applyStyle=function(a,b){var c,d,e;return d=a.getAttribute(\"data-wow-duration\"),c=a.getAttribute(\"data-wow-delay\"),e=a.getAttribute(\"data-wow-iteration\"),this.animate(function(f){return function(){return f.customStyle(a,b,d,c,e)}}(this))},e.prototype.animate=function(){return\"requestAnimationFrame\"in window?function(a){return window.requestAnimationFrame(a)}:function(a){return a()}}(),e.prototype.resetStyle=function(){var a,b,c,d,e;for(d=this.boxes,e=[],b=0,c=d.length;c>b;b++)a=d[b],e.push(a.style.visibility=\"visible\");return e},e.prototype.resetAnimation=function(a){var b;return a.type.toLowerCase().indexOf(\"animationend\")>=0?(b=a.target||a.srcElement,b.className=b.className.replace(this.config.animateClass,\"\").trim()):void 0},e.prototype.customStyle=function(a,b,c,d,e){return b&&this.cacheAnimationName(a),a.style.visibility=b?\"hidden\":\"visible\",c&&this.vendorSet(a.style,{animationDuration:c}),d&&this.vendorSet(a.style,{animationDelay:d}),e&&this.vendorSet(a.style,{animationIterationCount:e}),this.vendorSet(a.style,{animationName:b?\"none\":this.cachedAnimationName(a)}),a},e.prototype.vendors=[\"moz\",\"webkit\"],e.prototype.vendorSet=function(a,b){var c,d,e,f;d=[];for(c in b)e=b[c],a[\"\"+c]=e,d.push(function(){var b,d,g,h;for(g=this.vendors,h=[],b=0,d=g.length;d>b;b++)f=g[b],h.push(a[\"\"+f+c.charAt(0).toUpperCase()+c.substr(1)]=e);return h}.call(this));return d},e.prototype.vendorCSS=function(a,b){var c,e,f,g,h,i;for(h=d(a),g=h.getPropertyCSSValue(b),f=this.vendors,c=0,e=f.length;e>c;c++)i=f[c],g=g||h.getPropertyCSSValue(\"-\"+i+\"-\"+b);return g},e.prototype.animationName=function(a){var b;try{b=this.vendorCSS(a,\"animation-name\").cssText}catch(c){b=d(a).getPropertyValue(\"animation-name\")}return\"none\"===b?\"\":b},e.prototype.cacheAnimationName=function(a){return this.animationNameCache.set(a,this.animationName(a))},e.prototype.cachedAnimationName=function(a){return this.animationNameCache.get(a)},e.prototype.scrollHandler=function(){return this.scrolled=!0},e.prototype.scrollCallback=function(){var a;return!this.scrolled||(this.scrolled=!1,this.boxes=function(){var b,c,d,e;for(d=this.boxes,e=[],b=0,c=d.length;c>b;b++)a=d[b],a&&(this.isVisible(a)?this.show(a):e.push(a));return e}.call(this),this.boxes.length||this.config.live)?void 0:this.stop()},e.prototype.offsetTop=function(a){for(var b;void 0===a.offsetTop;)a=a.parentNode;for(b=a.offsetTop;a=a.offsetParent;)b+=a.offsetTop;return b},e.prototype.isVisible=function(a){var b,c,d,e,f;return c=a.getAttribute(\"data-wow-offset\")||this.config.offset,f=window.pageYOffset,e=f+Math.min(this.element.clientHeight,this.util().innerHeight())-c,d=this.offsetTop(a),b=d+a.clientHeight,e>=d&&b>=f},e.prototype.util=function(){return null!=this._util?this._util:this._util=new b},e.prototype.disabled=function(){return!this.config.mobile&&this.util().isMobile(navigator.userAgent)},e}()}).call(this);"]}