{"version":3,"sources":["defiant.js","google-charts.js","headroom.js","imagesloaded.pkgd.js","jquery.easy-autocomplete.js","jquery.headroom.js","jquery.magnify.js","jquery.mousewheel.js","jquery.panzoom.js","jquery.sticky-kit.min.js","jquery.waypoints.js","magnific.js","mobile-detect.js","modernizr.min.js","skrollr.js","slick.min.js","store2.js","tipso.js"],"names":["e","t","n","init","this","work_handler","Array","prototype","slice","call","data","r","tree","apply","postMessage","setup","URL","webkitURL","a","parse","join","s","Blob","toString","type","o","Worker","createObjectURL","onmessage","observer","emit","call_handler","arguments","length","unshift","on","detail","compile","func","constructor","Date","valueOf","Object","String","replace","RegExp","Function","push","off","indexOf","splice","isCanceled","cancelBubble","module","x10","exports","is_ie","test","navigator","userAgent","is_safari","env","xml_decl","namespace","tabsize","render","XSLTProcessor","i","document","createElement","l","match","extend","template","JSON","toXML","xsl_template","gatherTemplates","sorter","node","selectSingleNode","order","setAttribute","select","importStylesheet","appendChild","transformToFragment","removeAttribute","getElementsByTagName","c","u","defer","innerHTML","xmlFromString","getSnapshot","trim","ActiveXObject","loadXML","setProperty","DOMParser","parseFromString","Defiant","window","xsldoc","transformNode","fill","xTransform","toUpperCase","toLowerCase","sJSON","eval","stringify","substr","map","rx_validate_name","rx_node","rx_constructor","rx_namespace","rx_data","rx_function","to_xml_str","str","hash_to_xml","d","h","p","m","f","g","escape_xml","scalar_to_xml","Number","Boolean","doc","src","search","nodeType","nodeValue","getAttribute","trace","mtrace","ownerDocument","documentElement","ownerElement","nodeName","parentNode","substring","selectNodes","evaluate","createNSResolver","XPathResult","ORDERED_NODE_SNAPSHOT_TYPE","snapshotLength","snapshotItem","prettyPrint","xml","XMLSerializer","serializeToString","split","toJSON","textContent","attributes","item","hasChildNodes","childNodes","text","firstChild","jQuery","fn","defiant","html","getTime","google","loader","ServiceBase","GoogleApisBase","ApiKey","KeyVerified","LoadFailure","Secure","GoogleLocale","ClientLocation","AdditionalParams","y","z","A","b","da","C","concat","D","Error","message","E","F","J","addEventListener","attachEvent","M","L","N","readyState","K","I","setTimeout","P","B","R","T","v","Q","name","S","w","G","j","O","execScript","shift","q","x","Y","H","load","packages","reverse","language","locale","callback","ca","opera","write","W","event","srcElement","onreadystatechange","removeChild","loaded","complete","querySelector","nonce","href","rel","body","$","ba","charAt","aa","specs","baseSpec","customSpecs","V","Math","floor","random","encodeURIComponent","nocss","nooldnames","style","noexp","other_params","JSHash","k","sort","versions","autoloaded","properties","path","js","css","components","U","string","regex","X","key","version","ssl","uri","params","deferred","pattern","aliases","uncompressed","Z","Options","csi","Image","onload","onerror","rm","country","rfm",":search",":1",":1.0",":Version",":NoOldNames",":JSHash",":language",":annotations",":wave",":picker",":ima",":3",":3.0","rpl",":swfobject",":2.1","compressed",":2.2",":2",":chrome-frame",":1.0.0",":1.0.1",":1.0.2",":ext-core",":3.1.0",":3.0.0",":3.1",":scriptaculous",":1.8.3",":1.9.0",":1.8.1",":1.8.2",":1.8",":1.9",":webfont",":1.0.12",":1.0.13",":1.0.14",":1.0.15",":1.0.10",":1.0.11",":1.0.27",":1.0.28",":1.0.29",":1.0.23",":1.0.24",":1.0.25",":1.0.26",":1.0.21",":1.0.22",":1.0.3",":1.0.4",":1.0.5",":1.0.6",":1.0.9",":1.0.16",":1.0.17",":1.0.18",":1.0.19",":mootools",":1.3.0",":1.2.1",":1.1.2",":1.4.0",":1.3.1",":1.2.2",":1.4.1",":1.3.2",":1.2.3",":1.4.2",":1.2.4",":1.2.5",":1.1.1",":1.1",":1.2",":1.3",":1.4",":1.11",":jqueryui",":1.8.17",":1.8.16",":1.8.15",":1.8.14",":1.8.4",":1.8.13",":1.8.5",":1.8.12",":1.8.6",":1.8.11",":1.8.7",":1.8.10",":1.8.8",":1.8.9",":1.6.0",":1.7.0",":1.5.2",":1.8.0",":1.7.1",":1.5.3",":1.7.2",":1.7.3",":1.5",":1.6",":1.7",":yui",":2.8.0r4",":2.9.0",":2.8.1",":2.6.0",":2.7.0",":3.3.0",":2.8.2r1",":2.8.2",":2.8.0",":3.3",":2.6",":2.7",":2.8",":2.9",":prototype",":1.6.1.0",":1.6.0.2",":1.7.0.0",":1.6.0.3",":1.6.1",":jquery",":1.5.0",":1.5.1",":1.4.3",":1.6.2",":1.4.4",":1.2.6",":1.6.3",":1.6.4",":dojo",":1.2.0","root","factory","define","amd","Headroom","Debouncer","ticking","isDOMElement","obj","object","result","replacement","normalizeTolerance","down","up","elem","options","lastKnownScrollY","tolerance","classes","offset","scroller","initialised","onPin","onUnpin","onTop","onNotTop","onBottom","onNotBottom","features","bind","classList","rAF","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","update","requestTick","rafCallback","handleEvent","cutsTheMustard","debouncer","add","initial","destroy","remove","unpinned","pinned","top","notTop","removeEventListener","getScrollY","unpin","contains","pin","bottom","notBottom","undefined","pageYOffset","scrollTop","getViewportHeight","innerHeight","clientHeight","getElementPhysicalHeight","elm","max","offsetHeight","getScrollerPhysicalHeight","getDocumentHeight","scrollHeight","getElementHeight","getScrollerHeight","isOutOfBounds","currentScrollY","pastTop","pastBottom","toleranceExceeded","direction","abs","shouldUnpin","scrollingDown","pastOffset","shouldPin","scrollingUp","scrollDirection","global","EvEmitter","proto","eventName","listener","events","_events","listeners","once","onceEvents","_onceEvents","onceListeners","index","emitEvent","args","isOnce","allOff","removeAllListeners","require","imagesLoaded","prop","makeArray","ary","isArray","ImagesLoaded","onAlways","querySelectorAll","elements","getImages","jqDeferred","Deferred","check","LoadingImage","img","Background","url","element","console","create","images","forEach","addElementImages","addImage","background","addElementBackgroundImages","elementNodeTypes","childImgs","children","child","1","9","11","getComputedStyle","reURL","matches","exec","backgroundImage","addBackground","loadingImage","onProgress","image","_this","progress","progressedCount","hasAnyBroken","isLoaded","notify","debug","log","isComplete","jqMethod","getIsImageComplete","confirm","naturalWidth","proxyImage","method","unbindEvents","makeJQueryPlugin","instance","promise","EasyAutocomplete","scope","Configuration","prepareDefaults","dataType","getValue","list","phrase","categories","category","property","defaults","mergeOptions","mergeObjects","source","target","mergedObject","propertyName","processAfterMerge","defaultUrl","ajaxSettings","listLocation","defaultlistLocation","find","defaultsGetValue","categoriesAssigned","addAjaxSettings","isAssigned","printPropertiesThatDoesntExist","consol","optionsToCheck","checkPropertiesIfExist","inArray","externalObjects","xmlElementName","autocompleteOff","placeholder","ajaxCallback","matchResponseProperty","enabled","maxNumberOfElements","hideOnEmptyPhrase","caseSensitive","showAnimation","time","hideAnimation","onClickEvent","onSelectItemEvent","onLoadEvent","onChooseEvent","onKeyEnterEvent","onMouseOverEvent","onMouseOutEvent","onShowListEvent","onHideListEvent","highlightPhrase","theme","cssClasses","minCharNumber","requestDelay","adjustWidth","preparePostData","inputPhrase","loggerEnabled","get","equals","value","checkDataUrlProperties","checkRequiredProperties","logger","error","Logger","warning","Constans","constants","CONTAINER_CLASS","CONTAINER_ID","WRAPPER_CSS_CLASS","ListBuilderService","configuration","proccessResponseData","convertToListBuilder","convertXmlToListBuilder","builder","convertDataToListBuilder","header","maxListSize","convertXmlToList","simpleList","each","listBuilder","updateCategories","convertXml","processData","checkIfDataExists","listBuilders","proccess","config","findMatch","preparedList","reduceElementsInList","Template","genericTemplates","basic","cssClass","description","fields","iconLeft","icon","iconRight","iconSrc","links","link","custom","convertTemplateToMethod","buildMethod","_fields","elementValue","prepareBuildMethod","templateClass","emptyStringFunction","_cssClass","getTemplateClass","build","main","$input","$field","prepareField","bindEvents","createWrapper","$wrapper","consts","addClass","wrap","adjustWrapperWidth","fieldWidth","outerWidth","parent","removeWrapper","unwrap","createContainer","$elements_container","attr","getContainerId","prepend","animationTime","slideDown","fadeIn","show","slideUp","fadeOut","hide","removeClass","eq","selectedElement","$item","$listContainer","empty","detach","elementsList","counter","builderIndex","listBuildersLength","listData","append","listDataLength","itemCounter","elementsValue","val","trigger","selectElement","mouseover","mouseout","highlight","after","removeContainer","next","escapeRegExp","escapedPhrase","hasClass","$container","elementId","bindAllEvents","checkParam","removeAutocomplete","bindFocusOut","bindKeyup","bindKeydown","bindKeypress","bindFocus","bindBlur","focusout","fieldValue","keyup","loadData","createAjaxSettings","settings","set","checkInputPhraseMatchResponse","listBuilderService","loadElements","showContainer","hideContainer","ajax","done","fail","always","keyCode","loseFieldFocus","preventDefault","requestDelayTimeoutId","clearTimeout","evt","suppressKeypress","keydown","focus","blur","getConstants","getConfiguration","getContainer","getSelectedItemIndex","getItems","getItemData","getSelectedItemData","eacHandles","getHandle","id","inputHasId","input","assignRandomId","fieldId","setHandle","handle","easyAutocomplete","$this","eacHandle","inputId","headroom","option","removeData","Zepto","magnify","oOptions","speed","timeout","finalWidth","finalHeight","magnifiedWidth","magnifiedHeight","limitBounds","afterLoad","$that","$html","el","$image","$anchor","closest","oDataAttr","sZoomSrc","$lens","nImageWidth","nImageHeight","nMagnifiedWidth","nMagnifiedHeight","nLensWidth","nLensHeight","oContainerOffset","oImageOffset","nBoundX","nBoundY","getOffset","parseInt","left","hideLens","is","isNaN","elZoomImage","nX","nY","prev","before","width","height","mousemove touchmove","refresh","pageX","originalEvent","touches","pageY","sBgPos","nRatioX","round","nRatioY","nBoundRight","nBoundBottom","background-position","mouseenter","mouseleave","not","sUsemap","$map","click","clientX","clientY","elPoint","elementFromPoint","nTimer","sStyle","removeAttr","resize","handler","orgEvent","delta","deltaX","deltaY","absDelta","offsetX","offsetY","fix","wheelDelta","wheelDeltaY","wheelDeltaX","axis","HORIZONTAL_AXIS","deltaMode","lineHeight","pageHeight","lowestDelta","shouldAdjustOldDeltas","special","normalizeOffset","getBoundingClientRect","boundingRect","deltaFactor","nullLowestDeltaTimeout","nullLowestDelta","dispatch","adjustOldDeltas","toFix","toBind","documentMode","fixHooks","mouseHooks","mousewheel","onmousewheel","getLineHeight","getPageHeight","teardown","$elem","$parent","unmousewheel","unbind","matrixEquals","first","second","createResetOptions","opts","range","animate","Matrix","Vector","Panzoom","datakey","$set","$doc","isSVG","rsvg","namespaceURI","panning","_buildTransform","_transform","cssProps","transform","rupper","_buildTransition","resetDimensions","$empty","self","enable","scale","getMatrix","_checkPanWhenZoomed","rIE11","supportsInputEvent","oninput","floating","commaSpace","rmatrix","matrix","isVector","inverse","determinant","eventNamespace","transition","cursor","disablePan","disableZoom","disableXAxis","disableYAxis","which","increment","exponential","panOnlyWhenZoomed","minScale","maxScale","rangeStep","duration","easing","contain","_initStyle","_bind","disabled","disable","_resetStyle","_unbind","isDisabled","container","dims","absScale","dimensions","border","right","margin","reset","setMatrix","_origTransform","silent","_trigger","resetZoom","origMatrix","dValue","zoom","resetPan","pan","setTransform","getTransform","transformElem","spaceWLeft","spaceWRight","scaleDiff","conWidth","conHeight","zoomAspectW","zoomAspectH","offsetWidth","spaceHTop","spaceHBottom","min","$zoomRange","originalMatrix","isPanning","_transition","relative","startScale","focal","clientV","surfaceM","parentOffset","offsetM","scrollLeft","surfaceV","scaleBy","noSetRange","_setOptions","proxy","toDisable","styles","transform-origin","overflow","position","ns","str_down","str_start","str_click","$reset","isFunction","stopPropagation","_startMove","contextmenu","step","$zoomIn","$zoomOut","startTransform","_getDistance","touch1","touch2","sqrt","pow","_getMiddle","triggerHandler","moveEvent","endEvent","startDistance","startMiddle","startPageX","startPageY","touch","original","origPageX","origPageY","panOptions","setStart","move","coords","middle","diff","panzoom","ret","stick_in_parent","sticky_class","inner_scrolling","recalc_every","offset_top","spacer","bottoming","insertAfter","outerHeight","display","vertical-align","float","Waypoint","keyCounter","Adapter","adapter","horizontal","triggerPoint","group","Group","findOrCreate","context","Context","findOrCreateByElement","offsetAliases","allWaypoints","queueTrigger","previous","invokeAll","allWaypointsArray","waypointKey","end","destroyAll","disableAll","enableAll","refreshAll","viewportHeight","viewportWidth","clientWidth","adapters","continuous","bottom-in-view","right-in-view","innerWidth","requestAnimationFrameShim","didScroll","didResize","oldScroll","waypoints","vertical","waypointContextKey","contexts","windowContext","createThrottledScrollHandler","createThrottledResizeHandler","oldWindowLoad","waypoint","checkEmpty","horizontalEmpty","isEmptyObject","verticalEmpty","isWindow","resizeHandler","handleResize","scrollHandler","handleScroll","isTouch","triggeredGroups","axes","newScroll","forward","backward","axisKey","isForward","wasBeforeTriggerPoint","nowAfterTriggerPoint","crossedForward","crossedBackward","groupKey","flushTriggers","contextOffset","contextScroll","contextDimension","offsetProp","contextModifier","wasBeforeScroll","nowAfterScroll","triggeredBackward","triggeredForward","adjustment","oldTriggerPoint","elementOffset","freshWaypoint","parseFloat","ceil","findByElement","contextId","requestFn","byTriggerPoint","byReverseTriggerPoint","clearTriggerQueues","groups","triggerQueues","isLast","last","JQueryAdapter","$element","createExtension","framework","overrides","mfp","_prevStatus","_document","_prevContentType","_wrapClasses","_currPopupType","CLOSE_EVENT","BEFORE_CLOSE_EVENT","AFTER_CLOSE_EVENT","BEFORE_APPEND_EVENT","MARKUP_PARSE_EVENT","OPEN_EVENT","CHANGE_EVENT","NS","EVENT_NS","READY_CLASS","REMOVING_CLASS","PREVENT_CLOSE_CLASS","MagnificPopup","_isJQ","_window","_mfpOn","ev","_getEl","className","appendTo","raw","_mfpTrigger","st","callbacks","_getCloseBtn","currTemplate","closeBtn","closeMarkup","tClose","_checkInstance","magnificPopup","supportsTransitions","pop","appVersion","isLowIE","isIE8","all","isAndroid","isIOS","supportsTransition","probablyMobile","popupsCache","open","isObj","items","toArray","parsed","isOpen","updateItemHTML","types","mainEl","fixedContentPos","modal","closeOnContentClick","closeOnBgClick","showCloseBtn","enableEscapeKey","bgOverlay","close","_checkIfClose","contentContainer","preloader","tLoading","modules","closeBtnInside","values","close_replaceWith","alignTop","overflowY","overflowX","fixedBgPos","updateSize","windowHeight","wH","windowStyles","_hasScrollBar","_getScrollbarSize","marginRight","isIE7","classesToadd","mainClass","_addClassToMFP","prependTo","_lastFocusedEl","activeElement","content","_setFocus","_onFocusIn","removalDelay","_close","classesToRemove","_removeClassFromMFP","currItem","autoFocusLast","prevHeight","winHeight","zoomLevel","parseEl","markup","newContent","appendContent","preloaded","tagName","addGroup","eHandler","mfpEl","_openClick","eName","delegate","midClick","ctrlKey","metaKey","altKey","shiftKey","disableOn","updateStatus","status","stopImmediatePropagation","closeOnContent","closeOnBg","cName","_parseMarkup","arr","replaceWith","scrollbarSize","scrollDiv","cssText","registerModule","jqEl","itemOpts","_hiddenClass","_inlinePlaceholder","_lastInlineElement","INLINE_NS","_putInlineElementsBack","hiddenClass","tNotFound","initInline","getInline","inlineSt","inline","inlineElement","_ajaxCur","AJAX_NS","_removeAjaxCursor","_destroyAjaxRequest","req","abort","tError","initAjax","getAjax","success","textStatus","jqXHR","temp","xhr","finished","loadError","_imgInterval","_getTitle","title","titleSrc","verticalFit","initImage","imgSt","resizeImage","decr","_onImageHasSize","hasSize","clearInterval","isCheckingImgSize","imgHidden","findImageSize","mfpSetInterval","delay","setInterval","getImage","guard","onLoadComplete","onLoadError","alt","clone","img_replaceWith","loading","hasMozTransform","getHasMozTransform","MozTransform","opener","initZoom","zoomSt","openTimeout","animatedImg","getElToAnimate","newImg","cssObj","zIndex","-webkit-backface-visibility","showMainContent","_allowZoom","_getItemToZoom","_getOffset","isLarge","paddingTop","paddingBottom","IFRAME_NS","_emptyPage","_fixIframeBugs","isShowing","srcAction","patterns","youtube","vimeo","gmaps","initIframe","prevType","newType","getIframe","embedSrc","iframeSt","iframe","lastIndexOf","dataObj","_getLoopedId","numSlides","_replaceCurrTotal","curr","total","arrowMarkup","preload","navigateByImgClick","arrows","tPrev","tNext","tCounter","initGallery","gSt","gallery","arrowLeft","arrowRight","_preloadTimeout","preloadNearbyImages","goTo","newIndex","preloadBefore","preloadAfter","_preloadItem","RETINA_NS","replaceSrc","ratio","initRetina","devicePixelRatio","retina","max-width","equalIC","containsIC","array","valueLC","len","convertPropsToRegExp","hasOwnProp","MobileDetect","maxPhoneWidth","ua","_cache","impl","mobileDetectRules","phones","iPhone","BlackBerry","HTC","Nexus","Dell","Motorola","Samsung","LG","Sony","Asus","NokiaLumia","Micromax","Palm","Vertu","Pantech","Fly","Wiko","iMobile","SimValley","Wolfgang","Alcatel","Nintendo","Amoi","INQ","GenericPhone","tablets","iPad","NexusTablet","SamsungTablet","Kindle","SurfaceTablet","HPTablet","AsusTablet","BlackBerryTablet","HTCtablet","MotorolaTablet","NookTablet","AcerTablet","ToshibaTablet","LGTablet","FujitsuTablet","PrestigioTablet","LenovoTablet","DellTablet","YarvikTablet","MedionTablet","ArnovaTablet","IntensoTablet","IRUTablet","MegafonTablet","EbodaTablet","AllViewTablet","ArchosTablet","AinolTablet","NokiaLumiaTablet","SonyTablet","PhilipsTablet","CubeTablet","CobyTablet","MIDTablet","MSITablet","SMiTTablet","RockChipTablet","FlyTablet","bqTablet","HuaweiTablet","NecTablet","PantechTablet","BronchoTablet","VersusTablet","ZyncTablet","PositivoTablet","NabiTablet","KoboTablet","DanewTablet","TexetTablet","PlaystationTablet","TrekstorTablet","PyleAudioTablet","AdvanTablet","DanyTechTablet","GalapadTablet","MicromaxTablet","KarbonnTablet","AllFineTablet","PROSCANTablet","YONESTablet","ChangJiaTablet","GUTablet","PointOfViewTablet","OvermaxTablet","HCLTablet","DPSTablet","VistureTablet","CrestaTablet","MediatekTablet","ConcordeTablet","GoCleverTablet","ModecomTablet","VoninoTablet","ECSTablet","StorexTablet","VodafoneTablet","EssentielBTablet","RossMoorTablet","iMobileTablet","TolinoTablet","AudioSonicTablet","AMPETablet","SkkTablet","TecnoTablet","JXDTablet","iJoyTablet","FX2Tablet","XoroTablet","ViewsonicTablet","OdysTablet","CaptivaTablet","IconbitTablet","TeclastTablet","OndaTablet","JaytechTablet","BlaupunktTablet","DigmaTablet","EvolioTablet","LavaTablet","AocTablet","MpmanTablet","CelkonTablet","WolderTablet","MiTablet","NibiruTablet","NexoTablet","LeaderTablet","UbislateTablet","PocketBookTablet","KocasoTablet","HisenseTablet","Hudl","TelstraTablet","GenericTablet","oss","AndroidOS","BlackBerryOS","PalmOS","SymbianOS","WindowsMobileOS","WindowsPhoneOS","iOS","MeeGoOS","MaemoOS","JavaOS","webOS","badaOS","BREWOS","uas","Chrome","Dolfin","Opera","Skyfire","Edge","IE","Firefox","Bolt","TeaShark","Blazer","Safari","UCBrowser","baiduboxapp","baidubrowser","DiigoBrowser","Puffin","Mercury","ObigoBrowser","NetFront","GenericBrowser","PaleMoon","props","Mobile","Build","Version","VendorID","iPod","Coast","Fennec","NokiaBrowser","Opera Mini","Opera Mobi","UC Browser","MQQBrowser","MicroMessenger","SamsungBrowser","Iron","Tizen","Webkit","Gecko","Trident","Presto","Goanna","Android","BREW","Java","Windows Phone OS","Windows Phone","Windows CE","Windows NT","Symbian","utils","Bot","MobileBot","DesktopMode","TV","WebKit","Console","Watch","detectMobileBrowsers","fullPattern","shortPattern","tabletPattern","hasOwnProperty","FALLBACK_PHONE","FALLBACK_TABLET","FALLBACK_MOBILE","verPos","oss0","rules","findMatches","getVersionStr","getVersion","prepareVersionNo","NaN","numbers","isMobileFallback","isTabletFallback","prepareDetectionCache","cache","mobile","phone","tablet","phoneSized","isPhoneSized","mobileGrade","$isMobile","os","detectOS","getDeviceSmallerSide","screen","userAgents","versionStr","grade","_impl","Modernizr","_config","classPrefix","baseVal","enableJSClass","enableClasses","createElementNS","fake","styleSheet","createTextNode","getPropertyValue","currentStyle","CSS","supports","modElem","_version","usePrefixes","_q","addTest","addAsyncTest","location","protocol","history","createSVGRect","canPlayType","ogg","mp3","opus","wav","m4a","getContext","backgroundColor","SVGRect","h264","webm","vp9","hls","_","_prefixes","opacity","hasEvent","testStyles","$1","getElementById","sheet","cssRules","required","DocumentTouch","offsetTop","_cssomPrefixes","CSSRule","atRule","_domPrefixes","testAllProps","prefixed","MouseEvent","WEBKIT_FORCE_AT_MOUSE_DOWN","WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN","Skrollr","detectCSSPrefix","_instance","_constants","easings","_edgeStrategy","edgeStrategy","_listeners","beforerender","keyframe","_forceHeight","forceHeight","_scale","_mobileDeceleration","mobileDeceleration","DEFAULT_MOBILE_DECELERATION","_smoothScrollingEnabled","smoothScrolling","_smoothScrollingDuration","smoothScrollingDuration","DEFAULT_SMOOTH_SCROLLING_DURATION","_smoothScrolling","targetTop","getScrollTop","_isMobile","mobileCheck","vendor","_skrollrBody","skrollrBody","DEFAULT_SKROLLRBODY","_detect3DTransforms","_initMobile","_updateClass","SKROLLR_CLASS","SKROLLR_MOBILE_CLASS","NO_SKROLLR_CLASS","SKROLLR_DESKTOP_CLASS","_addEvent","_lastViewportHeight","_lastViewportWidth","_requestReflow","requestAnimFrame","polyfillRAF","animloop","_render","_animFrame","skrollr","VERSION","hasProp","getStyle","EVENT_TOUCHSTART","EVENT_TOUCHMOVE","EVENT_TOUCHCANCEL","EVENT_TOUCHEND","SKROLLABLE_CLASS","SKROLLABLE_BEFORE_CLASS","SKROLLABLE_BETWEEN_CLASS","SKROLLABLE_AFTER_CLASS","DEFAULT_EASING","DEFAULT_DURATION","ANCHOR_START","ANCHOR_END","ANCHOR_CENTER","ANCHOR_BOTTOM","SKROLLABLE_ID_DOM_PROPERTY","rxTouchIgnoreTags","rxTrim","rxKeyframeAttribute","rxPropValue","rxPropEasing","rxCamelCase","rxCamelCaseFn","letter","rxNumericValue","rxInterpolateString","rxRGBAIntegerColor","rxGradient","theCSSPrefix","theDashedCSSPrefix","rxPrefixes","-webkit-","-moz-","-ms-","-o-","lastTime","_now","deltaTime","polyfillCAF","cancelAnimFrame","cancelAnimationFrame","begin","linear","quadratic","cubic","swing","cos","PI","outCubic","bounce","elementIndex","elementsLength","ignoreID","_skrollables","_skrollableIdCounter","anchorTarget","keyFrames","smoothScrollThis","emitEvents","attributeIndex","attributesLength","kf","eventType","constant","isPercentage","anchor1","anchor2","mode","anchors","isEnd","styleAttr","classAttr","_getClass","lastFrameIndex","_reflow","sk","_parseProps","_fillProps","relativeToAbsolute","viewportAnchor","elementAnchor","box","absolute","boxHeight","animateTo","now","_scrollAnimation","startTop","topDiff","startTime","endTime","stopAnimateTo","isAnimatingTo","isMobile","setScrollTop","force","_forceRender","_mobileOffset","_maxKeyFrame","scrollTo","getMaxScrollTop","_removeAllEvents","skrollableIndex","skrollablesLength","_reset","setStyle","_direction","_lastTop","_translateZ","initialElement","initialTouchY","initialTouchX","currentElement","currentTouchY","currentTouchX","lastTouchY","initialTouchTime","currentTouchTime","lastTouchTime","changedTouches","timeStamp","distanceY","distanceX","distance2","clickEvent","createEvent","initMouseEvent","view","screenX","screenY","dispatchEvent","targetOffset","targetRatio","_updateDependentKeyFrames","skrollable","keyFrameIndex","keyFramesLength","constantValue","processedConstants","_processConstants","frame","_getDocumentHeight","_keyFrameComparator","_calcSteps","fakeFrame","actualFrame","frames","framesLength","firstFrame","lastFrame","beforeFirst","afterLast","firstOrLastFrame","edge","_emitEvent","_interpolateString","_calcInterpolation","afterAnimationCallback","renderTop","smoothScrollingDiff","_lastRenderCall","listenerParams","curTop","lastTop","maxTop","continueRendering","_parseProp","lastIndex","rgba","propList","_fillPropForFrame","val1","val2","valueIndex","val1Length","interpolated","undo","elementsIndex","dirtyStyleAttr","dirtyClassAttr","computedStyle","computedTransform","computedTransformWithPrefix","has3D","styleFloat","cssFloat","ignore","addEvent","names","intermediate","returnValue","defaultPrevented","nameCounter","namesLength","_registeredEvents","_removeEvent","removeEvent","detachEvent","eventData","eventCounter","eventsLength","pos","copy","bodyHeight","skrollrBodyHeight","SVGElement","classRemoveIndex","removeLength","_untrim","_trim","classAddIndex","addLength","Slick","accessibility","adaptiveHeight","appendArrows","appendDots","asNavFor","prevArrow","nextArrow","autoplay","autoplaySpeed","centerMode","centerPadding","cssEase","customPaging","dots","dotsClass","draggable","edgeFriction","fade","focusOnSelect","infinite","initialSlide","lazyLoad","mobileFirst","pauseOnHover","pauseOnFocus","pauseOnDotsHover","respondTo","responsive","rows","rtl","slide","slidesPerRow","slidesToShow","slidesToScroll","swipe","swipeToSlide","touchMove","touchThreshold","useCSS","useTransform","variableWidth","verticalSwiping","waitForAnimate","initials","animating","dragging","autoPlayTimer","currentDirection","currentLeft","currentSlide","$dots","listWidth","listHeight","loadIndex","$nextArrow","$prevArrow","slideCount","slideWidth","$slideTrack","$slides","sliding","slideOffset","swipeLeft","$list","touchObject","transformsEnabled","unslicked","activeBreakpoint","animType","animProp","breakpoints","breakpointSettings","cssTransitions","focussed","interrupted","hidden","paused","positionProp","rowCount","shouldClick","$slider","$slidesCache","transformType","transitionType","visibilityChange","windowWidth","windowTimer","originalSettings","mozHidden","webkitHidden","autoPlay","autoPlayClear","autoPlayIterator","changeSlide","clickHandler","selectHandler","setPosition","swipeHandler","dragHandler","keyHandler","instanceUid","htmlExpr","registerBreakpoints","activateADA","aria-hidden","tabindex","addSlide","slickAdd","unload","insertBefore","reinit","animateHeight","animateSlide","animStart","applyTransition","disableTransition","getNavTarget","slick","slideHandler","buildArrows","aria-disabled","buildDots","getDotCount","buildOut","wrapAll","setupInfinite","updateDots","setSlideClasses","buildRows","createDocumentFragment","checkResponsive","unslick","currentTarget","checkNavigable","getNavigableIndexes","cleanUpEvents","interrupt","visibility","cleanUpSlideEvents","orientationChange","cleanUpRows","fadeSlide","fadeSlideOut","filterSlides","slickFilter","filter","focusHandler","getCurrent","slickCurrentSlide","getLeft","offsetLeft","getOption","slickGetOption","getSlick","getSlideCount","slickGoTo","setProps","startLoad","loadSlider","initializeEvents","updateArrows","initADA","role","aria-describedby","aria-selected","aria-controls","initArrowEvents","initDotEvents","initSlideEvents","action","initUI","progressiveLazyLoad","slickNext","pause","slickPause","play","slickPlay","postSlide","slickPrev","breakpoint","windowDelay","removeSlide","slickRemove","setCSS","setDimensions","padding","setFade","setHeight","setOption","slickSetOption","WebkitTransition","MozTransition","msTransition","OTransform","perspectiveProperty","webkitPerspective","MozPerspective","webkitTransform","msTransform","parents","swipeDirection","startX","curX","startY","curY","atan2","swipeEnd","swipeLength","edgeHit","minSwipe","fingerCount","swipeStart","swipeMove","unfilterSlides","slickUnfilter","areas","apis","inherit","api","storeAPI","area","getItem","setItem","removeItem","clear","Store","store","overwrite","getAll","transact","setAll","_id","testKey","_area","storageAPI","_ns","noSession","session","isFake","has","_in","size","keys","_and","_out","changed","clearAll","localStorage","local","sessionStorage","conflict","Plugin","win","data_keys","data_attrs","pluginName","settings_key","_defaults","_name","_title","ieFade","preferedPosition","realHeight","removeCornerClasses","reposition","thisthat","pos_top","pos_left","tipso_bubble","tooltip","$e","$win","arrow","arrow_color","title_content","titleContent","titleBackground","marginLeft","arrowWidth","marginTop","border-bottom-color","border-top-color","border-left-color","border-right-color","margin-left","tipso_arrow","margin-top","tipso","color","titleColor","showArrow","maxWidth","hideDelay","animationIn","animationOut","tooltipHover","ajaxContentUrl","ajaxContentBuffer","contentElementId","useTitle","templateEngineFunc","onBeforeShow","onShow","onHide","waitForHover","hoverHelper","ajaxContent","stop","one","_ajaxContent","async","responseText","returns"],"mappings":"AAMA,GAAA,SAAAA,EAAAC,GAAA,GAAAC,IAAAC,KAAA,WAAA,MAAAC,OAAAC,aAAA,SAAAL,GAAA,GAAAC,GAAAK,MAAAC,UAAAC,MAAAC,KAAAT,EAAAU,KAAA,GAAAR,EAAAF,EAAAU,KAAA,GAAAC,EAAAC,KAAAV,GAAAW,MAAAD,KAAAX,EAAAa,cAAAZ,EAAAS,KAAAI,MAAA,SAAAd,GAAA,GAAAU,GAAAX,EAAAgB,KAAAhB,EAAAiB,UAAAC,EAAA,eAAAd,KAAAe,MAAAlB,GAAAmB,KAAA,KAAA,KAAAC,EAAA,GAAAC,OAAAJ,EAAA,oCAAAd,KAAAC,aAAAkB,WAAA,cAAAC,KAAA,oBAAAC,EAAA,GAAAC,QAAAf,EAAAgB,gBAAAN,GAAA,OAAAI,GAAAG,UAAA,SAAA5B,GAAA,GAAAC,GAAAK,MAAAC,UAAAC,MAAAC,KAAAT,EAAAU,KAAA,GAAAC,EAAAX,EAAAU,KAAA,EAAAR,GAAA2B,SAAAC,KAAA,OAAAnB,EAAAV,IAAAwB,GAAAM,aAAA,SAAA/B,EAAAC,GAAA,MAAA,YAAA,GAAAU,GAAAL,MAAAC,UAAAC,MAAAC,KAAAuB,UAAA,MAAAd,EAAAc,UAAAA,UAAAC,OAAA,EAAAtB,GAAAuB,QAAAlC,GAAAE,EAAA2B,SAAAM,GAAA,OAAAnC,EAAA,SAAAA,GAAAkB,EAAAlB,EAAAoC,OAAA,MAAAnC,EAAAa,YAAAH,KAAA0B,QAAA,SAAArC,GAAA,GAAAC,GAAAC,EAAAE,KAAAW,MAAA,kBAAAf,IAAAsC,KAAAtC,GAAAA,GAAAW,IAAA,IAAA,kBAAAX,GAAA,MAAAW,GAAA2B,KAAAlC,KAAA2B,aAAA,OAAA7B,GAAAS,EAAA2B,IAAA,KAAArC,IAAAD,GAAAW,EAAAV,GAAAG,KAAA2B,aAAA9B,EAAAC,EAAA,OAAAS,IAAAQ,MAAA,SAAAnB,EAAAE,GAAA,GAAAS,GAAAO,EAAAG,EAAAI,IAAA,KAAAd,IAAAX,GAAA,GAAAqB,EAAArB,EAAAW,GAAA,OAAAU,EAAA,GAAAA,IAAApB,EAAA,CAAA,OAAAoB,EAAAkB,aAAA,IAAAC,MAAAtB,EAAA,YAAAG,EAAAoB,UAAA,GAAA,MAAA,KAAAC,QAAAxB,EAAA,IAAAd,KAAAe,MAAAE,GAAAD,KAAA,KAAA,GAAA,MAAA,KAAAd,OAAAY,EAAA,IAAAd,KAAAe,MAAAE,GAAA,GAAAD,KAAA,KAAA,GAAA,MAAA,KAAAuB,QAAAzB,EAAA,IAAAG,EAAAuB,QAAA,KAAA,OAAA,GAAA,MAAA,KAAAC,QAAA,IAAAC,UAAA5B,EAAAG,EAAAE,UAAA,MAAA,SAAAL,EAAAG,EAAAnB,EAAAuB,EAAAsB,KAAA7B,GAAAO,EAAAsB,KAAApC,EAAA,IAAAO,OAAAO,GAAAsB,KAAApC,EAAA,kBAAAc,GAAAsB,KAAApC,EAAA,QAAA,OAAAc,IAAAI,SAAA,WAAA,GAAA7B,KAAA,QAAAmC,GAAA,SAAAlC,EAAAC,GAAAF,EAAAC,KAAAD,EAAAC,OAAAD,EAAAC,GAAAiC,QAAAhC,IAAA8C,IAAA,SAAA/C,EAAAC,GAAA,GAAAF,EAAAC,GAAA,CAAA,GAAAU,GAAAX,EAAAC,GAAAgD,QAAA/C,EAAAF,GAAAC,GAAAiD,OAAAvC,EAAA,KAAAmB,KAAA,SAAA7B,EAAAC,GAAA,GAAAF,EAAAC,GAAA,IAAA,GAAAU,IAAAa,KAAAvB,EAAAmC,OAAAlC,EAAAiD,YAAA,EAAAC,aAAA,WAAAhD,KAAA+C,YAAA,IAAAjC,EAAAlB,EAAAC,GAAAgC,OAAAf,KAAA,CAAA,GAAAP,EAAAwC,WAAA,MAAAnD,GAAAC,GAAAiB,GAAAP,SAAA,oBAAA0C,QAAArD,EAAAsD,IAAApD,EAAAC,OAAAkD,OAAAE,QAAArD,EAAAC,QAAAC,MAAA,SAAAJ,EAAAC,EAAAC,GAAA,YAAA,IAAAS,IAAA6C,MAAA,kBAAAC,KAAAC,UAAAC,WAAAC,UAAA,UAAAH,KAAAC,UAAAC,WAAAE,IAAA,aAAAC,SAAA,yCAAAC,UAAA,8BAAAC,QAAA,EAAAC,OAAA,SAAAjE,EAAAC,GAAA,GAAAC,GAAAS,EAAAO,EAAAG,EAAAI,EAAA,GAAAyC,eAAAC,EAAAC,SAAAC,cAAA,QAAAC,GAAAC,MAAA,IAAA,cAAAvE,IAAA,IAAA,SAAAI,KAAAoE,OAAAF,EAAAtE,GAAAsE,EAAA5D,OAAA4D,EAAA5D,KAAAT,EAAA,MAAA,KAAA,SAAAqE,EAAAG,SAAAzE,EAAAsE,EAAA5D,KAAAT,CAAA,MAAA,SAAA,KAAA,QAAA,GAAAqE,EAAA5D,KAAAgE,KAAAC,MAAAL,EAAA5D,MAAAR,EAAA,yBAAAoE,EAAAG,SAAA,KAAArE,KAAAwE,cAAAxE,KAAAyE,kBAAAP,EAAAQ,SAAAzD,EAAAjB,KAAA2E,KAAAC,iBAAA5E,KAAAwE,aAAA1E,EAAA,4BAAAmB,IAAAiD,EAAAQ,OAAAG,OAAA5D,EAAA6D,aAAA,QAAAZ,EAAAQ,OAAAG,OAAAX,EAAAQ,OAAAK,QAAA9D,EAAA6D,aAAA,SAAAZ,EAAAQ,OAAAK,QAAA9D,EAAA6D,aAAA,YAAAZ,EAAAQ,OAAAtD,MAAA,UAAAN,EAAAd,KAAA2E,KAAAC,iBAAA5E,KAAAwE,aAAA1E,GAAAgB,EAAAgE,aAAA,QAAAZ,EAAAC,OAAA9C,EAAA2D,iBAAAhF,KAAAwE,cAAAT,EAAAkB,YAAA5D,EAAA6D,oBAAAhB,EAAA5D,KAAA0D,WAAAlD,EAAAqE,gBAAA,SAAAnF,KAAAwD,UAAA,CAAAjD,EAAAwD,EAAAqB,qBAAA,SAAA,KAAA,GAAAC,GAAA,EAAAC,EAAA/E,EAAAsB,OAAAwD,EAAAC,EAAAD,IAAA9E,EAAA8E,GAAAE,OAAA,EAAA,MAAAxB,GAAAyB,WAAAf,gBAAA,WAAA,IAAA,GAAA7E,GAAAoE,SAAAoB,qBAAA,UAAAvF,EAAA,GAAAC,EAAA,EAAAS,EAAAX,EAAAiC,OAAA/B,EAAAS,EAAAT,IAAA,yBAAAF,EAAAE,GAAAsB,OAAAvB,GAAAD,EAAAE,GAAA0F,UAAAxF,MAAAwE,aAAAxE,KAAAyF,cAAA,kFAAAzF,KAAA2D,UAAA,IAAA9D,EAAA2C,QAAA,iBAAA,MAAA,sBAAAkD,YAAA,SAAA9F,EAAAC,GAAA,MAAAyE,MAAAC,MAAA3E,EAAAC,IAAA,IAAA4F,cAAA,SAAA5F,GAAA,GAAAC,GAAAS,CAAA,OAAAV,GAAAA,EAAA2C,QAAA,YAAA,MAAA,OAAA3C,EAAA8F,OAAAxB,MAAA,YAAAtE,EAAAG,KAAA0D,SAAA7D,GAAA,iBAAAD,IAAAW,EAAA,GAAAqF,eAAA,sBAAArF,EAAAsF,QAAAhG,GAAAU,EAAAuF,YAAA,sBAAA9F,KAAA2D,WAAA9D,EAAAgD,QAAA,wBAAAtC,EAAAuF,YAAA,oBAAA,WAAAhG,EAAA,GAAAiG,WAAAxF,EAAAT,EAAAkG,gBAAAnG,EAAA,aAAAU,GAAA6D,OAAA,SAAAxE,EAAAC,GAAA,IAAA,GAAAC,KAAAD,GAAAD,EAAAE,IAAA,gBAAAD,GAAAC,GAAAE,KAAAoE,OAAAxE,EAAAE,GAAAD,EAAAC,IAAAF,EAAAE,GAAAD,EAAAC,EAAA,OAAAF,IAAA+E,QAAA/E,GAAAqG,QAAApG,EAAAsD,QAAA5C,GAAA,mBAAA2F,QAAAA,UAAA,mBAAAjD,QAAAA,WAAA,mBAAAa,eAAA,CAAA,GAAAA,eAAA,YAAAA,eAAA3D,WAAA6E,iBAAA,SAAApF,GAAAI,KAAAmG,OAAAvG,GAAAsF,oBAAA,SAAAtF,EAAAC,GAAA,GAAAC,GAAAF,EAAAwG,cAAApG,KAAAmG,QAAA5F,EAAAyD,SAAAC,cAAA,OAAA,OAAA1D,GAAAiF,UAAA1F,EAAAS,QAAA,IAAA,kBAAAuD,iBAAAA,cAAA,KAAA,6CAAAvB,QAAApC,UAAAkG,OAAA9D,OAAApC,UAAAkG,KAAA,SAAAzG,EAAAC,GAAA,GAAAC,GAAAE,IAAA,KAAAH,EAAAA,GAAA,IAAAC,EAAA+B,OAAAjC,EAAAE,GAAAD,GAAA,MAAAC,KAAAyC,OAAApC,UAAAwF,OAAApD,OAAApC,UAAAwF,KAAA,WAAA,MAAA3F,MAAAwC,QAAA,cAAA,MAAAD,OAAApC,UAAAmG,aAAA/D,OAAApC,UAAAmG,WAAA,WAAA,GAAA1G,GAAAI,IAAA,OAAAA,MAAA6C,QAAA,qBAAAjD,EAAAI,KAAAwC,QAAA,iCAAA,SAAA5C,EAAAC,EAAAC,GAAA,GAAAS,GAAA,4BAAA,OAAA,sBAAAV,EAAA,MAAAU,EAAAgG,cAAA,OAAAhG,EAAA,MAAAT,EAAA0G,cAAA,OAAA5G,EAAAuB,aAAA,mBAAAmD,QAAA4B,OAAA5B,MAAAvD,MAAA,SAAA0F,OAAA,MAAAC,MAAA,IAAAD,MAAA,MAAAE,UAAA,SAAA/G,GAAA,GAAAA,YAAA0C,QAAA,CAAA,GAAAzC,GAAA,EAAA,IAAAD,EAAAuC,cAAAjC,MAAA,CAAA,IAAA,GAAAJ,GAAA,EAAAA,EAAAF,EAAAiC,OAAAhC,GAAAG,KAAA2G,UAAA/G,EAAAE,IAAA,IAAAA,KAAA,MAAA,IAAAD,EAAA+G,OAAA,EAAA/G,EAAAgC,OAAA,GAAA,IAAA,GAAAjC,EAAAuB,WAAAmB,OAAAnC,UAAAgB,SAAA,MAAA,IAAAvB,EAAAuB,WAAAqB,QAAA,KAAA,QAAA,GAAA,KAAA,GAAAjC,KAAAX,GAAAC,GAAA,IAAAU,EAAAiC,QAAA,KAAA,QAAA,KAAAxC,KAAA2G,UAAA/G,EAAAW,IAAA,GAAA,OAAA,IAAAV,EAAA+G,OAAA,EAAA/G,EAAAgC,OAAA,GAAA,IAAA,MAAA,gBAAAjC,GAAA,IAAAA,EAAA4C,QAAA,KAAA,QAAA,IAAAD,OAAA3C,MAAA0E,KAAAC,QAAAD,KAAAC,MAAA,SAAA3E,EAAAC,GAAA,YAAA,IAAAC,GAAAS,EAAAO,EAAAG,GAAA4F,OAAAC,iBAAA,4BAAAC,QAAA,gBAAAC,eAAA,0BAAAC,aAAA,iCAAAC,QAAA,4BAAAC,YAAA,kBAAAxD,UAAA,8BAAAyD,WAAA,SAAAxH,GAAA,OAAAyH,IAAArH,KAAAsH,YAAA,KAAA1H,GAAAiH,IAAA7G,KAAA6G,MAAAS,YAAA,SAAA1H,EAAAC,EAAAC,GAAA,GAAAS,GAAAO,EAAAG,EAAAI,EAAA0C,EAAAG,EAAAmB,EAAAC,EAAAiC,EAAAC,EAAA3H,EAAAsC,cAAAjC,MAAAuH,EAAAzH,KAAA0H,KAAAC,KAAAC,EAAA,SAAA/H,EAAAU,GAAA,GAAAO,EAAAP,EAAAV,GAAA,OAAAiB,GAAA,SAAAA,GAAA,QAAAA,EAAAK,aAAAL,EAAA,MAAAO,EAAA,MAAAxB,EAAAO,MAAA,EAAA,GAAA2D,EAAAjE,EAAAF,EAAAC,EAAAkE,IAAAA,GAAAxD,EAAA4B,cAAAG,SAAAyB,EAAA,UAAA,OAAAjD,GAAAoD,EAAA,KAAAmB,GAAA,IAAAnB,EAAApD,EAAAqB,YAAAkD,EAAAnB,EAAA/C,WAAAgD,MAAAsD,EAAAN,aAAA,IAAA9F,EAAAsG,EAAAhF,KAAAoB,EAAA3D,MAAA,GAAA,KAAAqH,EAAAI,WAAA/G,GAAA,KAAA,WAAAuE,GAAAsC,EAAAhF,KAAA,KAAAoB,EAAA3D,MAAA,GAAA,KAAAiF,EAAA,SAAA,IAAA,OAAAvE,EAAA4G,EAAA/E,KAAA8E,EAAAK,cAAA/D,EAAAjD,QAAA,QAAAoD,GAAA,IAAAxB,UAAA,KAAA,sEAAA,KAAAJ,QAAAoF,EAAA/E,KAAA8E,EAAAH,YAAAvD,EAAAjD,GAAA,MAAA,KAAAZ,OAAA,GAAAL,IAAAkE,EAAA,CAAA,GAAA9C,EAAAH,EAAAqB,cAAAjC,MAAA,IAAAoF,EAAAxE,EAAAe,OAAAyD,KAAA,OAAAxE,EAAAwE,IAAAxE,EAAAwE,IAAAxE,EAAAwE,GAAAnD,cAAAjC,QAAAe,GAAA,GAAAA,GAAAH,EAAAwE,GAAAnD,cAAAG,SAAArB,GAAA,EAAAyG,GAAA/E,KAAA8E,EAAAK,cAAA/D,EAAAjD,EAAAG,GAAA,OAAA,IAAAsB,QAAA,GAAA,gBAAAzB,KAAAA,EAAAA,EAAAK,WAAAqB,QAAA,MAAA,SAAAA,QAAA,SAAA,UAAA,UAAAuB,EAAA,CAAA0D,EAAAZ,IAAAlE,KAAApC,GAAAoH,EAAAhF,KAAA,SAAA8E,EAAAZ,IAAAhF,OAAA,KAAA8F,EAAAhF,KAAA,aAAA0C,EAAA,KAAAqC,EAAA/E,KAAA8E,EAAAI,WAAA/G,GAAA,OAAA,IAAAiH,QAAA,IAAAC,SAAA,GAAA,UAAAjE,GAAA,WAAAsB,EAAA,CAAAoC,EAAAZ,IAAAlE,KAAApC,GAAAoH,EAAAhF,KAAA,SAAA8E,EAAAZ,IAAAhF,OAAA,KAAA8F,EAAAhF,KAAA,aAAA0C,EAAA,KAAAqC,EAAA/E,KAAA8E,EAAAI,WAAA/G,GAAA,OAAA4G,EAAA/E,KAAA8E,EAAAK,cAAA/D,EAAAjD,KAAA,IAAAjB,EAAAsC,cAAAjC,MAAA,IAAAoF,EAAA,EAAAiC,EAAA1H,EAAAgC,OAAAyD,EAAAiC,EAAAjC,IAAAsC,EAAAtC,EAAAnE,WAAAtB,OAAA,KAAAU,IAAAV,GAAA+H,EAAArH,EAAAV,EAAA,OAAAD,KAAAA,EAAA,SAAA+H,EAAAhF,KAAA3C,KAAA2D,WAAA6D,GAAAG,EAAAhF,KAAA,qBAAA,OAAA/C,EAAAuE,MAAAnE,KAAA8G,oBAAAa,EAAAhF,KAAA,WAAA/C,EAAA,KAAAA,EAAA,UAAAE,EAAA4H,EAAA1G,KAAA,KAAAhB,KAAA6G,IAAAlE,KAAA9C,GAAA8H,EAAAhF,KAAA,SAAA3C,KAAA6G,IAAAhF,OAAA,KAAA,IAAAjC,GAAA+H,EAAA9F,OAAA,IAAA8F,EAAA3G,KAAA,KAAA,KAAA0G,EAAA7F,OAAA,IAAA6F,EAAA1G,KAAA,IAAA,KAAApB,EAAA,IAAA,QAAAkI,cAAA,SAAAlI,EAAAC,EAAAC,GAAA,GAAAS,GAAAO,EAAAG,EAAAI,EAAA,EAAA,IAAA,OAAAzB,EAAAuE,MAAAnE,KAAA8G,oBAAAzF,GAAA,YAAAzB,EAAA,IAAAA,EAAA,SAAAE,GAAA,GAAA,OAAAD,GAAA,QAAAA,EAAAsB,aAAAtB,EAAA,MAAA,OAAAA,EAAA,MAAA,IAAAD,EAAA,oBAAA,IAAA,IAAAC,EAAAgC,QAAAhC,EAAAsC,cAAAjC,QAAAL,EAAA,GAAA,MAAA,IAAAD,EAAA,uCAAA,IAAA,IAAAC,EAAAgC,QAAAhC,EAAA,GAAAsC,cAAAG,OAAA,CAAA/B,EAAAP,KAAAsH,aAAA,EAAAzH,EAAA,GAAA,IAAAkE,GAAAxD,EAAA4D,MAAAnE,KAAA+G,SAAA7C,EAAA3D,EAAA4D,MAAAnE,KAAAgH,eAAA,OAAAjD,GAAA,OAAAA,EAAAA,EAAA,GAAAvB,QAAAxC,KAAAiH,aAAA,IAAAzE,QAAA,IAAA,IAAAA,QAAA,OAAA,KAAA,GAAA0B,EAAA,OAAAA,EAAAA,EAAA,GAAA,GAAA3D,EAAAA,EAAA4D,MAAAnE,KAAAkH,SAAA3G,EAAA,OAAAA,EAAAA,EAAA,GAAA,GAAA,IAAAX,EAAAmE,EAAA,IAAAG,EAAA,uBAAA3D,EAAA,KAAAX,EAAA,IAAA,MAAA,KAAAC,EAAAgC,QAAAhC,EAAAsC,cAAAjC,MAAA,IAAAN,EAAA,sBAAAE,EAAAE,KAAAsH,YAAA1H,EAAAC,GAAA,IAAAiB,EAAAjB,EAAAsC,YAAAlB,EAAAH,EAAAK,WAAAgD,MAAAnE,KAAAmH,aAAA,GAAA5G,EAAAO,IAAAZ,MAAAF,KAAAsH,YAAA,SAAAzH,GAAA,GAAAG,KAAA6H,WAAAhI,GAAAwB,GAAA,cAAAJ,EAAA,IAAAjB,KAAA6G,IAAAlE,KAAA9C,GAAAwB,GAAA,UAAArB,KAAA6G,IAAAhF,OAAA,IAAA,UAAAjC,EAAAI,KAAA6H,WAAAhI,GAAA,IAAAD,EAAAyB,EAAA,IAAAd,EAAA,KAAAX,EAAA,MAAAiI,WAAA,SAAAjI,GAAA,MAAA2C,QAAA3C,GAAA4C,QAAA,KAAA,QAAAA,QAAA,KAAA,QAAAA,QAAA,KAAA,UAAAA,QAAA,UAAA,WAAA,cAAA3C,IAAA,IAAA,WAAA,MAAAiB,GAAAoC,IAAAjB,QAAAhB,OAAAH,GAAAsG,WAAAxH,EAAA,SAAAE,GAAAD,GAAAoI,IAAAhC,QAAAR,cAAA3F,EAAAuH,KAAAa,IAAAtI,EAAAiH,IAAA/G,EAAA+G,OAAA,KAAA,UAAA,MAAA/G,GAAAmB,EAAAmG,WAAA/G,KAAAY,EAAArB,IAAAqI,IAAAhC,QAAAR,cAAA3F,EAAAuH,KAAAa,IAAAtI,EAAAiH,IAAA/G,EAAA+G,IAAA,SAAA,MAAA/G,GAAAmB,EAAAmG,WAAA/G,KAAAY,EAAArB,GAAAW,EAAA0F,QAAAR,cAAA3F,EAAAuH,KAAArH,KAAAmI,OAAAtB,IAAA/G,EAAA+G,IAAAtG,KAAA+D,KAAA6D,SAAA7D,KAAA6D,OAAA,SAAAvI,EAAAC,EAAAC,GAAA,YAAA,IAAAS,GAAAO,EAAAG,EAAArB,EAAAqI,KAAArI,EAAAqI,IAAAG,SAAA/G,EAAAJ,EAAArB,EAAAqI,IAAA3D,KAAAC,MAAA3E,GAAAmE,EAAA9C,EAAArB,EAAAiH,IAAA7G,KAAAmI,OAAAtB,IAAA3C,EAAAjD,EAAArB,EAAAsI,IAAAtI,EAAAyF,EAAAY,QAAAtB,KAAA7E,EAAA,mBAAA,eAAAuB,EAAAxB,EAAAyG,cAAAhB,IAAA,KAAAxF,IAAAuF,GAAAA,IAAAvE,EAAAuE,EAAAxD,OAAAf,KAAA,OAAAuE,EAAAvE,GAAAsH,UAAA,IAAA,GAAA,IAAA,GAAA9C,EAAAxD,QAAAuD,EAAAvE,GAAAuH,UAAA,MAAA,SAAA9H,GAAA8E,EAAAvE,GAAAwH,aAAA,QAAAhD,EAAAxD,QAAAiC,EAAAxD,EAAA,IAAA,MAAA,gBAAA0F,QAAAxC,MAAAzD,KAAAuI,MAAAjE,KAAAkE,OAAAtE,EAAAoB,EAAAD,IAAAC,IAAAhB,KAAAkE,SAAAlE,KAAAkE,OAAA,SAAA5I,EAAAC,EAAAC,GAAA,YAAA,KAAA,GAAAS,GAAAO,EAAAG,EAAAI,EAAA0C,EAAAG,EAAAgC,OAAAb,EAAAf,KAAAqC,UAAArB,EAAAD,EAAAzF,EAAA,KAAA,MAAA4C,QAAA,MAAA,IAAA+E,KAAAC,EAAA,EAAAC,EAAA3H,EAAA+B,OAAA6F,IAAAD,GAAA3H,EAAA0H,GAAAiB,cAAAC,gBAAAf,GAAA3H,KAAAmI,OAAAtB,IAAA,GAAAW,EAAAC,EAAAD,IAAA,CAAA,OAAA1H,EAAA0H,GAAAY,UAAA,IAAA,GAAAtH,EAAAhB,EAAA0H,GAAAmB,aAAA7I,EAAA0H,GAAAmB,aAAAL,aAAA,KAAAxI,EAAA0H,GAAAoB,UAAA,SAAArI,EAAA,KAAAT,EAAA0H,GAAAoB,SAAA,MAAA1E,EAAApD,GAAAjB,EAAA2H,IAAAvG,EAAAqE,EAAAzC,QAAAtC,GAAAwD,EAAA,CAAA,MAAA,KAAA,GAAAjD,EAAAhB,EAAA0H,GAAAqB,WAAAP,aAAA,YAAA/H,EAAA2D,EAAApD,GAAAjB,EAAA2H,IAAAjH,EAAA,IAAAT,EAAA0H,GAAAqB,WAAAD,SAAA,OAAA,WAAArI,EAAAA,EAAA,IAAAA,EAAA,KAAAU,EAAAqE,EAAAzC,QAAAtC,GAAAwD,EAAA,CAAA,MAAA,SAAA,GAAAjE,EAAA0H,KAAAE,EAAA,QAAA,YAAA5H,EAAA0H,GAAAc,aAAA,aAAA,WAAAxI,EAAA0H,GAAAc,aAAA,aAAAxH,EAAAhB,EAAA0H,GAAAc,aAAA,YAAA/H,EAAA2D,EAAApD,GAAAjB,EAAA2H,IAAAvG,EAAAqE,EAAAzC,QAAAtC,EAAAoH,GAAApH,EAAA,IAAAT,EAAA0H,GAAAoB,SAAA,OAAA,WAAA9H,EAAAP,EAAA,IAAAA,EAAA,KAAAwD,EAAA,EAAA4D,EAAA1G,EAAA,IAAAV,EAAA8E,EAAAxF,EAAA2H,GAAA,KAAA,MAAAhF,QAAA,MAAA,IAAAvB,EAAAqE,EAAAzC,QAAAtC,GAAAwD,EAAAxD,EAAA4D,MAAA,OAAAtC,QAAAR,EAAAiE,EAAAwD,UAAA,EAAA7H,GAAAkD,MAAA,OAAAtC,OAAA,EAAA0F,EAAA5E,MAAAtB,EAAA0C,IAAA,MAAAwD,KAAAtB,QAAAtB,KAAAoE,YAAA,SAAAnJ,EAAAC,GAAA,GAAAD,EAAAoJ,SAAA,CAAA,IAAA,GAAAlJ,GAAAF,EAAAqJ,iBAAArJ,EAAA8I,iBAAAnI,EAAAX,EAAAoJ,SAAAnJ,EAAAD,EAAAE,EAAAoJ,YAAAC,2BAAA,MAAArI,KAAAG,EAAA,EAAAI,EAAAd,EAAA6I,eAAAnI,EAAAI,EAAAJ,IAAAH,EAAA6B,KAAApC,EAAA8I,aAAApI,GAAA,OAAAH,GAAA,MAAAlB,GAAAmJ,YAAAlJ,IAAAoG,QAAAtB,KAAAC,iBAAA,SAAAhF,EAAAC,GAAA,GAAAD,EAAAoJ,SAAA,CAAA,GAAAlJ,GAAAE,KAAA+I,YAAAnJ,EAAAC,EAAA,OAAAC,GAAA+B,OAAA,EAAA/B,EAAA,GAAA,KAAA,MAAAF,GAAAgF,iBAAA/E,IAAAoG,QAAAtB,KAAA2E,YAAA,SAAA1J,GAAA,GAAAC,GAAAC,EAAAS,EAAA0F,QAAAnF,EAAAP,EAAAqD,QAAA3C,EAAAV,EAAAmD,SAAA8C,aAAAjG,GAAA6C,MAAAtD,EAAAF,EAAA2J,KAAA1J,EAAA,GAAA2J,eAAA1J,EAAAD,EAAA4J,kBAAA7J,IAAA,gBAAAW,EAAAkD,MAAA3D,EAAAA,EAAA0C,QAAA,+BAAA,IAAA,KAAA,GAAAnB,GAAA0C,EAAAG,EAAApE,EAAA6F,OAAAnD,QAAA,kBAAA,YAAA6C,EAAAnB,EAAAwF,MAAA,MAAApE,KAAAiC,EAAA,EAAAC,EAAAnC,EAAAxD,OAAA0F,EAAAC,EAAAD,IAAA,IAAAA,GAAAlC,EAAAkC,GAAAf,gBAAAvF,IAAAI,EAAA,OAAAgE,EAAAkC,GAAApD,MAAA,sBAAAJ,EAAA,OAAAsB,EAAAkC,GAAApD,MAAA,gBAAA,OAAAkB,EAAAkC,GAAApD,MAAA,cAAA9C,EAAA0C,GAAA,GAAA1C,GAAAiE,IAAAD,EAAAkC,GAAAhF,SAAA8D,KAAAf,EAAA,MAAAD,EAAAkC,GAAAlG,GAAA0C,GAAAuB,KAAAjE,GAAA0C,GAAAuB,IAAA,OAAAD,GAAArE,KAAA,MAAAwB,QAAA,MAAAD,SAAA8D,KAAAvF,EAAA,OAAAmF,QAAAtB,KAAAgF,OAAA,SAAA/J,EAAAC,GAAA,YAAA,IAAAC,GAAA,SAAAF,GAAA,GAAAC,GAAAU,EAAAO,EAAAG,EAAAI,EAAA0C,EAAAG,EAAAmB,EAAAC,EAAAiC,EAAAC,KAAAC,EAAAvB,MAAA,QAAAtG,EAAAwI,UAAA,IAAA,GAAA,IAAA/G,EAAAzB,EAAA0I,aAAA,YAAA,UAAAjH,EAAAmG,KAAA,WAAAnG,GAAA,KAAAzB,EAAAgK,cAAApC,EAAA,IAAA3H,EAAAD,EAAAiK,WAAAxE,EAAA,EAAAC,EAAAzF,EAAAgC,OAAAwD,EAAAC,EAAAD,IAAAkC,EAAA1H,EAAAiK,KAAAzE,GAAA,OAAAkC,EAAAqB,SAAAzE,MAAA,cAAA9C,EAAAzB,EAAA0I,aAAA,KAAAf,EAAAqB,UAAA7E,EAAA1C,GAAA,cAAAA,EAAA,SAAAkG,EAAAc,UAAA,KAAAZ,EAAApG,GAAA,UAAAkG,EAAAc,UAAA,GAAAd,EAAAc,WAAAd,EAAAc,UAAAb,EAAA,IAAAD,EAAAqB,UAAA7E,EAAA,MAAA,KAAA,GAAAxD,EAAAX,EAAAiJ,WAAAP,aAAA,UAAAvE,EAAAxD,EAAAkH,EAAAlH,GAAA,UAAAX,EAAAyI,UAAA,GAAAzI,EAAAyI,WAAAzI,EAAAyI,UAAAb,EAAAzD,EAAA,GAAAnE,EAAAmK,gBAAA,IAAA1E,EAAA,EAAAC,EAAA1F,EAAAoK,WAAAnI,OAAAwD,EAAAC,EAAAD,IAAA,GAAAvE,EAAAlB,EAAAoK,WAAAF,KAAAzE,GAAApE,EAAAH,EAAA8H,SAAA/I,EAAAD,EAAAiK,WAAA,WAAA5I,IAAAA,EAAAH,EAAAwH,aAAA,WAAA,UAAArH,EAAAI,EAAAzB,EAAA0I,aAAA,YAAA,cAAAjH,IAAAA,EAAA,QAAA6C,EAAApD,EAAA8I,aAAA9I,EAAAmJ,KAAAlG,EAAA,YAAA1C,GAAA,UAAA6C,EAAA,GAAAA,EAAA7C,GAAAxB,EAAAgC,OAAAR,GAAA,IAAAiE,EAAAkC,EAAAC,EAAApG,GAAA0C,GAAAnE,EAAAmK,iBAAAlK,EAAAgC,OAAA,EAAA2F,EAAAnG,EAAAoG,EAAApG,GAAA0C,GAAAA,EAAAyD,EAAAvG,GAAAI,EAAAoG,EAAApG,GAAA0C,GAAAA,EAAAyD,EAAAzD,MAAA,CAAA,GAAA,SAAAjD,EAAAwH,aAAA,YAAA,CAAAd,EAAAvG,IAAAuG,EAAAvG,GAAA0B,KAAA6E,EAAAvG,GAAA0B,KAAA,MAAA,cAAA7B,EAAAwH,aAAA,UAAAd,EAAAvG,IAAAuG,EAAAvG,IAAAuG,EAAAvG,GAAA,IAAA,UAAA,GAAAuG,EAAAvG,GAAA,CAAAuG,EAAAvG,GAAA0B,KAAA6E,EAAAvG,GAAA0B,KAAA7C,EAAAgB,IAAA0G,EAAAvG,IAAAuG,EAAAvG,GAAAnB,EAAAgB,GAAA,UAAA,OAAAO,EAAAP,EAAAwH,aAAA,aAAA,IAAA,OAAAd,EAAA7E,KAAA6E,EAAA7E,KAAA,MAAA6E,EAAAvG,GAAA,IAAA,MAAA,KAAA,QAAAH,EAAA+H,WAAAqB,aAAApJ,GAAA,UAAAO,GAAA,WAAAJ,EAAA,WAAAA,GAAA,UAAAI,GAAA0C,EAAAjE,EAAAgB,GAAA0G,EAAAvG,GAAA8C,EAAAlC,QAAAkC,GAAAA,GAAAyD,EAAAvG,GAAAnB,EAAAgB,GAAA0G,EAAA7E,KAAA6E,EAAA7E,KAAA7C,EAAAgB,IAAA0G,EAAAvG,GAAAnB,EAAAgB,EAAA,MAAA,KAAA,SAAA,IAAA,SAAA,IAAA,UAAAoD,EAAApD,EAAA8I,aAAA9I,EAAAmJ,KAAAlG,EAAA,YAAA1C,GAAA,UAAA6C,EAAA,GAAAA,EAAAsD,EAAA7E,KAAA6E,EAAA7E,KAAA8E,EAAApG,GAAA0C,IAAAyD,EAAAvG,GAAAnB,EAAAgB,EAAA,MAAA,SAAA0G,EAAA7E,KAAA6E,EAAA7E,KAAA7C,EAAAgB,IAAA0G,EAAAvG,GAAAnB,EAAAgB,IAAA,MAAA,KAAAlB,EAAAwI,UAAA,cAAAxI,EAAA0I,aAAA,YAAAd,GAAAA,IAAAA,GAAAjH,EAAA,IAAAX,EAAAwI,SAAAxI,EAAA8I,gBAAA9I,EAAAkB,EAAAhB,EAAAS,GAAAU,EAAAH,EAAAP,EAAAqI,SAAA,OAAArI,KAAAA,EAAAkI,cAAAC,iBAAAzH,GAAAA,EAAAkB,cAAAjC,QAAAY,EAAAG,GAAApB,GAAA,SAAAA,EAAAsB,aAAAtB,EAAA,MAAAA,EAAAyE,KAAAqC,UAAA7F,EAAA,KAAAjB,GAAAiB,GAAA,mBAAAqJ,UAAA,SAAAvK,GAAA,YAAAA,GAAAwK,GAAAC,QAAA,SAAAzK,EAAAC,GAAA,MAAAG,MAAAsK,KAAArE,QAAApC,OAAAjE,EAAAC,IAAAG,OAAAmK,QCNAjE,OAAA,YAAAA,OAAA,WAAA,GAAA9D,OAAAmI,WAAArE,OAAA,SACAA,OAAA,WAEAA,OAAA,OAAA,SACAA,OAAA,OAAA,UACAsE,OAAAC,OAAAC,YAAA,6BACAF,OAAAC,OAAAE,eAAA,mCACAH,OAAAC,OAAAG,OAAA,cACAJ,OAAAC,OAAAI,aAAA,EACAL,OAAAC,OAAAK,aAAA,EACAN,OAAAC,OAAAM,QAAA,EACAP,OAAAC,OAAAO,aAAA,iBACAR,OAAAC,OAAAQ,eAAA,KACAT,OAAAC,OAAAS,iBAAA,GACA,WAAA,QAAAC,GAAArK,GAAA,MAAAA,KAAAsK,GAAAA,EAAAtK,GAAAsK,EAAAtK,OAAAwC,UAAAC,UAAAiD,cAAA3D,QAAA/B,GAAA,QAAAuK,GAAAvK,EAAAwK,GAAA,GAAAjG,GAAA,YAAAA,GAAAlF,UAAAmL,EAAAnL,UAAAW,EAAAyK,GAAAD,EAAAnL,UAAAW,EAAAX,UAAA,GAAAkF,GAAA,QAAAmG,GAAA1K,EAAAwK,EAAAjG,GAAA,GAAAkC,GAAArH,MAAAC,UAAAC,MAAAC,KAAAuB,UAAA,MAAA,OAAA,YAAA,MAAAd,GAAAL,MAAA6K,EAAA/D,EAAAkE,OAAAvL,MAAAC,UAAAC,MAAAC,KAAAuB,cAAA,QAAA8J,GAAA5K,GAAA,MAAAA,GAAA6K,MAAA7K,GAAAA,EAAAK,SAAA,WAAA,MAAAnB,MAAA4L,SAAA9K,EACA,QAAA+K,GAAA/K,EAAAwK,GAAAxK,EAAAA,EAAA4I,MAAA,KAAA,KAAA,GAAArE,GAAAa,OAAAqB,EAAA,EAAAA,EAAAzG,EAAAe,OAAA,EAAA0F,IAAAlC,EAAAvE,EAAAyG,MAAAlC,EAAAvE,EAAAyG,QAAAlC,EAAAA,EAAAvE,EAAAyG,GAAAlC,GAAAvE,EAAAA,EAAAe,OAAA,IAAAyJ,EAAA,QAAAQ,GAAAhL,EAAAwK,EAAAjG,GAAAvE,EAAAwK,GAAAjG,EAIA,QAAA0G,GAAAjL,EAAAwK,EAAAjG,GAAA,GAAAvE,EAAAkL,iBAAAlL,EAAAkL,iBAAAV,EAAAjG,GAAA,OAAA,IAAAvE,EAAAmL,YAAAnL,EAAAmL,YAAA,KAAAX,EAAAjG,OAAA,CAAA,GAAAkC,GAAAzG,EAAA,KAAAwK,EAAAxK,GAAA,KAAAwK,GAAA,MAAA/D,EAAA2E,GAAA7G,EAAAkC,IAAAlC,GAAA,QAAA6G,GAAApL,GAAA,MAAA,YAAA,IAAA,GAAAwK,GAAA,EAAAA,EAAAxK,EAAAe,OAAAyJ,IAAAxK,EAAAwK,MACA,QAAAa,KAAAC,EAAApI,SAAAqI,YAAAC,IAAA,EAAAC,EAAA1K,QAAAqE,OAAAsG,WAAAL,EAAA,IAAA,QAAAG,KAAA,IAAA,GAAAxL,GAAA,EAAAA,EAAAyL,EAAA1K,OAAAf,IAAAyL,EAAAzL,IAAAyL,GAAA1K,OAAA,EAKA,QAAA4K,GAAA3L,GAAAd,KAAAsL,EAAAxK,EAAAd,KAAA0M,KAAA1M,KAAAqL,KAAArL,KAAAkE,KAAAlE,KAAA4H,KAAA5H,KAAAiB,GAAA,EAAAjB,KAAAqF,KAOA,QAAAsH,GAAA7L,GAAAd,KAAA4M,EAAA9L,EAAAd,KAAA6M,KAAA7M,KAAAwL,EAAA,EAAA,QAAAsB,GAAAhM,EAAAwK,EAAAjG,GAAArF,KAAA+M,KAAAjM,EAAAd,KAAAgN,EAAA1B,EAAAtL,KAAAiN,EAAA5H,EAAArF,KAAAkN,EAAAlN,KAAAmN,GAAA,EAAAnN,KAAA0H,KAAA8C,OAAAC,OAAAqB,EAAA9L,KAAA+M,MAAAvB,EAAAxL,KAAAqB,EAAArB,MAGA,QAAAoN,GAAAtM,EAAAwK,GAAAtL,KAAAsL,EAAAxK,EAAAd,KAAAwH,EAAA8D,EAAAtL,KAAAmN,GAAA,EArBA,GAAAvF,GAAA5H,KAAAkE,EAAA,SAAApD,EAAAwK,EAAAjG,GAAAvE,EAAAA,EAAA4I,MAAA,KAAArE,EAAAA,GAAAuC,EAAA9G,EAAA,IAAAuE,IAAA,mBAAAA,GAAAgI,YAAAhI,EAAAgI,WAAA,OAAAvM,EAAA,GAAA,KAAA,GAAAyG,GAAAzG,EAAAe,SAAA0F,EAAAzG,EAAAwM,UAAAxM,EAAAe,QAAA,SAAAyJ,EAAAjG,EAAAA,EAAAkC,IAAAlC,EAAAkC,KAAAjF,OAAAnC,UAAAoH,GAAAlC,EAAAkC,GAAAlC,EAAAkC,MAAAlC,EAAAkC,GAAA+D,GAAA5D,EAAA,SAAA5G,EAAAwK,EAAAjG,GAAAvE,EAAAwK,GAAAjG,GAAA4H,EAAA,SAAAnM,EAAAwK,GAAA,GAAAA,EAAAxK,EAAAA,EAAA0B,QAAA1C,EAAA,SAAA0C,QAAAiF,EAAA,QAAAjF,QAAA+K,EAAA,QAAA/K,QAAAjC,EAAA,UAAAiC,QAAA3C,EAAA,SAAA2C,QAAA8C,EAAA,YAAA,CAAA,IAAAuH,EAAAxJ,KAAAvC,GAAA,MAAAA,OAAAA,EAAA+B,QAAA,OAAA/B,EAAAA,EAAA0B,QAAA1C,EAAA,cAAAgB,EAAA+B,QAAA,OAAA/B,EAAAA,EAAA0B,QAAAiF,EAAA,aAAA3G,EAAA+B,QAAA,OAAA/B,EAAAA,EAAA0B,QAAA+K,EAAA,aAAAzM,EAAA+B,QAAA,OAAA/B,EAAAA,EAAA0B,QAAAjC,EAAA,eAAAO,EAAA+B,QAAA,OAAA/B,EAAAA,EAAA0B,QAAA3C,EAAA,cAAAiB,EAAA+B,QAAA,QAAA/B,EAAAA,EAAA0B,QAAA8C,EAAA,SAAA,MAAAxE,IAAAhB,EAAA,KAAA2H,EAAA,KAAA8F,EAAA,KAAAhN,EAAA,KAAAV,EAAA,KAAAyF,EAAA,QAAAuH,EAAA,cAAAW,EAAA,uBAAApC,IACAlF,QAAAuH,IAAAvH,OAAAuH,MAAAvJ,IAAAA,EAAA2H,GAAAnE,IAAAA,EAAAoE,GAAAtB,OAAAC,OAAAqB,KAAA5H,EAAA,0BAAAsG,OAAAC,OAAAqB,EAAA,IAAAoB,MAAAQ,IAAAlD,QAAAC,OAAA/D,QAAAxC,EAAA,qBAAAsG,OAAAC,OAAA/D,MACA8D,OAAAmD,KAAA,SAAA7M,EAAAwK,EAAAjG,GAAA,QAAAkC,GAAAzG,GAAA,GAAAwK,GAAAxK,EAAA4I,MAAA,IAAA,IAAA,EAAA4B,EAAAzJ,OAAA,KAAA6J,GAAA,YAAA5K,EAAA,eAAA,oBAAAwK,GAAA,KAAA1L,EAAA0L,EAAA,GAAAjG,EAAAuI,SAAAvI,EAAAuI,aAAAvI,EAAAuI,SAAAjL,KAAA2I,EAAA,KAAA,GAAA1L,GAAAkB,CAAA,IAAAuE,EAAAA,MAAAvE,YAAAZ,QAAAY,GAAA,gBAAAA,IAAA,kBAAAA,GAAAE,MAAA,kBAAAF,GAAA+M,QAAA,IAAA,GAAAlG,GAAA,EAAAA,EAAA7G,EAAAe,OAAA8F,IAAAJ,EAAAzG,EAAA6G,QAAAJ,GAAAzG,EAAA,MAAAA,EAAAoM,EAAA,IAAAtN,IACA,KAAA8L,GAAA,YAAA9L,EAAA,eAAA,IADAyF,IAAAA,EAAAyI,UAAAzI,EAAA0I,SAAA1I,EAAAyI,SAAAzI,EAAA0I,QAAA1I,GAAA,gBAAAA,GAAA2I,WAAArG,EAAAtC,EAAA2I,SAAArG,EAAAxD,MAAA,yBAAAwD,EACAzB,OAAAQ,KAAAiB,GAAAtC,EAAA2I,SAAArG,KAAAA,EAAAtC,GAAA,MAAAA,EAAA2I,YAAAlN,EAAA4K,EAAAJ,GAAA,KAAAI,GAAA,YAAA9L,EAAA,sCAAA+H,GAAA7G,EAAAwE,EAAAgG,EAAAjG,GAAAa,OAAAsG,WAAAnH,EAAA2I,SAAA,GAAAlN,EAAA6M,KAAArC,EAAAjG,GAAAvE,EAAAwE,EAAAgG,EAAAjG,IAAAvE,EAAA6M,KAAArC,EAAAjG,IAAAnB,EAAA,cAAAsG,OAAAmD,MACAnD,OAAAyD,GAAA,SAAAnN,EAAAwK,GAAAA,GAAA,GAAAiB,EAAA1K,SAAAkK,EAAA7F,OAAA,OAAAoG,IAAAnB,EAAA,UAAAA,EAAA,YAAAA,EAAA,cAAAA,EAAA,YAAAjF,OAAAgI,MAAAhI,OAAA8F,iBAAA,mBAAAM,GAAA,GAAAnB,EAAA,QAAAnH,SAAAmK,MAAA,kFAAAhD,EAAA,WAAAA,EAAA,eAAAjF,OAAAsG,WAAAL,EAAA,KAAAI,EAAA5J,KAAA7B,IAAAiL,EAAA7F,OAAA,OAAApF,IAAAoD,EAAA,2BAAAsG,OAAAyD,GACA,IAAA1B,KAAA/B,QAAAC,OAAA2D,EAAA,WAAA,GAAAtN,GAAAoF,OAAAmI,MAAAC,UAAA,aAAAxN,EAAAuL,aAAAvL,EAAAyN,mBAAA,KAAAzN,EAAA+H,WAAA2F,YAAA1N,GAAAwL,MAAApI,EAAA,yBAAAsG,OAAAC,OAAA2D,EAAA,IAAAhC,IAAAqC,QAAA,EAAAC,UAAA,EAEAlE,QAAAC,OAAA9C,EAAA,SAAA7G,EAAAwK,EAAAjG,GAAA,GAAAkC,EAAA,KAAAA,EAAAK,EAAA5D,SAAA2K,cAAA,oBAAApH,EAAAA,EAAAqH,OAAArH,EAAAe,aAAA,WAAAkF,EAAAnK,KAAAkE,KAAAA,EAAA,QAAAlC,EAAA,CAAA,GAAA,UAAAvE,EAAA,CAAA,GAAAlB,GAAAoE,SAAAC,cAAA,SAAArE,GAAAwB,KAAA,kBAAAxB,EAAAsI,IAAAoD,EAAA/D,GAAA3H,EAAAkF,aAAA,QAAAyC,OAAA,OAAAzG,IAAAlB,EAAAoE,SAAAC,cAAA,QAAArE,EAAAwB,KAAA,WAAAxB,EAAAiP,KAAAvD,EAAA1L,EAAAkP,IAAA,eAAAhO,EAAAkD,SAAAoB,qBAAA,QAAA,MAAAtE,EAAAkD,SAAA+K,KAAAlG,WAAA5D,YAAAjB,SAAAC,cAAA,UAAAnD,EAAAmE,YAAArF,OAAA,UACAkB,GAAAlB,EAAA,gBAAAqN,EAAA3B,GAAA,2BAAA/D,IAAA3H,GAAA,WAAAqN,EAAA1F,GAAA,KAAAvD,SAAAmK,MAAAvO,EAAA,eAAA,OAAAkB,IAAAlB,EAAA,eAAAqN,EAAA3B,GAAA,qCAAA/D,IAAA3H,GAAA,WAAAqN,EAAA1F,GAAA,KAAAvD,SAAAmK,MAAAvO,EAAA,cAAAsE,EAAA,6BAAAsG,OAAAC,OAAA9C,GAAA6C,OAAAC,OAAAuE,EAAA,SAAAlO,GAAA4M,EAAA5M,GAAAoD,EAAA,oBAAAsG,OAAAC,OAAAuE,GAAAxE,OAAAC,OAAAwE,GAAA,SAAAnO,GAAA,IAAA,GAAAwK,KAAAxK,GAAA,gBAAAwK,IAAAA,GAAA,KAAAA,EAAA4D,OAAA,KAAAhC,EAAA5B,KAAA4B,EAAA5B,GAAA,GAAA8B,GAAA9B,EAAAxC,UAAA,GAAAhI,EAAAwK,MACApH,EAAA,oBAAAsG,OAAAC,OAAAwE,IAAAzE,OAAAC,OAAA0E,GAAA,SAAArO,GAAA,IAAAA,EAAAA,EAAAsO,QAAAtO,EAAAe,OAAA,IAAA,GAAAyJ,GAAA,EAAAA,EAAAxK,EAAAe,SAAAyJ,EAAA,CAAA,GAAAjG,GAAAvE,EAAAwK,EAAA,iBAAAjG,GAAA6H,EAAA,IAAA7H,GAAA,GAAAoH,GAAApH,IAAAA,EAAA,GAAAyH,GAAAzH,EAAA0H,KAAA1H,EAAAgK,SAAAhK,EAAAiK,aAAApC,EAAA,IAAA7H,EAAA0H,MAAA1H,KAAAnB,EAAA,mBAAAsG,OAAAC,OAAA0E,IAAA3E,OAAAC,OAAAgE,OAAA,SAAA3N,GAAAoM,EAAA,IAAApM,EAAAmC,QAAA5B,EAAAP,IAAAoD,EAAA,uBAAAsG,OAAAC,OAAAgE,QAAAjE,OAAAC,OAAA8E,EAAA,WAAA,MAAA,SAAA,GAAAnN,OAAAmI,UAAApJ,SAAA,IAAAqO,KAAAC,MAAA,IAAAD,KAAAE,UAAAvO,SAAA,MACA+C,EAAA,+BAAAsG,OAAAC,OAAA8E,GAAA1D,EAAA,sBAAAA,GAAAA,EAAA,wBAAAC,GAAAtB,OAAAC,OAAA3J,KAAAoD,EAAA,uBAAAsG,OAAAC,OAAA3J,GAAA0J,OAAAC,OAAA3J,EAAAwL,EAAA,uDAAA5E,EAAA8C,OAAAC,OAAA3J,EAAA,YAAA0J,OAAAC,OAAA3J,EAAAwL,GAAA9B,OAAAC,OAAA3J,EAAAoL,EAAA,sDAAAxE,EAAA8C,OAAAC,OAAA3J,EAAA,WAAA0J,OAAAC,OAAA3J,EAAAoL,GAAA1B,OAAAC,OAAA3J,EAAAqL,EAAA,sDACAzE,EAAA8C,OAAAC,OAAA3J,EAAA,WAAA0J,OAAAC,OAAA3J,EAAAqL,GAAA3B,OAAAC,OAAA3J,EAAAsM,EAAA,mDAAA1F,EAAA8C,OAAAC,OAAA3J,EAAA,QAAA0J,OAAAC,OAAA3J,EAAAsM,GAAA5C,OAAAC,OAAA3J,EAAAsL,EAAA,wDAAA1E,EAAA8C,OAAAC,OAAA3J,EAAA,aAAA0J,OAAAC,OAAA3J,EAAAsL,GAAA5B,OAAAC,OAAA3J,EAAA2L,EAAA,wDAAA/E,EAAA8C,OAAAC,OAAA3J,EAAA,aAAA0J,OAAAC,OAAA3J,EAAA2L,GACAA,EAAAtM,UAAA4D,EAAA,SAAAjD,EAAAwK,GAAA,GAAAjG,GAAA,EACA,IADA,QAAAiG,IAAA,QAAAA,EAAAwC,WAAAzI,GAAA,OAAAsK,mBAAArE,EAAAwC,WAAA,QAAAxC,EAAAsE,QAAAvK,GAAA,WAAAsK,mBAAA,SAAArE,EAAAsE,QAAA,QAAAtE,EAAAuE,aAAAxK,GAAA,eAAAsK,mBAAArE,EAAAuE,aAAA,QAAAvE,EAAAsC,WAAAvI,GAAA,aAAAsK,mBAAArE,EAAAsC,WAAA,MAAAtC,EAAA0C,WAAA3I,GAAA,YAAA,QAAAiG,EAAAwE,QAAAzK,GAAA,UAAAsK,mBAAArE,EAAAwE,QAAA,QAAAxE,EAAAyE,QAAA1K,GAAA,eAAA,QAAAiG,EAAA0E,eAAA3K,GAAA,IAAAiG,EAAA0E,gBACAhQ,KAAAiB,EAAA,CAAAuJ,OAAAxK,KAAAsL,IAAAd,OAAAxK,KAAAsL,GAAA2E,SAAA5K,GAAA,QAAAsK,mBAAAnF,OAAAxK,KAAAsL,GAAA2E,SAAA3E,IAAA,KAAA,GAAA/D,KAAAvH,MAAAqL,EAAA,KAAA9D,EAAA2H,OAAA,IAAA5D,EAAA3I,KAAA4E,EAAAuB,UAAA,GAAA,KAAAvB,IAAAvH,MAAAkE,EAAA,KAAAqD,EAAA2H,OAAA,IAAAlP,KAAAkE,EAAAqD,IAAA+D,EAAA3I,KAAA4E,EAAAuB,UAAA,GAAAzD,IAAA,SAAAsK,mBAAArE,EAAAtK,KAAA,MAAA,MAAAwJ,QAAAC,OAAAC,YAAA,UAAA1K,KAAAsL,EAAA,MAAAxK,EAAA0J,OAAAC,OAAAS,iBAAA7F,GACAoH,EAAAtM,UAAAuN,EAAA,SAAA5M,GAAA,GAAAwK,GAAA,IAAAxK,KAAAwK,EAAAxK,EAAA8M,SAAA,IAAAvI,GAAA,IAAA,IAAAiG,EAAA,GAAA,gBAAAA,GAAAjG,GAAAvE,EAAA8M,cAAA,IAAAtC,EAAAzJ,OAAA,IAAAwD,KAAAvE,EAAA,EAAAA,EAAAwK,EAAAzJ,OAAAf,IAAA,gBAAAwK,GAAAxK,IAAAuE,EAAA1C,KAAA2I,EAAAxK,GAAA0B,QAAA,YAAA,IAAAgE,cAAA,KAAAnB,IAAAA,GAAA,YAAAiG,KAAAxK,EAAA,EAAAA,EAAAuE,EAAAxD,OAAAf,IAAAd,KAAAqL,EAAA,IAAAhG,EAAAvE,KAAAwK,EAAA3I,KAAA0C,EAAAvE,GAAA,OAAAwK,IACAmB,EAAAtM,UAAAwN,KAAA,SAAA7M,EAAAwK,GAAA,GAAAjG,GAAArF,KAAA0N,EAAApC,GAAA/D,EAAA+D,GAAA,MAAAA,EAAA0C,QAAA,IAAAzG,EAAA,GAAA3H,GAAA,GAAA+M,GAAArB,EAAA0C,SAAA,KAAA,GAAArG,MAAAH,EAAAnC,EAAAxD,OAAA,EAAA,GAAA2F,EAAAA,IAAA,CAAA,GAAA0I,GAAA7K,EAAAmC,EAAAD,IAAA3H,EAAA+M,EAAAuD,GAAAlQ,KAAAkE,EAAA,IAAAgM,IAAA7K,EAAAvC,OAAA0E,EAAA,GAAAD,GAAAvH,KAAA4H,EAAA,IAAAsI,GAAAvN,KAAA/C,IAAA+H,EAAAhF,KAAAuN,GAAA,GAAA7K,EAAAxD,OAAA,CAAA,IAAAyJ,GAAAA,EAAAsC,WAAAtC,EAAAsC,SAAAvI,EAAA8K,OAAAnP,KAAA,MAAAwG,EAAA,EAAAA,EAAAG,EAAA9F,OAAA2F,IAAA0I,EAAAvI,EAAAH,GAAAxH,KAAA4H,EAAA,IAAAsI,MAAA3I,GAAAvH,KAAA4H,EAAA,IAAAsI,GAAAvN,KAAA/C,EAAA,IAAA0L,GAAA,MAAAoC,EAAA,IAAA1N,KAAAsL,IAAA,MAAAoC,EAAA,IAAA1N,KAAAsL,GAAA8E,SAAA,IAAAtP,IAAA0J,OAAAC,OAAAS,mBAAAlL,KAAAiB,EAAAqK,GAAAA,EAAA+E,YAAA7F,OAAAC,OAAA9C,EAAA,SAAA3H,KAAA+D,EAAAjD,EACAwK,GAAA/D,OAAA,CAAAzG,EAAA4M,EAAA,IAAA1N,KAAAsL,GAAAd,OAAAxK,KAAAsL,GAAAd,OAAAxK,KAAAsL,MAAA,KAAA,GAAAoB,KAAA5L,GAAAwP,WAAA5D,GAAA,KAAAA,EAAAwC,OAAA,KAAA1E,OAAAxK,KAAAsL,GAAAoB,EAAA5D,UAAA,IAAAhI,EAAAwP,WAAA5D,GAAAlC,QAAAC,OAAA9C,EAAA,SAAA6C,OAAAC,OAAAC,YAAA5J,EAAAyP,KAAAzP,EAAA0P,GAAAjJ,GAAAzG,EAAA2P,KAAAjG,OAAAC,OAAA9C,EAAA,MAAA6C,OAAAC,OAAAC,YAAA5J,EAAAyP,KAAAzP,EAAA2P,IAAAlJ,GAAA,IAAAvH,KAAAiB,IAAAjB,KAAAiB,GAAA,EAAAjB,KAAAqF,GAAA,GAAAjD,OAAAmI,UAAA,GAAAvK,KAAAqF,EAAA,MAAArF,KAAAqF,OAAAmC,EAAA,EAAAA,EAAAG,EAAA9F,OAAA2F,IAAA0I,EAAAvI,EAAAH,GAAAxH,KAAAkE,EAAA,IAAAgM,IAAA,IACAzD,EAAAtM,UAAAkB,EAAA,SAAAP,OAAAd,KAAAqF,IAAA2H,EAAA,MAAAhN,KAAAsL,EAAA,QAAA,GAAAlJ,OAAAmI,UAAAvK,KAAAqF,IAAA,GAAArF,KAAAqF,MAAArF,KAAA0M,EAAA1M,KAAA0M,EAAAjB,OAAA3K,EAAA4P,YAAAlG,OAAAC,OAAAzK,KAAAsL,KAAAd,OAAAC,OAAAzK,KAAAsL,OAAAd,OAAAC,OAAAzK,KAAAsL,GAAAsC,SAAA5N,KAAA0M,EAAAtM,MAAA,EAAA,KAAA,GAAAkL,GAAA,EAAAA,EAAAxK,EAAA4P,WAAA7O,OAAAyJ,IAAA,CAAAtL,KAAAqL,EAAA,IAAAvK,EAAA4P,WAAApF,KAAA,EAAAtL,KAAAkE,EAAA,IAAApD,EAAA4P,WAAApF,KAAA,CAAA,IAAAjG,GAAArF,KAAA4H,EAAA,IAAA9G,EAAA4P,WAAApF,GAAA,IAAAjG,EAAA,CAAA,IAAA,GAAAkC,GAAA,EAAAA,EAAAlC,EAAAxD,OAAA0F,IAAAlC,EAAAkC,GAAAoJ,EAAA7P,EAAA4P,WAAApF,UAAAtL,MAAA4H,EAAA,IAAA9G,EAAA4P,WAAApF,OACAmB,EAAAtM,UAAAmF,EAAA,SAAAxE,EAAAwK,GAAA,MAAA,IAAAtL,KAAA0N,EAAApC,GAAAzJ,QAAA4K,EAAAtM,UAAAuL,EAAA,WAAA,OAAA,GAAAiB,EAAAxM,UAAAwM,EAAA,SAAA7L,GAAAd,KAAAwL,IAAAxL,KAAA6M,EAAA,IAAA/L,IAAA,GAAA6L,EAAAxM,UAAAwQ,EAAA,SAAA7P,GAAAd,KAAA6M,EAAA,IAAA/L,KAAAd,KAAA6M,EAAA,IAAA/L,IAAA,EAAAd,KAAAwL,IAAA,GAAAxL,KAAAwL,GAAAtF,OAAAsG,WAAAxM,KAAA4M,EAAA,KAAAvB,EAAAyB,EAAAL,GAAAK,EAAA3M,UAAAwN,KAAA,SAAA7M,EAAAwK,GAAA,GAAAjG,GAAAiG,GAAA,MAAAA,EAAA0C,QAAA3I,IAAArF,KAAA0H,EAAA/E,KAAA2I,EAAA0C,UAAA1C,EAAA0C,SAAA,2BAAAhO,KAAA+M,MAAA/M,KAAAmN,GAAA,EAAA7B,GAAAA,EAAA+E,YAAA7F,OAAAC,OAAA9C,EAAA,SAAA3H,KAAA+D,EAAAjD,EAAAwK,GAAAjG,IAAAyH,EAAA3M,UAAAmF,EAAA,SAAAxE,EAAAwK,GAAA,MAAAA,IAAA,MAAAA,EAAA0C,SAAAhO,KAAAkN,EAAAlN,KAAAmN,GAAAL,EAAA3M,UAAAkB,EAAA,WAAArB,KAAAkN,GAAA,CAAA,KAAA,GAAApM,GAAA,EAAAA,EAAAd,KAAA0H,EAAA7F,OAAAf,IAAAoF,OAAAsG,WAAAxM,KAAA0H,EAAA5G,GAAA,EAAAd,MAAA0H,KACA,IAAAkF,GAAA,SAAA9L,EAAAwK,GAAA,MAAAxK,GAAA8P,OAAAjB,mBAAA7O,EAAA8P,QAAA,IAAAjB,mBAAArE,GAAAxK,EAAA+P,MAAAvF,EAAA9I,QAAA,SAAA1B,EAAA+P,OAAA,GAAA/D,GAAA3M,UAAA4D,EAAA,SAAAjD,EAAAwK,GAAA,MAAAtL,MAAA8Q,EAAA9Q,KAAAuM,EAAAzL,GAAAA,EAAAwK,IACAwB,EAAA3M,UAAA2Q,EAAA,SAAAhQ,EAAAwK,EAAAjG,GAAA,GAAAkC,GAAA,EAAA,IAAAzG,EAAAiQ,MAAAxJ,GAAA,IAAAqF,EAAA9L,EAAAiQ,IAAAvG,OAAAC,OAAAG,SAAA9J,EAAAkQ,UAAAzJ,GAAA,IAAAqF,EAAA9L,EAAAkQ,QAAA1F,IAAAA,EAAAd,OAAAC,OAAAM,QAAAjK,EAAAmQ,IAAAnQ,EAAAmQ,IAAAnQ,EAAAoQ,IAAA,MAAA7L,EAAA,IAAA,GAAAzF,KAAAyF,GAAAvE,EAAAqQ,OAAAvR,GAAA2H,GAAA,IAAAqF,EAAA9L,EAAAqQ,OAAAvR,GAAAyF,EAAAzF,IAAA,gBAAAA,EAAA2H,GAAA,IAAAlC,EAAAzF,GAAA,eAAAA,IAAA0L,EAAA,UAAAjG,EAAAzF,GAAAkB,EAAAoQ,IAAApI,UAAAhI,EAAAoQ,IAAArO,QAAA,IAAA,IAAA,OAAA2H,QAAAxK,KAAA+M,aAAAzB,EAAAzI,QAAA,MAAA0E,IAAAA,EAAA,IAAAA,EAAAuB,UAAA,IAAAwC,EAAA/D,GAAAuF,EAAA3M,UAAAuL,EAAA,SAAA5K,GAAA,MAAAd,MAAAuM,EAAAzL,GAAAsQ,UACAtE,EAAA3M,UAAAoM,EAAA,SAAAzL,GAAA,GAAAd,KAAAiN,EAAA,IAAA,GAAA3B,GAAA,EAAAA,EAAAtL,KAAAiN,EAAApL,SAAAyJ,EAAA,CAAA,GAAAjG,GAAArF,KAAAiN,EAAA3B,EAAA,IAAA,GAAA7I,QAAA4C,EAAAgM,SAAAhO,KAAAvC,GAAA,MAAAuE,GAAA,MAAArF,MAAAgN,GAAA3B,EAAA+B,EAAAX,GAAAW,EAAAjN,UAAAwN,KAAA,SAAA7M,EAAAwK,GAAAtL,KAAAmN,GAAA,EAAA3C,OAAAC,OAAA9C,EAAA,SAAA3H,KAAA+D,EAAAjD,EAAAwK,IAAA,IAAA8B,EAAAjN,UAAAmF,EAAA,WAAA,MAAAtF,MAAAmN,GAAAC,EAAAjN,UAAAkB,EAAA,aACA+L,EAAAjN,UAAA4D,EAAA,SAAAjD,EAAAwK,GAAA,IAAAtL,KAAAwH,EAAA4I,SAAA,IAAAtP,GAAA,CAAA,GAAAd,KAAAwH,EAAA8J,QAAA,CAAA,GAAAjM,GAAArF,KAAAwH,EAAA8J,QAAA,IAAAxQ,EAAAuE,KAAAvE,EAAAuE,GAAA,IAAArF,KAAAwH,EAAA4I,SAAA,IAAAtP,GAAA,KAAA4K,GAAA,YAAA1L,KAAAsL,EAAA,mBAAAxK,EAAA,gBAAA,MAAA0J,QAAAC,OAAAE,eAAA,SAAA3K,KAAAsL,EAAA,IAAAxK,EAAA,IAAAd,KAAAwH,EAAA4I,SAAA,IAAAtP,GAAAwK,GAAAA,EAAAiG,aAAA,eAAA,eAAAnE,EAAAjN,UAAAuL,EAAA,WAAA,OAAA,EAAA,IAAAiF,IAAA,EAAApB,KAAAJ,IAAA,GAAA/M,OAAAmI,UAAAuG,EAAA,WAAAH,IAAA5E,EAAA7F,OAAA,SAAAkI,GAAAuC,GAAA,IAAAa,EAAA,SAAA1Q,EAAAwK,GAAA,GAAAwF,MAAAtG,OAAAC,OAAAM,QAAAP,OAAAC,OAAAgH,UAAA,IAAAjH,OAAAC,OAAAgH,QAAAC,KAAA,CAAA,IAAA,GAAArM,GAAA,EAAAA,EAAAvE,EAAAe,OAAAwD,IAAAvE,EAAAuE,GAAAsK,mBAAA7O,EAAAuE,GAAAmB,cAAAhE,QAAA,gBAAA,KAAA,KAAA6C,EAAA,EAAAA,EAAAiG,EAAAzJ,OAAAwD,IAAAiG,EAAAjG,GAAAsK,mBAAArE,EAAAjG,GAAAmB,cAAAhE,QAAA,gBAAA,KAAA0D,QAAAsG,WAAAhB,EAAAiC,EAAA,KAAA,wCAAA3M,EAAAE,KAAA,KAAA,OAAAsK,EAAAtK,KAAA,MAAA,OAAAgM,EAAA,SAAAlM,EACAwK,EAAAjG,GAAAA,EAAAmM,GAAA1Q,IAAAwK,KAAAwF,IAAAvB,EAAA5M,KAAA,IAAA4M,EAAA1N,OAAA,IAAA8N,mBAAA7O,GAAAwK,EAAA,IAAAA,EAAA,MAAApF,OAAAsG,WAAA4B,EAAA,EAAAmB,EAAA1N,OAAA,EAAA,QAAAuM,EAAA,WAAA,GAAAmB,EAAA1N,OAAA,CAAA,GAAAf,GAAA0J,OAAAC,OAAAC,WAAA,IAAA5J,EAAA+B,QAAA,WAAA/B,EAAAA,EAAA0B,QAAA,SAAA,WAAAiL,EAAA3M,EAAA,UAAAyO,EAAAvO,KAAA,KAAA,QAAA,GAAAoB,OAAAmI,UAAA,MAAA,GAAAnI,OAAAmI,UAAA4E,KAAAI,EAAA1N,OAAA,IAAA4L,EAAA,SAAA3M,GAAA,GAAAwK,GAAA,GAAAqG,OAAAtM,EAAAoI,EAAA+D,GAAA/D,GAAA1B,EAAA1G,GAAAiG,EAAAA,EAAAsG,OAAAtG,EAAAuG,QAAA,iBAAApE,GAAA1B,EAAA1G,IAAAiG,EAAApD,IAAApH,EAAAwK,EAAA,KAAAmC,GAAA1B,KAAA0B,EAAA+D,EAAA,EAAA3F,EAAA,8BAAA2F,GACA3F,EAAA,2BAAAmB,GAAAnB,EAAA,sCAAA4B,MAEAjD,OAAAC,OAAAqH,IAAA1C,OAAA,gBAAA,YAAArC,KAAA,cAAAsC,UAAA6B,IAAA,iEAAAD,IAAA,KAAAF,KAAAH,OAAA,OAAAI,SAAAJ,OAAA,KAAAQ,UAAA,EAAAD,QAAAY,SAAAnB,OAAA,MAAA5C,UAAA4C,OAAA,YAAA9C,UAAA8C,OAAA,SAAA,WAAA,QAAA,OAAA,eAAA,SAAA,QAAA,QAAA,iBAAA,SAAA,mBAAA7D,KAAA,OAAAsC,UAAA6B,IAAA,6CAAAD,IAAA,sDAAAF,KAAAH,OAAA,OAAAI,SAAAJ,OAAA,KAAAQ,UAAA,EAAAD,QAAAnD,UAAA6C,MAAA,uBAAA/C,UAAA8C,OAAA,QAAAtB,cAAA4B,IAAA,yCAAAD,IAAA,0CAAAD,SAAAJ,OAAA,KAAAQ,UAAA,EAAAD,QAAAnD,UAAA4C,OAAA,YAAA9C,UAAA8C,OAAA,OAAAS,QAAA,iBAAAtE,KAAA,gBAAAsC,UAAA6B,IAAA,8DAAAD,IAAA,+DAAAF,KAAAH,OAAA,OAAAI,SAAAJ,OAAA,KAAAQ,UAAA,EAAAD,aAAApE,KAAA,UAAAsC,UAAA6B,IAAA,sCAAAD,IAAA,KAAAF,KAAAH,OAAA,OAAAI,SAAAJ,OAAA,KAAAQ,UAAA,EAAAD,QAAArD,UAAA8C,OAAA,SAAA,OAAA7D,KAAA,QAAAsC,UAAA6B,IAAA,uCAAAD,IAAA,4CAAAF,KAAAH,OAAA,OAAAI,SAAAJ,OAAA,KAAAQ,UAAA,EAAAD,QAAAnD,UAAA4C,OAAA,YAAA9C,UAAA8C,OAAA,SAAA,WAAA,QAAA,SACApG,OAAAC,OAAAuH,KAAAC,WAAA7B,UAAA8B,KAAA,IAAAC,OAAA,KAAA5B,KAAA,oDAAAC,GAAA,qBAAAC,IAAA,oBAAAH,YAAA8B,WAAA,MAAAC,eAAA,EAAAC,UAAA,qCAAAC,aAAAnC,UAAA8B,KAAA,IAAAC,OAAA,KAAA5B,KAAA,sDAAAC,GAAA,qBAAAF,YAAA8B,WAAA,MAAAE,UAAA,qCAAAE,gBAAApC,UAAA8B,KAAA,IAAAC,OAAA,KAAA5B,KAAA,yDAAAC,GAAA,qBAAAF,YAAA8B,WAAA,MAAAE,UAAA,qCAAAG,SAAArC,UAAA8B,KAAA,IAAAC,OAAA,KAAA5B,KAAA,kDAAAC,GAAA,eAAAF,YAAA8B,WAAA,MAAAE,UAAA,qCAAAI,WAAAtC,UAAA8B,KAAA,IAAAC,OAAA,KAAA5B,KAAA,oDAAAC,GAAA,eAAAC,IAAA,cAAAH,YAAA8B,WAAA,MAAAE,UAAA,qCAAAK,QAAAvC,UAAAwC,KAAA,IAAAC,OAAA,KAAAtC,KAAA,iDAAAC,GAAA,eAAAF,YAAA8B,WAAA,MAAAE,UAAA,uCACA9H,OAAAC,OAAAqI,KAAAC,cAAA3C,UAAA4C,QAAAzB,aAAA,mBAAA0B,WAAA,gBAAAC,QAAA3B,aAAA,mBAAA0B,WAAA,iBAAA3B,SAAA6B,KAAA,QAAAC,iBAAAhD,UAAAiD,UAAA9B,aAAA,eAAA0B,WAAA,oBAAAK,UAAA/B,aAAA,eAAA0B,WAAA,oBAAAM,UAAAhC,aAAA,eAAA0B,WAAA,qBAAA3B,SAAAY,KAAA,QAAAC,OAAA,UAAAqB,aAAApD,UAAAqD,UAAAlC,aAAA,oBAAA0B,WAAA,eAAAS,UAAAnC,aAAA,oBAAA0B,WAAA,gBAAA3B,SAAAsB,KAAA,QAAAC,OAAA,QAAAc,OAAA,UAAAC,kBAAAxD,UAAAyD,UAAAtC,aAAA,mBAAA0B,WAAA,oBAAAa,UAAAvC,aAAA,mBAAA0B,WAAA,oBAAAc,UAAAxC,aAAA,mBAAA0B,WAAA,oBAAAe,UAAAzC,aAAA,mBAAA0B,WAAA,qBAAA3B,SAAAY,KAAA,QAAA+B,OAAA,QAAAC,OAAA,UAAAC,YAAA/D,UAAAgE,WAAA7C,aAAA,mBAAA0B,WAAA,cAAAoB,WAAA9C,aAAA,mBAAA0B,WAAA,cAAAqB,WAAA/C,aAAA,mBAAA0B,WAAA,cAAAsB,WAAAhD,aAAA,mBAAA0B,WAAA,cAAAuB,WAAAjD,aAAA,mBAAA0B,WAAA,cAAAwB,WAAAlD,aAAA,mBAAA0B,WAAA,cAAAyB,WAAAnD,aAAA,mBAAA0B,WAAA,cAAA0B,WAAApD,aAAA,mBAAA0B,WAAA,cAAA2B,WAAArD,aAAA,mBAAA0B,WAAA,cAAA4B,WAAAtD,aAAA,mBAAA0B,WAAA,cAAA6B,WAAAvD,aAAA,mBAAA0B,WAAA,cAAA8B,WAAAxD,aAAA,mBAAA0B,WAAA,cAAA+B,WAAAzD,aAAA,mBAAA0B,WAAA,cAAAgC,WAAA1D,aAAA,mBAAA0B,WAAA,cAAAiC,WAAA3D,aAAA,mBAAA0B,WAAA,cAAAkC,UAAA5D,aAAA,mBAAA0B,WAAA,cAAAmC,UAAA7D,aAAA,mBAAA0B,WAAA,cAAAoC,UAAA9D,aAAA,mBAAA0B,WAAA,cAAAqC,UAAA/D,aAAA,mBAAA0B,WAAA,cAAAsC,UAAAhE,aAAA,mBAAA0B,WAAA,cAAAuC,WAAAjE,aAAA,mBAAA0B,WAAA,cAAAwC,WAAAlE,aAAA,mBAAA0B,WAAA,cAAAI,UAAA9B,aAAA,mBAAA0B,WAAA,cAAAyC,WAAAnE,aAAA,mBAAA0B,WAAA,cAAAK,UAAA/B,aAAA,mBAAA0B,WAAA,cAAA0C,WAAApE,aAAA,mBAAA0B,WAAA,cAAAM,UAAAhC,aAAA,mBAAA0B,WAAA,eAAA3B,SAAAY,KAAA,SAAAC,OAAA,WAAAyD,aAAAxF,UAAAyF,UAAAtE,aAAA,cAAA0B,WAAA,8BAAA6C,UAAAvE,aAAA,cAAA0B,WAAA,8BAAA8C,UAAAxE,aAAA,cAAA0B,WAAA,8BAAA+C,UAAAzE,aAAA,cAAA0B,WAAA,8BAAAgD,UAAA1E,aAAA,cAAA0B,WAAA,8BAAAiD,UAAA3E,aAAA,cAAA0B,WAAA,8BAAAkD,UAAA5E,aAAA,cAAA0B,WAAA,8BAAAmD,UAAA7E,aAAA,cAAA0B,WAAA,8BAAAoD,UAAA9E,aAAA,cAAA0B,WAAA,8BAAAqD,UAAA/E,aAAA,cAAA0B,WAAA,8BAAAsD,UAAAhF,aAAA,cAAA0B,WAAA;EAAAuD,UAAAjF,aAAA,cAAA0B,WAAA,8BAAAwD,UAAAlF,aAAA,cAAA0B,WAAA,+BAAA3B,SAAAY,KAAA,QAAAwE,OAAA,QAAAC,OAAA,QAAAC,OAAA,QAAAC,OAAA,QAAAC,QAAA,UAAAC,aAAA3G,UAAA4G,WAAAzF,aAAA,eAAA0B,WAAA,oBAAAgE,WAAA1F,aAAA,eAAA0B,WAAA,oBAAAiE,WAAA3F,aAAA,eAAA0B,WAAA,oBAAAkE,WAAA5F,aAAA,eAAA0B,WAAA,oBAAAmE,UAAA7F,aAAA,eAAA0B,WAAA,oBAAAoE,WAAA9F,aAAA,eAAA0B,WAAA,oBAAAqE,UAAA/F,aAAA,eAAA0B,WAAA,oBAAAsE,WAAAhG,aAAA,eAAA0B,WAAA,oBAAAuE,UAAAjG,aAAA,eAAA0B,WAAA,oBAAAwE,WAAAlG,aAAA,eAAA0B,WAAA,oBAAAyE,UAAAnG,aAAA,eAAA0B,WAAA,oBAAA0E,WAAApG,aAAA,eAAA0B,WAAA,oBAAA2E,UAAArG,aAAA,eAAA0B,WAAA,oBAAA4E,UAAAtG,aAAA,eAAA0B,WAAA,oBAAA6E,UAAAvG,aAAA,eAAA0B,WAAA,oBAAA8E,UAAAxG,aAAA,eAAA0B,WAAA,oBAAA+E,UAAAzG,aAAA,eAAA0B,WAAA,oBAAAgF,UAAA1G,aAAA,eAAA0B,WAAA,oBAAAiF,UAAA3G,aAAA,eAAA0B,WAAA,oBAAAkF,UAAA5G,aAAA,eAAA0B,WAAA,oBAAAc,UAAAxC,aAAA,eAAA0B,WAAA,oBAAAmF,UAAA7G,aAAA,eAAA0B,WAAA,oBAAAe,UAAAzC,aAAA,eAAA0B,WAAA,oBAAAoF,UAAA9G,aAAA,eAAA0B,WAAA,qBAAA3B,SAAAY,KAAA,SAAA2B,SAAA,QAAAyE,OAAA,QAAAC,OAAA,QAAAC,OAAA,QAAAvE,OAAA,WAAAwE,QAAArI,UAAAsI,YAAAnH,aAAA,+BAAA0B,WAAA,oCAAA0F,UAAApH,aAAA,+BAAA0B,WAAA,oCAAA2F,UAAArH,aAAA,+BAAA0B,WAAA,oCAAA4F,UAAAtH,aAAA,+BAAA0B,WAAA,oCAAA6F,UAAAvH,aAAA,+BAAA0B,WAAA,oCAAA8F,UAAAxH,aAAA,mBAAA0B,WAAA,wBAAA+F,YAAAzH,aAAA,+BAAA0B,WAAA,qCAAA3B,SAAA6B,KAAA,QAAAP,KAAA,QAAAqG,SAAA,UAAAC,SAAA,UAAAC,OAAA,QAAAC,OAAA,QAAAC,OAAA,QAAAC,OAAA,UAAAC,OAAA,UAAAC,cAAApJ,UAAAqJ,YAAAlI,aAAA,eAAA0B,WAAA,gBAAAyG,YAAAnI,aAAA,eAAA0B,WAAA,gBAAA0G,YAAApI,aAAA,eAAA0B,WAAA,gBAAA2G,YAAArI,aAAA,eAAA0B,WAAA,iBAAA3B,SAAAY,KAAA,UAAA4F,SAAA,UAAA+B,SAAA,UAAA9B,SAAA,UAAAQ,OAAA,UAAAC,OAAA,YAAAsB,WAAA1J,UAAAyF,UAAAtE,aAAA,YAAA0B,WAAA,iBAAA+C,UAAAzE,aAAA,YAAA0B,WAAA,iBAAAgD,UAAA1E,aAAA,YAAA0B,WAAA,iBAAA8G,UAAAxI,aAAA,YAAA0B,WAAA,iBAAAkD,UAAA5E,aAAA,YAAA0B,WAAA,iBAAAmD,UAAA7E,aAAA,YAAA0B,WAAA,iBAAAoD,UAAA9E,aAAA,YAAA0B,WAAA,iBAAA6E,UAAAvG,aAAA,YAAA0B,WAAA,iBAAA+G,UAAAzI,aAAA,YAAA0B,WAAA,iBAAAqD,UAAA/E,aAAA,YAAA0B,WAAA,iBAAA8E,UAAAxG,aAAA,YAAA0B,WAAA,iBAAA4G,UAAAtI,aAAA,YAAA0B,WAAA,iBAAA+E,UAAAzG,aAAA,YAAA0B,WAAA,iBAAAgH,UAAA1I,aAAA,YAAA0B,WAAA,iBAAAiF,UAAA3G,aAAA,YAAA0B,WAAA,iBAAAiH,UAAA3I,aAAA,YAAA0B,WAAA,iBAAAkH,UAAA5I,aAAA,YAAA0B,WAAA,iBAAAmH,UAAA7I,aAAA,YAAA0B,WAAA,iBAAAoH,UAAA9I,aAAA,YAAA0B,WAAA,iBAAAqH,UAAA/I,aAAA,YAAA0B,WAAA,kBAAA3B,SAAAY,KAAA,QAAAyE,OAAA,QAAAC,OAAA,QAAAC,OAAA,QAAAyB,OAAA,QAAAC,OAAA,QAAAC,OAAA,UAAA+B,SAAAnK,UAAAyF,UAAAtE,aAAA,kCAAA0B,WAAA,mBAAA+C,UAAAzE,aAAA,kCAAA0B,WAAA,mBAAAgD,UAAA1E,aAAA,kCAAA0B,WAAA,mBAAA8G,UAAAxI,aAAA,kCAAA0B,WAAA,mBAAAkD,UAAA5E,aAAA,kCAAA0B,WAAA,mBAAAmD,UAAA7E,aAAA,kCAAA0B,WAAA,mBAAAoD,UAAA9E,aAAA,kCAAA0B,WAAA,mBAAA6E,UAAAvG,aAAA,kCAAA0B,WAAA,mBAAA+G,UAAAzI,aAAA,kCAAA0B,WAAA,mBAAA8E,UAAAxG,aAAA,+BAAA0B,WAAA,gBAAA4G,UAAAtI,aAAA,kCAAA0B,WAAA,mBAAAgH,UAAA1I,aAAA,kCAAA0B,WAAA,mBAAAiF,UAAA3G,aAAA,+BAAA0B,WAAA,gBAAAmF,UAAA7G,aAAA,+BAAA0B,WAAA,gBAAAuH,UAAAjJ,aAAA,kCAAA0B,WAAA,mBAAAwD,UAAAlF,aAAA,kCAAA0B,WAAA,oBAAA3B,SAAAY,KAAA,QAAAwE,OAAA,QAAAC,OAAA,QAAAC,OAAA,QAAAC,OAAA,QAAAyB,OAAA,QAAAC,OAAA,QAAAC,OAAA,aCrCA,SAAAiC,KAAAC,SACA,YAEA,mBAAAC,SAAAA,OAAAC,IAEAD,UAAAD,SAEA,gBAAAvX,SAEAF,OAAAE,QAAAuX,UAIAD,KAAAI,SAAAH,WAEA1a,KAAA,WACA,YAgBA,SAAA8a,WAAA9M,UACAhO,KAAAgO,SAAAA,SACAhO,KAAA+a,SAAA,EAqCA,QAAAC,cAAAC,KACA,MAAAA,MAAA,mBAAA/U,UAAA+U,MAAA/U,QAAA+U,IAAA7S,UAMA,QAAAhE,QAAA8W,QACA,GAAAtZ,UAAAC,QAAA,EACA,KAAA,IAAA8J,OAAA,uCAGA,IACAoF,KACAhN,EAFAoX,OAAAD,UAIA,KAAAnX,EAAA,EAAAA,EAAAnC,UAAAC,OAAAkC,IAAA,CACA,GAAAqX,aAAAxZ,UAAAmC,MAEA,KAAAgN,MAAAqK,aAEA,gBAAAD,QAAApK,MAAAiK,aAAAG,OAAApK,MAIAoK,OAAApK,KAAAoK,OAAApK,MAAAqK,YAAArK,KAHAoK,OAAApK,KAAA3M,OAAA+W,OAAApK,KAAAqK,YAAArK,MAQA,MAAAoK,QAMA,QAAAE,oBAAAxb,GACA,MAAAA,KAAAyC,OAAAzC,GAAAA,GAAAyb,KAAAzb,EAAA0b,GAAA1b,GAWA,QAAAgb,UAAAW,KAAAC,SACAA,QAAArX,OAAAqX,QAAAZ,SAAAY,SAEAzb,KAAA0b,iBAAA,EACA1b,KAAAwb,KAAAA,KACAxb,KAAA2b,UAAAN,mBAAAI,QAAAE,WACA3b,KAAA4b,QAAAH,QAAAG,QACA5b,KAAA6b,OAAAJ,QAAAI,OACA7b,KAAA8b,SAAAL,QAAAK,SACA9b,KAAA+b,aAAA,EACA/b,KAAAgc,MAAAP,QAAAO,MACAhc,KAAAic,QAAAR,QAAAQ,QACAjc,KAAAkc,MAAAT,QAAAS,MACAlc,KAAAmc,SAAAV,QAAAU,SACAnc,KAAAoc,SAAAX,QAAAW,SACApc,KAAAqc,YAAAZ,QAAAY,YAlHA,GAAAC,WACAC,OAAA,aAAA,KACAC,UAAA,aAAAxY,UAAA0E,gBACA+T,OAAAvW,OAAAwW,uBAAAxW,OAAAyW,6BAAAzW,OAAA0W,0BA8aA,OA5aA1W,QAAAwW,sBAAAxW,OAAAwW,uBAAAxW,OAAAyW,6BAAAzW,OAAA0W,yBAWA9B,UAAA3a,WACAgC,YAAA2Y,UAMA+B,OAAA,WACA7c,KAAAgO,UAAAhO,KAAAgO,WACAhO,KAAA+a,SAAA,GAOA+B,YAAA,WACA9c,KAAA+a,UACA2B,sBAAA1c,KAAA+c,cAAA/c,KAAA+c,YAAA/c,KAAA6c,OAAAN,KAAAvc,QACAA,KAAA+a,SAAA,IAOAiC,YAAA,WACAhd,KAAA8c,gBAyEAjC,SAAA1a,WACAgC,YAAA0Y,SAKA9a,KAAA,WACA,GAAA8a,SAAAoC,eAWA,MAPAjd,MAAAkd,UAAA,GAAApC,WAAA9a,KAAA6c,OAAAN,KAAAvc,OACAA,KAAAwb,KAAAgB,UAAAW,IAAAnd,KAAA4b,QAAAwB,SAIA5Q,WAAAxM,KAAAiM,YAAAsQ,KAAAvc,MAAA,KAEAA,MAMAqd,QAAA,WACA,GAAAzB,SAAA5b,KAAA4b,OAEA5b,MAAA+b,aAAA,EACA/b,KAAAwb,KAAAgB,UAAAc,OAAA1B,QAAA2B,SAAA3B,QAAA4B,OAAA5B,QAAA6B,IAAA7B,QAAA8B,OAAA9B,QAAAwB,SACApd,KAAA8b,SAAA6B,oBAAA,SAAA3d,KAAAkd,WAAA,IAOAjR,YAAA,WACAjM,KAAA+b,cACA/b,KAAA0b,iBAAA1b,KAAA4d,aACA5d,KAAA+b,aAAA,EACA/b,KAAA8b,SAAA9P,iBAAA,SAAAhM,KAAAkd,WAAA,GAEAld,KAAAkd,UAAAF,gBAOAa,MAAA,WACA,GAAArB,WAAAxc,KAAAwb,KAAAgB,UACAZ,QAAA5b,KAAA4b,SAEAY,UAAAsB,SAAAlC,QAAA4B,SAAAhB,UAAAsB,SAAAlC,QAAA2B,YACAf,UAAAW,IAAAvB,QAAA2B,UACAf,UAAAc,OAAA1B,QAAA4B,QACAxd,KAAAic,SAAAjc,KAAAic,QAAA5b,KAAAL,QAOA+d,IAAA,WACA,GAAAvB,WAAAxc,KAAAwb,KAAAgB,UACAZ,QAAA5b,KAAA4b,OAEAY,WAAAsB,SAAAlC,QAAA2B,YACAf,UAAAc,OAAA1B,QAAA2B,UACAf,UAAAW,IAAAvB,QAAA4B,QACAxd,KAAAgc,OAAAhc,KAAAgc,MAAA3b,KAAAL,QAOAyd,IAAA,WACA,GAAAjB,WAAAxc,KAAAwb,KAAAgB,UACAZ,QAAA5b,KAAA4b,OAEAY,WAAAsB,SAAAlC,QAAA6B,OACAjB,UAAAW,IAAAvB,QAAA6B,KACAjB,UAAAc,OAAA1B,QAAA8B,QACA1d,KAAAkc,OAAAlc,KAAAkc,MAAA7b,KAAAL,QAOA0d,OAAA,WACA,GAAAlB,WAAAxc,KAAAwb,KAAAgB,UACAZ,QAAA5b,KAAA4b,OAEAY,WAAAsB,SAAAlC,QAAA8B,UACAlB,UAAAW,IAAAvB,QAAA8B,QACAlB,UAAAc,OAAA1B,QAAA6B,KACAzd,KAAAmc,UAAAnc,KAAAmc,SAAA9b,KAAAL,QAIAge,OAAA,WACA,GAAAxB,WAAAxc,KAAAwb,KAAAgB,UACAZ,QAAA5b,KAAA4b,OAEAY,WAAAsB,SAAAlC,QAAAoC,UACAxB,UAAAW,IAAAvB,QAAAoC,QACAxB,UAAAc,OAAA1B,QAAAqC,WACAje,KAAAoc,UAAApc,KAAAoc,SAAA/b,KAAAL,QAOAie,UAAA,WACA,GAAAzB,WAAAxc,KAAAwb,KAAAgB,UACAZ,QAAA5b,KAAA4b,OAEAY,WAAAsB,SAAAlC,QAAAqC,aACAzB,UAAAW,IAAAvB,QAAAqC,WACAzB,UAAAc,OAAA1B,QAAAoC,QACAhe,KAAAqc,aAAArc,KAAAqc,YAAAhc,KAAAL,QASA4d,WAAA,WACA,MAAAM,UAAAle,KAAA8b,SAAAqC,YACAne,KAAA8b,SAAAqC,YACAD,SAAAle,KAAA8b,SAAAsC,UACApe,KAAA8b,SAAAsC,WACApa,SAAA0E,iBAAA1E,SAAA+K,KAAAlG,YAAA7E,SAAA+K,MAAAqP,WAQAC,kBAAA,WACA,MAAAnY,QAAAoY,aACAta,SAAA0E,gBAAA6V,cACAva,SAAA+K,KAAAwP,cAQAC,yBAAA,SAAAC,KACA,MAAAjP,MAAAkP,IACAD,IAAAE,aACAF,IAAAF,eAQAK,0BAAA,WACA,MAAA5e,MAAA8b,WAAA5V,QAAAlG,KAAA8b,WAAA9X,SAAA+K,KACA/O,KAAAqe,oBACAre,KAAAwe,yBAAAxe,KAAA8b,WAQA+C,kBAAA,WACA,GAAA9P,MAAA/K,SAAA+K,KACArG,gBAAA1E,SAAA0E,eAEA,OAAA8G,MAAAkP,IACA3P,KAAA+P,aAAApW,gBAAAoW,aACA/P,KAAA4P,aAAAjW,gBAAAiW,aACA5P,KAAAwP,aAAA7V,gBAAA6V,eASAQ,iBAAA,SAAAN,KACA,MAAAjP,MAAAkP,IACAD,IAAAK,aACAL,IAAAE,aACAF,IAAAF,eAQAS,kBAAA,WACA,MAAAhf,MAAA8b,WAAA5V,QAAAlG,KAAA8b,WAAA9X,SAAA+K,KACA/O,KAAA6e,oBACA7e,KAAA+e,iBAAA/e,KAAA8b,WAQAmD,cAAA,SAAAC,gBACA,GAAAC,SAAAD,eAAA,EACAE,WAAAF,eAAAlf,KAAA4e,4BAAA5e,KAAAgf,mBAEA,OAAAG,UAAAC,YAQAC,kBAAA,SAAAH,eAAAI,WACA,MAAA9P,MAAA+P,IAAAL,eAAAlf,KAAA0b,mBAAA1b,KAAA2b,UAAA2D,YASAE,YAAA,SAAAN,eAAAG,mBACA,GAAAI,eAAAP,eAAAlf,KAAA0b,iBACAgE,WAAAR,gBAAAlf,KAAA6b,MAEA,OAAA4D,gBAAAC,YAAAL,mBASAM,UAAA,SAAAT,eAAAG,mBACA,GAAAO,aAAAV,eAAAlf,KAAA0b,iBACAgE,WAAAR,gBAAAlf,KAAA6b,MAEA,OAAA+D,cAAAP,mBAAAK,YAMA7C,OAAA,WACA,GAAAqC,gBAAAlf,KAAA4d,aACAiC,gBAAAX,eAAAlf,KAAA0b,iBAAA,OAAA,KACA2D,kBAAArf,KAAAqf,kBAAAH,eAAAW,gBAEA7f,MAAAif,cAAAC,kBAIAA,gBAAAlf,KAAA6b,OACA7b,KAAAyd,MAEAzd,KAAA0d,SAGAwB,eAAAlf,KAAAqe,qBAAAre,KAAAgf,oBACAhf,KAAAge,SAGAhe,KAAAie,YAGAje,KAAAwf,YAAAN,eAAAG,mBACArf,KAAA6d,QAEA7d,KAAA2f,UAAAT,eAAAG,oBACArf,KAAA+d,MAGA/d,KAAA0b,iBAAAwD,kBAOArE,SAAAY,SACAE,WACAJ,GAAA,EACAD,KAAA,GAEAO,OAAA,EACAC,SAAA5V,OACA0V,SACA4B,OAAA,mBACAD,SAAA,qBACAE,IAAA,gBACAC,OAAA,oBACAM,OAAA,mBACAC,UAAA,uBACAb,QAAA,aAGAvC,SAAAoC,eAAA,mBAAAX,WAAAA,SAAAG,KAAAH,SAAAC,MAAAD,SAAAE,UAEA3B,WC5bA,SAAAiF,OAAApF,SAGA,kBAAAC,SAAAA,OAAAC,IAEAD,OAAA,wBAAAD,SACA,gBAAAzX,SAAAA,OAAAE,QAEAF,OAAAE,QAAAuX,UAGAoF,OAAAC,UAAArF,WAGA,mBAAAxU,QAAAA,OAAAlG,KAAA,WAIA,QAAA+f,cAEA,GAAAC,OAAAD,UAAA5f,SAoFA,OAlFA6f,OAAAje,GAAA,SAAAke,UAAAC,UACA,GAAAD,WAAAC,SAAA,CAIA,GAAAC,QAAAngB,KAAAogB,QAAApgB,KAAAogB,YAEAC,UAAAF,OAAAF,WAAAE,OAAAF,cAMA,OAJAI,WAAAxd,QAAAqd,eACAG,UAAA1d,KAAAud,UAGAlgB,OAGAggB,MAAAM,KAAA,SAAAL,UAAAC,UACA,GAAAD,WAAAC,SAAA,CAIAlgB,KAAA+B,GAAAke,UAAAC,SAGA,IAAAK,YAAAvgB,KAAAwgB,YAAAxgB,KAAAwgB,gBAEAC,cAAAF,WAAAN,WAAAM,WAAAN,cAIA,OAFAQ,eAAAP,WAAA,EAEAlgB,OAGAggB,MAAApd,IAAA,SAAAqd,UAAAC,UACA,GAAAG,WAAArgB,KAAAogB,SAAApgB,KAAAogB,QAAAH,UACA,IAAAI,WAAAA,UAAAxe,OAAA,CAGA,GAAA6e,OAAAL,UAAAxd,QAAAqd,SAKA,OAJAQ,YACAL,UAAAvd,OAAA4d,MAAA,GAGA1gB,OAGAggB,MAAAW,UAAA,SAAAV,UAAAW,MACA,GAAAP,WAAArgB,KAAAogB,SAAApgB,KAAAogB,QAAAH,UACA,IAAAI,WAAAA,UAAAxe,OAAA,CAGA,GAAAkC,GAAA,EACAmc,SAAAG,UAAAtc,EACA6c,MAAAA,QAIA,KAFA,GAAAH,eAAAzgB,KAAAwgB,aAAAxgB,KAAAwgB,YAAAP,WAEAC,UAAA,CACA,GAAAW,QAAAJ,eAAAA,cAAAP,SACAW,UAGA7gB,KAAA4C,IAAAqd,UAAAC,gBAEAO,eAAAP,WAGAA,SAAAzf,MAAAT,KAAA4gB,MAEA7c,GAAA8c,OAAA,EAAA,EACAX,SAAAG,UAAAtc,GAGA,MAAA/D,QAGAggB,MAAAc,OACAd,MAAAe,mBAAA,iBACA/gB,MAAAogB,cACApgB,MAAAwgB,aAGAT,YAUA,SAAA7Z,OAAAwU,SAAA,YAKA,mBAAAC,SAAAA,OAAAC,IAEAD,QACA,yBACA,SAAAoF,WACA,MAAArF,SAAAxU,OAAA6Z,aAEA,gBAAA9c,SAAAA,OAAAE,QAEAF,OAAAE,QAAAuX,QACAxU,OACA8a,QAAA,eAIA9a,OAAA+a,aAAAvG,QACAxU,OACAA,OAAA6Z,YAIA,mBAAA7Z,QAAAA,OAAAlG,KAIA,SAAAkG,OAAA6Z,WAUA,QAAA3b,QAAAtD,EAAAwK,GACA,IAAA,GAAA4V,QAAA5V,GACAxK,EAAAogB,MAAA5V,EAAA4V,KAEA,OAAApgB,GAIA,QAAAqgB,WAAAlG,KACA,GAAAmG,OACA,IAAAlhB,MAAAmhB,QAAApG,KAEAmG,IAAAnG,QACA,IAAA,gBAAAA,KAAApZ,OAEA,IAAA,GAAAkC,GAAA,EAAAA,EAAAkX,IAAApZ,OAAAkC,IACAqd,IAAAze,KAAAsY,IAAAlX,QAIAqd,KAAAze,KAAAsY,IAEA,OAAAmG,KAUA,QAAAE,cAAA9F,KAAAC,QAAA8F,UAEA,MAAAvhB,gBAAAshB,eAIA,gBAAA9F,QACAA,KAAAxX,SAAAwd,iBAAAhG,OAGAxb,KAAAyhB,SAAAN,UAAA3F,MACAxb,KAAAyb,QAAArX,UAAApE,KAAAyb,SAEA,kBAAAA,SACA8F,SAAA9F,QAEArX,OAAApE,KAAAyb,QAAAA,SAGA8F,UACAvhB,KAAA+B,GAAA,SAAAwf,UAGAvhB,KAAA0hB,YAEA1S,IAEAhP,KAAA2hB,WAAA,GAAA3S,GAAA4S,cAIApV,YAAA,WACAxM,KAAA6hB,SACAtF,KAAAvc,QA9BA,GAAAshB,cAAA9F,KAAAC,QAAA8F,UA2KA,QAAAO,cAAAC,KACA/hB,KAAA+hB,IAAAA,IA+DA,QAAAC,YAAAC,IAAAC,SACAliB,KAAAiiB,IAAAA,IACAjiB,KAAAkiB,QAAAA,QACAliB,KAAA+hB,IAAA,GAAApQ,OAvRA,GAAA3C,GAAA9I,OAAAiE,OACAgY,QAAAjc,OAAAic,OAyEAb,cAAAnhB,UAAAmC,OAAA8f,OAAArC,UAAA5f,WAEAmhB,aAAAnhB,UAAAsb,WAEA6F,aAAAnhB,UAAAuhB,UAAA,WACA1hB,KAAAqiB,UAGAriB,KAAAyhB,SAAAa,QAAAtiB,KAAAuiB,iBAAAviB,OAMAshB,aAAAnhB,UAAAoiB,iBAAA,SAAA/G,MAEA,OAAAA,KAAA5S,UACA5I,KAAAwiB,SAAAhH,MAGAxb,KAAAyb,QAAAgH,cAAA,GACAziB,KAAA0iB,2BAAAlH,KAKA,IAAApT,UAAAoT,KAAApT,QACA,IAAAA,UAAAua,iBAAAva,UAAA,CAKA,IAAA,GAFAwa,WAAApH,KAAAgG,iBAAA,OAEAzd,EAAA,EAAAA,EAAA6e,UAAA/gB,OAAAkC,IAAA,CACA,GAAAge,KAAAa,UAAA7e,EACA/D,MAAAwiB,SAAAT,KAIA,GAAA,gBAAA/hB,MAAAyb,QAAAgH,WAAA,CACA,GAAAI,UAAArH,KAAAgG,iBAAAxhB,KAAAyb,QAAAgH,WACA,KAAA1e,EAAA,EAAAA,EAAA8e,SAAAhhB,OAAAkC,IAAA,CACA,GAAA+e,OAAAD,SAAA9e,EACA/D,MAAA0iB,2BAAAI,UAKA,IAAAH,mBACAI,GAAA,EACAC,GAAA,EACAC,IAAA,EA2MA,OAxMA3B,cAAAnhB,UAAAuiB,2BAAA,SAAAlH,MACA,GAAA1L,OAAAoT,iBAAA1H,KACA,IAAA1L,MAOA,IAFA,GAAAqT,OAAA,0BACAC,QAAAD,MAAAE,KAAAvT,MAAAwT,iBACA,OAAAF,SAAA,CACA,GAAAnB,KAAAmB,SAAAA,QAAA,EACAnB,MACAjiB,KAAAujB,cAAAtB,IAAAzG,MAEA4H,QAAAD,MAAAE,KAAAvT,MAAAwT,mBAOAhC,aAAAnhB,UAAAqiB,SAAA,SAAAT,KACA,GAAAyB,cAAA,GAAA1B,cAAAC,IACA/hB,MAAAqiB,OAAA1f,KAAA6gB,eAGAlC,aAAAnhB,UAAAojB,cAAA,SAAAtB,IAAAzG,MACA,GAAAiH,YAAA,GAAAT,YAAAC,IAAAzG,KACAxb,MAAAqiB,OAAA1f,KAAA8f,aAGAnB,aAAAnhB,UAAA0hB,MAAA,WAUA,QAAA4B,YAAAC,MAAAlI,KAAA5P,SAEAY,WAAA,WACAmX,MAAAC,SAAAF,MAAAlI,KAAA5P,WAZA,GAAA+X,OAAA3jB,IAIA,OAHAA,MAAA6jB,gBAAA,EACA7jB,KAAA8jB,cAAA,EAEA9jB,KAAAqiB,OAAAxgB,WAYA7B,MAAAqiB,OAAAC,QAAA,SAAAkB,cACAA,aAAAlD,KAAA,WAAAmD,YACAD,aAAA3B,cAbA7hB,MAAA0O,YAiBA4S,aAAAnhB,UAAAyjB,SAAA,SAAAF,MAAAlI,KAAA5P,SACA5L,KAAA6jB,kBACA7jB,KAAA8jB,aAAA9jB,KAAA8jB,eAAAJ,MAAAK,SAEA/jB,KAAA2gB,UAAA,YAAA3gB,KAAA0jB,MAAAlI,OACAxb,KAAA2hB,YAAA3hB,KAAA2hB,WAAAqC,QACAhkB,KAAA2hB,WAAAqC,OAAAhkB,KAAA0jB,OAGA1jB,KAAA6jB,iBAAA7jB,KAAAqiB,OAAAxgB,QACA7B,KAAA0O,WAGA1O,KAAAyb,QAAAwI,OAAA9B,SACAA,QAAA+B,IAAA,aAAAtY,QAAA8X,MAAAlI,OAIA8F,aAAAnhB,UAAAuO,SAAA,WACA,GAAAuR,WAAAjgB,KAAA8jB,aAAA,OAAA,MAIA,IAHA9jB,KAAAmkB,YAAA,EACAnkB,KAAA2gB,UAAAV,WAAAjgB,OACAA,KAAA2gB,UAAA,UAAA3gB,OACAA,KAAA2hB,WAAA,CACA,GAAAyC,UAAApkB,KAAA8jB,aAAA,SAAA,SACA9jB,MAAA2hB,WAAAyC,UAAApkB,QAUA8hB,aAAA3hB,UAAAmC,OAAA8f,OAAArC,UAAA5f,WAEA2hB,aAAA3hB,UAAA0hB,MAAA,WAGA,GAAAsC,YAAAnkB,KAAAqkB,oBACA,OAAAF,gBAEAnkB,MAAAskB,QAAA,IAAAtkB,KAAA+hB,IAAAwC,aAAA,iBAKAvkB,KAAAwkB,WAAA,GAAA7S,OACA3R,KAAAwkB,WAAAxY,iBAAA,OAAAhM,MACAA,KAAAwkB,WAAAxY,iBAAA,QAAAhM,MAEAA,KAAA+hB,IAAA/V,iBAAA,OAAAhM,MACAA,KAAA+hB,IAAA/V,iBAAA,QAAAhM,WACAA,KAAAwkB,WAAAtc,IAAAlI,KAAA+hB,IAAA7Z,OAGA4Z,aAAA3hB,UAAAkkB,mBAAA,WACA,MAAArkB,MAAA+hB,IAAArT,UAAAwP,SAAAle,KAAA+hB,IAAAwC,cAGAzC,aAAA3hB,UAAAmkB,QAAA,SAAAP,SAAAnY,SACA5L,KAAA+jB,SAAAA,SACA/jB,KAAA2gB,UAAA,YAAA3gB,KAAAA,KAAA+hB,IAAAnW,WAMAkW,aAAA3hB,UAAA6c,YAAA,SAAA3O,OACA,GAAAoW,QAAA,KAAApW,MAAAjN,IACApB,MAAAykB,SACAzkB,KAAAykB,QAAApW,QAIAyT,aAAA3hB,UAAAyR,OAAA,WACA5R,KAAAskB,SAAA,EAAA,UACAtkB,KAAA0kB,gBAGA5C,aAAA3hB,UAAA0R,QAAA,WACA7R,KAAAskB,SAAA,EAAA,WACAtkB,KAAA0kB,gBAGA5C,aAAA3hB,UAAAukB,aAAA,WACA1kB,KAAAwkB,WAAA7G,oBAAA,OAAA3d,MACAA,KAAAwkB,WAAA7G,oBAAA,QAAA3d,MACAA,KAAA+hB,IAAApE,oBAAA,OAAA3d,MACAA,KAAA+hB,IAAApE,oBAAA,QAAA3d,OAYAgiB,WAAA7hB,UAAAmC,OAAA8f,OAAAN,aAAA3hB,WAEA6hB,WAAA7hB,UAAA0hB,MAAA,WACA7hB,KAAA+hB,IAAA/V,iBAAA,OAAAhM,MACAA,KAAA+hB,IAAA/V,iBAAA,QAAAhM,MACAA,KAAA+hB,IAAA7Z,IAAAlI,KAAAiiB,GAEA,IAAAkC,YAAAnkB,KAAAqkB,oBACAF,cACAnkB,KAAAskB,QAAA,IAAAtkB,KAAA+hB,IAAAwC,aAAA,gBACAvkB,KAAA0kB,iBAIA1C,WAAA7hB,UAAAukB,aAAA,WACA1kB,KAAA+hB,IAAApE,oBAAA,OAAA3d,MACAA,KAAA+hB,IAAApE,oBAAA,QAAA3d,OAGAgiB,WAAA7hB,UAAAmkB,QAAA,SAAAP,SAAAnY,SACA5L,KAAA+jB,SAAAA,SACA/jB,KAAA2gB,UAAA,YAAA3gB,KAAAA,KAAAkiB,QAAAtW,WAKA0V,aAAAqD,iBAAA,SAAAxa,QACAA,OAAAA,QAAAjE,OAAAiE,OACAA,SAIA6E,EAAA7E,OAEA6E,EAAA5E,GAAA6W,aAAA,SAAAxF,QAAAzN,UACA,GAAA4W,UAAA,GAAAtD,cAAAthB,KAAAyb,QAAAzN,SACA,OAAA4W,UAAAjD,WAAAkD,QAAA7V,EAAAhP,UAIAshB,aAAAqD,mBAIArD,cC7dA,IAAAwD,kBAAA,SAAAC,OAgVA,MA9UAA,OAAAC,cAAA,SAAAvJ,SA6JA,QAAAwJ,mBAgDA,GA9CA,QAAAxJ,QAAAyJ,WAEAzJ,QAAA0J,WAEA1J,QAAA0J,SAAA,SAAAjD,SACA,MAAAlT,GAAAkT,SAAAjY,SAKAwR,QAAA2J,OAEA3J,QAAA2J,SAGA3J,QAAA2J,KAAAjV,OACAsL,QAAA2J,KAAAjV,SAIAsL,QAAA2J,KAAAjV,KAAAsU,OAAA,SAAA3jB,EAAAwK,GAGA,MAFAxK,GAAA2a,QAAA0J,SAAArkB,GACAwK,EAAAmQ,QAAA0J,SAAA7Z,GACAxK,EAAAwK,KAGAxK,EAAAwK,EACA,EAEA,GAGAmQ,QAAA2J,KAAAjhB,QACAsX,QAAA2J,KAAAjhB,UAGAsX,QAAA2J,KAAAjhB,MAAAsgB,OAAA,SAAAvC,QAAAmD,QAEA,MAAAnD,SAAA/Z,OAAAkd,aAQAnH,SAAAzC,QAAA6J,YAAA7J,QAAA6J,qBAAAplB,OAAA,CAIA,IAAA,GAFAolB,eAEAvhB,EAAA,EAAAlC,OAAA4Z,QAAA6J,WAAAzjB,OAAAkC,EAAAlC,OAAAkC,GAAA,EAAA,CAEA,GAAAwhB,UAAA9J,QAAA6J,WAAAvhB,EAEA,KAAA,GAAAyhB,YAAAC,UAAAH,WAAA,GAEApH,SAAAqH,SAAAC,YACAD,SAAAC,UAAAC,SAAAH,WAAA,GAAAE,UAIAF,YAAA3iB,KAAA4iB,UAGA9J,QAAA6J,WAAAA,YAIA,QAAAI,gBAIA,QAAAC,cAAAC,OAAAC,QACA,GAAAC,cAAAF,UAEA,KAAA,GAAAG,gBAAAH,QACA1H,SAAA2H,OAAAE,eAAA,OAAAF,OAAAE,gBAEA,gBAAAF,QAAAE,eACAF,OAAAE,uBAAA7lB,OACA4lB,aAAAC,cAAAF,OAAAE,cAEAJ,aAAAC,OAAAG,cAAAF,OAAAE,eAUA,OAJA7H,UAAA2H,OAAAvlB,MAAA,OAAAulB,OAAAvlB,MAAA,gBAAAulB,QAAAvlB,OACAwlB,aAAAxlB,KAAAulB,OAAAvlB,MAGAwlB,aAtBAL,SAAAE,aAAAF,SAAAhK,SA2BA,QAAAuK,qBAEA,GAAA,kBAAAP,SAAAxD,KAAA,kBAAAwD,UAAAxD,IAAA,CACA,GAAAgE,YAAAR,SAAAxD,GACAwD,UAAAxD,IAAA,WACA,MAAAgE,aAIA,GAAA/H,SAAAuH,SAAAS,aAAAjE,KAAA,kBAAAwD,UAAAS,aAAAjE,IAAA,CACA,GAAAgE,YAAAR,SAAAS,aAAAjE,GACAwD,UAAAS,aAAAjE,IAAA,WACA,MAAAgE,aAIA,GAAA,gBAAAR,UAAAU,aAAA,CACA,GAAAC,qBAAAX,SAAAU,YAEA,SAAAV,SAAAP,SAAA3e,cACAkf,SAAAU,aAAA,SAAA7lB,MACA,MAAA0O,GAAA1O,MAAA+lB,KAAAD,sBAGAX,SAAAU,aAAA,SAAA7lB,MACA,MAAAA,MAAA8lB,sBAKA,GAAA,gBAAAX,UAAAN,SAAA,CACA,GAAAmB,kBAAAb,SAAAN,QACAM,UAAAN,SAAA,SAAAjD,SACA,MAAAA,SAAAoE,mBAIApI,SAAAzC,QAAA6J,aACAG,SAAAc,oBAAA,GAKA,QAAAC,mBAEAtI,SAAAzC,QAAAyK,cAAA,gBAAAzK,SAAAyK,aACAT,SAAAS,aAAAzK,QAAAyK,aAEAT,SAAAS,gBAKA,QAAAO,YAAA1Z,MACA,MAAAmR,UAAAuH,SAAA1Y,OAAA,OAAA0Y,SAAA1Y,MAMA,QAAA2Z,gCAAAC,OAAAC,gBAIA,QAAAC,wBAAAjB,OAAAC,QACA,IAAA,GAAAL,YAAAK,QACA3H,SAAA0H,OAAAJ,WACAmB,OAAAzC,IAAA,aAAAsB,SAAA,qDAGA,gBAAAI,QAAAJ,WAAAxW,EAAA8X,QAAAtB,SAAAuB,uBACAF,uBAAAjB,OAAAJ,UAAAK,OAAAL,WATAqB,uBAAApB,SAAAmB,gBA7TA,GAAAnB,WACAnlB,KAAA,gBACA2hB,IAAA,gBACAiD,SAAA,OAEAiB,aAAA,SAAA7lB,MACA,MAAAA,OAGA0mB,eAAA,GAEA7B,SAAA,SAAAjD,SACA,MAAAA,UAGA+E,iBAAA,EAEAC,aAAA,EAEAC,aAAA,aAEAC,uBAAA,EAEAhC,MACAjV,MACAkX,SAAA,EACA5C,OAAA,SAAA3jB,EAAAwK,GAGA,MAFAxK,GAAA2kB,SAAAN,SAAArkB,GACAwK,EAAAma,SAAAN,SAAA7Z,GACAxK,EAAAwK,KAGAxK,EAAAwK,EACA,EAEA,IAIAgc,oBAAA,EAEAC,mBAAA,EAEApjB,OACAkjB,SAAA,EACAG,eAAA,EACA/C,OAAA,SAAAvC,QAAAmD,QAEA,MAAAnD,SAAA/Z,OAAAkd,aAQAoC,eACArmB,KAAA,SACAsmB,KAAA,IACA1Z,SAAA,cAGA2Z,eACAvmB,KAAA,SACAsmB,KAAA,IACA1Z,SAAA,cAIA4Z,aAAA,aACAC,kBAAA,aACAC,YAAA,aACAC,cAAA,aACAC,gBAAA,aACAC,iBAAA,aACAC,gBAAA,aACAC,gBAAA,aACAC,gBAAA,cAGAC,iBAAA,EAEAC,MAAA,GAEAC,WAAA,GAEAC,cAAA,EAEAC,aAAA,EAEAC,aAAA,EAEAxC,gBAEAyC,gBAAA,SAAAroB,KAAAsoB,aAAA,MAAAtoB,OAEAuoB,eAAA,EAEAxkB,SAAA,GAEAkiB,oBAAA,EAEAjB,aACAgC,oBAAA,KAKAP,iBAAA,eAAA,WAEA/mB,MAAA8oB,IAAA,SAAA/C,cACA,MAAAN,UAAAM,eAGA/lB,KAAA+oB,OAAA,SAAAhc,KAAAic,OACA,SAAAvC,WAAA1Z,OACA0Y,SAAA1Y,QAAAic,QAQAhpB,KAAAipB,uBAAA,WACA,MAAA,kBAAAxD,SAAAxD,KAAA,kBAAAwD,SAAAnlB,MAKAN,KAAAkpB,wBAAA,WACA,IAAA,GAAAnD,gBAAAN,UACA,GAAA,aAAAA,SAAAM,cAEA,MADAoD,QAAAC,MAAA,UAAArD,aAAA,qBACA,CAGA,QAAA,GAGA/lB,KAAA0mB,+BAAA,SAAAC,OAAAC,gBACAF,+BAAAC,OAAAC,iBAIA3B,kBAEAS,eAEAD,SAAAoD,iBAAA,GACAnC,+BAAAvE,QAAA1G,SAGA+K,kBAEAR,qBAkLAjB,OAEAD,sBAMAA,iBAAA,SAAAC,OAaA,MAXAA,OAAAsE,OAAA,WAEArpB,KAAAopB,MAAA,SAAAxd,SACAuW,QAAA+B,IAAA,UAAAtY,UAGA5L,KAAAspB,QAAA,SAAA1d,SACAuW,QAAA+B,IAAA,YAAAtY,WAIAmZ,OAEAD,sBAMAA,iBAAA,SAAAC,OAgBA,MAdAA,OAAAwE,SAAA,WACA,GAAAC,YACAC,gBAAA,8BACAC,aAAA,iBAEAC,kBAAA,oBAGA3pB,MAAAmlB,SAAA,SAAAY,cACA,MAAAyD,WAAAzD,gBAKAhB,OAEAD,sBAQAA,iBAAA,SAAAC,OA0LA,MAxLAA,OAAA6E,mBAAA,SAAAC,cAAAC,sBAsEA,QAAAC,sBAAAxE,SAAAjlB,MA6CA,QAAA0pB,2BAEA,GACA7D,cADA8D,UA2BA,OAxBA/L,UAAAqH,SAAAyB,iBACAiD,QAAAjD,eAAAzB,SAAAyB,gBAGA9I,SAAAqH,SAAAY,aAEAA,aAAAZ,SAAAY,aACAjI,SAAA2L,cAAAf,IAAA,kBAEA3C,aAAA0D,cAAAf,IAAA,iBAGA5K,SAAAiI,aACA,gBAAAA,cACA8D,QAAA3pB,KAAA0O,EAAA1O,MAAA+lB,KAAAF,cACA,kBAAAA,gBAEA8D,QAAA3pB,KAAA6lB,aAAA7lB,OAIA2pB,QAAA3pB,KAAAA,KAGA2pB,QAIA,QAAAC,4BAEA,GAAAD,WAaA,OAXA/L,UAAAqH,SAAAY,aAEA,gBAAAZ,UAAAY,aACA8D,QAAA3pB,KAAAA,KAAAilB,SAAAY,cACA,kBAAAZ,UAAAY,eACA8D,QAAA3pB,KAAAilB,SAAAY,aAAA7lB,OAGA2pB,QAAA3pB,KAAAA,KAGA2pB,QA3FA,GAAAA,WAwBA,IApBAA,QAFA,QAAAJ,cAAAf,IAAA,YAAAviB,cAEAyjB,0BAGAE,2BAIAhM,SAAAqH,SAAA4E,SACAF,QAAAE,OAAA5E,SAAA4E,QAGAjM,SAAAqH,SAAA+B,sBACA2C,QAAA3C,oBAAA/B,SAAA+B,qBAGApJ,SAAA2L,cAAAf,IAAA,QAAAxB,sBAEA2C,QAAAG,YAAAP,cAAAf,IAAA,QAAAxB,qBAGApJ,SAAAqH,SAAAJ,SAEA,GAAA,gBAAAI,UAAAJ,SAAA,CACA,GAAAmB,kBAAAf,SAAAJ,QACA8E,SAAA9E,SAAA,SAAAjD,SACA,MAAAA,SAAAoE,uBAEA,kBAAAf,UAAAJ,WACA8E,QAAA9E,SAAAI,SAAAJ,cAIA8E,SAAA9E,SAAA0E,cAAAf,IAAA,WAIA,OAAAmB,SAuDA,QAAAI,kBAAAJ,SACA,GAAAK,cAWA,OATApM,UAAA+L,QAAAjD,iBACAiD,QAAAjD,eAAA6C,cAAAf,IAAA,mBAIA9Z,EAAAib,QAAA3pB,MAAA+lB,KAAA4D,QAAAjD,gBAAAuD,KAAA,WACAD,WAAA3nB,KAAA3C,QAGAsqB,WAhLAtqB,KAAAD,KAAA,SAAAO,MACA,GAAAkqB,gBACAP,UASA,OAPAA,SAAA3pB,KAAAupB,cAAAf,IAAA,gBAAAxoB,MACA2pB,QAAA9E,SAAA0E,cAAAf,IAAA,YACAmB,QAAAG,YAAAP,cAAAf,IAAA,QAAAxB,oBAGAkD,YAAA7nB,KAAAsnB,SAEAO,aAGAxqB,KAAAyqB,iBAAA,SAAAD,YAAAlqB,MAEA,GAAAupB,cAAAf,IAAA,sBAAA,CAEA0B,cAEA,KAAA,GAAAzmB,GAAA,EAAAA,EAAA8lB,cAAAf,IAAA,cAAAjnB,OAAAkC,GAAA,EAAA,CAEA,GAAAkmB,SAAAF,qBAAAF,cAAAf,IAAA,cAAA/kB,GAAAzD,KAEAkqB,aAAA7nB,KAAAsnB,UAKA,MAAAO,cAGAxqB,KAAA0qB,WAAA,SAAAF,aACA,GAAA,QAAAX,cAAAf,IAAA,YAAAviB,cAEA,IAAA,GAAAxC,GAAA,EAAAA,EAAAymB,YAAA3oB,OAAAkC,GAAA,EACAymB,YAAAzmB,GAAAzD,KAAA+pB,iBAAAG,YAAAzmB,GAIA,OAAAymB,cAGAxqB,KAAA2qB,YAAA,SAAAH,YAAA5B,aAEA,IAAA,GAAA7kB,GAAA,EAAAlC,OAAA2oB,YAAA3oB,OAAAkC,EAAAlC,OAAAkC,GAAA,EACAymB,YAAAzmB,GAAAzD,KAAAwpB,qBAAAD,cAAAW,YAAAzmB,GAAA6kB,YAGA,OAAA4B,cAGAxqB,KAAA4qB,kBAAA,SAAAC,cAEA,IAAA,GAAA9mB,GAAA,EAAAlC,OAAAgpB,aAAAhpB,OAAAkC,EAAAlC,OAAAkC,GAAA,EAEA,GAAAma,SAAA2M,aAAA9mB,GAAAzD,MAAAuqB,aAAA9mB,GAAAzD,eAAAJ,QACA2qB,aAAA9mB,GAAAzD,KAAAuB,OAAA,EACA,OAAA,CAKA,QAAA,IAsHAkjB,OAEAD,sBAYAA,iBAAA,SAAAC,OA2EA,MAzEAA,OAAA+F,SAAA,SAAAC,OAAAP,YAAAnF,QAcA,QAAA2F,WAAA5F,KAAAC,QACA,GAAA4F,iBACAjC,MAAA,EAEA,IAAA+B,OAAAjC,IAAA,QAAA3kB,MAAAkjB,QAEA,IAAA,GAAAtjB,GAAA,EAAAlC,OAAAujB,KAAAvjB,OAAAkC,EAAAlC,OAAAkC,GAAA,EAEAilB,MAAA+B,OAAAjC,IAAA,YAAA1D,KAAArhB,IAEAI,MAAA6kB,MAAA3D,SACA4F,aAAAtoB,KAAAyiB,KAAArhB,QAMAknB,cAAA7F,IAGA,OAAA6F,cAGA,QAAA9mB,OAAA6kB,MAAA3D,QAUA,MARA0F,QAAAjC,IAAA,QAAA3kB,MAAAqjB,gBAEA,gBAAAwB,SACAA,MAAAA,MAAAxiB,eAGA6e,OAAAA,OAAA7e,iBAEAukB,OAAAjC,IAAA,QAAA3kB,MAAAsgB,OAAAuE,MAAA3D,QAOA,QAAA6F,sBAAA9F,MAKA,MAJAlH,UAAAsM,YAAAlD,qBAAAlC,KAAAvjB,OAAA2oB,YAAAlD,sBACAlC,KAAAA,KAAAhlB,MAAA,EAAAoqB,YAAAlD,sBAGAlC,KAGA,QAAAjV,MAAAiV,MAKA,MAJA2F,QAAAjC,IAAA,QAAA3Y,KAAAkX,SACAjC,KAAAjV,KAAA4a,OAAAjC,IAAA,QAAA3Y,KAAAsU,QAGAW,KAjEAL,MAAA+F,SAAA3mB,MAAAA,KAEA,IAAAihB,MAAAoF,YAAAlqB,KACAsoB,YAAAvD,MAMA,OAJAD,MAAA4F,UAAA5F,KAAAwD,aACAxD,KAAA8F,qBAAA9F,MACAA,KAAAjV,KAAAiV,OAgEAL,OAGAD,sBASAA,iBAAA,SAAAC,OAuLA,MArLAA,OAAAoG,SAAA,SAAA1P,SAGA,GAAA2P,mBACAC,OACAjqB,KAAA,QACAqjB,OAAA,SAAAvC,SAAA,MAAAA,UACAoJ,SAAA,IAEAC,aACAnqB,KAAA,cACAoqB,QACAD,YAAA,eAEA9G,OAAA,SAAAvC,SAAA,MAAAA,SAAA,kBACAoJ,SAAA,mBAEAG,UACArqB,KAAA,WACAoqB,QACAE,KAAA,IAEAjH,OAAA,SAAAvC,SACA,MAAAA,UAEAoJ,SAAA,iBAEAK,WACAvqB,KAAA,YACAoqB,QACAI,QAAA,IAEAnH,OAAA,SAAAvC,SACA,MAAAA,UAEAoJ,SAAA,kBAEAO,OACAzqB,KAAA,QACAoqB,QACAM,KAAA,IAEArH,OAAA,SAAAvC,SACA,MAAAA,UAEAoJ,SAAA,IAEAS,QACA3qB,KAAA,SACAqjB,OAAA,aACA6G,SAAA,KASAU,wBAAA,SAAA3nB,UAGA,GACA4nB,aADAC,QAAA7nB,SAAAmnB,MAGA,OAAA,gBAAAnnB,SAAAjD,MAEA6qB,YAAAb,iBAAAG,YAAA9G,OAEA,gBAAAyH,SAAAX,YACAU,YAAA,SAAAE,aAAAjK,SACA,MAAAiK,cAAA,YAAAjK,QAAAgK,QAAAX,aAAA,WAEA,kBAAAW,SAAAX,cACAU,YAAA,SAAAE,aAAAjK,SACA,MAAAiK,cAAA,YAAAD,QAAAX,YAAArJ,SAAA,YAIA+J,aAGA,cAAA5nB,SAAAjD,MAEA,gBAAA8qB,SAAAN,QACAK,YAAA,SAAAE,aAAAjK,SACA,MAAAiK,cAAA,8BAAAjK,QAAAgK,QAAAN,SAAA,QAEA,kBAAAM,SAAAN,UACAK,YAAA,SAAAE,aAAAjK,SACA,MAAAiK,cAAA,8BAAAD,QAAAN,QAAA1J,SAAA,SAIA+J,aAIA,aAAA5nB,SAAAjD,MAEA,gBAAA8qB,SAAAN,QACAK,YAAA,SAAAE,aAAAjK,SACA,MAAA,8BAAAA,QAAAgK,QAAAN,SAAA,OAAAO,cAEA,kBAAAD,SAAAN,UACAK,YAAA,SAAAE,aAAAjK,SACA,MAAA,8BAAAgK,QAAAN,QAAA1J,SAAA,OAAAiK,eAIAF,aAGA,UAAA5nB,SAAAjD,MAEA,gBAAA8qB,SAAAJ,KACAG,YAAA,SAAAE,aAAAjK,SACA,MAAA,YAAAA,QAAAgK,QAAAJ,MAAA,MAAAK,aAAA,QAEA,kBAAAD,SAAAJ,OACAG,YAAA,SAAAE,aAAAjK,SACA,MAAA,YAAAgK,QAAAJ,KAAA5J,SAAA,MAAAiK,aAAA,SAIAF,aAIA,WAAA5nB,SAAAjD,KAEAiD,SAAAogB,OAGA2G,iBAAAC,MAAA5G,QAKA2H,mBAAA,SAAA3Q;AACA,MAAAA,UAAAA,QAAAra,MAKAqa,QAAAra,MAAAgqB,iBAAA3P,QAAAra,MAEA4qB,wBAAAvQ,SALA2P,iBAAAC,MAAA5G,QAaA4H,cAAA,SAAA5Q,SACA,GAAA6Q,qBAAA,WAAA,MAAA,GAEA,OAAA7Q,UAAAA,QAAAra,MAKAqa,QAAAra,MAAAgqB,iBAAA3P,QAAAra,MACA,WACA,GAAAmrB,WAAAnB,iBAAA3P,QAAAra,MAAAkqB,QACA,OAAA,YAAA,MAAAiB,eANAD,oBAcAtsB,MAAAwsB,iBAAAH,cAAA5Q,SAEAzb,KAAAysB,MAAAL,mBAAA3Q,UAKAsJ,OAEAD,sBAOAA,iBAAA,SAAAC,OAiqBA,MA9pBAA,OAAA2H,KAAA,SAAAC,OAAAlR,SA8DA,QAAA1b,QAEA,MAAA,KAAA6sB,OAAA/qB,WACAsnB,QAAAC,MAAA,8BAIA2B,OAAA9B,yBAKA8B,OAAA7B,2BAMA2D,mBACAC,mBANA3D,QAAAC,MAAA,mDALAD,QAAAC,MAAA,6DAcA,QAAAyD,gBAiBA,QAAAE,iBACA,GAAAC,UAAAhe,EAAA,SACA4M,QAAAqR,OAAA9H,SAAA,oBAGA4F,QAAAjC,IAAA,UAAA,KAAAiC,OAAAjC,IAAA,WACAlN,SAAA,QAAAmP,OAAAjC,IAAA,UAGAiC,OAAAjC,IAAA,eAAA,KAAAiC,OAAAjC,IAAA,gBACAlN,SAAA,IAAAmP,OAAAjC,IAAA,eAGA,KAAAzkB,SAAAmoB,qBACA5Q,SAAA,IAAAvX,SAAAmoB,oBAIAQ,SACAE,SAAAtR,SACAgR,OAAAO,KAAAH,UAGAjC,OAAAjC,IAAA,kBAAA,GACAsE,qBAMA,QAAAA,sBACA,GAAAC,YAAAT,OAAAU,YAEAV,QAAAW,SAAA9c,IAAA,QAAA4c,YAGA,QAAAG,iBACAZ,OAAAa,SAGA,QAAAC,mBACA,GAAAC,qBAAA3e,EAAA,SAAAke,SAAAD,OAAA9H,SAAA,mBAEAwI,qBACAC,KAAA,KAAAC,kBACAC,QAAA9e,EAAA,SAGA,WAEA2e,oBAEA5rB,GAAA,WAAA,WAEA,OAAAgpB,OAAAjC,IAAA,QAAArB,cAAArmB,MAEA,IAAA,QACA,GAAA2sB,eAAAhD,OAAAjC,IAAA,QAAArB,cAAAC,KACA1Z,SAAA+c,OAAAjC,IAAA,QAAArB,cAAAzZ,QAEA2f,qBAAAtH,KAAA,MAAA2H,UAAAD,cAAA/f,SACA,MAEA,KAAA,OACA,GAAA+f,eAAAhD,OAAAjC,IAAA,QAAArB,cAAAC,KACA1Z,SAAA+c,OAAAjC,IAAA,QAAArB,cAAAzZ,QAEA2f,qBAAAtH,KAAA,MAAA4H,OAAAF,eAAA/f,QACA,MAEA,SACA2f,oBAAAtH,KAAA,MAAA6H,OAIAnD,OAAAjC,IAAA,QAAAX,oBAIApmB,GAAA,WAAA,WAEA,OAAAgpB,OAAAjC,IAAA,QAAAnB,cAAAvmB,MAEA,IAAA,QACA,GAAA2sB,eAAAhD,OAAAjC,IAAA,QAAAnB,cAAAD,KACA1Z,SAAA+c,OAAAjC,IAAA,QAAAnB,cAAA3Z,QAEA2f,qBAAAtH,KAAA,MAAA8H,QAAAJ,cAAA/f,SACA,MAEA,KAAA,OACA,GAAA+f,eAAAhD,OAAAjC,IAAA,QAAAnB,cAAAD,KACA1Z,SAAA+c,OAAAjC,IAAA,QAAAnB,cAAA3Z,QAEA2f,qBAAAtH,KAAA,MAAA+H,QAAAL,cAAA/f,SACA,MAEA,SACA2f,oBAAAtH,KAAA,MAAAgI,OAIAtD,OAAAjC,IAAA,QAAAV,oBAGArmB,GAAA,oBAAA,WACA4rB,oBAAAtH,KAAA,SAAAiI,YAAA,YACAX,oBAAAtH,KAAA,SAAAkI,GAAAC,iBAAAtB,SAAA,YAEAnC,OAAAjC,IAAA,QAAAjB,sBAEA9lB,GAAA,mBAAA,SAAAsM,MAAAwc,aAAAxF,QAGA,GAAAoJ,OAAA,GACAC,eAAAf,oBAAAtH,KAAA,KAEAqI,gBACAC,QACAC,SAEAC,eAEA,KAAA,GADAC,SAAA,EACAC,aAAA,EAAAC,mBAAAnE,aAAAhpB,OAAAktB,aAAAC,mBAAAD,cAAA,EAAA,CAEA,GAAAE,UAAApE,aAAAkE,cAAAzuB,IAEA,IAAA,IAAA2uB,SAAAptB,OAAA,CAIAqc,SAAA2M,aAAAkE,cAAA5E,QAAAU,aAAAkE,cAAA5E,OAAAtoB,OAAA,GACA6sB,eAAAQ,OAAA,8BAAArE,aAAAkE,cAAA5E,OAAA,SAGA,KAAA,GAAApmB,GAAA,EAAAorB,eAAAF,SAAAptB,OAAAkC,EAAAorB,gBAAAL,QAAAjE,aAAAkE,cAAA3E,YAAArmB,GAAA,EACA0qB,MAAAzf,EAAA,yCAGA,WACA,GAAA7B,GAAApJ,EACAqrB,YAAAN,QACAO,cAAAxE,aAAAkE,cAAA5J,SAAA8J,SAAA9hB,GAEAshB,OAAApI,KAAA,UACAtkB,GAAA,QAAA,WAEA6qB,OAAA0C,IAAAD,eAAAE,QAAA,UAEAf,gBAAAY,YACAI,cAAAJ,aAEArE,OAAAjC,IAAA,QAAAlB,eACAmD,OAAAjC,IAAA,QAAAf,kBAEA0H,UAAA,WAEAjB,gBAAAY,YACAI,cAAAJ,aAEArE,OAAAjC,IAAA,QAAAb,qBAEAyH,SAAA,WACA3E,OAAAjC,IAAA,QAAAZ,oBAEA5d,KAAAjG,SAAAooB,MAAAkD,UAAAN,cAAAhK,QAAA4J,SAAA9hB,QAGAuhB,eAAAQ,OAAAT,OACAI,aAAAlsB,KAAAssB,SAAAlrB,IACA+qB,SAAA,GAIAnB,oBAAAuB,OAAAR,gBAEA3D,OAAAjC,IAAA,QAAAhB,mBAKA8E,OAAAgD,MAAAjC,qBAGA,QAAAkC,mBACAjD,OAAAkD,KAAA,IAAA7C,OAAA9H,SAAA,oBAAA7H,SAGA,QAAAqS,WAAA/e,OAAAyU,QAEA,MAAA0F,QAAAjC,IAAA,oBAAA,KAAAzD,OACAgD,gBAAAzX,OAAAyU,QAEAzU,OAKA,QAAAmf,cAAA1oB,KACA,MAAAA,KAAA7E,QAAA,sCAAA,QAGA,QAAA6lB,iBAAAzX,OAAAyU,QACA,GAAA2K,eAAAD,aAAA1K,OACA,QAAAzU,OAAA,IAAApO,QAAA,GAAAC,QAAA,IAAAutB,cAAA,IAAA,MAAA,aA1NApD,OAAAW,SAAA0C,SAAAhD,OAAA9H,SAAA,wBACA0K,kBACArC,iBAGAT,gBACAW,kBAEAwC,WAAAlhB,EAAA,IAAA6e,kBACA9C,OAAAjC,IAAA,gBACA8D,OAAAgB,KAAA,cAAA7C,OAAAjC,IAAA,gBAsNA,QAAA+E,kBAEA,GAAAsC,WAAAvD,OAAAgB,KAAA,KAIA,OAFAuC,WAAAlD,OAAA9H,SAAA,gBAAAgL,UAIA,QAAArD,cAKA,QAAAsD,iBACAC,WAAA,mBAAA,IACAC,qBAGAC,eACAC,YACAC,cACAC,eACAC,YACAC,WAGA,QAAAL,gBACA3D,OAAAiE,SAAA,WAEA,GACAxL,QADAyL,WAAAlE,OAAA0C,KAGAvE,QAAAjC,IAAA,QAAA3kB,MAAAqjB,gBACAsJ,WAAAA,WAAAtqB,cAGA,KAAA,GAAAzC,GAAA,EAAAlC,OAAAgtB,aAAAhtB,OAAAkC,EAAAlC,OAAAkC,GAAA,EAOA,GALAshB,OAAA0F,OAAAjC,IAAA,YAAA+F,aAAA9qB,IACAgnB,OAAAjC,IAAA,QAAA3kB,MAAAqjB,gBACAnC,OAAAA,OAAA7e,eAGA6e,SAAAyL,WAGA,MAFAtC,iBAAAzqB,MACAyrB,eAAAhB,mBAOA,QAAAgC,aACA5D,OACAhqB,IAAA,SACAmuB,MAAA,SAAA1iB,OAsEA,QAAA2iB,UAAApI,aAgFA,QAAAqI,sBAEA,GAAAC,aACAhL,aAAA6E,OAAAjC,IAAA,mBAEA,KAAA,GAAAqI,OAAAjL,cACAgL,SAAAC,KAAAjL,aAAAiL,IAGA,OAAAD,UAGA,QAAAE,+BAAAxI,YAAAtoB,MAEA,MAAAyqB,QAAAjC,IAAA,4BAAA,IACA,gBAAAiC,QAAAjC,IAAA,yBACAxoB,KAAAyqB,OAAAjC,IAAA,4BAAAF,YAGA,kBAAAmC,QAAAjC,IAAA,0BACAiC,OAAAjC,IAAA,yBAAAxoB,QAAAsoB,aAjGA,KAAAA,YAAA/mB,OAAAkpB,OAAAjC,IAAA,kBAAA,CAKA,GAAA,kBAAAiC,OAAAjC,IAAA,QAAA,CAEA,GAAAxoB,MAAAyqB,OAAAjC,IAAA,QAEA+B,aAAAwG,mBAAAtxB,KAAAO,KAEAuqB,cAAAwG,mBAAA5G,iBAAAI,aAAAvqB,MAEAuqB,aAAAwG,mBAAA1G,YAAAE,aAAAjC,aAEA0I,aAAAzG,aAAAjC,aAEAgE,OAAAW,SAAAlH,KAAA,MAAAxkB,OAAA,EACA0vB,gBAEAC,gBAKA,GAAAN,UAAAD,oBAEA/S,UAAAgT,SAAAjP,KAAA,KAAAiP,SAAAjP,MACAiP,SAAAjP,IAAA8I,OAAAjC,IAAA,QAGA5K,SAAAgT,SAAAhM,UAAA,KAAAgM,SAAAhM,WACAgM,SAAAhM,SAAA6F,OAAAjC,IAAA,aAIA5K,SAAAgT,SAAAjP,KAAA,kBAAAiP,SAAAjP,MAEAiP,SAAAjP,IAAAiP,SAAAjP,IAAA2G,aAEAsI,SAAA5wB,KAAAyqB,OAAAjC,IAAA,mBAAAoI,SAAA5wB,KAAAsoB,aAEA5Z,EAAAyiB,KAAAP,UACAQ,KAAA,SAAApxB,MAEA,GAAAuqB,cAAAwG,mBAAAtxB,KAAAO,KAEAuqB,cAAAwG,mBAAA5G,iBAAAI,aAAAvqB,MAEAuqB,aAAAwG,mBAAA3G,WAAAG,cACAuG,8BAAAxI,YAAAtoB,QAEAuqB,aAAAwG,mBAAA1G,YAAAE,aAAAjC,aAEA0I,aAAAzG,aAAAjC,cAIAyI,mBAAAzG,kBAAAC,eAAA+B,OAAAW,SAAAlH,KAAA,MAAAxkB,OAAA,EACA0vB,gBAEAC,gBAGAzG,OAAAjC,IAAA,oBAGA6I,KAAA,WACAxI,OAAAG,QAAA,gCAEAsI,OAAA,gBA7IA,OAAAvjB,MAAAwjB,SAEA,IAAA,IAEAL,gBACAM,gBACA,MAEA,KAAA,IAEAzjB,MAAA0jB,iBAEAlD,aAAAhtB,OAAA,GAAA2sB,gBAAA,IAEAA,iBAAA,EAEA5B,OAAA0C,IAAAvE,OAAAjC,IAAA,YAAA+F,aAAAL,mBAEAgB,cAAAhB,iBAGA,MAEA,KAAA,IAEAngB,MAAA0jB,iBAEAlD,aAAAhtB,OAAA,GAAA2sB,gBAAAK,aAAAhtB,OAAA,IAEA2sB,iBAAA,EAEA5B,OAAA0C,IAAAvE,OAAAjC,IAAA,YAAA+F,aAAAL,mBAEAgB,cAAAhB,iBAIA,MAEA,SAEA,GAAAngB,MAAAwjB,QAAA,IAAA,IAAAxjB,MAAAwjB,QAAA,CAEA,GAAAjJ,aAAAgE,OAAA0C,KAEAvE,QAAAjC,IAAA,QAAAvB,qBAAA,GAAA,IAAAlZ,MAAAwjB,SAAA,KAAAjJ,YAEAmC,OAAAjC,IAAA,gBAAA,GACA5K,SAAA8T,uBACAC,aAAAD,uBAGAA,sBAAAxlB,WAAA,WAAAwkB,SAAApI,cAAAmC,OAAAjC,IAAA,kBAEAkI,SAAApI,aAIA4I,oBA8HA,QAAAf,eACA7D,OACA7qB,GAAA,UAAA,SAAAmwB,KACAA,IAAAA,KAAAhsB,OAAAmI,KACA,IAAAwjB,SAAAK,IAAAL,OACA,IAAA,KAAAA,QAEA,MADAM,mBAAA,GACA,IAGAC,QAAA,SAAA/jB,OAEA,KAAAA,MAAAwjB,SAAArD,qBAEA5B,OAAA0C,IAAAvE,OAAAjC,IAAA,YAAA+F,aAAAL,mBAEAzD,OAAAjC,IAAA,QAAAd,kBACA+C,OAAAjC,IAAA,QAAAf,gBAEAyG,mBACAgD,gBAEAnjB,MAAA0jB,oBAKA,QAAArB,gBACA9D,OACAhqB,IAAA,YAGA,QAAA+tB,aACA/D,OAAAyF,MAAA,WAEA,KAAAzF,OAAA0C,OAAAT,aAAAhtB,OAAA,IAEA2sB,mBACA+C,mBAMA,QAAAX,YACAhE,OAAA0F,KAAA,WACA9lB,WAAA,WAEAgiB,mBACAgD,iBACA,OAIA,QAAAlB,sBACA1D,OAAAgB,KAAA,eAAA,OA9RAwC,gBAmSA,QAAAmB,iBACArB,WAAAX,QAAA,YAGA,QAAAiC,iBACAtB,WAAAX,QAAA,YAGA,QAAAC,eAAA9O,OAEAwP,WAAAX,QAAA,oBAAA7O,OAGA,QAAA4Q,cAAAlM,KAAAC,QACA6K,WAAAX,QAAA,oBAAAnK,KAAAC,SAGA,QAAAyM,kBACAlF,OAAA2C,QAAA,QApnBA,GAgBAyC,uBAXA/E,OAAA,GAAAlI,OAAAwE,SACAwB,OAAA,GAAAhG,OAAAC,cAAAvJ,SACA0N,OAAA,GAAApE,OAAAsE,OACAhlB,SAAA,GAAA0gB,OAAAoG,SAAA1P,QAAApX,UACAgtB,mBAAA,GAAAtM,OAAA6E,mBAAAmB,OAAAhG,MAAA+F,UACAuF,WAAAtF,OAAAhC,OAEA6D,OAAAD,OACAuD,WAAA,GACArB,gBACAL,kBAGAzJ,OAAAkI,OAAAA,OAEAjtB,KAAAuyB,aAAA,WACA,MAAAtF,SAGAjtB,KAAAwyB,iBAAA,WACA,MAAAzH,SAGA/qB,KAAAyyB,aAAA,WACA,MAAAvC,aAGAlwB,KAAA0yB,qBAAA,WACA,MAAAlE,kBAGAxuB,KAAA2yB,SAAA,WACA,MAAA9D,eAGA7uB,KAAA4yB,YAAA,SAAAlS,OAEA,MAAAmO,cAAAhtB,OAAA6e,OAAAxC,SAAA2Q,aAAAnO,UAGAmO,aAAAnO,QAIA1gB,KAAA6yB,oBAAA,WACA,MAAA7yB,MAAA4yB,YAAApE,kBAGAxuB,KAAAysB,MAAA,WACAI,gBAGA7sB,KAAAD,KAAA,WACAA,SA+jBAglB,MAAA+N,cAEA/N,MAAAgO,UAAA,SAAAC,IACA,MAAAjO,OAAA+N,WAAAE,KAGAjO,MAAAkO,WAAA,SAAAC,OAEA,MAAAhV,UAAAlP,EAAAkkB,OAAAtF,KAAA,OAAA5e,EAAAkkB,OAAAtF,KAAA,MAAA/rB,OAAA,GAQAkjB,MAAAoO,eAAA,SAAAD,OAEA,GAAAE,SAAA,EAEA,GACAA,SAAA,OAAA5jB,KAAAC,MAAA,IAAAD,KAAAE,gBACA,IAAAV,EAAA,IAAAokB,SAAAvxB,OAEAsuB,WAAApL,MAAAkI,OAAA9H,SAAA,gBAAAiO,QAEApkB,EAAAkkB,OAAAtF,KAAA,KAAAwF,UAIArO,MAAAsO,UAAA,SAAAC,OAAAN,IACAjO,MAAA+N,WAAAE,IAAAM,QAIAvO,OAEAD,uBAEA,SAAA9V,GAEAA,EAAA5E,GAAAmpB,iBAAA,SAAA9X,SAEA,MAAAzb,MAAAuqB,KAAA,WACA,GAAAiJ,OAAAxkB,EAAAhP,MACAyzB,UAAA,GAAA3O,kBAAA4H,KAAA8G,MAAA/X,QAEAqJ,kBAAAmO,WAAAO,QACA1O,iBAAAqO,eAAAK,OAGAC,UAAA1zB,OAEA+kB,iBAAAuO,UAAAI,UAAAD,MAAA5F,KAAA,UAKA5e,EAAA5E,GAAAsoB,qBAAA,WAEA,GAAAgB,SAAA1kB,EAAAhP,MAAA4tB,KAAA,KAEA,OAAA1P,UAAAwV,QACA5O,iBAAAiO,UAAAW,SAAAhB,2BAMA1jB,EAAA5E,GAAAuoB,SAAA,WAEA,GAAAe,SAAA1kB,EAAAhP,MAAA4tB,KAAA,KAEA,OAAA1P,UAAAwV,QACA5O,iBAAAiO,UAAAW,SAAAf,eAMA3jB,EAAA5E,GAAAwoB,YAAA,SAAAlS,OAEA,GAAAgT,SAAA1kB,EAAAhP,MAAA4tB,KAAA,KAEA,OAAA1P,UAAAwV,SAAAhT,SACAoE,iBAAAiO,UAAAW,SAAAd,YAAAlS,WAMA1R,EAAA5E,GAAAyoB,oBAAA,WAEA,GAAAa,SAAA1kB,EAAAhP,MAAA4tB,KAAA,KAEA,OAAA1P,UAAAwV,QACA5O,iBAAAiO,UAAAW,SAAAb,2BAMA1oB,QCtlDA,SAAA6E,GAEAA,IAQAA,EAAA5E,GAAAupB,SAAA,SAAAC,QACA,MAAA5zB,MAAAuqB,KAAA,WACA,GAAAiJ,OAAAxkB,EAAAhP,MACAM,KAAAkzB,MAAAlzB,KAAA,YACAmb,QAAA,gBAAAmY,SAAAA,MAEAnY,SAAAzM,EAAA5K,QAAA,KAAAyW,SAAAY,QAAAA,SAEAnb,OACAA,KAAA,GAAAua,UAAA7a,KAAAyb,SACAnb,KAAAP,OACAyzB,MAAAlzB,KAAA,WAAAA,OAEA,gBAAAszB,UACAtzB,KAAAszB,UAEA,YAAAA,QACAJ,MAAAK,WAAA,gBAUA7kB,EAAA,mBAAAub,KAAA,WACA,GAAAiJ,OAAAxkB,EAAAhP,KACAwzB,OAAAG,SAAAH,MAAAlzB,YAGA4F,OAAA4tB,OAAA5tB,OAAAiE,QClCA,SAAA6E,GACAA,EAAA5E,GAAA2pB,QAAA,SAAAC,UAEAA,SAAAhlB,EAAA5K,QACA8D,IAAA,GACA+rB,MAAA,IACAC,WACAC,WAAA,KACAC,YAAA,KACAC,eAAA,KACAC,gBAAA,KACAC,aAAA,EACAC,UAAA,cACAR,SAEA,IAAAS,OAAAz0B,KACA00B,MAAA1lB,EAAA,QAGAjP,KAAA,SAAA40B,IACA,GAAAC,QAAA5lB,EAAA2lB,IACAE,QAAAD,OAAAE,QAAA,KACAC,YAGA,KAAA,GAAAhxB,KAAAiwB,UACAe,UAAAhxB,GAAA6wB,OAAAhH,KAAA,gBAAA7pB,EAAAyC,cAIA,IAAAwuB,UAAAD,UAAA,KAAAf,SAAA,KAAAa,QAAAjH,KAAA,SAAA,EACA,IAAAoH,SAAA,CAEA,GAAA9E,YACA+E,MACAC,YACAC,aACAC,gBACAC,iBACAC,WACAC,YAGAC,iBACAC,aAHAC,QAAA,EACAC,QAAA,EAIAC,UAAA,WACA,GAAAv0B,GAAA6uB,WAAArU,QASA,OANA4Z,eACAhY,IAAAmX,OAAA/Y,SAAA4B,IAAApc,EAAAoc,IAAAoY,SAAAjB,OAAAnkB,IAAA,qBAAAolB,SAAAjB,OAAAnkB,IAAA,gBACAqlB,KAAAlB,OAAA/Y,SAAAia,KAAAz0B,EAAAy0B,KAAAD,SAAAjB,OAAAnkB,IAAA,sBAAAolB,SAAAjB,OAAAnkB,IAAA,kBAEApP,EAAAoc,KAAAgY,aAAA,IACAp0B,EAAAy0B,MAAAL,aAAA,KACAp0B,GAGA00B,SAAA,WACAd,MAAAe,GAAA,aAAAf,MAAA7G,QAAA4F,SAAA,MAAA,WACAU,MAAApG,YAAA,cAAAiB,QAAA,gBAKA0G,QAAAlB,UAAA,SAAAf,SAAA,OAAAe,UAAA,OACAkB,OAAAlB,UAAA,WAAAf,SAAA,SAAAe,UAAA,SACAkB,OAAAlB,UAAA,cAAAf,SAAA,YAAAe,UAAA,YACAkB,OAAAlB,UAAA,eAAAf,SAAA,aAAAe,UAAA,aACAkB,OAAAlB,UAAA,kBAAAf,SAAA,gBAAAe,UAAA,gBACAkB,OAAAlB,UAAA,mBAAAf,SAAA,iBAAAe,UAAA,iBACA,SAAAA,UAAA,cAAAf,SAAA,aAAA,GACA,kBAAA9tB,QAAA6uB,UAAA,aAAAf,SAAAQ,UAAAtuB,OAAA6uB,UAAA,YAGAH,OAAAt0B,KAAA,gBAAAs0B,OAAAhH,KAAA,SASA,IAAAsI,aAAA,GAAAvkB,MACA3C,GAAAknB,aAAAn0B,IACA4L,KAAA,WAGA,GAAAwoB,IAAAC,EAGAxB,QAAAnkB,IAAA,UAAA,SAEAmkB,OAAArH,OAAA,YAAA1rB,QACA+yB,OAAAzH,KAAA,+BAEA+C,WAAA0E,OAAArH,OAAA,YAEAqH,OAAAyB,KAAA,iBAAAx0B,OACAquB,WAAArN,SAAA,iBAAApS,IAAA,mBAAA,QAAAukB,SAAA,MAEAJ,OAAA0B,OAAA,6DAAAtB,SAAA,6BAEAC,MAAA/E,WAAArN,SAAA,iBAEAoS,MAAA3G,YAAA,WAIA4G,YAAAlB,SAAA,YAAAY,OAAA2B,QACApB,aAAAnB,SAAA,aAAAY,OAAA4B,SACApB,gBAAApB,SAAA,gBAAAkC,YAAAK,MACAlB,iBAAArB,SAAA,iBAAAkC,YAAAM,OACAlB,WAAAL,MAAAsB,QACAhB,YAAAN,MAAAuB,SACAhB,iBAAAI,YAEA5B,SAAA,cACA0B,QAAAJ,WAAA,GAAAF,gBAAAF,aACAS,QAAAJ,YAAA,GAAAF,iBAAAF,eAGAC,kBAAAc,YAAAK,OAAAlB,mBAAAa,YAAAM,QACAvB,MAAAxkB,IAAA,kBAAA2kB,gBAAA,MAAAC,iBAAA,MAGAT,OAAAt0B,KAAA,YACAi2B,MAAAnB,gBACAoB,OAAAnB,mBAGAa,YAAA,KAEAlC,SAAAQ,YAEAtE,WAAAttB,MAAAb,IACA00B,sBAAA,SAAA72B,GAGA,GAFAA,EAAAmyB,kBAEAoD,aAEA,WADAuB,UAqBA,IAbAP,IAAAv2B,EAAA+2B,OAAA/2B,EAAAg3B,cAAAC,QAAA,GAAAF,OAAAnB,iBAAA,KACAY,IAAAx2B,EAAAk3B,OAAAl3B,EAAAg3B,cAAAC,QAAA,GAAAC,OAAAtB,iBAAA,IAEAP,MAAAe,GAAA,eACAG,GAAAT,SAAAS,GAAAjB,YAAAQ,SAAAU,GAAAT,SAAAS,GAAAjB,aAAAQ,QACAV,MAAAe,GAAA,aACAtB,MAAAxH,SAAA,cAAAqC,QAAA,gBACA0F,MAAAhH,OAAA+F,SAAA,QAGA+B,YAGAd,MAAAe,GAAA,YAAA,CAEA,GAAAe,QAAA,EACA,IAAA3B,iBAAAC,iBAAA,CAKA,GAAA2B,UAAAxnB,KAAAynB,MAAAd,GAAAjB,YAAAE,gBAAAE,WAAA,GACA4B,SAAA1nB,KAAAynB,MAAAb,GAAAjB,aAAAE,iBAAAE,YAAA,EACA,IAAAvB,SAAA,YAAA,CAEA,GAAAmD,cAAA3nB,KAAAynB,OAAA/B,YAAAQ,SAAAR,YAAAE,gBAAAE,WAAA,GACA8B,cAAA5nB,KAAAynB,OAAA9B,aAAAQ,SAAAR,aAAAE,iBAAAE,YAAA,EAEAyB,SAAA,EAAAA,QAAA,EACAA,QAAAG,cAAAH,QAAAG,aAEAD,QAAA,EAAAA,QAAA,EACAA,QAAAE,eAAAF,QAAAE,cAEAL,OAAAC,QAAA,MAAAE,QAAA,KAMAjC,MAAAxkB,KACAgN,IAAAjO,KAAAynB,MAAAb,GAAAb,YAAA,GAAAE,aAAA,IAAA,KACAK,KAAAtmB,KAAAynB,MAAAd,GAAAb,WAAA,GAAAG,aAAA,KAAA,KACA4B,sBAAAN,WAIAO,WAAA,WAEA9B,iBAAAI,aAEA2B,WAAAxB,WAIA/B,SAAA,SAAA,GACA9D,WAAAnuB,GAAA,WAAA,WACAyK,WAAAupB,SAAA/B,SAAA,WAIAhlB,EAAA,QAAAwoB,IAAAtH,YAAAnuB,GAAA,aAAAg0B,SAGA,IAAA0B,SAAA7C,OAAAhH,KAAA,SACA,IAAA6J,QAAA,CACA,GAAAC,MAAA1oB,EAAA,YAAAyoB,QAAAr3B,MAAA,GAAA,IAEAw0B,QAAAhF,MAAA8H,MACAxH,WAAAyH,MAAA,SAAA/3B,GAEA,GAAAA,EAAAg4B,SAAAh4B,EAAAi4B,QAAA,CACA5C,MAAA5G,MACA,IAAAyJ,SAAA9zB,SAAA+zB,iBACAn4B,EAAAg4B,SAAAh4B,EAAAg3B,cAAAC,QAAA,GAAAe,QACAh4B,EAAAi4B,SAAAj4B,EAAAg3B,cAAAC,QAAA,GAAAgB,QAEA,UAAAC,QAAAlvB,SACAkvB,QAAAH,QAIA3oB,EAAA,OAAA0oB,MAAAnN,KAAA,WACA,GAAAzpB,GAAAkO,EAAAhP,MAAA4tB,KAAA,UAAAlkB,MAAA,IACA,IAAAysB,IAAAr1B,EAAA,IAAAq1B,IAAAr1B,EAAA,IAAAs1B,IAAAt1B,EAAA,IAAAs1B,IAAAt1B,EAAA,GAEA,MADAd,MAAA23B,SACA,OAQA9C,QAAAhzB,SAEAgzB,QAAApkB,IAAA,UAAA,iBAEAokB,QAAAjH,KAAA,SAAAmH,UAAA,KAAAf,SAAA,KACAa,QAAA8C,MAAA,SAAA/3B,GACAA,EAAAmyB,qBAMA3I,MAAA,WAEA8M,YAAA,QAIAA,YAAAhuB,IAAA8sB,WAIAgD,OAAA,EACAtB,QAAA,WACAzE,aAAA+F,QACAA,OAAAxrB,WAAA,WACAioB,MAAApX,UACAoX,MAAAV,QAAAC,WACA,KA4BA,OApBAh0B,MAAAqd,QAAA,WAcA,MAbArd,MAAAuqB,KAAA,WACA,GAAAiJ,OAAAxkB,EAAAhP,MACAi1B,MAAAzB,MAAA6C,KAAA,oBACA4B,OAAAzE,MAAAlzB,KAAA,gBACAkzB,OAAAjG,OAAA,eAAA1rB,QAAAozB,MAAApzB,SACAo2B,OAAAzE,MAAA5F,KAAA,QAAAqK,QACAzE,MAAA0E,WAAA,SACA1E,MAAA/F,SACAwH,MAAA3X,YAIAtO,EAAA9I,QAAAtD,IAAA,SAAA8zB,SACAjC,OAIAzlB,EAAA9I,QAAAiyB,OAAAzB,SAEA12B,KAAAuqB,KAAA,WAEAxqB,KAAAC,UAIAmK,QClTA,SAAAuQ,SACA,kBAAAC,SAAAA,OAAAC,IAEAD,QAAA,UAAAD,SACA,gBAAAvX,SAEAF,OAAAE,QAAAuX,QAGAA,QAAAvQ,SAEA,SAAA6E,GAyEA,QAAAopB,SAAA/pB,OACA,GAAAgqB,UAAAhqB,OAAAnI,OAAAmI,MACAuS,KAAAxgB,MAAAC,KAAAuB,UAAA,GACA02B,MAAA,EACAC,OAAA,EACAC,OAAA,EACAC,SAAA,EACAC,QAAA,EACAC,QAAA,CA8BA,IA7BAtqB,MAAAW,EAAAX,MAAAuqB,IAAAP,UACAhqB,MAAAjN,KAAA,aAGA,UAAAi3B,YAAAG,OAAAH,SAAAr2B,WACA,cAAAq2B,YAAAG,OAAAH,SAAAQ,YACA,eAAAR,YAAAG,OAAAH,SAAAS,aACA,eAAAT,YAAAE,OAAAF,SAAAU,gBAGA,QAAAV,WAAAA,SAAAW,OAAAX,SAAAY,kBACAV,OAAAC,UACAA,OAAA,GAIAF,MAAA,IAAAE,OAAAD,OAAAC,OAGA,UAAAH,YACAG,OAAAH,SAAAG,UACAF,MAAAE,QAEA,UAAAH,YACAE,OAAAF,SAAAE,OACA,IAAAC,SAAAF,MAAAC,YAIA,IAAAC,QAAA,IAAAD,OAAA,CAOA,GAAA,IAAAF,SAAAa,UAAA,CACA,GAAAC,YAAAnqB,EAAA1O,KAAAN,KAAA,yBACAs4B,QAAAa,WACAX,QAAAW,WACAZ,QAAAY,eACA,IAAA,IAAAd,SAAAa,UAAA,CACA,GAAAE,YAAApqB,EAAA1O,KAAAN,KAAA,yBACAs4B,QAAAc,WACAZ,QAAAY,WACAb,QAAAa,WA6BA,GAzBAX,SAAAjpB,KAAAkP,IAAAlP,KAAA+P,IAAAiZ,QAAAhpB,KAAA+P,IAAAgZ,WAEAc,aAAAZ,SAAAY,eACAA,YAAAZ,SAGAa,sBAAAjB,SAAAI,YACAY,aAAA,KAKAC,sBAAAjB,SAAAI,YAEAH,OAAA,GACAC,QAAA,GACAC,QAAA,IAIAF,MAAA9oB,KAAA8oB,OAAA,EAAA,QAAA,QAAAA,MAAAe,aACAd,OAAA/oB,KAAA+oB,QAAA,EAAA,QAAA,QAAAA,OAAAc,aACAb,OAAAhpB,KAAAgpB,QAAA,EAAA,QAAA,QAAAA,OAAAa,aAGAE,QAAArI,SAAAsI,iBAAAx5B,KAAAy5B,sBAAA,CACA,GAAAC,cAAA15B,KAAAy5B,uBACAf,SAAArqB,MAAAupB,QAAA8B,aAAA5D,KACA6C,QAAAtqB,MAAAwpB,QAAA6B,aAAAjc,IAwBA,MApBApP,OAAAkqB,OAAAA,OACAlqB,MAAAmqB,OAAAA,OACAnqB,MAAAsrB,YAAAN,YACAhrB,MAAAqqB,QAAAA,QACArqB,MAAAsqB,QAAAA,QAIAtqB,MAAA6qB,UAAA,EAGAtY,KAAA9e,QAAAuM,MAAAiqB,MAAAC,OAAAC,QAMAoB,wBAAA3H,aAAA2H,wBACAA,uBAAAptB,WAAAqtB,gBAAA,MAEA7qB,EAAAX,MAAAyrB,UAAA9qB,EAAAX,MAAAilB,QAAA7yB,MAAAT,KAAA4gB,OAGA,QAAAiZ,mBACAR,YAAA,KAGA,QAAAC,uBAAAjB,SAAAI,UAQA,MAAAc,SAAArI,SAAA6I,iBAAA,eAAA1B,SAAAj3B,MAAAq3B,SAAA,MAAA,EApMA,GAIAmB,wBAAAP,YAJAW,OAAA,QAAA,aAAA,iBAAA,uBACAC,OAAA,WAAAj2B,WAAAA,SAAAk2B,cAAA,GACA,UAAA,aAAA,iBAAA,uBACA95B,MAAAF,MAAAC,UAAAC,KAGA,IAAA4O,EAAAX,MAAA8rB,SACA,IAAA,GAAAp2B,GAAAi2B,MAAAn4B,OAAAkC,GACAiL,EAAAX,MAAA8rB,SAAAH,QAAAj2B,IAAAiL,EAAAX,MAAA+rB,UAIA,IAAAb,SAAAvqB,EAAAX,MAAAkrB,QAAAc,YACArpB,QAAA,SAEArQ,MAAA,WACA,GAAAX,KAAAgM,iBACA,IAAA,GAAAjI,GAAAk2B,OAAAp4B,OAAAkC,GACA/D,KAAAgM,iBAAAiuB,SAAAl2B,GAAAq0B,SAAA,OAGAp4B,MAAAs6B,aAAAlC,OAGAppB,GAAA1O,KAAAN,KAAA,yBAAAu5B,QAAAgB,cAAAv6B,OACAgP,EAAA1O,KAAAN,KAAA,yBAAAu5B,QAAAiB,cAAAx6B,QAGAy6B,SAAA,WACA,GAAAz6B,KAAA2d,oBACA,IAAA,GAAA5Z,GAAAk2B,OAAAp4B,OAAAkC,GACA/D,KAAA2d,oBAAAsc,SAAAl2B,GAAAq0B,SAAA,OAGAp4B,MAAAs6B,aAAA,IAGAtrB,GAAA6kB,WAAA7zB,KAAA,0BACAgP,EAAA6kB,WAAA7zB,KAAA,2BAGAu6B,cAAA,SAAA/e,MACA,GAAAkf,OAAA1rB,EAAAwM,MACAmf,QAAAD,MAAA,gBAAA1rB,GAAA5E,GAAA,eAAA,WAIA,OAHAuwB,SAAA94B,SACA84B,QAAA3rB,EAAA,SAEA6mB,SAAA8E,QAAAlqB,IAAA,YAAA,KAAAolB,SAAA6E,MAAAjqB,IAAA,YAAA,KAAA,IAGA+pB,cAAA,SAAAhf,MACA,MAAAxM,GAAAwM,MAAAgb,UAGAtF,UACA6I,iBAAA,EACAP,iBAAA,GAIAxqB,GAAA5E,GAAAhG,QACAi2B,WAAA,SAAAjwB,IACA,MAAAA,IAAApK,KAAAuc,KAAA,aAAAnS,IAAApK,KAAAuvB,QAAA,eAGAqL,aAAA,SAAAxwB,IACA,MAAApK,MAAA66B,OAAA,aAAAzwB,SC9EA,SAAA0V,OAAApF,SAEA,kBAAAC,SAAAA,OAAAC,IACAD,QAAA,UAAA,SAAAxQ,QACA,MAAAuQ,SAAAoF,OAAA3V,UAGA,gBAAAhH,SACAuX,QAAAoF,OAAAkB,QAAA,WAGAtG,QAAAoF,OAAAA,OAAA3V,SAEA,mBAAAjE,QAAAA,OAAAlG,KAAA,SAAAkG,OAAA8I,GACA,YAsCA,SAAA8rB,cAAAC,MAAAC,QAEA,IADA,GAAAj3B,GAAAg3B,MAAAl5B,SACAkC,GACA,GAAAyL,KAAAynB,OAAA8D,MAAAh3B,MAAAyL,KAAAynB,OAAA+D,OAAAj3B,IACA,OAAA,CAGA,QAAA,EAQA,QAAAk3B,oBAAAC,MACA,GAAAzf,UAAA0f,OAAA,EAAAC,SAAA,EAMA,OALA,iBAAAF,MACAzf,QAAA2f,QAAAF,KAEAlsB,EAAA5K,OAAAqX,QAAAyf,MAEAzf,QAQA,QAAA4f,QAAAv6B,EAAAwK,EAAAjG,EAAAkC,EAAA3H,EAAA+H,EAAAC,EAAAJ,EAAAzD,GACA,UAAAiL,EAAA5N,KAAAN,GACAd,KAAAyhB,WACA3gB,EAAA,IAAAA,EAAA,IAAAA,EAAA,IACAA,EAAA,IAAAA,EAAA,IAAAA,EAAA,GACA,EAAA,EAAA,GAGAd,KAAAyhB,UACA3gB,EAAAwK,EAAAjG,EACAkC,EAAA3H,EAAA+H,EACAC,GAAA,EAAAJ,GAAA,EAAAzD,GAAA,GA4EA,QAAAu3B,QAAA9tB,EAAArC,EAAAC,GACApL,KAAAyhB,UAAAjU,EAAArC,EAAAC,GAwBA,QAAAmwB,SAAA/f,KAAAC,SAGA,KAAAzb,eAAAu7B,UACA,MAAA,IAAAA,SAAA/f,KAAAC,QAIA,KAAAD,KAAApT,UACA4G,EAAAoa,MAAA,sCAEApa,EAAA8O,SAAA9Z,SAAAwX,OACAxM,EAAAoa,MAAA,mDAIA,IAAA7hB,GAAAyH,EAAA1O,KAAAkb,KAAAggB,QACA,IAAAj0B,EACA,MAAAA,EAKAvH,MAAAyb,QAAAA,QAAAzM,EAAA5K,UAAAm3B,QAAA9V,SAAAhK,SACAzb,KAAAwb,KAAAA,IACA,IAAAkf,OAAA16B,KAAA06B,MAAA1rB,EAAAwM,KACAxb,MAAAy7B,KAAAhgB,QAAAggB,MAAAhgB,QAAAggB,KAAA55B,OAAA4Z,QAAAggB,KAAAf,MACA16B,KAAA07B,KAAA1sB,EAAAwM,KAAA/S,eAAAzE,UACAhE,KAAA26B,QAAAD,MAAAnN,SACAvtB,KAAAutB,OAAAvtB,KAAA26B,QAAA,GAIA36B,KAAA27B,MAAAC,KAAAv4B,KAAAmY,KAAAqgB,eAAA,QAAArgB,KAAA5S,SAAApC,cAEAxG,KAAA87B,SAAA,EAKA97B,KAAA+7B,kBAIA/7B,KAAAg8B,WAAAhtB,EAAAitB,SAAAC,UAAA15B,QAAA25B,OAAA,OAAA31B,cAGAxG,KAAAo8B,mBAGAp8B,KAAAq8B,iBAGA,IAAAC,QAAAttB,IACAutB,KAAAv8B,IACAgP,GAAAub,MAAA,UAAA,WAAA,aAAA,UAAA,SAAAxmB,EAAAgJ,MACAwvB,KAAAxvB,MAAA0O,QAAA1O,OAAAuvB,SAGAt8B,KAAAw8B,SAEAx8B,KAAAy8B,MAAAz8B,KAAA08B,YAAA,GACA18B,KAAA28B,sBAGA3tB,EAAA1O,KAAAkb,KAAAggB,QAAAx7B,MAnPA,GAAAgE,UAAAkC,OAAAlC,SACAw3B,QAAA,SACAp7B,MAAAF,MAAAC,UAAAC,MACAw8B,MAAA,eACAC,mBAAA,WAEA,GAAAD,MAAAv5B,KAAAC,UAAAC,WACA,OAAA,CAEA,IAAA2vB,OAAAlvB,SAAAC,cAAA,QAEA,OADAivB,OAAApuB,aAAA,UAAA,UACA,kBAAAouB,OAAA4J,WAIAX,OAAA,WACAP,KAAA,sBAEAmB,SAAA,uBACAC,WAAA,WACAC,QAAA,GAAAx6B,QACA,aACAs6B,SAAAC,WACAD,SAAAC,WACAD,SAAAC,WACAD,SAAAC,WACAD,SAAAC,WACAD,SAAA,OAmuCA,OA5qCA1B,QAAAl7B,WAMAqN,EAAA,SAAA0vB,QACA,GAAAC,UAAAD,iBAAA5B,QAEAx6B,EAAAd,KAAAyhB,SACAnW,EAAA4xB,OAAAzb,QAEA,OAAA0b,WAAA,IAAA7xB,EAAAzJ,OAEA,GAAAy5B,QACAx6B,EAAA,GAAAwK,EAAA,GAAAxK,EAAA,GAAAwK,EAAA,GAAAxK,EAAA,GAAAwK,EAAA,GACAxK,EAAA,GAAAwK,EAAA,GAAAxK,EAAA,GAAAwK,EAAA,GAAAxK,EAAA,GAAAwK,EAAA,GACAxK,EAAA,GAAAwK,EAAA,GAAAxK,EAAA,GAAAwK,EAAA,GAAAxK,EAAA,GAAAwK,EAAA,IAEAA,EAAAzJ,SAAAf,EAAAe,QAEA,GAAAw5B,QACAv6B,EAAA,GAAAwK,EAAA,GAAAxK,EAAA,GAAAwK,EAAA,GAAAxK,EAAA,GAAAwK,EAAA,GACAxK,EAAA,GAAAwK,EAAA,GAAAxK,EAAA,GAAAwK,EAAA,GAAAxK,EAAA,GAAAwK,EAAA,GACAxK,EAAA,GAAAwK,EAAA,GAAAxK,EAAA,GAAAwK,EAAA,GAAAxK,EAAA,GAAAwK,EAAA,GAEAxK,EAAA,GAAAwK,EAAA,GAAAxK,EAAA,GAAAwK,EAAA,GAAAxK,EAAA,GAAAwK,EAAA,GACAxK,EAAA,GAAAwK,EAAA,GAAAxK,EAAA,GAAAwK,EAAA,GAAAxK,EAAA,GAAAwK,EAAA,GACAxK,EAAA,GAAAwK,EAAA,GAAAxK,EAAA,GAAAwK,EAAA,GAAAxK,EAAA,GAAAwK,EAAA,GAEAxK,EAAA,GAAAwK,EAAA,GAAAxK,EAAA,GAAAwK,EAAA,GAAAxK,EAAA,GAAAwK,EAAA,GACAxK,EAAA,GAAAwK,EAAA,GAAAxK,EAAA,GAAAwK,EAAA,GAAAxK,EAAA,GAAAwK,EAAA,GACAxK,EAAA,GAAAwK,EAAA,GAAAxK,EAAA,GAAAwK,EAAA,GAAAxK,EAAA,GAAAwK,EAAA,KASA8xB,QAAA,WACA,GAAA71B,GAAA,EAAAvH,KAAAq9B,cACAv8B,EAAAd,KAAAyhB,QACA,OAAA,IAAA4Z,QACA9zB,GAAAzG,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,IACAyG,IAAAzG,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,IACAyG,GAAAzG,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,IAEAyG,IAAAzG,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,IACAyG,GAAAzG,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,IACAyG,IAAAzG,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,IAEAyG,GAAAzG,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,IACAyG,IAAAzG,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,IACAyG,GAAAzG,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,MAOAu8B,YAAA,WACA,GAAAv8B,GAAAd,KAAAyhB,QACA,OAAA3gB,GAAA,IAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,IAAAA,EAAA,IAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,IAAAA,EAAA,IAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,MAeAw6B,OAAAn7B,UAAAP,EAAAy7B,OAAAl7B,UAAAP,EAAA,SAAAmE,GACA,MAAA/D,MAAAyhB,SAAA1d,IAqFAw3B,QAAA0B,QAAAA,QAEA1B,QAAA9V,UAKA6X,eAAA,WAGAC,YAAA,EAGAC,OAAA,OAGAC,YAAA,EACAC,aAAA,EAGAC,cAAA,EACAC,cAAA,EAGAC,MAAA,EAIAC,UAAA,GAIAC,aAAA,EAGAC,mBAAA,EAGAC,SAAA,GACAC,SAAA,EAIAC,UAAA,IAGAC,SAAA,IAEAC,OAAA,cAMAC,SAAA,GAGA/C,QAAAp7B,WACAgC,YAAAo5B,QAKA3W,SAAA,WACA,MAAA5kB,OAMAw8B,OAAA,WAEAx8B,KAAAu+B,aACAv+B,KAAAw+B,QACAx+B,KAAAy+B,UAAA,GAMAC,QAAA,WACA1+B,KAAAy+B,UAAA,EACAz+B,KAAA2+B,cACA3+B,KAAA4+B,WAMAC,WAAA,WACA,MAAA7+B,MAAAy+B,UAMAphB,QAAA,WACArd,KAAA0+B,UACA1vB,EAAA6kB,WAAA7zB,KAAAwb,KAAAggB,UAQAa,gBAAA,WAEAr8B,KAAA8+B,UAAA9+B,KAAAutB,OAAAkM,uBAGA,IAAAje,MAAAxb,KAAAwb,KAEAujB,KAAAvjB,KAAAie,wBACAuF,SAAAxvB,KAAA+P,IAAAvf,KAAAy8B,MACAz8B,MAAAi/B,YACA1I,MAAAwI,KAAAxI,MACAC,OAAAuI,KAAAvI,OACAV,KAAA9mB,EAAAyB,IAAA+K,KAAA,QAAA,IAAA,EACAiC,IAAAzO,EAAAyB,IAAA+K,KAAA,OAAA,IAAA,EAEA0jB,QACAzhB,IAAAzO,EAAAyB,IAAA+K,KAAA,kBAAA,GAAAwjB,UAAA,EACAhhB,OAAAhP,EAAAyB,IAAA+K,KAAA,qBAAA,GAAAwjB,UAAA,EACAlJ,KAAA9mB,EAAAyB,IAAA+K,KAAA,mBAAA,GAAAwjB,UAAA,EACAG,MAAAnwB,EAAAyB,IAAA+K,KAAA,oBAAA,GAAAwjB,UAAA,GAEAI,QACA3hB,IAAAzO,EAAAyB,IAAA+K,KAAA,aAAA,GAAAwjB,UAAA,EACAlJ,KAAA9mB,EAAAyB,IAAA+K,KAAA,cAAA,GAAAwjB,UAAA,KAUAK,MAAA,SAAA5jB,SACAA,QAAAwf,mBAAAxf,QAEA,IAAAyhB,QAAAl9B,KAAAs/B,UAAAt/B,KAAAu/B,eAAA9jB,QACAA,SAAA+jB,QACAx/B,KAAAy/B,SAAA,QAAAvC,SAQAwC,UAAA,SAAAjkB,SACAA,QAAAwf,mBAAAxf,QACA,IAAAkkB,YAAA3/B,KAAA08B,UAAA18B,KAAAu/B,eACA9jB,SAAAmkB,OAAAD,WAAA,GACA3/B,KAAA6/B,KAAAF,WAAA,GAAAlkB,UAOAqkB,SAAA,SAAArkB,SACA,GAAAkkB,YAAA3/B,KAAA08B,UAAA18B,KAAAu/B,eACAv/B,MAAA+/B,IAAAJ,WAAA,GAAAA,WAAA,GAAA1E,mBAAAxf,WASAukB,aAAA,SAAA9D,WAGA,IAFA,GAAAT,MAAAz7B,KAAAy7B,KACA13B,EAAA03B,KAAA55B,OACAkC,KACAiL,EAAAc,MAAA2rB,KAAA13B,GAAA,YAAAm4B,WAMAl8B,KAAA27B,OACAF,KAAA13B,GAAAe,aAAA,YAAAo3B,YAaA+D,aAAA,SAAA/D,WACA,GAAAT,MAAAz7B,KAAAy7B,KACAyE,cAAAzE,KAAA,EAuBA,OAtBAS,WACAl8B,KAAAggC,aAAA9D,YAMAA,UAAAltB,EAAAc,MAAAowB,cAAA,cAEAlgC,KAAA27B,OAAAO,WAAA,SAAAA,YACAA,UAAAltB,EAAA4e,KAAAsS,cAAA,cAAA,SAMA,SAAAhE,WAAAe,QAAA55B,KAAA64B,YAGAl8B,KAAAggC,aAAA9D,UAAAltB,EAAAyB,IAAAyvB,cAAA,cAGAhE,WAAA,QAQAQ,UAAA,SAAAR,WACA,GAAAgB,QAAAD,QAAA5Z,KAAA6Y,WAAAl8B,KAAAigC,eAIA,OAHA/C,SACAA,OAAA5vB,QAEA4vB,SAAA,EAAA,EAAA,EAAA,EAAA,EAAA,IAaAoC,UAAA,SAAApC,OAAAzhB,SACA,IAAAzb,KAAAy+B,SAAA,CACAhjB,UAAAA,YAEA,gBAAAyhB,UACAA,OAAAl9B,KAAA08B,UAAAQ,QAEA,IAAAT,QAAAS,OAAA,GACAoB,QAAA,mBAAA7iB,SAAA6iB,QAAA7iB,QAAA6iB,QAAAt+B,KAAAyb,QAAA6iB,OAGA,IAAAA,QAAA,CACA,GAAAS,MAAAtjB,QAAAsjB,IACAA,QACA/+B,KAAAq8B,kBACA0C,KAAA/+B,KAAAi/B,WAEA,IAAAkB,YAAAC,YAAAC,UACAvB,UAAA9+B,KAAA8+B,UACAvI,MAAAwI,KAAAxI,MACAC,OAAAuI,KAAAvI,OACA8J,SAAAxB,UAAAvI,MACAgK,UAAAzB,UAAAtI,OACAgK,YAAAF,SAAA/J,MACAkK,YAAAF,UAAA/J,MAIA,YAAAx2B,KAAA26B,QAAAlqB,IAAA,cAAA,WAAAzB,EAAAyB,IAAAzQ,KAAAwb,KAAA,YAEA6kB,WAAA9J,MAAAv2B,KAAAwb,KAAAklB,aAAA,EACAP,WAAAE,UAAAtB,KAAAG,OAAApJ,KACAsK,YAAA7J,MAAA+J,SAAAD,UAAAtB,KAAAG,OAAAC,OAEAgB,WAAAC,aAAA7J,MAAA+J,UAAA,CAEA,IAAAK,YAAAnK,OAAA+J,WAAA,EAAAxB,KAAAG,OAAAzhB,IACAmjB,cAAApK,OAAA+J,WAAA,EAAAxB,KAAAG,OAAAzhB,IAAAshB,KAAAG,OAAAlhB,MAEA,YAAAsgB,SAAA,cAAAA,SAAAkC,YAAA,KACAtD,OAAA,GAAA1tB,KAAAkP,IAAAlP,KAAAqxB,IAAA3D,OAAA,GAAAiD,WAAApB,KAAAG,OAAApJ,OAAAsK,aAEAlD,OAAA,GAAA1tB,KAAAqxB,IAAArxB,KAAAkP,IAAAwe,OAAA,GAAAiD,aAAAC,aAGA,WAAA9B,SAAA,cAAAA,SAAAmC,YAAA,KACAvD,OAAA,GAAA1tB,KAAAkP,IAAAlP,KAAAqxB,IAAA3D,OAAA,GAAAyD,UAAA5B,KAAAG,OAAAzhB,MAAAmjB,cAEA1D,OAAA,GAAA1tB,KAAAqxB,IAAArxB,KAAAkP,IAAAwe,OAAA,GAAAyD,YAAAC,cAgBA,GAXA,SAAAnlB,QAAA2f,SAEAp7B,KAAAu9B,YAAA9hB,QAAA2f,SAIA3f,QAAA0f,OACAn7B,KAAA8gC,WAAAxR,IAAAmN,OAIAz8B,KAAAyb,QAAAkiB,cAAA39B,KAAAyb,QAAAmiB,aAAA,CACA,GAAAmD,gBAAA/gC,KAAA08B,WACA18B,MAAAyb,QAAAkiB,eACAT,OAAA,GAAA6D,eAAA,IAEA/gC,KAAAyb,QAAAmiB,eACAV,OAAA,GAAA6D,eAAA,IAcA,MAXA/gC,MAAAggC,aAAA,UAAA9C,OAAAl8B,KAAA,KAAA,KAEAhB,KAAAy8B,MAAAA,MAGAz8B,KAAA28B,oBAAAF,OAEAhhB,QAAA+jB,QACAx/B,KAAAy/B,SAAA,SAAAvC,QAGAA,SAMA8D,UAAA,WACA,MAAAhhC,MAAA87B,SAOAyB,WAAA,SAAA36B,KACA,GAAA5C,KAAAihC,YAIA,IAHA,GAAA1D,YAAA36B,MAAA5C,KAAAyb,QAAA8hB,WAAA,OAAAv9B,KAAAihC,YACAxF,KAAAz7B,KAAAy7B,KACA13B,EAAA03B,KAAA55B,OACAkC,KAEAiL,EAAAc,MAAA2rB,KAAA13B,GAAA,gBAAAw5B,YACAvuB,EAAAc,MAAA2rB,KAAA13B,GAAA,aAAAw5B,aAeAwC,IAAA,SAAAvyB,EAAArC,EAAAsQ,SACA,IAAAzb,KAAAyb,QAAAgiB,WAAA,CACAhiB,UAAAA,WACA,IAAAyhB,QAAAzhB,QAAAyhB,MACAA,UACAA,OAAAl9B,KAAA08B,aAGAjhB,QAAAylB,WACA1zB,IAAA0vB,OAAA,GACA/xB,IAAA+xB,OAAA,IAEAA,OAAA,GAAA1vB,EACA0vB,OAAA,GAAA/xB,EACAnL,KAAAs/B,UAAApC,OAAAzhB,SACAA,QAAA+jB,QACAx/B,KAAAy/B,SAAA,MAAAvC,OAAA,GAAAA,OAAA,MAqBA2C,KAAA,SAAApD,MAAAvB,MAEA,gBAAAuB,QACAvB,KAAAuB,MACAA,MAAA,MACAvB,OACAA,QAEA,IAAAzf,SAAAzM,EAAA5K,UAAApE,KAAAyb,QAAAyf,KAEA,KAAAzf,QAAAiiB,YAAA,CACA,GAAAtC,UAAA,EACA8B,OAAAzhB,QAAAyhB,QAAAl9B,KAAA08B,YACAyE,YAAAjE,OAAA,EAGA,iBAAAT,SAIAA,MADAhhB,QAAAsiB,aAAAoD,WAAA1lB,QAAAqiB,WAAA,EACAtuB,KAAAitB,MAAA,OAAA,OAAA0E,WAAA,GAEAA,WAAA1lB,QAAAqiB,WAAArB,SAAA,GAEArB,SAAA,GAIAqB,MAAAhhB,QAAAyiB,SACAzB,MAAAhhB,QAAAyiB,SACAzB,MAAAhhB,QAAAwiB,WACAxB,MAAAhhB,QAAAwiB,SAIA,IAAAmD,OAAA3lB,QAAA2lB,KACA,IAAAA,QAAA3lB,QAAAgiB,WAAA,CAGAz9B,KAAAq8B,iBACA,IAAA0C,MAAAtjB,QAAAsjB,KAAA/+B,KAAAi/B,WACArH,QAAAwJ,MAAAxJ,QACAC,QAAAuJ,MAAAvJ,OAIA73B,MAAA27B,QACA/D,SAAAmH,KAAAxI,MAAA4K,WAAA,EACAtJ,SAAAkH,KAAAvI,OAAA2K,WAAA,EAGA,IAAAE,SAAA,GAAA/F,QAAA1D,QAAAC,QAAA,GACAyJ,SAAA,GAAAjG,QAAA6B,QAEA77B,EAAArB,KAAAuhC,cAAAvhC,KAAA26B,QAAA9e,SACA2lB,QAAA,GAAAnG,QAAA,EAAA,EAAAh6B,EAAAy0B,KAAA91B,KAAA07B,KAAA+F,aAAA,EAAA,EAAApgC,EAAAoc,IAAAzd,KAAA07B,KAAAtd,aACAsjB,SAAAJ,SAAAlE,UAAA5vB,EAAAg0B,QAAApE,UAAA5vB,EAAA6zB,UACAM,QAAAlF,MAAAS,OAAA,EACAoE,UAAAA,SAAA9zB,EAAA,GAAA6tB,SAAAsG,QAAA,EAAA,EAAAA,QAAA,EAAA,KACAN,QAAAG,QAAAh0B,EAAA8zB,SAAA9zB,EAAAk0B,WACAxE,OAAA,IAAAA,OAAA,IAAAtF,QAAAyJ,QAAAzhC,EAAA,IACAs9B,OAAA,IAAAA,OAAA,IAAArF,QAAAwJ,QAAAzhC,EAAA,IAIAs9B,OAAA,GAAAT,MACAS,OAAA,GAAA,gBAAAzhB,SAAAmkB,OAAAnkB,QAAAmkB,OAAAnD,MAGAz8B,KAAAs/B,UAAApC,QACA9B,QAAA,mBAAA3f,SAAA2f,QAAA3f,QAAA2f,QAAAA,QAEAD,OAAA1f,QAAAmmB,aAIAnmB,QAAA+jB,QACAx/B,KAAAy/B,SAAA,OAAAvC,OAAA,GAAAzhB,WASAmY,OAAA,SAAA7iB,IAAAiY,OACA,GAAAvN,QACA,KAAA1K,IAEA,MAAA/B,GAAA5K,UAAApE,KAAAyb,QAGA,IAAA,gBAAA1K,KAAA,CACA,GAAA,IAAAnP,UAAAC,OACA,MAAAqc,UAAAle,KAAAyb,QAAA1K,KACA/Q,KAAAyb,QAAA1K,KACA,IAEA0K,YACAA,QAAA1K,KAAAiY,UAEAvN,SAAA1K,GAGA/Q,MAAA6hC,YAAApmB,UAQAomB,YAAA,SAAApmB,SACAzM,EAAAub,KAAA9O,QAAAzM,EAAA8yB,MAAA,SAAA/wB,IAAAiY,OACA,OAAAjY,KACA,IAAA,aACA/Q,KAAA2+B,aAEA,KAAA,UACA,IAAA,WACA,IAAA;AACA,IAAA,SACA,IAAA,cACA,IAAA,UACA,IAAA,WACA,IAAA,SACA,IAAA,QACA,IAAA,QACA,IAAA,UACA,IAAA,iBACA3+B,KAAA4+B,UAGA,OADA5+B,KAAAyb,QAAA1K,KAAAiY,MACAjY,KACA,IAAA,aACA/Q,KAAAu+B,YAEA,KAAA,UACA,IAAA,WACA,IAAA,aACA,IAAA,SAEAv+B,KAAA+Q,KAAAiY,KAEA,KAAA,cACA,IAAA,UACA,IAAA,WACA,IAAA,SACA,IAAA,QACA,IAAA,QACA,IAAA,UACA,IAAA,iBACAhpB,KAAAw+B,OACA,MACA,KAAA,SACAxvB,EAAAc,MAAA9P,KAAAwb,KAAA,SAAAwN,MACA,MACA,KAAA,WACAhpB,KAAA8gC,WAAAlT,KAAA,MAAA5E,MACA,MACA,KAAA,WACAhpB,KAAA8gC,WAAAlT,KAAA,MAAA5E,MACA,MACA,KAAA,YACAhpB,KAAA8gC,WAAAlT,KAAA,OAAA5E,MACA,MACA,KAAA,iBACAhpB,KAAA+7B,iBACA,MACA,KAAA,WACA,IAAA,SACA/7B,KAAAo8B,kBAEA,KAAA,aACAp8B,KAAAu9B,YACA,MACA,KAAA,oBACAv9B,KAAA28B,qBACA,MACA,KAAA,OACA3T,gBAAAha,IAAAga,MAAAnnB,SACA7B,KAAAy7B,KAAAzS,MAEAhpB,KAAAu+B,aACAv+B,KAAA+7B,qBAGA/7B,QASA28B,oBAAA,SAAAF,OACA,GAAAhhB,SAAAzb,KAAAyb,OACA,IAAAA,QAAAuiB,kBAAA,CACAvB,QACAA,MAAAz8B,KAAA08B,YAAA,GAEA,IAAAqF,WAAAtF,OAAAhhB,QAAAwiB,QACAxiB,SAAAgiB,aAAAsE,WACA/hC,KAAA4zB,OAAA,aAAAmO,aASAxD,WAAA,WACA,GAAAyD,SAGAC,mBAAAjiC,KAAA27B,MAAA,MAAA,UAGA37B,MAAAyb,QAAAgiB,aACAuE,OAAAxE,OAAAx9B,KAAAyb,QAAA+hB,QAEAx9B,KAAAy7B,KAAAhrB,IAAAuxB,OAGA,IAAArH,SAAA36B,KAAA26B,OAEAA,SAAA94B,SAAAmN,EAAApG,SAAA5I,KAAAutB,OAAA,UACAyU,QACAE,SAAA,UAEA,WAAAvH,QAAAlqB,IAAA,cACAuxB,OAAAG,SAAA,YAEAxH,QAAAlqB,IAAAuxB,UAQArD,YAAA,WACA3+B,KAAA06B,MAAAjqB,KACA+sB,OAAA,GACAD,WAAA,KAEAv9B,KAAA26B,QAAAlqB,KACAyxB,SAAA,GACAC,SAAA,MAQA3D,MAAA,WACA,GAAAjC,MAAAv8B,KACAyb,QAAAzb,KAAAyb,QACA2mB,GAAA3mB,QAAA6hB,eACA+E,SAAA,YAAAD,GAAA,eAAAA,GAAA,iBAAAA,GACAE,UAAA,aAAAF,GAAA,IAAAC,SACAE,UAAA,WAAAH,GAAA,SAAAA,GAAA,aAAAA,GAAA,eAAAA,GACAjiB,UACAqiB,OAAAxiC,KAAAwiC,OACA1B,WAAA9gC,KAAA8gC,UA6DA,IA1DA9xB,EAAAub,MAAA,QAAA,SAAA,OAAA,MAAA,MAAA,SAAA,WACA,GAAA7iB,GAAA+T,QAAA,KAAAzb,KACAgP,GAAAyzB,WAAA/6B,KACAyY,OAAA,UAAAngB,KAAAwG,cAAA47B,IAAA16B,KAMA+T,QAAAgiB,YAAAhiB,QAAAiiB,cACAvd,OAAAmiB,WAAA,SAAA1iC,GACA,GAAAi3B,UACA,eAAAj3B,EAAAwB,OAEAy1B,QAAAj3B,EAAAi3B,SAAAj3B,EAAAg3B,cAAAC,WACA,IAAAA,QAAAh1B,QAAA4Z,QAAAgiB,aAAA,IAAA5G,QAAAh1B,OAIA4Z,QAAAgiB,aAAA79B,EAAAi+B,OAAAj+B,EAAAg3B,cAAAiH,SAAApiB,QAAAoiB,SAEAj+B,EAAAmyB,iBACAnyB,EAAA8iC,kBACAnG,KAAAoG,WAAA/iC,EAAAi3B,WAKA,IAAApb,QAAAoiB,QACA1d,OAAAyiB,aAAA,IAGA5iC,KAAA06B,MAAA34B,GAAAoe,QAGAqiB,OAAA3gC,QACA2gC,OAAAzgC,GAAAwgC,UAAA,SAAA3iC,GACAA,EAAAmyB,iBACAwK,KAAA8C,UAKAyB,WAAAj/B,QACAi/B,WAAAlT,MAGAiV,KAAApnB,QAAA0iB,YAAA5C,QAAA9V,SAAA0Y,WACA2C,WAAAlT,KAAA,SACAnS,QAAA0iB,UACA0C,IAAAplB,QAAAwiB,SACAvf,IAAAjD,QAAAyiB,WACAhd,MACA8H,MAAAhpB,KAAA08B,YAAA,MAKAjhB,QAAAiiB,YAAA,CAIA,GAAAoF,SAAA9iC,KAAA8iC,QACAC,SAAA/iC,KAAA+iC,QAIAD,SAAAjhC,QAAAkhC,SAAAlhC,SAEAihC,QAAA/gC,GAAAwgC,UAAA,SAAA3iC,GACAA,EAAAmyB,iBACAwK,KAAAsD,SAEAkD,SAAAhhC,GAAAwgC,UAAA,SAAA3iC,GACAA,EAAAmyB,iBACAwK,KAAAsD,MAAA,MAIAiB,WAAAj/B,SACAse,UAEAA,OAAAkiB,UAAA,WACA9F,KAAAgB,YAAA,IAIApd,QAAA0c,mBAAA,QAAA,UAAAuF,IAAA,WACA7F,KAAAsD,MAAA7/B,KAAAgpB,OAAA4Y,YAAA,KAEAd,WAAA/+B,GAAAoe,WAQAye,QAAA,WACA5+B,KAAA06B,MACAvd,IAAAnd,KAAA8iC,SACA3lB,IAAAnd,KAAA+iC,UACA5lB,IAAAnd,KAAAwiC,QACA5/B,IAAA5C,KAAAyb,QAAA6hB,iBAOAvB,gBAAA,WAIA,MAAA/7B,MAAAu/B,eAAAv/B,KAAAigC,aAAAjgC,KAAAyb,QAAAunB,iBAOA5G,iBAAA,WACA,GAAAp8B,KAAAg8B,WAAA,CACA,GAAAvgB,SAAAzb,KAAAyb,OACAzb,MAAAihC,YAAAjhC,KAAAg8B,WAAA,IAAAvgB,QAAA2iB,SAAA,MAAA3iB,QAAA4iB,SAWA4E,aAAA,SAAApM,SACA,GAAAqM,QAAArM,QAAA,GACAsM,OAAAtM,QAAA,EACA,OAAArnB,MAAA4zB,KAAA5zB,KAAA6zB,IAAA7zB,KAAA+P,IAAA4jB,OAAAvL,QAAAsL,OAAAtL,SAAA,GAAApoB,KAAA6zB,IAAA7zB,KAAA+P,IAAA4jB,OAAAtL,QAAAqL,OAAArL,SAAA,KAQAyL,WAAA,SAAAzM,SACA,GAAAqM,QAAArM,QAAA,GACAsM,OAAAtM,QAAA,EACA,QACAe,SAAAuL,OAAAvL,QAAAsL,OAAAtL,SAAA,EAAAsL,OAAAtL,QACAC,SAAAsL,OAAAtL,QAAAqL,OAAArL,SAAA,EAAAqL,OAAArL,UAWA4H,SAAA,SAAApxB,OACA,gBAAAA,SACAA,MAAA,UAAAA,OAEArO,KAAA06B,MAAA6I,eAAAl1B,OAAArO,MAAAyL,OAAArL,MAAAC,KAAAuB,UAAA,MAUA+gC,WAAA,SAAAt0B,MAAAwoB,SACA,IAAA72B,KAAA87B,QAAA,CAGA,GAAA0H,WAAAC,SACAC,cAAAvC,WAAAwC,YACAC,WAAAC,WAAAC,MACAvH,KAAAv8B,KACAyb,QAAAzb,KAAAyb,QACA2mB,GAAA3mB,QAAA6hB,eACAJ,OAAAl9B,KAAA08B,YACAqH,SAAA7G,OAAA98B,MAAA,GACA4jC,WAAAD,SAAA,GACAE,WAAAF,SAAA,GACAG,YAAAhH,OAAAA,OAAA9B,QAAA,QACAh6B,KAAAiN,MAAAjN,IAGA,iBAAAA,MACAoiC,UAAA,cACAC,SAAA,aACA,eAAAriC,MACAoiC,UAAA,YACAC,SAAA,YACA,kBAAAriC,MACAoiC,UAAA,gBACAC,SAAA,gBAEAD,UAAA,YACAC,SAAA,WAIAD,WAAApB,GACAqB,UAAArB,GAGApiC,KAAAu9B,YAAA,GAGAv9B,KAAA87B,SAAA,EAGA97B,KAAAy/B,SAAA,QAAApxB,MAAAwoB,QAEA,IAAAsN,UAAA,SAAA91B,MAAAwoB,SACA,GAAAA,QAAA,CACA,GAAA,IAAAA,QAAAh1B,OAAA,CACA,GAAA,MAAA6hC,cACA,MAKA,OAHAA,eAAAnH,KAAA0G,aAAApM,SACAsK,YAAAjE,OAAA,QACAyG,YAAApH,KAAA+G,WAAAzM,UAGA,GAAA,MAAA+M,WACA,QAEAE,MAAAjN,QAAA,MACA+M,WAAAE,MAAAnN,MACAkN,WAAAC,MAAAhN,OAGA,MAAA8M,aAGAA,WAAAv1B,MAAAsoB,MACAkN,WAAAx1B,MAAAyoB,OAGAqN,UAAA91B,MAAAwoB,QAEA,IAAAuN,MAAA,SAAAxkC,GACA,GAAAykC,OAKA,IAJAzkC,EAAAmyB,iBACA8E,QAAAj3B,EAAAi3B,SAAAj3B,EAAAg3B,cAAAC,QACAsN,SAAAvkC,EAAAi3B,SAEAA,QAAA,CACA,GAAA,IAAAA,QAAAh1B,OAAA,CAGA,GAAAyiC,QAAA/H,KAAA+G,WAAAzM,SACA0N,KAAAhI,KAAA0G,aAAApM,SAAA6M,aAgBA,OAbAnH,MAAAsD,KAAA0E,MAAA9oB,QAAAqiB,UAAA,KAAAqD,YACAC,MAAAkD,OACApH,OAAAA,OACA9B,QAAA,SAIAmB,KAAAwD,KACA7C,OAAA,GAAAoH,OAAA1M,QAAA+L,YAAA/L,SACAsF,OAAA,GAAAoH,OAAAzM,QAAA8L,YAAA9L,QACAqM,iBAEAP,YAAAW,QAGAD,OAAAxN,QAAA,KAAAF,MAAA,EAAAG,MAAA,GAGAuN,SACAA,OAAAzkC,GAGA28B,KAAAwD,IACAiE,UAAAK,OAAA1N,MAAAiN,WACAK,UAAAI,OAAAvN,MAAA+M,WACAK,YAKAl1B,GAAAhL,UACApB,IAAAw/B,IACArgC,GAAAyhC,UAAAY,MACAriC,GAAA0hC,SAAA,SAAA7jC,GACAA,EAAAmyB,iBAEA/iB,EAAAhP,MAAA4C,IAAAw/B,IACA7F,KAAAT,SAAA,EAIAl8B,EAAAwB,KAAA,aACAm7B,KAAAkD,SAAA7/B,EAAAs9B,QAAApC,aAAAoC,OAAA6G,gBAMA/0B,EAAAusB,QAAAA,QAQAvsB,EAAA5E,GAAAo6B,QAAA,SAAA/oB,SACA,GAAAmJ,UAAAhE,KAAAlZ,EAAA+8B,GAGA,OAAA,gBAAAhpB,UACAgpB,OACA7jB,KAAAxgB,MAAAC,KAAAuB,UAAA,GACA5B,KAAAuqB,KAAA,WACA3F,SAAA5V,EAAA1O,KAAAN,KAAAw7B,SAEA5W,SAIA,MAAAnJ,QAAAvM,OAAA,IACA,mBAAAxH,EAAAkd,SAAAnJ,WAEAyC,UAAAxW,EAAAA,EAAAjH,MAAAmkB,SAAAhE,QAEA6jB,IAAA9hC,KAAA+E,GARA+8B,IAAA9hC,KAAAub,UAeAumB,IAAA5iC,OACA,IAAA4iC,IAAA5iC,OAAA4iC,IAAA,GAAAA,IACAzkC,MAGAA,KAAAuqB,KAAA,WAAA,GAAAgR,SAAAv7B,KAAAyb,YAGA8f,UCpxCA,WAAA,GAAAjwB,GAAA3D,CAAA2D,GAAAtL,KAAAmK,QAAAjE,OAAAiE,OAAAxC,EAAA2D,EAAApF,QAAAoF,EAAAlB,GAAAs6B,gBAAA,SAAAn9B,GAAA,GAAA8D,GAAA4B,EAAAlB,EAAAjM,EAAA4M,EAAAJ,EAAA7E,EAAA8F,EAAA2C,EAAArE,EAAAhM,CAKA,KALA,MAAA0H,IAAAA,MAAA1H,EAAA0H,EAAAo9B,aAAAj4B,EAAAnF,EAAAq9B,gBAAA/4B,EAAAtE,EAAAs9B,aAAA30B,EAAA3I,EAAAgmB,OAAAhgB,EAAAhG,EAAAu9B,WAAAr9B,EAAAF,EAAAw9B,OAAA93B,EAAA1F,EAAAy9B,UAAA,MAAAz3B,IAAAA,EAAA,GAAA,MAAA2C,IAAAA,EAAA,QAAA,MAAAxD,IAAAA,GAAA,GAAA,MAAA7M,IAAAA,EAAA,YAAAwL,EAAAC,EAAAtH,UAAA,MAAAiJ,IAAAA,GAAA,GAAAlB,EAAA,SAAAjL,EAAAyG,EAAAzH,EAAA0L,EAAAM,EAAAxG,EAAA/E,EAAA2M,GAAA,GAAAL,GAAAa,EAAAhG,EAAAgE,EAAAa,EAAAlH,EAAAuC,EAAA4F,EAAArC,EAAAC,EAAA5D,EAAAtD,CAAA,KAAApD,EAAAR,KAAA,cAAA,CACA,GADAQ,EAAAR,KAAA,cAAA,GAAAiM,EAAAlB,EAAAmrB,SAAA5uB,EAAA9G,EAAAysB,SAAA,MAAArd,IAAAtI,EAAAA,EAAAktB,QAAA5kB,KACAtI,EAAA/F,OAAA,KAAA,6BACA,IADAgL,EAAAnF,GAAA,GAAAF,EAAA,MAAAC,EAAAA,GAAA3G,EAAAg0B,QAAArtB,GAAA6D,EAAA,aAAA9D,EAAAiJ,IAAA,WAAA3P,EAAA2P,IAAA,aAAAjD,EAAA,WAAA,GAAAnI,GAAAsC,EAAA/H,CAAA,KAAAsN,IAAAX,EAAAlB,EAAAmrB,SAAAnxB,EAAAwwB,SAAAjuB,EAAA6I,IAAA,oBAAA,IAAA9I,EAAAkuB,SAAAjuB,EAAA6I,IAAA,eAAA,IAAAlJ,EAAAsuB,SAAAjuB,EAAA6I,IAAA,kBAAA,IAAA3Q,EAAA8H,EAAAiU,SAAA4B,IAAApY,EAAAsC,EAAA6D,EAAA5D,EAAA4uB,SAAA9uB,IAAAmF,EAAAnF,GAAA,EAAA,MAAAD,IAAA3G,EAAAmkC,YAAAz9B,GAAAA,EAAAonB,UAAA9tB,EAAA2P,KAAA0xB,SAAA,GAAA1kB,IAAA,GAAA8Y,MAAA,GAAAvY,OAAA,KAAAsQ,YAAAzuB,GAAAD,GAAA,GAAAkM,EAAAhL,EAAA+a,SAAA4B,KAAAoY,SAAA/0B,EAAA2P,IAAA,cAAA,KAAA,GAAAlD,EACAjI,EAAAxE,EAAAokC,aAAA,GAAA3kC,EAAAO,EAAA2P,IAAA,SAAAjJ,GAAAA,EAAAiJ,KAAA8lB,MAAAz1B,EAAAwsB,YAAA,GAAAkJ,OAAAlxB,EAAA6/B,QAAArkC,EAAA2P,IAAA,WAAA20B,iBAAAtkC,EAAA2P,IAAA,kBAAA40B,QAAA9kC,IAAAX,GAAA,MAAAsE,MAAAsJ,IAAAlI,IAAAkG,EAAA,MAAAE,GAAA,OAAArG,EAAAkI,EAAAnC,EAAAS,EAAA3H,EAAA,WAAA,GAAAoH,GAAApH,EAAAtE,EAAAsQ,CAAA,KAAAhD,IAAAtN,GAAA,EAAA,MAAAwL,MAAAA,EAAA,GAAAA,IAAAA,EAAAS,EAAA2B,IAAA5N,GAAA,IAAAA,GAAAyL,EAAAmrB,WAAAjqB,GAAAiB,IAAA5N,EAAA+H,EAAAyW,YAAA,MAAA1S,IAAAxH,EAAAtE,EAAA8L,GAAAA,EAAA9L,EAAA8H,GAAAuF,IAAAiD,EAAAtQ,EAAA0F,EAAAD,EAAAmG,EAAA1L,EAAA+M,IAAAqD,IAAArD,GAAA,EAAA/L,EAAA2P,KAAA0xB,SAAA,QAAAnkB,OAAA,GAAAP,IAAApY,IAAAkqB,QAAA,yBAAA3vB,EAAAkM,IAAApE,GAAA,EAAArC,EAAAkI,EAAA,MAAA9F,IAAA,SAAAlH,GAAA,UAAAA,GAAAO,EAAAmkC,YAAAz9B,GACAA,EAAAonB,UAAAtjB,GAAA62B,SAAA,GAAA5L,MAAA,GAAA9Y,IAAA,IAAA3c,EAAA2P,IAAAnF,GAAAgjB,YAAAzuB,GAAA0vB,QAAA,uBAAA7iB,IAAApB,EAAA3D,EAAA6uB,SAAAlxB,EAAAiI,EAAAjC,IAAAuB,IAAAxH,GAAAnB,EAAAmB,EAAAmK,KAAAkP,IAAApT,EAAAhG,EAAAD,GAAAA,EAAAmK,KAAAqxB,IAAAtzB,EAAAlI,GAAAqC,GAAA5G,EAAA2P,KAAAgN,IAAApY,EAAA,UAAAzF,EAAAkM,IAAApE,GAAA,EAAA4D,GAAA62B,SAAA,QAAA1kB,IAAApY,GAAAiG,EAAAirB,MAAA,eAAAz1B,EAAA2P,IAAA,cAAA3P,EAAAwsB,aAAA,KAAAxsB,EAAAy1B,QAAA,KAAAz1B,EAAA2P,IAAAnF,GAAA4hB,SAAArtB,GAAA,MAAA4H,IAAA3G,EAAA8uB,MAAApoB,GAAA,SAAAjH,GAAA,UAAAA,GAAAiH,EAAA0nB,OAAApuB,IAAAA,EAAAyuB,QAAA,qBAAA7nB,GAAAuF,IAAA,MAAAiD,IAAAA,EAAAtQ,EAAA0F,EAAAD,EAAAmG,EAAA1L,IAAA+M,GAAAqD,IAAA,MAAArD,IAAA,EAAA,WAAAjF,EAAA6I,IAAA,aAAA7I,EAAA6I,KAAA0xB,SAAA,aACArhC,EAAA2P,KAAA0xB,SAAA,WAAAnkB,OAAAzW,EAAAkW,IAAA,SAAA8R,QAAA,sBAAApkB,EAAA,WAAA,MAAAqC,KAAAtJ,KAAAwJ,EAAA,WAAA,GAAAR,GAAA,EAAAvF,EAAA/E,IAAA,YAAAsB,GAAAyD,EAAA/E,IAAA,SAAAsB,GAAAyD,EAAA/E,IAAA,SAAAuI,GAAAG,EAAAtH,SAAA+K,MAAAnM,IAAA,oBAAAuI,GAAArK,EAAA8B,IAAA,oBAAA8K,GAAA5M,EAAA+yB,WAAA,cAAA/yB,EAAA2P,KAAA0xB,SAAA,GAAAnkB,OAAA,GAAAP,IAAA,GAAA8Y,MAAA,KAAA3uB,EAAAu6B,SAAA,WAAA,IAAAz6B,EAAA,MAAA,OAAAD,IAAA,SAAAlH,GAAA,UAAAA,GAAAO,EAAAmkC,YAAAz9B,GAAAA,EAAA8V,UAAAxc,EAAAwtB,YAAAzuB,IAAA8H,EAAA5F,GAAA,YAAAmC,GAAAyD,EAAA5F,GAAA,SAAAmC,GAAAyD,EAAA5F,GAAA,SACAoJ,GAAAG,EAAAtH,SAAA+K,MAAAhN,GAAA,oBAAAoJ,GAAArK,EAAAiB,GAAA,oBAAA2L,GAAAlB,WAAAtI,EAAA,KAAApE,EAAA,EAAAwM,EAAAtM,KAAA6B,OAAA/B,EAAAwM,EAAAxM,IAAAyH,EAAAvH,KAAAF,GAAAiM,EAAAT,EAAA/D,GAAA,OAAAvH,QAAAK,KAAAL,MCFA,WACA,YAMA,SAAAslC,UAAA7pB,SACA,IAAAA,QACA,KAAA,IAAA9P,OAAA,4CAEA,KAAA8P,QAAAyG,QACA,KAAA,IAAAvW,OAAA,mDAEA,KAAA8P,QAAA2c,QACA,KAAA,IAAAzsB,OAAA,mDAGA3L,MAAA+Q,IAAA,YAAAw0B,WACAvlC,KAAAyb,QAAA6pB,SAAAE,QAAAphC,UAAAkhC,SAAA7f,SAAAhK,SACAzb,KAAAkiB,QAAAliB,KAAAyb,QAAAyG,QACAliB,KAAAylC,QAAA,GAAAH,UAAAE,QAAAxlC,KAAAkiB,SACAliB,KAAAgO,SAAAyN,QAAA2c,QACAp4B,KAAAg5B,KAAAh5B,KAAAyb,QAAAiqB,WAAA,aAAA,WACA1lC,KAAAqnB,QAAArnB,KAAAyb,QAAA4L,QACArnB,KAAA2lC,aAAA,KACA3lC,KAAA4lC,MAAAN,SAAAO,MAAAC,cACA/4B,KAAA/M,KAAAyb,QAAAmqB,MACA5M,KAAAh5B,KAAAg5B,OAEAh5B,KAAA+lC,QAAAT,SAAAU,QAAAC,sBAAAjmC,KAAAyb,QAAAsqB,SAEAT,SAAAY,cAAAlmC,KAAAyb,QAAAI,UACA7b,KAAAyb,QAAAI,OAAAypB,SAAAY,cAAAlmC,KAAAyb,QAAAI,SAEA7b,KAAA4lC,MAAAzoB,IAAAnd,MACAA,KAAA+lC,QAAA5oB,IAAAnd,MACAmmC,aAAAnmC,KAAA+Q,KAAA/Q,KACAulC,YAAA,EAnCA,GAAAA,YAAA,EACAY,eAsCAb,UAAAnlC,UAAAimC,aAAA,SAAA9mB,WACAtf,KAAA4lC,MAAAQ,aAAApmC,KAAAsf,YAIAgmB,SAAAnlC,UAAAovB,QAAA,SAAA3O,MACA5gB,KAAAqnB,SAGArnB,KAAAgO,UACAhO,KAAAgO,SAAAvN,MAAAT,KAAA4gB,OAMA0kB,SAAAnlC,UAAAkd,QAAA,WACArd,KAAA+lC,QAAAzoB,OAAAtd,MACAA,KAAA4lC,MAAAtoB,OAAAtd,YACAmmC,cAAAnmC,KAAA+Q,MAKAu0B,SAAAnlC,UAAAu+B,QAAA,WAEA,MADA1+B,MAAAqnB,SAAA,EACArnB,MAKAslC,SAAAnlC,UAAAq8B,OAAA,WAGA,MAFAx8B,MAAA+lC,QAAArP,UACA12B,KAAAqnB,SAAA,EACArnB,MAKAslC,SAAAnlC,UAAA2vB,KAAA,WACA,MAAA9vB,MAAA4lC,MAAA9V,KAAA9vB,OAKAslC,SAAAnlC,UAAAkmC,SAAA,WACA,MAAArmC,MAAA4lC,MAAAS,SAAArmC,OAIAslC,SAAAgB,UAAA,SAAA7hB,QACA,GAAA8hB,qBACA,KAAA,GAAAC,eAAAL,cACAI,kBAAA5jC,KAAAwjC,aAAAK,aAEA,KAAA,GAAAziC,GAAA,EAAA0iC,IAAAF,kBAAA1kC,OAAAkC,EAAA0iC,IAAA1iC,IACAwiC,kBAAAxiC,GAAA0gB,WAMA6gB,SAAAoB,WAAA,WACApB,SAAAgB,UAAA,YAKAhB,SAAAqB,WAAA,WACArB,SAAAgB,UAAA,YAKAhB,SAAAsB,UAAA,WACAtB,SAAAU,QAAAa,YACA,KAAA,GAAAL,eAAAL,cACAA,aAAAK,aAAAnf,SAAA,CAEA,OAAArnB,OAKAslC,SAAAuB,WAAA,WACAvB,SAAAU,QAAAa,cAKAvB,SAAAwB,eAAA,WACA,MAAA5gC,QAAAoY,aAAAta,SAAA0E,gBAAA6V,cAKA+mB,SAAAyB,cAAA,WACA,MAAA/iC,UAAA0E,gBAAAs+B,aAGA1B,SAAA2B,YAEA3B,SAAA7f,UACAsgB,QAAA7/B,OACAghC,YAAA,EACA7f,SAAA,EACAue,MAAA,UACAF,YAAA,EACA7pB,OAAA,GAGAypB,SAAAY,eACAiB,iBAAA,WACA,MAAAnnC,MAAA+lC,QAAAznB,cAAAte,KAAAylC,QAAAP,eAEAkC,gBAAA,WACA,MAAApnC,MAAA+lC,QAAAsB,aAAArnC,KAAAylC,QAAAnY,eAIApnB,OAAAo/B,SAAAA,YAEA,WACA,YAEA,SAAAgC,2BAAAt5B,UACA9H,OAAAsG,WAAAwB,SAAA,IAAA,IASA,QAAAg4B,SAAA9jB,SACAliB,KAAAkiB,QAAAA,QACAliB,KAAAwlC,QAAAF,SAAAE,QACAxlC,KAAAylC,QAAA,GAAAzlC,MAAAwlC,QAAAtjB,SACAliB,KAAA+Q,IAAA,oBAAAw0B,WACAvlC,KAAAunC,WAAA,EACAvnC,KAAAwnC,WAAA,EACAxnC,KAAAynC,WACAj6B,EAAAxN,KAAAylC,QAAAhE,aACAt2B,EAAAnL,KAAAylC,QAAArnB,aAEApe,KAAA0nC,WACAC,YACAjC,eAGAxjB,QAAA0lB,mBAAA5nC,KAAA+Q,IACA82B,SAAA3lB,QAAA0lB,oBAAA5nC,KACAulC,YAAA,EACAD,SAAAwC,gBACAxC,SAAAwC,eAAA,EACAxC,SAAAwC,cAAA,GAAA9B,SAAA9/B,SAGAlG,KAAA+nC,+BACA/nC,KAAAgoC,+BA/BA,GAAAzC,YAAA,EACAsC,YACAvC,SAAAp/B,OAAAo/B,SACA2C,cAAA/hC,OAAA0L,MAgCAo0B,SAAA7lC,UAAAgd,IAAA,SAAA+qB,UACA,GAAAlP,MAAAkP,SAAAzsB,QAAAiqB,WAAA,aAAA,UACA1lC,MAAA0nC,UAAA1O,MAAAkP,SAAAn3B,KAAAm3B,SACAloC,KAAA02B,WAIAsP,QAAA7lC,UAAAgoC,WAAA,WACA,GAAAC,iBAAApoC,KAAAwlC,QAAA6C,cAAAroC,KAAA0nC,UAAAhC,YACA4C,cAAAtoC,KAAAwlC,QAAA6C,cAAAroC,KAAA0nC,UAAAC,UACAY,SAAAvoC,KAAAkiB,SAAAliB,KAAAkiB,QAAAhc,MACAkiC,kBAAAE,gBAAAC,WACAvoC,KAAAylC,QAAA7iC,IAAA,oBACAilC,UAAA7nC,KAAA+Q,OAKAi1B,QAAA7lC,UAAA6nC,6BAAA,WAGA,QAAAQ,iBACAjM,KAAAkM,eACAlM,KAAAiL,WAAA,EAJA,GAAAjL,MAAAv8B,IAOAA,MAAAylC,QAAA1jC,GAAA,mBAAA,WACAw6B,KAAAiL,YACAjL,KAAAiL,WAAA,EACAlC,SAAA5oB,sBAAA8rB,mBAMAxC,QAAA7lC,UAAA4nC,6BAAA,WAEA,QAAAW,iBACAnM,KAAAoM,eACApM,KAAAgL,WAAA,EAHA,GAAAhL,MAAAv8B,IAMAA,MAAAylC,QAAA1jC,GAAA,mBAAA,WACAw6B,KAAAgL,YAAAjC,SAAAsD,UACArM,KAAAgL,WAAA,EACAjC,SAAA5oB,sBAAAgsB,mBAMA1C,QAAA7lC,UAAAsoC,aAAA,WACAnD,SAAAU,QAAAa,cAIAb,QAAA7lC,UAAAwoC,aAAA,WACA,GAAAE,oBACAC,MACApD,YACAqD,UAAA/oC,KAAAylC,QAAAhE,aACAgG,UAAAznC,KAAAynC,UAAAj6B,EACAw7B,QAAA,QACAC,SAAA,QAEAtB,UACAoB,UAAA/oC,KAAAylC,QAAArnB,YACAqpB,UAAAznC,KAAAynC,UAAAt8B,EACA69B,QAAA,OACAC,SAAA,MAIA,KAAA,GAAAC,WAAAJ,MAAA,CACA,GAAA9P,MAAA8P,KAAAI,SACAC,UAAAnQ,KAAA+P,UAAA/P,KAAAyO,UACAnoB,UAAA6pB,UAAAnQ,KAAAgQ,QAAAhQ,KAAAiQ,QAEA,KAAA,GAAAzC,eAAAxmC,MAAA0nC,UAAAwB,SAAA,CACA,GAAAhB,UAAAloC,KAAA0nC,UAAAwB,SAAA1C,YACA,IAAA,OAAA0B,SAAAvC,aAAA,CAGA,GAAAyD,uBAAApQ,KAAAyO,UAAAS,SAAAvC,aACA0D,qBAAArQ,KAAA+P,WAAAb,SAAAvC,aACA2D,eAAAF,uBAAAC,qBACAE,iBAAAH,wBAAAC,sBACAC,gBAAAC,mBACArB,SAAA9B,aAAA9mB,WACAupB,gBAAAX,SAAAtC,MAAA5S,IAAAkV,SAAAtC,SAKA,IAAA,GAAA4D,YAAAX,iBACAA,gBAAAW,UAAAC,eAGAzpC,MAAAynC,WACAj6B,EAAAs7B,KAAApD,WAAAqD,UACA59B,EAAA29B,KAAAnB,SAAAoB,YAKA/C,QAAA7lC,UAAAme,YAAA,WAEA,MAAAte,MAAAkiB,SAAAliB,KAAAkiB,QAAAhc,OACAo/B,SAAAwB,iBAGA9mC,KAAAylC,QAAAnnB,eAIA0nB,QAAA7lC,UAAAmd,OAAA,SAAA4qB,gBACAloC,MAAA0nC,UAAAQ,SAAAlP,MAAAkP,SAAAn3B,KACA/Q,KAAAmoC,cAIAnC,QAAA7lC,UAAAknC,WAAA,WAEA,MAAArnC,MAAAkiB,SAAAliB,KAAAkiB,QAAAhc,OACAo/B,SAAAyB,gBAGA/mC,KAAAylC,QAAA4B,cAKArB,QAAA7lC,UAAAkd,QAAA,WACA,GAAA8oB,gBACA,KAAA,GAAAnN,QAAAh5B,MAAA0nC,UACA,IAAA,GAAAlB,eAAAxmC,MAAA0nC,UAAA1O,MACAmN,aAAAxjC,KAAA3C,KAAA0nC,UAAA1O,MAAAwN,aAGA,KAAA,GAAAziC,GAAA,EAAA0iC,IAAAN,aAAAtkC,OAAAkC,EAAA0iC,IAAA1iC,IACAoiC,aAAApiC,GAAAsZ,WAMA2oB,QAAA7lC,UAAAu2B,QAAA,WAEA,GAIAoS,MAJAP,SAAAvoC,KAAAkiB,SAAAliB,KAAAkiB,QAAAhc,OAEAwjC,cAAAnB,SAAArqB,OAAAle,KAAAylC,QAAA5pB,SACAgtB,kBAGA7oC,MAAA2oC,eACAG,MACApD,YACAgE,cAAAnB,SAAA,EAAAmB,cAAA5T,KACA6T,cAAApB,SAAA,EAAAvoC,KAAAynC,UAAAj6B,EACAo8B,iBAAA5pC,KAAAqnC,aACAI,UAAAznC,KAAAynC,UAAAj6B,EACAw7B,QAAA,QACAC,SAAA,OACAY,WAAA,QAEAlC,UACA+B,cAAAnB,SAAA,EAAAmB,cAAAjsB,IACAksB,cAAApB,SAAA,EAAAvoC,KAAAynC,UAAAt8B,EACAy+B,iBAAA5pC,KAAAse,cACAmpB,UAAAznC,KAAAynC,UAAAt8B,EACA69B,QAAA,OACAC,SAAA,KACAY,WAAA,OAIA,KAAA,GAAAX,WAAAJ,MAAA,CACA,GAAA9P,MAAA8P,KAAAI,QACA,KAAA,GAAA1C,eAAAxmC,MAAA0nC,UAAAwB,SAAA,CACA,GAKAY,iBAAAC,gBAAAC,eACAC,kBAAAC,iBANAhC,SAAAloC,KAAA0nC,UAAAwB,SAAA1C,aACA2D,WAAAjC,SAAAzsB,QAAAI,OACAuuB,gBAAAlC,SAAAvC,aACA0E,cAAA,EACAC,cAAA,MAAAF,eAIAlC,UAAAhmB,UAAAgmB,SAAAhmB,QAAAhc,SACAmkC,cAAAnC,SAAAzC,QAAA5pB,SAAAmd,KAAA6Q,aAGA,kBAAAM,YACAA,WAAAA,WAAA1pC,MAAAynC,UAEA,gBAAAiC,cACAA,WAAAI,WAAAJ,YACAjC,SAAAzsB,QAAAI,OAAAhZ,QAAA,UACAsnC,WAAA36B,KAAAg7B,KAAAxR,KAAA4Q,iBAAAO,WAAA,OAIAL,gBAAA9Q,KAAA2Q,cAAA3Q,KAAA0Q,cACAxB,SAAAvC,aAAAn2B,KAAAC,MAAA46B,cAAAP,gBAAAK,YACAJ,gBAAAK,gBAAApR,KAAAyO,UACAuC,eAAA9B,SAAAvC,cAAA3M,KAAAyO,UACAwC,kBAAAF,iBAAAC,eACAE,kBAAAH,kBAAAC,gBAEAM,eAAAL,mBACA/B,SAAA9B,aAAApN,KAAAiQ,UACAJ,gBAAAX,SAAAtC,MAAA5S,IAAAkV,SAAAtC,QAEA0E,eAAAJ,kBACAhC,SAAA9B,aAAApN,KAAAgQ,SACAH,gBAAAX,SAAAtC,MAAA5S,IAAAkV,SAAAtC,OAEA0E,eAAAtR,KAAAyO,WAAAS,SAAAvC,eACAuC,SAAA9B,aAAApN,KAAAgQ,SACAH,gBAAAX,SAAAtC,MAAA5S,IAAAkV,SAAAtC,QAWA,MANAN,UAAA5oB,sBAAA,WACA,IAAA,GAAA8sB,YAAAX,iBACAA,gBAAAW,UAAAC,kBAIAzpC,MAIAgmC,QAAAC,sBAAA,SAAA/jB,SACA,MAAA8jB,SAAAyE,cAAAvoB,UAAA,GAAA8jB,SAAA9jB,UAIA8jB,QAAAa,WAAA,WACA,IAAA,GAAA6D,aAAA7C,UACAA,SAAA6C,WAAAhU,WAMAsP,QAAAyE,cAAA,SAAAvoB,SACA,MAAA2lB,UAAA3lB,QAAA0lB,qBAGA1hC,OAAA0L,OAAA,WACAq2B,eACAA,gBAEAjC,QAAAa,cAIAvB,SAAA5oB,sBAAA,SAAA1O,UACA,GAAA28B,WAAAzkC,OAAAwW,uBACAxW,OAAA0W,0BACA1W,OAAAyW,6BACA2qB,yBACAqD,WAAAtqC,KAAA6F,OAAA8H,WAEAs3B,SAAAU,QAAAA,WAEA,WACA,YAEA,SAAA4E,gBAAA9pC,EAAAwK,GACA,MAAAxK,GAAA6kC,aAAAr6B,EAAAq6B,aAGA,QAAAkF,uBAAA/pC,EAAAwK,GACA,MAAAA,GAAAq6B,aAAA7kC,EAAA6kC,aAUA,QAAAE,OAAApqB,SACAzb,KAAA+M,KAAA0O,QAAA1O,KACA/M,KAAAg5B,KAAAvd,QAAAud,KACAh5B,KAAAgzB,GAAAhzB,KAAA+M,KAAA,IAAA/M,KAAAg5B,KACAh5B,KAAA0nC,aACA1nC,KAAA8qC,qBACAC,OAAA/qC,KAAAg5B,MAAAh5B,KAAA+M,MAAA/M,KAbA,GAAA+qC,SACApD,YACAjC,eAEAJ,SAAAp/B,OAAAo/B,QAaAO,OAAA1lC,UAAAgd,IAAA,SAAA+qB,UACAloC,KAAA0nC,UAAA/kC,KAAAulC,WAIArC,MAAA1lC,UAAA2qC,mBAAA,WACA9qC,KAAAgrC,eACAzvB,MACAD,QACAwa,QACAqJ,WAKA0G,MAAA1lC,UAAAspC,cAAA,WACA,IAAA,GAAAnqB,aAAAtf,MAAAgrC,cAAA,CACA,GAAAtD,WAAA1nC,KAAAgrC,cAAA1rB,WACAzR,QAAA,OAAAyR,WAAA,SAAAA,SACAooB,WAAAv3B,KAAAtC,QAAAg9B,sBAAAD,eACA,KAAA,GAAA7mC,GAAA,EAAA0iC,IAAAiB,UAAA7lC,OAAAkC,EAAA0iC,IAAA1iC,GAAA,EAAA,CACA,GAAAmkC,UAAAR,UAAA3jC,IACAmkC,SAAAzsB,QAAAyrB,YAAAnjC,IAAA2jC,UAAA7lC,OAAA,IACAqmC,SAAA3Y,SAAAjQ,aAIAtf,KAAA8qC,sBAIAjF,MAAA1lC,UAAA2vB,KAAA,SAAAoY,UACAloC,KAAA0nC,UAAAv3B,KAAAy6B,eACA,IAAAlqB,OAAA4kB,SAAAE,QAAA1e,QAAAohB,SAAAloC,KAAA0nC,WACAuD,OAAAvqB,QAAA1gB,KAAA0nC,UAAA7lC,OAAA,CACA,OAAAopC,QAAA,KAAAjrC,KAAA0nC,UAAAhnB,MAAA,IAIAmlB,MAAA1lC,UAAAkmC,SAAA,SAAA6B,UACAloC,KAAA0nC,UAAAv3B,KAAAy6B,eACA,IAAAlqB,OAAA4kB,SAAAE,QAAA1e,QAAAohB,SAAAloC,KAAA0nC,UACA,OAAAhnB,OAAA1gB,KAAA0nC,UAAAhnB,MAAA,GAAA,MAIAmlB,MAAA1lC,UAAAimC,aAAA,SAAA8B,SAAA5oB,WACAtf,KAAAgrC,cAAA1rB,WAAA3c,KAAAulC,WAIArC,MAAA1lC,UAAAmd,OAAA,SAAA4qB,UACA,GAAAxnB,OAAA4kB,SAAAE,QAAA1e,QAAAohB,SAAAloC,KAAA0nC,UACAhnB,WACA1gB,KAAA0nC,UAAA5kC,OAAA4d,MAAA,IAMAmlB,MAAA1lC,UAAA46B,MAAA,WACA,MAAA/6B,MAAA0nC,UAAA,IAKA7B,MAAA1lC,UAAA+qC,KAAA,WACA,MAAAlrC,MAAA0nC,UAAA1nC,KAAA0nC,UAAA7lC,OAAA,IAIAgkC,MAAAC,aAAA,SAAArqB,SACA,MAAAsvB,QAAAtvB,QAAAud,MAAAvd,QAAA1O,OAAA,GAAA84B,OAAApqB,UAGA6pB,SAAAO,MAAAA,SAEA,WACA,YAKA,SAAAsF,eAAAjpB,SACAliB,KAAAorC,SAAAp8B,EAAAkT,SAJA,GAAAlT,GAAA9I,OAAAiE,OACAm7B,SAAAp/B,OAAAo/B,QAMAt2B,GAAAub,MACA,cACA,aACA,MACA,SACA,KACA,cACA,aACA,aACA,aACA,SAAAxmB,EAAA0gB,QACA0mB,cAAAhrC,UAAAskB,QAAA,WACA,GAAA7D,MAAA1gB,MAAAC,UAAAC,MAAAC,KAAAuB,UACA,OAAA5B,MAAAorC,SAAA3mB,QAAAhkB,MAAAT,KAAAorC,SAAAxqB,SAIA5R,EAAAub,MACA,SACA,UACA,iBACA,SAAAxmB,EAAA0gB,QACA0mB,cAAA1mB,QAAAzV,EAAAyV,UAGA6gB,SAAA2B,SAAAtkC,MACAoK,KAAA,SACAy4B,QAAA2F,gBAEA7F,SAAAE,QAAA2F,iBAEA,WACA,YAIA,SAAAE,iBAAAC,WACA,MAAA,YACA,GAAA5D,cACA6D,UAAA3pC,UAAA,EAiBA,OAfA0pC,WAAA7I,WAAA7gC,UAAA,MACA2pC,UAAAD,UAAAlnC,UAAAxC,UAAA,IACA2pC,UAAAnT,QAAAx2B,UAAA,IAGA5B,KAAAuqB,KAAA,WACA,GAAA9O,SAAA6vB,UAAAlnC,UAAAmnC,WACArpB,QAAAliB,MAEA,iBAAAyb,SAAAsqB,UACAtqB,QAAAsqB,QAAAuF,UAAAtrC,MAAA80B,QAAArZ,QAAAsqB,SAAA,IAEA2B,UAAA/kC,KAAA,GAAA2iC,UAAA7pB,YAGAisB,WAtBA,GAAApC,UAAAp/B,OAAAo/B,QA0BAp/B,QAAAiE,SACAjE,OAAAiE,OAAAC,GAAA89B,SAAAmD,gBAAAnlC,OAAAiE,SAEAjE,OAAA4tB,QACA5tB,OAAA4tB,MAAA1pB,GAAA89B,SAAAmD,gBAAAnlC,OAAA4tB,WC/oBA,SAAApZ,SACA,kBAAAC,SAAAA,OAAAC,IAEAD,QAAA,UAAAD,SAGAA,QAFA,gBAAAvX,SAEA6d,QAAA,UAGA9a,OAAAiE,QAAAjE,OAAA4tB,QAEA,SAAA9kB,GAaA,GAkBAw8B,KAGAC,YAEAC,UACAC,iBACAC,aACAC,eA1BAC,YAAA,QACAC,mBAAA,cACAC,kBAAA,aACAC,oBAAA,eACAC,mBAAA,cACAC,WAAA,OACAC,aAAA,SACAC,GAAA,MACAC,SAAA,IAAAD,GACAE,YAAA,YACAC,eAAA,eACAC,oBAAA,oBAQAC,cAAA,aACAC,QAAAzmC,OAAA,OAEA0mC,QAAA59B,EAAA9I,QAUA2mC,OAAA,SAAA9/B,KAAApF,GACA6jC,IAAAsB,GAAA/qC,GAAAsqC,GAAAt/B,KAAAu/B,SAAA3kC,IAEAolC,OAAA,SAAAC,UAAAC,SAAA3iC,KAAA4iC,KACA,GAAAvY,IAAA3wB,SAAAC,cAAA,MAaA,OAZA0wB,IAAAqY,UAAA,OAAAA,UACA1iC,OACAqqB,GAAAnvB,UAAA8E,MAEA4iC,IAKAD,UACAA,SAAAhoC,YAAA0vB,KALAA,GAAA3lB,EAAA2lB,IACAsY,UACAtY,GAAAsY,SAAAA,WAKAtY,IAEAwY,YAAA,SAAAvtC,EAAAU,MACAkrC,IAAAsB,GAAAvJ,eAAA8I,GAAAzsC,EAAAU,MAEAkrC,IAAA4B,GAAAC,YAEAztC,EAAAA,EAAAsP,OAAA,GAAA1I,cAAA5G,EAAAQ,MAAA,GACAorC,IAAA4B,GAAAC,UAAAztC,IACA4rC,IAAA4B,GAAAC,UAAAztC,GAAAa,MAAA+qC,IAAAx8B,EAAAqS,QAAA/gB,MAAAA,MAAAA,SAIAgtC,aAAA,SAAAlsC,MAKA,MAJAA,QAAAyqC,gBAAAL,IAAA+B,aAAAC,WACAhC,IAAA+B,aAAAC,SAAAx+B,EAAAw8B,IAAA4B,GAAAK,YAAAjrC,QAAA,UAAAgpC,IAAA4B,GAAAM,SACA7B,eAAAzqC,MAEAoqC,IAAA+B,aAAAC,UAGAG,eAAA,WACA3+B,EAAA4+B,cAAAhpB,WAEA4mB,IAAA,GAAAkB,eACAlB,IAAAzrC,OACAiP,EAAA4+B,cAAAhpB,SAAA4mB,MAIAqC,oBAAA,WACA,GAAA5sC,GAAA+C,SAAAC,cAAA,KAAA6L,MACAjD,GAAA,KAAA,IAAA,MAAA,SAEA,IAAAqR,SAAAjd,EAAA,WACA,OAAA,CAGA,MAAA4L,EAAAhL,QACA,GAAAgL,EAAAihC,MAAA,cAAA7sC,GACA,OAAA,CAIA,QAAA,EAQAyrC,eAAAvsC,WAEAgC,YAAAuqC,cAMA3sC,KAAA,WACA,GAAAguC,YAAAzqC,UAAAyqC,UACAvC,KAAAwC,QAAAxC,IAAAyC,MAAAjqC,SAAAkqC,MAAAlqC,SAAAgI,iBACAw/B,IAAA2C,UAAA,YAAA9qC,KAAA0qC,YACAvC,IAAA4C,MAAA,qBAAA/qC,KAAA0qC,YACAvC,IAAA6C,mBAAAR,sBAIArC,IAAA8C,eAAA9C,IAAA2C,WAAA3C,IAAA4C,OAAA,8EAAA/qC,KAAAC,UAAAC,WACAmoC,UAAA18B,EAAAhL,UAEAwnC,IAAA+C,gBAOAC,KAAA,SAAAluC,MAEA,GAAAyD,EAEA,IAAAzD,KAAAmuC,SAAA,EAAA,CAEAjD,IAAAkD,MAAApuC,KAAAouC,MAAAC,UAEAnD,IAAA9qB,MAAA,CACA,IACA5W,MADA4kC,MAAApuC,KAAAouC,KAEA,KAAA3qC,EAAA,EAAAA,EAAA2qC,MAAA7sC,OAAAkC,IAKA,GAJA+F,KAAA4kC,MAAA3qC,GACA+F,KAAA8kC,SACA9kC,KAAAA,KAAA6qB,GAAA,IAEA7qB,OAAAxJ,KAAAq0B,GAAA,GAAA,CACA6W,IAAA9qB,MAAA3c,CACA,YAIAynC,KAAAkD,MAAA1/B,EAAAqS,QAAA/gB,KAAAouC,OAAApuC,KAAAouC,OAAApuC,KAAAouC,OACAlD,IAAA9qB,MAAApgB,KAAAogB,OAAA,CAIA,IAAA8qB,IAAAqD,OAEA,WADArD,KAAAsD,gBAIAtD,KAAAuD,SACAnD,aAAA,GACAtrC,KAAA0uC,QAAA1uC,KAAA0uC,OAAAntC,OACA2pC,IAAAsB,GAAAxsC,KAAA0uC,OAAAzgB,GAAA,GAEAid,IAAAsB,GAAApB,UAGAprC,KAAAyQ,KACAy6B,IAAA+C,YAAAjuC,KAAAyQ,OACAy6B,IAAA+C,YAAAjuC,KAAAyQ,SAEAy6B,IAAA+B,aAAA/B,IAAA+C,YAAAjuC,KAAAyQ,MAEAy6B,IAAA+B,gBAKA/B,IAAA4B,GAAAp+B,EAAA5K,QAAA,KAAA4K,EAAA4+B,cAAAnoB,SAAAnlB,MACAkrC,IAAAyD,gBAAA,SAAAzD,IAAA4B,GAAA6B,iBAAAzD,IAAA8C,eAAA9C,IAAA4B,GAAA6B,gBAEAzD,IAAA4B,GAAA8B,QACA1D,IAAA4B,GAAA+B,qBAAA,EACA3D,IAAA4B,GAAAgC,gBAAA,EACA5D,IAAA4B,GAAAiC,cAAA,EACA7D,IAAA4B,GAAAkC,iBAAA,GAMA9D,IAAA+D,YAGA/D,IAAA+D,UAAAxC,OAAA,MAAAhrC,GAAA,QAAAuqC,SAAA,WACAd,IAAAgE,UAGAhE,IAAAre,KAAA4f,OAAA,QAAAnf,KAAA,eAAA7rB,GAAA,QAAAuqC,SAAA,SAAA1sC,GACA4rC,IAAAiE,cAAA7vC,EAAAimB,SACA2lB,IAAAgE,UAIAhE,IAAA1M,UAAAiO,OAAA,YAAAvB,IAAAre,OAGAqe,IAAAkE,iBAAA3C,OAAA,WACAvB,IAAA4B,GAAAuC,YACAnE,IAAAmE,UAAA5C,OAAA,YAAAvB,IAAA1M,UAAA0M,IAAA4B,GAAAwC,UAKA,IAAAC,SAAA7gC,EAAA4+B,cAAAiC,OACA,KAAA9rC,EAAA,EAAAA,EAAA8rC,QAAAhuC,OAAAkC,IAAA,CACA,GAAAjE,GAAA+vC,QAAA9rC,EACAjE,GAAAA,EAAAoP,OAAA,GAAA3I,cAAAzG,EAAAM,MAAA,GACAorC,IAAA,OAAA1rC,GAAAO,KAAAmrC,KAEA2B,YAAA,cAGA3B,IAAA4B,GAAAiC,eAEA7D,IAAA4B,GAAA0C,gBAGAjD,OAAAX,mBAAA,SAAAtsC,EAAAyE,SAAA0rC,OAAAjmC,MACAimC,OAAAC,kBAAA1C,aAAAxjC,KAAA1I,QAEAwqC,cAAA,qBALAJ,IAAAre,KAAA+B,OAAAoe,iBASA9B,IAAA4B,GAAA6C,WACArE,cAAA,kBAKAJ,IAAAyD,gBACAzD,IAAAre,KAAA1c,KACAyxB,SAAAsJ,IAAA4B,GAAA8C,UACAC,UAAA,SACAD,UAAA1E,IAAA4B,GAAA8C,YAGA1E,IAAAre,KAAA1c,KACAgN,IAAAmvB,QAAAxuB,YACA+jB,SAAA,cAGAqJ,IAAA4B,GAAAgD,cAAA,GAAA,SAAA5E,IAAA4B,GAAAgD,aAAA5E,IAAAyD,kBACAzD,IAAA+D,UAAA9+B,KACA+lB,OAAAkV,UAAAlV,SACA2L,SAAA,aAMAqJ,IAAA4B,GAAAkC,iBAEA5D,UAAA3pC,GAAA,QAAAuqC,SAAA,SAAA1sC,GACA,KAAAA,EAAAiyB,SACA2Z,IAAAgE,UAKA5C,QAAA7qC,GAAA,SAAAuqC,SAAA,WACAd,IAAA6E,eAIA7E,IAAA4B,GAAA+B,sBACAvD,cAAA,oBAGAA,cACAJ,IAAAre,KAAAD,SAAA0e,aAIA,IAAA0E,cAAA9E,IAAA+E,GAAA3D,QAAApW,SAGAga,eAEA,IAAAhF,IAAAyD,iBACAzD,IAAAiF,cAAAH,cAAA,CACA,GAAArvC,GAAAuqC,IAAAkF,mBACAzvC,KACAuvC,aAAAG,YAAA1vC,GAKAuqC,IAAAyD,kBACAzD,IAAAoF,MAIA5hC,EAAA,cAAAyB,IAAA,WAAA,UAHA+/B,aAAAtO,SAAA,SASA,IAAA2O,cAAArF,IAAA4B,GAAA0D,SA0CA,OAzCAtF,KAAAoF,QACAC,cAAA,YAEAA,cACArF,IAAAuF,eAAAF,cAIArF,IAAAsD,iBAEA3B,YAAA,iBAGAn+B,EAAA,QAAAyB,IAAA+/B,cAGAhF,IAAA+D,UAAApyB,IAAAquB,IAAAre,MAAA6jB,UAAAxF,IAAA4B,GAAA4D,WAAAhiC,EAAAhL,SAAA+K,OAGAy8B,IAAAyF,eAAAjtC,SAAAktC,cAGA1kC,WAAA,WAEAg/B,IAAA2F,SACA3F,IAAAuF,eAAAxE,aACAf,IAAA4F,aAGA5F,IAAA+D,UAAAriB,SAAAqf,aAIAb,UAAA3pC,GAAA,UAAAuqC,SAAAd,IAAA6F,aAEA,IAEA7F,IAAAqD,QAAA,EACArD,IAAA6E,WAAAC,cACAnD,YAAAhB,YAEA7rC,MAMAkvC,MAAA,WACAhE,IAAAqD,SACA1B,YAAApB,oBAEAP,IAAAqD,QAAA,EAEArD,IAAA4B,GAAAkE,eAAA9F,IAAAwC,SAAAxC,IAAA6C,oBACA7C,IAAAuF,eAAAvE,gBACAhgC,WAAA,WACAg/B,IAAA+F,UACA/F,IAAA4B,GAAAkE,eAEA9F,IAAA+F,WAOAA,OAAA,WACApE,YAAArB,YAEA,IAAA0F,iBAAAhF,eAAA,IAAAD,YAAA,GAYA,IAVAf,IAAA+D,UAAA3gB,SACA4c,IAAAre,KAAAyB,SACA4c,IAAA1M,UAAAnQ,QAEA6c,IAAA4B,GAAA0D,YACAU,iBAAAhG,IAAA4B,GAAA0D,UAAA,KAGAtF,IAAAiG,oBAAAD,iBAEAhG,IAAAyD,gBAAA,CACA,GAAAuB,eAAAG,YAAA,GACAnF,KAAAoF,MACA5hC,EAAA,cAAAyB,IAAA,WAAA,IAEA+/B,aAAAtO,SAAA,GAEAlzB,EAAA,QAAAyB,IAAA+/B,cAGA9E,UAAA9oC,IAAA,QAAA0pC,SAAA,WAAAA,UACAd,IAAAsB,GAAAlqC,IAAA0pC,UAGAd,IAAAre,KAAAS,KAAA,QAAA,YAAAsK,WAAA,SACAsT,IAAA+D,UAAA3hB,KAAA,QAAA,UACA4d,IAAA1M,UAAAlR,KAAA,QAAA,kBAGA4d,IAAA4B,GAAAiC,cACA7D,IAAA4B,GAAA0C,gBAAAtE,IAAA+B,aAAA/B,IAAAkG,SAAAtwC,SAAA,GACAoqC,IAAA+B,aAAAC,UACAhC,IAAA+B,aAAAC,SAAA5e,SAIA4c,IAAA4B,GAAAuE,eAAAnG,IAAAyF,gBACAjiC,EAAAw8B,IAAAyF,gBAAA5e,QAEAmZ,IAAAkG,SAAA,KACAlG,IAAA2F,QAAA,KACA3F,IAAA+B,aAAA,KACA/B,IAAAoG,WAAA,EAEAzE,YAAAnB,oBAGAqE,WAAA,SAAAwB,WAEA,GAAArG,IAAA4C,MAAA,CAEA,GAAA0D,WAAA9tC,SAAA0E,gBAAAs+B,YAAA9gC,OAAAmhC,WACA7Q,OAAAtwB,OAAAoY,YAAAwzB,SACAtG,KAAAre,KAAA1c,IAAA,SAAA+lB,QACAgV,IAAA+E,GAAA/Z,WAEAgV,KAAA+E,GAAAsB,WAAAjF,QAAApW,QAGAgV,KAAAyD,iBACAzD,IAAAre,KAAA1c,IAAA,SAAA+6B,IAAA+E,IAGApD,YAAA,WAOA2B,eAAA,WACA,GAAAhlC,MAAA0hC,IAAAkD,MAAAlD,IAAA9qB,MAGA8qB,KAAAkE,iBAAA9gB,SAEA4c,IAAA2F,SACA3F,IAAA2F,QAAAviB,SAEA9kB,KAAA8kC,SACA9kC,KAAA0hC,IAAAuG,QAAAvG,IAAA9qB,OAGA,IAAAtf,MAAA0I,KAAA1I,IAQA,IANA+rC,YAAA,gBAAA3B,IAAAkG,SAAAlG,IAAAkG,SAAAtwC,KAAA,GAAAA,OAIAoqC,IAAAkG,SAAA5nC,MAEA0hC,IAAA+B,aAAAnsC,MAAA,CACA,GAAA4wC,UAAAxG,IAAA4B,GAAAhsC,OAAAoqC,IAAA4B,GAAAhsC,MAAA4wC,MAGA7E,aAAA,mBAAA6E,QAEAA,OACAxG,IAAA+B,aAAAnsC,MAAA4N,EAAAgjC,QAGAxG,IAAA+B,aAAAnsC,OAAA,EAIAuqC,kBAAAA,mBAAA7hC,KAAA1I,MACAoqC,IAAA1M,UAAAxQ,YAAA,OAAAqd,iBAAA,UAGA,IAAAsG,YAAAzG,IAAA,MAAApqC,KAAA8N,OAAA,GAAA3I,cAAAnF,KAAAhB,MAAA,IAAA0J,KAAA0hC,IAAA+B,aAAAnsC,MACAoqC,KAAA0G,cAAAD,WAAA7wC,MAEA0I,KAAAqoC,WAAA,EAEAhF,YAAAf,aAAAtiC,MACA6hC,iBAAA7hC,KAAA1I,KAGAoqC,IAAA1M,UAAAhR,QAAA0d,IAAAkE,kBAEAvC,YAAA,gBAOA+E,cAAA,SAAAD,WAAA7wC,MACAoqC,IAAA2F,QAAAc,WAEAA,WACAzG,IAAA4B,GAAAiC,cAAA7D,IAAA4B,GAAA0C,gBACAtE,IAAA+B,aAAAnsC,SAAA,EAEAoqC,IAAA2F,QAAA9qB,KAAA,cAAAxkB,QACA2pC,IAAA2F,QAAAjiB,OAAAoe,gBAGA9B,IAAA2F,QAAAc,WAGAzG,IAAA2F,QAAA,GAGAhE,YAAAlB,qBACAT,IAAA1M,UAAA5R,SAAA,OAAA9rB,KAAA,WAEAoqC,IAAAkE,iBAAAxgB,OAAAsc,IAAA2F,UAQAY,QAAA,SAAArxB,OACA,GACAtf,MADA0I,KAAA0hC,IAAAkD,MAAAhuB,MAUA,IAPA5W,KAAAsoC,QACAtoC,MAAA6qB,GAAA3lB,EAAAlF,QAEA1I,KAAA0I,KAAA1I,KACA0I,MAAAxJ,KAAAwJ,KAAA5B,IAAA4B,KAAA5B,MAGA4B,KAAA6qB,GAAA,CAIA,IAAA,GAHAoa,OAAAvD,IAAAuD,MAGAhrC,EAAA,EAAAA,EAAAgrC,MAAAltC,OAAAkC,IACA,GAAA+F,KAAA6qB,GAAA1E,SAAA,OAAA8e,MAAAhrC,IAAA,CACA3C,KAAA2tC,MAAAhrC,EACA,OAIA+F,KAAA5B,IAAA4B,KAAA6qB,GAAA/G,KAAA,gBACA9jB,KAAA5B,MACA4B,KAAA5B,IAAA4B,KAAA6qB,GAAA/G,KAAA,SAUA,MANA9jB,MAAA1I,KAAAA,MAAAoqC,IAAA4B,GAAAhsC,MAAA,SACA0I,KAAA4W,MAAAA,MACA5W,KAAA8kC,QAAA,EACApD,IAAAkD,MAAAhuB,OAAA5W,KACAqjC,YAAA,eAAArjC,MAEA0hC,IAAAkD,MAAAhuB,QAOA2xB,SAAA,SAAA1d,GAAAlZ,SACA,GAAA62B,UAAA,SAAA1yC,GACAA,EAAA2yC,MAAAvyC,KACAwrC,IAAAgH,WAAA5yC,EAAA+0B,GAAAlZ,SAGAA,WACAA,WAGA,IAAAg3B,OAAA,qBACAh3B,SAAAuzB,OAAAra,GAEAlZ,QAAAizB,OACAjzB,QAAAgzB,OAAA,EACA9Z,GAAA/xB,IAAA6vC,OAAA1wC,GAAA0wC,MAAAH,YAEA72B,QAAAgzB,OAAA,EACAhzB,QAAAi3B,SACA/d,GAAA/xB,IAAA6vC,OAAA1wC,GAAA0wC,MAAAh3B,QAAAi3B,SAAAJ,WAEA72B,QAAAizB,MAAA/Z,GACAA,GAAA/xB,IAAA6vC,OAAA1wC,GAAA0wC,MAAAH,aAIAE,WAAA,SAAA5yC,EAAA+0B,GAAAlZ,SACA,GAAAk3B,UAAAz0B,SAAAzC,QAAAk3B,SAAAl3B,QAAAk3B,SAAA3jC,EAAA4+B,cAAAnoB,SAAAktB,QAGA,IAAAA,YAAA,IAAA/yC,EAAAi+B,OAAAj+B,EAAAgzC,SAAAhzC,EAAAizC,SAAAjzC,EAAAkzC,QAAAlzC,EAAAmzC,UAAA,CAIA,GAAAC,WAAA90B,SAAAzC,QAAAu3B,UAAAv3B,QAAAu3B,UAAAhkC,EAAA4+B,cAAAnoB,SAAAutB,SAEA,IAAAA,UACA,GAAAhkC,EAAAyzB,WAAAuQ,YACA,IAAAA,UAAA3yC,KAAAmrC,KACA,OAAA,MAGA,IAAAoB,QAAArW,QAAAyc,UACA,OAAA,CAKApzC,GAAAwB,OACAxB,EAAAmyB,iBAGAyZ,IAAAqD,QACAjvC,EAAA8iC,mBAIAjnB,QAAAkZ,GAAA3lB,EAAApP,EAAA2yC,OACA92B,QAAAi3B,WACAj3B,QAAAizB,MAAA/Z,GAAAtO,KAAA5K,QAAAi3B,WAEAlH,IAAAgD,KAAA/yB,WAOAw3B,aAAA,SAAAC,OAAAjpC,MAEA,GAAAuhC,IAAAmE,UAAA,CACAlE,cAAAyH,QACA1H,IAAA1M,UAAAxQ,YAAA,SAAAmd,aAGAxhC,MAAA,YAAAipC,SACAjpC,KAAAuhC,IAAA4B,GAAAwC,SAGA,IAAAtvC,OACA4yC,OAAAA,OACAjpC,KAAAA,KAGAkjC,aAAA,eAAA7sC,MAEA4yC,OAAA5yC,KAAA4yC,OACAjpC,KAAA3J,KAAA2J,KAEAuhC,IAAAmE,UAAArlC,KAAAL,MAEAuhC,IAAAmE,UAAAtpB,KAAA,KAAAtkB,GAAA,QAAA,SAAAnC,GACAA,EAAAuzC,6BAGA3H,IAAA1M,UAAA5R,SAAA,SAAAgmB,QACAzH,YAAAyH,SAUAzD,cAAA,SAAA5pB,QAEA,IAAA7W,EAAA6W,QAAAoK,SAAAwc,qBAAA,CAIA,GAAA2G,gBAAA5H,IAAA4B,GAAA+B,oBACAkE,UAAA7H,IAAA4B,GAAAgC,cAEA,IAAAgE,gBAAAC,UACA,OAAA,CAIA,KAAA7H,IAAA2F,SAAAniC,EAAA6W,QAAAoK,SAAA,cAAAub,IAAAmE,WAAA9pB,SAAA2lB,IAAAmE,UAAA,GACA,OAAA,CAIA,IAAA9pB,SAAA2lB,IAAA2F,QAAA,IAAAniC,EAAA8O,SAAA0tB,IAAA2F,QAAA,GAAAtrB,SAOA,GAAAutB,eACA,OAAA,MAPA,IAAAC,WAEArkC,EAAA8O,SAAA9Z,SAAA6hB,QACA,OAAA,CAQA,QAAA,IAEAkrB,eAAA,SAAAuC,OACA9H,IAAA+D,UAAAriB,SAAAomB,OACA9H,IAAAre,KAAAD,SAAAomB,QAEA7B,oBAAA,SAAA6B,OACAtzC,KAAAuvC,UAAAjhB,YAAAglB,OACA9H,IAAAre,KAAAmB,YAAAglB,QAEA7C,cAAA,SAAAoB,WACA,OAAArG,IAAAoF,MAAAlF,UAAAlV,SAAAxyB,SAAA+K,KAAA+P,eAAA+yB,WAAAjF,QAAApW;EAEA4a,UAAA,YACA5F,IAAA4B,GAAA/a,MAAAmZ,IAAA2F,QAAA9qB,KAAAmlB,IAAA4B,GAAA/a,OAAA9D,GAAA,GAAAid,IAAAre,MAAAkF,SAEAgf,WAAA,SAAAzxC,GACA,GAAAA,EAAAimB,SAAA2lB,IAAAre,KAAA,KAAAne,EAAA8O,SAAA0tB,IAAAre,KAAA,GAAAvtB,EAAAimB,QAEA,MADA2lB,KAAA4F,aACA,GAGAmC,aAAA,SAAAlvC,SAAA0rC,OAAAjmC,MACA,GAAA0pC,IACA1pC,MAAAxJ,OACAyvC,OAAA/gC,EAAA5K,OAAA0F,KAAAxJ,KAAAyvC,SAEA5C,YAAAjB,oBAAA7nC,SAAA0rC,OAAAjmC,OAEAkF,EAAAub,KAAAwlB,OAAA,SAAAh/B,IAAAiY,OACA,GAAA9K,SAAA8K,OAAAA,SAAA,EACA,OAAA,CAGA,IADAwqB,IAAAziC,IAAArH,MAAA,KACA8pC,IAAA3xC,OAAA,EAAA,CACA,GAAA8yB,IAAAtwB,SAAAgiB,KAAAimB,SAAA,IAAAkH,IAAA,GAEA,IAAA7e,GAAA9yB,OAAA,EAAA,CACA,GAAA+rB,MAAA4lB,IAAA,EACA,iBAAA5lB,KACA+G,GAAA,KAAA3L,MAAA,IACA2L,GAAA8e,YAAAzqB,OAEA,QAAA4E,KACA+G,GAAAqB,GAAA,OACArB,GAAA/G,KAAA,MAAA5E,OAEA2L,GAAA8e,YAAAzkC,EAAA,SAAA4e,KAAA,MAAA5E,OAAA4E,KAAA,QAAA+G,GAAA/G,KAAA,WAGA+G,GAAA/G,KAAA4lB,IAAA,GAAAxqB,YAKA3kB,UAAAgiB,KAAAimB,SAAA,IAAAv7B,KAAAzG,KAAA0e,UAKA0nB,kBAAA,WAEA,GAAAxyB,SAAAstB,IAAAkI,cAAA,CACA,GAAAC,WAAA3vC,SAAAC,cAAA,MACA0vC,WAAA7jC,MAAA8jC,QAAA,iFACA5vC,SAAA+K,KAAA9J,YAAA0uC,WACAnI,IAAAkI,cAAAC,UAAAjT,YAAAiT,UAAA3M,YACAhjC,SAAA+K,KAAAP,YAAAmlC,WAEA,MAAAnI,KAAAkI,gBAWA1kC,EAAA4+B,eACAhpB,SAAA,KACA5E,MAAA0sB,cAAAvsC,UACA0vC,WAEArB,KAAA,SAAA/yB,QAAAiF,OAWA,MAVAitB,kBAKAlyB,QAHAA,QAGAzM,EAAA5K,QAAA,KAAAqX,YAGAA,QAAAgzB,OAAA,EACAhzB,QAAAiF,MAAAA,OAAA,EACA1gB,KAAA4kB,SAAA4pB,KAAA/yB,UAGA+zB,MAAA,WACA,MAAAxgC,GAAA4+B,cAAAhpB,UAAA5V,EAAA4+B,cAAAhpB,SAAA4qB,SAGAqE,eAAA,SAAA9mC,KAAA9J,QACAA,OAAAwY,UACAzM,EAAA4+B,cAAAnoB,SAAA1Y,MAAA9J,OAAAwY,SAEAzM,EAAA5K,OAAApE,KAAAggB,MAAA/c,OAAA+c,OACAhgB,KAAA6vC,QAAAltC,KAAAoK,OAGA0Y,UAKAutB,UAAA,EAEAjiC,IAAA,KAEA4hC,UAAA,EAEA7B,UAAA,GAEAnB,WAAA,EAEAtd,MAAA,GAEA8c,qBAAA,EAEAC,gBAAA,EAEAU,gBAAA,EAEAT,cAAA,EAEAC,iBAAA,EAEAJ,OAAA,EAEAe,UAAA,EAEAqB,aAAA,EAEAN,UAAA,KAEA/B,gBAAA,OAEAmB,WAAA,OAEAF,UAAA,OAEAzC,YAAA,0EAEAC,OAAA,cAEAkC,SAAA,aAEA+B,eAAA,IAOA3iC,EAAA5E,GAAAwjC,cAAA,SAAAnyB,SACAkyB,gBAEA,IAAAmG,MAAA9kC,EAAAhP,KAGA,IAAA,gBAAAyb,SAEA,GAAA,SAAAA,QAAA,CACA,GAAAizB,OACAqF,SAAApH,MAAAmH,KAAAxzC,KAAA,iBAAAwzC,KAAA,GAAAlG,cACAltB,MAAAmV,SAAAj0B,UAAA,GAAA,KAAA,CAEAmyC,UAAArF,MACAA,MAAAqF,SAAArF,MAAAhuB,QAEAguB,MAAAoF,KACAC,SAAArB,WACAhE,MAAAA,MAAAroB,KAAA0tB,SAAArB,WAEAhE,MAAAA,MAAAngB,GAAA7N,QAEA8qB,IAAAgH,YAAAD,MAAA7D,OAAAoF,KAAAC,cAEAvI,KAAAqD,QACArD,IAAA/vB,SAAAhb,MAAA+qC,IAAAtrC,MAAAC,UAAAC,MAAAC,KAAAuB,UAAA,QAKA6Z,SAAAzM,EAAA5K,QAAA,KAAAqX,SAOAkxB,MACAmH,KAAAxzC,KAAA,gBAAAmb,SAEAq4B,KAAA,GAAAlG,cAAAnyB,QAGA+vB,IAAA6G,SAAAyB,KAAAr4B,QAGA,OAAAq4B,MAOA,IACAE,cACAC,mBACAC,mBAHAC,UAAA,SAIAC,uBAAA,WACAF,qBACAD,mBAAArkB,MAAAskB,mBAAAhnB,SAAA8mB,eAAAplB,SACAslB,mBAAA,MAIAllC,GAAA4+B,cAAAiG,eAAAM,WACA14B,SACA44B,YAAA,OACArC,OAAA,GACAsC,UAAA,qBAEAt0B,OAEAu0B,WAAA,WACA/I,IAAAuD,MAAApsC,KAAAwxC,WAEAtH,OAAAf,YAAA,IAAAqI,UAAA,WACAC,4BAIAI,UAAA,SAAA1qC,KAAAzF,UAIA,GAFA+vC,yBAEAtqC,KAAA5B,IAAA,CACA,GAAAusC,UAAAjJ,IAAA4B,GAAAsH,OACA/f,GAAA3lB,EAAAlF,KAAA5B,IAEA,IAAAysB,GAAA9yB,OAAA,CAGA,GAAA0rB,QAAAoH,GAAA,GAAA9rB,UACA0kB,SAAAA,OAAA6kB,UACA6B,qBACAD,aAAAS,SAAAJ,YACAJ,mBAAAlH,OAAAiH,cACAA,aAAA,OAAAA,cAGAE,mBAAAvf,GAAA/E,MAAAqkB,oBAAArlB,SAAAN,YAAA0lB,eAGAxI,IAAAyH,aAAA,aAEAzH,KAAAyH,aAAA,QAAAwB,SAAAH,WACA3f,GAAA3lB,EAAA,QAIA,OADAlF,MAAA6qC,cAAAhgB,GACAA,GAKA,MAFA6W,KAAAyH,aAAA,SACAzH,IAAA+H,aAAAlvC,YAAAyF,MACAzF,YAQA,IACAuwC,UADAC,QAAA,OAEAC,kBAAA,WACAF,UACA5lC,EAAAhL,SAAA+K,MAAAuf,YAAAsmB,WAGAG,oBAAA,WACAD,oBACAtJ,IAAAwJ,KACAxJ,IAAAwJ,IAAAC,QAIAjmC,GAAA4+B,cAAAiG,eAAAgB,SAEAp5B,SACAyV,SAAA,KACAsM,OAAA,eACA0X,OAAA,wDAGAl1B,OACAm1B,SAAA,WACA3J,IAAAuD,MAAApsC,KAAAkyC,SACAD,SAAApJ,IAAA4B,GAAA3b,KAAA+L,OAEAqP,OAAAf,YAAA,IAAA+I,QAAAE,qBACAlI,OAAA,gBAAAgI,QAAAE,sBAEAK,QAAA,SAAAtrC,MAEA8qC,UACA5lC,EAAAhL,SAAA+K,MAAAme,SAAA0nB,UAGApJ,IAAAyH,aAAA,UAEA,IAAA/X,MAAAlsB,EAAA5K,QACA6d,IAAAnY,KAAA5B,IACAmtC,QAAA,SAAA/0C,KAAAg1C,WAAAC,OACA,GAAAC,OACAl1C,KAAAA,KACAm1C,IAAAF,MAGApI,aAAA,YAAAqI,MAEAhK,IAAA0G,cAAAljC,EAAAwmC,KAAAl1C,MAAAu0C,SAEA/qC,KAAA4rC,UAAA,EAEAZ,oBAEAtJ,IAAA4F,YAEA5kC,WAAA,WACAg/B,IAAAre,KAAAD,SAAAqf,cACA,IAEAf,IAAAyH,aAAA,SAEA9F,YAAA,qBAEA/jB,MAAA,WACA0rB,oBACAhrC,KAAA4rC,SAAA5rC,KAAA6rC,WAAA,EACAnK,IAAAyH,aAAA,QAAAzH,IAAA4B,GAAA3b,KAAAyjB,OAAA1yC,QAAA,QAAAsH,KAAA5B,QAEAsjC,IAAA4B,GAAA3b,KAAAP,SAIA,OAFAsa,KAAAwJ,IAAAhmC,EAAAyiB,KAAAyJ,MAEA,MAQA,IAAA0a,cACAC,UAAA,SAAA/rC,MACA,GAAAA,KAAAxJ,MAAA4d,SAAApU,KAAAxJ,KAAAw1C,MACA,MAAAhsC,MAAAxJ,KAAAw1C,KAEA,IAAA5tC,KAAAsjC,IAAA4B,GAAA1pB,MAAAqyB,QAEA,IAAA7tC,IAAA,CACA,GAAA8G,EAAAyzB,WAAAv6B,KACA,MAAAA,KAAA7H,KAAAmrC,IAAA1hC,KACA,IAAAA,KAAA6qB,GACA,MAAA7qB,MAAA6qB,GAAA/G,KAAA1lB,MAAA,GAGA,MAAA,GAGA8G,GAAA4+B,cAAAiG,eAAA,SAEAp4B,SACAu2B,OAAA,iOAYAxU,OAAA,mBACAuY,SAAA,QACAC,aAAA,EACAd,OAAA,sDAGAl1B,OACAi2B,UAAA,WACA,GAAAC,OAAA1K,IAAA4B,GAAA1pB,MACA0e,GAAA,QAEAoJ,KAAAuD,MAAApsC,KAAA,SAEAkqC,OAAAV,WAAA/J,GAAA,WACA,UAAAoJ,IAAAkG,SAAAtwC,MAAA80C,MAAA1Y,QACAxuB,EAAAhL,SAAA+K,MAAAme,SAAAgpB,MAAA1Y,UAIAqP,OAAAf,YAAA1J,GAAA,WACA8T,MAAA1Y,QACAxuB,EAAAhL,SAAA+K,MAAAuf,YAAA4nB,MAAA1Y,QAEAoP,QAAAhqC,IAAA,SAAA0pC,YAGAO,OAAA,SAAAzK,GAAAoJ,IAAA2K,aACA3K,IAAAwC,SACAnB,OAAA,cAAArB,IAAA2K,cAGAA,YAAA,WACA,GAAArsC,MAAA0hC,IAAAkG,QACA,IAAA5nC,MAAAA,KAAAiY,KAEAypB,IAAA4B,GAAA1pB,MAAAsyB,YAAA,CACA,GAAAI,MAAA,CAEA5K,KAAAwC,UACAoI,KAAAvgB,SAAA/rB,KAAAiY,IAAAtR,IAAA,eAAA,IAAAolB,SAAA/rB,KAAAiY,IAAAtR,IAAA,kBAAA,KAEA3G,KAAAiY,IAAAtR,IAAA,aAAA+6B,IAAA+E,GAAA6F,QAGAC,gBAAA,SAAAvsC,MACAA,KAAAiY,MAEAjY,KAAAwsC,SAAA,EAEAV,cACAW,cAAAX,cAGA9rC,KAAA0sC,mBAAA,EAEArJ,YAAA,eAAArjC,MAEAA,KAAA2sC,YACAjL,IAAA2F,SACA3F,IAAA2F,QAAA7iB,YAAA,eAEAxkB,KAAA2sC,WAAA,KASAC,cAAA,SAAA5sC,MAEA,GAAAglB,SAAA,EACA/M,IAAAjY,KAAAiY,IAAA,GACA40B,eAAA,SAAAC,OAEAhB,cACAW,cAAAX,cAGAA,aAAAiB,YAAA,WACA,MAAA90B,KAAAwC,aAAA,MACAinB,KAAA6K,gBAAAvsC,OAIAglB,QAAA,KACAynB,cAAAX,cAGA9mB,eACA,IAAAA,QACA6nB,eAAA,IACA,KAAA7nB,QACA6nB,eAAA,IACA,MAAA7nB,SACA6nB,eAAA,QAEAC,OAGAD,gBAAA,IAGAG,SAAA,SAAAhtC,KAAAzF,UAEA,GAAA0yC,OAAA,EAGAC,eAAA,WACAltC,OACAA,KAAAiY,IAAA,GAAArT,UACA5E,KAAAiY,IAAAnf,IAAA,cAEAkH,OAAA0hC,IAAAkG,WACAlG,IAAA6K,gBAAAvsC,MAEA0hC,IAAAyH,aAAA,UAGAnpC,KAAAwsC,SAAA,EACAxsC,KAAA2E,QAAA,EAEA0+B,YAAA,uBAKA4J,QACAA,MAAA,IACAvqC,WAAAwqC,eAAA,KAEAC,iBAOAA,YAAA,WACAntC,OACAA,KAAAiY,IAAAnf,IAAA,cACAkH,OAAA0hC,IAAAkG,WACAlG,IAAA6K,gBAAAvsC,MACA0hC,IAAAyH,aAAA,QAAAiD,MAAAhB,OAAA1yC,QAAA,QAAAsH,KAAA5B,OAGA4B,KAAAwsC,SAAA,EACAxsC,KAAA2E,QAAA,EACA3E,KAAA6rC,WAAA,IAGAO,MAAA1K,IAAA4B,GAAA1pB,MAGAiR,GAAAtwB,SAAAgiB,KAAA,WACA,IAAAsO,GAAA9yB,OAAA,CACA,GAAAkgB,KAAA/d,SAAAC,cAAA,MACA8d,KAAAirB,UAAA,UACAljC,KAAA6qB,IAAA7qB,KAAA6qB,GAAAtO,KAAA,OAAAxkB,SACAkgB,IAAAm1B,IAAAptC,KAAA6qB,GAAAtO,KAAA,OAAAuH,KAAA,QAEA9jB,KAAAiY,IAAA/S,EAAA+S,KAAAhgB,GAAA,iBAAAi1C,gBAAAj1C,GAAA,kBAAAk1C,aACAl1B,IAAA7Z,IAAA4B,KAAA5B,IAIAysB,GAAAqB,GAAA,SACAlsB,KAAAiY,IAAAjY,KAAAiY,IAAAo1B,SAGAp1B,IAAAjY,KAAAiY,IAAA,GACAA,IAAAwC,aAAA,EACAza,KAAAwsC,SAAA,EACAv0B,IAAAwU,QACAzsB,KAAAwsC,SAAA,GAWA,MAPA9K,KAAA+H,aAAAlvC,UACAyxC,MAAAD,UAAA/rC,MACAstC,gBAAAttC,KAAAiY,KACAjY,MAEA0hC,IAAA2K,cAEArsC,KAAAwsC,SACAV,cAAAW,cAAAX,cAEA9rC,KAAA6rC,WACAtxC,SAAA6oB,SAAA,eACAse,IAAAyH,aAAA,QAAAiD,MAAAhB,OAAA1yC,QAAA,QAAAsH,KAAA5B,QAEA7D,SAAAiqB,YAAA,eACAkd,IAAAyH,aAAA,UAEA5uC,WAGAmnC,IAAAyH,aAAA,WACAnpC,KAAAutC,SAAA,EAEAvtC,KAAAwsC,UACAxsC,KAAA2sC,WAAA,EACApyC,SAAA6oB,SAAA,eACAse,IAAAkL,cAAA5sC,OAGAzF,aAQA,IAAAizC,iBACAC,mBAAA,WAIA,MAHAr5B,UAAAo5B,kBACAA,gBAAAp5B,SAAAla,SAAAC,cAAA,KAAA6L,MAAA0nC,cAEAF,gBAGAtoC,GAAA4+B,cAAAiG,eAAA,QAEAp4B,SACA4L,SAAA,EACAgX,OAAA,cACAD,SAAA,IACAqZ,OAAA,SAAAv1B,SACA,MAAAA,SAAA8T,GAAA,OAAA9T,QAAAA,QAAAmE,KAAA,SAIArG,OAEA03B,SAAA,WACA,GAEAh0B,OAFAi0B,OAAAnM,IAAA4B,GAAAvN,KACAuC,GAAA,OAGA,IAAAuV,OAAAtwB,SAAAmkB,IAAA6C,mBAAA,CAIA,GAqBAuJ,aACAC,YAtBAzZ,SAAAuZ,OAAAvZ,SACA0Z,eAAA,SAAAp0B,OACA,GAAAq0B,QAAAr0B,MAAAyzB,QAAAjf,WAAA,SAAAA,WAAA,SAAAhL,SAAA,sBACAqQ,WAAA,OAAAoa,OAAAvZ,SAAA,IAAA,KAAAuZ,OAAAtZ,OACA2Z,QACA7V,SAAA,QACA8V,OAAA,KACAniB,KAAA,EACArY,IAAA,EACAy6B,8BAAA,UAEAr4C,EAAA,YAKA,OAHAm4C,QAAA,WAAAn4C,GAAAm4C,OAAA,QAAAn4C,GAAAm4C,OAAA,MAAAn4C,GAAAm4C,OAAAn4C,GAAA09B,WAEAwa,OAAAtnC,IAAAunC,QACAD,QAEAI,gBAAA,WACA3M,IAAA2F,QAAA1gC,IAAA,aAAA,WAKAo8B,QAAA,gBAAAzK,GAAA,WACA,GAAAoJ,IAAA4M,aAAA,CASA,GAPAnmB,aAAA2lB,aACApM,IAAA2F,QAAA1gC,IAAA,aAAA,UAIAiT,MAAA8nB,IAAA6M,kBAEA30B,MAEA,WADAy0B,kBAIAN,aAAAC,eAAAp0B,OAEAm0B,YAAApnC,IAAA+6B,IAAA8M,cAEA9M,IAAAre,KAAA+B,OAAA2oB,aAEAD,YAAAprC,WAAA,WACAqrC,YAAApnC,IAAA+6B,IAAA8M,YAAA,IACAV,YAAAprC,WAAA,WAEA2rC,kBAEA3rC,WAAA,WACAqrC,YAAAv6B,SACAoG,MAAAm0B,YAAA,KACA1K,YAAA,uBACA,KAEA/O,WAEA,OAMAyO,OAAAd,mBAAA3J,GAAA,WACA,GAAAoJ,IAAA4M,aAAA,CAMA,GAJAnmB,aAAA2lB,aAEApM,IAAA4B,GAAAkE,aAAAlT,UAEA1a,MAAA,CAEA,GADAA,MAAA8nB,IAAA6M,kBACA30B,MACA,MAEAm0B,aAAAC,eAAAp0B,OAGAm0B,YAAApnC,IAAA+6B,IAAA8M,YAAA,IACA9M,IAAAre,KAAA+B,OAAA2oB,aACArM,IAAA2F,QAAA1gC,IAAA,aAAA,UAEAjE,WAAA,WACAqrC,YAAApnC,IAAA+6B,IAAA8M,eACA,OAKAzL,OAAAf,YAAA1J,GAAA,WACAoJ,IAAA4M,eACAD,kBACAN,aACAA,YAAAv6B,SAEAoG,MAAA,UAKA00B,WAAA,WACA,MAAA,UAAA5M,IAAAkG,SAAAtwC,MAGAi3C,eAAA,WACA,QAAA7M,IAAAkG,SAAA4E,SACA9K,IAAAkG,SAAA3vB,KAOAu2B,WAAA,SAAAC,SACA,GAAA5jB,GAEAA,IADA4jB,QACA/M,IAAAkG,SAAA3vB,IAEAypB,IAAA4B,GAAAvN,KAAA4X,OAAAjM,IAAAkG,SAAA/c,IAAA6W,IAAAkG,SAGA,IAAA71B,QAAA8Y,GAAA9Y,SACA28B,WAAA3iB,SAAAlB,GAAAlkB,IAAA,eAAA,IACAgoC,cAAA5iB,SAAAlB,GAAAlkB,IAAA,kBAAA,GACAoL,QAAA4B,KAAAzO,EAAA9I,QAAAkY,YAAAo6B,UAQA,IAAAv9B,MACAsb,MAAA5B,GAAA4B,QAEAC,QAAAmW,MAAAhY,GAAArW,cAAAqW,GAAA,GAAAhW,cAAA85B,cAAAD,WAUA,OANAjB,sBACAt8B,IAAA,kBAAAA,IAAA,UAAA,aAAAY,OAAAia,KAAA,MAAAja,OAAA4B,IAAA,OAEAxC,IAAA6a,KAAAja,OAAAia,KACA7a,IAAAwC,IAAA5B,OAAA4B,KAEAxC,OAYA,IAAAy9B,WAAA,SACAC,WAAA,gBAEAC,eAAA,SAAAC,WACA,GAAArN,IAAA+B,aAAAmL,WAAA,CACA,GAAA/jB,IAAA6W,IAAA+B,aAAAmL,WAAAryB,KAAA,SACAsO,IAAA9yB,SAEAg3C,YACAlkB,GAAA,GAAAzsB,IAAAywC,YAIAnN,IAAAyC,OACAtZ,GAAAlkB,IAAA,UAAAooC,UAAA,QAAA,UAMA7pC,GAAA4+B,cAAAiG,eAAA6E,WAEAj9B,SACAu2B,OAAA,6JAKA8G,UAAA,aAGAC,UACAC,SACAt4B,MAAA,cACAsS,GAAA,KACA9qB,IAAA,2CAEA+wC,OACAv4B,MAAA,aACAsS,GAAA,IACA9qB,IAAA,4CAEAgxC,OACAx4B,MAAA,iBACAxY,IAAA,uBAKA8X,OACAm5B,WAAA,WACA3N,IAAAuD,MAAApsC,KAAA+1C,WAEA7L,OAAA,eAAA,SAAAjtC,EAAAw5C,SAAAC,SACAD,WAAAC,UACAD,WAAAV,UACAE,iBACAS,UAAAX,WACAE,gBAAA,MAOA/L,OAAAf,YAAA,IAAA4M,UAAA,WACAE,oBAIAU,UAAA,SAAAxvC,KAAAzF,UACA,GAAAk1C,UAAAzvC,KAAA5B,IACAsxC,SAAAhO,IAAA4B,GAAAqM,MAEAzqC,GAAAub,KAAAivB,SAAAT,SAAA,WACA,GAAAQ,SAAA12C,QAAA7C,KAAA0gB,UASA,MARA1gB,MAAAgzB,KAEAumB,SADA,gBAAAv5C,MAAAgzB,GACAumB,SAAA3yC,OAAA2yC,SAAAG,YAAA15C,KAAAgzB,IAAAhzB,KAAAgzB,GAAAnxB,OAAA03C,SAAA13C,QAEA7B,KAAAgzB,GAAA3yB,KAAAL,KAAAu5C,WAGAA,SAAAv5C,KAAAkI,IAAA1F,QAAA,OAAA+2C,WACA,GAIA,IAAAI,WAQA,OAPAH,UAAAV,YACAa,QAAAH,SAAAV,WAAAS,UAEA/N,IAAA+H,aAAAlvC,SAAAs1C,QAAA7vC,MAEA0hC,IAAAyH,aAAA,SAEA5uC,YAaA,IAAAu1C,cAAA,SAAAl5B,OACA,GAAAm5B,WAAArO,IAAAkD,MAAA7sC,MACA,OAAA6e,OAAAm5B,UAAA,EACAn5B,MAAAm5B,UACAn5B,MAAA,EACAm5B,UAAAn5B,MAEAA,OAEAo5B,kBAAA,SAAA7vC,KAAA8vC,KAAAC,OACA,MAAA/vC,MAAAzH,QAAA,WAAAu3C,KAAA,GAAAv3C,QAAA,YAAAw3C,OAGAhrC,GAAA4+B,cAAAiG,eAAA,WAEAp4B,SACA4L,SAAA,EACA4yB,YAAA,oFACAC,SAAA,EAAA,GACAC,oBAAA,EACAC,QAAA,EAEAC,MAAA,4BACAC,MAAA,yBACAC,SAAA,qBAGAv6B,OACAw6B,YAAA,WAEA,GAAAC,KAAAjP,IAAA4B,GAAAsN,QACAtY,GAAA,cAIA,OAFAoJ,KAAAlsB,WAAA,KAEAm7B,MAAAA,IAAApzB,WAEAukB,cAAA,eAEAiB,OAAAV,WAAA/J,GAAA,WAEAqY,IAAAN,oBACA3O,IAAAre,KAAAprB,GAAA,QAAAqgC,GAAA,WAAA,WACA,GAAAoJ,IAAAkD,MAAA7sC,OAAA,EAEA,MADA2pC,KAAA1b,QACA,IAKA4b,UAAA3pC,GAAA,UAAAqgC,GAAA,SAAAxiC,GACA,KAAAA,EAAAiyB,QACA2Z,IAAAnV,OACA,KAAAz2B,EAAAiyB,SACA2Z,IAAA1b,WAKA+c,OAAA,eAAAzK,GAAA,SAAAxiC,EAAAU,MACAA,KAAA2J,OACA3J,KAAA2J,KAAA6vC,kBAAAx5C,KAAA2J,KAAAuhC,IAAAkG,SAAAhxB,MAAA8qB,IAAAkD,MAAA7sC,WAIAgrC,OAAAX,mBAAA9J,GAAA,SAAAxiC,EAAAsiB,QAAA6tB,OAAAjmC,MACA,GAAA5F,GAAAsnC,IAAAkD,MAAA7sC,MACAkuC,QAAAjhB,QAAA5qB,EAAA,EAAA41C,kBAAAW,IAAAF,SAAAzwC,KAAA4W,MAAAxc,GAAA,KAGA2oC,OAAA,gBAAAzK,GAAA,WACA,GAAAoJ,IAAAkD,MAAA7sC,OAAA,GAAA44C,IAAAL,SAAA5O,IAAAmP,UAAA,CACA,GAAA3I,QAAAyI,IAAAR,YACAU,UAAAnP,IAAAmP,UAAA3rC,EAAAgjC,OAAAxvC,QAAA,YAAAi4C,IAAAJ,OAAA73C,QAAA,UAAA,SAAA0qB,SAAAuf,qBACAmO,WAAApP,IAAAoP,WAAA5rC,EAAAgjC,OAAAxvC,QAAA,YAAAi4C,IAAAH,OAAA93C,QAAA,UAAA,UAAA0qB,SAAAuf,oBAEAkO,WAAAhjB,MAAA,WACA6T,IAAAnV,SAEAukB,WAAAjjB,MAAA,WACA6T,IAAA1b,SAGA0b,IAAA1M,UAAA5P,OAAAyrB,UAAAx9B,IAAAy9B,gBAIA/N,OAAAT,aAAAhK,GAAA,WACAoJ,IAAAqP,iBAAA5oB,aAAAuZ,IAAAqP,iBAEArP,IAAAqP,gBAAAruC,WAAA,WACAg/B,IAAAsP,sBACAtP,IAAAqP,gBAAA,MACA,UAIAhO,QAAAf,YAAA1J,GAAA,WACAsJ,UAAA9oC,IAAAw/B,IACAoJ,IAAAre,KAAAvqB,IAAA,QAAAw/B,IACAoJ,IAAAoP,WAAApP,IAAAmP,UAAA,SAIA7qB,KAAA,WACA0b,IAAAlsB,WAAA,EACAksB,IAAA9qB,MAAAk5B,aAAApO,IAAA9qB,MAAA,GACA8qB,IAAAsD,kBAEAzY,KAAA,WACAmV,IAAAlsB,WAAA,EACAksB,IAAA9qB,MAAAk5B,aAAApO,IAAA9qB,MAAA,GACA8qB,IAAAsD,kBAEAiM,KAAA,SAAAC,UACAxP,IAAAlsB,UAAA07B,UAAAxP,IAAA9qB,MACA8qB,IAAA9qB,MAAAs6B,SACAxP,IAAAsD,kBAEAgM,oBAAA,WACA,GAGA/2C,GAHA0D,EAAA+jC,IAAA4B,GAAAsN,QAAAR,QACAe,cAAAzrC,KAAAqxB,IAAAp5B,EAAA,GAAA+jC,IAAAkD,MAAA7sC,QACAq5C,aAAA1rC,KAAAqxB,IAAAp5B,EAAA,GAAA+jC,IAAAkD,MAAA7sC,OAGA,KAAAkC,EAAA,EAAAA,IAAAynC,IAAAlsB,UAAA47B,aAAAD,eAAAl3C,IACAynC,IAAA2P,aAAA3P,IAAA9qB,MAAA3c,EAEA,KAAAA,EAAA,EAAAA,IAAAynC,IAAAlsB,UAAA27B,cAAAC,cAAAn3C,IACAynC,IAAA2P,aAAA3P,IAAA9qB,MAAA3c,IAGAo3C,aAAA,SAAAz6B,OAGA,GAFAA,MAAAk5B,aAAAl5B,QAEA8qB,IAAAkD,MAAAhuB,OAAAyxB,UAAA,CAIA,GAAAroC,MAAA0hC,IAAAkD,MAAAhuB,MACA5W,MAAA8kC,SACA9kC,KAAA0hC,IAAAuG,QAAArxB,QAGAysB,YAAA,WAAArjC,MAEA,UAAAA,KAAA1I,OACA0I,KAAAiY,IAAA/S,EAAA,2BAAAjN,GAAA,iBAAA,WACA+H,KAAAwsC,SAAA,IACAv0C,GAAA,kBAAA,WACA+H,KAAAwsC,SAAA,EACAxsC,KAAA6rC,WAAA,EACAxI,YAAA,gBAAArjC,QACA8jB,KAAA,MAAA9jB,KAAA5B,MAIA4B,KAAAqoC,WAAA,MASA,IAAAiJ,WAAA,QAEApsC,GAAA4+B,cAAAiG,eAAAuH,WACA3/B,SACA4/B,WAAA,SAAAvxC,MACA,MAAAA,MAAA5B,IAAA1F,QAAA,SAAA,SAAAkF,GAAA,MAAA,MAAAA,KAEA4zC,MAAA,GAEAt7B,OACAu7B,WAAA,WACA,GAAAr1C,OAAAs1C,iBAAA,EAAA,CAEA,GAAApO,IAAA5B,IAAA4B,GAAAqO,OACAH,MAAAlO,GAAAkO,KAEAA,OAAArlB,MAAAqlB,OAAAA,QAAAA,MAEAA,MAAA,IACAzO,OAAA,gBAAAuO,UAAA,SAAAx7C,EAAAkK,MACAA,KAAAiY,IAAAtR,KACAirC,YAAA5xC,KAAAiY,IAAA,GAAAwC,aAAA+2B,MACA/kB,MAAA,WAGAsW,OAAA,gBAAAuO,UAAA,SAAAx7C,EAAAkK,MACAA,KAAA5B,IAAAklC,GAAAiO,WAAAvxC,KAAAwxC,eAUA3N,mBC9zDA,SAAAhzB,OAAAuD,WACAvD,OAAA,WACA,YA0SA,SAAAghC,SAAA76C,EAAAwK,GACA,MAAA,OAAAxK,GAAA,MAAAwK,GAAAxK,EAAA0F,gBAAA8E,EAAA9E,cAGA,QAAAo1C,YAAAC,MAAA7yB,OACA,GAAA8yB,SAAA/3C,EAAAg4C,IAAAF,MAAAh6C,MACA,KAAAk6C,MAAA/yB,MACA,OAAA,CAGA,KADA8yB,QAAA9yB,MAAAxiB,cACAzC,EAAA,EAAAA,EAAAg4C,MAAAh4C,EACA,GAAA+3C,UAAAD,MAAA93C,GAAAyC,cACA,OAAA,CAGA,QAAA,EAGA,QAAAw1C,sBAAA9gC,QACA,IAAA,GAAAnK,OAAAmK,QACA+gC,WAAA57C,KAAA6a,OAAAnK,OACAmK,OAAAnK,KAAA,GAAAtO,QAAAyY,OAAAnK,KAAA,MA8VA,QAAAmrC,cAAA34C,UAAA44C,eACAn8C,KAAAo8C,GAAA74C,WAAA,GACAvD,KAAAq8C,UAEAr8C,KAAAm8C,cAAAA,eAAA,IA/pBA,GAAAG,QAEAA,MAAAC,mBACAC,QACAC,OAAA,0BACAC,WAAA,kCACAC,IAAA,sQACAC,MAAA,iFACAC,KAAA,yIACAC,SAAA,2pBACAC,QAAA,+uKACAC,GAAA,+gBACAC,KAAA,6HACAC,KAAA,+BACAC,WAAA,mBACAC,SAAA,gHACAC,KAAA,kBACAC,MAAA,4GACAC,QAAA,yaACAC,IAAA,oHACAC,KAAA,6OACAC,QAAA,sCACAC,UAAA,sHACAC,SAAA,kEACAC,QAAA,UACAC,SAAA,eACAC,KAAA,OACAC,IAAA,MACAC,aAAA,0LAEAC,SACAC,KAAA,oBACAC,YAAA,+BACAC,cAAA,+pDACAC,OAAA,wNACAC,cAAA,4CACAC,SAAA,6FACAC,WAAA,sZACAC,iBAAA,sBACAC,UAAA,mFACAC,eAAA,mGACAC,WAAA,uGACAC,WAAA,mOACAC,cAAA,0GACAC,SAAA,+EACAC,cAAA,qDACAC,gBAAA,gaACAC,aAAA,oNACAC,WAAA,wDACAC,aAAA,ifACAC,aAAA,6DACAC,aAAA,4GACAC,cAAA,mDACAC,UAAA,UACAC,cAAA,8CACAC,YAAA,kDACAC,cAAA,2EACAC,aAAA,kLACAC,YAAA,qEACAC,iBAAA,aACAC,WAAA,6RACAC,cAAA,uFACAC,WAAA,iFACAC,WAAA,0KACAC,UAAA;AACAC,UAAA,8IACAC,WAAA,yEACAC,eAAA,yDACAC,UAAA,mBACAC,SAAA,kKACAC,aAAA,uGACAC,UAAA,oBACAC,cAAA,iBACAC,cAAA,iCACAC,aAAA,mCACAC,WAAA,iDACAC,eAAA,kCACAC,WAAA,mBACAC,WAAA,wDACAC,YAAA,0EACAC,YAAA,0mBACAC,kBAAA,+BACAC,eAAA,2GACAC,gBAAA,6GACAC,YAAA,iIACAC,eAAA,qIACAC,cAAA,oBACAC,eAAA,yEACAC,cAAA,kEACAC,cAAA,mFACAC,cAAA,4XACAC,YAAA,yGACAC,eAAA,2UACAC,SAAA,+BACAC,kBAAA,2UACAC,cAAA,+HACAC,UAAA,4HACAC,UAAA,yBACAC,cAAA,8DACAC,aAAA,gHACAC,eAAA,oCACAC,eAAA,sCACAC,eAAA,wcACAC,cAAA,kRACAC,aAAA,gRACAC,UAAA,+BACAC,aAAA,kDACAC,eAAA,yDACAC,iBAAA,2CACAC,eAAA,2EACAC,cAAA,kBACAC,aAAA,kCACAC,iBAAA,gCACAC,WAAA,iBACAC,UAAA,qCACAC,YAAA,WACAC,UAAA,wOACAC,WAAA,wfACAC,UAAA,qBACAC,WAAA,0VACAC,gBAAA,2GACAC,WAAA,uHACAC,cAAA,cACAC,cAAA,iKACAC,cAAA,04BACAC,WAAA,wTACAC,cAAA,YACAC,gBAAA,iCACAC,YAAA,oGACAC,aAAA,sFACAC,WAAA,iDACAC,UAAA,kEACAC,YAAA,6QACAC,aAAA,uFACAC,aAAA,0RACAC,SAAA,gCACAC,aAAA,+BACAC,WAAA,iGACAC,aAAA,+IACAC,eAAA,mBACAC,iBAAA,aACAC,aAAA,kBACAC,cAAA,sBACAC,KAAA,oBACAC,cAAA,SACAC,cAAA,8PAEAC,KACAC,UAAA,UACAC,aAAA,sCACAC,OAAA,yDACAC,UAAA,wDACAC,gBAAA,iGACAC,eAAA,iHACAC,IAAA,oCACAC,QAAA,QACAC,QAAA,QACAC,OAAA,8BACAC,MAAA,cACAC,OAAA,aACAC,OAAA,QAEAC,KACAC,OAAA,qDACAC,OAAA,eACAC,MAAA,2EACAC,QAAA,UACAC,KAAA,6BACAC,GAAA,sBACAC,QAAA,uEACAC,KAAA,OACAC,SAAA,WACAC,OAAA,SACAC,OAAA,sDACAC,UAAA,oBACAC,YAAA,cACAC,aAAA,eACAC,aAAA,eACAC,OAAA,SACAC,QAAA,gBACAC,aAAA,QACAC,SAAA,aACAC,eAAA,sIACAC,SAAA,sCAEAC,OACAC,OAAA,eACAC,MAAA,cACAC,QAAA,gBACAC,SAAA,iBACA3J,KAAA,wBACA1B,OAAA,0BACAsL,KAAA,wBACAzJ,OAAA,eACA+H,QACA,eACA,cACA,cAEA2B,OACA,eAEA1B,OAAA,eACAK,SACA,gBACA,eAEAsB,OAAA,eACAxB,KAAA,aACAC,IACA,kBACA,iBACA,cACA,8BAEAa,SAAA,iBACAW,aAAA,qBACA3B,OACA,aACA,mBACA,iBAEA4B,aAAA,mBACAC,aAAA,gBACAC,aAAA,kBACAC,WAAA,mBACAC,eAAA,uBACAtB,YAAA,oBACAC,aAAA,qBACAsB,eAAA,uBACAC,KAAA,aACA1B,QACA,gBACA,gBAEAP,QAAA,gBACAkC,MAAA,cACAC,OAAA,kBACAlB,SAAA,iBACAmB,MAAA,cACAC,QAAA,gBACAC,OAAA,eACAC,OAAA,eACAlD,IAAA,2BACAmD,QAAA,gBACAtM,YACA,yBACA,4BACA,iBAEAuM,KAAA,aACAC,KAAA,aACAC,oBACA,yBACA,uBAEAC,gBAAA,sBACAC,aAAA,mBACAC,aAAA,mBACAC,SACA,kBACA,iBAEAtD,OACA,cACA,iBAGAuD,OACAC,IAAA,kRACAC,UAAA,8DACAC,YAAA,YACAC,GAAA,gBACAC,OAAA,wBACAC,QAAA,+DACAC,MAAA,YAKAzN,KAAA0N,sBACAC,YAAA,2TACAC,aAAA,0kDACAC,cAAA,8BAGA,IACA9oC,SADA46B,WAAA35C,OAAAnC,UAAAiqD,cA0qBA,OAvqBA9N,MAAA+N,eAAA,eACA/N,KAAAgO,gBAAA,gBACAhO,KAAAiO,gBAAA,gBAEAlpC,QAAA,WAAAnhB,OACAA,MAAAmhB,QAAA,SAAA2H,OAAA,MAAA,mBAAA1mB,OAAAnC,UAAAgB,SAAAd,KAAA2oB,QA4BA,WACA,GAAAjY,KAAAg/B,OAAA/mB,MAAAjlB,EAAAg4C,IAAAyO,OAAAjO,kBAAAD,KAAAC,iBACA,KAAAxrC,MAAAwrC,mBAAAmL,MACA,GAAAzL,WAAA57C,KAAAk8C,kBAAAmL,MAAA32C,KAAA,CAMA,IALAg/B,OAAAwM,kBAAAmL,MAAA32C,KACAsQ,QAAA0uB,UACAA,QAAAA,SAEAgM,IAAAhM,OAAAluC,OACAkC,EAAA,EAAAA,EAAAg4C,MAAAh4C,EACAilB,MAAA+mB,OAAAhsC,GACAymD,OAAAxhC,MAAAnmB,QAAA,SACA2nD,QAAA,IACAxhC,MAAAA,MAAAlgB,UAAA,EAAA0hD,QAAA,gBAAAxhC,MAAAlgB,UAAA0hD,OAAA,IAEAza,OAAAhsC,GAAA,GAAAtB,QAAAumB,MAAA,IAEAuzB,mBAAAmL,MAAA32C,KAAAg/B,OAGAiM,qBAAAO,kBAAA+I,KACAtJ,qBAAAO,kBAAAC,QACAR,qBAAAO,kBAAA2B,SACAlC,qBAAAO,kBAAA6J,KACApK,qBAAAO,kBAAAiN,OAGAjN,kBAAAkO,MACA7E,eAAArJ,kBAAA+I,IAAAM,eACAD,gBAAApJ,kBAAA+I,IAAAK,oBAWArJ,KAAAtxB,UAAA,SAAA0/B,MAAAnnD,WACA,IAAA,GAAAwN,OAAA25C,OACA,GAAAzO,WAAA57C,KAAAqqD,MAAA35C,MACA25C,MAAA35C,KAAA1N,KAAAE,WACA,MAAAwN,IAIA,OAAA,OAUAurC,KAAAqO,YAAA,SAAAD,MAAAnnD,WACA,GAAA4X,UACA,KAAA,GAAApK,OAAA25C,OACAzO,WAAA57C,KAAAqqD,MAAA35C,MACA25C,MAAA35C,KAAA1N,KAAAE,YACA4X,OAAAxY,KAAAoO,IAIA,OAAAoK,SAWAmhC,KAAAsO,cAAA,SAAA7kC,aAAAxiB,WACA,GAAAw1C,UAAAh1C,EAAAg4C,IAAA53C,MAAAujD,MAAApL,KAAAC,kBAAAmL,KACA,IAAAzL,WAAA57C,KAAAqnD,MAAA3hC,cAGA,IAFAgzB,SAAA2O,MAAA3hC,cACAg2B,IAAAhD,SAAAl3C,OACAkC,EAAA,EAAAA,EAAAg4C,MAAAh4C,EAEA,GADAI,MAAA40C,SAAAh1C,GAAAsf,KAAA9f,WACA,OAAAY,MACA,MAAAA,OAAA,EAIA,OAAA,OAYAm4C,KAAAuO,WAAA,SAAA9kC,aAAAxiB,WACA,GAAAyN,SAAAsrC,KAAAsO,cAAA7kC,aAAAxiB,UACA,OAAAyN,SAAAsrC,KAAAwO,iBAAA95C,SAAA+5C,KAUAzO,KAAAwO,iBAAA,SAAA95C,SACA,GAAAg6C,QAWA,OATAA,SAAAh6C,QAAAtH,MAAA,iBACA,IAAAshD,QAAAnpD,SACAmP,QAAAg6C,QAAA,IAEAA,QAAAnpD,OAAA,IACAmP,QAAAg6C,QAAA,GAAA,IACAA,QAAA19C,QACA0D,SAAAg6C,QAAAhqD,KAAA,KAEA+G,OAAAiJ,UAGAsrC,KAAA2O,iBAAA,SAAA1nD,WACA,MAAA+4C,MAAA0N,qBAAAC,YAAA5mD,KAAAE,YACA+4C,KAAA0N,qBAAAE,aAAA7mD,KAAAE,UAAAqD,OAAA,EAAA,KAGA01C,KAAA4O,iBAAA,SAAA3nD,WACA,MAAA+4C,MAAA0N,qBAAAG,cAAA9mD,KAAAE,YAGA+4C,KAAA6O,sBAAA,SAAAC,MAAA7nD,UAAA44C,eACA,GAAAiP,MAAAC,SAAAntC,UAAA,CAGA,GAAAotC,OAAAC,OAAAC,UAIA,QADAD,OAAAjP,KAAAtxB,UAAAsxB,KAAAC,kBAAA2B,QAAA36C,aAEA6nD,MAAAC,OAAAD,MAAAG,OAAAA,YACAH,MAAAE,MAAA,QAIAA,MAAAhP,KAAAtxB,UAAAsxB,KAAAC,kBAAAC,OAAAj5C,aAEA6nD,MAAAC,OAAAD,MAAAE,MAAAA,WACAF,MAAAG,OAAA,YAKAjP,KAAA2O,iBAAA1nD,YACAioD,WAAAtP,aAAAuP,aAAAtP,eACAqP,aAAAttC,WACAktC,MAAAC,OAAA/O,KAAAiO,gBACAa,MAAAG,OAAAH,MAAAE,MAAA,MACAE,YACAJ,MAAAC,OAAAD,MAAAE,MAAAhP,KAAA+N,eACAe,MAAAG,OAAA,OAEAH,MAAAC,OAAAD,MAAAG,OAAAjP,KAAAgO,gBACAc,MAAAE,MAAA,OAEAhP,KAAA4O,iBAAA3nD,YACA6nD,MAAAC,OAAAD,MAAAG,OAAAjP,KAAAgO,gBACAc,MAAAE,MAAA,MAGAF,MAAAC,OAAAD,MAAAG,OAAAH,MAAAE,MAAA,QAKAhP,KAAAoP,YAAA,SAAA7rD,GASA,GAAA8rD,WAAA,OAAA9rD,EAAAwrD,QAEA,OAEAxrD,GAAA+rD,GAAA,QAAA/rD,EAAAmR,QAAA,SAAA,KACAnR,EAAA+rD,GAAA,QAAA/rD,EAAAmR,QAAA,WAAA,KACAnR,EAAA+rD,GAAA,QAAA/rD,EAAAmR,QAAA,SAAA,KAMAnR,EAAAmR,QAAA,WAAA,KAAAnR,EAAAm2B,GAAA,WAGAn2B,EAAAmR,QAAA,qBAAA,GAIAnR,EAAAm2B,GAAA,eAAAn2B,EAAAmR,QAAA,eAAA,GAEAnR,EAAAsE,MAAA,qBAGAtE,EAAAmR,QAAA,UAAA,KAAAnR,EAAAsE,MAAA,kBAEAtE,EAAAsE,MAAA,iBAGAtE,EAAAm2B,GAAA,YAAAn2B,EAAAmR,QAAA,YAAA,IAGAnR,EAAAm2B,GAAA,WAAAn2B,EAAAm2B,GAAA,cAAAn2B,EAAAmR,QAAA,YAAA,GAGAnR,EAAAm2B,GAAA,YAAAn2B,EAAAmR,QAAA,YAAA,KAAAnR,EAAAm2B,GAAA,cAAAn2B,EAAAmR,QAAA,YAAA,KAGAnR,EAAAm2B,GAAA,UAAAn2B,EAAAmR,QAAA,cAAA,IAAAnR,EAAAm2B,GAAA,cAGAn2B,EAAAm2B,GAAA,YAGAn2B,EAAAm2B,GAAA,UAIAn2B,EAAAm2B,GAAA,WAAAn2B,EAAAmR,QAAA,SAAA,IAGAnR,EAAAm2B,GAAA,eAAAn2B,EAAAm2B,GAAA,YAAAn2B,EAAAmR,QAAA,YAAA,KAGAnR,EAAAsE,MAAA,gBACAtE,EAAAm2B,GAAA,WAAAn2B,EAAAmR,QAAA,WAAA,GAGAnR,EAAAm2B,GAAA,cAAAn2B,EAAAm2B,GAAA,eAGAn2B,EAAAmR,QAAA,WAAA,KAAA26C,WAGA9rD,EAAAmR,QAAA,WAAA,IAAA26C,WAGA9rD,EAAAmR,QAAA,YAAA,IAAA26C,WAGA9rD,EAAAmR,QAAA,SAAA,IAAA26C,WAIA9rD,EAAAmR,QAAA,UAAA,KAAA26C,UAGA,IAIA9rD,EAAA+rD,GAAA,QAAA/rD,EAAAmR,QAAA,QAAA,KACAnR,EAAA+rD,GAAA,QAAA/rD,EAAAmR,QAAA,UAAA,KACAnR,EAAA+rD,GAAA,QAAA/rD,EAAAmR,QAAA,QAAA,KAGAnR,EAAAm2B,GAAA,eAAAn2B,EAAAmR,QAAA,eAAA,GAAAnR,EAAAmR,QAAA,cAAA,GAGAnR,EAAAmR,QAAA,eAAA,GAAAnR,EAAAmR,QAAA,eAAA,MACAnR,EAAAmR,QAAA,YAAA,KAAAnR,EAAAm2B,GAAA,SAGAn2B,EAAAsE,MAAA,4CAGAtE,EAAAmR,QAAA,eAAA,IAAAnR,EAAAm2B,GAAA,aAEA,KAKAn2B,EAAAmR,QAAA,cAAA,GAEAnR,EAAAsE,MAAA,kCAAAtE,EAAAmR,QAAA,mBAAA,IAJA,MAeAsrC,KAAAuP,SAAA,SAAAzP,IACA,MAAAE,MAAAtxB,UAAAsxB,KAAAC,kBAAAkO,KAAArO,KACAE,KAAAtxB,UAAAsxB,KAAAC,kBAAA+I,IAAAlJ,KAGAE,KAAAwP,qBAAA,WACA,MAAA5lD,QAAA6lD,OAAAx1B,MAAArwB,OAAA6lD,OAAAv1B,OACAtwB,OAAA6lD,OAAAx1B,MACArwB,OAAA6lD,OAAAv1B,QAqCA0lB,aAAA/7C,WACAgC,YAAA+5C,aAwBAmP,OAAA,WAEA,MADA/O,MAAA6O,sBAAAnrD,KAAAq8C,OAAAr8C,KAAAo8C,GAAAp8C,KAAAm8C,eACAn8C,KAAAq8C,OAAAgP,QA4BAC,MAAA,WAEA,MADAhP,MAAA6O,sBAAAnrD,KAAAq8C,OAAAr8C,KAAAo8C,GAAAp8C,KAAAm8C,eACAn8C,KAAAq8C,OAAAiP,OA+CAC,OAAA,WAEA,MADAjP,MAAA6O,sBAAAnrD,KAAAq8C,OAAAr8C,KAAAo8C,GAAAp8C,KAAAm8C,eACAn8C,KAAAq8C,OAAAkP,QAmBAhoD,UAAA,WAIA,MAHAvD,MAAAq8C,OAAA94C,YAAA2a,YACAle,KAAAq8C,OAAA94C,UAAA+4C,KAAAtxB,UAAAsxB,KAAAC,kBAAA6J,IAAApmD,KAAAo8C,KAEAp8C,KAAAq8C,OAAA94C,WAmBAyoD,WAAA,WAIA,MAHAhsD,MAAAq8C,OAAA2P,aAAA9tC,YACAle,KAAAq8C,OAAA2P,WAAA1P,KAAAqO,YAAArO,KAAAC,kBAAA6J,IAAApmD,KAAAo8C,KAEAp8C,KAAAq8C,OAAA2P,YAaAJ,GAAA,WAIA,MAHA5rD,MAAAq8C,OAAAuP,KAAA1tC,YACAle,KAAAq8C,OAAAuP,GAAAtP,KAAAuP,SAAA7rD,KAAAo8C,KAEAp8C,KAAAq8C,OAAAuP,IAqBA56C,QAAA,SAAAD,KACA,MAAAurC,MAAAuO,WAAA95C,IAAA/Q,KAAAo8C,KAoBA6P,WAAA,SAAAl7C,KACA,MAAAurC,MAAAsO,cAAA75C,IAAA/Q,KAAAo8C,KAiBApmB,GAAA,SAAAjlB,KACA,MAAA6qC,YAAA57C,KAAAgsD,aAAAj7C,MACA4qC,QAAA5qC,IAAA/Q,KAAA4rD,OACAjQ,QAAA5qC,IAAA/Q,KAAAsrD,UACA3P,QAAA5qC,IAAA/Q,KAAAurD,WACA3P,WAAAU,KAAAqO,YAAArO,KAAAC,kBAAAiN,MAAAxpD,KAAAo8C,IAAArrC,MAWA5M,MAAA,SAAAkN,SAIA,MAHAA,mBAAA5O,UACA4O,QAAA,GAAA5O,QAAA4O,QAAA,MAEAA,QAAAhO,KAAArD,KAAAo8C,KAaAqP,aAAA,SAAAtP,eACA,MAAAD,cAAAuP,aAAAtP,eAAAn8C,KAAAm8C,gBASAuP,YAAA,WAIA,MAHA1rD,MAAAq8C,OAAA6P,QAAAhuC,YACAle,KAAAq8C,OAAA6P,MAAA5P,KAAAoP,YAAA1rD,OAEAA,KAAAq8C,OAAA6P,QAKA,mBAAAhmD,SAAAA,OAAA6lD,OACA7P,aAAAuP,aAAA,SAAAtP,eACA,MAAAA,eAAA,EAAAj+B,UAAAo+B,KAAAwP,wBAAA3P,eAGAD,aAAAuP,aAAA,aAIAvP,aAAAiQ,MAAA7P,KAEAJ,aAAAlrC,QAAA,mBAEAkrC,gBAEA,SAAAh+B,WACA,GAAA,mBAAAjb,SAAAA,OAAAE,QACA,MAAA,UAAAuX,SAAAzX,OAAAE,QAAAuX,UACA,IAAA,kBAAAC,SAAAA,OAAAC,IACA,MAAAD,OACA,IAAA,mBAAAzU,QACA,MAAA,UAAAwU,SAAAxU,OAAAg2C,aAAAxhC,UAGA,MAAA,IAAA/O,OAAA,4BC19BA,SAAA/L,EAAAC,EAAAC,GAAA,QAAAS,GAAAX,EAAAC,GAAA,aAAAD,KAAAC,EAAA,QAAAwB,KAAA,GAAAzB,GAAAC,EAAAC,EAAAuB,EAAAP,EAAAiD,EAAA9C,CAAA,KAAA,GAAAoE,KAAA4H,GAAA,GAAAA,EAAAm9C,eAAA/kD,GAAA,CAAA,GAAAzF,KAAAC,EAAAoN,EAAA5H,GAAAxF,EAAAkN,OAAAnN,EAAA+C,KAAA9C,EAAAkN,KAAAvG,eAAA3G,EAAA4b,SAAA5b,EAAA4b,QAAAnK,SAAAzR,EAAA4b,QAAAnK,QAAAzP,QAAA,IAAA/B,EAAA,EAAAA,EAAAD,EAAA4b,QAAAnK,QAAAzP,OAAA/B,IAAAF,EAAA+C,KAAA9C,EAAA4b,QAAAnK,QAAAxR,GAAA0G,cAAA,KAAAnF,EAAAd,EAAAV,EAAAuK,GAAA,YAAAvK,EAAAuK,KAAAvK,EAAAuK,GAAAtJ,EAAA,EAAAA,EAAAlB,EAAAiC,OAAAf,IAAAiD,EAAAnE,EAAAkB,GAAAG,EAAA8C,EAAA2F,MAAA,KAAA,IAAAzI,EAAAY,OAAAuqD,UAAAnrD,EAAA,IAAAI,IAAA+qD,UAAAnrD,EAAA,KAAAmrD,UAAAnrD,EAAA,aAAA+G,WAAAokD,UAAAnrD,EAAA,IAAA,GAAA+G,SAAAokD,UAAAnrD,EAAA,MAAAmrD,UAAAnrD,EAAA,IAAAA,EAAA,IAAAI,GAAAuL,EAAAjK,MAAAtB,EAAA,GAAA,OAAAJ,EAAAD,KAAA,OAAA,QAAAF,GAAAlB,GAAA,GAAAC,GAAA2L,EAAAwhC,UAAAltC,EAAAssD,UAAAC,QAAAC,aAAA,EAAA,IAAAzgD,IAAAhM,EAAAA,EAAA0sD,SAAAH,UAAAC,QAAAG,cAAA,CAAA,GAAAjsD,GAAA,GAAAkC,QAAA,UAAA3C,EAAA,eAAAD,GAAAA,EAAA2C,QAAAjC,EAAA,KAAAT,EAAA,QAAAssD,UAAAC,QAAAI,gBAAA5sD,GAAA,IAAAC,EAAAF,EAAAoB,KAAA,IAAAlB,GAAA+L,EAAAL,EAAAwhC,UAAAuf,QAAA1sD,EAAA2L,EAAAwhC,UAAAntC,GAAA,QAAAkE,KAAA,MAAA,kBAAAlE,GAAAoE,cAAApE,EAAAoE,cAAArC,UAAA,IAAAiK,EAAAhM,EAAA6sD,gBAAArsD,KAAAR,EAAA,6BAAA+B,UAAA,IAAA/B,EAAAoE,cAAAxD,MAAAZ,EAAA+B,WAAA,QAAAX,GAAArB,GAAA,MAAAA,GAAA4C,QAAA,mBAAA,SAAA5C,EAAAC,EAAAC,GAAA,MAAAD,GAAAC,EAAAyG,gBAAA/D,QAAA,KAAA,IAAA,QAAA6C,KAAA,GAAAzF,GAAAC,EAAAkP,IAAA,OAAAnP,KAAAA,EAAAmE,EAAA8H,EAAA,MAAA,QAAAjM,EAAA+sD,MAAA,GAAA/sD,EAAA,QAAA2H,GAAA3H,EAAAE,EAAAS,EAAAc,GAAA,GAAAP,GAAAG,EAAAsG,EAAArD,EAAAoB,EAAA,YAAAqC,EAAA5D,EAAA,OAAA0D,EAAApC,GAAA,IAAAwwB,SAAAt1B,EAAA,IAAA,KAAAA,KAAAgH,EAAAxD,EAAA,OAAAwD,EAAAyrB,GAAA3xB,EAAAA,EAAAd,GAAA+E,GAAA/E,EAAA,GAAAoH,EAAA1C,YAAAsC,EAAA,OAAAzG,GAAAiD,EAAA,SAAAjD,EAAAM,KAAA,WAAAN,EAAAkyB,GAAA,IAAA1tB,GAAAmC,EAAAklD,KAAAllD,EAAAE,GAAA1C,YAAAnE,GAAA2G,EAAAxC,YAAA0C,GAAA7G,EAAA8rD,WAAA9rD,EAAA8rD,WAAAhZ,QAAAh0C,EAAAkB,EAAAmE,YAAApF,EAAAgtD,eAAAjtD,IAAA+H,EAAAqrB,GAAA1tB,EAAAmC,EAAAklD,OAAAllD,EAAAqI,MAAA2S,WAAA,GAAAhb,EAAAqI,MAAAoyB,SAAA,SAAAh+B,EAAAsH,EAAAsE,MAAAoyB,SAAA12B,EAAAsE,MAAAoyB,SAAA,SAAA12B,EAAAvG,YAAAwC,IAAAxG,EAAAnB,EAAA6H,EAAA/H,GAAA6H,EAAAklD,MAAAllD,EAAAoB,WAAA2F,YAAA/G,GAAA+D,EAAAsE,MAAAoyB,SAAAh+B,EAAAsH,EAAAmT,cAAAhX,EAAAkB,WAAA2F,YAAA7G,KAAA1G,EAAA,QAAAiD,GAAAtE,EAAAC,GAAA,UAAA,GAAAD,GAAAiD,QAAAhD,GAAA,QAAAyF,GAAA1F,EAAAC,GAAA,MAAA,YAAA,MAAAD,GAAAa,MAAAZ,EAAA+B,YAAA,QAAA+F,GAAA/H,EAAAC,EAAAC,GAAA,GAAAuB,EAAA,KAAA,GAAAP,KAAAlB,GAAA,GAAAA,EAAAkB,IAAAjB,GAAA,MAAAC,MAAA,EAAAF,EAAAkB,IAAAO,EAAAxB,EAAAD,EAAAkB,IAAAP,EAAAc,EAAA,YAAAiE,EAAAjE,EAAAvB,GAAAD,GAAAwB,EAAA,QAAA,EAAA,QAAAoG,GAAA7H,GAAA,MAAAA,GAAA4C,QAAA,WAAA,SAAA5C,EAAAC,GAAA,MAAA,IAAAA,EAAA2G,gBAAAhE,QAAA,OAAA,QAAA,QAAAqK,GAAAhN,EAAAC,EAAAS,GAAA,GAAAc,EAAA,IAAA,oBAAAzB,GAAA,CAAAyB,EAAA6hB,iBAAA7iB,KAAAT,EAAAC,EAAAC,EAAA,IAAAgB,GAAAlB,EAAAuiB,OAAA,IAAA,OAAA9gB,EAAAd,IAAAc,EAAAA,EAAAyrD,iBAAAvsD,QAAA,IAAAO,EAAA,CAAA,GAAAiD,GAAAjD,EAAAsoB,MAAA,QAAA,KAAAtoB,GAAAiD,GAAA1D,KAAAS,EAAA,4FAAAO,IAAAvB,GAAAD,EAAAktD,cAAAltD,EAAAktD,aAAAxsD,EAAA,OAAAc,GAAA,QAAAqG,GAAA7H,EAAAU,GAAA,GAAAc,GAAAxB,EAAAgC,MAAA,IAAA,OAAAjC,IAAA,YAAAA,GAAAotD,IAAA,CAAA,KAAA3rD,KAAA,GAAAzB,EAAAotD,IAAAC,SAAAxlD,EAAA5H,EAAAwB,IAAAd,GAAA,OAAA,CAAA,QAAA,EAAA,GAAA,mBAAAX,GAAA,CAAA,IAAA,GAAAkB,MAAAO,KAAAP,EAAA6B,KAAA,IAAA8E,EAAA5H,EAAAwB,IAAA,IAAAd,EAAA,IAAA,OAAAO,GAAAA,EAAAE,KAAA,QAAAuG,EAAA,cAAAzG,EAAA,2CAAA,SAAAlB,GAAA,MAAA,YAAAiN,EAAAjN,EAAA,KAAA,cAAA,MAAAE,GAAA,QAAA8H,GAAAhI,EAAAC,EAAAwB,EAAAP,GAAA,QAAAuE,KAAAC,UAAA6G,GAAA2D,YAAA3D,GAAA+gD,SAAA,GAAApsD,GAAAP,EAAAO,EAAA,cAAAA,GAAAP,EAAAc,EAAA,aAAA,CAAA,GAAAkG,GAAAG,EAAA9H,EAAAyB,EAAA,KAAAd,EAAAgH,EAAA,aAAA,MAAAA,GAAA,IAAA,GAAAjC,GAAAqC,EAAAF,EAAAoF,EAAAjF,EAAAuD,GAAA,YAAA,QAAA,SAAAgB,EAAA2D,OAAA3E,EAAAtJ,QAAAyD,GAAA,EAAA6G,EAAA+gD,QAAAnpD,EAAAoH,EAAAmC,SAAAnB,EAAA2D,MAAA3D,EAAA+gD,QAAAp9C,KAAA,KAAArI,EAAA7H,EAAAiC,OAAA8F,EAAA,EAAAF,EAAAE,EAAAA,IAAA,GAAAkF,EAAAjN,EAAA+H,GAAAC,EAAAuE,EAAA2D,MAAAjD,GAAA3I,EAAA2I,EAAA,OAAAA,EAAA5L,EAAA4L,IAAAV,EAAA2D,MAAAjD,KAAA/M,EAAA,CAAA,GAAAgB,GAAAP,EAAAc,EAAA,aAAA,MAAAgE,KAAA,OAAAxF,GAAAgN,CAAA,KAAAV,EAAA2D,MAAAjD,GAAAxL,EAAA,MAAAmG,IAAA,GAAA2E,EAAA2D,MAAAjD,IAAAjF,EAAA,MAAAvC,KAAA,OAAAxF,GAAAgN,EAAA,MAAAxH,MAAA,EAAA,QAAA8F,GAAAvL,EAAAC,EAAAC,EAAAuB,EAAAP,GAAA,GAAAiD,GAAAnE,EAAAsP,OAAA,GAAA3I,cAAA3G,EAAAQ,MAAA,GAAAa,GAAArB,EAAA,IAAAwM,EAAApL,KAAA+C,EAAA,KAAAA,GAAA2F,MAAA,IAAA,OAAAnJ,GAAAV,EAAA,WAAAU,EAAAV,EAAA,aAAA+H,EAAA3G,EAAApB,EAAAwB,EAAAP,IAAAG,GAAArB,EAAA,IAAAuN,EAAAnM,KAAA+C,EAAA,KAAAA,GAAA2F,MAAA,KAAA/B,EAAA1G,EAAApB,EAAAC,IAAA,QAAA0H,GAAA5H,EAAAC,EAAAU,GAAA,MAAA4K,GAAAvL,EAAAE,EAAAA,EAAAD,EAAAU,GAAA,GAAAqM,MAAAK,KAAAO,GAAA2/C,SAAA,QAAAd,SAAAC,YAAA,GAAAG,eAAA,EAAAD,eAAA,EAAAY,aAAA,GAAAC,MAAAtrD,GAAA,SAAAnC,EAAAC,GAAA,GAAAC,GAAAE,IAAAwM,YAAA,WAAA3M,EAAAC,EAAAF,KAAA,IAAA0tD,QAAA,SAAA1tD,EAAAC,EAAAC,GAAAmN,EAAAtK,MAAAoK,KAAAnN,EAAAwK,GAAAvK,EAAA4b,QAAA3b,KAAAytD,aAAA,SAAA3tD,GAAAqN,EAAAtK,MAAAoK,KAAA,KAAA3C,GAAAxK,MAAAwsD,UAAA,YAAAA,WAAAjsD,UAAAqN,EAAA4+C,UAAA,GAAAA,UAAA,IAAA9gD,GAAA,OAAA1L,IAAA,YAAAA,GAAAotD,IAAAhgD,EAAA,eAAApN,EAAAwsD,WAAAkB,QAAA,WAAAhiD,GAAA0B,GAAAo/C,UAAAkB,QAAA,SAAA,WAAA,GAAAztD,GAAAD,EAAAoE,QAAA,MAAA,oBAAAnE,IAAA,OAAA,CAAA,KAAA,MAAAA,GAAA2hB,iBAAA,YAAA,EAAA,MAAA1hB,GAAA,OAAA,KAAAssD,UAAAkB,QAAA,UAAA,WAAA,GAAAztD,GAAAyD,UAAAC,SAAA,aAAA1D,EAAAgD,QAAA,oBAAAhD,EAAAgD,QAAA,qBAAAhD,EAAAgD,QAAA,uBAAAhD,EAAAgD,QAAA,gBAAAhD,EAAAgD,QAAA,kBAAA,UAAA2qD,SAAAC,YAAA7tD,EAAA8tD,SAAA,aAAA9tD,GAAA8tD,WAAAtB,UAAAkB,QAAA,QAAAztD,EAAA6sD,mBAAA7sD,EAAA6sD,gBAAA,6BAAA,OAAAiB,cAAA,IAAAniD,GAAA3L,EAAA6I,eAAA0jD,WAAAkB,QAAA,YAAA,aAAA9hD,GAAA,IAAAK,GAAA,QAAAL,EAAA5C,SAAApC,aAAA4lD,WAAAkB,QAAA,QAAA,WAAA,GAAA1tD,GAAAmE,EAAA,SAAAlE,GAAA,CAAA,KAAAA,IAAAD,EAAAguD,YAAA/tD,IAAAA,EAAA,GAAAmI,SAAAnI,GAAAA,EAAAguD,IAAAjuD,EAAAguD,YAAA,8BAAAprD,QAAA,OAAA,IAAA3C,EAAAiuD,IAAAluD,EAAAguD,YAAA,4BAAAprD,QAAA,OAAA,IAAA3C,EAAAkuD,KAAAnuD,EAAAguD,YAAA,6BAAAhuD,EAAAguD,YAAA,6BAAAprD,QAAA,OAAA,IAAA3C,EAAAmuD,IAAApuD,EAAAguD,YAAA,yBAAAprD,QAAA,OAAA,IAAA3C,EAAAouD,KAAAruD,EAAAguD,YAAA,iBAAAhuD,EAAAguD,YAAA,eAAAprD,QAAA,OAAA,KAAA,MAAA1C,IAAA,MAAAD,KAAAusD,UAAAkB,QAAA,SAAA,WAAA,GAAA1tD,GAAAmE,EAAA,SAAA,UAAAnE,EAAAsuD,aAAAtuD,EAAAsuD,WAAA,SAAA9B,UAAAkB,QAAA,OAAA,WAAA,GAAA1tD,GAAAmE,EAAA,KAAA+L,KAAA,OAAAlQ,GAAAg0C,QAAA,yCAAA,GAAAh0C,EAAAuuD,iBAAAtrD,QAAA,aAAAupD,UAAAkB,QAAA,YAAA,WAAA,GAAA1tD,GAAAmE,EAAA,MAAA,OAAAnE,GAAA4F,UAAA,SAAA,+BAAA,mBAAA4oD,UAAAxuD,EAAAsK,YAAAtK,EAAAsK,WAAA2xB,gBAAAuwB,UAAAkB,QAAA,QAAA,WAAA,GAAA1tD,GAAAmE,EAAA,SAAAlE,GAAA,CAAA,KAAAA,IAAAD,EAAAguD,YAAA/tD,IAAAA,EAAA,GAAAmI,SAAAnI,GAAAA,EAAAguD,IAAAjuD,EAAAguD,YAAA,8BAAAprD,QAAA,OAAA,IAAA3C,EAAAwuD,KAAAzuD,EAAAguD,YAAA,mCAAAprD,QAAA,OAAA,IAAA3C,EAAAyuD,KAAA1uD,EAAAguD,YAAA,oCAAAprD,QAAA,OAAA,IAAA3C,EAAA0uD,IAAA3uD,EAAAguD,YAAA,4BAAAprD,QAAA,OAAA,IAAA3C,EAAA2uD,IAAA5uD,EAAAguD,YAAA,+CAAAprD,QAAA,OAAA,KAAA,MAAA1C,IAAA,MAAAD,IAAA,IAAA4uD,GAAAjhD,EAAA6+C,QAAAe,YAAA,4BAAA1jD,MAAA,MAAA,GAAA,GAAA8D,GAAAkhD,UAAAD,EAAArC,UAAAkB,QAAA,UAAA,WAAA,GAAA1tD,GAAAmE,EAAA,KAAA+L,KAAA,OAAAlQ,GAAAg0C,QAAA6a,EAAAztD,KAAA,gBAAA,SAAAqC,KAAAzD,EAAA+uD,UAAA,IAAAliD,GAAA,WAAA,QAAA7M,GAAAA,EAAAC,GAAA,GAAAwB,EAAA,SAAAzB,IAAAC,GAAA,gBAAAA,KAAAA,EAAAkE,EAAAlE,GAAA,QAAAD,EAAA,KAAAA,EAAAyB,EAAAzB,IAAAC,IAAAwB,GAAAd,IAAAV,EAAAiF,eAAAjF,EAAAkE,EAAA,QAAAlE,EAAAiF,aAAAlF,EAAA,IAAAyB,EAAA,kBAAAxB,GAAAD,GAAAC,EAAAD,KAAAE,IAAAD,EAAAD,GAAAE,GAAAD,EAAAsF,gBAAAvF,IAAAyB,GAAA,GAAAd,KAAA,UAAAV,GAAA6I,gBAAA,OAAA9I,KAAA4N,GAAAohD,SAAAniD,CAAA,IAAArB,MAAAjK,QAAAirD,WAAAkB,QAAA,eAAA,WAAA,QAAAztD,EAAA6sD,iBAAA,cAAArpD,KAAA+H,EAAA/K,KAAAR,EAAA6sD,gBAAA,6BAAA,eAAA,IAAAt/C,GAAAI,EAAAqhD,WAAAtnD,EAAA8D,EAAA,WAAA,GAAAzL,GAAA0D,UAAAC,UAAA1D,EAAAD,EAAAuE,MAAA,qBAAArE,EAAAF,EAAAuE,MAAA,oBAAAvE,EAAAuE,MAAA,yBAAAomC,WAAA9nC,OAAAqsD,KAAA,CAAA,OAAAjvD,IAAAC,IAAAuL,GAAA+gD,UAAAkB,QAAA,YAAA,GAAAlgD,EAAA,sDAAA,SAAAxN,EAAAE,GAAA,GAAAS,GAAAV,EAAAkvD,eAAA,cAAA1tD,EAAAd,EAAAyuD,OAAAzuD,EAAAqsD,WAAA9rD,EAAAO,EAAAA,EAAA4tD,UAAA5tD,EAAA4tD,SAAA,GAAA5tD,EAAA4tD,SAAA,GAAArb,QAAAvyC,EAAAuyC,SAAA,GAAA,GAAA7vC,EAAA,OAAAV,KAAAvC,IAAA,IAAAA,EAAA+B,QAAA/C,EAAA4J,MAAA,KAAA,GAAA0iD,WAAAkB,QAAA,WAAAvpD,KAAAqJ,EAAA,sFAAA,SAAAxN,GAAAwsD,UAAAkB,QAAA,mBAAA1tD,EAAA+e,cAAA,KAAAytC,UAAAkB,QAAA,aAAA,WAAA,MAAAlgD,GAAA,yGAAA,SAAAxN,GAAA,GAAAC,GAAAkE,EAAA,QAAA,OAAAlE,GAAAqvD,UAAA,EAAAtvD,EAAAqF,YAAApF,GAAAA,EAAAmnC,YAAA,OAAAolB,UAAAkB,QAAA,WAAA,WAAA,MAAAlgD,GAAA,uGAAA,SAAAxN,GAAA,GAAAC,GAAAkE,EAAA,QAAA,OAAAnE,GAAAqF,YAAApF,GAAAA,EAAAmnC,YAAA,OAAAolB,UAAAkB,QAAA,cAAA,WAAA,GAAAxtD,EAAA,IAAA,gBAAAF,IAAAA,EAAAuvD,eAAAtvD,YAAAsvD,eAAArvD,GAAA,MAAA,CAAA,GAAAS,IAAA,WAAAkuD,EAAAztD,KAAA,oBAAA,SAAA,IAAA,2CAAAA,KAAA,GAAAoM,GAAA7M,EAAA,SAAAX,GAAAE,EAAA,IAAAF,EAAAwvD,YAAA,MAAAtvD,IAAA,IAAA6M,GAAA,kBAAAP,EAAAoB,EAAA6+C,QAAAe,YAAAzgD,EAAAjD,MAAA,OAAA8D,GAAA6hD,eAAAjjD,CAAA,IAAA4C,GAAA,SAAAnP,GAAA,GAAAU,GAAAc,EAAAotD,EAAA5sD,OAAAf,EAAAlB,EAAA0vD,OAAA,IAAA,mBAAAxuD,GAAA,MAAAhB,EAAA,KAAAD,EAAA,OAAA,CAAA,IAAAA,EAAAA,EAAA2C,QAAA,KAAA,IAAAjC,EAAAV,EAAA2C,QAAA,KAAA,KAAA+D,cAAA,QAAAhG,IAAAO,GAAA,MAAA,IAAAjB,CAAA,KAAA,GAAAkE,GAAA,EAAA1C,EAAA0C,EAAAA,IAAA,CAAA,GAAA9C,GAAAwtD,EAAA1qD,GAAAsB,EAAApE,EAAAsF,cAAA,IAAAhG,CAAA,IAAA8E,IAAAvE,GAAA,MAAA,KAAAG,EAAAuF,cAAA,IAAA3G;CAAA,OAAA,EAAA2N,GAAA+hD,OAAAvgD,CAAA,IAAA7B,GAAAK,EAAA6+C,QAAAe,YAAAzgD,EAAAnG,cAAAkD,MAAA,OAAA8D,GAAAgiD,aAAAriD,CAAA,IAAA+C,IAAAsL,KAAAzX,EAAA,aAAAqoD,WAAAiB,GAAA1qD,KAAA,iBAAAuN,GAAAsL,MAAA,IAAArP,IAAA2D,MAAAI,EAAAsL,KAAA1L,MAAAs8C,WAAAiB,GAAAvrD,QAAA,iBAAAqK,GAAA2D,QAAAtC,EAAAiiD,aAAAtkD,EAAAqC,EAAAiiD,aAAAjoD,EAAA4kD,UAAAkB,QAAA,gBAAA9lD,EAAA,gBAAA,KAAA,IAAA4kD,UAAAkB,QAAA,aAAA9lD,EAAA,eAAA4kD,UAAAkB,QAAA,iBAAA9lD,EAAA,iBAAA,QAAA,IAAA4kD,UAAAkB,QAAA,eAAA9lD,EAAA,eAAA,OAAA,IAAA4kD,UAAAkB,QAAA,UAAA9lD,EAAA,YAAA,OAAA,IAAA4kD,UAAAkB,QAAA,iBAAA9lD,EAAA,YAAA,OAAA,IAAA4kD,UAAAkB,QAAA,gBAAA,WAAA,WAAAhqD,UAAAC,UAAAV,QAAA,eAAA2E,EAAA,YAAA,YAAA,KAAA4kD,UAAAkB,QAAA,kBAAA,WAAA,QAAA9lD,EAAA,cAAA,OAAA,KAAA4kD,UAAAkB,QAAA,iBAAA9lD,EAAA,aAAA,OAAA,GAAA,IAAAmJ,GAAAnD,EAAAkiD,SAAA,SAAA9vD,EAAAC,EAAAC,GAAA,MAAA,KAAAF,EAAAiD,QAAA,KAAAmM,EAAApP,QAAAA,EAAAiD,QAAA,OAAAjD,EAAAqB,EAAArB,IAAAC,EAAAsL,EAAAvL,EAAAC,EAAAC,GAAAqL,EAAAvL,EAAA,QAAAwsD,WAAAkB,QAAA,aAAA,WAAA,QAAA7gD,EAAAkE,EAAA,sBAAA/Q,GAAA,GAAAA,KAAA+vD,WAAAC,4BAAAD,WAAAE,oCAAAzD,UAAAkB,QAAA,cAAA38C,EAAA,cAAAW,SAAA,gBAAAjQ,IAAAP,EAAA8L,SAAAY,GAAA8/C,cAAA9/C,GAAA+/C,YAAA,KAAA,GAAAhgD,GAAA,EAAAA,EAAA6+C,UAAAiB,GAAAxrD,OAAA0L,IAAA6+C,UAAAiB,GAAA9/C,IAAA3N,GAAAwsD,UAAAA,WAAAlmD,OAAAlC,UCKA,SAAAkC,OAAAlC,SAAAka,WACA,YA0NA,SAAA4xC,SAAAr0C,SAaA,GAZA/S,gBAAA1E,SAAA0E,gBACAqG,KAAA/K,SAAA+K,KAEAghD,kBAEAC,UAAAhwD,KAEAyb,QAAAA,YAEAw0C,WAAAx0C,QAAA+N,cAGA/N,QAAA4iB,OACA,IAAA,GAAAz+B,KAAA6b,SAAA4iB,OACA6xB,QAAAtwD,GAAA6b,QAAA4iB,OAAAz+B,EAIAuwD,eAAA10C,QAAA20C,cAAA,MAEAC,YAEAC,aAAA70C,QAAA60C,aAGAzsD,OAAA4X,QAAA5X,OAGA0sD,SAAA90C,QAAA80C,UAIAC,aAAA/0C,QAAAg1C,eAAA,EAEAD,eACAE,OAAAj1C,QAAAghB,OAAA,GAGAk0B,oBAAAl1C,QAAAm1C,oBAAAC,4BAEAC,wBAAAr1C,QAAAs1C,mBAAA,EACAC,yBAAAv1C,QAAAw1C,yBAAAC,kCAGAC,kBACAC,UAAApB,UAAAqB,gBAIAC,WAAA71C,QAAA81C,aAAA,WACA,MAAA,uCAAAluD,KAAAC,UAAAC,WAAAD,UAAAkuD,QAAAtrD,OAAAgI,WAGAojD,WACAG,aAAAztD,SAAA+qD,eAAAtzC,QAAAi2C,aAAAC,qBAGAF,cACAG,sBAGAC,cACAC,aAAAppD,iBAAAqpD,cAAAC,uBAAAC,oBAEAH,aAAAppD,iBAAAqpD,cAAAG,wBAAAD,mBAIAjC,UAAAt5B,UAEAy7B,UAAAjsD,OAAA,2BAAA,WACA,GAAAqwB,OAAA7tB,gBAAAs+B,YACAxQ,OAAA9tB,gBAAA6V,YAGAiY,UAAA47B,qBAAA77B,QAAA87B,qBACAD,oBAAA57B,OACA67B,mBAAA97B,MAEA+7B,gBAAA,IAIA,IAAAC,kBAAAC,aAQA,OALA,SAAAC,YACAC,UACAC,WAAAJ,iBAAAE,aAGAzC,UAjTA,GAiBAtnD,iBACAqG,KAlBA6jD,SACA9pC,IAAA,WACA,MAAAknC,YAGAjwD,KAAA,SAAA0b,SACA,MAAAu0C,YAAA,GAAAF,SAAAr0C,UAEAo3C,QAAA,UAIAC,QAAAxwD,OAAAnC,UAAAiqD,eACA56C,KAAAtJ,OAAAsJ,KACAujD,SAAA7sD,OAAAgd,iBAMA8vC,iBAAA,aACAC,gBAAA,YACAC,kBAAA,cACAC,eAAA,WAEAC,iBAAA,aACAC,wBAAAD,iBAAA,UACAE,yBAAAF,iBAAA,WACAG,uBAAAH,iBAAA,SAEArB,cAAA,UACAE,iBAAA,MAAAF,cACAG,sBAAAH,cAAA,WACAC,qBAAAD,cAAA,UAEAyB,eAAA,SACAC,iBAAA,IACA5C,4BAAA,KAEAc,oBAAA,eAEAT,kCAAA,IAEAwC,aAAA,QACAC,WAAA,MACAC,cAAA,SACAC,cAAA,SAGAC,2BAAA,mBAEAC,kBAAA,sCAEAC,OAAA,aAGAC,oBAAA,yGAEAC,YAAA,6CAGAC,aAAA,0BAEAC,YAAA,gBACAC,cAAA,SAAAhtD,IAAAitD,QACA,MAAAA,QAAA/tD,eAIAguD,eAAA,uBAGAC,oBAAA,UAGAC,mBAAA,2CAGAC,WAAA,qBAGAC,aAAA,GACAC,mBAAA,GAGA7E,gBAAA,WAGA,GAAA8E,YAAA,gDAGA,IAAA9B,SAAA,CAIA,GAAAjjD,OAAAijD,SAAAhkD,KAAA,KAEA,KAAA,GAAAmB,KAAAJ,OAIA,GAFA6kD,aAAAzkD,EAAA/L,MAAA0wD,cAAA3kD,GAAAA,GAAAJ,MAAAI,GAAA/L,MAAA0wD,YAGA,KAKA,KAAAF,aAGA,YAFAA,aAAAC,mBAAA,GAKAD,cAAAA,aAAA,GAGA,MAAAA,aAAAv0D,MAAA,EAAA,IACAw0D,mBAAAD,aAGAA,cACAG,WAAA,SACAC,QAAA,MACAC,OAAA,KACAC,MAAA,KACAN,eAEAC,mBAAA,IAAAD,aAAAnuD,cAAA,MAIAgsD,YAAA,WACA,GAAAD,kBAAArsD,OAAAwW,uBAAAxW,OAAAyuD,aAAAnuD,cAAA,yBAEA0uD,SAAAC,MAeA,QAbA7D,WAAAiB,mBACAA,iBAAA,SAAAvkD,UAEA,GAAAonD,WAAAD,OAAAD,SACAte,MAAApnC,KAAAkP,IAAA,EAAA,IAAA,GAAA02C,UAEA,OAAAlvD,QAAAsG,WAAA,WACA0oD,SAAAC,OACAnnD,YACA4oC,SAIA2b,kBAGA8C,YAAA,WACA,GAAAC,iBAAApvD,OAAAqvD,sBAAArvD,OAAAyuD,aAAAnuD,cAAA,uBAQA,QANA8qD,WAAAgE,kBACAA,gBAAA,SAAAphC,SACA,MAAAhuB,QAAA+rB,aAAAiC,WAIAohC,iBAIApF,SACAsF,MAAA,WACA,MAAA,IAEA/uB,IAAA,WACA,MAAA,IAEAgvB,OAAA,SAAAhuD,GACA,MAAAA,IAEAiuD,UAAA,SAAAjuD,GACA,MAAAA,GAAAA,GAEAkuD,MAAA,SAAAluD,GACA,MAAAA,GAAAA,EAAAA,GAEAmuD,MAAA,SAAAnuD,GACA,OAAA+H,KAAAqmD,IAAApuD,EAAA+H,KAAAsmD,IAAA,EAAA,IAEA1yB,KAAA,SAAA37B,GACA,MAAA+H,MAAA4zB,KAAA37B,IAEAsuD,SAAA,SAAAtuD,GACA,MAAA+H,MAAA6zB,IAAA57B,EAAA,EAAA,GAAA,GAGAuuD,OAAA,SAAAvuD,GACA,GAAA3G,EAEA,IAAA2G,GAAA,MACA3G,EAAA,MACA,IAAA2G,GAAA,MACA3G,EAAA,MACA,IAAA2G,GAAA,OACA3G,EAAA,OACA,CAAA,KAAA2G,GAAA,QAGA,MAAA,EAFA3G,GAAA,GAKA,MAAA,GAAA0O,KAAA+P,IAAA,EAAA/P,KAAAqmD,IAAApuD,EAAA3G,EAAA,OAAAA,IAyGAgvD,SAAA3vD,UAAAu2B,QAAA,SAAAjV,UACA,GAAAw0C,cACAC,eACAC,UAAA,CAmBA,KAhBA10C,WAAAvD,WAEAi4C,UAAA,EAEAC,gBACAC,qBAAA,EAEA50C,SAAAzd,SAAAoB,qBAAA,MACAqc,SAAA5f,SAAAqc,YAEAuD,UAAAA,WAGAw0C,aAAA,EACAC,eAAAz0C,SAAA5f,OAEAo0D,aAAAC,eAAAD,eAAA,CACA,GAAAthC,IAAAlT,SAAAw0C,cACAK,aAAA3hC,GACA4hC,aAGAC,iBAAA1F,wBAGAV,aAAAD,cAGAsG,YAAA,CAOA,IAJAN,UAAArC,6BAAAn/B,WACAA,IAAAm/B,4BAGAn/B,GAAA9qB,WAAA,CAQA,IAHA,GAAA6sD,gBAAA,EACAC,iBAAAhiC,GAAA9qB,WAAAhI,OAEA60D,eAAAC,iBAAAD,iBAAA,CACA,GAAA9oC,MAAA+G,GAAA9qB,WAAA6sD,eAEA,IAAA,uBAAA9oC,KAAA7gB,KAWA,GAAA,0BAAA6gB,KAAA7gB,KAOA,GAAA,uBAAA6gB,KAAA7gB,KAOA,GAAA,qBAAA6gB,KAAA7gB,KAAA,CAMA,GAAA5I,OAAAypB,KAAA7gB,KAAA5I,MAAA8vD,oBAEA,IAAA,OAAA9vD,MAAA,CAIA,GAAAyyD,KACAlP,MAAA95B,KAAA5E,MAEA9G,QAAAyS,GAEAkiC,UAAAjpC,KAAA7gB,KAAAvK,QAAA4xD,YAAAC,eAGAkC,WAAA5zD,KAAAi0D,GAEA,IAAAE,UAAA3yD,MAAA,EAEA2yD,YAEAF,GAAAE,SAAAA,SAAAlwD,OAAA,GAIA,IAAAiV,QAAA1X,MAAA,EAGA,MAAAd,KAAAwY,SACA+6C,GAAAG,cAAA,EACAH,GAAA/6C,QAAA,EAAAA,OAAAzb,MAAA,OAAA,KAEAw2D,GAAA/6C,OAAA,EAAAA,MAGA,IAAAm7C,SAAA7yD,MAAA,GAGA8yD,QAAA9yD,MAAA,IAAA6yD,OAGAA,UAAAA,UAAAtD,cAAAsD,UAAArD,YAcAiD,GAAAM,KAAA,WACAN,GAAAO,SAAAH,QAAAC,WAdAL,GAAAM,KAAA,WAGAF,UAAArD,WACAiD,GAAAQ,OAAA,EACAR,GAAAG,eAGAH,GAAA/6C,OAAA+6C,GAAA/6C,OAAA60C,cAtDA+F,aAAA,MAPArG,cAAAxiC,KAAA5E,UAPAwtC,kBAAA,QAAA5oC,KAAA5E,UATA,IAFAstC,aAAAtyD,SAAA2K,cAAAif,KAAA5E,OAEA,OAAAstC,aACA,KAAA,iCAAA1oC,KAAA5E,MAAA,IAuFA,GAAAutC,UAAA10D,OAAA,CAKA,GAAAw1D,WAAAC,UAEAtkC,IAEAmjC,UAAArC,6BAAAn/B,KAEA3B,GAAA2B,GAAAm/B,4BACAuD,UAAAjB,aAAApjC,IAAAqkC,UACAC,UAAAlB,aAAApjC,IAAAskC,YAGAtkC,GAAA2B,GAAAm/B,4BAAAuC,uBACAgB,UAAA1iC,GAAA7kB,MAAA8jC,QACA0jB,UAAAC,UAAA5iC,KAGAyhC,aAAApjC,KACA9Q,QAAAyS,GACA0iC,UAAAA,UACAC,UAAAA,UACAhB,aAAAA,aACAC,UAAAA,UACAxF,gBAAAyF,iBACApG,aAAAA,aACAqG,WAAAA,WACAe,mBAGA1F,aAAAn9B,IAAAy+B,wBAUA,IANAqE,UAGAxB,aAAA,EACAC,eAAAz0C,SAAA5f,OAEAo0D,aAAAC,eAAAD,eAAA,CACA,GAAAyB,IAAAtB,aAAA30C,SAAAw0C,cAAAnC,4BAEA4D,MAAAx5C,YAKAy5C,YAAAD,IAGAE,WAAAF,KAGA,MAAA1H,YAOAF,QAAA3vD,UAAA03D,mBAAA,SAAA31C,QAAA41C,eAAAC,eACA,GAAAjxB,gBAAAp+B,gBAAA6V,aACAy5C,IAAA91C,QAAAuX,wBACAw+B,SAAAD,IAAAv6C,IAGAy6C,UAAAF,IAAAh6C,OAAAg6C,IAAAv6C,GAiBA,OAfAq6C,kBAAAjE,cACAoE,UAAAnxB,eACAgxB,iBAAAlE,gBACAqE,UAAAnxB,eAAA,GAGAixB,gBAAAlE,cACAoE,UAAAC,UACAH,gBAAAnE,gBACAqE,UAAAC,UAAA,GAIAD,UAAAjI,UAAAqB,eAEA4G,SAAA,GAAA,GAMAnI,QAAA3vD,UAAAg4D,UAAA,SAAA16C,IAAAhC,SACAA,QAAAA,WAEA,IAAA28C,KAAAjD,OACA/2C,UAAA4xC,UAAAqB,eACAjzB,SAAA3iB,QAAA2iB,WAAAlgB,UAAAu1C,iBAAAh4C,QAAA2iB,QAuBA,OApBAi6B,mBACAC,SAAAl6C,UACAm6C,QAAA96C,IAAAW,UACAgzC,UAAA3zC,IACA2gB,SAAAA,SACAo6B,UAAAJ,IACAK,QAAAL,IAAAh6B,SACAC,OAAA6xB,QAAAz0C,QAAA4iB,QAAAm1B,gBACA9hC,KAAAjW,QAAAiW,MAIA2mC,iBAAAE,UACAF,iBAAA3mC,MACA2mC,iBAAA3mC,KAAArxB,KAAA2vD,WAAA,GAGAqI,iBAAAn6C,WAGA8xC,WAMAF,QAAA3vD,UAAAu4D,cAAA,WACAL,kBAAAA,iBAAA3mC,MACA2mC,iBAAA3mC,KAAArxB,KAAA2vD,WAAA,GAGAqI,iBAAAn6C,WAMA4xC,QAAA3vD,UAAAw4D,cAAA,WACA,QAAAN,kBAGAvI,QAAA3vD,UAAAy4D,SAAA,WACA,MAAAtH,YAGAxB,QAAA3vD,UAAA04D,aAAA,SAAAp7C,IAAAq7C,OASA,MARAC,cAAAD,SAAA,EAEAxH,UACA0H,cAAAxpD,KAAAqxB,IAAArxB,KAAAkP,IAAAjB,IAAA,GAAAw7C,cAEA/yD,OAAAgzD,SAAA,EAAAz7C,KAGAuyC,WAGAF,QAAA3vD,UAAAkxD,aAAA,WACA,MAAAC,WACA0H,cAEA9yD,OAAAiY,aAAAzV,gBAAA0V,WAAArP,KAAAqP,WAAA,GAIA0xC,QAAA3vD,UAAAg5D,gBAAA,WACA,MAAAF,eAGAnJ,QAAA3vD,UAAA4B,GAAA,SAAAgL,KAAA3C,IAGA,MAFAimD,YAAAtjD,MAAA3C,GAEA4lD,WAGAF,QAAA3vD,UAAAyC,IAAA,SAAAmK,MAGA,aAFAsjD,YAAAtjD,MAEAijD,WAGAF,QAAA3vD,UAAAkd,QAAA,WACA,GAAAi4C,iBAAAD,aACAC,iBAAA3C,YACAyG,mBAEAtH,aAAAppD,iBAAAupD,mBAAAF,cAAAG,sBAAAF,sBAKA,KAHA,GAAAqH,iBAAA,EACAC,kBAAAlD,aAAAv0D,OAEAw3D,gBAAAC,kBAAAD,kBACAE,OAAAnD,aAAAiD,iBAAAn3C,QAGAxZ,iBAAAoH,MAAAoyB,SAAAnzB,KAAAe,MAAAoyB,SAAA,GACAx5B,gBAAAoH,MAAA0mB,OAAAznB,KAAAe,MAAA0mB,OAAA,GAEAi7B,cACAmB,QAAA4G,SAAA/H,aAAA,YAAA,QAGAzB,UAAA9xC,UACAuzC,aAAAvzC,UACAmyC,WAAAnyC,UACAsyC,aAAAtyC,UACA+6C,aAAA,EACAvI,OAAA,EACAT,WAAA/xC,UACAyyC,oBAAAzyC,UACAu7C,WAAA,OACAC,YACArH,mBAAA,EACAD,oBAAA,EACAE,gBAAA,EACA+F,iBAAAn6C,UACA4yC,wBAAA5yC,UACA8yC,yBAAA9yC,UACAizC,iBAAAjzC,UACA66C,aAAA76C,UACAm4C,qBAAA,EACAlG,cAAAjyC,UACAozC,WAAA,EACA0H,cAAA,EACAW,YAAAz7C,UAOA,IAAA2zC,aAAA,WACA,GAAA+H,gBACAC,cACAC,cACAC,eACAC,cACAC,cACAC,WACA1hC,OAEA2hC,iBACAC,iBACAC,cACAjF,SAEAjD,WAAAzpD,iBAAAsqD,iBAAAC,gBAAAC,kBAAAC,gBAAAnyD,KAAA,KAAA,SAAApB,GACA,GAAAkkC,OAAAlkC,EAAA06D,eAAA,EAKA,KAHAP,eAAAn6D,EAAAimB,OAGA,IAAAk0C,eAAA3xD,UACA2xD,eAAAA,eAAAlxD,UAWA,QARAmxD,cAAAl2B,MAAAjM,QACAoiC,cAAAn2B,MAAAlM,QACAwiC,iBAAAx6D,EAAA26D,UAEAxG,kBAAA1wD,KAAA02D,eAAA3nB,UACAxyC,EAAAmyB,iBAGAnyB,EAAAwB,MACA,IAAA4xD,kBAEA4G,gBACAA,eAAAtnC,OAGA09B,UAAA0I,gBAEAkB,eAAAG,eAEAF,cAAAK,WAAAF,cACAF,cAAAG,cACAE,iBAAAC,gBAEA,MACA,KAAAnH,iBAEAc,kBAAA1wD,KAAA02D,eAAA3nB,UAAApuC,SAAAktC,gBAAA6oB,gBACAn6D,EAAAmyB,iBAGAyG,OAAAwhC,cAAAE,WACA9E,UAAAgF,iBAAAC,cAEArK,UAAA6I,aAAAG,cAAAxgC,QAAA,GAEA0hC,WAAAF,cACAK,cAAAD,gBACA,MACA,SACA,IAAAlH,mBACA,IAAAC,gBACA,GAAAqH,WAAAX,cAAAG,cACAS,UAAAX,cAAAG,cACAS,UAAAD,UAAAA,UAAAD,UAAAA,SAGA,IAAAE,UAAA,GAAA,CACA,IAAA3G,kBAAA1wD,KAAAu2D,eAAAxnB,SAAA,CACAwnB,eAAAvnC,OAGA,IAAAsoC,YAAA32D,SAAA42D,YAAA,cACAD,YAAAE,eAAA,SAAA,GAAA,EAAAj7D,EAAAk7D,KAAA,EAAAh3B,MAAAi3B,QAAAj3B,MAAAk3B,QAAAl3B,MAAAlM,QAAAkM,MAAAjM,QAAAj4B,EAAAgzC,QAAAhzC,EAAAkzC,OAAAlzC,EAAAmzC,SAAAnzC,EAAAizC,QAAA,EAAA,MACA+mB,eAAAqB,cAAAN,YAGA,OAGAf,eAAA17C,SAEA,IAAA+V,OAAAuE,OAAA48B,SAGAnhC,OAAAzkB,KAAAkP,IAAAlP,KAAAqxB,IAAA5M,MAAA,MAEA,IAAAmK,UAAA5uB,KAAA+P,IAAA0U,MAAA08B,qBACAuK,aAAAjnC,MAAAmK,SAAA,GAAAuyB,oBAAAvyB,SAAAA,SACAgzB,UAAApB,UAAAqB,eAAA6J,aAGAC,YAAA,CAGA/J,WAAA6H,cACAkC,aAAAlC,aAAA7H,WAAA8J,aAEA9J,UAAA6H,cACA7H,UAAA,IACA+J,aAAA/J,UAAA8J,aAEA9J,UAAA,GAGAhzB,UAAA,EAAA+8B,YAEAnL,UAAAmI,UAAA/G,UAAA,GAAA,GAAA/yB,OAAA,WAAAD,SAAAA,cAMAl4B,OAAAgzD,SAAA,EAAA,GACAxwD,gBAAAoH,MAAAoyB,SAAAnzB,KAAAe,MAAAoyB,SAAA,UAQAk5B,0BAAA,WACA,GAEAC,YACAn5C,QACAo0C,aACAC,UACA+E,cACAC,gBACA3E,GACAyC,gBACAC,kBACAz9C,OACA2/C,cAZA10B,eAAAp+B,gBAAA6V,aACAk9C,mBAAAC,mBAiBA,KAHArC,gBAAA,EACAC,kBAAAlD,aAAAv0D,OAEAw3D,gBAAAC,kBAAAD,kBASA,IARAgC,WAAAjF,aAAAiD,iBACAn3C,QAAAm5C,WAAAn5C,QACAo0C,aAAA+E,WAAA/E,aACAC,UAAA8E,WAAA9E,UAEA+E,cAAA,EACAC,gBAAAhF,UAAA10D,OAEAy5D,cAAAC,gBAAAD,gBACA1E,GAAAL,UAAA+E,eAEAz/C,OAAA+6C,GAAA/6C,OACA2/C,cAAAC,mBAAA7E,GAAAE,WAAA,EAEAF,GAAA+E,MAAA9/C,OAEA+6C,GAAAG,eAEAl7C,QAAAirB,eAGA8vB,GAAA+E,MAAA9/C,QAGA,aAAA+6C,GAAAM,OACAqC,OAAAr3C,SAEA00C,GAAA+E,MAAA3L,UAAA6H,mBAAAvB,aAAAM,GAAAO,QAAA,GAAAP,GAAAO,QAAA,IAAAt7C,OAEA09C,OAAAr3C,SAAA,IAGA00C,GAAA+E,OAAAH,cAGAhL,eAEAoG,GAAAQ,OAAAR,GAAA+E,MAAA1C,eACAA,aAAArC,GAAA+E,MAaA,KANA1C,aAAAzpD,KAAAkP,IAAAu6C,aAAA2C,sBAGAvC,gBAAA,EACAC,kBAAAlD,aAAAv0D,OAEAw3D,gBAAAC,kBAAAD,kBAAA,CAOA,IANAgC,WAAAjF,aAAAiD,iBACA9C,UAAA8E,WAAA9E,UAEA+E,cAAA,EACAC,gBAAAhF,UAAA10D,OAEAy5D,cAAAC,gBAAAD,gBACA1E,GAAAL,UAAA+E,eAEAE,cAAAC,mBAAA7E,GAAAE,WAAA,EAEAF,GAAAQ,QACAR,GAAA+E,MAAA1C,aAAArC,GAAA/6C,OAAA2/C,cAIAH,YAAA9E,UAAApmD,KAAA0rD,uBASAC,WAAA,SAAAC,UAAAC,aAKA,IAHA,GAAA3C,iBAAA,EACAC,kBAAAlD,aAAAv0D,OAEAw3D,gBAAAC,kBAAAD,kBAAA,CACA,GAYAtoD,KACAiY,MAbAqyC,WAAAjF,aAAAiD,iBACAn3C,QAAAm5C,WAAAn5C,QACAy5C,MAAAN,WAAAtK,gBAAAgL,UAAAC,YACAC,OAAAZ,WAAA9E,UACA2F,aAAAD,OAAAp6D,OACAs6D,WAAAF,OAAA,GACAG,UAAAH,OAAAA,OAAAp6D,OAAA,GACAw6D,YAAAV,MAAAQ,WAAAR,MACAW,UAAAX,MAAAS,UAAAT,MACAY,iBAAAF,YAAAF,WAAAC,UACA3F,WAAA4E,WAAA5E,WACAe,eAAA6D,WAAA7D,cAKA,IAAA6E,aAAAC,UAAA,CAGA,GAAAD,aAAAhB,WAAAmB,WAAAF,WAAA,IAAAjB,WAAAmB,KACA,QAyBA,QArBAH,aACAvK,aAAA5vC,SAAAmxC,0BAAAE,uBAAAD,2BAGAmD,YAAAe,oBACAiF,WAAAv6C,QAAAi6C,WAAAtF,UAAA4C,YACA4B,WAAA7D,qBAGA1F,aAAA5vC,SAAAqxC,yBAAAF,wBAAAC,2BAGAmD,YAAAe,eAAA0E,eACAO,WAAAv6C,QAAAk6C,UAAAvF,UAAA4C,YACA4B,WAAA7D,eAAA0E,eAKAb,WAAAmB,KAAAH,eAAA,EAEAhB,WAAAjL,cACA,IAAA,QACAmJ,OAAAr3C,QACA,SACA,KAAA,OAEAy5C,MAAAY,iBAAAZ,KACA,MACA,SACA,IAAA,MACA,GAAAjU,OAAA6U,iBAAA7U,KAEA,KAAA32C,MAAA22C,OACAoL,QAAAzyD,KAAAqnD,MAAA32C,OACAiY,MAAA0zC,mBAAAhV,MAAA32C,KAAAiY,OAGA,IAAAjY,IAAAlO,QAAA,KACAqf,QAAApd,aAAAiM,IAAAnK,OAAA,GAAAoiB,OAEA4pC,QAAA4G,SAAAt3C,QAAAnR,IAAAiY,OAKA,eAIA,KAAAqyC,WAAAmB,OACA1K,aAAA5vC,SAAAkxC,iBAAAE,2BAAAD,wBAAAE,yBACA8H,WAAAmB,KAAA,EAOA,KAFA,GAAAlB,eAAA,EAEAA,cAAAY,aAAA,EAAAZ,gBACA,GAAAK,OAAAM,OAAAX,eAAAK,OAAAA,OAAAM,OAAAX,cAAA,GAAAK,MAAA,CACA,GAAA7lC,MAAAmmC,OAAAX,eACAn8B,MAAA88B,OAAAX,cAAA,EAEA,KAAAvqD,MAAA+kB,MAAA4xB,MACA,GAAAoL,QAAAzyD,KAAAy1B,KAAA4xB,MAAA32C,KAAA,CACA,GAAA6S,WAAA+3C,MAAA7lC,KAAA6lC,QAAAx8B,MAAAw8B,MAAA7lC,KAAA6lC,MAGA/3C,UAAAkS,KAAA4xB,MAAA32C,KAAAstB,OAAAza,UAGAoF,MAAA2zC,mBAAA7mC,KAAA4xB,MAAA32C,KAAAiY,MAAAmW,MAAAuoB,MAAA32C,KAAAiY,MAAApF,UAEAoF,MAAA0zC,mBAAA1zC,OAGA,IAAAjY,IAAAlO,QAAA,KACAqf,QAAApd,aAAAiM,IAAAnK,OAAA,GAAAoiB,OAEA4pC,QAAA4G,SAAAt3C,QAAAnR,IAAAiY,OAQAytC,YAEAe,iBAAA8D,gBACA,SAAA7B,WACAgD,WAAAv6C,QAAA4T,KAAA+gC,UAAA4C,YAEAgD,WAAAv6C,QAAAid,MAAA03B,UAAA4C,YAGA4B,WAAA7D,eAAA8D,cAIA,UASA5I,QAAA,WACAJ,iBACAA,gBAAA,EACAmF,UAIA,IAGAmF,wBAEAh5C,SALAi5C,UAAA7M,UAAAqB,eAIA+G,IAAAjD,MAIA,IAAAkD,iBAEAD,KAAAC,iBAAAI,SACAoE,UAAAxE,iBAAAjH,UACAwL,uBAAAvE,iBAAA3mC,KACA2mC,iBAAAn6C,YAGA0F,SAAAy0C,iBAAAh6B,QAAA+5B,IAAAC,iBAAAG,WAAAH,iBAAAj6B,UAEAy+B,UAAAxE,iBAAAC,SAAA10C,SAAAy0C,iBAAAE,QAAA,GAGAvI,UAAA6I,aAAAgE,WAAA,OAGA,KAAA9D,aAAA,CACA,GAAA+D,qBAAA3L,iBAAAC,UAAAyL,SAGAC,uBACA3L,kBACAmH,SAAAoB,SACAnB,QAAAsE,UAAAnD,SACAtI,UAAAyL,UACArE,UAAAuE,gBACAtE,QAAAsE,gBAAA/L,2BAKAoH,KAAAjH,iBAAAsH,UAEA70C,SAAAssC,QAAA9sB,MAAAg1B,IAAAjH,iBAAAqH,WAAAxH,0BAEA6L,UAAA1L,iBAAAmH,SAAA10C,SAAAutC,iBAAAoH,QAAA,GAKA,GAAAQ,cAAAW,WAAAmD,UAAA,CAEApD,WAAAoD,UAAAnD,SAAA,OAAAmD,UAAAnD,SAAA,KAAAD,WAEAV,cAAA,CAEA,IAAAiE,iBACAC,OAAAJ,UACAK,QAAAxD,SACAyD,OAAAlE,aACA35C,UAAAm6C,YAIA2D,kBAAA/M,WAAAC,cAAAD,WAAAC,aAAAjwD,KAAA2vD,UAAAgN,eAGAI,sBAAA,IAEAtB,WAAAe,UAAA7M,UAAAqB,gBAGAC,WAAAG,cAEAmB,QAAA4G,SAAA/H,aAAA,YAAA,iBAAA,cAAA,OAAAkI,aAIAD,SAAAmD,UAEAxM,WAAAxsD,QACAwsD,WAAAxsD,OAAAxD,KAAA2vD,UAAAgN,iBAIAJ,wBACAA,uBAAAv8D,KAAA2vD,WAAA,GAIA+M,gBAAA3E,KAMAT,YAAA,SAAA0D,YAKA,IAHA,GAAAC,eAAA,EACAC,gBAAAF,WAAA9E,UAAA10D,OAEAy5D,cAAAC,gBAAAD,gBAAA,CASA,IARA,GACAj9B,QACArV,MACA9H,KAGA/c,MANAw3D,MAAAN,WAAA9E,UAAA+E,eAIA5T,SAIA,QAAAvjD,MAAA+vD,YAAA7wC,KAAAs4C,MAAAjU,SACAxmC,KAAA/c,MAAA,GACA6kB,MAAA7kB,MAAA,GAEAk6B,OAAAnd,KAAA/c,MAAAgwD,cAGA,OAAA91B,QACAnd,KAAAmd,OAAA,GACAA,OAAAA,OAAA,IAEAA,OAAAm1B,eAIAxqC,MAAAA,MAAAnmB,QAAA,KAAAw6D,WAAAr0C,QAAAA,MAAA5oB,MAAA,IAGAsnD,MAAAxmC,OACA8H,MAAAA,MACAqV,OAAA6xB,QAAA7xB,QAIAs9B,OAAAjU,MAAAA,QAaA2V,WAAA,SAAA/tC,KACA,GAAA07B,WA8BA,OAzBAyJ,oBAAA6I,UAAA,EACAhuC,IAAAA,IAAA9sB,QAAAiyD,mBAAA,SAAA8I,MACA,MAAAA,MAAA/6D,QAAA+xD,eAAA,SAAAz0D,GACA,MAAAA,GAAA,IAAA,IAAA,QAMA80D,qBACAF,WAAA4I,UAAA,EACAhuC,IAAAA,IAAA9sB,QAAAkyD,WAAA,SAAAzzD,GACA,MAAA2zD,oBAAA3zD,KAKAquB,IAAAA,IAAA9sB,QAAA+xD,eAAA,SAAAz0D,GAEA,MADAkrD,SAAAroD,MAAA7C,GACA,QAIAkrD,QAAAlpD,QAAAwtB,KAEA07B,SAUA4M,WAAA,SAAAF,IAEA,GACA4D,eACAC,gBAFAiC,WAQA,KAHAlC,cAAA,EACAC,gBAAA7D,GAAAnB,UAAA10D,OAEAy5D,cAAAC,gBAAAD,gBACAmC,kBAAA/F,GAAAnB,UAAA+E,eAAAkC,SAUA,KALAA,YAGAlC,cAAA5D,GAAAnB,UAAA10D,OAAA,EAEAy5D,eAAA,EAAAA,gBACAmC,kBAAA/F,GAAAnB,UAAA+E,eAAAkC,WAIAC,kBAAA,SAAA9B,MAAA6B,UACA,GAAAzsD,IAIA,KAAAA,MAAAysD,UAEA1K,QAAAzyD,KAAAs7D,MAAAjU,MAAA32C,OACA4qD,MAAAjU,MAAA32C,KAAAysD,SAAAzsD,KAKA,KAAAA,MAAA4qD,OAAAjU,MACA8V,SAAAzsD,KAAA4qD,MAAAjU,MAAA32C,MAOA4rD,mBAAA,SAAAe,KAAAC,KAAA/5C,UACA,GAAAg6C,YACAC,WAAAH,KAAA77D,MAGA,IAAAg8D,aAAAF,KAAA97D,OACA,KAAA,+BAAA67D,KAAA,GAAA,UAAAC,KAAA,GAAA,GAIA,IAAAG,eAAAJ,KAAA,GAIA,KAFAE,WAAA,EAEAA,WAAAC,WAAAD,aAEAE,aAAAF,YAAAF,KAAAE,aAAAD,KAAAC,YAAAF,KAAAE,aAAAh6C,QAGA,OAAAk6C,eAMApB,mBAAA,SAAAptC,KACA,GAAAsuC,YAAA,CAIA,OAFApJ,qBAAA8I,UAAA,EAEAhuC,IAAA,GAAA9sB,QAAAgyD,oBAAA,WACA,MAAAllC,KAAAsuC,iBAQArE,OAAA,SAAA93C,SAAAs8C,MAEAt8C,YAAAhW,OAAAgW,SAOA,KALA,GAAA45C,YACAn5C,QACA87C,cAAA,EACA9H,eAAAz0C,SAAA5f,OAEAm8D,cAAA9H,eAAA8H,gBACA97C,QAAAT,SAAAu8C,eACA3C,WAAAjF,aAAAl0C,QAAA4xC,6BAGAuH,aAIA0C,MAEA77C,QAAApS,MAAA8jC,QAAAynB,WAAA4C,eACAnM,aAAA5vC,QAAAm5C,WAAA6C,kBAGA7C,WAAA4C,eAAA/7C,QAAApS,MAAA8jC,QACAynB,WAAA6C,eAAA3G,UAAAr1C,SAGAA,QAAApS,MAAA8jC,QAAAynB,WAAAhE,UACAvF,aAAA5vC,QAAAm5C,WAAA/D,cAQA1F,oBAAA,WACA+H,YAAA,gBACA/G,QAAA4G,SAAA/H,aAAA,YAAAkI,YAEA,IAAAwE,eAAApL,SAAAtB,cACA2M,kBAAAD,cAAArR,iBAAA,aACAuR,4BAAAF,cAAArR,iBAAA8H,mBAAA,aACA0J,MAAAF,mBAAA,SAAAA,mBAAAC,6BAAA,SAAAA,2BAEAC,SACA3E,YAAA,IAOA/G,SAAA4G,SAAA,SAAA7kC,GAAAzT,KAAAoO,KACA,GAAAxf,OAAA6kB,GAAA7kB,KAOA,IAJAoR,KAAAA,KAAA1e,QAAA4xD,YAAAC,eAAA7xD,QAAA,IAAA,IAIA,WAAA0e,KACA+U,MAAA3G,KAGAxf,MAAAoR,MAAAoO,IAGAxf,MAAAoR,MAAA,IAAA,EAAAoO,SAIA,IAAA,UAAApO,KACApR,MAAAyuD,WAAAzuD,MAAA0uD,SAAAlvC,QAIA,KAEAqlC,eACA7kD,MAAA6kD,aAAAzzC,KAAA9gB,MAAA,EAAA,GAAAmG,cAAA2a,KAAA9gB,MAAA,IAAAkvB,KAIAxf,MAAAoR,MAAAoO,IACA,MAAAmvC,UAOA,IA6OAzO,WAkCAoG,aAEA3E,aAEApB,WACAG,aAIAP,WAEAU,oBAkBA0H,iBAEAvH,wBAEAE,yBAGAG,iBAGA4H,aAMA5I,cAUAwJ,YAMAhH,WA5UAR,UAAAS,QAAA8L,SAAA,SAAAx8C,QAAAy8C,MAAA3wD,UACA,GAAA4wD,cAAA,SAAAh/D,GAeA,MAbAA,GAAAA,GAAAsG,OAAAmI,MAEAzO,EAAAimB,SACAjmB,EAAAimB,OAAAjmB,EAAA0O,YAGA1O,EAAAmyB,iBACAnyB,EAAAmyB,eAAA,WACAnyB,EAAAi/D,aAAA,EACAj/D,EAAAk/D,kBAAA,IAIA9wD,SAAA3N,KAAAL,KAAAJ,GAGA++D,OAAAA,MAAAj1D,MAAA,IAMA,KAJA,GAAAqD,MACAgyD,YAAA,EACAC,YAAAL,MAAA98D,OAEAk9D,YAAAC,YAAAD,cACAhyD,KAAA4xD,MAAAI,aAEA78C,QAAAlW,iBACAkW,QAAAlW,iBAAAe,KAAAiB,UAAA,GAEAkU,QAAAjW,YAAA,KAAAc,KAAA6xD,cAIAK,kBAAAt8D,MACAuf,QAAAA,QACAnV,KAAAA,KACAmT,SAAAlS,YAKAkxD,aAAAtM,QAAAuM,YAAA,SAAAj9C,QAAAy8C,MAAA3wD,UACA2wD,MAAAA,MAAAj1D,MAAA,IAKA,KAHA,GAAAq1D,aAAA,EACAC,YAAAL,MAAA98D,OAEAk9D,YAAAC,YAAAD,cACA78C,QAAAvE,oBACAuE,QAAAvE,oBAAAghD,MAAAI,aAAA/wD,UAAA,GAEAkU,QAAAk9C,YAAA,KAAAT,MAAAI,aAAA/wD,WAKAorD,iBAAA,WAKA,IAJA,GAAAiG,WACAC,aAAA,EACAC,aAAAN,kBAAAp9D,OAEAy9D,aAAAC,aAAAD,eACAD,UAAAJ,kBAAAK,cAEAJ,aAAAG,UAAAn9C,QAAAm9C,UAAAtyD,KAAAsyD,UAAAn/C,SAGA++C,uBAGAxC,WAAA,SAAAv6C,QAAAnV,KAAAuS,WACA+wC,WAAAE,UACAF,WAAAE,SAAAlwD,KAAA2vD,UAAA9tC,QAAAnV,KAAAuS,YAIAm4C,QAAA,WACA,GAAA+H,KAAAxP,UAAAqB,cAGA4H,cAAA,EAEAzI,eAAAc,YAEAviD,KAAAe,MAAA0mB,OAAA,IAGA4kC,4BAEA5K,eAAAc,YAEAviD,KAAAe,MAAA0mB,OAAAyiC,aAAAvwD,gBAAA6V,aAAA,MAIA+yC,UACAtB,UAAA6I,aAAArpD,KAAAqxB,IAAAmvB,UAAAqB,eAAA4H,eAGAjJ,UAAA6I,aAAA2G,KAAA,GAGAzG,cAAA,GAMA2C,kBAAA,WACA,GAEAx6C,MACA8H,MAHA8d,eAAAp+B,gBAAA6V,aACAkhD,OAIA,KAAAv+C,OAAA+uC,YACAjnC,MAAAinC,WAAA/uC,MAEA,kBAAA8H,OACAA,MAAAA,MAAA3oB,KAAA2vD,WAGA,KAAA3sD,KAAA2lB,SACAA,MAAAA,MAAA5oB,MAAA,MAAA,IAAA0mC,gBAGA24B,KAAAv+C,MAAA8H,KAGA,OAAAy2C,OAMA7D,mBAAA,WACA,GACA8D,YADAC,kBAAA,CASA,OANAlO,gBACAkO,kBAAAnwD,KAAAkP,IAAA+yC,aAAA9yC,aAAA8yC,aAAA3yC,eAGA4gD,WAAAlwD,KAAAkP,IAAAihD,kBAAA5wD,KAAA+P,aAAA/P,KAAA4P,aAAAjW,gBAAAoW,aAAApW,gBAAAiW,aAAAjW,gBAAA6V,cAEAmhD,WAAAh3D,gBAAA6V,cAOAg5C,UAAA,SAAAr1C,SACA,GAAAhB,MAAA,WAQA,OALAhb,QAAA05D,YAAA19C,kBAAAhc,QAAA05D,aACA19C,QAAAA,QAAAhB,MACAA,KAAA,WAGAgB,QAAAhB,OASA4wC,aAAA,SAAA5vC,QAAA/E,IAAAG,QACA,GAAA4D,MAAA,WASA,IANAhb,OAAA05D,YAAA19C,kBAAAhc,QAAA05D,aACA19C,QAAAA,QAAAhB,MACAA,KAAA,WAIA5D,SAAAY,UAEA,YADAgE,QAAAhB,MAAA/D,IAWA,KANA,GAAAmS,KAAApN,QAAAhB,MAGA2+C,iBAAA,EACAC,aAAAxiD,OAAAzb,OAEAg+D,iBAAAC,aAAAD,mBACAvwC,IAAAywC,QAAAzwC,KAAA9sB,QAAAu9D,QAAAziD,OAAAuiD,mBAAA,IAGAvwC,KAAA0wC,MAAA1wC,IAMA,KAHA,GAAA2wC,eAAA,EACAC,UAAA/iD,IAAAtb,OAEAo+D,cAAAC,UAAAD,gBAEAF,QAAAzwC,KAAAzsB,QAAAk9D,QAAA5iD,IAAA8iD,wBACA3wC,KAAA,IAAAnS,IAAA8iD,eAIA/9C,SAAAhB,MAAA8+C,MAAA1wC,MAGA0wC,MAAA,SAAAl/D,GACA,MAAAA,GAAA0B,QAAAwxD,OAAA,KAMA+L,QAAA,SAAAj/D,GACA,MAAA,IAAAA,EAAA,KAGAq0D,KAAA/yD,KAAAg2D,KAAA,WACA,OAAA,GAAAh2D,OAGAy5D,oBAAA,SAAA/6D,EAAAwK,GACA,MAAAxK,GAAA66D,MAAArwD,EAAAqwD,OAgDA1C,aAAA,EAEAvI,OAAA,EAMA+I,WAAA,OAGAC,YAGAqD,gBAAA5H,OAGA9C,mBAAA,EACAD,oBAAA,EAEAE,gBAAA,EAiBA+D,qBAAA,EAMA/E,WAAA,EAGA0H,cAAA,EAMAiG,oBAMA,mBAAAtkD,SAAAA,OAAAC,IACAD,UAAA,WACA,MAAAi4C,WAEA,mBAAA3vD,SAAAA,OAAAE,QACAF,OAAAE,QAAAyvD,QAEA1sD,OAAA0sD,QAAAA,SAGA1sD,OAAAlC,WCnuDA,SAAAlD,GAAA,YAAA,mBAAA6Z,SAAAA,OAAAC,IAAAD,QAAA,UAAA7Z,GAAA,mBAAAqC,SAAAF,OAAAE,QAAArC,EAAAkgB,QAAA,WAAAlgB,EAAAqJ,SAAA,SAAArJ,GAAA,YAAA,IAAAwK,GAAApF,OAAAi6D,SAAA70D,GAAA,WAAA,QAAAjG,GAAAA,EAAAkC,GAAA,GAAAI,GAAA/H,EAAAI,IAAAJ,GAAA6lB,UAAA26C,eAAA,EAAAC,gBAAA,EAAAC,aAAAx/D,EAAAuE,GAAAk7D,WAAAz/D,EAAAuE,GAAA+0C,QAAA,EAAAomB,SAAA,KAAAC,UAAA,+HAAAC,UAAA,uHAAAC,UAAA,EAAAC,cAAA,IAAAC,YAAA,EAAAC,cAAA,OAAAC,QAAA,OAAAC,aAAA,SAAA11D,EAAAjG,GAAA,MAAAvE,GAAA,wEAAAmJ,KAAA5E,EAAA,IAAA47D,MAAA,EAAAC,UAAA,aAAAC,WAAA,EAAA9iC,OAAA,SAAA+iC,aAAA,IAAAC,MAAA,EAAAC,eAAA,EAAAC,UAAA,EAAAC,aAAA,EAAAC,SAAA,WAAAC,aAAA,EAAAC,cAAA,EAAAC,cAAA,EAAAC,kBAAA,EAAAC,UAAA,SAAAC,WAAA,KAAAC,KAAA,EAAAC,KAAA,EAAAC,MAAA,GAAAC,aAAA,EAAAC,aAAA,EAAAC,eAAA,EAAApuC,MAAA,IAAAquC,OAAA,EAAAC,cAAA,EAAAC,WAAA,EAAAC,eAAA,EAAAC,QAAA,EAAAC,cAAA,EAAAC,eAAA,EAAAj7B,UAAA,EAAAk7B,iBAAA,EAAAC,gBAAA,EAAA7qB,OAAA,KAAAr4C,EAAAmjE,UAAAC,WAAA,EAAAC,UAAA,EAAAC,cAAA,KAAAC,iBAAA,EAAAC,YAAA,KAAAC,aAAA,EAAA/jD,UAAA,EAAAgkD,MAAA,KAAAC,UAAA,KAAAC,WAAA,KAAAC,UAAA,EAAAC,WAAA,KAAAC,WAAA,KAAAC,WAAA,KAAAC,WAAA,KAAAC,YAAA,KAAAC,QAAA,KAAAC,SAAA,EAAAC,YAAA,EAAAC,UAAA,KAAAC,MAAA,KAAAC,eAAAC,mBAAA,EAAAC,WAAA,GAAAxjE,EAAAsD,OAAAxE,EAAAA,EAAAmjE,UAAAnjE,EAAA2kE,iBAAA,KAAA3kE,EAAA4kE,SAAA,KAAA5kE,EAAA6kE,SAAA,KAAA7kE,EAAA8kE,eAAA9kE,EAAA+kE,sBAAA/kE,EAAAglE,gBAAA,EAAAhlE,EAAAilE,UAAA,EAAAjlE,EAAAklE,aAAA,EAAAllE,EAAAmlE,OAAA,SAAAnlE,EAAAolE,QAAA,EAAAplE,EAAAqlE,aAAA,KAAArlE,EAAAkiE,UAAA,KAAAliE,EAAAslE,SAAA,EAAAtlE,EAAAulE,aAAA,EAAAvlE,EAAAwlE,QAAAtkE,EAAAuE,GAAAzF,EAAAylE,aAAA,KAAAzlE,EAAA0lE,cAAA,KAAA1lE,EAAA2lE,eAAA,KAAA3lE,EAAA4lE,iBAAA,mBAAA5lE,EAAA6lE,YAAA,EAAA7lE,EAAA8lE,YAAA,KAAA/9D,EAAA7G,EAAAuE,GAAA/E,KAAA,aAAAV,EAAA6b,QAAA3a,EAAAsD,UAAAxE,EAAA6lB,SAAAle,EAAAI,GAAA/H,EAAAyjE,aAAAzjE,EAAA6b,QAAA+lD,aAAA5hE,EAAA+lE,iBAAA/lE,EAAA6b,QAAA,mBAAAzX,UAAA4hE,WAAAhmE,EAAAmlE,OAAA,YAAAnlE,EAAA4lE,iBAAA,uBAAA,mBAAAxhE,UAAA6hE,eAAAjmE,EAAAmlE,OAAA,eAAAnlE,EAAA4lE,iBAAA,0BAAA5lE,EAAAkmE,SAAAhlE,EAAAghC,MAAAliC,EAAAkmE,SAAAlmE,GAAAA,EAAAmmE,cAAAjlE,EAAAghC,MAAAliC,EAAAmmE,cAAAnmE,GAAAA,EAAAomE,iBAAAllE,EAAAghC,MAAAliC,EAAAomE,iBAAApmE,GAAAA,EAAAqmE,YAAAnlE,EAAAghC,MAAAliC,EAAAqmE,YAAArmE,GAAAA,EAAAsmE,aAAAplE,EAAAghC,MAAAliC,EAAAsmE,aAAAtmE,GAAAA,EAAAumE,cAAArlE,EAAAghC,MAAAliC,EAAAumE,cAAAvmE,GAAAA,EAAAwmE,YAAAtlE,EAAAghC,MAAAliC,EAAAwmE,YAAAxmE,GAAAA,EAAAymE,aAAAvlE,EAAAghC,MAAAliC,EAAAymE,aAAAzmE,GAAAA,EAAA0mE,YAAAxlE,EAAAghC,MAAAliC,EAAA0mE,YAAA1mE,GAAAA,EAAA2mE,WAAAzlE,EAAAghC,MAAAliC,EAAA2mE,WAAA3mE,GAAAA,EAAA4mE,YAAAl7D,IAAA1L,EAAA6mE,SAAA,4BAAA7mE,EAAA8mE,sBAAA9mE,EAAAG,MAAA,GAAA,GAAAuL,GAAA,CAAA,OAAAjG,MAAAiG,EAAAnL,UAAAwmE,YAAA,WAAA,GAAA7lE,GAAAd,IAAAc,GAAAgjE,YAAAz9C,KAAA,iBAAAuH,MAAAg5C,cAAA,UAAAvgD,KAAA,4BAAAuH,MAAAi5C,SAAA,OAAAv7D,EAAAnL,UAAA2mE,SAAAx7D,EAAAnL,UAAA4mE,SAAA,SAAAz7D,EAAAjG,EAAAkC,GAAA,GAAA3H,GAAAI,IAAA,IAAA,iBAAAqF,GAAAkC,EAAAlC,EAAAA,EAAA,SAAA,IAAA,EAAAA,GAAAA,GAAAzF,EAAAgkE,WAAA,OAAA,CAAAhkE,GAAAonE,SAAA,gBAAA3hE,GAAA,IAAAA,GAAA,IAAAzF,EAAAmkE,QAAAliE,OAAAf,EAAAwK,GAAA2hC,SAAArtC,EAAAkkE,aAAAv8D,EAAAzG,EAAAwK,GAAA27D,aAAArnE,EAAAmkE,QAAAx1C,GAAAlpB,IAAAvE,EAAAwK,GAAA25B,YAAArlC,EAAAmkE,QAAAx1C,GAAAlpB,IAAAkC,KAAA,EAAAzG,EAAAwK,GAAA0lC,UAAApxC,EAAAkkE,aAAAhjE,EAAAwK,GAAA2hC,SAAArtC,EAAAkkE,aAAAlkE,EAAAmkE,QAAAnkE,EAAAkkE,YAAAjhD,SAAA7iB,KAAAyb,QAAAymD,OAAAtiE,EAAAkkE,YAAAjhD,SAAA7iB,KAAAyb,QAAAymD,OAAAtzC,SAAAhvB,EAAAkkE,YAAA50C,OAAAtvB,EAAAmkE,SAAAnkE,EAAAmkE,QAAAx5C,KAAA,SAAAjf,EAAAjG,GAAAvE,EAAAuE,GAAAuoB,KAAA,mBAAAtiB,KAAA1L,EAAAylE,aAAAzlE,EAAAmkE,QAAAnkE,EAAAsnE,UAAA57D,EAAAnL,UAAAgnE,cAAA,WAAA,GAAArmE,GAAAd,IAAA,IAAA,IAAAc,EAAA2a,QAAA2mD,cAAAthE,EAAA2a,QAAA4kD,kBAAA,GAAAv/D,EAAA2a,QAAAksB,YAAA,EAAA,CAAA,GAAAr8B,GAAAxK,EAAAijE,QAAAx1C,GAAAztB,EAAAuiE,cAAAn+B,aAAA,EAAApkC,GAAAqjE,MAAA/oC,SAAA5E,OAAAlrB,GAAAxK,EAAA2a,QAAAwY,SAAA3oB,EAAAnL,UAAAinE,aAAA,SAAA97D,EAAAjG,GAAA,GAAAkC,MAAA3H,EAAAI,IAAAJ,GAAAunE,gBAAAvnE,EAAA6b,QAAAwmD,OAAA,GAAAriE,EAAA6b,QAAAksB,YAAA,IAAAr8B,GAAAA,GAAA1L,EAAAykE,qBAAA,EAAAzkE,EAAA6b,QAAAksB,YAAA,EAAA/nC,EAAAkkE,YAAA1oC,SAAAtF,KAAAxqB,GAAA1L,EAAA6b,QAAAwY,MAAAr0B,EAAA6b,QAAA4iB,OAAAh5B,GAAAzF,EAAAkkE,YAAA1oC,SAAA3d,IAAAnS,GAAA1L,EAAA6b,QAAAwY,MAAAr0B,EAAA6b,QAAA4iB,OAAAh5B,GAAAzF,EAAAglE,kBAAA,GAAAhlE,EAAA6b,QAAAwmD,OAAA,IAAAriE,EAAAwjE,aAAAxjE,EAAAwjE,aAAAtiE,GAAAumE,UAAAznE,EAAAwjE,cAAAhoC,SAAAisC,UAAA/7D,IAAA8yB,SAAAx+B,EAAA6b,QAAAwY,MAAAoK,OAAAz+B,EAAA6b,QAAA4iB,OAAAwE,KAAA,SAAA/hC,GAAAA,EAAA0O,KAAAg7B,KAAA1pC,GAAAlB,EAAA6b,QAAAksB,YAAA,GAAApgC,EAAA3H,EAAA4kE,UAAA,aAAA1jE,EAAA,WAAAlB,EAAAkkE,YAAArzD,IAAAlJ,KAAAA,EAAA3H,EAAA4kE,UAAA,iBAAA1jE,EAAA,MAAAlB,EAAAkkE,YAAArzD,IAAAlJ,KAAAmH,SAAA,WAAArJ,GAAAA,EAAAhF,YAAAT,EAAA0nE,kBAAAh8D,EAAAkE,KAAAg7B,KAAAl/B,GAAA1L,EAAA6b,QAAAksB,YAAA,EAAApgC,EAAA3H,EAAA4kE,UAAA,eAAAl5D,EAAA,gBAAA/D,EAAA3H,EAAA4kE,UAAA,mBAAAl5D,EAAA,WAAA1L,EAAAkkE,YAAArzD,IAAAlJ,GAAAlC,GAAAmH,WAAA,WAAA5M,EAAA2nE,oBAAAliE,EAAAhF,QAAAT,EAAA6b,QAAAwY,SAAA3oB,EAAAnL,UAAAqnE,aAAA,WAAA,GAAAl8D,GAAAtL,KAAAqF,EAAAiG,EAAAmQ,QAAA+kD,QAAA,OAAAn7D,IAAA,OAAAA,IAAAA,EAAAvE,EAAAuE,GAAAmyB,IAAAlsB,EAAA85D,UAAA//D,GAAAiG,EAAAnL,UAAAqgE,SAAA,SAAAl1D;AAAA,GAAAjG,GAAArF,KAAAuH,EAAAlC,EAAAmiE,cAAA,QAAAjgE,GAAA,gBAAAA,IAAAA,EAAAgjB,KAAA,WAAA,GAAAllB,GAAAvE,EAAAd,MAAAynE,MAAA,WAAApiE,GAAAi/D,WAAAj/D,EAAAqiE,aAAAp8D,GAAA,MAAAA,EAAAnL,UAAAmnE,gBAAA,SAAAxmE,GAAA,GAAAwK,GAAAtL,KAAAqF,IAAAiG,GAAAmQ,QAAA4lD,QAAA,EAAAh8D,EAAAiG,EAAAi6D,gBAAAj6D,EAAAg6D,cAAA,IAAAh6D,EAAAmQ,QAAAwY,MAAA,MAAA3oB,EAAAmQ,QAAAslD,QAAA17D,EAAAiG,EAAAi6D,gBAAA,WAAAj6D,EAAAmQ,QAAAwY,MAAA,MAAA3oB,EAAAmQ,QAAAslD,QAAAz1D,EAAAmQ,QAAA4lD,QAAA,EAAA/1D,EAAAw4D,YAAArzD,IAAApL,GAAAiG,EAAAy4D,QAAAx1C,GAAAztB,GAAA2P,IAAApL,IAAAiG,EAAAnL,UAAA2lE,SAAA,WAAA,GAAAhlE,GAAAd,IAAAc,GAAAilE,gBAAAjlE,EAAA8iE,WAAA9iE,EAAA2a,QAAA2mD,eAAAthE,EAAAoiE,cAAArsB,YAAA/1C,EAAAklE,iBAAAllE,EAAA2a,QAAAmlD,iBAAAt1D,EAAAnL,UAAA4lE,cAAA,WAAA,GAAAjlE,GAAAd,IAAAc,GAAAoiE,eAAA3sB,cAAAz1C,EAAAoiE,gBAAA53D,EAAAnL,UAAA6lE,iBAAA,WAAA,GAAAllE,GAAAd,KAAAsL,EAAAxK,EAAAuiE,aAAAviE,EAAA2a,QAAA4mD,cAAAvhE,GAAAkkE,QAAAlkE,EAAAgkE,aAAAhkE,EAAA+jE,WAAA/jE,EAAA2a,QAAA8lD,YAAA,IAAA,IAAAzgE,EAAAwe,WAAAxe,EAAAuiE,aAAA,IAAAviE,EAAA8iE,WAAA,EAAA9iE,EAAAwe,UAAA,EAAA,IAAAxe,EAAAwe,YAAAhU,EAAAxK,EAAAuiE,aAAAviE,EAAA2a,QAAA4mD,eAAAvhE,EAAAuiE,aAAA,IAAA,IAAAviE,EAAAwe,UAAA,KAAAxe,EAAA4mE,aAAAp8D,KAAAA,EAAAnL,UAAAwnE,YAAA,WAAA,GAAAr8D,GAAAtL,IAAAsL,GAAAmQ,QAAA2+B,UAAA,IAAA9uC,EAAAq4D,WAAA7iE,EAAAwK,EAAAmQ,QAAAglD,WAAAvzC,SAAA,eAAA5hB,EAAAo4D,WAAA5iE,EAAAwK,EAAAmQ,QAAAilD,WAAAxzC,SAAA,eAAA5hB,EAAAs4D,WAAAt4D,EAAAmQ,QAAA2mD,cAAA92D,EAAAq4D,WAAAr1C,YAAA,gBAAA4J,WAAA,wBAAA5sB,EAAAo4D,WAAAp1C,YAAA,gBAAA4J,WAAA,wBAAA5sB,EAAAm7D,SAAApjE,KAAAiI,EAAAmQ,QAAAglD,YAAAn1D,EAAAq4D,WAAA3yB,UAAA1lC,EAAAmQ,QAAA6kD,cAAAh1D,EAAAm7D,SAAApjE,KAAAiI,EAAAmQ,QAAAilD,YAAAp1D,EAAAo4D,WAAAz2B,SAAA3hC,EAAAmQ,QAAA6kD,cAAAh1D,EAAAmQ,QAAA8lD,YAAA,GAAAj2D,EAAAq4D,WAAAz2C,SAAA,kBAAAU,KAAA,gBAAA,SAAAtiB,EAAAq4D,WAAAxmD,IAAA7R,EAAAo4D,YAAAx2C,SAAA,gBAAAU,MAAAg6C,gBAAA,OAAAf,SAAA,SAAAv7D,EAAAnL,UAAA0nE,UAAA,WAAA,GAAAxiE,GAAAkC,EAAA+D,EAAAtL,IAAA,IAAAsL,EAAAmQ,QAAAwlD,QAAA,GAAA31D,EAAAs4D,WAAAt4D,EAAAmQ,QAAA2mD,aAAA,CAAA,IAAA92D,EAAA85D,QAAAl4C,SAAA,gBAAA3lB,EAAAzG,EAAA,UAAAosB,SAAA5hB,EAAAmQ,QAAAylD,WAAA77D,EAAA,EAAAA,GAAAiG,EAAAw8D,cAAAziE,GAAA,EAAAkC,EAAA2nB,OAAApuB,EAAA,UAAAouB,OAAA5jB,EAAAmQ,QAAAulD,aAAA3gE,KAAAL,KAAAsL,EAAAjG,IAAAiG,GAAAg4D,MAAA/7D,EAAA0lC,SAAA3hC,EAAAmQ,QAAA8kD,YAAAj1D,EAAAg4D,MAAAj9C,KAAA,MAAA0U,QAAA7N,SAAA,gBAAAU,KAAA,cAAA,WAAAtiB,EAAAnL,UAAA4nE,SAAA,WAAA,GAAAz8D,GAAAtL,IAAAsL,GAAAy4D,QAAAz4D,EAAA85D,QAAAviD,SAAAvX,EAAAmQ,QAAAymD,MAAA,uBAAAh1C,SAAA,eAAA5hB,EAAAs4D,WAAAt4D,EAAAy4D,QAAAliE,OAAAyJ,EAAAy4D,QAAAx5C,KAAA,SAAAjf,EAAAjG,GAAAvE,EAAAuE,GAAAuoB,KAAA,mBAAAtiB,GAAAhL,KAAA,kBAAAQ,EAAAuE,GAAAuoB,KAAA,UAAA,MAAAtiB,EAAA85D,QAAAl4C,SAAA,gBAAA5hB,EAAAw4D,YAAA,IAAAx4D,EAAAs4D,WAAA9iE,EAAA,8BAAAmsC,SAAA3hC,EAAA85D,SAAA95D,EAAAy4D,QAAAiE,QAAA,8BAAAz6C,SAAAjiB,EAAA64D,MAAA74D,EAAAw4D,YAAA32C,KAAA,gDAAAI,SAAAjiB,EAAAw4D,YAAArzD,IAAA,UAAA,IAAAnF,EAAAmQ,QAAAolD,cAAA,GAAAv1D,EAAAmQ,QAAA8mD,gBAAA,KAAAj3D,EAAAmQ,QAAA4mD,eAAA,GAAAvhE,EAAA,iBAAAwK,EAAA85D,SAAA5tC,IAAA,SAAAtK,SAAA,iBAAA5hB,EAAA28D,gBAAA38D,EAAAq8D,cAAAr8D,EAAAu8D,YAAAv8D,EAAA48D,aAAA58D,EAAA68D,gBAAA,gBAAA78D,GAAA+3D,aAAA/3D,EAAA+3D,aAAA,GAAA/3D,EAAAmQ,QAAA0lD,aAAA,GAAA71D,EAAA64D,MAAAj3C,SAAA,cAAA5hB,EAAAnL,UAAAioE,UAAA,WAAA,GAAA98D,GAAAjG,EAAAkC,EAAA3H,EAAA+H,EAAAC,EAAAJ,EAAA1G,EAAAd,IAAA,IAAAJ,EAAAoE,SAAAqkE,yBAAAzgE,EAAA9G,EAAAskE,QAAAviD,WAAA/hB,EAAA2a,QAAAumD,KAAA,EAAA,CAAA,IAAAx6D,EAAA1G,EAAA2a,QAAA0mD,aAAArhE,EAAA2a,QAAAumD,KAAAr6D,EAAA6H,KAAAg7B,KAAA5iC,EAAA/F,OAAA2F,GAAA8D,EAAA,EAAA3D,EAAA2D,EAAAA,IAAA,CAAA,GAAAvH,GAAAC,SAAAC,cAAA,MAAA,KAAAoB,EAAA,EAAAA,EAAAvE,EAAA2a,QAAAumD,KAAA38D,IAAA,CAAA,GAAA8H,GAAAnJ,SAAAC,cAAA,MAAA,KAAAsD,EAAA,EAAAA,EAAAzG,EAAA2a,QAAA0mD,aAAA56D,IAAA,CAAA,GAAA2I,GAAA5E,EAAA9D,GAAAnC,EAAAvE,EAAA2a,QAAA0mD,aAAA56D,EAAAK,GAAAkhB,IAAA5Y,IAAA/C,EAAAlI,YAAA2C,EAAAkhB,IAAA5Y,IAAAnM,EAAAkB,YAAAkI,GAAAvN,EAAAqF,YAAAlB,GAAAjD,EAAAskE,QAAAz2C,QAAAO,OAAAtvB,GAAAkB,EAAAskE,QAAAviD,WAAAA,WAAAA,WAAApS,KAAA8lB,MAAA,IAAAz1B,EAAA2a,QAAA0mD,aAAA,IAAAh9B,QAAA,mBAAA75B,EAAAnL,UAAAmoE,gBAAA,SAAAh9D,EAAAjG,GAAA,GAAAzF,GAAA+H,EAAAC,EAAAL,EAAAvH,KAAAwH,GAAA,EAAAzD,EAAAwD,EAAA69D,QAAA7uC,QAAAppB,EAAAjH,OAAAmhC,YAAAvmC,EAAAoF,QAAAqwB,OAAA,IAAA,WAAAhvB,EAAAu6D,UAAAl6D,EAAAuF,EAAA,WAAA5F,EAAAu6D,UAAAl6D,EAAA7D,EAAA,QAAAwD,EAAAu6D,YAAAl6D,EAAA4H,KAAAqxB,IAAA1zB,EAAApJ,IAAAwD,EAAAkU,QAAAsmD,YAAAx6D,EAAAkU,QAAAsmD,WAAAlgE,QAAA,OAAA0F,EAAAkU,QAAAsmD,WAAA,CAAAp6D,EAAA,IAAA,KAAA/H,IAAA2H,GAAAm9D,YAAAn9D,EAAAm9D,YAAAta,eAAAxqD,KAAA2H,EAAAo+D,iBAAAjE,eAAA,EAAA95D,EAAAL,EAAAm9D,YAAA9kE,KAAA+H,EAAAJ,EAAAm9D,YAAA9kE,IAAAgI,EAAAL,EAAAm9D,YAAA9kE,KAAA+H,EAAAJ,EAAAm9D,YAAA9kE,IAAA,QAAA+H,EAAA,OAAAJ,EAAAg9D,kBAAA58D,IAAAJ,EAAAg9D,kBAAAl/D,KAAAkC,EAAAg9D,iBAAA58D,EAAA,YAAAJ,EAAAo9D,mBAAAh9D,GAAAJ,EAAAghE,QAAA5gE,IAAAJ,EAAAkU,QAAA3a,EAAAsD,UAAAmD,EAAAo+D,iBAAAp+D,EAAAo9D,mBAAAh9D,IAAA2D,KAAA,IAAA/D,EAAA87D,aAAA97D,EAAAkU,QAAA+lD,cAAAj6D,EAAAmvB,QAAAprB,IAAA9D,EAAAG,IAAAJ,EAAAg9D,iBAAA58D,EAAA,YAAAJ,EAAAo9D,mBAAAh9D,GAAAJ,EAAAghE,QAAA5gE,IAAAJ,EAAAkU,QAAA3a,EAAAsD,UAAAmD,EAAAo+D,iBAAAp+D,EAAAo9D,mBAAAh9D,IAAA2D,KAAA,IAAA/D,EAAA87D,aAAA97D,EAAAkU,QAAA+lD,cAAAj6D,EAAAmvB,QAAAprB,IAAA9D,EAAAG,GAAA,OAAAJ,EAAAg9D,mBAAAh9D,EAAAg9D,iBAAA,KAAAh9D,EAAAkU,QAAAlU,EAAAo+D,iBAAAr6D,KAAA,IAAA/D,EAAA87D,aAAA97D,EAAAkU,QAAA+lD,cAAAj6D,EAAAmvB,QAAAprB,GAAA9D,EAAAG,GAAA2D,GAAA9D,KAAA,GAAAD,EAAA69D,QAAA71C,QAAA,cAAAhoB,EAAAC,MAAA8D,EAAAnL,UAAA8lE,YAAA,SAAA36D,EAAAjG,GAAA,GAAAsC,GAAAC,EAAAJ,EAAAD,EAAAvH,KAAAJ,EAAAkB,EAAAwK,EAAAk9D,cAAA,QAAA5oE,EAAAo2B,GAAA,MAAA1qB,EAAAymB,iBAAAnyB,EAAAo2B,GAAA,QAAAp2B,EAAAA,EAAAk1B,QAAA,OAAAttB,EAAAD,EAAAq8D,WAAAr8D,EAAAkU,QAAA4mD,iBAAA,EAAA16D,EAAAH,EAAA,GAAAD,EAAAq8D,WAAAr8D,EAAA87D,cAAA97D,EAAAkU,QAAA4mD,eAAA/2D,EAAAhL,KAAAsL,SAAA,IAAA,WAAAhE,EAAA,IAAAD,EAAAJ,EAAAkU,QAAA4mD,eAAA96D,EAAAkU,QAAA2mD,aAAAz6D,EAAAJ,EAAAq8D,WAAAr8D,EAAAkU,QAAA2mD,cAAA76D,EAAAmgE,aAAAngE,EAAA87D,aAAAz7D,GAAA,EAAAvC,EAAA,MAAA,KAAA,OAAAuC,EAAA,IAAAD,EAAAJ,EAAAkU,QAAA4mD,eAAA16D,EAAAJ,EAAAq8D,WAAAr8D,EAAAkU,QAAA2mD,cAAA76D,EAAAmgE,aAAAngE,EAAA87D,aAAAz7D,GAAA,EAAAvC,EAAA,MAAA,KAAA,QAAA,GAAAtB,GAAA,IAAAuH,EAAAhL,KAAAogB,MAAA,EAAApV,EAAAhL,KAAAogB,OAAA9gB,EAAA8gB,QAAAnZ,EAAAkU,QAAA4mD,cAAA96D,GAAAmgE,aAAAngE,EAAAkhE,eAAA1kE,IAAA,EAAAsB,GAAAzF,EAAAijB,WAAA0M,QAAA,QAAA,MAAA,SAAA,SAAAjkB,EAAAnL,UAAAsoE,eAAA,SAAA3nE,GAAA,GAAAuE,GAAAkC,EAAA+D,EAAAtL,IAAA,IAAAqF,EAAAiG,EAAAo9D,sBAAAnhE,EAAA,EAAAzG,EAAAuE,EAAAA,EAAAxD,OAAA,GAAAf,EAAAuE,EAAAA,EAAAxD,OAAA,OAAA,KAAA,GAAAjC,KAAAyF,GAAA,CAAA,GAAAvE,EAAAuE,EAAAzF,GAAA,CAAAkB,EAAAyG,CAAA,OAAAA,EAAAlC,EAAAzF,GAAA,MAAAkB,IAAAwK,EAAAnL,UAAAwoE,cAAA,WAAA,GAAAr9D,GAAAtL,IAAAsL,GAAAmQ,QAAAwlD,MAAA,OAAA31D,EAAAg4D,OAAAxiE,EAAA,KAAAwK,EAAAg4D,OAAA1gE,IAAA,cAAA0I,EAAA26D,aAAArjE,IAAA,mBAAA9B,EAAAghC,MAAAx2B,EAAAs9D,UAAAt9D,GAAA,IAAA1I,IAAA,mBAAA9B,EAAAghC,MAAAx2B,EAAAs9D,UAAAt9D,GAAA,IAAAA,EAAA85D,QAAAxiE,IAAA,0BAAA0I,EAAAmQ,QAAA2+B,UAAA,GAAA9uC,EAAAs4D,WAAAt4D,EAAAmQ,QAAA2mD,eAAA92D,EAAAq4D,YAAAr4D,EAAAq4D,WAAA/gE,IAAA,cAAA0I,EAAA26D,aAAA36D,EAAAo4D,YAAAp4D,EAAAo4D,WAAA9gE,IAAA,cAAA0I,EAAA26D,cAAA36D,EAAA64D,MAAAvhE,IAAA,mCAAA0I,EAAA+6D,cAAA/6D,EAAA64D,MAAAvhE,IAAA,kCAAA0I,EAAA+6D,cAAA/6D,EAAA64D,MAAAvhE,IAAA,+BAAA0I,EAAA+6D,cAAA/6D,EAAA64D,MAAAvhE,IAAA,qCAAA0I,EAAA+6D,cAAA/6D,EAAA64D,MAAAvhE,IAAA,cAAA0I,EAAA46D,cAAAplE,EAAAkD,UAAApB,IAAA0I,EAAAk6D,iBAAAl6D,EAAAu9D,YAAAv9D,EAAAw9D,qBAAAx9D,EAAAmQ,QAAA2kD,iBAAA,GAAA90D,EAAA64D,MAAAvhE,IAAA,gBAAA0I,EAAAi7D,YAAAj7D,EAAAmQ,QAAA6lD,iBAAA,GAAAxgE,EAAAwK,EAAAw4D,aAAAjhD,WAAAjgB,IAAA,cAAA0I,EAAA66D,eAAArlE,EAAAoF,QAAAtD,IAAA,iCAAA0I,EAAAk7D,YAAAl7D,EAAAy9D,mBAAAjoE,EAAAoF,QAAAtD,IAAA,sBAAA0I,EAAAk7D,YAAAl7D,EAAA6sB,QAAAr3B,EAAA,oBAAAwK,EAAAw4D,aAAAlhE,IAAA,YAAA0I,EAAAymB,gBAAAjxB,EAAAoF,QAAAtD,IAAA,oBAAA0I,EAAAk7D,YAAAl7D,EAAA86D,aAAAtlE,EAAAkD,UAAApB,IAAA,qBAAA0I,EAAAk7D,YAAAl7D,EAAA86D,cAAA96D,EAAAnL,UAAA2oE,mBAAA,WAAA,GAAAx9D,GAAAtL,IAAAsL,GAAA64D,MAAAvhE,IAAA,mBAAA9B,EAAAghC,MAAAx2B,EAAAs9D,UAAAt9D,GAAA,IAAAA,EAAA64D,MAAAvhE,IAAA,mBAAA9B,EAAAghC,MAAAx2B,EAAAs9D,UAAAt9D,GAAA,KAAAA,EAAAnL,UAAA6oE,YAAA,WAAA,GAAA19D,GAAAxK,EAAAd,IAAAc,GAAA2a,QAAAumD,KAAA,IAAA12D,EAAAxK,EAAAijE,QAAAlhD,WAAAA,WAAAvX,EAAA4sB,WAAA,SAAAp3B,EAAAskE,QAAAz2C,QAAAO,OAAA5jB,KAAAA,EAAAnL,UAAA+lE,aAAA,SAAAplE,GAAA,GAAAwK,GAAAtL,IAAAsL,GAAA65D,eAAA,IAAArkE,EAAAqyC,2BAAAryC,EAAA4hC,kBAAA5hC,EAAAixB,mBAAAzmB,EAAAnL,UAAAkd,QAAA,SAAA/R,GAAA,GAAAjG,GAAArF,IAAAqF,GAAA0gE,gBAAA1gE,EAAA++D,eAAA/+D,EAAAsjE,gBAAA7nE,EAAA,gBAAAuE,EAAA+/D,SAAAx2C,SAAAvpB,EAAAi+D,OAAAj+D,EAAAi+D,MAAAhmD,SAAAjY,EAAAs+D,YAAAt+D,EAAAs+D,WAAA9hE,SAAAwD,EAAAs+D,WAAAr1C,YAAA,2CAAA4J,WAAA,sCAAAznB,IAAA,UAAA,IAAApL,EAAAohE,SAAApjE,KAAAgC,EAAAoW,QAAAglD,YAAAp7D,EAAAs+D,WAAArmD,UAAAjY,EAAAq+D,YAAAr+D,EAAAq+D,WAAA7hE,SAAAwD,EAAAq+D,WAAAp1C,YAAA,2CAAA4J,WAAA,sCAAAznB,IAAA,UAAA,IAAApL,EAAAohE,SAAApjE,KAAAgC,EAAAoW,QAAAilD,YAAAr7D,EAAAq+D,WAAApmD,UAAAjY,EAAA0+D,UAAA1+D,EAAA0+D,QAAAz1C,YAAA,qEAAA4J,WAAA,eAAAA,WAAA,oBAAA3N,KAAA,WAAAzpB,EAAAd,MAAA4tB,KAAA,QAAA9sB,EAAAd,MAAAM,KAAA,sBAAA+E,EAAAy+D,YAAAjhD,SAAA7iB,KAAAyb,QAAAymD,OAAAtzC,SAAAvpB,EAAAy+D,YAAAl1C,SAAAvpB,EAAA8+D,MAAAv1C,SAAAvpB,EAAA+/D,QAAAl2C,OAAA7pB,EAAA0+D,UAAA1+D,EAAA2jE,cAAA3jE,EAAA+/D,QAAA92C,YAAA,gBAAAjpB,EAAA+/D,QAAA92C,YAAA,qBAAAjpB,EAAA+/D,QAAA92C,YAAA,gBAAAjpB,EAAAi/D,WAAA,EAAAh5D,GAAAjG,EAAA+/D,QAAA71C,QAAA,WAAAlqB,KAAAiG,EAAAnL,UAAAonE,kBAAA,SAAAzmE,GAAA,GAAAwK,GAAAtL,KAAAqF,IAAAA,GAAAiG,EAAAi6D,gBAAA,GAAAj6D,EAAAmQ,QAAA4lD,QAAA,EAAA/1D,EAAAw4D,YAAArzD,IAAApL,GAAAiG,EAAAy4D,QAAAx1C,GAAAztB,GAAA2P,IAAApL,IAAAiG,EAAAnL,UAAA8oE,UAAA,SAAAnoE,EAAAwK,GAAA,GAAAjG,GAAArF,IAAAqF,GAAAu/D,kBAAA,GAAAv/D,EAAA0+D,QAAAx1C,GAAAztB,GAAA2P,KAAAwnC,OAAA5yC,EAAAoW,QAAAw8B,SAAA5yC,EAAA0+D,QAAAx1C,GAAAztB,GAAAs6B,SAAAuzB,QAAA,GAAAtpD,EAAAoW,QAAAwY,MAAA5uB,EAAAoW,QAAA4iB,OAAA/yB,KAAAjG,EAAAiiE,gBAAAxmE,GAAAuE,EAAA0+D,QAAAx1C,GAAAztB,GAAA2P,KAAAk+C,QAAA,EAAA1W,OAAA5yC,EAAAoW,QAAAw8B,SAAA3sC,GAAAkB,WAAA,WAAAnH,EAAAkiE,kBAAAzmE,GAAAwK,EAAAjL,QAAAgF,EAAAoW,QAAAwY,SAAA3oB,EAAAnL,UAAA+oE,aAAA,SAAApoE,GAAA,GAAAwK,GAAAtL,IAAAsL,GAAAs5D,kBAAA,EAAAt5D,EAAAy4D,QAAAx1C,GAAAztB,GAAAs6B,SAAAuzB,QAAA,EAAA1W,OAAA3sC,EAAAmQ,QAAAw8B,OAAA,GAAA3sC,EAAAmQ,QAAAwY,MAAA3oB,EAAAmQ,QAAA4iB,SAAA/yB,EAAAg8D,gBAAAxmE,GAAAwK,EAAAy4D,QAAAx1C,GAAAztB,GAAA2P,KAAAk+C,QAAA,EAAA1W,OAAA3sC,EAAAmQ,QAAAw8B,OAAA,MAAA3sC,EAAAnL,UAAAgpE,aAAA79D,EAAAnL,UAAAipE,YAAA,SAAAtoE,GAAA,GAAAwK,GAAAtL,IAAA,QAAAc,IAAAwK,EAAA+5D,aAAA/5D,EAAAy4D,QAAAz4D,EAAA07D,SAAA17D,EAAAw4D,YAAAjhD,SAAA7iB,KAAAyb,QAAAymD,OAAAtzC,SAAAtjB,EAAA+5D,aAAAgE,OAAAvoE,GAAAmsC,SAAA3hC,EAAAw4D,aAAAx4D,EAAA47D,WAAA57D,EAAAnL,UAAAmpE,aAAA,WAAA,GAAAh+D,GAAAtL,IAAAsL,GAAA85D,QAAAxiE,IAAA,0BAAAb,GAAA,yBAAA,sBAAA,SAAAsD,GAAAA,EAAA8tC,0BAAA,IAAA5rC,GAAAzG,EAAAd,KAAAwM,YAAA,WAAAlB,EAAAmQ,QAAAmmD,eAAAt2D,EAAAu5D,SAAAt9D,EAAAyuB,GAAA,UAAA1qB,EAAAw6D,aAAA,MAAAx6D,EAAAnL,UAAAopE,WAAAj+D,EAAAnL,UAAAqpE,kBAAA,WAAA,GAAA1oE,GAAAd,IAAA,OAAAc,GAAAuiE,cAAA/3D,EAAAnL,UAAA2nE,YAAA,WAAA,GAAAhnE,GAAAd,KAAAsL,EAAA,EAAAjG,EAAA,EAAAkC,EAAA,CAAA,IAAAzG,EAAA2a,QAAA8lD,YAAA,EAAA,KAAAj2D,EAAAxK,EAAA8iE,cAAAr8D,EAAA+D,EAAAjG,EAAAvE,EAAA2a,QAAA4mD,eAAAh9D,GAAAvE,EAAA2a,QAAA4mD,gBAAAvhE,EAAA2a,QAAA2mD,aAAAthE,EAAA2a,QAAA4mD,eAAAvhE,EAAA2a,QAAA2mD,iBAAA,IAAAthE,EAAA2a,QAAAolD,cAAA,EAAAt5D,EAAAzG,EAAA8iE,eAAA,IAAA9iE,EAAA2a,QAAA+kD,SAAA,KAAAl1D,EAAAxK,EAAA8iE,cAAAr8D,EAAA+D,EAAAjG,EAAAvE,EAAA2a,QAAA4mD,eAAAh9D,GAAAvE,EAAA2a,QAAA4mD,gBAAAvhE,EAAA2a,QAAA2mD,aAAAthE,EAAA2a,QAAA4mD,eAAAvhE,EAAA2a,QAAA2mD,iBAAA76D,GAAA,EAAAiI,KAAAg7B,MAAA1pC,EAAA8iE,WAAA9iE,EAAA2a,QAAA2mD,cAAAthE,EAAA2a,QAAA4mD,eAAA,OAAA96D,GAAA,GAAA+D,EAAAnL,UAAAspE,QAAA,SAAA3oE,GAAA,GAAAuE,GAAAkC,EAAAI,EAAA2D,EAAAtL,KAAAJ,EAAA,CAAA,OAAA0L,GAAA24D,YAAA,EAAA18D,EAAA+D,EAAAy4D,QAAAhpC,QAAAmK,aAAA,GAAA55B,EAAAmQ,QAAA8lD,YAAA,GAAAj2D,EAAAs4D,WAAAt4D,EAAAmQ,QAAA2mD,eAAA92D,EAAA24D,YAAA34D,EAAAu4D,WAAAv4D,EAAAmQ,QAAA2mD,gBAAAxiE,EAAA2H,EAAA+D,EAAAmQ,QAAA2mD,iBAAA92D,EAAAs4D,WAAAt4D,EAAAmQ,QAAA4mD,iBAAA,GAAAvhE,EAAAwK,EAAAmQ,QAAA4mD,eAAA/2D,EAAAs4D,YAAAt4D,EAAAs4D,WAAAt4D,EAAAmQ,QAAA2mD,eAAAthE,EAAAwK,EAAAs4D,YAAAt4D,EAAA24D,aAAA34D,EAAAmQ,QAAA2mD,cAAAthE,EAAAwK,EAAAs4D,aAAAt4D,EAAAu4D,cAAAjkE,GAAA0L,EAAAmQ,QAAA2mD,cAAAthE,EAAAwK,EAAAs4D,aAAAr8D,OAAA+D,EAAA24D,YAAA34D,EAAAs4D,WAAAt4D,EAAAmQ,QAAA4mD,eAAA/2D,EAAAu4D,cAAAjkE,EAAA0L,EAAAs4D,WAAAt4D,EAAAmQ,QAAA4mD,eAAA96D,QAAAzG,EAAAwK,EAAAmQ,QAAA2mD,aAAA92D,EAAAs4D,aAAAt4D,EAAA24D,aAAAnjE,EAAAwK,EAAAmQ,QAAA2mD,aAAA92D,EAAAs4D,YAAAt4D,EAAAu4D,WAAAjkE,GAAAkB,EAAAwK,EAAAmQ,QAAA2mD,aAAA92D,EAAAs4D,YAAAr8D,GAAA+D,EAAAs4D,YAAAt4D,EAAAmQ,QAAA2mD,eAAA92D,EAAA24D,YAAA,EAAArkE,EAAA,GAAA0L,EAAAmQ,QAAAolD,cAAA,GAAAv1D,EAAAmQ,QAAA8lD,YAAA,EAAAj2D,EAAA24D,aAAA34D,EAAAu4D,WAAAr0D,KAAAC,MAAAnE,EAAAmQ,QAAA2mD,aAAA,GAAA92D,EAAAu4D,WAAAv4D,EAAAmQ,QAAAolD,cAAA,IAAAv1D,EAAA24D,YAAA,EAAA34D,EAAA24D,aAAA34D,EAAAu4D,WAAAr0D,KAAAC,MAAAnE,EAAAmQ,QAAA2mD,aAAA,IAAA/8D,EAAAiG,EAAAmQ,QAAAksB,YAAA,EAAA7mC,EAAAwK,EAAAu4D,cAAAv4D,EAAA24D,YAAAnjE,EAAAyG,KAAA3H,EAAA0L,EAAAmQ,QAAAmnD,iBAAA,IAAAj7D,EAAA2D,EAAAs4D,YAAAt4D,EAAAmQ,QAAA2mD,cAAA92D,EAAAmQ,QAAA8lD,YAAA,EAAAj2D,EAAAw4D,YAAAjhD,SAAA,gBAAA0L,GAAAztB,GAAAwK,EAAAw4D,YAAAjhD,SAAA,gBAAA0L,GAAAztB,EAAAwK,EAAAmQ,QAAA2mD,cAAA/8D,EAAAiG,EAAAmQ,QAAAwmD,OAAA,EAAAt6D,EAAA,OAAA2D,EAAAw4D,YAAAvtC,QAAA5uB,EAAA,GAAA+hE,WAAA/hE,EAAA4uB,SAAA,EAAA5uB,EAAA,MAAAA,EAAA,GAAA+hE,WAAA,EAAAp+D,EAAAmQ,QAAAolD,cAAA,IAAAl5D,EAAA2D,EAAAs4D,YAAAt4D,EAAAmQ,QAAA2mD,cAAA92D,EAAAmQ,QAAA8lD,YAAA,EAAAj2D,EAAAw4D,YAAAjhD,SAAA,gBAAA0L,GAAAztB,GAAAwK,EAAAw4D,YAAAjhD,SAAA,gBAAA0L,GAAAztB,EAAAwK,EAAAmQ,QAAA2mD,aAAA,GAAA/8D,EAAAiG,EAAAmQ,QAAAwmD,OAAA,EAAAt6D,EAAA,OAAA2D,EAAAw4D,YAAAvtC,QAAA5uB,EAAA,GAAA+hE,WAAA/hE,EAAA4uB,SAAA,EAAA5uB,EAAA,MAAAA,EAAA,GAAA+hE,WAAA,EAAArkE,IAAAiG,EAAA64D,MAAA5tC,QAAA5uB,EAAA2lB,cAAA,IAAAjoB,GAAAiG,EAAAnL,UAAAwpE,UAAAr+D,EAAAnL,UAAAypE,eAAA,SAAA9oE,GAAA,GAAAwK,GAAAtL,IAAA,OAAAsL,GAAAmQ,QAAA3a,IAAAwK,EAAAnL,UAAAuoE,oBAAA,WAAA,GAAA9oE,GAAAkB,EAAAd,KAAAsL,EAAA,EAAAjG,EAAA,EAAAkC,IAAA,KAAAzG,EAAA2a,QAAA8lD,YAAA,EAAA3hE,EAAAkB,EAAA8iE,YAAAt4D,KAAAxK,EAAA2a,QAAA4mD,eAAAh9D,KAAAvE,EAAA2a,QAAA4mD,eAAAziE,EAAA,EAAAkB,EAAA8iE,YAAAhkE,EAAA0L,GAAA/D,EAAA5E,KAAA2I,GAAAA,EAAAjG,EAAAvE,EAAA2a,QAAA4mD,eAAAh9D,GAAAvE,EAAA2a,QAAA4mD,gBAAAvhE,EAAA2a,QAAA2mD,aAAAthE,EAAA2a,QAAA4mD,eAAAvhE,EAAA2a,QAAA2mD,YAAA,OAAA76D,IAAA+D,EAAAnL,UAAA0pE,SAAA,WAAA,MAAA7pE,OAAAsL,EAAAnL,UAAA2pE,cAAA,WAAA,GAAAzkE,GAAAkC,EAAA3H,EAAA0L,EAAAtL,IAAA,OAAAJ,GAAA0L,EAAAmQ,QAAAolD,cAAA,EAAAv1D,EAAAu4D,WAAAr0D,KAAAC,MAAAnE,EAAAmQ,QAAA2mD,aAAA,GAAA,EAAA92D,EAAAmQ,QAAA8mD,gBAAA,GAAAj3D,EAAAw4D,YAAAz9C,KAAA,gBAAAkE,KAAA,SAAAllB,EAAAsC,GAAA,MAAAA,GAAA+hE,WAAA9pE,EAAAkB,EAAA6G,GAAA2lB,aAAA,KAAAhiB,EAAA44D,WAAA38D,EAAAI,GAAA,GAAA,SAAAtC,EAAAmK,KAAA+P,IAAAze,EAAAyG,GAAAqmB,KAAA,oBAAAtiB,EAAA+3D,eAAA,GAAA/3D,EAAAmQ,QAAA4mD,gBAAA/2D,EAAAnL,UAAA46C,KAAAzvC,EAAAnL,UAAA4pE,UAAA,SAAAjpE,EAAAwK,GAAA,GAAAjG,GAAArF,IAAAqF,GAAA4gE,aAAA3lE,MAAAsL,QAAA,QAAA8U,MAAAmV,SAAA/0B,KAAAwK,IAAAA,EAAAnL,UAAAJ,KAAA,SAAAuL,GAAA,GAAAjG,GAAArF,IAAAc,GAAAuE,EAAA+/D,SAAAn1C,SAAA,uBAAAnvB,EAAAuE,EAAA+/D,SAAAl4C,SAAA,qBAAA7nB,EAAA+iE,YAAA/iE,EAAA0iE,WAAA1iE,EAAA2kE,WAAA3kE,EAAA4kE,YAAA5kE,EAAA6kE,aAAA7kE,EAAA8kE,mBAAA9kE,EAAA+kE,eAAA/kE,EAAA6iE,aAAA7iE,EAAAijE,iBAAA,GAAAjjE,EAAAikE,gBAAAh+D,GAAAjG,EAAA+/D,QAAA71C,QAAA,QAAAlqB,IAAAA,EAAAoW,QAAA2kD,iBAAA,GAAA/6D,EAAAglE,UAAAhlE,EAAAoW,QAAAklD,WAAAt7D,EAAA2/D,QAAA,EAAA3/D,EAAAygE,aAAAx6D,EAAAnL,UAAAkqE,QAAA,WAAA,GAAA/+D,GAAAtL,IAAAsL,GAAAy4D,QAAA5mD,IAAA7R,EAAAw4D,YAAAz9C,KAAA,kBAAAuH,MAAAg5C,cAAA,OAAAC,SAAA,OAAAxgD,KAAA,4BAAAuH,MAAAi5C,SAAA,OAAAv7D,EAAAw4D,YAAAl2C,KAAA,OAAA,WAAAtiB,EAAAy4D,QAAAvsC,IAAAlsB,EAAAw4D,YAAAz9C,KAAA,kBAAAkE,KAAA,SAAAllB,GAAAvE,EAAAd,MAAA4tB,MAAA08C,KAAA,SAAAC,mBAAA,cAAAj/D,EAAAk7D,YAAAnhE,MAAA,OAAAiG,EAAAg4D,OAAAh4D,EAAAg4D,MAAA11C,KAAA,OAAA,WAAAvH,KAAA,MAAAkE,KAAA,SAAAllB,GAAAvE,EAAAd,MAAA4tB,MAAA08C,KAAA,eAAAE,gBAAA,QAAAC,gBAAA,aAAAn/D,EAAAk7D,YAAAnhE,EAAA2tB,GAAA,cAAA1nB,EAAAk7D,YAAAnhE,MAAA01B,QAAAnN,KAAA,gBAAA,QAAA6Y,MAAApgB,KAAA,UAAAuH,KAAA,OAAA,UAAA6Y,MAAA3R,QAAA,OAAAlH,KAAA,OAAA,WAAAtiB,EAAAq7D,eAAAr7D,EAAAnL,UAAAuqE,gBAAA,WAAA,GAAA5pE,GAAAd,IAAAc,GAAA2a,QAAA2+B,UAAA,GAAAt5C,EAAA8iE,WAAA9iE,EAAA2a,QAAA2mD,eAAAthE,EAAA6iE,WAAA/gE,IAAA,eAAAb,GAAA,eAAA6J,QAAA,YAAA9K,EAAAmlE,aAAAnlE,EAAA4iE,WAAA9gE,IAAA,eAAAb,GAAA,eAAA6J,QAAA,QAAA9K,EAAAmlE,eAAA36D,EAAAnL,UAAAwqE,cAAA,WAAA,GAAAr/D,GAAAtL,IAAAsL,GAAAmQ,QAAAwlD,QAAA,GAAA31D,EAAAs4D,WAAAt4D,EAAAmQ,QAAA2mD,cAAAthE,EAAA,KAAAwK,EAAAg4D,OAAAvhE,GAAA,eAAA6J,QAAA,SAAAN,EAAA26D,aAAA36D,EAAAmQ,QAAAwlD,QAAA,GAAA31D,EAAAmQ,QAAAomD,oBAAA,GAAA/gE,EAAA,KAAAwK,EAAAg4D,OAAAvhE,GAAA,mBAAAjB,EAAAghC,MAAAx2B,EAAAs9D,UAAAt9D,GAAA,IAAAvJ,GAAA,mBAAAjB,EAAAghC,MAAAx2B,EAAAs9D,UAAAt9D,GAAA,KAAAA,EAAAnL,UAAAyqE,gBAAA,WAAA,GAAAt/D,GAAAtL,IAAAsL,GAAAmQ,QAAAkmD,eAAAr2D,EAAA64D,MAAApiE,GAAA,mBAAAjB,EAAAghC,MAAAx2B,EAAAs9D,UAAAt9D,GAAA,IAAAA,EAAA64D,MAAApiE,GAAA,mBAAAjB,EAAAghC,MAAAx2B,EAAAs9D,UAAAt9D,GAAA,MAAAA,EAAAnL,UAAAgqE,iBAAA,WAAA,GAAA7+D,GAAAtL,IAAAsL,GAAAo/D,kBAAAp/D,EAAAq/D,gBAAAr/D,EAAAs/D,kBAAAt/D,EAAA64D,MAAApiE,GAAA,oCAAA8oE,OAAA,SAAAv/D,EAAA+6D,cAAA/6D,EAAA64D,MAAApiE,GAAA,mCAAA8oE,OAAA,QAAAv/D,EAAA+6D,cAAA/6D,EAAA64D,MAAApiE,GAAA,gCAAA8oE,OAAA,OAAAv/D,EAAA+6D,cAAA/6D,EAAA64D,MAAApiE,GAAA,sCAAA8oE,OAAA,OAAAv/D,EAAA+6D,cAAA/6D,EAAA64D,MAAApiE,GAAA,cAAAuJ,EAAA46D,cAAAplE,EAAAkD,UAAAjC,GAAAuJ,EAAAk6D,iBAAA1kE,EAAAghC,MAAAx2B,EAAAu9D,WAAAv9D,IAAAA,EAAAmQ,QAAA2kD,iBAAA,GAAA90D,EAAA64D,MAAApiE,GAAA,gBAAAuJ,EAAAi7D,YAAAj7D,EAAAmQ,QAAA6lD,iBAAA,GAAAxgE,EAAAwK,EAAAw4D,aAAAjhD,WAAA9gB,GAAA,cAAAuJ,EAAA66D,eAAArlE,EAAAoF,QAAAnE,GAAA,iCAAAuJ,EAAAk7D,YAAA1lE,EAAAghC,MAAAx2B,EAAAy9D,kBAAAz9D,IAAAxK,EAAAoF,QAAAnE,GAAA,sBAAAuJ,EAAAk7D,YAAA1lE,EAAAghC,MAAAx2B,EAAA6sB,OAAA7sB,IAAAxK,EAAA,oBAAAwK,EAAAw4D,aAAA/hE,GAAA,YAAAuJ,EAAAymB,gBAAAjxB,EAAAoF,QAAAnE,GAAA,oBAAAuJ,EAAAk7D,YAAAl7D,EAAA86D,aAAAtlE,EAAAkD,UAAAjC,GAAA,qBAAAuJ,EAAAk7D,YAAAl7D,EAAA86D,cAAA96D,EAAAnL,UAAA2qE,OAAA,WAAA,GAAAhqE,GAAAd,IAAAc,GAAA2a,QAAA2+B,UAAA,GAAAt5C,EAAA8iE,WAAA9iE,EAAA2a,QAAA2mD,eAAAthE,EAAA6iE,WAAAz1C,OAAAptB,EAAA4iE,WAAAx1C,QAAAptB,EAAA2a,QAAAwlD,QAAA,GAAAngE,EAAA8iE,WAAA9iE,EAAA2a,QAAA2mD,cAAAthE,EAAAwiE,MAAAp1C,QAAA5iB,EAAAnL,UAAAomE,WAAA,SAAAzlE,GAAA,GAAAwK,GAAAtL,IAAAc,GAAA+kB,OAAAusB,QAAAjuC,MAAA,2BAAA,KAAArD,EAAA+wB,SAAAvmB,EAAAmQ,QAAA2kD,iBAAA,EAAA90D,EAAA26D,aAAA3lE,MAAAsL,QAAAN,EAAAmQ,QAAAwmD,OAAA,EAAA,OAAA,cAAA,KAAAnhE,EAAA+wB,SAAAvmB,EAAAmQ,QAAA2kD,iBAAA,GAAA90D,EAAA26D,aAAA3lE,MAAAsL,QAAAN,EAAAmQ,QAAAwmD,OAAA,EAAA,WAAA,YAAA32D,EAAAnL,UAAAshE,SAAA,WAAA,QAAA75D,GAAAvC,GAAAvE,EAAA,iBAAAuE,GAAAklB,KAAA,WAAA,GAAAllB,GAAAvE,EAAAd,MAAAuH,EAAAzG,EAAAd,MAAA4tB,KAAA,aAAAhuB,EAAAoE,SAAAC,cAAA,MAAArE,GAAAgS,OAAA,WAAAvM,EAAA+1B,SAAAuzB,QAAA,GAAA,IAAA,WAAAtpD,EAAAuoB,KAAA,MAAArmB,GAAA6zB,SAAAuzB,QAAA,GAAA,IAAA,WAAAtpD,EAAA6yB,WAAA,aAAA5J,YAAA,mBAAAhjB,EAAA85D,QAAA71C,QAAA,cAAAjkB,EAAAjG,EAAAkC,OAAA3H,EAAAiS,QAAA,WAAAxM,EAAA6yB,WAAA,aAAA5J,YAAA,iBAAApB,SAAA,wBAAA5hB,EAAA85D,QAAA71C,QAAA,iBAAAjkB,EAAAjG,EAAAkC,KAAA3H,EAAAsI,IAAAX,IAAA,GAAAlC,GAAAkC,EAAA3H,EAAA+H,EAAA2D,EAAAtL,IAAAsL,GAAAmQ,QAAAolD,cAAA,EAAAv1D,EAAAmQ,QAAA8lD,YAAA,GAAA3hE,EAAA0L,EAAA+3D,cAAA/3D,EAAAmQ,QAAA2mD,aAAA,EAAA,GAAAz6D,EAAA/H,EAAA0L,EAAAmQ,QAAA2mD,aAAA,IAAAxiE,EAAA4P,KAAAkP,IAAA,EAAApT,EAAA+3D,cAAA/3D,EAAAmQ,QAAA2mD,aAAA,EAAA,IAAAz6D,EAAA,GAAA2D,EAAAmQ,QAAA2mD,aAAA,EAAA,GAAA92D,EAAA+3D,eAAAzjE,EAAA0L,EAAAmQ,QAAA8lD,SAAAj2D,EAAAmQ,QAAA2mD,aAAA92D,EAAA+3D,aAAA/3D,EAAA+3D,aAAA17D,EAAA6H,KAAAg7B,KAAA5qC,EAAA0L,EAAAmQ,QAAA2mD,cAAA92D,EAAAmQ,QAAA4lD,QAAA,IAAAzhE,EAAA,GAAAA,IAAA+H,GAAA2D,EAAAs4D,YAAAj8D,MAAAtC,EAAAiG,EAAA85D,QAAA/+C,KAAA,gBAAAjmB,MAAAR,EAAA+H,GAAAC,EAAAvC,GAAAiG,EAAAs4D,YAAAt4D,EAAAmQ,QAAA2mD,cAAA76D,EAAA+D,EAAA85D,QAAA/+C,KAAA,gBAAAze,EAAAL,IAAA+D,EAAA+3D,cAAA/3D,EAAAs4D,WAAAt4D,EAAAmQ,QAAA2mD,cAAA76D,EAAA+D,EAAA85D,QAAA/+C,KAAA,iBAAAjmB,MAAA,EAAAkL,EAAAmQ,QAAA2mD,cAAAx6D,EAAAL,IAAA,IAAA+D,EAAA+3D,eAAA97D,EAAA+D,EAAA85D,QAAA/+C,KAAA,iBAAAjmB,SAAAkL,EAAAmQ,QAAA2mD,cAAAx6D,EAAAL,KAAA+D,EAAAnL,UAAA+pE,WAAA,WAAA,GAAAppE,GAAAd,IAAAc,GAAAslE,cAAAtlE,EAAAgjE,YAAArzD,KAAAk+C,QAAA,IAAA7tD,EAAAskE,QAAA92C,YAAA,iBAAAxtB,EAAAgqE,SAAA,gBAAAhqE,EAAA2a,QAAAgmD,UAAA3gE,EAAAiqE,uBAAAz/D,EAAAnL,UAAA2vB,KAAAxkB,EAAAnL,UAAA6qE,UAAA,WAAA,GAAAlqE,GAAAd,IAAAc,GAAAmlE,aAAA3lE,MAAAsL,QAAA,WAAAN,EAAAnL,UAAA4oE,kBAAA,WAAA,GAAAjoE,GAAAd,IAAAc,GAAAwnE,kBAAAxnE,EAAAslE,eAAA96D,EAAAnL,UAAA8qE,MAAA3/D,EAAAnL,UAAA+qE,WAAA,WAAA,GAAApqE,GAAAd,IAAAc,GAAAilE,gBAAAjlE,EAAAkkE,QAAA,GAAA15D,EAAAnL,UAAAgrE,KAAA7/D,EAAAnL,UAAAirE,UAAA,WAAA,GAAAtqE,GAAAd,IAAAc,GAAAglE,WAAAhlE,EAAA2a,QAAAklD,UAAA,EAAA7/D,EAAAkkE,QAAA,EAAAlkE,EAAA+jE,UAAA,EAAA/jE,EAAAgkE,aAAA,GAAAx5D,EAAAnL,UAAAkrE,UAAA,SAAAvqE,GAAA,GAAAwK,GAAAtL,IAAAsL,GAAAg5D,YAAAh5D,EAAA85D,QAAA71C,QAAA,eAAAjkB,EAAAxK,IAAAwK,EAAA03D,WAAA,EAAA13D,EAAA86D,cAAA96D,EAAA44D,UAAA,KAAA54D,EAAAmQ,QAAAklD,UAAAr1D,EAAAw6D,WAAAx6D,EAAAmQ,QAAA2kD,iBAAA,GAAA90D,EAAA++D,YAAA/+D,EAAAnL,UAAAk2B,KAAA/qB,EAAAnL,UAAAmrE,UAAA,WAAA,GAAAxqE,GAAAd,IAAAc,GAAAmlE,aAAA3lE,MAAAsL,QAAA,eAAAN,EAAAnL,UAAA4xB,eAAA,SAAAjxB,GAAAA,EAAAixB,kBAAAzmB,EAAAnL,UAAA4qE,oBAAA,SAAAz/D,GAAAA,EAAAA,GAAA,CAAA,IAAA1L,GAAA+H,EAAAC,EAAAvC,EAAArF,KAAAuH,EAAAzG,EAAA,iBAAAuE,EAAA+/D,QAAA79D,GAAA1F,QAAAjC,EAAA2H,EAAAwzB,QAAApzB,EAAA/H,EAAAguB,KAAA,aAAAhmB,EAAA5D,SAAAC,cAAA,OAAA2D,EAAAgK,OAAA,WAAAhS,EAAAguB,KAAA,MAAAjmB,GAAAuwB,WAAA,aAAA5J,YAAA,iBAAAjpB,EAAAoW,QAAA4kD,kBAAA,GAAAh7D,EAAA+gE,cAAA/gE,EAAA+/D,QAAA71C,QAAA,cAAAlqB,EAAAzF,EAAA+H,IAAAtC,EAAA0lE,uBAAAnjE,EAAAiK,QAAA,WAAA,EAAAvG,EAAAkB,WAAA,WAAAnH,EAAA0lE,oBAAAz/D,EAAA,IAAA,MAAA1L,EAAAs4B,WAAA,aAAA5J,YAAA,iBAAApB,SAAA,wBAAA7nB,EAAA+/D,QAAA71C,QAAA,iBAAAlqB,EAAAzF,EAAA+H,IAAAtC,EAAA0lE,wBAAAnjE,EAAAM,IAAAP,GAAAtC,EAAA+/D,QAAA71C,QAAA,mBAAAlqB,KAAAiG,EAAAnL,UAAAu2B,QAAA,SAAAprB,GAAA,GAAA/D,GAAA3H,EAAAyF,EAAArF,IAAAJ,GAAAyF,EAAAu+D,WAAAv+D,EAAAoW,QAAA2mD,cAAA/8D,EAAAoW,QAAA8lD,UAAAl8D,EAAAg+D,aAAAzjE,IAAAyF,EAAAg+D,aAAAzjE,GAAAyF,EAAAu+D,YAAAv+D,EAAAoW,QAAA2mD,eAAA/8D,EAAAg+D,aAAA,GAAA97D,EAAAlC,EAAAg+D,aAAAh+D,EAAAgY,SAAA,GAAAvc,EAAAsD,OAAAiB,EAAAA,EAAA09D,UAAAM,aAAA97D,IAAAlC,EAAAtF,OAAAuL,GAAAjG,EAAA4gE,aAAA3lE,MAAAsL,QAAA,QAAA8U,MAAAnZ,KAAA,IAAA+D,EAAAnL,UAAAumE,oBAAA,WAAA,GAAArhE,GAAAkC,EAAA3H,EAAA0L,EAAAtL,KAAA2H,EAAA2D,EAAAmQ,QAAAsmD,YAAA,IAAA,IAAA,UAAAjhE,EAAAM,KAAAuG,IAAAA,EAAA9F,OAAA,CAAAyJ,EAAAw2D,UAAAx2D,EAAAmQ,QAAAqmD,WAAA,QAAA,KAAAz8D,IAAAsC,GAAA,GAAA/H,EAAA0L,EAAAo5D,YAAA7iE,OAAA,EAAA0F,EAAAI,EAAAtC,GAAAkmE,WAAA5jE,EAAAyiD,eAAA/kD,GAAA,CAAA,KAAAzF,GAAA,GAAA0L,EAAAo5D,YAAA9kE,IAAA0L,EAAAo5D,YAAA9kE,KAAA2H,GAAA+D,EAAAo5D,YAAA5hE,OAAAlD,EAAA,GAAAA,GAAA0L,GAAAo5D,YAAA/hE,KAAA4E,GAAA+D,EAAAq5D,mBAAAp9D,GAAAI,EAAAtC,GAAA6rB,SAAA5lB,EAAAo5D,YAAAv0D,KAAA,SAAArP,EAAAuE,GAAA,MAAAiG,GAAAmQ,QAAAimD,YAAA5gE,EAAAuE,EAAAA,EAAAvE,MAAAwK,EAAAnL,UAAA+mE,OAAA,WAAA,GAAA57D,GAAAtL,IAAAsL,GAAAy4D,QAAAz4D,EAAAw4D,YAAAjhD,SAAAvX,EAAAmQ,QAAAymD,OAAAh1C,SAAA,eAAA5hB,EAAAs4D,WAAAt4D,EAAAy4D,QAAAliE,OAAAyJ,EAAA+3D,cAAA/3D,EAAAs4D,YAAA,IAAAt4D,EAAA+3D,eAAA/3D,EAAA+3D,aAAA/3D,EAAA+3D,aAAA/3D,EAAAmQ,QAAA4mD,gBAAA/2D,EAAAs4D,YAAAt4D,EAAAmQ,QAAA2mD,eAAA92D,EAAA+3D,aAAA,GAAA/3D,EAAAo7D,sBAAAp7D,EAAA0+D,WAAA1+D,EAAA28D,gBAAA38D,EAAAq8D,cAAAr8D,EAAA8+D,eAAA9+D,EAAAo/D,kBAAAp/D,EAAAu8D,YAAAv8D,EAAA48D,aAAA58D,EAAAq/D,gBAAAr/D,EAAAw9D,qBAAAx9D,EAAAs/D,kBAAAt/D,EAAAg9D,iBAAA,GAAA,GAAAh9D,EAAAmQ,QAAA6lD,iBAAA,GAAAxgE,EAAAwK,EAAAw4D,aAAAjhD,WAAA9gB,GAAA,cAAAuJ,EAAA66D,eAAA76D,EAAA68D,gBAAA,gBAAA78D,GAAA+3D,aAAA/3D,EAAA+3D,aAAA,GAAA/3D,EAAA86D,cAAA96D,EAAAg+D,eAAAh+D,EAAA05D,QAAA15D,EAAAmQ,QAAAklD,SAAAr1D,EAAAw6D,WAAAx6D,EAAA85D,QAAA71C,QAAA,UAAAjkB,KAAAA,EAAAnL,UAAAg4B,OAAA,WAAA,GAAA7sB,GAAAtL,IAAAc,GAAAoF,QAAAqwB,UAAAjrB,EAAAm6D,cAAAxzC,aAAA3mB,EAAAkgE,aAAAlgE,EAAAkgE,YAAAtlE,OAAAsG,WAAA,WAAAlB,EAAAm6D,YAAA3kE,EAAAoF,QAAAqwB,QAAAjrB,EAAAg9D,kBAAAh9D,EAAAg5D,WAAAh5D,EAAA86D,eAAA,MAAA96D,EAAAnL,UAAAsrE,YAAAngE,EAAAnL,UAAAurE,YAAA,SAAA5qE,EAAAwK,EAAAjG,GAAA,GAAAkC,GAAAvH,IAAA,OAAA,iBAAAc,IAAAwK,EAAAxK,EAAAA,EAAAwK,KAAA,EAAA,EAAA/D,EAAAq8D,WAAA,GAAA9iE,EAAAwK,KAAA,IAAAxK,EAAAA,IAAAyG,EAAAq8D,WAAA,GAAA,EAAA9iE,GAAAA,EAAAyG,EAAAq8D,WAAA,KAAAr8D,EAAAy/D,SAAA3hE,KAAA,EAAAkC,EAAAu8D,YAAAjhD,WAAAvF,SAAA/V,EAAAu8D,YAAAjhD,SAAA7iB,KAAAyb,QAAAymD,OAAA3zC,GAAAztB,GAAAwc,SAAA/V,EAAAw8D,QAAAx8D,EAAAu8D,YAAAjhD,SAAA7iB,KAAAyb,QAAAymD,OAAA36D,EAAAu8D,YAAAjhD,SAAA7iB,KAAAyb,QAAAymD,OAAAtzC,SAAArnB,EAAAu8D,YAAA50C,OAAA3nB,EAAAw8D,SAAAx8D,EAAA89D,aAAA99D,EAAAw8D,YAAAx8D,GAAA2/D,WAAA57D,EAAAnL,UAAAwrE,OAAA,SAAA7qE,GAAA,GAAAyG,GAAA3H,EAAA0L,EAAAtL,KAAAqF,IAAAiG,GAAAmQ,QAAAwmD,OAAA,IAAAnhE,GAAAA,GAAAyG,EAAA,QAAA+D,EAAA25D,aAAAz1D,KAAAg7B,KAAA1pC,GAAA,KAAA,MAAAlB,EAAA,OAAA0L,EAAA25D,aAAAz1D,KAAAg7B,KAAA1pC,GAAA,KAAA,MAAAuE,EAAAiG,EAAA25D,cAAAnkE,EAAAwK,EAAA+4D,qBAAA,EAAA/4D,EAAAw4D,YAAArzD,IAAApL,IAAAA,KAAAiG,EAAAs5D,kBAAA,GAAAv/D,EAAAiG,EAAAk5D,UAAA,aAAAj9D,EAAA,KAAA3H,EAAA,IAAA0L,EAAAw4D,YAAArzD,IAAApL,KAAAA,EAAAiG,EAAAk5D,UAAA,eAAAj9D,EAAA,KAAA3H,EAAA,SAAA0L,EAAAw4D,YAAArzD,IAAApL,MAAAiG,EAAAnL,UAAAyrE,cAAA,WAAA,GAAA9qE,GAAAd,IAAAc,GAAA2a,QAAAksB,YAAA,EAAA7mC,EAAA2a,QAAAolD,cAAA,GAAA//D,EAAAqjE,MAAA1zD,KAAAo7D,QAAA,OAAA/qE,EAAA2a,QAAAqlD,iBAAAhgE,EAAAqjE,MAAA3tC,OAAA11B,EAAAijE,QAAAhpC,QAAAmK,aAAA,GAAApkC,EAAA2a,QAAA2mD,cAAAthE,EAAA2a,QAAAolD,cAAA,GAAA//D,EAAAqjE,MAAA1zD,KAAAo7D,QAAA/qE,EAAA2a,QAAAqlD,cAAA,UAAAhgE,EAAAyiE,UAAAziE,EAAAqjE,MAAA5tC,QAAAz1B,EAAA0iE,WAAA1iE,EAAAqjE,MAAA3tC,SAAA11B,EAAA2a,QAAAksB,YAAA,GAAA7mC,EAAA2a,QAAAmnD,iBAAA,GAAA9hE,EAAA+iE,WAAAr0D,KAAAg7B,KAAA1pC,EAAAyiE,UAAAziE,EAAA2a,QAAA2mD,cAAAthE,EAAAgjE,YAAAvtC,MAAA/mB,KAAAg7B,KAAA1pC,EAAA+iE,WAAA/iE,EAAAgjE,YAAAjhD,SAAA,gBAAAhhB,UAAAf,EAAA2a,QAAAmnD,iBAAA,EAAA9hE,EAAAgjE,YAAAvtC,MAAA,IAAAz1B,EAAA8iE,aAAA9iE,EAAA+iE,WAAAr0D,KAAAg7B,KAAA1pC,EAAAyiE,WAAAziE,EAAAgjE,YAAAttC,OAAAhnB,KAAAg7B,KAAA1pC,EAAAijE,QAAAhpC,QAAAmK,aAAA,GAAApkC,EAAAgjE,YAAAjhD,SAAA,gBAAAhhB,SAAA,IAAAyJ,GAAAxK,EAAAijE,QAAAhpC,QAAAzN,YAAA,GAAAxsB,EAAAijE,QAAAhpC,QAAAxE,OAAAz1B,GAAA2a,QAAAmnD,iBAAA,GAAA9hE,EAAAgjE,YAAAjhD,SAAA,gBAAA0T,MAAAz1B,EAAA+iE,WAAAv4D,IAAAA,EAAAnL,UAAA2rE,QAAA,WAAA,GAAAzmE,GAAAiG,EAAAtL,IAAAsL,GAAAy4D,QAAAx5C,KAAA,SAAAhjB,EAAA3H,GAAAyF,EAAAiG,EAAAu4D,WAAAt8D,KAAA+D,EAAAmQ,QAAAwmD,OAAA,EAAAnhE,EAAAlB,GAAA6Q,KAAA0xB,SAAA,WAAAhD,MAAA95B,EAAAoY,IAAA,EAAAw6B,OAAA3sC,EAAAmQ,QAAAw8B,OAAA,EAAA0W,QAAA,IAAA7tD,EAAAlB,GAAA6Q,KAAA0xB,SAAA,WAAArM,KAAAzwB,EAAAoY,IAAA,EAAAw6B,OAAA3sC,EAAAmQ,QAAAw8B,OAAA,EAAA0W,QAAA,MAAArjD,EAAAy4D,QAAAx1C,GAAAjjB,EAAA+3D,cAAA5yD,KAAAwnC,OAAA3sC,EAAAmQ,QAAAw8B,OAAA,EAAA0W,QAAA,KAAArjD,EAAAnL,UAAA4rE,UAAA,WAAA,GAAAjrE,GAAAd,IAAA,IAAA,IAAAc,EAAA2a,QAAA2mD,cAAAthE,EAAA2a,QAAA4kD,kBAAA,GAAAv/D,EAAA2a,QAAAksB,YAAA,EAAA,CAAA,GAAAr8B,GAAAxK,EAAAijE,QAAAx1C,GAAAztB,EAAAuiE,cAAAn+B,aAAA,EAAApkC,GAAAqjE,MAAA1zD,IAAA,SAAAnF,KAAAA,EAAAnL,UAAA6rE,UAAA1gE,EAAAnL,UAAA8rE,eAAA,WAAA,GAAA5mE,GAAAkC,EAAA3H,EAAA+H,EAAAH,EAAA8D,EAAAtL,KAAA4H,GAAA,CAAA,IAAA,WAAA9G,EAAAM,KAAAQ,UAAA,KAAAhC,EAAAgC,UAAA,GAAAgG,EAAAhG,UAAA,GAAA4F,EAAA,YAAA,WAAA1G,EAAAM,KAAAQ,UAAA,MAAAhC,EAAAgC,UAAA,GAAA+F,EAAA/F,UAAA,GAAAgG,EAAAhG,UAAA,GAAA,eAAAA,UAAA,IAAA,UAAAd,EAAAM,KAAAQ,UAAA,IAAA4F,EAAA,aAAA,mBAAA5F,WAAA,KAAA4F,EAAA,WAAA,WAAAA,EAAA8D,EAAAmQ,QAAA7b,GAAA+H,MAAA,IAAA,aAAAH,EAAA1G,EAAAypB,KAAA3qB,EAAA,SAAAkB,EAAAuE,GAAAiG,EAAAmQ,QAAA3a,GAAAuE,QAAA,IAAA,eAAAmC,EAAA,IAAAD,IAAAI,GAAA,GAAA,UAAA7G,EAAAM,KAAAkK,EAAAmQ,QAAAsmD,YAAAz2D,EAAAmQ,QAAAsmD,YAAAp6D,EAAAJ,QAAA,CAAA,IAAAlC,EAAAiG,EAAAmQ,QAAAsmD,WAAAlgE,OAAA,EAAAwD,GAAA,GAAAiG,EAAAmQ,QAAAsmD,WAAA18D,GAAAkmE,aAAA5jE,EAAAJ,GAAAgkE,YAAAjgE,EAAAmQ,QAAAsmD,WAAAj/D,OAAAuC,EAAA,GAAAA,GAAAiG,GAAAmQ,QAAAsmD,WAAAp/D,KAAAgF,EAAAJ,IAAAK,IAAA0D,EAAA07D,SAAA17D,EAAA47D,WAAA57D,EAAAnL,UAAAimE,YAAA,WAAA,GAAAtlE,GAAAd,IAAAc,GAAA8qE,gBAAA9qE,EAAAirE,YAAAjrE,EAAA2a,QAAA4lD,QAAA,EAAAvgE,EAAA6qE,OAAA7qE,EAAA2oE,QAAA3oE,EAAAuiE,eAAAviE,EAAAgrE,UAAAhrE,EAAAskE,QAAA71C,QAAA,eAAAzuB,KAAAwK,EAAAnL,UAAA6pE,SAAA,WAAA,GAAAlpE,GAAAd,KAAAsL,EAAAtH,SAAA+K,KAAAe,KAAAhP,GAAAmkE,aAAAnkE,EAAA2a,QAAAksB,YAAA,EAAA,MAAA,OAAA,QAAA7mC,EAAAmkE,aAAAnkE,EAAAskE,QAAAl4C,SAAA,kBAAApsB,EAAAskE,QAAA92C,YAAA,mBAAA,SAAAhjB,EAAA4gE,kBAAA,SAAA5gE,EAAA6gE,eAAA,SAAA7gE,EAAA8gE,eAAAtrE,EAAA2a,QAAAinD,UAAA,IAAA5hE,EAAA8jE,gBAAA,GAAA9jE,EAAA2a,QAAA4lD,OAAA,gBAAAvgE,GAAA2a,QAAAw8B,OAAAn3C,EAAA2a,QAAAw8B,OAAA,IAAAn3C,EAAA2a,QAAAw8B,OAAA,GAAAn3C,EAAA2a,QAAAw8B,OAAAn3C,EAAA2kB,SAAAwyB,QAAA,SAAA3sC,EAAA+gE,aAAAvrE,EAAA0jE,SAAA,aAAA1jE,EAAAwkE,cAAA,eAAAxkE,EAAAykE,eAAA,cAAA,SAAAj6D,EAAAghE,qBAAA,SAAAhhE,EAAAihE,oBAAAzrE,EAAA0jE,UAAA,IAAA,SAAAl5D,EAAAksC,eAAA12C,EAAA0jE,SAAA,eAAA1jE,EAAAwkE,cAAA,iBAAAxkE,EAAAykE,eAAA,gBAAA,SAAAj6D,EAAAghE,qBAAA,SAAAhhE,EAAAkhE,iBAAA1rE,EAAA0jE,UAAA,IAAA,SAAAl5D,EAAAmhE,kBAAA3rE,EAAA0jE,SAAA,kBAAA1jE,EAAAwkE,cAAA,oBAAAxkE,EAAAykE,eAAA,mBAAA,SAAAj6D,EAAAghE,qBAAA,SAAAhhE,EAAAihE,oBAAAzrE,EAAA0jE,UAAA,IAAA,SAAAl5D,EAAAohE,cAAA5rE,EAAA0jE,SAAA,cAAA1jE,EAAAwkE,cAAA,gBAAAxkE,EAAAykE,eAAA,eAAA,SAAAj6D,EAAAohE,cAAA5rE,EAAA0jE,UAAA,IAAA,SAAAl5D,EAAA4wB,WAAAp7B,EAAA0jE,YAAA,IAAA1jE,EAAA0jE,SAAA,YAAA1jE,EAAAwkE,cAAA,YAAAxkE,EAAAykE,eAAA,cAAAzkE,EAAAujE,kBAAAvjE,EAAA2a,QAAAknD,cAAA,OAAA7hE,EAAA0jE,UAAA1jE,EAAA0jE,YAAA,GAAAl5D,EAAAnL,UAAAgoE,gBAAA,SAAArnE,GAAA,GAAAuE,GAAAkC,EAAA3H,EAAA+H,EAAA2D,EAAAtL,IAAAuH,GAAA+D,EAAA85D,QAAA/+C,KAAA,gBAAAiI,YAAA,2CAAAV,KAAA,cAAA,QAAAtiB,EAAAy4D,QAAAx1C,GAAAztB,GAAAosB,SAAA,iBAAA5hB,EAAAmQ,QAAAolD,cAAA,GAAAx7D,EAAAmK,KAAAC,MAAAnE,EAAAmQ,QAAA2mD,aAAA,GAAA92D,EAAAmQ,QAAA8lD,YAAA,IAAAzgE,GAAAuE,GAAAvE,GAAAwK,EAAAs4D,WAAA,EAAAv+D,EAAAiG,EAAAy4D,QAAA3jE,MAAAU,EAAAuE,EAAAvE,EAAAuE,EAAA,GAAA6nB,SAAA,gBAAAU,KAAA,cAAA,UAAAhuB,EAAA0L,EAAAmQ,QAAA2mD,aAAAthE,EACAyG,EAAAnH,MAAAR,EAAAyF,EAAA,EAAAzF,EAAAyF,EAAA,GAAA6nB,SAAA,gBAAAU,KAAA,cAAA,UAAA,IAAA9sB,EAAAyG,EAAAgnB,GAAAhnB,EAAA1F,OAAA,EAAAyJ,EAAAmQ,QAAA2mD,cAAAl1C,SAAA,gBAAApsB,IAAAwK,EAAAs4D,WAAA,GAAAr8D,EAAAgnB,GAAAjjB,EAAAmQ,QAAA2mD,cAAAl1C,SAAA,iBAAA5hB,EAAAy4D,QAAAx1C,GAAAztB,GAAAosB,SAAA,iBAAApsB,GAAA,GAAAA,GAAAwK,EAAAs4D,WAAAt4D,EAAAmQ,QAAA2mD,aAAA92D,EAAAy4D,QAAA3jE,MAAAU,EAAAA,EAAAwK,EAAAmQ,QAAA2mD,cAAAl1C,SAAA,gBAAAU,KAAA,cAAA,SAAArmB,EAAA1F,QAAAyJ,EAAAmQ,QAAA2mD,aAAA76D,EAAA2lB,SAAA,gBAAAU,KAAA,cAAA,UAAAjmB,EAAA2D,EAAAs4D,WAAAt4D,EAAAmQ,QAAA2mD,aAAAxiE,EAAA0L,EAAAmQ,QAAA8lD,YAAA,EAAAj2D,EAAAmQ,QAAA2mD,aAAAthE,EAAAA,EAAAwK,EAAAmQ,QAAA2mD,cAAA92D,EAAAmQ,QAAA4mD,gBAAA/2D,EAAAs4D,WAAA9iE,EAAAwK,EAAAmQ,QAAA2mD,aAAA76D,EAAAnH,MAAAR,GAAA0L,EAAAmQ,QAAA2mD,aAAAz6D,GAAA/H,EAAA+H,GAAAulB,SAAA,gBAAAU,KAAA,cAAA,SAAArmB,EAAAnH,MAAAR,EAAAA,EAAA0L,EAAAmQ,QAAA2mD,cAAAl1C,SAAA,gBAAAU,KAAA,cAAA,UAAA,aAAAtiB,EAAAmQ,QAAAgmD,UAAAn2D,EAAAm2D,YAAAn2D,EAAAnL,UAAA8nE,cAAA,WAAA,GAAA5iE,GAAAkC,EAAA3H,EAAA0L,EAAAtL,IAAA,IAAAsL,EAAAmQ,QAAA4lD,QAAA,IAAA/1D,EAAAmQ,QAAAolD,YAAA,GAAAv1D,EAAAmQ,QAAA8lD,YAAA,GAAAj2D,EAAAmQ,QAAA4lD,QAAA,IAAA95D,EAAA,KAAA+D,EAAAs4D,WAAAt4D,EAAAmQ,QAAA2mD,cAAA,CAAA,IAAAxiE,EAAA0L,EAAAmQ,QAAAolD,cAAA,EAAAv1D,EAAAmQ,QAAA2mD,aAAA,EAAA92D,EAAAmQ,QAAA2mD,aAAA/8D,EAAAiG,EAAAs4D,WAAAv+D,EAAAiG,EAAAs4D,WAAAhkE,EAAAyF,GAAA,EAAAkC,EAAAlC,EAAA,EAAAvE,EAAAwK,EAAAy4D,QAAAx8D,IAAA4vC,OAAA,GAAAvpB,KAAA,KAAA,IAAAA,KAAA,mBAAArmB,EAAA+D,EAAAs4D,YAAA5yB,UAAA1lC,EAAAw4D,aAAA52C,SAAA,eAAA,KAAA7nB,EAAA,EAAAzF,EAAAyF,EAAAA,GAAA,EAAAkC,EAAAlC,EAAAvE,EAAAwK,EAAAy4D,QAAAx8D,IAAA4vC,OAAA,GAAAvpB,KAAA,KAAA,IAAAA,KAAA,mBAAArmB,EAAA+D,EAAAs4D,YAAA32B,SAAA3hC,EAAAw4D,aAAA52C,SAAA,eAAA5hB,GAAAw4D,YAAAz9C,KAAA,iBAAAA,KAAA,QAAAkE,KAAA,WAAAzpB,EAAAd,MAAA4tB,KAAA,KAAA,QAAAtiB,EAAAnL,UAAAyoE,UAAA,SAAA9nE,GAAA,GAAAwK,GAAAtL,IAAAc,IAAAwK,EAAAw6D,WAAAx6D,EAAAw5D,YAAAhkE,GAAAwK,EAAAnL,UAAAgmE,cAAA,SAAA76D,GAAA,GAAAjG,GAAArF,KAAAuH,EAAAzG,EAAAwK,EAAAua,QAAAmQ,GAAA,gBAAAl1B,EAAAwK,EAAAua,QAAA/kB,EAAAwK,EAAAua,QAAA8mD,QAAA,gBAAA/sE,EAAAi2B,SAAAtuB,EAAAqmB,KAAA,oBAAA,OAAAhuB,KAAAA,EAAA,GAAAyF,EAAAu+D,YAAAv+D,EAAAoW,QAAA2mD,cAAA/8D,EAAA8iE,gBAAAvoE,OAAAyF,GAAAm7D,SAAA5gE,QAAAyF,GAAAqiE,aAAA9nE,IAAA0L,EAAAnL,UAAAunE,aAAA,SAAA5mE,EAAAwK,EAAAjG,GAAA,GAAAkC,GAAA3H,EAAA+H,EAAAC,EAAAuF,EAAA3F,EAAA,KAAAzD,EAAA/D,IAAA,OAAAsL,GAAAA,IAAA,EAAAvH,EAAAi/D,aAAA,GAAAj/D,EAAA0X,QAAAqnD,kBAAA,GAAA/+D,EAAA0X,QAAA4lD,QAAA,GAAAt9D,EAAAs/D,eAAAviE,GAAAiD,EAAA6/D,YAAA7/D,EAAA0X,QAAA2mD,aAAA,QAAA92D,KAAA,GAAAvH,EAAAy8D,SAAA1/D,GAAAyG,EAAAzG,EAAA0G,EAAAzD,EAAA0lE,QAAAliE,GAAAK,EAAA7D,EAAA0lE,QAAA1lE,EAAAs/D,cAAAt/D,EAAAq/D,YAAA,OAAAr/D,EAAAmgE,UAAAt8D,EAAA7D,EAAAmgE,UAAAngE,EAAA0X,QAAA8lD,YAAA,GAAAx9D,EAAA0X,QAAAolD,cAAA,IAAA,EAAA//D,GAAAA,EAAAiD,EAAA+jE,cAAA/jE,EAAA0X,QAAA4mD,qBAAAt+D,EAAA0X,QAAA4lD,QAAA,IAAA95D,EAAAxD,EAAAs/D,aAAAh+D,KAAA,EAAAtB,EAAAqjE,aAAAx/D,EAAA,WAAA7D,EAAAsnE,UAAA9jE,KAAAxD,EAAAsnE,UAAA9jE,KAAAxD,EAAA0X,QAAA8lD,YAAA,GAAAx9D,EAAA0X,QAAAolD,cAAA,IAAA,EAAA//D,GAAAA,EAAAiD,EAAA6/D,WAAA7/D,EAAA0X,QAAA4mD,qBAAAt+D,EAAA0X,QAAA4lD,QAAA,IAAA95D,EAAAxD,EAAAs/D,aAAAh+D,KAAA,EAAAtB,EAAAqjE,aAAAx/D,EAAA,WAAA7D,EAAAsnE,UAAA9jE,KAAAxD,EAAAsnE,UAAA9jE,MAAAxD,EAAA0X,QAAAklD,UAAApqB,cAAAxyC,EAAAm/D,eAAAtjE,EAAA,EAAA2H,EAAAxD,EAAA6/D,WAAA7/D,EAAA0X,QAAA4mD,iBAAA,EAAAt+D,EAAA6/D,WAAA7/D,EAAA6/D,WAAA7/D,EAAA0X,QAAA4mD,eAAAt+D,EAAA6/D,WAAAr8D,EAAAA,GAAAxD,EAAA6/D,WAAA7/D,EAAA6/D,WAAA7/D,EAAA0X,QAAA4mD,iBAAA,EAAA,EAAA96D,EAAAxD,EAAA6/D,WAAAr8D,EAAAxD,EAAAi/D,WAAA,EAAAj/D,EAAAqhE,QAAA71C,QAAA,gBAAAxrB,EAAAA,EAAAs/D,aAAAzjE,IAAA+H,EAAA5D,EAAAs/D,aAAAt/D,EAAAs/D,aAAAzjE,EAAAmE,EAAAokE,gBAAApkE,EAAAs/D,cAAAt/D,EAAA0X,QAAA+kD,WAAArzD,EAAApJ,EAAAyjE,eAAAr6D,EAAAA,EAAAs6D,MAAA,YAAAt6D,EAAAy2D,YAAAz2D,EAAAsO,QAAA2mD,cAAAj1D,EAAAg7D,gBAAApkE,EAAAs/D,eAAAt/D,EAAAmkE,aAAAnkE,EAAAqmE,eAAArmE,EAAA0X,QAAA4lD,QAAA,GAAAh8D,KAAA,GAAAtB,EAAAmlE,aAAAvhE,GAAA5D,EAAAklE,UAAArpE,EAAA,WAAAmE,EAAAsnE,UAAAzrE,MAAAmE,EAAAsnE,UAAAzrE,OAAAmE,GAAAojE,sBAAA9hE,KAAA,EAAAtB,EAAAqjE,aAAA5/D,EAAA,WAAAzD,EAAAsnE,UAAAzrE,KAAAmE,EAAAsnE,UAAAzrE,OAAA0L,EAAAnL,UAAA8pE,UAAA,WAAA,GAAAnpE,GAAAd,IAAAc,GAAA2a,QAAA2+B,UAAA,GAAAt5C,EAAA8iE,WAAA9iE,EAAA2a,QAAA2mD,eAAAthE,EAAA6iE,WAAAt1C,OAAAvtB,EAAA4iE,WAAAr1C,QAAAvtB,EAAA2a,QAAAwlD,QAAA,GAAAngE,EAAA8iE,WAAA9iE,EAAA2a,QAAA2mD,cAAAthE,EAAAwiE,MAAAj1C,OAAAvtB,EAAAskE,QAAAl4C,SAAA,kBAAA5hB,EAAAnL,UAAAysE,eAAA,WAAA,GAAA9rE,GAAAwK,EAAAjG,EAAAkC,EAAA3H,EAAAI,IAAA,OAAAc,GAAAlB,EAAAwkE,YAAAyI,OAAAjtE,EAAAwkE,YAAA0I,KAAAxhE,EAAA1L,EAAAwkE,YAAA2I,OAAAntE,EAAAwkE,YAAA4I,KAAA3nE,EAAAmK,KAAAy9D,MAAA3hE,EAAAxK,GAAAyG,EAAAiI,KAAAynB,MAAA,IAAA5xB,EAAAmK,KAAAsmD,IAAA,EAAAvuD,IAAAA,EAAA,IAAAiI,KAAA+P,IAAAhY,IAAA,IAAAA,GAAAA,GAAA,EAAA3H,EAAA6b,QAAAwmD,OAAA,EAAA,OAAA,QAAA,KAAA16D,GAAAA,GAAA,IAAA3H,EAAA6b,QAAAwmD,OAAA,EAAA,OAAA,QAAA16D,GAAA,KAAA,KAAAA,EAAA3H,EAAA6b,QAAAwmD,OAAA,EAAA,QAAA,OAAAriE,EAAA6b,QAAAonD,mBAAA,EAAAt7D,GAAA,IAAA,KAAAA,EAAA,OAAA,KAAA,YAAA+D,EAAAnL,UAAA+sE,SAAA,SAAApsE,GAAA,GAAAuE,GAAAkC,EAAA+D,EAAAtL,IAAA,IAAAsL,EAAA23D,UAAA,EAAA33D,EAAAw5D,aAAA,EAAAx5D,EAAA65D,cAAA75D,EAAA84D,YAAA+I,YAAA,IAAA,SAAA7hE,EAAA84D,YAAA0I,KAAA,OAAA,CAAA,IAAAxhE,EAAA84D,YAAAgJ,WAAA,GAAA9hE,EAAA85D,QAAA71C,QAAA,QAAAjkB,EAAAA,EAAAshE,mBAAAthE,EAAA84D,YAAA+I,aAAA7hE,EAAA84D,YAAAiJ,SAAA,CAAA,OAAA9lE,EAAA+D,EAAAshE,kBAAA,IAAA,OAAA,IAAA,OAAAvnE,EAAAiG,EAAAmQ,QAAA8mD,aAAAj3D,EAAAm9D,eAAAn9D,EAAA+3D,aAAA/3D,EAAAw+D,iBAAAx+D,EAAA+3D,aAAA/3D,EAAAw+D,gBAAAx+D,EAAA63D,iBAAA,CAAA,MAAA,KAAA,QAAA,IAAA,KAAA99D,EAAAiG,EAAAmQ,QAAA8mD,aAAAj3D,EAAAm9D,eAAAn9D,EAAA+3D,aAAA/3D,EAAAw+D,iBAAAx+D,EAAA+3D,aAAA/3D,EAAAw+D,gBAAAx+D,EAAA63D,iBAAA,EAAA,YAAA57D,IAAA+D,EAAAo8D,aAAAriE,GAAAiG,EAAA84D,eAAA94D,EAAA85D,QAAA71C,QAAA,SAAAjkB,EAAA/D,SAAA+D,GAAA84D,YAAAyI,SAAAvhE,EAAA84D,YAAA0I,OAAAxhE,EAAAo8D,aAAAp8D,EAAA+3D,cAAA/3D,EAAA84D;AAAA94D,EAAAnL,UAAAkmE,aAAA,SAAAvlE,GAAA,GAAAwK,GAAAtL,IAAA,MAAAsL,EAAAmQ,QAAA6mD,SAAA,GAAA,cAAAt+D,WAAAsH,EAAAmQ,QAAA6mD,SAAA,GAAAh3D,EAAAmQ,QAAA0lD,aAAA,QAAArgE,EAAAM,KAAAyB,QAAA,UAAA,OAAAyI,EAAA84D,YAAAkJ,YAAAxsE,EAAA81B,eAAA,SAAA91B,EAAA81B,cAAAC,QAAA/1B,EAAA81B,cAAAC,QAAAh1B,OAAA,EAAAyJ,EAAA84D,YAAAiJ,SAAA/hE,EAAAi4D,UAAAj4D,EAAAmQ,QAAAgnD,eAAAn3D,EAAAmQ,QAAAonD,mBAAA,IAAAv3D,EAAA84D,YAAAiJ,SAAA/hE,EAAAk4D,WAAAl4D,EAAAmQ,QAAAgnD,gBAAA3hE,EAAAR,KAAAuqE,QAAA,IAAA,QAAAv/D,EAAAiiE,WAAAzsE,EAAA,MAAA,KAAA,OAAAwK,EAAAkiE,UAAA1sE,EAAA,MAAA,KAAA,MAAAwK,EAAA4hE,SAAApsE,KAAAwK,EAAAnL,UAAAqtE,UAAA,SAAA1sE,GAAA,GAAAyG,GAAA3H,EAAA+H,EAAAC,EAAAJ,EAAA8D,EAAAtL,IAAA,OAAAwH,GAAA,SAAA1G,EAAA81B,cAAA91B,EAAA81B,cAAAC,QAAA,QAAAvrB,EAAA23D,UAAAz7D,GAAA,IAAAA,EAAA3F,UAAA0F,EAAA+D,EAAAm+D,QAAAn+D,EAAA+3D,cAAA/3D,EAAA84D,YAAA0I,KAAA,SAAAtlE,EAAAA,EAAA,GAAAmvB,MAAA71B,EAAA82B,QAAAtsB,EAAA84D,YAAA4I,KAAA,SAAAxlE,EAAAA,EAAA,GAAAsvB,MAAAh2B,EAAA+2B,QAAAvsB,EAAA84D,YAAA+I,YAAA39D,KAAAynB,MAAAznB,KAAA4zB,KAAA5zB,KAAA6zB,IAAA/3B,EAAA84D,YAAA0I,KAAAxhE,EAAA84D,YAAAyI,OAAA,KAAAvhE,EAAAmQ,QAAAonD,mBAAA,IAAAv3D,EAAA84D,YAAA+I,YAAA39D,KAAAynB,MAAAznB,KAAA4zB,KAAA5zB,KAAA6zB,IAAA/3B,EAAA84D,YAAA4I,KAAA1hE,EAAA84D,YAAA2I,OAAA,MAAAntE,EAAA0L,EAAAshE,iBAAA,aAAAhtE,GAAA,SAAAkB,EAAA81B,eAAAtrB,EAAA84D,YAAA+I,YAAA,GAAArsE,EAAAixB,iBAAAnqB,GAAA0D,EAAAmQ,QAAAwmD,OAAA,EAAA,OAAA32D,EAAA84D,YAAA0I,KAAAxhE,EAAA84D,YAAAyI,OAAA,MAAAvhE,EAAAmQ,QAAAonD,mBAAA,IAAAj7D,EAAA0D,EAAA84D,YAAA4I,KAAA1hE,EAAA84D,YAAA2I,OAAA,MAAAplE,EAAA2D,EAAA84D,YAAA+I,YAAA7hE,EAAA84D,YAAAgJ,SAAA,EAAA9hE,EAAAmQ,QAAA8lD,YAAA,IAAA,IAAAj2D,EAAA+3D,cAAA,UAAAzjE,GAAA0L,EAAA+3D,cAAA/3D,EAAAw8D,eAAA,SAAAloE,KAAA+H,EAAA2D,EAAA84D,YAAA+I,YAAA7hE,EAAAmQ,QAAA2lD,aAAA91D,EAAA84D,YAAAgJ,SAAA,GAAA9hE,EAAAmQ,QAAAksB,YAAA,EAAAr8B,EAAA44D,UAAA38D,EAAAI,EAAAC,EAAA0D,EAAA44D,UAAA38D,EAAAI,GAAA2D,EAAA64D,MAAA3tC,SAAAlrB,EAAAi4D,WAAA37D,EAAA0D,EAAAmQ,QAAAonD,mBAAA,IAAAv3D,EAAA44D,UAAA38D,EAAAI,EAAAC,GAAA0D,EAAAmQ,QAAA4lD,QAAA,GAAA/1D,EAAAmQ,QAAA+mD,aAAA,IAAAl3D,EAAA03D,aAAA,GAAA13D,EAAA44D,UAAA,MAAA,OAAA54D,GAAAqgE,OAAArgE,EAAA44D,aAAA,SAAA54D,EAAAnL,UAAAotE,WAAA,SAAAzsE,GAAA,GAAAuE,GAAAiG,EAAAtL,IAAA,OAAAsL,GAAAw5D,aAAA,EAAA,IAAAx5D,EAAA84D,YAAAkJ,aAAAhiE,EAAAs4D,YAAAt4D,EAAAmQ,QAAA2mD,cAAA92D,EAAA84D,gBAAA,IAAA,SAAAtjE,EAAA81B,eAAA,SAAA91B,EAAA81B,cAAAC,UAAAxxB,EAAAvE,EAAA81B,cAAAC,QAAA,IAAAvrB,EAAA84D,YAAAyI,OAAAvhE,EAAA84D,YAAA0I,KAAA,SAAAznE,EAAAA,EAAAsxB,MAAA71B,EAAA82B,QAAAtsB,EAAA84D,YAAA2I,OAAAzhE,EAAA84D,YAAA4I,KAAA,SAAA3nE,EAAAA,EAAAyxB,MAAAh2B,EAAA+2B,aAAAvsB,EAAA23D,UAAA,KAAA33D,EAAAnL,UAAAstE,eAAAniE,EAAAnL,UAAAutE,cAAA,WAAA,GAAA5sE,GAAAd,IAAA,QAAAc,EAAAukE,eAAAvkE,EAAAkmE,SAAAlmE,EAAAgjE,YAAAjhD,SAAA7iB,KAAAyb,QAAAymD,OAAAtzC,SAAA9tB,EAAAukE,aAAAp4B,SAAAnsC,EAAAgjE,aAAAhjE,EAAAomE,WAAA57D,EAAAnL,UAAA6mE,OAAA,WAAA,GAAA17D,GAAAtL,IAAAc,GAAA,gBAAAwK,EAAA85D,SAAA9nD,SAAAhS,EAAAg4D,OAAAh4D,EAAAg4D,MAAAhmD,SAAAhS,EAAAq4D,YAAAr4D,EAAAm7D,SAAApjE,KAAAiI,EAAAmQ,QAAAglD,YAAAn1D,EAAAq4D,WAAArmD,SAAAhS,EAAAo4D,YAAAp4D,EAAAm7D,SAAApjE,KAAAiI,EAAAmQ,QAAAilD,YAAAp1D,EAAAo4D,WAAApmD,SAAAhS,EAAAy4D,QAAAz1C,YAAA,wDAAAV,KAAA,cAAA,QAAAnd,IAAA,QAAA,KAAAnF,EAAAnL,UAAAooE,QAAA,SAAAznE,GAAA,GAAAwK,GAAAtL,IAAAsL,GAAA85D,QAAA71C,QAAA,WAAAjkB,EAAAxK,IAAAwK,EAAA+R,WAAA/R,EAAAnL,UAAAiqE,aAAA,WAAA,GAAA9+D,GAAAxK,EAAAd,IAAAsL,GAAAkE,KAAAC,MAAA3O,EAAA2a,QAAA2mD,aAAA,GAAAthE,EAAA2a,QAAA2+B,UAAA,GAAAt5C,EAAA8iE,WAAA9iE,EAAA2a,QAAA2mD,eAAAthE,EAAA2a,QAAA8lD,WAAAzgE,EAAA6iE,WAAAr1C,YAAA,kBAAAV,KAAA,gBAAA,SAAA9sB,EAAA4iE,WAAAp1C,YAAA,kBAAAV,KAAA,gBAAA,SAAA,IAAA9sB,EAAAuiE,cAAAviE,EAAA6iE,WAAAz2C,SAAA,kBAAAU,KAAA,gBAAA,QAAA9sB,EAAA4iE,WAAAp1C,YAAA,kBAAAV,KAAA,gBAAA,UAAA9sB,EAAAuiE,cAAAviE,EAAA8iE,WAAA9iE,EAAA2a,QAAA2mD,cAAAthE,EAAA2a,QAAAolD,cAAA,GAAA//D,EAAA4iE,WAAAx2C,SAAA,kBAAAU,KAAA,gBAAA,QAAA9sB,EAAA6iE,WAAAr1C,YAAA,kBAAAV,KAAA,gBAAA,UAAA9sB,EAAAuiE,cAAAviE,EAAA8iE,WAAA,GAAA9iE,EAAA2a,QAAAolD,cAAA,IAAA//D,EAAA4iE,WAAAx2C,SAAA,kBAAAU,KAAA,gBAAA,QAAA9sB,EAAA6iE,WAAAr1C,YAAA,kBAAAV,KAAA,gBAAA,YAAAtiB,EAAAnL,UAAA+nE,WAAA,WAAA,GAAApnE,GAAAd,IAAA,QAAAc,EAAAwiE,QAAAxiE,EAAAwiE,MAAAj9C,KAAA,MAAAiI,YAAA,gBAAAV,KAAA,cAAA,QAAA9sB,EAAAwiE,MAAAj9C,KAAA,MAAAkI,GAAA/e,KAAAC,MAAA3O,EAAAuiE,aAAAviE,EAAA2a,QAAA4mD,iBAAAn1C,SAAA,gBAAAU,KAAA,cAAA,WAAAtiB,EAAAnL,UAAA0oE,WAAA,WAAA,GAAA/nE,GAAAd,IAAAc,GAAA2a,QAAAklD,WAAA38D,SAAAlD,EAAAikE,QAAAjkE,EAAAgkE,aAAA,EAAAhkE,EAAAgkE,aAAA,IAAAhkE,EAAAsJ,GAAAq9D,MAAA,WAAA,GAAA9/D,GAAAC,EAAA9G,EAAAd,KAAAqF,EAAAzD,UAAA,GAAA2F,EAAArH,MAAAC,UAAAC,MAAAC,KAAAuB,UAAA,GAAAhC,EAAAkB,EAAAe,MAAA,KAAA8F,EAAA,EAAA/H,EAAA+H,EAAAA,IAAA,GAAA,gBAAAtC,IAAA,mBAAAA,GAAAvE,EAAA6G,GAAA8/D,MAAA,GAAAn8D,GAAAxK,EAAA6G,GAAAtC,GAAAuC,EAAA9G,EAAA6G,GAAA8/D,MAAApiE,GAAA5E,MAAAK,EAAA6G,GAAA8/D,MAAAlgE,GAAA,mBAAAK,GAAA,MAAAA,EAAA,OAAA9G,MCfA,SAAAoF,OAAAyU,QACA,GAAA8zC,IACAz9C,QAAA,QACA28D,SACAC,QAGAC,QAAA,SAAAC,IAAAzsE,GACA,IAAA,GAAAoG,KAAAqmE,KACAzsE,EAAA+oD,eAAA3iD,KACApG,EAAAoG,GAAAqmE,IAAArmE,GAGA,OAAApG,IAEAsF,UAAA,SAAAY,GACA,MAAA2W,UAAA3W,GAAA,kBAAAA,GAAAA,EAAA,GAAAjD,KAAAqC,UAAAY,IAEAxG,MAAA,SAAAE,GAEA,IAAA,MAAAqD,MAAAvD,MAAAE,GAAA,MAAArB,GAAA,MAAAqB,KAIAmJ,GAAA,SAAA2C,KAAA3C,IACAqkD,EAAAsf,SAAAhhE,MAAA3C,EACA,KAAA,GAAA0jE,OAAArf,GAAAmf,KACAnf,EAAAmf,KAAAE,KAAA/gE,MAAA3C,IAGA0e,IAAA,SAAAklD,KAAAj9D,KAAA,MAAAi9D,MAAAC,QAAAl9D,MACAogB,IAAA,SAAA68C,KAAAj9D,IAAAH,QAAAo9D,KAAAE,QAAAn9D,IAAAH,SACA0M,OAAA,SAAA0wD,KAAAj9D,KAAAi9D,KAAAG,WAAAp9D,MACAA,IAAA,SAAAi9D,KAAAjqE,GAAA,MAAAiqE,MAAAj9D,IAAAhN,IACAlC,OAAA,SAAAmsE,MAAA,MAAAA,MAAAnsE,QACAusE,MAAA,SAAAJ,MAAAA,KAAAI,SAGAC,MAAA,SAAAr7C,GAAAg7C,KAAArqE,WACA,GAAA2qE,OAAA7f,EAAAof,QAAApf,EAAAsf,SAAA,SAAAh9D,IAAAzQ,KAAAiuE,WACA,MAAA,KAAA3sE,UAAAC,OAAAysE,MAAAE,SACA,kBAAAluE,MAAAguE,MAAAG,SAAA19D,IAAAzQ,KAAAiuE,WACArwD,SAAA5d,KAAAguE,MAAAn9C,IAAApgB,IAAAzQ,KAAAiuE,WACA,gBAAAx9D,MAAA,gBAAAA,KAAAu9D,MAAAxlD,IAAA/X,KACAA,IACAu9D,MAAAI,OAAA39D,IAAAzQ,MADAguE,MAAAF,SAGAE,OAAAK,IAAA37C,EACA,KACA,GAAA47C,SAAA,iBACAZ,MAAAE,QAAAU,QAAA,SACAN,MAAAO,MAAAb,KACAA,KAAAG,WAAAS,SACA,MAAAhvE,IAWA,MAVA0uE,OAAAO,QACAP,MAAAO,MAAApgB,EAAAof,QAAApf,EAAAqgB,YAAApgC,SAAA3hC,KAAA,UAEAuhE,MAAAS,IAAAprE,WAAA,GACA8qD,EAAAkf,MAAA36C,MACAy7B,EAAAkf,MAAA36C,IAAAs7C,MAAAO,OAEApgB,EAAAmf,KAAAU,MAAAS,IAAAT,MAAAK,OACAlgB,EAAAmf,KAAAU,MAAAS,IAAAT,MAAAK,KAAAL,OAEAA,OAEAP,UAEAC,KAAA,SAAAh7C,GAAAg7C,MACA,GAAAM,OAAAtuE,KAAAgzB,GAKA,OAJAs7C,QAAAA,MAAAN,OACAM,MAAA7f,EAAA4f,MAAAr7C,GAAAg7C,KAAAhuE,KAAA+uE,KACA/uE,KAAAgzB,MAAAhzB,KAAAgzB,IAAAs7C,QAEAA,OAEA3qE,UAAA,SAAAA,UAAAqrE,WACA,IAAArrE,UACA,MAAA3D,MAAA+uE,IAAA/uE,KAAA+uE,IAAAjmE,UAAA,EAAA9I,KAAA+uE,IAAAltE,OAAA,GAAA,EAEA,IAAAugC,IAAAz+B,UAAA2qE,MAAAtuE,KAAAoiC,GAMA,OALAksC,QAAAA,MAAA3qE,YACA2qE,MAAA7f,EAAA4f,MAAAruE,KAAA2uE,IAAA3uE,KAAA6uE,MAAA7uE,KAAA+uE,IAAA3sC,GAAA,KACApiC,KAAAoiC,MAAApiC,KAAAoiC,IAAAksC,OACAU,WAAAV,MAAAN,KAAA,UAAAvf,EAAAkf,MAAAsB,UAEAX,OAEAY,OAAA,WAAA,MAAA,SAAAlvE,KAAA6uE,MAAA9hE,MACA5L,SAAA,WACA,MAAA,SAAAnB,KAAA+uE,IAAA,IAAA/uE,KAAA2D,YAAA,IAAA,IAAA3D,KAAA2uE,IAAA,KAIAQ,IAAA,SAAAp+D,KACA,MAAA/Q,MAAA6uE,MAAAM,IACAnvE,KAAA6uE,MAAAM,IAAAnvE,KAAAovE,IAAAr+D,SAEA/Q,KAAAovE,IAAAr+D,MAAA/Q,MAAA6uE,QAEAQ,KAAA,WAAA,MAAArvE,MAAAsvE,OAAAztE,QACA0oB,KAAA,SAAAngB,GAAAmlE,MACA,IAAA,GAAAxrE,GAAA,EAAA2D,EAAA+mD,EAAA5sD,OAAA7B,KAAA6uE,OAAA9qE,EAAA2D,EAAA3D,IAAA,CACA,GAAAgN,KAAA/Q,KAAAwvE,KAAA/gB,EAAA19C,IAAA/Q,KAAA6uE,MAAA9qE,GACA,IAAAma,SAAAnN,KACA3G,GAAA/J,KAAAL,KAAA+Q,IAAAw+D,MAAAvvE,KAAA8oB,IAAA/X,SAAA,EACA,KAGArJ,GAAA+mD,EAAA5sD,OAAA7B,KAAA6uE,SAAAnnE,IAAA3D,KAEA,MAAAwrE,OAAAvvE,MAEAsvE,KAAA,WACA,MAAAtvE,MAAAuqB,KAAA,SAAAra,EAAAkV,MAAAA,KAAAziB,KAAAuN,SAEA4Y,IAAA,SAAA/X,IAAAmmC,KACA,GAAAj2C,GAAAwtD,EAAA3lC,IAAA9oB,KAAA6uE,MAAA7uE,KAAAovE,IAAAr+D,KACA,OAAA,QAAA9P,EAAAwtD,EAAA1tD,MAAAE,GAAAi2C,KAAAj2C,GAEAutE,OAAA,WACA,MAAAxuE,MAAAuqB,KAAA,SAAAra,EAAAg+B,KAAAA,IAAAh+B,GAAAlQ,KAAA8oB,IAAA5Y,SAEAu+D,SAAA,SAAA19D,IAAA3G,GAAA8sC,KACA,GAAA5nB,KAAAtvB,KAAA8oB,IAAA/X,IAAAmmC,KACAzS,IAAAr6B,GAAAklB,IAEA,OADAtvB,MAAAmxB,IAAApgB,IAAAmN,SAAAumB,IAAAnV,IAAAmV,KACAzkC,MAEAmxB,IAAA,SAAApgB,IAAAzQ,KAAAiuE,WACA,GAAAhnE,GAAAvH,KAAA8oB,IAAA/X,IACA,OAAA,OAAAxJ,GAAAgnE,aAAA,EACAjuE,KAEAmuD,EAAAt9B,IAAAnxB,KAAA6uE,MAAA7uE,KAAAovE,IAAAr+D,KAAA09C,EAAA9nD,UAAArG,MAAAiuE,YAAAhnE,GAEAmnE,OAAA,SAAApuE,KAAAiuE,WACA,GAAAkB,SAAAngD,GACA,KAAA,GAAAve,OAAAzQ,MACAgvB,IAAAhvB,KAAAyQ,KACA/Q,KAAAmxB,IAAApgB,IAAAue,IAAAi/C,aAAAj/C,MACAmgD,SAAA,EAGA,OAAAA,UAEAnyD,OAAA,SAAAvM,KACA,GAAAxJ,GAAAvH,KAAA8oB,IAAA/X,IAEA,OADA09C,GAAAnxC,OAAAtd,KAAA6uE,MAAA7uE,KAAAovE,IAAAr+D,MACAxJ,GAEA6mE,MAAA,WAMA,MALApuE,MAAA+uE,IAGA/uE,KAAAuqB,KAAA,SAAAra,GAAAu+C,EAAAnxC,OAAAtd,KAAA6uE,MAAA7uE,KAAAovE,IAAAl/D,KAAA,GAFAu+C,EAAA2f,MAAApuE,KAAA6uE,OAIA7uE,MAEA0vE,SAAA,WACA,GAAA1B,MAAAhuE,KAAA6uE,KACA,KAAA,GAAA77C,MAAAy7B,GAAAkf,MACAlf,EAAAkf,MAAAvjB,eAAAp3B,MACAhzB,KAAA6uE,MAAApgB,EAAAkf,MAAA36C,IACAhzB,KAAAouE,QAIA,OADApuE,MAAA6uE,MAAAb,KACAhuE,MAIAovE,IAAA,SAAAl/D,GAEA,MADA,gBAAAA,KAAAA,EAAAu+C,EAAA9nD,UAAAuJ,IACAlQ,KAAA+uE,IAAA/uE,KAAA+uE,IAAA7+D,EAAAA,GAEAs/D,KAAA,SAAAt/D,GACA,MAAAlQ,MAAA+uE,IACA7+D,GAAA,IAAAA,EAAArN,QAAA7C,KAAA+uE,KACA7+D,EAAApH,UAAA9I,KAAA+uE,IAAAltE,QACAqc,OACAhO,IAGA4+D,YACAjtE,OAAA,EACAstE,IAAA,SAAAj/D,GAAA,MAAAlQ,MAAA0uC,MAAA0b,eAAAl6C,IACAa,IAAA,SAAAhN,GACA,GAAAsB,GAAA,CACA,KAAA,GAAA6K,KAAAlQ,MAAA0uC,MACA,GAAA1uC,KAAAmvE,IAAAj/D,IAAAnM,IAAAsB,IACA,MAAA6K,IAIAg+D,QAAA,SAAAh+D,EAAArD,GACA7M,KAAAmvE,IAAAj/D,IACAlQ,KAAA6B,SAEA7B,KAAA0uC,MAAAx+B,GAAArD,GAEAshE,WAAA,SAAAj+D,GACAlQ,KAAAmvE,IAAAj/D,WACAlQ,MAAA0uC,MAAAx+B,GACAlQ,KAAA6B,WAGAosE,QAAA,SAAA/9D,GAAA,MAAAlQ,MAAAmvE,IAAAj/D,GAAAlQ,KAAA0uC,MAAAx+B,GAAA,MACAk+D,MAAA,WAAA,IAAA,GAAAl+D,KAAAlQ,MAAA0uC,MAAA1uC,KAAAmuE,WAAAj+D,IACA/O,SAAA,WAAA,MAAAnB,MAAA6B,OAAA,aAAA7B,KAAA+M,KAAA,aAIAuhE,MAEA7f,EAAA4f,MAAA,QAAA,WAAA,IAAA,MAAAsB,cAAA,MAAA/vE,QACA0uE,OAAAsB,MAAAtB,MACAA,MAAA7f,EAAAA,EAEA6f,MAAAN,KAAA,UAAA,WAAA,IAAA,MAAA6B,gBAAA,MAAAjwE,SAEA,kBAAA+a,SAAAuD,SAAAvD,OAAAC,IACAD,OAAA,YAAA,WACA,MAAA2zD,SAEA,mBAAArrE,SAAAA,OAAAE,QACAF,OAAAE,QAAAmrE,OAGApoE,OAAAooE,QAAA7f,EAAAqhB,SAAA5pE,OAAAooE,OACApoE,OAAAooE,MAAAA,QAGAtuE,KAAAA,KAAA2a,QCnOA,SAAAD,SACA,kBAAAC,SAAAA,OAAAC,IAEAD,QAAA,UAAAD,SACA,gBAAAvX,SAEAF,OAAAE,QAAAuX,QAAAsG,QAAA,WAGAtG,QAAAvQ,SAEA,SAAA6E,GAgCA,QAAA+gE,QAAA7tD,QAAAzG,SACAzb,KAAAkiB,QAAAA,QACAliB,KAAAorC,SAAAp8B,EAAAhP,KAAAkiB,SACAliB,KAAAiI,IAAA+G,EAAAhL,UACAhE,KAAAgwE,IAAAhhE,EAAA9I,QACAlG,KAAAkxB,SAAAliB,EAAA5K,UAAAqhB,SAAAhK,SAOA,gBAAAzb,MAAAorC,SAAA9qC,KAAA,UAEA0O,EAAA5K,OAAApE,KAAAkxB,SAAAlxB,KAAAorC,SAAA9qC,KAAA,SAKA,KAAA,GAFA2vE,WAAA3tE,OAAAgtE,KAAAtvE,KAAAorC,SAAA9qC,QACA4vE,cACAnsE,EAAA,EAAAA,EAAAksE,UAAApuE,OAAAkC,IACA,CACA,GAAAgN,KAAAk/D,UAAAlsE,GAAAvB,QAAA2tE,WAAA,GACA,IAAA,KAAAp/D,IAAA,CAKAA,IAAAA,IAAA7B,OAAA,GAAA1I,cAAAuK,IAAA3Q,MAAA,GACA8vE,WAAAn/D,KAAA/Q,KAAAorC,SAAA9qC,KAAA2vE,UAAAlsE,GAKA,KAAA,GAAAqsE,gBAAApwE,MAAAkxB,SAEAk/C,aAAA5pE,eAAAuK,MAEA/Q,KAAAkxB,SAAAk/C,cAAAF,WAAAn/D,OAKA/Q,KAAAqwE,UAAA5qD,SACAzlB,KAAAswE,MAAAH,WACAnwE,KAAAuwE,OAAAvwE,KAAAorC,SAAAxd,KAAA,SACA5tB,KAAAk3D,KAAA,OACAl3D,KAAAwwE,QAAA3iC,oBAKA7tC,KAAAkxB,SAAAu/C,iBAAAzwE,KAAAkxB,SAAAiR,SAEAniC,KAAAD,OAwRA,QAAA2wE,YAAAz1D,KACA,GAAAk8B,OAAAl8B,IAAAk8B,OACAA,OAAA1mC,IAAA,aAAA,UACAzB,EAAA,QAAAkgB,OAAAioB,MACA,IAAA3gB,QAAA2gB,MAAAjS,cACA3O,MAAA4gB,MAAA7pB,YAEA,OADA6pB,OAAA75B,UAEAiZ,MAAAA,MACAC,OAAAA,QAcA,QAAAm6C,qBAAA11D,KACAA,IAAAqT,YAAA,2EACArT,IAAAoL,KAAA,gBAAAiI,YAAA,2EAGA,QAAAsiD,YAAAC,UACA,GAKAC,SAAAC,SAAAxsC,KALAysC,aAAAH,SAAAI,UACAC,GAAAL,SAAAzlC,SACAnwB,IAAA41D,SACAM,KAAAniE,EAAA9I,QACAkrE,MAAA,GAGAC,YAAAp2D,IAAAiW,SAAAzO,WACA6uD,cAAAr2D,IAAAs2D,cASA,QARArzD,SAAAozD,eAAA,KAAAA,gBACAD,YAAAp2D,IAAAiW,SAAAsgD,iBAGAN,GAAA3jD,SAAAD,aAAA6jD,KAAA7jD,eACA6jD,KAAAD,GAAA3jD,UAGAtS,IAAAiW,SAAAiR,UAEA,IAAA,YACA4uC,SAAAG,GAAAr1D,SAAAia,KAAAo7C,GAAA5jD,aACAwjD,QAAAI,GAAAr1D,SAAA4B,IAAAizD,WAAAM,cAAAx6C,OAAA46C,MACAJ,aAAA3qD,KAAA,gBAAA5V,KACAghE,YAAAx2D,IAAAiW,SAAAwgD,WACAC,UAAA,KAEAb,QAAAK,KAAA/yD,aAEA0yD,QAAAI,GAAAr1D,SAAA4B,IAAAyzD,GAAAhsC,cAAAksC,MAEAJ,aAAA3qD,KAAA,gBAAA5V,KACAmhE,sBAAAP,YACAQ,mBAAA,cACAC,oBAAA,cACAC,qBAAA,gBAMApB,oBAAAK,cACAA,aAAA9jD,SAAA,uBACA8jD,aAAA3qD,KAAA,gBAAA6G,SAAA,uBACA8jD,aAAA3qD,KAAA,gBAAA5V,KACAqhE,oBAAAT,cAGAL,aAAA1iD,YAAA,mCACA0iD,aAAA9jD,SAAA,YAIA8jD,aAAA3qD,KAAA,gBAAA5V,KACAohE,mBAAA52D,IAAAiW,SAAAzO,WACAmvD,sBAAA,eACAE,oBAAA,cACAC,qBAAA,gBAMApB,oBAAAK,cACAA,aAAA9jD,SAAA,oBACA8jD,aAAA3qD,KAAA,gBAAA5V,KACAqhE,oBAAA72D,IAAAiW,SAAAzO,aAGAuuD,aAAA1iD,YAAA,yBACA0iD,aAAA9jD,SAAA,OAEA,MACA,KAAA,WACA6jD,SAAAG,GAAAr1D,SAAAia,KAAA46C,WAAAM,cAAA,MACAF,QAAAI,GAAAr1D,SAAA4B,IAAAizD,WAAAM,cAAAx6C,OAAA46C,MACAJ,aAAA3qD,KAAA,gBAAA5V,KACAghE,YAAAx2D,IAAAiW,SAAAwgD,WACAC,UAAA,KAEAb,QAAAK,KAAA/yD,aAEA0yD,QAAAI,GAAAr1D,SAAA4B,IAAAyzD,GAAAhsC,cAAAksC,MAEAJ,aAAA3qD,KAAA,gBAAA5V,KACAmhE,sBAAAP,YACAQ,mBAAA,cACAC,oBAAA,cACAC,qBAAA,gBAMApB,oBAAAK,cACAA,aAAA9jD,SAAA,sBACA8jD,aAAA3qD,KAAA,gBAAA6G,SAAA,sBACA8jD,aAAA3qD,KAAA,gBAAA5V,KACAshE,qBAAAV,cAGAL,aAAA1iD,YAAA,mCACA0iD,aAAA9jD,SAAA,YAIA8jD,aAAA3qD,KAAA,gBAAA5V,KACAohE,mBAAA52D,IAAAiW,SAAAzO,WACAmvD,sBAAA,eACAE,oBAAA,cACAC,qBAAA,gBAMApB,oBAAAK,cACAA,aAAA9jD,SAAA,mBACA8jD,aAAA3qD,KAAA,gBAAA5V,KACAshE,qBAAA92D,IAAAiW,SAAAzO,aAGAuuD,aAAA1iD,YAAA,yBACA0iD,aAAA9jD,SAAA,OAEA,MAKA,KAAA,eACA6jD,SAAAG,GAAAr1D,SAAAia,KAAAo7C,GAAA5jD,aACAwjD,QAAAI,GAAAr1D,SAAA4B,IAAAyzD,GAAAhsC,cAAAksC,MACAJ,aAAA3qD,KAAA,gBAAA5V,KACAghE,YAAAx2D,IAAAiW,SAAAwgD,WACAC,UAAA,KAEAb,QAAAJ,WAAAM,cAAAx6C,OAAA26C,KAAA/yD,YAAA+yD,KAAAjsC,eAEA4rC,QAAAI,GAAAr1D,SAAA4B,IAAAizD,WAAAM,cAAAx6C,OAAA46C,MAEAJ,aAAA3qD,KAAA,gBAAA5V,KACAmhE,sBAAA,cACAC,mBAAA52D,IAAAiW,SAAAzO,WACAqvD,oBAAA,cACAC,qBAAA,gBAMApB,oBAAAK,cACAA,aAAA9jD,SAAA,oBACA8jD,aAAA3qD,KAAA,gBAAA6G,SAAA,mBACA8jD,aAAA3qD,KAAA,gBAAA5V,KACAqhE,oBAAA72D,IAAAiW,SAAAzO,aAGAuuD,aAAA1iD,YAAA,mCACA0iD,aAAA9jD,SAAA,SAIA8jD,aAAA3qD,KAAA,gBAAA5V,KACAohE,mBAAA,cACAD,sBAAAP,YACAS,oBAAA,cACAC,qBAAA,gBAMApB,oBAAAK,cACAA,aAAA9jD,SAAA,uBACA8jD,aAAA3qD,KAAA,gBAAA6G,SAAA,uBACA8jD,aAAA3qD,KAAA,gBAAA5V,KACAqhE,oBAAAT,cAGAL,aAAA1iD,YAAA,yBACA0iD,aAAA9jD,SAAA,UAEA,MAKA,KAAA,cACA6jD,SAAAG,GAAAr1D,SAAAia,KAAA46C,WAAAM,cAAA,MACAF,QAAAI,GAAAr1D,SAAA4B,IAAAyzD,GAAAhsC,cAAAksC,MACAJ,aAAA3qD,KAAA,gBAAA5V,KACAghE,YAAAx2D,IAAAiW,SAAAwgD,WACAC,UAAA,KAEAb,QAAAJ,WAAAM,cAAAx6C,OAAA26C,KAAA/yD,YAAA+yD,KAAAjsC,eAEA4rC,QAAAI,GAAAr1D,SAAA4B,IAAAizD,WAAAM,cAAAx6C,OAAA46C,MAEAJ,aAAA3qD,KAAA,gBAAA5V,KACAmhE,sBAAA,cACAC,mBAAA52D,IAAAiW,SAAAzO,WACAqvD,oBAAA,cACAC,qBAAA,gBAMApB,oBAAAK,cACAA,aAAA9jD,SAAA,mBACA8jD,aAAA3qD,KAAA,gBAAA6G,SAAA,mBACA8jD,aAAA3qD,KAAA,gBAAA5V,KACAshE,qBAAA92D,IAAAiW,SAAAzO,aAGAuuD,aAAA1iD,YAAA,mCACA0iD,aAAA9jD,SAAA,SAIA8jD,aAAA3qD,KAAA,gBAAA5V,KACAohE,mBAAA,cACAD,sBAAAP,YACAS,oBAAA,cACAC,qBAAA,gBAMApB,oBAAAK,cACAA,aAAA9jD,SAAA,sBACA8jD,aAAA3qD,KAAA,gBAAA6G,SAAA,sBACA8jD,aAAA3qD,KAAA,gBAAA5V,KACAshE,qBAAAV,cAGAL,aAAA1iD,YAAA,yBACA0iD,aAAA9jD,SAAA,UAEA,MAIA,KAAA,MACA6jD,SAAAG,GAAAr1D,SAAAia,KAAAo7C,GAAA5jD,aAAA,EAAAojD,WAAAM,cAAAz6C,MAAA,EACAu6C,QAAAI,GAAAr1D,SAAA4B,IAAAizD,WAAAM,cAAAx6C,OAAA46C,MACAJ,aAAA3qD,KAAA,gBAAA5V,KACAghE,YAAAx2D,IAAAiW,SAAAwgD,WACAC,UAAA,KAEAb,QAAAK,KAAA/yD,aAEA0yD,QAAAI,GAAAr1D,SAAA4B,IAAAyzD,GAAAhsC,cAAAksC,MAEAJ,aAAA3qD,KAAA,gBAAA5V,KACAmhE,sBAAAP,YACAQ,mBAAA,cACAC,oBAAA,cACAC,qBAAA,gBAGAf,aAAA1iD,YAAA,yBACA0iD,aAAA9jD,SAAA,YAIA8jD,aAAA3qD,KAAA,gBAAA5V,KACAohE,mBAAA52D,IAAAiW,SAAAzO,WACAmvD,sBAAA,cACAE,oBAAA,cACAC,qBAAA,gBAEAf,aAAA1iD,YAAA,yBACA0iD,aAAA9jD,SAAA,OAEA,MACA,KAAA,SACA6jD,SAAAG,GAAAr1D,SAAAia,KAAAo7C,GAAA5jD,aAAA,EAAAojD,WAAAM,cAAAz6C,MAAA,EACAu6C,QAAAI,GAAAr1D,SAAA4B,IAAAyzD,GAAAhsC,cAAAksC,MACAJ,aAAA3qD,KAAA,gBAAA5V,KACAghE,YAAAx2D,IAAAiW,SAAAwgD,WACAC,UAAA,KAEAb,QAAAJ,WAAAM,cAAAx6C,OAAA26C,KAAA/yD,YAAA+yD,KAAAjsC,eAEA4rC,QAAAI,GAAAr1D,SAAA4B,IAAAizD,WAAAM,cAAAx6C,OAAA46C,MACAJ,aAAA3qD,KAAA,gBAAA5V,KACAohE,mBAAA52D,IAAAiW,SAAAzO,WACAmvD,sBAAA,cACAE,oBAAA,cACAC,qBAAA,gBAEAf,aAAA1iD,YAAA,yBACA0iD,aAAA9jD,SAAA,SAIA8jD,aAAA3qD,KAAA,gBAAA5V,KACAmhE,sBAAAP,YACAQ,mBAAA,cACAC,oBAAA,cACAC,qBAAA,gBAEAf,aAAA1iD,YAAA,yBACA0iD,aAAA9jD,SAAAjS,IAAAiW,SAAAiR,UAEA,MACA,KAAA,OACA4uC,SAAAG,GAAAr1D,SAAAia,KAAA46C,WAAAM,cAAAz6C,MAAA66C,MACAN,QAAAI,GAAAr1D,SAAA4B,IAAAyzD,GAAAhsC,cAAA,EAAAwrC,WAAAM,cAAAx6C,OAAA,EACAw6C,aAAA3qD,KAAA,gBAAA5V,KACAkhE,WAAA12D,IAAAiW,SAAAwgD,WACAD,WAAA,KAEAV,SAAAI,KAAA1vC,cAEAsvC,SAAAG,GAAAr1D,SAAAia,KAAAo7C,GAAA5jD,aAAA8jD,MACAJ,aAAA3qD,KAAA,gBAAA5V,KACAshE,qBAAA92D,IAAAiW,SAAAzO,WACAqvD,oBAAA,cACAD,mBAAA,cACAD,sBAAA,gBAEAZ,aAAA1iD,YAAA,yBACA0iD,aAAA9jD,SAAA,WAIA8jD,aAAA3qD,KAAA,gBAAA5V,KACAqhE,oBAAA72D,IAAAiW,SAAAzO,WACAsvD,qBAAA,cACAF,mBAAA,cACAD,sBAAA,gBAEAZ,aAAA1iD,YAAA,yBACA0iD,aAAA9jD,SAAAjS,IAAAiW,SAAAiR,UAEA,MACA,KAAA,QACA4uC,SAAAG,GAAAr1D,SAAAia,KAAAo7C,GAAA5jD,aAAA8jD,MACAN,QAAAI,GAAAr1D,SAAA4B,IAAAyzD,GAAAhsC,cAAA,EAAAwrC,WAAAM,cAAAx6C,OAAA,EACAw6C,aAAA3qD,KAAA,gBAAA5V,KACAkhE,WAAA12D,IAAAiW,SAAAwgD,WACAD,WAAA,KAEAV,SAAAK,MAAAn2D,IAAAiW,SAAAqF,MAAA46C,KAAA1vC,aAAA0vC,KAAA7jD,cAEAyjD,SAAAG,GAAAr1D,SAAAia,KAAA46C,WAAAM,cAAAz6C,MAAA66C,MACAJ,aAAA3qD,KAAA,gBAAA5V,KACAqhE,oBAAA72D,IAAAiW,SAAAzO,WACAsvD,qBAAA,cACAF,mBAAA,cACAD,sBAAA,gBAEAZ,aAAA1iD,YAAA,yBACA0iD,aAAA9jD,SAAA,UAIA8jD,aAAA3qD,KAAA,gBAAA5V,KACAshE,qBAAA92D,IAAAiW,SAAAzO,WACAqvD,oBAAA,cACAD,mBAAA,cACAD,sBAAA,gBAEAZ,aAAA1iD,YAAA,yBACA0iD,aAAA9jD,SAAAjS,IAAAiW,SAAAiR,WAaA,GANA,cAAAlnB,IAAAiW,SAAAiR,UAEA6uC,aAAA3qD,KAAA,gBAAA5V,KACAuhE,eAAA/2D,IAAAiW,SAAAqF,MAAA,IAGA,aAAAtb,IAAAiW,SAAAiR,SACA,CACA,GAAA8vC,aAAAjB,aAAA3qD,KAAA,gBAAAkI,GAAA,EACA0jD,aAAAxhE,KACAuhE,cAAA/2D,IAAAiW,SAAAqF,MAAA,EAAA,EAAAtb,IAAAiW,SAAAwgD,aAGA,GAAA,iBAAAz2D,IAAAiW,SAAAiR,SACA,CACA,GAAA8vC,aAAAjB,aAAA3qD,KAAA,gBAAAkI,GAAA,EACA0jD,aAAAxhE,KACAuhE,eAAA/2D,IAAAiW,SAAAqF,MAAA,EACA27C,aAAA,KAGA,GAAA,gBAAAj3D,IAAAiW,SAAAiR,SACA,CACA,GAAA8vC,aAAAjB,aAAA3qD,KAAA,gBAAAkI,GAAA,EACA0jD,aAAAxhE,KACAuhE,cAAA/2D,IAAAiW,SAAAqF,MAAA,EAAA,EAAAtb,IAAAiW,SAAAwgD,WACAQ,aAAA,KAOAnB,SAAAI,KAAA1vC,eAAA,WAAAxmB,IAAAiW,SAAAiR,UAAA,QAAAlnB,IAAAiW,SAAAiR,YAEA6uC,aAAA3qD,KAAA,gBAAA5V,KACAghE,WAAAV,SAAA91D,IAAAiW,SAAAwgD,aAEAX,SAAA,GAEAA,SAAA91D,IAAAiW,SAAAqF,MAAA46C,KAAA7jD,eAAA,WAAArS,IAAAiW,SAAAiR,UAAA,QAAAlnB,IAAAiW,SAAAiR,YAEAoC,KAAA4sC,KAAA7jD,cAAAyjD,SAAA91D,IAAAiW,SAAAqF,OACAy6C,aAAA3qD,KAAA,gBAAA5V,KACAghE,YAAAltC,KAAAtpB,IAAAiW,SAAAwgD,WACAC,UAAA,KAEAZ,UAAAxsC,MAEAwsC,SAAAI,KAAA1vC,eACA,SAAAxmB,IAAAiW,SAAAiR,UACA,UAAAlnB,IAAAiW,SAAAiR,UACA,cAAAlnB,IAAAiW,SAAAiR,UACA,aAAAlnB,IAAAiW,SAAAiR,UACA,iBAAAlnB,IAAAiW,SAAAiR,UACA,gBAAAlnB,IAAAiW,SAAAiR,YAEA4uC,SAAAG,GAAAr1D,SAAAia,KAAAo7C,GAAA5jD,aAAA,EAAAojD,WAAAM,cAAAz6C,MAAA,EACAy6C,aAAA3qD,KAAA,gBAAA5V,KACAghE,YAAAx2D,IAAAiW,SAAAwgD,WACAC,UAAA,KAEAb,QAAAI,GAAAr1D,SAAA4B,IAAAizD,WAAAM,cAAAx6C,OAAA46C,MACAN,QAAAK,KAAA/yD,aAEA0yD,QAAAI,GAAAr1D,SAAA4B,IAAAyzD,GAAAhsC,cAAAksC,MACAJ,aAAA3qD,KAAA,gBAAA5V,KACAmhE,sBAAAP,YACAQ,mBAAA,cACAC,oBAAA,cACAC,qBAAA,gBAEAf,aAAA1iD,YAAA,yBACAqiD,oBAAAK,cACAA,aAAA9jD,SAAA,YAIA8jD,aAAA3qD,KAAA,gBAAA5V,KACAohE,mBAAA52D,IAAAiW,SAAAzO,WACAmvD,sBAAA,cACAE,oBAAA,cACAC,qBAAA,gBAEAf,aAAA1iD,YAAA,yBACAqiD,oBAAAK,cACAA,aAAA9jD,SAAA,QAEA6jD,SAAA91D,IAAAiW,SAAAqF,MAAA46C,KAAA7jD,eAEAiX,KAAA4sC,KAAA7jD,cAAAyjD,SAAA91D,IAAAiW,SAAAqF,OACAy6C,aAAA3qD,KAAA,gBAAA5V,KACAghE,YAAAltC,KAAAtpB,IAAAiW,SAAAwgD,WACAC,UAAA,KAEAZ,UAAAxsC,MAEAwsC,SAAAI,KAAA1vC,eAEAuvC,aAAA3qD,KAAA,gBAAA5V,KACAghE,WAAAV,SAAA91D,IAAAiW,SAAAwgD,aAEAX,SAAA,IAOAA,SAAA91D,IAAAiW,SAAAqF,MAAA46C,KAAA7jD,eACA,SAAArS,IAAAiW,SAAAiR,UACA,UAAAlnB,IAAAiW,SAAAiR,UACA,cAAAlnB,IAAAiW,SAAAiR,UACA,aAAAlnB,IAAAiW,SAAAiR,UACA,iBAAAlnB,IAAAiW,SAAAiR,UACA,iBAAAlnB,IAAAiW,SAAAiR,YAEA4uC,SAAAG,GAAAr1D,SAAAia,KAAAo7C,GAAA5jD,aAAA,EAAAojD,WAAAM,cAAAz6C,MAAA,EACAy6C,aAAA3qD,KAAA,gBAAA5V,KACAghE,YAAAx2D,IAAAiW,SAAAwgD,WACAC,UAAA,KAEAb,QAAAI,GAAAr1D,SAAA4B,IAAAizD,WAAAM,cAAAx6C,OAAA46C,MACAN,QAAAK,KAAA/yD,aAEA0yD,QAAAI,GAAAr1D,SAAA4B,IAAAyzD,GAAAhsC,cAAAksC,MACAJ,aAAA3qD,KAAA,gBAAA5V,KACAmhE,sBAAAP,YACAQ,mBAAA,cACAC,oBAAA,cACAC,qBAAA,gBAGApB,oBAAAK,cACAA,aAAA1iD,YAAA,yBACA0iD,aAAA9jD,SAAA,YAIA8jD,aAAA3qD,KAAA,gBAAA5V,KACAohE,mBAAA52D,IAAAiW,SAAAzO,WACAmvD,sBAAA,cACAE,oBAAA,cACAC,qBAAA,gBAMApB,oBAAAK,cACAA,aAAA1iD,YAAA,yBACA0iD,aAAA9jD,SAAA,QAEA6jD,SAAA91D,IAAAiW,SAAAqF,MAAA46C,KAAA7jD,eAEAiX,KAAA4sC,KAAA7jD,cAAAyjD,SAAA91D,IAAAiW,SAAAqF,OACAy6C,aAAA3qD,KAAA,gBAAA5V,KACAghE,YAAAltC,KAAAtpB,IAAAiW,SAAAwgD,WACAC,UAAA,KAEAZ,UAAAxsC,MAEAwsC,SAAAI,KAAA1vC,eAEAuvC,aAAA3qD,KAAA,gBAAA5V,KACAghE,WAAAV,SAAA91D,IAAAiW,SAAAwgD,aAEAX,SAAA,IAGAC,aAAAvgE,KACAqlB,KAAAi7C,SAAA91D,IAAAiW,SAAAwH,QACAjb,IAAAqzD,QAAA71D,IAAAiW,SAAAyH,UAMAm4C,QAAAK,KAAA/yD,cAAA,UAAAnD,IAAAiW,SAAAiR,UAAA,SAAAlnB,IAAAiW,SAAAiR,YAEA+uC,GAAAiB,MAAA,SAAA,WAAA,UACAvB,WAAA31D,MAEA61D,QAAAJ,WAAAM,cAAAx6C,OAAA26C,KAAA/yD,YAAA+yD,KAAAjsC,gBACA,UAAAjqB,IAAAiW,SAAAiR,UAAA,SAAAlnB,IAAAiW,SAAAiR,YAEA+uC,GAAAiB,MAAA,SAAA,WAAA,OACAvB,WAAA31D,MA17BA,GAAAk1D,YAAA,QACA1qD,UACAwO,MAAA,IACAxR,WAAA,UACA+uD,gBAAA,UACAY,MAAA,UACAC,WAAA,UACAd,aAAA,GACAe,WAAA,EACAnwC,SAAA,MACA5L,MAAA,IACAg8C,SAAA,GACA37B,MAAA,IACA47B,UAAA,EACAC,YAAA,GACAC,aAAA,GACAh6C,QAAA,EACAC,QAAA,EACA+4C,WAAA,EACAiB,cAAA,EACAxhC,QAAA,KACAyhC,eAAA,KACAC,kBAAA,EACAC,iBAAA,KACAC,UAAA,EACAC,mBAAA,KACAC,aAAA,KACAC,OAAA,KACAC,OAAA,KA2DAnkE,GAAA5K,OAAA2rE,OAAA5vE,WACAJ,KAAA,WACA,GAAAkb,KAAAjb,KACAkxE,GAAAlxE,KAAAorC,QACAprC,MAAAiI,GAGA,IAFAipE,GAAAhkD,SAAA,eAAAgL,WAAA,SAEAjd,IAAAiW,SAAAyhD,aAAA,CACA,GAAAS,cAAA,KACAC,YAAA,IACAnC,IAAAnvE,GAAA,aAAAouE,WAAA,WACAl+C,aAAAmhD,cACAnhD,aAAAohD,aACAA,YAAA7mE,WAAA,WACAyO,IAAAiT,QACA,OAEAgjD,GAAAnvE,GAAA,YAAAouE,WAAA,WACAl+C,aAAAmhD,cACAnhD,aAAAohD,aACAD,aAAA5mE,WAAA,WACAyO,IAAAoT,QACA,KAEApT,IAAAg2D,UACAlvE,GAAA,aAAAouE,WAAA,WACAl1D,IAAAi8C,KAAA,iBAEAn1D,GAAA,YAAAouE,WAAA,WACAl1D,IAAAi8C,KAAA,OACAjlC,aAAAmhD,cACAA,aAAA5mE,WAAA,WACAyO,IAAAoT,QACA,aAKA6iD,IAAAnvE,GAAA,aAAAouE,WAAA,WACAl1D,IAAAiT,SAEAgjD,GAAAnvE,GAAA,YAAAouE,WAAA,WACAl1D,IAAAoT,QAGApT,KAAAiW,SAAA0hD,iBAEA33D,IAAAq4D,YAAA,OAGArC,QAAA,WAMA,MALAjxE,MAAAgxE,eACAhxE,KAAAgxE,aAAAhiE,EACA,oIAGAhP,KAAAgxE,cAEA9iD,KAAA,WACA,GAAA8iD,cAAAhxE,KAAAixE,UACAh2D,IAAAjb,KACAmxE,KAAAnxE,KAAAgwE,GAEA/0D,KAAAiW,SAAAohD,aAAA,EACAtB,aAAA3qD,KAAA,gBAAAgI,OAGA2iD,aAAA3qD,KAAA,gBAAA6H,OAGA,SAAAjT,IAAAi8C,OACAloD,EAAAyzB,WAAAxnB,IAAAiW,SAAA+hD,eACAh4D,IAAAiW,SAAA+hD,aAAAh4D,IAAAmwB,SAAAnwB,IAAAiH,QAAAjH,KAEAA,IAAAiW,SAAAm+C,MACA2B,aAAA9jD,SAAAjS,IAAAiW,SAAAm+C,MAEAp0D,IAAAiW,SAAAqF,MACAy6C,aAAAvgE,KACAgS,WAAAxH,IAAAiW,SAAAzO,WACA2vD,MAAAn3D,IAAAiW,SAAAkhD,MACA77C,MAAAtb,IAAAiW,SAAAqF,QACAlI,OACApT,IAAAiW,SAAAqhD,SACAvB,aAAAvgE,KACAgS,WAAAxH,IAAAiW,SAAAzO,WACA2vD,MAAAn3D,IAAAiW,SAAAkhD,MACAG,SAAAt3D,IAAAiW,SAAAqhD,WACAlkD,OAEA2iD,aAAAvgE,KACAgS,WAAAxH,IAAAiW,SAAAzO,WACA2vD,MAAAn3D,IAAAiW,SAAAkhD,MACA77C,MAAA,MACAlI,OAEA2iD,aAAA3qD,KAAA,gBAAA5V,KACAgS,WAAAxH,IAAAiW,SAAAsgD,gBACAY,MAAAn3D,IAAAiW,SAAAmhD,aAEArB,aAAA3qD,KAAA,kBAAA/b,KAAA2Q,IAAAk2B,WACA6/B,aAAA3qD,KAAA,gBAAA/b,KAAA2Q,IAAAs2D,gBACAX,WAAA31D,KAEAk2D,KAAApvE,GAAA,UAAAouE,WAAA,WACAl1D,IAAAiW,SAAAiR,SAAAlnB,IAAAiW,SAAAu/C,iBACAG,WAAA31D,OAGA/U,OAAA+rB,aAAAhX,IAAAiZ,SACAjZ,IAAAiZ,QAAA,KACAjZ,IAAAiZ,QAAAhuB,OAAAsG,WAAA,WACAyO,IAAAu1D,QAAA,KAAAv1D,IAAAiW,SAAAuhD,aAAA,KAAAx3D,IAAAiW,SAAAwhD,aACA1B,aAAA/jC,SAAA,QAAAsmC,MAAA,GAAA,GAAAtlD,OAAAhT,IAAAiW,SACA+C,MAAA,WACAhZ,IAAAi8C,KAAA,OACAloD,EAAAyzB,WAAAxnB,IAAAiW,SAAAgiD,SACAj4D,IAAAiW,SAAAgiD,OAAAj4D,IAAAmwB,SAAAnwB,IAAAiH,QAAAjH,OAIA+1D,aAAA1zD,SAAA2vB,SAAA,QACAsmC,MAAA,GAAA,GACAjlD,YAAA,YAAArT,IAAAiW,SAAAwhD,cACAxlD,SAAA,eACAoB,YAAA,eACApB,SAAA,YAAAjS,IAAAiW,SAAAuhD,aAAAxkD,OAAAhT,IAAAiW,SAAA+C,MAAA,WACAjlB,EAAAhP,MAAAwzE,IAAA,+EAAA,WACAxkE,EAAAhP,MAAAsuB,YAAA,YAAArT,IAAAiW,SAAAuhD,eAEAx3D,IAAAi8C,KAAA,OACAloD,EAAAyzB,WAAAxnB,IAAAiW,SAAAgiD,SACAj4D,IAAAiW,SAAAgiD,OAAAj4D,IAAAmwB,SAAAnwB,IAAAiH,QAAAjH,KAEAk2D,KAAAvuE,IAAA,UAAAutE,WAAA,KAAA,yBAGAl1D,IAAAiW,SAAA0lB,SAGAvoB,KAAA,SAAAyqC,OACA,GAAA79C,KAAAjb,KACAmxE,KAAAnxE,KAAAgwE,IACAgB,aAAAhxE,KAAAixE,UACAuB,UAAAv3D,IAAAiW,SAAAshD,SAEA1Z,SACA0Z,UAAA,EACAv3D,IAAAi8C,KAAA,QAGAhxD,OAAA+rB,aAAAhX,IAAAiZ,SACAjZ,IAAAiZ,QAAA,KACAjZ,IAAAiZ,QAAAhuB,OAAAsG,WAAA,WACA,iBAAAyO,IAAAi8C,OACAj8C,IAAAu1D,QAAA,KAAAv1D,IAAAiW,SAAAuhD,aAAA,KAAAx3D,IAAAiW,SAAAwhD,aACA1B,aAAAuC,MAAA,GAAA,GAAAnlD,QAAAnT,IAAAiW,SAAA+C,MACA,WACAjlB,EAAAhP,MAAAsd,SACAtO,EAAAyzB,WAAAxnB,IAAAiW,SAAAiiD,SAAA,SAAAl4D,IAAAi8C,MACAj8C,IAAAiW,SAAAiiD,OAAAl4D,IAAAmwB,SAAAnwB,IAAAiH,QAAAjH,KAEAA,IAAAi8C,KAAA,OACAia,KAAAvuE,IAAA,UAAAutE,WAAA,KAAA,wBAGAa,aAAAuC,MAAA,GAAA,GACAjlD,YAAA,YAAArT,IAAAiW,SAAAuhD,aACAvlD,SAAA,eAAAoB,YAAA,eACApB,SAAA,YAAAjS,IAAAiW,SAAAwhD,cACAc,IAAA,+EAAA,WACAxkE,EAAAhP,MAAAsuB,YAAA,YAAArT,IAAAiW,SAAAwhD,cAAAp1D,SACAtO,EAAAyzB,WAAAxnB,IAAAiW,SAAAiiD,SAAA,SAAAl4D,IAAAi8C,MACAj8C,IAAAiW,SAAAiiD,OAAAl4D,IAAAmwB,SAAAnwB,IAAAiH,QAAAjH,KAEAA,IAAAi8C,KAAA,OACAia,KAAAvuE,IAAA,UAAAutE,WAAA,KAAA,0BAIAqC,YAEAhjC,MAAA,WACAxvC,KAAAquB,MAAA,IAEAhR,QAAA,WACA,GAAA6zD,IAAAlxE,KAAAorC,SACA+lC,KAAAnxE,KAAAgwE,GACAhwE,MAAAiI,GACAipE,IAAAtuE,IAAA,IAAAutE,YACAgB,KAAAvuE,IAAA,UAAAutE,WAAA,KAAA,sBACAe,GAAAr9C,WAAAs8C,YACAe,GAAA5iD,YAAA,eAAAV,KAAA,QAAA5tB,KAAAuwE,SAEAgB,aAAA,WACA,GAAApgC,SACA+/B,GAAAlxE,KAAAorC,SACAnwB,IAAAjb,IASA,OANAmxC,SAFAl2B,IAAAiW,SAAAqgD,aAEAt2D,IAAAiW,SAAAqgD,aAIAL,GAAA5wE,KAAA,gBAIA6wC,QAAA,WACA,GAAAA,SACA+/B,GAAAlxE,KAAAorC,SACAnwB,IAAAjb,KACA81C,MAAA91C,KAAAuwE,MAqDA,OApDAt1D,KAAAiW,SAAA0hD,eAEA33D,IAAAw4D,aAEAtiC,QAAAl2B,IAAAw4D,cAIAx4D,IAAAw4D,aAAAtiC,QAAAniC,EAAAyiB,MACArwB,KAAA,MACA6gB,IAAAhH,IAAAiW,SAAA0hD,eACAc,OAAA,IACAC,aACA14D,IAAAiW,SAAA2hD,kBAAA,EAEArmE,WAAA,WACAyO,IAAAw4D,aAAA,MACAx4D,IAAAiW,SAAA2hD,mBAIA53D,IAAAw4D,aAAA,MAIAx4D,IAAAiW,SAAA4hD,iBAEA3hC,QAAAniC,EAAA,IAAAiM,IAAAiW,SAAA4hD,kBAAA7oE,OAEAgR,IAAAiW,SAAAigB,QAEAA,QAAAl2B,IAAAiW,SAAAigB,QAIAl2B,IAAAiW,SAAA6hD,YAAA,EAEA5hC,QAAA2E,MAKA,gBAAAo7B,IAAA5wE,KAAA,WAEA6wC,QAAA+/B,GAAA5wE,KAAA,UAIA,OAAA2a,IAAAiW,SAAA8hD,qBAEA7hC,QAAAl2B,IAAAiW,SAAA8hD,mBAAA7hC,UAEAA,SAEAt0B,OAAA,SAAA9L,IAAAiY,OACA,GAAA/N,KAAAjb,IACA,OAAAgpB,YACA/N,IAAAiW,SAAAngB,KAAAiY,OAEA/N,IAAAiW,SAAAngB,OAkBA,IAAA88B,qBAAA,WACA,GAAA5sC,GAAA+C,SAAAC,cAAA,KAAA6L,MACAjD,GAAA,KAAA,IAAA,MAAA,SACA,IAAA,KAAA5L,EAAA,WAAA,OAAA,CACA,MAAA4L,EAAAhL,QACA,GAAAgL,EAAAihC,MAAA,cAAA7sC,GACA,OAAA,CACA,QAAA,IA8jBA+N,GAAAmhE,YAAAnhE,EAAA5E,GAAA+lE,YAAA,SAAA10D,SACA,GAAAmF,MAAAhf,SACA,IAAAsc,SAAAzC,SAAA,gBAAAA,SAIA,MAHAzb,gBAAAgP,IACAA,EAAA5K,OAAAqhB,SAAAhK,SAEAzb,KAAAuqB,KAAA,WACAvb,EAAA1O,KAAAN,KAAA,UAAAmwE,aACAnhE,EAAA1O,KAAAN,KAAA,UAAAmwE,WAAA,GAAAJ,QAAA/vE,KAAAyb,WAGA,IAAA,gBAAAA,UAAA,MAAAA,QAAA,IACA,SADAA,QACA,CACA,GAAAm4D,QAgBA,OAfA5zE,MAAAuqB,KAAA,WACA,GAAA3F,UAAA5V,EAAA1O,KAAAN,KAAA,UAAAmwE,WACAvrD,YACAA,SAAA5V,EAAA1O,KAAAN,KAAA,UAAAmwE,WAAA,GAAAJ,QACA/vE,KAAAyb,WAEAmJ,mBAAAmrD,SACA,kBADAnrD,UAAAnJ,WAEAm4D,QAAAhvD,SAAAnJ,SAAAhb,MAAAmkB,SAAA1kB,MAAAC,UAAAC,MACAC,KAAAugB,KAAA,KAEA,YAAAnF,SACAzM,EAAA1O,KAAAN,KAAA,UAAAmwE,WAAA,QAGAjyD,SAAA01D,QAAAA,QAAA5zE","file":"plugins.js","sourcesContent":["/*\r\n * defiant.js.js [v1.4.5]\r\n * http://www.defiantjs.com \r\n * Copyright (c) 2013-2017, Hakan Bilgin \r\n * Licensed under the MIT License\r\n */\r\nif(function(e,t){var n={init:function(){return this},work_handler:function(e){var t=Array.prototype.slice.call(e.data,1),n=e.data[0],r=tree[n].apply(tree,t);postMessage([n,r])},setup:function(t){var r=e.URL||e.webkitURL,a=\"var tree = {\"+this.parse(t).join(\",\")+\"};\",s=new Blob([a+'self.addEventListener(\"message\", '+this.work_handler.toString()+\", false);\"],{type:\"text/javascript\"}),o=new Worker(r.createObjectURL(s));return o.onmessage=function(e){var t=Array.prototype.slice.call(e.data,1),r=e.data[0];n.observer.emit(\"x10:\"+r,t)},o},call_handler:function(e,t){return function(){var r=Array.prototype.slice.call(arguments,0,-1),a=arguments[arguments.length-1];r.unshift(e),n.observer.on(\"x10:\"+e,function(e){a(e.detail[0])}),t.postMessage(r)}},compile:function(e){var t,n=this.setup(\"function\"==typeof e?{func:e}:e),r={};if(\"function\"==typeof e)return r.func=this.call_handler(\"func\",n),r.func;for(t in e)r[t]=this.call_handler(t,n);return r},parse:function(e,n){var r,a,s,o=[];for(r in e)if(s=e[r],null!==s)if(s!==t){switch(s.constructor){case Date:a=\"new Date(\"+s.valueOf()+\")\";break;case Object:a=\"{\"+this.parse(s).join(\",\")+\"}\";break;case Array:a=\"[\"+this.parse(s,!0).join(\",\")+\"]\";break;case String:a='\"'+s.replace(/\"/g,'\\\\\"')+'\"';break;case RegExp:case Function:a=s.toString();break;default:a=s}n?o.push(a):o.push(r+\":\"+a)}else o.push(r+\":undefined\");else o.push(r+\":null\");return o},observer:function(){var e={};return{on:function(t,n){e[t]||(e[t]=[]),e[t].unshift(n)},off:function(t,n){if(e[t]){var r=e[t].indexOf(n);e[t].splice(r,1)}},emit:function(t,n){if(e[t])for(var r={type:t,detail:n,isCanceled:!1,cancelBubble:function(){this.isCanceled=!0}},a=e[t].length;a--;){if(r.isCanceled)return;e[t][a](r)}}}}()};\"undefined\"==typeof module?e.x10=n.init():module.exports=n.init()}(this),function(e,t,n){\"use strict\";var r={is_ie:/(msie|trident)/i.test(navigator.userAgent),is_safari:/safari/i.test(navigator.userAgent),env:\"production\",xml_decl:'',namespace:'xmlns:d=\"defiant-namespace\"',tabsize:4,render:function(e,t){var n,r,a,s,o=new XSLTProcessor,i=document.createElement(\"span\"),l={match:\"/\"};switch(typeof e){case\"object\":this.extend(l,e),l.data||(l.data=t);break;case\"string\":l.template=e,l.data=t;break;default:throw\"error\"}if(l.data=JSON.toXML(l.data),n='//xsl:template[@name=\"'+l.template+'\"]',this.xsl_template||this.gatherTemplates(),l.sorter&&(s=this.node.selectSingleNode(this.xsl_template,n+\"//xsl:for-each//xsl:sort\"),s&&(l.sorter.order&&s.setAttribute(\"order\",l.sorter.order),l.sorter.select&&s.setAttribute(\"select\",l.sorter.select),s.setAttribute(\"data-type\",l.sorter.type||\"text\"))),a=this.node.selectSingleNode(this.xsl_template,n),a.setAttribute(\"match\",l.match),o.importStylesheet(this.xsl_template),i.appendChild(o.transformToFragment(l.data,document)),a.removeAttribute(\"match\"),this.is_safari){r=i.getElementsByTagName(\"script\");for(var c=0,u=r.length;c\"+t.replace(/defiant:(\\w+)/g,\"$1\")+\"\")},getSnapshot:function(e,t){return JSON.toXML(e,t||!0)},xmlFromString:function(t){var n,r;return t=t.replace(/>\\s{1,}<\"),null===t.trim().match(/<\\?xml/)&&(t=this.xml_decl+t),\"ActiveXObject\"in e?(r=new ActiveXObject(\"Msxml2.DOMDocument\"),r.loadXML(t),r.setProperty(\"SelectionNamespaces\",this.namespace),t.indexOf(\"xsl:stylesheet\")===-1&&r.setProperty(\"SelectionLanguage\",\"XPath\")):(n=new DOMParser,r=n.parseFromString(t,\"text/xml\")),r},extend:function(e,t){for(var n in t)e[n]&&\"object\"==typeof t[n]?this.extend(e[n],t[n]):e[n]=t[n];return e},node:{}};e.Defiant=t.exports=r}(\"undefined\"!=typeof window?window:{},\"undefined\"!=typeof module?module:{}),\"undefined\"==typeof XSLTProcessor){var XSLTProcessor=function(){};XSLTProcessor.prototype={importStylesheet:function(e){this.xsldoc=e},transformToFragment:function(e,t){var n=e.transformNode(this.xsldoc),r=document.createElement(\"span\");return r.innerHTML=n,r}}}else if(\"function\"!=typeof XSLTProcessor&&!XSLTProcessor)throw\"XSLTProcessor transformNode not implemented\";String.prototype.fill||(String.prototype.fill=function(e,t){var n=this;for(t=t||\" \";n.length/,rx_constructor:/<(.+?)( d:contr=\".*?\")>/,rx_namespace:/ xmlns\\:d=\"defiant\\-namespace\"/,rx_data:/(<.+?>)(.*?)(<\\/d:data>)/i,rx_function:/function (\\w+)/i,namespace:'xmlns:d=\"defiant-namespace\"',to_xml_str:function(e){return{str:this.hash_to_xml(null,e),map:this.map}},hash_to_xml:function(e,t,n){var r,a,s,o,i,l,c,u,d,h=t.constructor===Array,p=this,m=[],f=[],g=function(t,r){if(a=r[t],null!==a&&void 0!==a&&\"NaN\"!==a.toString()||(a=null),o=\"@\"===t.slice(0,1),i=n?e:t,i==+i&&r.constructor!==Object&&(i=\"d:item\"),null===a?(l=null,c=!1):(l=a.constructor,c=l.toString().match(p.rx_function)[1]),o)f.push(i.slice(1)+'=\"'+p.escape_xml(a)+'\"'),\"String\"!==c&&f.push(\"d:\"+i.slice(1)+'=\"'+c+'\"');else if(null===a)m.push(p.scalar_to_xml(i,a));else switch(l){case Function:throw\"JSON data should not contain functions. Please check your structure.\";case Object:m.push(p.hash_to_xml(i,a));break;case Array:if(t===i){if(s=a.constructor===Array)for(u=a.length;u--;)null!==a[u]&&a[u]&&a[u].constructor!==Array||(s=!0),s||a[u].constructor!==Object||(s=!0);m.push(p.scalar_to_xml(i,a,s));break}case String:if(\"string\"==typeof a&&(a=a.toString().replace(/\\&/g,\"&\").replace(/\\r|\\n/g,\" \")),\"#text\"===i){p.map.push(r),f.push('d:mi=\"'+p.map.length+'\"'),f.push('d:constr=\"'+c+'\"'),m.push(p.escape_xml(a));break}case Number:case Boolean:if(\"#text\"===i&&\"String\"!==c){p.map.push(r),f.push('d:mi=\"'+p.map.length+'\"'),f.push('d:constr=\"'+c+'\"'),m.push(p.escape_xml(a));break}m.push(p.scalar_to_xml(i,a))}};if(t.constructor===Array)for(u=0,d=t.length;u\"+m.join(\"\")+\"\":\"/>\"))},scalar_to_xml:function(e,t,n){var r,a,s,o=\"\";if(null===e.match(this.rx_validate_name)&&(o+=' d:name=\"'+e+'\"',e=\"d:name\",n=!1),null!==t&&\"NaN\"!==t.toString()||(t=null),null===t)return\"<\"+e+' d:constr=\"null\"/>';if(1===t.length&&t.constructor===Array&&!t[0])return\"<\"+e+' d:constr=\"null\" d:type=\"ArrayItem\"/>';if(1===t.length&&t[0].constructor===Object){r=this.hash_to_xml(!1,t[0]);var i=r.match(this.rx_node),l=r.match(this.rx_constructor);return i=null!==i?i[2].replace(this.rx_namespace,\"\").replace(/>/,\"\").replace(/\"\\/$/,'\"'):\"\",l=null!==l?l[2]:\"\",r=r.match(this.rx_data),r=null!==r?r[2]:\"\",\"<\"+e+i+\" \"+l+' d:type=\"ArrayItem\">'+r+\"\"}return 0===t.length&&t.constructor===Array?\"<\"+e+' d:constr=\"Array\"/>':n?this.hash_to_xml(e,t,!0):(a=t.constructor,s=a.toString().match(this.rx_function)[1],r=a===Array?this.hash_to_xml(\"d:item\",t,!0):this.escape_xml(t),o+=' d:constr=\"'+s+'\"',this.map.push(t),o+=' d:mi=\"'+this.map.length+'\"',\"#text\"===e?this.escape_xml(t):\"<\"+e+o+\">\"+r+\"\")},escape_xml:function(e){return String(e).replace(//g,\">\").replace(/\"/g,\""\").replace(/ /g,\" \")}};switch(typeof t){case\"function\":return a=x10.compile(s),void a.to_xml_str(e,function(n){t({doc:Defiant.xmlFromString(n.str),src:e,map:n.map})});case\"boolean\":return n=s.to_xml_str.call(s,e),{doc:Defiant.xmlFromString(n.str),src:e,map:n.map};default:return n=s.to_xml_str.call(s,e),r=Defiant.xmlFromString(n.str),this.search.map=n.map,r}}),JSON.search||(JSON.search=function(e,t,n){\"use strict\";var r,a,s=e.doc&&e.doc.nodeType,o=s?e.doc:JSON.toXML(e),i=s?e.map:this.search.map,l=s?e.src:e,c=Defiant.node[n?\"selectSingleNode\":\"selectNodes\"](o,t.xTransform()),u=[];for(n&&(c=[c]),a=c.length;a--;)switch(c[a].nodeType){case 2:case 3:u.unshift(c[a].nodeValue);break;default:r=+c[a].getAttribute(\"d:mi\"),u.unshift(i[r-1])}return\"development\"===Defiant.env&&(this.trace=JSON.mtrace(l,u,c)),u}),JSON.mtrace||(JSON.mtrace=function(e,t,n){\"use strict\";for(var r,a,s,o,i,l=window,c=JSON.stringify,u=c(e,null,\"\\t\").replace(/\\t/g,\"\"),d=[],h=0,p=n.length,m=!!p&&n[h].ownerDocument.documentElement,f=(this.search.map,0);h0?n[0]:null}return e.selectSingleNode(t)},Defiant.node.prettyPrint=function(e){var t,n,r=Defiant,a=r.tabsize,s=r.xml_decl.toLowerCase();r.is_ie?n=e.xml:(t=new XMLSerializer,n=t.serializeToString(e)),\"development\"!==r.env&&(n=n.replace(/ \\w+\\:d=\".*?\"| d\\:\\w+=\".*?\"/g,\"\"));for(var o,i,l=n.trim().replace(/(>)\\s*(<)(\\/*)/g,\"$1\\n$2$3\"),c=l.split(\"\\n\"),u=-1,d=0,h=c.length;d/g),i=null!==c[d].match(/<\\/[\\w\\:]+>/g),null!==c[d].match(/<.*?\\/>/g)&&(o=i=!0),o&&u++,c[d]=String().fill(u,\"\\t\")+c[d],o&&i&&u--,!o&&i&&u--);return c.join(\"\\n\").replace(/\\t/g,String().fill(a,\" \"))},Defiant.node.toJSON=function(e,t){\"use strict\";var n=function(e){var t,r,a,s,o,i,l,c,u,d,h={},p=window;switch(e.nodeType){case 1:for(o=e.getAttribute(\"d:constr\"),\"Array\"===o?h=[]:\"String\"===o&&\"\"===e.textContent&&(h=\"\"),t=e.attributes,c=0,u=t.length;c\")&&(a=a.replace(q,\">\"));-1!=a.indexOf('\"')&&(a=a.replace(r,\""\"));-1!=a.indexOf(\"'\")&&(a=a.replace(t,\"'\"));-1!=a.indexOf(\"\\x00\")&&(a=a.replace(u,\"�\"))}return a},n=/&/g,p=//g,r=/\"/g,t=/'/g,u=/\\x00/g,v=/[\\x00&<>\"']/;var x=/^[\\w+/_-]+[=]{0,2}$/;function y(a){return a in z?z[a]:z[a]=-1!=navigator.userAgent.toLowerCase().indexOf(a)}var z={};function A(a,b){var c=function(){};c.prototype=b.prototype;a.da=b.prototype;a.prototype=new c}function C(a,b,c){var d=Array.prototype.slice.call(arguments,2)||[];return function(){return a.apply(b,d.concat(Array.prototype.slice.call(arguments)))}}function D(a){a=Error(a);a.toString=function(){return this.message};return a}\r\nfunction E(a,b){a=a.split(/\\./);for(var c=window,d=0;d\\x3c/script>\"):(y(\"safari\")||y(\"konqueror\"))&&window.setTimeout(L,10)),I.push(a)):J(window,\"load\",a)};l(\"google.setOnLoadCallback\",google.ca);\r\nfunction J(a,b,c){if(a.addEventListener)a.addEventListener(b,c,!1);else if(a.attachEvent)a.attachEvent(\"on\"+b,c);else{var d=a[\"on\"+b];a[\"on\"+b]=null!=d?M([c,d]):c}}function M(a){return function(){for(var b=0;b\\x3c/script>\")):\"css\"==a&&(e='\"))};l(\"google.loader.writeLoadTag\",google.loader.f);google.loader.$=function(a){H=a};l(\"google.loader.rfm\",google.loader.$);google.loader.ba=function(a){for(var b in a)\"string\"==typeof b&&b&&\":\"==b.charAt(0)&&!G[b]&&(G[b]=new O(b.substring(1),a[b]))};\r\nl(\"google.loader.rpl\",google.loader.ba);google.loader.aa=function(a){if((a=a.specs)&&a.length)for(var b=0;b this.getScrollerHeight();\r\n\r\n return pastTop || pastBottom;\r\n },\r\n\r\n /**\r\n * determines if the tolerance has been exceeded\r\n * @param {int} currentScrollY the current scroll y position\r\n * @return {bool} true if tolerance exceeded, false otherwise\r\n */\r\n toleranceExceeded : function (currentScrollY, direction) {\r\n return Math.abs(currentScrollY-this.lastKnownScrollY) >= this.tolerance[direction];\r\n },\r\n\r\n /**\r\n * determine if it is appropriate to unpin\r\n * @param {int} currentScrollY the current y scroll position\r\n * @param {bool} toleranceExceeded has the tolerance been exceeded?\r\n * @return {bool} true if should unpin, false otherwise\r\n */\r\n shouldUnpin : function (currentScrollY, toleranceExceeded) {\r\n var scrollingDown = currentScrollY > this.lastKnownScrollY,\r\n pastOffset = currentScrollY >= this.offset;\r\n\r\n return scrollingDown && pastOffset && toleranceExceeded;\r\n },\r\n\r\n /**\r\n * determine if it is appropriate to pin\r\n * @param {int} currentScrollY the current y scroll position\r\n * @param {bool} toleranceExceeded has the tolerance been exceeded?\r\n * @return {bool} true if should pin, false otherwise\r\n */\r\n shouldPin : function (currentScrollY, toleranceExceeded) {\r\n var scrollingUp = currentScrollY < this.lastKnownScrollY,\r\n pastOffset = currentScrollY <= this.offset;\r\n\r\n return (scrollingUp && toleranceExceeded) || pastOffset;\r\n },\r\n\r\n /**\r\n * Handles updating the state of the widget\r\n */\r\n update : function() {\r\n var currentScrollY = this.getScrollY(),\r\n scrollDirection = currentScrollY > this.lastKnownScrollY ? 'down' : 'up',\r\n toleranceExceeded = this.toleranceExceeded(currentScrollY, scrollDirection);\r\n\r\n if(this.isOutOfBounds(currentScrollY)) { // Ignore bouncy scrolling in OSX\r\n return;\r\n }\r\n\r\n if (currentScrollY <= this.offset ) {\r\n this.top();\r\n } else {\r\n this.notTop();\r\n }\r\n\r\n if(currentScrollY + this.getViewportHeight() >= this.getScrollerHeight()) {\r\n this.bottom();\r\n }\r\n else {\r\n this.notBottom();\r\n }\r\n\r\n if(this.shouldUnpin(currentScrollY, toleranceExceeded)) {\r\n this.unpin();\r\n }\r\n else if(this.shouldPin(currentScrollY, toleranceExceeded)) {\r\n this.pin();\r\n }\r\n\r\n this.lastKnownScrollY = currentScrollY;\r\n }\r\n };\r\n /**\r\n * Default options\r\n * @type {Object}\r\n */\r\n Headroom.options = {\r\n tolerance : {\r\n up : 0,\r\n down : 0\r\n },\r\n offset : 0,\r\n scroller: window,\r\n classes : {\r\n pinned : 'headroom--pinned',\r\n unpinned : 'headroom--unpinned',\r\n top : 'headroom--top',\r\n notTop : 'headroom--not-top',\r\n bottom : 'headroom--bottom',\r\n notBottom : 'headroom--not-bottom',\r\n initial : 'headroom'\r\n }\r\n };\r\n Headroom.cutsTheMustard = typeof features !== 'undefined' && features.rAF && features.bind && features.classList;\r\n\r\n return Headroom;\r\n}));\r\n","/*!\r\n * imagesLoaded PACKAGED v4.1.3\r\n * JavaScript is all like \"You images are done yet or what?\"\r\n * MIT License\r\n */\r\n\r\n/**\r\n * EvEmitter v1.1.0\r\n * Lil' event emitter\r\n * MIT License\r\n */\r\n\r\n/* jshint unused: true, undef: true, strict: true */\r\n\r\n( function( global, factory ) {\r\n // universal module definition\r\n /* jshint strict: false */ /* globals define, module, window */\r\n if ( typeof define == 'function' && define.amd ) {\r\n // AMD - RequireJS\r\n define( 'ev-emitter/ev-emitter',factory );\r\n } else if ( typeof module == 'object' && module.exports ) {\r\n // CommonJS - Browserify, Webpack\r\n module.exports = factory();\r\n } else {\r\n // Browser globals\r\n global.EvEmitter = factory();\r\n }\r\n\r\n}( typeof window != 'undefined' ? window : this, function() {\r\n\r\n\r\n\r\nfunction EvEmitter() {}\r\n\r\nvar proto = EvEmitter.prototype;\r\n\r\nproto.on = function( eventName, listener ) {\r\n if ( !eventName || !listener ) {\r\n return;\r\n }\r\n // set events hash\r\n var events = this._events = this._events || {};\r\n // set listeners array\r\n var listeners = events[ eventName ] = events[ eventName ] || [];\r\n // only add once\r\n if ( listeners.indexOf( listener ) == -1 ) {\r\n listeners.push( listener );\r\n }\r\n\r\n return this;\r\n};\r\n\r\nproto.once = function( eventName, listener ) {\r\n if ( !eventName || !listener ) {\r\n return;\r\n }\r\n // add event\r\n this.on( eventName, listener );\r\n // set once flag\r\n // set onceEvents hash\r\n var onceEvents = this._onceEvents = this._onceEvents || {};\r\n // set onceListeners object\r\n var onceListeners = onceEvents[ eventName ] = onceEvents[ eventName ] || {};\r\n // set flag\r\n onceListeners[ listener ] = true;\r\n\r\n return this;\r\n};\r\n\r\nproto.off = function( eventName, listener ) {\r\n var listeners = this._events && this._events[ eventName ];\r\n if ( !listeners || !listeners.length ) {\r\n return;\r\n }\r\n var index = listeners.indexOf( listener );\r\n if ( index != -1 ) {\r\n listeners.splice( index, 1 );\r\n }\r\n\r\n return this;\r\n};\r\n\r\nproto.emitEvent = function( eventName, args ) {\r\n var listeners = this._events && this._events[ eventName ];\r\n if ( !listeners || !listeners.length ) {\r\n return;\r\n }\r\n var i = 0;\r\n var listener = listeners[i];\r\n args = args || [];\r\n // once stuff\r\n var onceListeners = this._onceEvents && this._onceEvents[ eventName ];\r\n\r\n while ( listener ) {\r\n var isOnce = onceListeners && onceListeners[ listener ];\r\n if ( isOnce ) {\r\n // remove listener\r\n // remove before trigger to prevent recursion\r\n this.off( eventName, listener );\r\n // unset once flag\r\n delete onceListeners[ listener ];\r\n }\r\n // trigger listener\r\n listener.apply( this, args );\r\n // get next listener\r\n i += isOnce ? 0 : 1;\r\n listener = listeners[i];\r\n }\r\n\r\n return this;\r\n};\r\n\r\nproto.allOff =\r\nproto.removeAllListeners = function() {\r\n delete this._events;\r\n delete this._onceEvents;\r\n};\r\n\r\nreturn EvEmitter;\r\n\r\n}));\r\n\r\n/*!\r\n * imagesLoaded v4.1.3\r\n * JavaScript is all like \"You images are done yet or what?\"\r\n * MIT License\r\n */\r\n\r\n( function( window, factory ) { 'use strict';\r\n // universal module definition\r\n\r\n /*global define: false, module: false, require: false */\r\n\r\n if ( typeof define == 'function' && define.amd ) {\r\n // AMD\r\n define( [\r\n 'ev-emitter/ev-emitter'\r\n ], function( EvEmitter ) {\r\n return factory( window, EvEmitter );\r\n });\r\n } else if ( typeof module == 'object' && module.exports ) {\r\n // CommonJS\r\n module.exports = factory(\r\n window,\r\n require('ev-emitter')\r\n );\r\n } else {\r\n // browser global\r\n window.imagesLoaded = factory(\r\n window,\r\n window.EvEmitter\r\n );\r\n }\r\n\r\n})( typeof window !== 'undefined' ? window : this,\r\n\r\n// -------------------------- factory -------------------------- //\r\n\r\nfunction factory( window, EvEmitter ) {\r\n\r\n\r\n\r\nvar $ = window.jQuery;\r\nvar console = window.console;\r\n\r\n// -------------------------- helpers -------------------------- //\r\n\r\n// extend objects\r\nfunction extend( a, b ) {\r\n for ( var prop in b ) {\r\n a[ prop ] = b[ prop ];\r\n }\r\n return a;\r\n}\r\n\r\n// turn element or nodeList into an array\r\nfunction makeArray( obj ) {\r\n var ary = [];\r\n if ( Array.isArray( obj ) ) {\r\n // use object if already an array\r\n ary = obj;\r\n } else if ( typeof obj.length == 'number' ) {\r\n // convert nodeList to array\r\n for ( var i=0; i < obj.length; i++ ) {\r\n ary.push( obj[i] );\r\n }\r\n } else {\r\n // array of single index\r\n ary.push( obj );\r\n }\r\n return ary;\r\n}\r\n\r\n// -------------------------- imagesLoaded -------------------------- //\r\n\r\n/**\r\n * @param {Array, Element, NodeList, String} elem\r\n * @param {Object or Function} options - if function, use as callback\r\n * @param {Function} onAlways - callback function\r\n */\r\nfunction ImagesLoaded( elem, options, onAlways ) {\r\n // coerce ImagesLoaded() without new, to be new ImagesLoaded()\r\n if ( !( this instanceof ImagesLoaded ) ) {\r\n return new ImagesLoaded( elem, options, onAlways );\r\n }\r\n // use elem as selector string\r\n if ( typeof elem == 'string' ) {\r\n elem = document.querySelectorAll( elem );\r\n }\r\n\r\n this.elements = makeArray( elem );\r\n this.options = extend( {}, this.options );\r\n\r\n if ( typeof options == 'function' ) {\r\n onAlways = options;\r\n } else {\r\n extend( this.options, options );\r\n }\r\n\r\n if ( onAlways ) {\r\n this.on( 'always', onAlways );\r\n }\r\n\r\n this.getImages();\r\n\r\n if ( $ ) {\r\n // add jQuery Deferred object\r\n this.jqDeferred = new $.Deferred();\r\n }\r\n\r\n // HACK check async to allow time to bind listeners\r\n setTimeout( function() {\r\n this.check();\r\n }.bind( this ));\r\n}\r\n\r\nImagesLoaded.prototype = Object.create( EvEmitter.prototype );\r\n\r\nImagesLoaded.prototype.options = {};\r\n\r\nImagesLoaded.prototype.getImages = function() {\r\n this.images = [];\r\n\r\n // filter & find items if we have an item selector\r\n this.elements.forEach( this.addElementImages, this );\r\n};\r\n\r\n/**\r\n * @param {Node} element\r\n */\r\nImagesLoaded.prototype.addElementImages = function( elem ) {\r\n // filter siblings\r\n if ( elem.nodeName == 'IMG' ) {\r\n this.addImage( elem );\r\n }\r\n // get background image on element\r\n if ( this.options.background === true ) {\r\n this.addElementBackgroundImages( elem );\r\n }\r\n\r\n // find children\r\n // no non-element nodes, #143\r\n var nodeType = elem.nodeType;\r\n if ( !nodeType || !elementNodeTypes[ nodeType ] ) {\r\n return;\r\n }\r\n var childImgs = elem.querySelectorAll('img');\r\n // concat childElems to filterFound array\r\n for ( var i=0; i < childImgs.length; i++ ) {\r\n var img = childImgs[i];\r\n this.addImage( img );\r\n }\r\n\r\n // get child background images\r\n if ( typeof this.options.background == 'string' ) {\r\n var children = elem.querySelectorAll( this.options.background );\r\n for ( i=0; i < children.length; i++ ) {\r\n var child = children[i];\r\n this.addElementBackgroundImages( child );\r\n }\r\n }\r\n};\r\n\r\nvar elementNodeTypes = {\r\n 1: true,\r\n 9: true,\r\n 11: true\r\n};\r\n\r\nImagesLoaded.prototype.addElementBackgroundImages = function( elem ) {\r\n var style = getComputedStyle( elem );\r\n if ( !style ) {\r\n // Firefox returns null if in a hidden iframe https://bugzil.la/548397\r\n return;\r\n }\r\n // get url inside url(\"...\")\r\n var reURL = /url\\((['\"])?(.*?)\\1\\)/gi;\r\n var matches = reURL.exec( style.backgroundImage );\r\n while ( matches !== null ) {\r\n var url = matches && matches[2];\r\n if ( url ) {\r\n this.addBackground( url, elem );\r\n }\r\n matches = reURL.exec( style.backgroundImage );\r\n }\r\n};\r\n\r\n/**\r\n * @param {Image} img\r\n */\r\nImagesLoaded.prototype.addImage = function( img ) {\r\n var loadingImage = new LoadingImage( img );\r\n this.images.push( loadingImage );\r\n};\r\n\r\nImagesLoaded.prototype.addBackground = function( url, elem ) {\r\n var background = new Background( url, elem );\r\n this.images.push( background );\r\n};\r\n\r\nImagesLoaded.prototype.check = function() {\r\n var _this = this;\r\n this.progressedCount = 0;\r\n this.hasAnyBroken = false;\r\n // complete if no images\r\n if ( !this.images.length ) {\r\n this.complete();\r\n return;\r\n }\r\n\r\n function onProgress( image, elem, message ) {\r\n // HACK - Chrome triggers event before object properties have changed. #83\r\n setTimeout( function() {\r\n _this.progress( image, elem, message );\r\n });\r\n }\r\n\r\n this.images.forEach( function( loadingImage ) {\r\n loadingImage.once( 'progress', onProgress );\r\n loadingImage.check();\r\n });\r\n};\r\n\r\nImagesLoaded.prototype.progress = function( image, elem, message ) {\r\n this.progressedCount++;\r\n this.hasAnyBroken = this.hasAnyBroken || !image.isLoaded;\r\n // progress event\r\n this.emitEvent( 'progress', [ this, image, elem ] );\r\n if ( this.jqDeferred && this.jqDeferred.notify ) {\r\n this.jqDeferred.notify( this, image );\r\n }\r\n // check if completed\r\n if ( this.progressedCount == this.images.length ) {\r\n this.complete();\r\n }\r\n\r\n if ( this.options.debug && console ) {\r\n console.log( 'progress: ' + message, image, elem );\r\n }\r\n};\r\n\r\nImagesLoaded.prototype.complete = function() {\r\n var eventName = this.hasAnyBroken ? 'fail' : 'done';\r\n this.isComplete = true;\r\n this.emitEvent( eventName, [ this ] );\r\n this.emitEvent( 'always', [ this ] );\r\n if ( this.jqDeferred ) {\r\n var jqMethod = this.hasAnyBroken ? 'reject' : 'resolve';\r\n this.jqDeferred[ jqMethod ]( this );\r\n }\r\n};\r\n\r\n// -------------------------- -------------------------- //\r\n\r\nfunction LoadingImage( img ) {\r\n this.img = img;\r\n}\r\n\r\nLoadingImage.prototype = Object.create( EvEmitter.prototype );\r\n\r\nLoadingImage.prototype.check = function() {\r\n // If complete is true and browser supports natural sizes,\r\n // try to check for image status manually.\r\n var isComplete = this.getIsImageComplete();\r\n if ( isComplete ) {\r\n // report based on naturalWidth\r\n this.confirm( this.img.naturalWidth !== 0, 'naturalWidth' );\r\n return;\r\n }\r\n\r\n // If none of the checks above matched, simulate loading on detached element.\r\n this.proxyImage = new Image();\r\n this.proxyImage.addEventListener( 'load', this );\r\n this.proxyImage.addEventListener( 'error', this );\r\n // bind to image as well for Firefox. #191\r\n this.img.addEventListener( 'load', this );\r\n this.img.addEventListener( 'error', this );\r\n this.proxyImage.src = this.img.src;\r\n};\r\n\r\nLoadingImage.prototype.getIsImageComplete = function() {\r\n return this.img.complete && this.img.naturalWidth !== undefined;\r\n};\r\n\r\nLoadingImage.prototype.confirm = function( isLoaded, message ) {\r\n this.isLoaded = isLoaded;\r\n this.emitEvent( 'progress', [ this, this.img, message ] );\r\n};\r\n\r\n// ----- events ----- //\r\n\r\n// trigger specified handler for event type\r\nLoadingImage.prototype.handleEvent = function( event ) {\r\n var method = 'on' + event.type;\r\n if ( this[ method ] ) {\r\n this[ method ]( event );\r\n }\r\n};\r\n\r\nLoadingImage.prototype.onload = function() {\r\n this.confirm( true, 'onload' );\r\n this.unbindEvents();\r\n};\r\n\r\nLoadingImage.prototype.onerror = function() {\r\n this.confirm( false, 'onerror' );\r\n this.unbindEvents();\r\n};\r\n\r\nLoadingImage.prototype.unbindEvents = function() {\r\n this.proxyImage.removeEventListener( 'load', this );\r\n this.proxyImage.removeEventListener( 'error', this );\r\n this.img.removeEventListener( 'load', this );\r\n this.img.removeEventListener( 'error', this );\r\n};\r\n\r\n// -------------------------- Background -------------------------- //\r\n\r\nfunction Background( url, element ) {\r\n this.url = url;\r\n this.element = element;\r\n this.img = new Image();\r\n}\r\n\r\n// inherit LoadingImage prototype\r\nBackground.prototype = Object.create( LoadingImage.prototype );\r\n\r\nBackground.prototype.check = function() {\r\n this.img.addEventListener( 'load', this );\r\n this.img.addEventListener( 'error', this );\r\n this.img.src = this.url;\r\n // check if image is already complete\r\n var isComplete = this.getIsImageComplete();\r\n if ( isComplete ) {\r\n this.confirm( this.img.naturalWidth !== 0, 'naturalWidth' );\r\n this.unbindEvents();\r\n }\r\n};\r\n\r\nBackground.prototype.unbindEvents = function() {\r\n this.img.removeEventListener( 'load', this );\r\n this.img.removeEventListener( 'error', this );\r\n};\r\n\r\nBackground.prototype.confirm = function( isLoaded, message ) {\r\n this.isLoaded = isLoaded;\r\n this.emitEvent( 'progress', [ this, this.element, message ] );\r\n};\r\n\r\n// -------------------------- jQuery -------------------------- //\r\n\r\nImagesLoaded.makeJQueryPlugin = function( jQuery ) {\r\n jQuery = jQuery || window.jQuery;\r\n if ( !jQuery ) {\r\n return;\r\n }\r\n // set local variable\r\n $ = jQuery;\r\n // $().imagesLoaded()\r\n $.fn.imagesLoaded = function( options, callback ) {\r\n var instance = new ImagesLoaded( this, options, callback );\r\n return instance.jqDeferred.promise( $(this) );\r\n };\r\n};\r\n// try making plugin\r\nImagesLoaded.makeJQueryPlugin();\r\n\r\n// -------------------------- -------------------------- //\r\n\r\nreturn ImagesLoaded;\r\n\r\n});\r\n\r\n","/*\r\n * easy-autocomplete\r\n * jQuery plugin for autocompletion\r\n *\r\n * @author Łukasz Pawełczak (http://github.com/pawelczak)\r\n * @version 1.3.5\r\n * Copyright License:\r\n */\r\n\r\n/*\r\n * EasyAutocomplete - Configuration\r\n */\r\nvar EasyAutocomplete = (function(scope){\r\n\r\n\tscope.Configuration = function Configuration(options) {\r\n\t\tvar defaults = {\r\n\t\t\tdata: \"list-required\",\r\n\t\t\turl: \"list-required\",\r\n\t\t\tdataType: \"json\",\r\n\r\n\t\t\tlistLocation: function(data) {\r\n\t\t\t\treturn data;\r\n\t\t\t},\r\n\r\n\t\t\txmlElementName: \"\",\r\n\r\n\t\t\tgetValue: function(element) {\r\n\t\t\t\treturn element;\r\n\t\t\t},\r\n\r\n\t\t\tautocompleteOff: true,\r\n\r\n\t\t\tplaceholder: false,\r\n\r\n\t\t\tajaxCallback: function() {},\r\n\r\n\t\t\tmatchResponseProperty: false,\r\n\r\n\t\t\tlist: {\r\n\t\t\t\tsort: {\r\n\t\t\t\t\tenabled: false,\r\n\t\t\t\t\tmethod: function(a, b) {\r\n\t\t\t\t\t\ta = defaults.getValue(a);\r\n\t\t\t\t\t\tb = defaults.getValue(b);\r\n\t\t\t\t\t\tif (a < b) {\r\n\t\t\t\t\t\t\treturn -1;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (a > b) {\r\n\t\t\t\t\t\t\treturn 1;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\r\n\t\t\t\tmaxNumberOfElements: 6,\r\n\r\n\t\t\t\thideOnEmptyPhrase: true,\r\n\r\n\t\t\t\tmatch: {\r\n\t\t\t\t\tenabled: false,\r\n\t\t\t\t\tcaseSensitive: false,\r\n\t\t\t\t\tmethod: function(element, phrase) {\r\n\r\n\t\t\t\t\t\tif (element.search(phrase) > -1) {\r\n\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\r\n\t\t\t\tshowAnimation: {\r\n\t\t\t\t\ttype: \"normal\", //normal|slide|fade\r\n\t\t\t\t\ttime: 400,\r\n\t\t\t\t\tcallback: function() {}\r\n\t\t\t\t},\r\n\r\n\t\t\t\thideAnimation: {\r\n\t\t\t\t\ttype: \"normal\",\r\n\t\t\t\t\ttime: 400,\r\n\t\t\t\t\tcallback: function() {}\r\n\t\t\t\t},\r\n\r\n\t\t\t\t/* Events */\r\n\t\t\t\tonClickEvent: function() {},\r\n\t\t\t\tonSelectItemEvent: function() {},\r\n\t\t\t\tonLoadEvent: function() {},\r\n\t\t\t\tonChooseEvent: function() {},\r\n\t\t\t\tonKeyEnterEvent: function() {},\r\n\t\t\t\tonMouseOverEvent: function() {},\r\n\t\t\t\tonMouseOutEvent: function() {},\r\n\t\t\t\tonShowListEvent: function() {},\r\n\t\t\t\tonHideListEvent: function() {}\r\n\t\t\t},\r\n\r\n\t\t\thighlightPhrase: true,\r\n\r\n\t\t\ttheme: \"\",\r\n\r\n\t\t\tcssClasses: \"\",\r\n\r\n\t\t\tminCharNumber: 0,\r\n\r\n\t\t\trequestDelay: 0,\r\n\r\n\t\t\tadjustWidth: true,\r\n\r\n\t\t\tajaxSettings: {},\r\n\r\n\t\t\tpreparePostData: function(data, inputPhrase) {return data;},\r\n\r\n\t\t\tloggerEnabled: true,\r\n\r\n\t\t\ttemplate: \"\",\r\n\r\n\t\t\tcategoriesAssigned: false,\r\n\r\n\t\t\tcategories: [{\r\n\t\t\t\tmaxNumberOfElements: 4\r\n\t\t\t}]\r\n\r\n\t\t};\r\n\r\n\t\tvar externalObjects = [\"ajaxSettings\", \"template\"];\r\n\r\n\t\tthis.get = function(propertyName) {\r\n\t\t\treturn defaults[propertyName];\r\n\t\t};\r\n\r\n\t\tthis.equals = function(name, value) {\r\n\t\t\tif (isAssigned(name)) {\r\n\t\t\t\tif (defaults[name] === value) {\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn false;\r\n\t\t};\r\n\r\n\t\tthis.checkDataUrlProperties = function() {\r\n\t\t\tif (defaults.url === \"list-required\" && defaults.data === \"list-required\") {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t};\r\n\t\tthis.checkRequiredProperties = function() {\r\n\t\t\tfor (var propertyName in defaults) {\r\n\t\t\t\tif (defaults[propertyName] === \"required\") {\r\n\t\t\t\t\tlogger.error(\"Option \" + propertyName + \" must be defined\");\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t};\r\n\r\n\t\tthis.printPropertiesThatDoesntExist = function(consol, optionsToCheck) {\r\n\t\t\tprintPropertiesThatDoesntExist(consol, optionsToCheck);\r\n\t\t};\r\n\r\n\r\n\t\tprepareDefaults();\r\n\r\n\t\tmergeOptions();\r\n\r\n\t\tif (defaults.loggerEnabled === true) {\r\n\t\t\tprintPropertiesThatDoesntExist(console, options);\r\n\t\t}\r\n\r\n\t\taddAjaxSettings();\r\n\r\n\t\tprocessAfterMerge();\r\n\t\tfunction prepareDefaults() {\r\n\r\n\t\t\tif (options.dataType === \"xml\") {\r\n\r\n\t\t\t\tif (!options.getValue) {\r\n\r\n\t\t\t\t\toptions.getValue = function(element) {\r\n\t\t\t\t\t\treturn $(element).text();\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\r\n\r\n\t\t\t\tif (!options.list) {\r\n\r\n\t\t\t\t\toptions.list = {};\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!options.list.sort) {\r\n\t\t\t\t\toptions.list.sort = {};\r\n\t\t\t\t}\r\n\r\n\r\n\t\t\t\toptions.list.sort.method = function(a, b) {\r\n\t\t\t\t\ta = options.getValue(a);\r\n\t\t\t\t\tb = options.getValue(b);\r\n\t\t\t\t\tif (a < b) {\r\n\t\t\t\t\t\treturn -1;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (a > b) {\r\n\t\t\t\t\t\treturn 1;\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn 0;\r\n\t\t\t\t};\r\n\r\n\t\t\t\tif (!options.list.match) {\r\n\t\t\t\t\toptions.list.match = {};\r\n\t\t\t\t}\r\n\r\n\t\t\t\toptions.list.match.method = function(element, phrase) {\r\n\r\n\t\t\t\t\tif (element.search(phrase) > -1) {\r\n\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t}\r\n\t\t\tif (options.categories !== undefined && options.categories instanceof Array) {\r\n\r\n\t\t\t\tvar categories = [];\r\n\r\n\t\t\t\tfor (var i = 0, length = options.categories.length; i < length; i += 1) {\r\n\r\n\t\t\t\t\tvar category = options.categories[i];\r\n\r\n\t\t\t\t\tfor (var property in defaults.categories[0]) {\r\n\r\n\t\t\t\t\t\tif (category[property] === undefined) {\r\n\t\t\t\t\t\t\tcategory[property] = defaults.categories[0][property];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tcategories.push(category);\r\n\t\t\t\t}\r\n\r\n\t\t\t\toptions.categories = categories;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction mergeOptions() {\r\n\r\n\t\t\tdefaults = mergeObjects(defaults, options);\r\n\r\n\t\t\tfunction mergeObjects(source, target) {\r\n\t\t\t\tvar mergedObject = source || {};\r\n\r\n\t\t\t\tfor (var propertyName in source) {\r\n\t\t\t\t\tif (target[propertyName] !== undefined && target[propertyName] !== null) {\r\n\r\n\t\t\t\t\t\tif (typeof target[propertyName] !== \"object\" ||\r\n\t\t\t\t\t\t\t\ttarget[propertyName] instanceof Array) {\r\n\t\t\t\t\t\t\tmergedObject[propertyName] = target[propertyName];\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tmergeObjects(source[propertyName], target[propertyName]);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/* If data is an object */\r\n\t\t\t\tif (target.data !== undefined && target.data !== null && typeof target.data === \"object\") {\r\n\t\t\t\t\tmergedObject.data = target.data;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn mergedObject;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\tfunction processAfterMerge() {\r\n\r\n\t\t\tif (defaults.url !== \"list-required\" && typeof defaults.url !== \"function\") {\r\n\t\t\t\tvar defaultUrl = defaults.url;\r\n\t\t\t\tdefaults.url = function() {\r\n\t\t\t\t\treturn defaultUrl;\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tif (defaults.ajaxSettings.url !== undefined && typeof defaults.ajaxSettings.url !== \"function\") {\r\n\t\t\t\tvar defaultUrl = defaults.ajaxSettings.url;\r\n\t\t\t\tdefaults.ajaxSettings.url = function() {\r\n\t\t\t\t\treturn defaultUrl;\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tif (typeof defaults.listLocation === \"string\") {\r\n\t\t\t\tvar defaultlistLocation = defaults.listLocation;\r\n\r\n\t\t\t\tif (defaults.dataType.toUpperCase() === \"XML\") {\r\n\t\t\t\t\tdefaults.listLocation = function(data) {\r\n\t\t\t\t\t\treturn $(data).find(defaultlistLocation);\r\n\t\t\t\t\t};\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdefaults.listLocation = function(data) {\r\n\t\t\t\t\t\treturn data[defaultlistLocation];\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (typeof defaults.getValue === \"string\") {\r\n\t\t\t\tvar defaultsGetValue = defaults.getValue;\r\n\t\t\t\tdefaults.getValue = function(element) {\r\n\t\t\t\t\treturn element[defaultsGetValue];\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tif (options.categories !== undefined) {\r\n\t\t\t\tdefaults.categoriesAssigned = true;\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tfunction addAjaxSettings() {\r\n\r\n\t\t\tif (options.ajaxSettings !== undefined && typeof options.ajaxSettings === \"object\") {\r\n\t\t\t\tdefaults.ajaxSettings = options.ajaxSettings;\r\n\t\t\t} else {\r\n\t\t\t\tdefaults.ajaxSettings = {};\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tfunction isAssigned(name) {\r\n\t\t\tif (defaults[name] !== undefined && defaults[name] !== null) {\r\n\t\t\t\treturn true;\r\n\t\t\t} else {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}\r\n\t\tfunction printPropertiesThatDoesntExist(consol, optionsToCheck) {\r\n\r\n\t\t\tcheckPropertiesIfExist(defaults, optionsToCheck);\r\n\r\n\t\t\tfunction checkPropertiesIfExist(source, target) {\r\n\t\t\t\tfor(var property in target) {\r\n\t\t\t\t\tif (source[property] === undefined) {\r\n\t\t\t\t\t\tconsol.log(\"Property '\" + property + \"' does not exist in EasyAutocomplete options API.\");\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (typeof source[property] === \"object\" && $.inArray(property, externalObjects) === -1) {\r\n\t\t\t\t\t\tcheckPropertiesIfExist(source[property], target[property]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\treturn scope;\r\n\r\n})(EasyAutocomplete || {});\r\n\r\n\r\n/*\r\n * EasyAutocomplete - Logger\r\n */\r\nvar EasyAutocomplete = (function(scope){\r\n\r\n\tscope.Logger = function Logger() {\r\n\r\n\t\tthis.error = function(message) {\r\n\t\t\tconsole.log(\"ERROR: \" + message);\r\n\t\t};\r\n\r\n\t\tthis.warning = function(message) {\r\n\t\t\tconsole.log(\"WARNING: \" + message);\r\n\t\t};\r\n\t};\r\n\r\n\treturn scope;\r\n\r\n})(EasyAutocomplete || {});\r\n\r\n\r\n/*\r\n * EasyAutocomplete - Constans\r\n */\r\nvar EasyAutocomplete = (function(scope){\r\n\r\n\tscope.Constans = function Constans() {\r\n\t\tvar constants = {\r\n\t\t\tCONTAINER_CLASS: \"easy-autocomplete-container\",\r\n\t\t\tCONTAINER_ID: \"eac-container-\",\r\n\r\n\t\t\tWRAPPER_CSS_CLASS: \"easy-autocomplete\"\r\n\t\t};\r\n\r\n\t\tthis.getValue = function(propertyName) {\r\n\t\t\treturn constants[propertyName];\r\n\t\t};\r\n\r\n\t};\r\n\r\n\treturn scope;\r\n\r\n})(EasyAutocomplete || {});\r\n\r\n/*\r\n * EasyAutocomplete - ListBuilderService\r\n *\r\n * @author Łukasz Pawełczak\r\n *\r\n */\r\nvar EasyAutocomplete = (function(scope) {\r\n\r\n\tscope.ListBuilderService = function ListBuilderService(configuration, proccessResponseData) {\r\n\r\n\r\n\t\tthis.init = function(data) {\r\n\t\t\tvar listBuilder = [],\r\n\t\t\t\tbuilder = {};\r\n\r\n\t\t\tbuilder.data = configuration.get(\"listLocation\")(data);\r\n\t\t\tbuilder.getValue = configuration.get(\"getValue\");\r\n\t\t\tbuilder.maxListSize = configuration.get(\"list\").maxNumberOfElements;\r\n\r\n\r\n\t\t\tlistBuilder.push(builder);\r\n\r\n\t\t\treturn listBuilder;\r\n\t\t};\r\n\r\n\t\tthis.updateCategories = function(listBuilder, data) {\r\n\r\n\t\t\tif (configuration.get(\"categoriesAssigned\")) {\r\n\r\n\t\t\t\tlistBuilder = [];\r\n\r\n\t\t\t\tfor(var i = 0; i < configuration.get(\"categories\").length; i += 1) {\r\n\r\n\t\t\t\t\tvar builder = convertToListBuilder(configuration.get(\"categories\")[i], data);\r\n\r\n\t\t\t\t\tlistBuilder.push(builder);\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\r\n\t\t\treturn listBuilder;\r\n\t\t};\r\n\r\n\t\tthis.convertXml = function(listBuilder) {\r\n\t\t\tif(configuration.get(\"dataType\").toUpperCase() === \"XML\") {\r\n\r\n\t\t\t\tfor(var i = 0; i < listBuilder.length; i += 1) {\r\n\t\t\t\t\tlistBuilder[i].data = convertXmlToList(listBuilder[i]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn listBuilder;\r\n\t\t};\r\n\r\n\t\tthis.processData = function(listBuilder, inputPhrase) {\r\n\r\n\t\t\tfor(var i = 0, length = listBuilder.length; i < length; i+=1) {\r\n\t\t\t\tlistBuilder[i].data = proccessResponseData(configuration, listBuilder[i], inputPhrase);\r\n\t\t\t}\r\n\r\n\t\t\treturn listBuilder;\r\n\t\t};\r\n\r\n\t\tthis.checkIfDataExists = function(listBuilders) {\r\n\r\n\t\t\tfor(var i = 0, length = listBuilders.length; i < length; i += 1) {\r\n\r\n\t\t\t\tif (listBuilders[i].data !== undefined && listBuilders[i].data instanceof Array) {\r\n\t\t\t\t\tif (listBuilders[i].data.length > 0) {\r\n\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn false;\r\n\t\t};\r\n\r\n\r\n\t\tfunction convertToListBuilder(category, data) {\r\n\r\n\t\t\tvar builder = {};\r\n\r\n\t\t\tif(configuration.get(\"dataType\").toUpperCase() === \"XML\") {\r\n\r\n\t\t\t\tbuilder = convertXmlToListBuilder();\r\n\t\t\t} else {\r\n\r\n\t\t\t\tbuilder = convertDataToListBuilder();\r\n\t\t\t}\r\n\r\n\r\n\t\t\tif (category.header !== undefined) {\r\n\t\t\t\tbuilder.header = category.header;\r\n\t\t\t}\r\n\r\n\t\t\tif (category.maxNumberOfElements !== undefined) {\r\n\t\t\t\tbuilder.maxNumberOfElements = category.maxNumberOfElements;\r\n\t\t\t}\r\n\r\n\t\t\tif (configuration.get(\"list\").maxNumberOfElements !== undefined) {\r\n\r\n\t\t\t\tbuilder.maxListSize = configuration.get(\"list\").maxNumberOfElements;\r\n\t\t\t}\r\n\r\n\t\t\tif (category.getValue !== undefined) {\r\n\r\n\t\t\t\tif (typeof category.getValue === \"string\") {\r\n\t\t\t\t\tvar defaultsGetValue = category.getValue;\r\n\t\t\t\t\tbuilder.getValue = function(element) {\r\n\t\t\t\t\t\treturn element[defaultsGetValue];\r\n\t\t\t\t\t};\r\n\t\t\t\t} else if (typeof category.getValue === \"function\") {\r\n\t\t\t\t\tbuilder.getValue = category.getValue;\r\n\t\t\t\t}\r\n\r\n\t\t\t} else {\r\n\t\t\t\tbuilder.getValue = configuration.get(\"getValue\");\r\n\t\t\t}\r\n\r\n\r\n\t\t\treturn builder;\r\n\r\n\r\n\t\t\tfunction convertXmlToListBuilder() {\r\n\r\n\t\t\t\tvar builder = {},\r\n\t\t\t\t\tlistLocation;\r\n\r\n\t\t\t\tif (category.xmlElementName !== undefined) {\r\n\t\t\t\t\tbuilder.xmlElementName = category.xmlElementName;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (category.listLocation !== undefined) {\r\n\r\n\t\t\t\t\tlistLocation = category.listLocation;\r\n\t\t\t\t} else if (configuration.get(\"listLocation\") !== undefined) {\r\n\r\n\t\t\t\t\tlistLocation = configuration.get(\"listLocation\");\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (listLocation !== undefined) {\r\n\t\t\t\t\tif (typeof listLocation === \"string\") {\r\n\t\t\t\t\t\tbuilder.data = $(data).find(listLocation);\r\n\t\t\t\t\t} else if (typeof listLocation === \"function\") {\r\n\r\n\t\t\t\t\t\tbuilder.data = listLocation(data);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\r\n\t\t\t\t\tbuilder.data = data;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn builder;\r\n\t\t\t}\r\n\r\n\r\n\t\t\tfunction convertDataToListBuilder() {\r\n\r\n\t\t\t\tvar builder = {};\r\n\r\n\t\t\t\tif (category.listLocation !== undefined) {\r\n\r\n\t\t\t\t\tif (typeof category.listLocation === \"string\") {\r\n\t\t\t\t\t\tbuilder.data = data[category.listLocation];\r\n\t\t\t\t\t} else if (typeof category.listLocation === \"function\") {\r\n\t\t\t\t\t\tbuilder.data = category.listLocation(data);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tbuilder.data = data;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn builder;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction convertXmlToList(builder) {\r\n\t\t\tvar simpleList = [];\r\n\r\n\t\t\tif (builder.xmlElementName === undefined) {\r\n\t\t\t\tbuilder.xmlElementName = configuration.get(\"xmlElementName\");\r\n\t\t\t}\r\n\r\n\r\n\t\t\t$(builder.data).find(builder.xmlElementName).each(function() {\r\n\t\t\t\tsimpleList.push(this);\r\n\t\t\t});\r\n\r\n\t\t\treturn simpleList;\r\n\t\t}\r\n\r\n\t};\r\n\r\n\treturn scope;\r\n\r\n})(EasyAutocomplete || {});\r\n\r\n\r\n/*\r\n * EasyAutocomplete - Data proccess module\r\n *\r\n * Process list to display:\r\n * - sort\r\n * - decrease number to specific number\r\n * - show only matching list\r\n *\r\n */\r\nvar EasyAutocomplete = (function(scope) {\r\n\r\n\tscope.proccess = function proccessData(config, listBuilder, phrase) {\r\n\r\n\t\tscope.proccess.match = match;\r\n\r\n\t\tvar list = listBuilder.data,\r\n\t\t\tinputPhrase = phrase;//TODO REFACTOR\r\n\r\n\t\tlist = findMatch(list, inputPhrase);\r\n\t\tlist = reduceElementsInList(list);\r\n\t\tlist = sort(list);\r\n\r\n\t\treturn list;\r\n\r\n\r\n\t\tfunction findMatch(list, phrase) {\r\n\t\t\tvar preparedList = [],\r\n\t\t\t\tvalue = \"\";\r\n\r\n\t\t\tif (config.get(\"list\").match.enabled) {\r\n\r\n\t\t\t\tfor(var i = 0, length = list.length; i < length; i += 1) {\r\n\r\n\t\t\t\t\tvalue = config.get(\"getValue\")(list[i]);\r\n\r\n\t\t\t\t\tif (match(value, phrase)) {\r\n\t\t\t\t\t\tpreparedList.push(list[i]);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t} else {\r\n\t\t\t\tpreparedList = list;\r\n\t\t\t}\r\n\r\n\t\t\treturn preparedList;\r\n\t\t}\r\n\r\n\t\tfunction match(value, phrase) {\r\n\r\n\t\t\tif (!config.get(\"list\").match.caseSensitive) {\r\n\r\n\t\t\t\tif (typeof value === \"string\") {\r\n\t\t\t\t\tvalue = value.toLowerCase();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tphrase = phrase.toLowerCase();\r\n\t\t\t}\r\n\t\t\tif (config.get(\"list\").match.method(value, phrase)) {\r\n\t\t\t\treturn true;\r\n\t\t\t} else {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction reduceElementsInList(list) {\r\n\t\t\tif (listBuilder.maxNumberOfElements !== undefined && list.length > listBuilder.maxNumberOfElements) {\r\n\t\t\t\tlist = list.slice(0, listBuilder.maxNumberOfElements);\r\n\t\t\t}\r\n\r\n\t\t\treturn list;\r\n\t\t}\r\n\r\n\t\tfunction sort(list) {\r\n\t\t\tif (config.get(\"list\").sort.enabled) {\r\n\t\t\t\tlist.sort(config.get(\"list\").sort.method);\r\n\t\t\t}\r\n\r\n\t\t\treturn list;\r\n\t\t}\r\n\r\n\t};\r\n\r\n\r\n\treturn scope;\r\n\r\n\r\n})(EasyAutocomplete || {});\r\n\r\n\r\n/*\r\n * EasyAutocomplete - Template\r\n *\r\n *\r\n *\r\n */\r\nvar EasyAutocomplete = (function(scope){\r\n\r\n\tscope.Template = function Template(options) {\r\n\r\n\r\n\t\tvar genericTemplates = {\r\n\t\t\tbasic: {\r\n\t\t\t\ttype: \"basic\",\r\n\t\t\t\tmethod: function(element) { return element; },\r\n\t\t\t\tcssClass: \"\"\r\n\t\t\t},\r\n\t\t\tdescription: {\r\n\t\t\t\ttype: \"description\",\r\n\t\t\t\tfields: {\r\n\t\t\t\t\tdescription: \"description\"\r\n\t\t\t\t},\r\n\t\t\t\tmethod: function(element) {\treturn element + \" - description\"; },\r\n\t\t\t\tcssClass: \"eac-description\"\r\n\t\t\t},\r\n\t\t\ticonLeft: {\r\n\t\t\t\ttype: \"iconLeft\",\r\n\t\t\t\tfields: {\r\n\t\t\t\t\ticon: \"\"\r\n\t\t\t\t},\r\n\t\t\t\tmethod: function(element) {\r\n\t\t\t\t\treturn element;\r\n\t\t\t\t},\r\n\t\t\t\tcssClass: \"eac-icon-left\"\r\n\t\t\t},\r\n\t\t\ticonRight: {\r\n\t\t\t\ttype: \"iconRight\",\r\n\t\t\t\tfields: {\r\n\t\t\t\t\ticonSrc: \"\"\r\n\t\t\t\t},\r\n\t\t\t\tmethod: function(element) {\r\n\t\t\t\t\treturn element;\r\n\t\t\t\t},\r\n\t\t\t\tcssClass: \"eac-icon-right\"\r\n\t\t\t},\r\n\t\t\tlinks: {\r\n\t\t\t\ttype: \"links\",\r\n\t\t\t\tfields: {\r\n\t\t\t\t\tlink: \"\"\r\n\t\t\t\t},\r\n\t\t\t\tmethod: function(element) {\r\n\t\t\t\t\treturn element;\r\n\t\t\t\t},\r\n\t\t\t\tcssClass: \"\"\r\n\t\t\t},\r\n\t\t\tcustom: {\r\n\t\t\t\ttype: \"custom\",\r\n\t\t\t\tmethod: function() {},\r\n\t\t\t\tcssClass: \"\"\r\n\t\t\t}\r\n\t\t},\r\n\r\n\r\n\r\n\t\t/*\r\n\t\t * Converts method with {{text}} to function\r\n\t\t */\r\n\t\tconvertTemplateToMethod = function(template) {\r\n\r\n\r\n\t\t\tvar _fields = template.fields,\r\n\t\t\t\tbuildMethod;\r\n\r\n\t\t\tif (template.type === \"description\") {\r\n\r\n\t\t\t\tbuildMethod = genericTemplates.description.method;\r\n\r\n\t\t\t\tif (typeof _fields.description === \"string\") {\r\n\t\t\t\t\tbuildMethod = function(elementValue, element) {\r\n\t\t\t\t\t\treturn elementValue + \" - \" + element[_fields.description] + \"\";\r\n\t\t\t\t\t};\r\n\t\t\t\t} else if (typeof _fields.description === \"function\") {\r\n\t\t\t\t\tbuildMethod = function(elementValue, element) {\r\n\t\t\t\t\t\treturn elementValue + \" - \" + _fields.description(element) + \"\";\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn buildMethod;\r\n\t\t\t}\r\n\r\n\t\t\tif (template.type === \"iconRight\") {\r\n\r\n\t\t\t\tif (typeof _fields.iconSrc === \"string\") {\r\n\t\t\t\t\tbuildMethod = function(elementValue, element) {\r\n\t\t\t\t\t\treturn elementValue + \"\" ;\r\n\t\t\t\t\t};\r\n\t\t\t\t} else if (typeof _fields.iconSrc === \"function\") {\r\n\t\t\t\t\tbuildMethod = function(elementValue, element) {\r\n\t\t\t\t\t\treturn elementValue + \"\" ;\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn buildMethod;\r\n\t\t\t}\r\n\r\n\r\n\t\t\tif (template.type === \"iconLeft\") {\r\n\r\n\t\t\t\tif (typeof _fields.iconSrc === \"string\") {\r\n\t\t\t\t\tbuildMethod = function(elementValue, element) {\r\n\t\t\t\t\t\treturn \"\" + elementValue;\r\n\t\t\t\t\t};\r\n\t\t\t\t} else if (typeof _fields.iconSrc === \"function\") {\r\n\t\t\t\t\tbuildMethod = function(elementValue, element) {\r\n\t\t\t\t\t\treturn \"\" + elementValue;\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn buildMethod;\r\n\t\t\t}\r\n\r\n\t\t\tif(template.type === \"links\") {\r\n\r\n\t\t\t\tif (typeof _fields.link === \"string\") {\r\n\t\t\t\t\tbuildMethod = function(elementValue, element) {\r\n\t\t\t\t\t\treturn \"\" + elementValue + \"\";\r\n\t\t\t\t\t};\r\n\t\t\t\t} else if (typeof _fields.link === \"function\") {\r\n\t\t\t\t\tbuildMethod = function(elementValue, element) {\r\n\t\t\t\t\t\treturn \"\" + elementValue + \"\";\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn buildMethod;\r\n\t\t\t}\r\n\r\n\r\n\t\t\tif (template.type === \"custom\") {\r\n\r\n\t\t\t\treturn template.method;\r\n\t\t\t}\r\n\r\n\t\t\treturn genericTemplates.basic.method;\r\n\r\n\t\t},\r\n\r\n\r\n\t\tprepareBuildMethod = function(options) {\r\n\t\t\tif (!options || !options.type) {\r\n\r\n\t\t\t\treturn genericTemplates.basic.method;\r\n\t\t\t}\r\n\r\n\t\t\tif (options.type && genericTemplates[options.type]) {\r\n\r\n\t\t\t\treturn convertTemplateToMethod(options);\r\n\t\t\t} else {\r\n\r\n\t\t\t\treturn genericTemplates.basic.method;\r\n\t\t\t}\r\n\r\n\t\t},\r\n\r\n\t\ttemplateClass = function(options) {\r\n\t\t\tvar emptyStringFunction = function() {return \"\";};\r\n\r\n\t\t\tif (!options || !options.type) {\r\n\r\n\t\t\t\treturn emptyStringFunction;\r\n\t\t\t}\r\n\r\n\t\t\tif (options.type && genericTemplates[options.type]) {\r\n\t\t\t\treturn (function () {\r\n\t\t\t\t\tvar _cssClass = genericTemplates[options.type].cssClass;\r\n\t\t\t\t\treturn function() { return _cssClass;};\r\n\t\t\t\t})();\r\n\t\t\t} else {\r\n\t\t\t\treturn emptyStringFunction;\r\n\t\t\t}\r\n\t\t};\r\n\r\n\r\n\t\tthis.getTemplateClass = templateClass(options);\r\n\r\n\t\tthis.build = prepareBuildMethod(options);\r\n\r\n\r\n\t};\r\n\r\n\treturn scope;\r\n\r\n})(EasyAutocomplete || {});\r\n\r\n\r\n/*\r\n * EasyAutocomplete - jQuery plugin for autocompletion\r\n *\r\n */\r\nvar EasyAutocomplete = (function(scope) {\r\n\r\n\r\n\tscope.main = function Core($input, options) {\r\n\r\n\t\tvar module = {\r\n\t\t\t\tname: \"EasyAutocomplete\",\r\n\t\t\t\tshortcut: \"eac\"\r\n\t\t\t};\r\n\r\n\t\tvar consts = new scope.Constans(),\r\n\t\t\tconfig = new scope.Configuration(options),\r\n\t\t\tlogger = new scope.Logger(),\r\n\t\t\ttemplate = new scope.Template(options.template),\r\n\t\t\tlistBuilderService = new scope.ListBuilderService(config, scope.proccess),\r\n\t\t\tcheckParam = config.equals,\r\n\r\n\t\t\t$field = $input,\r\n\t\t\t$container = \"\",\r\n\t\t\telementsList = [],\r\n\t\t\tselectedElement = -1,\r\n\t\t\trequestDelayTimeoutId;\r\n\r\n\t\tscope.consts = consts;\r\n\r\n\t\tthis.getConstants = function() {\r\n\t\t\treturn consts;\r\n\t\t};\r\n\r\n\t\tthis.getConfiguration = function() {\r\n\t\t\treturn config;\r\n\t\t};\r\n\r\n\t\tthis.getContainer = function() {\r\n\t\t\treturn $container;\r\n\t\t};\r\n\r\n\t\tthis.getSelectedItemIndex = function() {\r\n\t\t\treturn selectedElement;\r\n\t\t};\r\n\r\n\t\tthis.getItems = function () {\r\n\t\t\treturn elementsList;\r\n\t\t};\r\n\r\n\t\tthis.getItemData = function(index) {\r\n\r\n\t\t\tif (elementsList.length < index || elementsList[index] === undefined) {\r\n\t\t\t\treturn -1;\r\n\t\t\t} else {\r\n\t\t\t\treturn elementsList[index];\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tthis.getSelectedItemData = function() {\r\n\t\t\treturn this.getItemData(selectedElement);\r\n\t\t};\r\n\r\n\t\tthis.build = function() {\r\n\t\t\tprepareField();\r\n\t\t};\r\n\r\n\t\tthis.init = function() {\r\n\t\t\tinit();\r\n\t\t};\r\n\t\tfunction init() {\r\n\r\n\t\t\tif ($field.length === 0) {\r\n\t\t\t\tlogger.error(\"Input field doesn't exist.\");\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif (!config.checkDataUrlProperties()) {\r\n\t\t\t\tlogger.error(\"One of options variables 'data' or 'url' must be defined.\");\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif (!config.checkRequiredProperties()) {\r\n\t\t\t\tlogger.error(\"Will not work without mentioned properties.\");\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\r\n\t\t\tprepareField();\r\n\t\t\tbindEvents();\r\n\r\n\t\t}\r\n\t\tfunction prepareField() {\r\n\r\n\r\n\t\t\tif ($field.parent().hasClass(consts.getValue(\"WRAPPER_CSS_CLASS\"))) {\r\n\t\t\t\tremoveContainer();\r\n\t\t\t\tremoveWrapper();\r\n\t\t\t}\r\n\r\n\t\t\tcreateWrapper();\r\n\t\t\tcreateContainer();\r\n\r\n\t\t\t$container = $(\"#\" + getContainerId());\r\n\t\t\tif (config.get(\"placeholder\")) {\r\n\t\t\t\t$field.attr(\"placeholder\", config.get(\"placeholder\"));\r\n\t\t\t}\r\n\r\n\r\n\t\t\tfunction createWrapper() {\r\n\t\t\t\tvar $wrapper = $(\"
\"),\r\n\t\t\t\t\tclasses = consts.getValue(\"WRAPPER_CSS_CLASS\");\r\n\r\n\r\n\t\t\t\tif (config.get(\"theme\") && config.get(\"theme\") !== \"\") {\r\n\t\t\t\t\tclasses += \" eac-\" + config.get(\"theme\");\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (config.get(\"cssClasses\") && config.get(\"cssClasses\") !== \"\") {\r\n\t\t\t\t\tclasses += \" \" + config.get(\"cssClasses\");\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (template.getTemplateClass() !== \"\") {\r\n\t\t\t\t\tclasses += \" \" + template.getTemplateClass();\r\n\t\t\t\t}\r\n\r\n\r\n\t\t\t\t$wrapper\r\n\t\t\t\t\t.addClass(classes);\r\n\t\t\t\t$field.wrap($wrapper);\r\n\r\n\r\n\t\t\t\tif (config.get(\"adjustWidth\") === true) {\r\n\t\t\t\t\tadjustWrapperWidth();\r\n\t\t\t\t}\r\n\r\n\r\n\t\t\t}\r\n\r\n\t\t\tfunction adjustWrapperWidth() {\r\n\t\t\t\tvar fieldWidth = $field.outerWidth();\r\n\r\n\t\t\t\t$field.parent().css(\"width\", fieldWidth);\r\n\t\t\t}\r\n\r\n\t\t\tfunction removeWrapper() {\r\n\t\t\t\t$field.unwrap();\r\n\t\t\t}\r\n\r\n\t\t\tfunction createContainer() {\r\n\t\t\t\tvar $elements_container = $(\"
\").addClass(consts.getValue(\"CONTAINER_CLASS\"));\r\n\r\n\t\t\t\t$elements_container\r\n\t\t\t\t\t\t.attr(\"id\", getContainerId())\r\n\t\t\t\t\t\t.prepend($(\"
    \"));\r\n\r\n\r\n\t\t\t\t(function() {\r\n\r\n\t\t\t\t\t$elements_container\r\n\t\t\t\t\t\t/* List show animation */\r\n\t\t\t\t\t\t.on(\"show.eac\", function() {\r\n\r\n\t\t\t\t\t\t\tswitch(config.get(\"list\").showAnimation.type) {\r\n\r\n\t\t\t\t\t\t\t\tcase \"slide\":\r\n\t\t\t\t\t\t\t\t\tvar animationTime = config.get(\"list\").showAnimation.time,\r\n\t\t\t\t\t\t\t\t\t\tcallback = config.get(\"list\").showAnimation.callback;\r\n\r\n\t\t\t\t\t\t\t\t\t$elements_container.find(\"ul\").slideDown(animationTime, callback);\r\n\t\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\t\t\tcase \"fade\":\r\n\t\t\t\t\t\t\t\t\tvar animationTime = config.get(\"list\").showAnimation.time,\r\n\t\t\t\t\t\t\t\t\t\tcallback = config.get(\"list\").showAnimation.callback;\r\n\r\n\t\t\t\t\t\t\t\t\t$elements_container.find(\"ul\").fadeIn(animationTime), callback;\r\n\t\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t\t\t\t$elements_container.find(\"ul\").show();\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tconfig.get(\"list\").onShowListEvent();\r\n\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t/* List hide animation */\r\n\t\t\t\t\t\t.on(\"hide.eac\", function() {\r\n\r\n\t\t\t\t\t\t\tswitch(config.get(\"list\").hideAnimation.type) {\r\n\r\n\t\t\t\t\t\t\t\tcase \"slide\":\r\n\t\t\t\t\t\t\t\t\tvar animationTime = config.get(\"list\").hideAnimation.time,\r\n\t\t\t\t\t\t\t\t\t\tcallback = config.get(\"list\").hideAnimation.callback;\r\n\r\n\t\t\t\t\t\t\t\t\t$elements_container.find(\"ul\").slideUp(animationTime, callback);\r\n\t\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\t\t\tcase \"fade\":\r\n\t\t\t\t\t\t\t\t\tvar animationTime = config.get(\"list\").hideAnimation.time,\r\n\t\t\t\t\t\t\t\t\t\tcallback = config.get(\"list\").hideAnimation.callback;\r\n\r\n\t\t\t\t\t\t\t\t\t$elements_container.find(\"ul\").fadeOut(animationTime, callback);\r\n\t\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t\t\t\t$elements_container.find(\"ul\").hide();\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tconfig.get(\"list\").onHideListEvent();\r\n\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t.on(\"selectElement.eac\", function() {\r\n\t\t\t\t\t\t\t$elements_container.find(\"ul li\").removeClass(\"selected\");\r\n\t\t\t\t\t\t\t$elements_container.find(\"ul li\").eq(selectedElement).addClass(\"selected\");\r\n\r\n\t\t\t\t\t\t\tconfig.get(\"list\").onSelectItemEvent();\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t.on(\"loadElements.eac\", function(event, listBuilders, phrase) {\r\n\r\n\r\n\t\t\t\t\t\t\tvar $item = \"\",\r\n\t\t\t\t\t\t\t\t$listContainer = $elements_container.find(\"ul\");\r\n\r\n\t\t\t\t\t\t\t$listContainer\r\n\t\t\t\t\t\t\t\t.empty()\r\n\t\t\t\t\t\t\t\t.detach();\r\n\r\n\t\t\t\t\t\t\telementsList = [];\r\n\t\t\t\t\t\t\tvar counter = 0;\r\n\t\t\t\t\t\t\tfor(var builderIndex = 0, listBuildersLength = listBuilders.length; builderIndex < listBuildersLength; builderIndex += 1) {\r\n\r\n\t\t\t\t\t\t\t\tvar listData = listBuilders[builderIndex].data;\r\n\r\n\t\t\t\t\t\t\t\tif (listData.length === 0) {\r\n\t\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif (listBuilders[builderIndex].header !== undefined && listBuilders[builderIndex].header.length > 0) {\r\n\t\t\t\t\t\t\t\t\t$listContainer.append(\"
    \" + listBuilders[builderIndex].header + \"
    \");\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tfor(var i = 0, listDataLength = listData.length; i < listDataLength && counter < listBuilders[builderIndex].maxListSize; i += 1) {\r\n\t\t\t\t\t\t\t\t\t$item = $(\"
  • \");\r\n\r\n\r\n\t\t\t\t\t\t\t\t\t(function() {\r\n\t\t\t\t\t\t\t\t\t\tvar j = i,\r\n\t\t\t\t\t\t\t\t\t\t\titemCounter = counter,\r\n\t\t\t\t\t\t\t\t\t\t\telementsValue = listBuilders[builderIndex].getValue(listData[j]);\r\n\r\n\t\t\t\t\t\t\t\t\t\t$item.find(\" > div\")\r\n\t\t\t\t\t\t\t\t\t\t\t.on(\"click\", function() {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t$field.val(elementsValue).trigger(\"change\");\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tselectedElement = itemCounter;\r\n\t\t\t\t\t\t\t\t\t\t\t\tselectElement(itemCounter);\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tconfig.get(\"list\").onClickEvent();\r\n\t\t\t\t\t\t\t\t\t\t\t\tconfig.get(\"list\").onChooseEvent();\r\n\t\t\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\t\t\t.mouseover(function() {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tselectedElement = itemCounter;\r\n\t\t\t\t\t\t\t\t\t\t\t\tselectElement(itemCounter);\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tconfig.get(\"list\").onMouseOverEvent();\r\n\t\t\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\t\t\t.mouseout(function() {\r\n\t\t\t\t\t\t\t\t\t\t\t\tconfig.get(\"list\").onMouseOutEvent();\r\n\t\t\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\t\t\t.html(template.build(highlight(elementsValue, phrase), listData[j]));\r\n\t\t\t\t\t\t\t\t\t})();\r\n\r\n\t\t\t\t\t\t\t\t\t$listContainer.append($item);\r\n\t\t\t\t\t\t\t\t\telementsList.push(listData[i]);\r\n\t\t\t\t\t\t\t\t\tcounter += 1;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t$elements_container.append($listContainer);\r\n\r\n\t\t\t\t\t\t\tconfig.get(\"list\").onLoadEvent();\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t})();\r\n\r\n\t\t\t\t$field.after($elements_container);\r\n\t\t\t}\r\n\r\n\t\t\tfunction removeContainer() {\r\n\t\t\t\t$field.next(\".\" + consts.getValue(\"CONTAINER_CLASS\")).remove();\r\n\t\t\t}\r\n\r\n\t\t\tfunction highlight(string, phrase) {\r\n\r\n\t\t\t\tif(config.get(\"highlightPhrase\") && phrase !== \"\") {\r\n\t\t\t\t\treturn highlightPhrase(string, phrase);\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn string;\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\r\n\t\t\tfunction escapeRegExp(str) {\r\n\t\t\t\treturn str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, \"\\\\$&\");\r\n \t\t\t}\r\n\r\n\t\t\tfunction highlightPhrase(string, phrase) {\r\n\t\t\t\tvar escapedPhrase = escapeRegExp(phrase);\r\n\t\t\t\treturn (string + \"\").replace(new RegExp(\"(\" + escapedPhrase + \")\", \"gi\") , \"$1\");\r\n\t\t\t}\r\n\r\n\r\n\r\n\t\t}\r\n\t\tfunction getContainerId() {\r\n\r\n\t\t\tvar elementId = $field.attr(\"id\");\r\n\r\n\t\t\telementId = consts.getValue(\"CONTAINER_ID\") + elementId;\r\n\r\n\t\t\treturn elementId;\r\n\t\t}\r\n\t\tfunction bindEvents() {\r\n\r\n\t\t\tbindAllEvents();\r\n\r\n\r\n\t\t\tfunction bindAllEvents() {\r\n\t\t\t\tif (checkParam(\"autocompleteOff\", true)) {\r\n\t\t\t\t\tremoveAutocomplete();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tbindFocusOut();\r\n\t\t\t\tbindKeyup();\r\n\t\t\t\tbindKeydown();\r\n\t\t\t\tbindKeypress();\r\n\t\t\t\tbindFocus();\r\n\t\t\t\tbindBlur();\r\n\t\t\t}\r\n\r\n\t\t\tfunction bindFocusOut() {\r\n\t\t\t\t$field.focusout(function () {\r\n\r\n\t\t\t\t\tvar fieldValue = $field.val(),\r\n\t\t\t\t\t\tphrase;\r\n\r\n\t\t\t\t\tif (!config.get(\"list\").match.caseSensitive) {\r\n\t\t\t\t\t\tfieldValue = fieldValue.toLowerCase();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfor (var i = 0, length = elementsList.length; i < length; i += 1) {\r\n\r\n\t\t\t\t\t\tphrase = config.get(\"getValue\")(elementsList[i]);\r\n\t\t\t\t\t\tif (!config.get(\"list\").match.caseSensitive) {\r\n\t\t\t\t\t\t\tphrase = phrase.toLowerCase();\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (phrase === fieldValue) {\r\n\t\t\t\t\t\t\tselectedElement = i;\r\n\t\t\t\t\t\t\tselectElement(selectedElement);\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tfunction bindKeyup() {\r\n\t\t\t\t$field\r\n\t\t\t\t.off(\"keyup\")\r\n\t\t\t\t.keyup(function(event) {\r\n\r\n\t\t\t\t\tswitch(event.keyCode) {\r\n\r\n\t\t\t\t\t\tcase 27:\r\n\r\n\t\t\t\t\t\t\thideContainer();\r\n\t\t\t\t\t\t\tloseFieldFocus();\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\tcase 38:\r\n\r\n\t\t\t\t\t\t\tevent.preventDefault();\r\n\r\n\t\t\t\t\t\t\tif(elementsList.length > 0 && selectedElement > 0) {\r\n\r\n\t\t\t\t\t\t\t\tselectedElement -= 1;\r\n\r\n\t\t\t\t\t\t\t\t$field.val(config.get(\"getValue\")(elementsList[selectedElement]));\r\n\r\n\t\t\t\t\t\t\t\tselectElement(selectedElement);\r\n\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\tcase 40:\r\n\r\n\t\t\t\t\t\t\tevent.preventDefault();\r\n\r\n\t\t\t\t\t\t\tif(elementsList.length > 0 && selectedElement < elementsList.length - 1) {\r\n\r\n\t\t\t\t\t\t\t\tselectedElement += 1;\r\n\r\n\t\t\t\t\t\t\t\t$field.val(config.get(\"getValue\")(elementsList[selectedElement]));\r\n\r\n\t\t\t\t\t\t\t\tselectElement(selectedElement);\r\n\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\tdefault:\r\n\r\n\t\t\t\t\t\t\tif (event.keyCode > 40 || event.keyCode === 8) {\r\n\r\n\t\t\t\t\t\t\t\tvar inputPhrase = $field.val();\r\n\r\n\t\t\t\t\t\t\t\tif (!(config.get(\"list\").hideOnEmptyPhrase === true && event.keyCode === 8 && inputPhrase === \"\")) {\r\n\r\n\t\t\t\t\t\t\t\t\tif (config.get(\"requestDelay\") > 0) {\r\n\t\t\t\t\t\t\t\t\t\tif (requestDelayTimeoutId !== undefined) {\r\n\t\t\t\t\t\t\t\t\t\t\tclearTimeout(requestDelayTimeoutId);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\trequestDelayTimeoutId = setTimeout(function () { loadData(inputPhrase);}, config.get(\"requestDelay\"));\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\tloadData(inputPhrase);\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\thideContainer();\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t}\r\n\r\n\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\r\n\r\n\t\t\t\t\tfunction loadData(inputPhrase) {\r\n\r\n\r\n\t\t\t\t\t\tif (inputPhrase.length < config.get(\"minCharNumber\")) {\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\r\n\t\t\t\t\t\tif (config.get(\"data\") !== \"list-required\") {\r\n\r\n\t\t\t\t\t\t\tvar data = config.get(\"data\");\r\n\r\n\t\t\t\t\t\t\tvar listBuilders = listBuilderService.init(data);\r\n\r\n\t\t\t\t\t\t\tlistBuilders = listBuilderService.updateCategories(listBuilders, data);\r\n\r\n\t\t\t\t\t\t\tlistBuilders = listBuilderService.processData(listBuilders, inputPhrase);\r\n\r\n\t\t\t\t\t\t\tloadElements(listBuilders, inputPhrase);\r\n\r\n\t\t\t\t\t\t\tif ($field.parent().find(\"li\").length > 0) {\r\n\t\t\t\t\t\t\t\tshowContainer();\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\thideContainer();\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar settings = createAjaxSettings();\r\n\r\n\t\t\t\t\t\tif (settings.url === undefined || settings.url === \"\") {\r\n\t\t\t\t\t\t\tsettings.url = config.get(\"url\");\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (settings.dataType === undefined || settings.dataType === \"\") {\r\n\t\t\t\t\t\t\tsettings.dataType = config.get(\"dataType\");\r\n\t\t\t\t\t\t}\r\n\r\n\r\n\t\t\t\t\t\tif (settings.url !== undefined && settings.url !== \"list-required\") {\r\n\r\n\t\t\t\t\t\t\tsettings.url = settings.url(inputPhrase);\r\n\r\n\t\t\t\t\t\t\tsettings.data = config.get(\"preparePostData\")(settings.data, inputPhrase);\r\n\r\n\t\t\t\t\t\t\t$.ajax(settings)\r\n\t\t\t\t\t\t\t\t.done(function(data) {\r\n\r\n\t\t\t\t\t\t\t\t\tvar listBuilders = listBuilderService.init(data);\r\n\r\n\t\t\t\t\t\t\t\t\tlistBuilders = listBuilderService.updateCategories(listBuilders, data);\r\n\r\n\t\t\t\t\t\t\t\t\tlistBuilders = listBuilderService.convertXml(listBuilders);\r\n\t\t\t\t\t\t\t\t\tif (checkInputPhraseMatchResponse(inputPhrase, data)) {\r\n\r\n\t\t\t\t\t\t\t\t\t\tlistBuilders = listBuilderService.processData(listBuilders, inputPhrase);\r\n\r\n\t\t\t\t\t\t\t\t\t\tloadElements(listBuilders, inputPhrase);\r\n\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\tif (listBuilderService.checkIfDataExists(listBuilders) && $field.parent().find(\"li\").length > 0) {\r\n\t\t\t\t\t\t\t\t\t\tshowContainer();\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\thideContainer();\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\tconfig.get(\"ajaxCallback\")();\r\n\r\n\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t.fail(function() {\r\n\t\t\t\t\t\t\t\t\tlogger.warning(\"Fail to load response data\");\r\n\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t.always(function() {\r\n\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\r\n\r\n\r\n\t\t\t\t\t\tfunction createAjaxSettings() {\r\n\r\n\t\t\t\t\t\t\tvar settings = {},\r\n\t\t\t\t\t\t\t\tajaxSettings = config.get(\"ajaxSettings\") || {};\r\n\r\n\t\t\t\t\t\t\tfor (var set in ajaxSettings) {\r\n\t\t\t\t\t\t\t\tsettings[set] = ajaxSettings[set];\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\treturn settings;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tfunction checkInputPhraseMatchResponse(inputPhrase, data) {\r\n\r\n\t\t\t\t\t\t\tif (config.get(\"matchResponseProperty\") !== false) {\r\n\t\t\t\t\t\t\t\tif (typeof config.get(\"matchResponseProperty\") === \"string\") {\r\n\t\t\t\t\t\t\t\t\treturn (data[config.get(\"matchResponseProperty\")] === inputPhrase);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif (typeof config.get(\"matchResponseProperty\") === \"function\") {\r\n\t\t\t\t\t\t\t\t\treturn (config.get(\"matchResponseProperty\")(data) === inputPhrase);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t}\r\n\r\n\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tfunction bindKeydown() {\r\n\t\t\t\t$field\r\n\t\t\t\t\t.on(\"keydown\", function(evt) {\r\n\t \t\t evt = evt || window.event;\r\n\t \t\t var keyCode = evt.keyCode;\r\n\t \t\t if (keyCode === 38) {\r\n\t \t\t suppressKeypress = true;\r\n\t \t\t return false;\r\n\t \t\t }\r\n\t\t \t})\r\n\t\t\t\t\t.keydown(function(event) {\r\n\r\n\t\t\t\t\t\tif (event.keyCode === 13 && selectedElement > -1) {\r\n\r\n\t\t\t\t\t\t\t$field.val(config.get(\"getValue\")(elementsList[selectedElement]));\r\n\r\n\t\t\t\t\t\t\tconfig.get(\"list\").onKeyEnterEvent();\r\n\t\t\t\t\t\t\tconfig.get(\"list\").onChooseEvent();\r\n\r\n\t\t\t\t\t\t\tselectedElement = -1;\r\n\t\t\t\t\t\t\thideContainer();\r\n\r\n\t\t\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tfunction bindKeypress() {\r\n\t\t\t\t$field\r\n\t\t\t\t.off(\"keypress\");\r\n\t\t\t}\r\n\r\n\t\t\tfunction bindFocus() {\r\n\t\t\t\t$field.focus(function() {\r\n\r\n\t\t\t\t\tif ($field.val() !== \"\" && elementsList.length > 0) {\r\n\r\n\t\t\t\t\t\tselectedElement = -1;\r\n\t\t\t\t\t\tshowContainer();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tfunction bindBlur() {\r\n\t\t\t\t$field.blur(function() {\r\n\t\t\t\t\tsetTimeout(function() {\r\n\r\n\t\t\t\t\t\tselectedElement = -1;\r\n\t\t\t\t\t\thideContainer();\r\n\t\t\t\t\t}, 250);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tfunction removeAutocomplete() {\r\n\t\t\t\t$field.attr(\"autocomplete\",\"off\");\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tfunction showContainer() {\r\n\t\t\t$container.trigger(\"show.eac\");\r\n\t\t}\r\n\r\n\t\tfunction hideContainer() {\r\n\t\t\t$container.trigger(\"hide.eac\");\r\n\t\t}\r\n\r\n\t\tfunction selectElement(index) {\r\n\r\n\t\t\t$container.trigger(\"selectElement.eac\", index);\r\n\t\t}\r\n\r\n\t\tfunction loadElements(list, phrase) {\r\n\t\t\t$container.trigger(\"loadElements.eac\", [list, phrase]);\r\n\t\t}\r\n\r\n\t\tfunction loseFieldFocus() {\r\n\t\t\t$field.trigger(\"blur\");\r\n\t\t}\r\n\r\n\r\n\t};\r\n\tscope.eacHandles = [];\r\n\r\n\tscope.getHandle = function(id) {\r\n\t\treturn scope.eacHandles[id];\r\n\t};\r\n\r\n\tscope.inputHasId = function(input) {\r\n\r\n\t\tif($(input).attr(\"id\") !== undefined && $(input).attr(\"id\").length > 0) {\r\n\t\t\treturn true;\r\n\t\t} else {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t};\r\n\r\n\tscope.assignRandomId = function(input) {\r\n\r\n\t\tvar fieldId = \"\";\r\n\r\n\t\tdo {\r\n\t\t\tfieldId = \"eac-\" + Math.floor(Math.random() * 10000);\r\n\t\t} while ($(\"#\" + fieldId).length !== 0);\r\n\r\n\t\telementId = scope.consts.getValue(\"CONTAINER_ID\") + fieldId;\r\n\r\n\t\t$(input).attr(\"id\", fieldId);\r\n\r\n\t};\r\n\r\n\tscope.setHandle = function(handle, id) {\r\n\t\tscope.eacHandles[id] = handle;\r\n\t};\r\n\r\n\r\n\treturn scope;\r\n\r\n})(EasyAutocomplete || {});\r\n\r\n(function($) {\r\n\r\n\t$.fn.easyAutocomplete = function(options) {\r\n\r\n\t\treturn this.each(function() {\r\n\t\t\tvar $this = $(this),\r\n\t\t\t\teacHandle = new EasyAutocomplete.main($this, options);\r\n\r\n\t\t\tif (!EasyAutocomplete.inputHasId($this)) {\r\n\t\t\t\tEasyAutocomplete.assignRandomId($this);\r\n\t\t\t}\r\n\r\n\t\t\teacHandle.init();\r\n\r\n\t\t\tEasyAutocomplete.setHandle(eacHandle, $this.attr(\"id\"));\r\n\r\n\t\t});\r\n\t};\r\n\r\n\t$.fn.getSelectedItemIndex = function() {\r\n\r\n\t\tvar inputId = $(this).attr(\"id\");\r\n\r\n\t\tif (inputId !== undefined) {\r\n\t\t\treturn EasyAutocomplete.getHandle(inputId).getSelectedItemIndex();\r\n\t\t}\r\n\r\n\t\treturn -1;\r\n\t};\r\n\r\n\t$.fn.getItems = function () {\r\n\r\n\t\tvar inputId = $(this).attr(\"id\");\r\n\r\n\t\tif (inputId !== undefined) {\r\n\t\t\treturn EasyAutocomplete.getHandle(inputId).getItems();\r\n\t\t}\r\n\r\n\t\treturn -1;\r\n\t};\r\n\r\n\t$.fn.getItemData = function(index) {\r\n\r\n\t\tvar inputId = $(this).attr(\"id\");\r\n\r\n\t\tif (inputId !== undefined && index > -1) {\r\n\t\t\treturn EasyAutocomplete.getHandle(inputId).getItemData(index);\r\n\t\t}\r\n\r\n\t\treturn -1;\r\n\t};\r\n\r\n\t$.fn.getSelectedItemData = function() {\r\n\r\n\t\tvar inputId = $(this).attr(\"id\");\r\n\r\n\t\tif (inputId !== undefined) {\r\n\t\t\treturn EasyAutocomplete.getHandle(inputId).getSelectedItemData();\r\n\t\t}\r\n\r\n\t\treturn -1;\r\n\t};\r\n\r\n})(jQuery);\r\n","(function($) {\r\n\r\n if(!$) {\r\n return;\r\n }\r\n\r\n ////////////\r\n // Plugin //\r\n ////////////\r\n\r\n $.fn.headroom = function(option) {\r\n return this.each(function() {\r\n var $this = $(this),\r\n data = $this.data('headroom'),\r\n options = typeof option === 'object' && option;\r\n\r\n options = $.extend(true, {}, Headroom.options, options);\r\n\r\n if (!data) {\r\n data = new Headroom(this, options);\r\n data.init();\r\n $this.data('headroom', data);\r\n }\r\n if (typeof option === 'string') {\r\n data[option]();\r\n\r\n if(option === 'destroy'){\r\n $this.removeData('headroom');\r\n }\r\n }\r\n });\r\n };\r\n\r\n //////////////\r\n // Data API //\r\n //////////////\r\n\r\n $('[data-headroom]').each(function() {\r\n var $this = $(this);\r\n $this.headroom($this.data());\r\n });\r\n\r\n}(window.Zepto || window.jQuery));\r\n","/*!\r\n * jQuery Magnify Plugin v2.1.0 by T. H. Doan (http://thdoan.github.io/magnify/)\r\n * Based on http://thecodeplayer.com/walkthrough/magnifying-glass-for-images-using-jquery-and-css3\r\n *\r\n * jQuery Magnify by T. H. Doan is licensed under the MIT License.\r\n * Read a copy of the license in the LICENSE file or at http://choosealicense.com/licenses/mit\r\n */\r\n\r\n(function($) {\r\n $.fn.magnify = function(oOptions) {\r\n // Default options\r\n oOptions = $.extend({\r\n 'src': '',\r\n 'speed': 100,\r\n 'timeout': -1,\r\n 'finalWidth': null,\r\n 'finalHeight': null,\r\n 'magnifiedWidth': null,\r\n 'magnifiedHeight': null,\r\n 'limitBounds': false,\r\n 'afterLoad': function(){}\r\n }, oOptions);\r\n\r\n var $that = this, // Preserve scope\r\n $html = $('html'),\r\n\r\n // Initiate\r\n init = function(el) {\r\n var $image = $(el),\r\n $anchor = $image.closest('a'),\r\n oDataAttr = {};\r\n\r\n // Get data attributes\r\n for (var i in oOptions) {\r\n oDataAttr[i] = $image.attr('data-magnify-' + i.toLowerCase());\r\n }\r\n\r\n // Disable zooming if no valid large image source\r\n var sZoomSrc = oDataAttr['src'] || oOptions['src'] || $anchor.attr('href') || '';\r\n if (!sZoomSrc) return;\r\n\r\n var $container,\r\n $lens,\r\n nImageWidth,\r\n nImageHeight,\r\n nMagnifiedWidth,\r\n nMagnifiedHeight,\r\n nLensWidth,\r\n nLensHeight,\r\n nBoundX = 0,\r\n nBoundY = 0,\r\n oContainerOffset, // Relative to document\r\n oImageOffset, // Relative to container\r\n // Get true offsets\r\n getOffset = function() {\r\n var o = $container.offset();\r\n // Store offsets from container border to image inside\r\n // NOTE: .offset() does NOT take into consideration image border and padding.\r\n oImageOffset = {\r\n 'top': ($image.offset().top-o.top) + parseInt($image.css('border-top-width')) + parseInt($image.css('padding-top')),\r\n 'left': ($image.offset().left-o.left) + parseInt($image.css('border-left-width')) + parseInt($image.css('padding-left'))\r\n };\r\n o.top += oImageOffset['top'];\r\n o.left += oImageOffset['left'];\r\n return o;\r\n },\r\n // Hide the lens\r\n hideLens = function() {\r\n if ($lens.is(':visible')) $lens.fadeOut(oOptions['speed'], function() {\r\n $html.removeClass('magnifying').trigger('magnifyend'); // Reset overflow-x\r\n });\r\n };\r\n\r\n // Data attributes have precedence over options object\r\n if (!isNaN(+oDataAttr['speed'])) oOptions['speed'] = +oDataAttr['speed'];\r\n if (!isNaN(+oDataAttr['timeout'])) oOptions['timeout'] = +oDataAttr['timeout'];\r\n if (!isNaN(+oDataAttr['finalWidth'])) oOptions['finalWidth'] = +oDataAttr['finalWidth'];\r\n if (!isNaN(+oDataAttr['finalHeight'])) oOptions['finalHeight'] = +oDataAttr['finalHeight'];\r\n if (!isNaN(+oDataAttr['magnifiedWidth'])) oOptions['magnifiedWidth'] = +oDataAttr['magnifiedWidth'];\r\n if (!isNaN(+oDataAttr['magnifiedHeight'])) oOptions['magnifiedHeight'] = +oDataAttr['magnifiedHeight'];\r\n if (oDataAttr['limitBounds']==='true') oOptions['limitBounds'] = true;\r\n if (typeof window[oDataAttr['afterLoad']]==='function') oOptions.afterLoad = window[oDataAttr['afterLoad']];\r\n\r\n // Save any inline styles for resetting\r\n $image.data('originalStyle', $image.attr('style'));\r\n\r\n // Activate magnification:\r\n // 1. Try to get large image dimensions\r\n // 2. Proceed only if able to get large image dimensions OK\r\n\r\n // [1] Calculate the native (magnified) image dimensions. The zoomed version is only shown\r\n // after the native dimensions are available. To get the actual dimensions we have to create\r\n // this image object.\r\n var elZoomImage = new Image();\r\n $(elZoomImage).on({\r\n 'load': function() {\r\n // [2] Got image dimensions OK.\r\n\r\n var nX, nY;\r\n\r\n // Fix overlap bug at the edges during magnification\r\n $image.css('display', 'block');\r\n // Create container div if necessary\r\n if (!$image.parent('.magnify').length) {\r\n $image.wrap('
    ');\r\n }\r\n $container = $image.parent('.magnify');\r\n // Create the magnifying lens div if necessary\r\n if ($image.prev('.magnify-lens').length) {\r\n $container.children('.magnify-lens').css('background-image', 'url(\\'' + sZoomSrc + '\\')');\r\n } else {\r\n $image.before('
    ');\r\n }\r\n $lens = $container.children('.magnify-lens');\r\n // Remove the \"Loading...\" text\r\n $lens.removeClass('loading');\r\n // Cache dimensions and offsets for improved performance\r\n // NOTE: This code is inside the load() function, which is important. The width and\r\n // height of the object would return 0 if accessed before the image is fully loaded.\r\n nImageWidth = oOptions['finalWidth'] || $image.width();\r\n nImageHeight = oOptions['finalHeight'] || $image.height();\r\n nMagnifiedWidth = oOptions['magnifiedWidth'] || elZoomImage.width;\r\n nMagnifiedHeight = oOptions['magnifiedHeight'] || elZoomImage.height;\r\n nLensWidth = $lens.width();\r\n nLensHeight = $lens.height();\r\n oContainerOffset = getOffset(); // Required by refresh()\r\n // Set zoom boundaries\r\n if (oOptions['limitBounds']) {\r\n nBoundX = (nLensWidth/2) / (nMagnifiedWidth/nImageWidth);\r\n nBoundY = (nLensHeight/2) / (nMagnifiedHeight/nImageHeight);\r\n }\r\n // Enforce non-native large image size?\r\n if (nMagnifiedWidth!==elZoomImage.width || nMagnifiedHeight!==elZoomImage.height) {\r\n $lens.css('background-size', nMagnifiedWidth + 'px ' + nMagnifiedHeight + 'px');\r\n }\r\n // Store zoom dimensions for mobile plugin\r\n $image.data('zoomSize', {\r\n 'width': nMagnifiedWidth,\r\n 'height': nMagnifiedHeight\r\n });\r\n // Clean up\r\n elZoomImage = null;\r\n // Execute callback\r\n oOptions.afterLoad();\r\n // Handle mouse movements\r\n $container.off().on({\r\n 'mousemove touchmove': function(e) {\r\n e.preventDefault();\r\n // Reinitialize if image initially hidden\r\n if (!nImageHeight) {\r\n refresh();\r\n return;\r\n }\r\n // x/y coordinates of the mouse pointer or touch point. This is the position of\r\n // .magnify relative to the document.\r\n //\r\n // We deduct the positions of .magnify from the mouse or touch positions relative to\r\n // the document to get the mouse or touch positions relative to the container.\r\n nX = (e.pageX || e.originalEvent.touches[0].pageX) - oContainerOffset['left'],\r\n nY = (e.pageY || e.originalEvent.touches[0].pageY) - oContainerOffset['top'];\r\n // Toggle magnifying lens\r\n if (!$lens.is(':animated')) {\r\n if (nX>nBoundX && nXnBoundY && nY0) nRatioX = 0;\r\n else if (nRatioX0) nRatioY = 0;\r\n else if (nRatioY=0) {\r\n $container.on('touchend', function() {\r\n setTimeout(hideLens, oOptions['timeout']);\r\n });\r\n }\r\n // Ensure lens is closed when tapping outside of it\r\n $('body').not($container).on('touchstart', hideLens);\r\n\r\n // Support image map click-throughs while zooming\r\n var sUsemap = $image.attr('usemap');\r\n if (sUsemap) {\r\n var $map = $('map[name=' + sUsemap.slice(1) + ']');\r\n // Image map needs to be on the same DOM level as image source\r\n $image.after($map);\r\n $container.click(function(e) {\r\n // Trigger click on image below lens at current cursor position\r\n if (e.clientX || e.clientY) {\r\n $lens.hide();\r\n var elPoint = document.elementFromPoint(\r\n e.clientX || e.originalEvent.touches[0].clientX,\r\n e.clientY || e.originalEvent.touches[0].clientY\r\n );\r\n if (elPoint.nodeName==='AREA') {\r\n elPoint.click();\r\n } else {\r\n // Workaround for buggy implementation of elementFromPoint()\r\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=1227469\r\n $('area', $map).each(function() {\r\n var a = $(this).attr('coords').split(',');\r\n if (nX>=a[0] && nX<=a[2] && nY>=a[1] && nY<=a[3]) {\r\n this.click();\r\n return false;\r\n }\r\n });\r\n }\r\n }\r\n });\r\n }\r\n\r\n if ($anchor.length) {\r\n // Make parent anchor inline-block to have correct dimensions\r\n $anchor.css('display', 'inline-block');\r\n // Disable parent anchor if it's sourcing the large image\r\n if ($anchor.attr('href') && !(oDataAttr['src'] || oOptions['src'])) {\r\n $anchor.click(function(e) {\r\n e.preventDefault();\r\n });\r\n }\r\n }\r\n\r\n },\r\n 'error': function() {\r\n // Clean up\r\n elZoomImage = null;\r\n }\r\n });\r\n\r\n elZoomImage.src = sZoomSrc;\r\n }, // END init()\r\n\r\n // Simple debounce\r\n nTimer = 0,\r\n refresh = function() {\r\n clearTimeout(nTimer);\r\n nTimer = setTimeout(function() {\r\n $that.destroy();\r\n $that.magnify(oOptions);\r\n }, 100);\r\n };\r\n\r\n /**\r\n * Public Methods\r\n */\r\n\r\n // Turn off zoom and reset to original state\r\n this.destroy = function() {\r\n this.each(function() {\r\n var $this = $(this),\r\n $lens = $this.prev('div.magnify-lens'),\r\n sStyle = $this.data('originalStyle');\r\n if ($this.parent('div.magnify').length && $lens.length) {\r\n if (sStyle) $this.attr('style', sStyle);\r\n else $this.removeAttr('style');\r\n $this.unwrap();\r\n $lens.remove();\r\n }\r\n });\r\n // Unregister event handler\r\n $(window).off('resize', refresh);\r\n return $that;\r\n }\r\n\r\n // Handle window resizing\r\n $(window).resize(refresh);\r\n\r\n return this.each(function() {\r\n // Initiate magnification powers\r\n init(this);\r\n });\r\n\r\n };\r\n}(jQuery));\r\n","/*!\r\n * jQuery Mousewheel 3.1.13\r\n *\r\n * Copyright jQuery Foundation and other contributors\r\n * Released under the MIT license\r\n * http://jquery.org/license\r\n */\r\n\r\n(function (factory) {\r\n if ( typeof define === 'function' && define.amd ) {\r\n // AMD. Register as an anonymous module.\r\n define(['jquery'], factory);\r\n } else if (typeof exports === 'object') {\r\n // Node/CommonJS style for Browserify\r\n module.exports = factory;\r\n } else {\r\n // Browser globals\r\n factory(jQuery);\r\n }\r\n}(function ($) {\r\n\r\n var toFix = ['wheel', 'mousewheel', 'DOMMouseScroll', 'MozMousePixelScroll'],\r\n toBind = ( 'onwheel' in document || document.documentMode >= 9 ) ?\r\n ['wheel'] : ['mousewheel', 'DomMouseScroll', 'MozMousePixelScroll'],\r\n slice = Array.prototype.slice,\r\n nullLowestDeltaTimeout, lowestDelta;\r\n\r\n if ( $.event.fixHooks ) {\r\n for ( var i = toFix.length; i; ) {\r\n $.event.fixHooks[ toFix[--i] ] = $.event.mouseHooks;\r\n }\r\n }\r\n\r\n var special = $.event.special.mousewheel = {\r\n version: '3.1.12',\r\n\r\n setup: function() {\r\n if ( this.addEventListener ) {\r\n for ( var i = toBind.length; i; ) {\r\n this.addEventListener( toBind[--i], handler, false );\r\n }\r\n } else {\r\n this.onmousewheel = handler;\r\n }\r\n // Store the line height and page height for this particular element\r\n $.data(this, 'mousewheel-line-height', special.getLineHeight(this));\r\n $.data(this, 'mousewheel-page-height', special.getPageHeight(this));\r\n },\r\n\r\n teardown: function() {\r\n if ( this.removeEventListener ) {\r\n for ( var i = toBind.length; i; ) {\r\n this.removeEventListener( toBind[--i], handler, false );\r\n }\r\n } else {\r\n this.onmousewheel = null;\r\n }\r\n // Clean up the data we added to the element\r\n $.removeData(this, 'mousewheel-line-height');\r\n $.removeData(this, 'mousewheel-page-height');\r\n },\r\n\r\n getLineHeight: function(elem) {\r\n var $elem = $(elem),\r\n $parent = $elem['offsetParent' in $.fn ? 'offsetParent' : 'parent']();\r\n if (!$parent.length) {\r\n $parent = $('body');\r\n }\r\n return parseInt($parent.css('fontSize'), 10) || parseInt($elem.css('fontSize'), 10) || 16;\r\n },\r\n\r\n getPageHeight: function(elem) {\r\n return $(elem).height();\r\n },\r\n\r\n settings: {\r\n adjustOldDeltas: true, // see shouldAdjustOldDeltas() below\r\n normalizeOffset: true // calls getBoundingClientRect for each event\r\n }\r\n };\r\n\r\n $.fn.extend({\r\n mousewheel: function(fn) {\r\n return fn ? this.bind('mousewheel', fn) : this.trigger('mousewheel');\r\n },\r\n\r\n unmousewheel: function(fn) {\r\n return this.unbind('mousewheel', fn);\r\n }\r\n });\r\n\r\n\r\n function handler(event) {\r\n var orgEvent = event || window.event,\r\n args = slice.call(arguments, 1),\r\n delta = 0,\r\n deltaX = 0,\r\n deltaY = 0,\r\n absDelta = 0,\r\n offsetX = 0,\r\n offsetY = 0;\r\n event = $.event.fix(orgEvent);\r\n event.type = 'mousewheel';\r\n\r\n // Old school scrollwheel delta\r\n if ( 'detail' in orgEvent ) { deltaY = orgEvent.detail * -1; }\r\n if ( 'wheelDelta' in orgEvent ) { deltaY = orgEvent.wheelDelta; }\r\n if ( 'wheelDeltaY' in orgEvent ) { deltaY = orgEvent.wheelDeltaY; }\r\n if ( 'wheelDeltaX' in orgEvent ) { deltaX = orgEvent.wheelDeltaX * -1; }\r\n\r\n // Firefox < 17 horizontal scrolling related to DOMMouseScroll event\r\n if ( 'axis' in orgEvent && orgEvent.axis === orgEvent.HORIZONTAL_AXIS ) {\r\n deltaX = deltaY * -1;\r\n deltaY = 0;\r\n }\r\n\r\n // Set delta to be deltaY or deltaX if deltaY is 0 for backwards compatabilitiy\r\n delta = deltaY === 0 ? deltaX : deltaY;\r\n\r\n // New school wheel delta (wheel event)\r\n if ( 'deltaY' in orgEvent ) {\r\n deltaY = orgEvent.deltaY * -1;\r\n delta = deltaY;\r\n }\r\n if ( 'deltaX' in orgEvent ) {\r\n deltaX = orgEvent.deltaX;\r\n if ( deltaY === 0 ) { delta = deltaX * -1; }\r\n }\r\n\r\n // No change actually happened, no reason to go any further\r\n if ( deltaY === 0 && deltaX === 0 ) { return; }\r\n\r\n // Need to convert lines and pages to pixels if we aren't already in pixels\r\n // There are three delta modes:\r\n // * deltaMode 0 is by pixels, nothing to do\r\n // * deltaMode 1 is by lines\r\n // * deltaMode 2 is by pages\r\n if ( orgEvent.deltaMode === 1 ) {\r\n var lineHeight = $.data(this, 'mousewheel-line-height');\r\n delta *= lineHeight;\r\n deltaY *= lineHeight;\r\n deltaX *= lineHeight;\r\n } else if ( orgEvent.deltaMode === 2 ) {\r\n var pageHeight = $.data(this, 'mousewheel-page-height');\r\n delta *= pageHeight;\r\n deltaY *= pageHeight;\r\n deltaX *= pageHeight;\r\n }\r\n\r\n // Store lowest absolute delta to normalize the delta values\r\n absDelta = Math.max( Math.abs(deltaY), Math.abs(deltaX) );\r\n\r\n if ( !lowestDelta || absDelta < lowestDelta ) {\r\n lowestDelta = absDelta;\r\n\r\n // Adjust older deltas if necessary\r\n if ( shouldAdjustOldDeltas(orgEvent, absDelta) ) {\r\n lowestDelta /= 40;\r\n }\r\n }\r\n\r\n // Adjust older deltas if necessary\r\n if ( shouldAdjustOldDeltas(orgEvent, absDelta) ) {\r\n // Divide all the things by 40!\r\n delta /= 40;\r\n deltaX /= 40;\r\n deltaY /= 40;\r\n }\r\n\r\n // Get a whole, normalized value for the deltas\r\n delta = Math[ delta >= 1 ? 'floor' : 'ceil' ](delta / lowestDelta);\r\n deltaX = Math[ deltaX >= 1 ? 'floor' : 'ceil' ](deltaX / lowestDelta);\r\n deltaY = Math[ deltaY >= 1 ? 'floor' : 'ceil' ](deltaY / lowestDelta);\r\n\r\n // Normalise offsetX and offsetY properties\r\n if ( special.settings.normalizeOffset && this.getBoundingClientRect ) {\r\n var boundingRect = this.getBoundingClientRect();\r\n offsetX = event.clientX - boundingRect.left;\r\n offsetY = event.clientY - boundingRect.top;\r\n }\r\n\r\n // Add information to the event object\r\n event.deltaX = deltaX;\r\n event.deltaY = deltaY;\r\n event.deltaFactor = lowestDelta;\r\n event.offsetX = offsetX;\r\n event.offsetY = offsetY;\r\n // Go ahead and set deltaMode to 0 since we converted to pixels\r\n // Although this is a little odd since we overwrite the deltaX/Y\r\n // properties with normalized deltas.\r\n event.deltaMode = 0;\r\n\r\n // Add event and delta to the front of the arguments\r\n args.unshift(event, delta, deltaX, deltaY);\r\n\r\n // Clearout lowestDelta after sometime to better\r\n // handle multiple device types that give different\r\n // a different lowestDelta\r\n // Ex: trackpad = 3 and mouse wheel = 120\r\n if (nullLowestDeltaTimeout) { clearTimeout(nullLowestDeltaTimeout); }\r\n nullLowestDeltaTimeout = setTimeout(nullLowestDelta, 200);\r\n\r\n return ($.event.dispatch || $.event.handle).apply(this, args);\r\n }\r\n\r\n function nullLowestDelta() {\r\n lowestDelta = null;\r\n }\r\n\r\n function shouldAdjustOldDeltas(orgEvent, absDelta) {\r\n // If this is an older event and the delta is divisable by 120,\r\n // then we are assuming that the browser is treating this as an\r\n // older mouse wheel event and that we should divide the deltas\r\n // by 40 to try and get a more usable deltaFactor.\r\n // Side note, this actually impacts the reported scroll distance\r\n // in older browsers and can cause scrolling to be slower than native.\r\n // Turn this off by setting $.event.special.mousewheel.settings.adjustOldDeltas to false.\r\n return special.settings.adjustOldDeltas && orgEvent.type === 'mousewheel' && absDelta % 120 === 0;\r\n }\r\n\r\n}));\r\n","/**\r\n * @license jquery.panzoom.js v3.2.2\r\n * Updated: Sat Aug 27 2016\r\n * Add pan and zoom functionality to any element\r\n * Copyright (c) timmy willison\r\n * Released under the MIT license\r\n * https://github.com/timmywil/jquery.panzoom/blob/master/MIT-License.txt\r\n */\r\n\r\n(function(global, factory) {\r\n\t// AMD\r\n\tif (typeof define === 'function' && define.amd) {\r\n\t\tdefine([ 'jquery' ], function(jQuery) {\r\n\t\t\treturn factory(global, jQuery);\r\n\t\t});\r\n\t// CommonJS/Browserify\r\n\t} else if (typeof exports === 'object') {\r\n\t\tfactory(global, require('jquery'));\r\n\t// Global\r\n\t} else {\r\n\t\tfactory(global, global.jQuery);\r\n\t}\r\n}(typeof window !== 'undefined' ? window : this, function(window, $) {\r\n\t'use strict';\r\n\r\n\tvar document = window.document;\r\n\tvar datakey = '__pz__';\r\n\tvar slice = Array.prototype.slice;\r\n\tvar rIE11 = /trident\\/7./i;\r\n\tvar supportsInputEvent = (function() {\r\n\t\t// IE11 returns a false positive\r\n\t\tif (rIE11.test(navigator.userAgent)) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tvar input = document.createElement('input');\r\n\t\tinput.setAttribute('oninput', 'return');\r\n\t\treturn typeof input.oninput === 'function';\r\n\t})();\r\n\r\n\t// Regex\r\n\tvar rupper = /([A-Z])/g;\r\n\tvar rsvg = /^http:[\\w\\.\\/]+svg$/;\r\n\r\n\tvar floating = '(\\\\-?\\\\d[\\\\d\\\\.e-]*)';\r\n\tvar commaSpace = '\\\\,?\\\\s*';\r\n\tvar rmatrix = new RegExp(\r\n\t\t'^matrix\\\\(' +\r\n\t\tfloating + commaSpace +\r\n\t\tfloating + commaSpace +\r\n\t\tfloating + commaSpace +\r\n\t\tfloating + commaSpace +\r\n\t\tfloating + commaSpace +\r\n\t\tfloating + '\\\\)$'\r\n\t);\r\n\r\n\t/**\r\n\t * Utility for determining transform matrix equality\r\n\t * Checks backwards to test translation first\r\n\t * @param {Array} first\r\n\t * @param {Array} second\r\n\t */\r\n\tfunction matrixEquals(first, second) {\r\n\t\tvar i = first.length;\r\n\t\twhile(--i) {\r\n\t\t\tif (Math.round(+first[i]) !== Math.round(+second[i])) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn true;\r\n\t}\r\n\r\n\t/**\r\n\t * Creates the options object for reset functions\r\n\t * @param {Boolean|Object} opts See reset methods\r\n\t * @returns {Object} Returns the newly-created options object\r\n\t */\r\n\tfunction createResetOptions(opts) {\r\n\t\tvar options = { range: true, animate: true };\r\n\t\tif (typeof opts === 'boolean') {\r\n\t\t\toptions.animate = opts;\r\n\t\t} else {\r\n\t\t\t$.extend(options, opts);\r\n\t\t}\r\n\t\treturn options;\r\n\t}\r\n\r\n\t/**\r\n\t * Represent a transformation matrix with a 3x3 matrix for calculations\r\n\t * Matrix functions adapted from Louis Remi's jQuery.transform (https://github.com/louisremi/jquery.transform.js)\r\n\t * @param {Array|Number} a An array of six values representing a 2d transformation matrix\r\n\t */\r\n\tfunction Matrix(a, b, c, d, e, f, g, h, i) {\r\n\t\tif ($.type(a) === 'array') {\r\n\t\t\tthis.elements = [\r\n\t\t\t\t+a[0], +a[2], +a[4],\r\n\t\t\t\t+a[1], +a[3], +a[5],\r\n\t\t\t\t 0, 0, 1\r\n\t\t\t];\r\n\t\t} else {\r\n\t\t\tthis.elements = [\r\n\t\t\t\ta, b, c,\r\n\t\t\t\td, e, f,\r\n\t\t\t\tg || 0, h || 0, i || 1\r\n\t\t\t];\r\n\t\t}\r\n\t}\r\n\r\n\tMatrix.prototype = {\r\n\t\t/**\r\n\t\t * Multiply a 3x3 matrix by a similar matrix or a vector\r\n\t\t * @param {Matrix|Vector} matrix\r\n\t\t * @return {Matrix|Vector} Returns a vector if multiplying by a vector\r\n\t\t */\r\n\t\tx: function(matrix) {\r\n\t\t\tvar isVector = matrix instanceof Vector;\r\n\r\n\t\t\tvar a = this.elements,\r\n\t\t\t\tb = matrix.elements;\r\n\r\n\t\t\tif (isVector && b.length === 3) {\r\n\t\t\t\t// b is actually a vector\r\n\t\t\t\treturn new Vector(\r\n\t\t\t\t\ta[0] * b[0] + a[1] * b[1] + a[2] * b[2],\r\n\t\t\t\t\ta[3] * b[0] + a[4] * b[1] + a[5] * b[2],\r\n\t\t\t\t\ta[6] * b[0] + a[7] * b[1] + a[8] * b[2]\r\n\t\t\t\t);\r\n\t\t\t} else if (b.length === a.length) {\r\n\t\t\t\t// b is a 3x3 matrix\r\n\t\t\t\treturn new Matrix(\r\n\t\t\t\t\ta[0] * b[0] + a[1] * b[3] + a[2] * b[6],\r\n\t\t\t\t\ta[0] * b[1] + a[1] * b[4] + a[2] * b[7],\r\n\t\t\t\t\ta[0] * b[2] + a[1] * b[5] + a[2] * b[8],\r\n\r\n\t\t\t\t\ta[3] * b[0] + a[4] * b[3] + a[5] * b[6],\r\n\t\t\t\t\ta[3] * b[1] + a[4] * b[4] + a[5] * b[7],\r\n\t\t\t\t\ta[3] * b[2] + a[4] * b[5] + a[5] * b[8],\r\n\r\n\t\t\t\t\ta[6] * b[0] + a[7] * b[3] + a[8] * b[6],\r\n\t\t\t\t\ta[6] * b[1] + a[7] * b[4] + a[8] * b[7],\r\n\t\t\t\t\ta[6] * b[2] + a[7] * b[5] + a[8] * b[8]\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t\treturn false; // fail\r\n\t\t},\r\n\t\t/**\r\n\t\t * Generates an inverse of the current matrix\r\n\t\t * @returns {Matrix}\r\n\t\t */\r\n\t\tinverse: function() {\r\n\t\t\tvar d = 1 / this.determinant(),\r\n\t\t\t\ta = this.elements;\r\n\t\t\treturn new Matrix(\r\n\t\t\t\td * ( a[8] * a[4] - a[7] * a[5]),\r\n\t\t\t\td * (-(a[8] * a[1] - a[7] * a[2])),\r\n\t\t\t\td * ( a[5] * a[1] - a[4] * a[2]),\r\n\r\n\t\t\t\td * (-(a[8] * a[3] - a[6] * a[5])),\r\n\t\t\t\td * ( a[8] * a[0] - a[6] * a[2]),\r\n\t\t\t\td * (-(a[5] * a[0] - a[3] * a[2])),\r\n\r\n\t\t\t\td * ( a[7] * a[3] - a[6] * a[4]),\r\n\t\t\t\td * (-(a[7] * a[0] - a[6] * a[1])),\r\n\t\t\t\td * ( a[4] * a[0] - a[3] * a[1])\r\n\t\t\t);\r\n\t\t},\r\n\t\t/**\r\n\t\t * Calculates the determinant of the current matrix\r\n\t\t * @returns {Number}\r\n\t\t */\r\n\t\tdeterminant: function() {\r\n\t\t\tvar a = this.elements;\r\n\t\t\treturn a[0] * (a[8] * a[4] - a[7] * a[5]) - a[3] * (a[8] * a[1] - a[7] * a[2]) + a[6] * (a[5] * a[1] - a[4] * a[2]);\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * Create a vector containing three values\r\n\t */\r\n\tfunction Vector(x, y, z) {\r\n\t\tthis.elements = [ x, y, z ];\r\n\t}\r\n\r\n\t/**\r\n\t * Get the element at zero-indexed index i\r\n\t * @param {Number} i\r\n\t */\r\n\tVector.prototype.e = Matrix.prototype.e = function(i) {\r\n\t\treturn this.elements[ i ];\r\n\t};\r\n\r\n\t/**\r\n\t * Create a Panzoom object for a given element\r\n\t * @constructor\r\n\t * @param {Element} elem - Element to use pan and zoom\r\n\t * @param {Object} [options] - An object literal containing options to override default options\r\n\t * (See Panzoom.defaults for ones not listed below)\r\n\t * @param {jQuery} [options.$zoomIn] - zoom in buttons/links collection (you can also bind these yourself\r\n\t * e.g. $button.on('click', function(e) { e.preventDefault(); $elem.panzoom('zoomIn'); });)\r\n\t * @param {jQuery} [options.$zoomOut] - zoom out buttons/links collection on which to bind zoomOut\r\n\t * @param {jQuery} [options.$zoomRange] - zoom in/out with this range control\r\n\t * @param {jQuery} [options.$reset] - Reset buttons/links collection on which to bind the reset method\r\n\t * @param {Function} [options.on[Start|Change|Zoom|Pan|End|Reset] - Optional callbacks for panzoom events\r\n\t */\r\n\tfunction Panzoom(elem, options) {\r\n\r\n\t\t// Allow instantiation without `new` keyword\r\n\t\tif (!(this instanceof Panzoom)) {\r\n\t\t\treturn new Panzoom(elem, options);\r\n\t\t}\r\n\r\n\t\t// Sanity checks\r\n\t\tif (elem.nodeType !== 1) {\r\n\t\t\t$.error('Panzoom called on non-Element node');\r\n\t\t}\r\n\t\tif (!$.contains(document, elem)) {\r\n\t\t\t$.error('Panzoom element must be attached to the document');\r\n\t\t}\r\n\r\n\t\t// Don't remake\r\n\t\tvar d = $.data(elem, datakey);\r\n\t\tif (d) {\r\n\t\t\treturn d;\r\n\t\t}\r\n\r\n\t\t// Extend default with given object literal\r\n\t\t// Each instance gets its own options\r\n\t\tthis.options = options = $.extend({}, Panzoom.defaults, options);\r\n\t\tthis.elem = elem;\r\n\t\tvar $elem = this.$elem = $(elem);\r\n\t\tthis.$set = options.$set && options.$set.length ? options.$set : $elem;\r\n\t\tthis.$doc = $(elem.ownerDocument || document);\r\n\t\tthis.$parent = $elem.parent();\r\n\t\tthis.parent = this.$parent[0];\r\n\r\n\t\t// This is SVG if the namespace is SVG\r\n\t\t// However, while elements are SVG, we want to treat those like other elements\r\n\t\tthis.isSVG = rsvg.test(elem.namespaceURI) && elem.nodeName.toLowerCase() !== 'svg';\r\n\r\n\t\tthis.panning = false;\r\n\r\n\t\t// Save the original transform value\r\n\t\t// Save the prefixed transform style key\r\n\t\t// Set the starting transform\r\n\t\tthis._buildTransform();\r\n\r\n\t\t// Build the appropriately-prefixed transform style property name\r\n\t\t// De-camelcase\r\n\t\tthis._transform = $.cssProps.transform.replace(rupper, '-$1').toLowerCase();\r\n\r\n\t\t// Build the transition value\r\n\t\tthis._buildTransition();\r\n\r\n\t\t// Build containment dimensions\r\n\t\tthis.resetDimensions();\r\n\r\n\t\t// Add zoom and reset buttons to `this`\r\n\t\tvar $empty = $();\r\n\t\tvar self = this;\r\n\t\t$.each([ '$zoomIn', '$zoomOut', '$zoomRange', '$reset' ], function(i, name) {\r\n\t\t\tself[ name ] = options[ name ] || $empty;\r\n\t\t});\r\n\r\n\t\tthis.enable();\r\n\r\n\t\tthis.scale = this.getMatrix()[0];\r\n\t\tthis._checkPanWhenZoomed();\r\n\r\n\t\t// Save the instance\r\n\t\t$.data(elem, datakey, this);\r\n\t}\r\n\r\n\t// Attach regex for possible use (immutable)\r\n\tPanzoom.rmatrix = rmatrix;\r\n\r\n\tPanzoom.defaults = {\r\n\t\t// Should always be non-empty\r\n\t\t// Used to bind jQuery events without collisions\r\n\t\t// A guid is not added here as different instantiations/versions of panzoom\r\n\t\t// on the same element is not supported, so don't do it.\r\n\t\teventNamespace: '.panzoom',\r\n\r\n\t\t// Whether or not to transition the scale\r\n\t\ttransition: true,\r\n\r\n\t\t// Default cursor style for the element\r\n\t\tcursor: 'move',\r\n\r\n\t\t// There may be some use cases for zooming without panning or vice versa\r\n\t\tdisablePan: false,\r\n\t\tdisableZoom: false,\r\n\r\n\t\t// Pan only on the X or Y axes\r\n\t\tdisableXAxis: false,\r\n\t\tdisableYAxis: false,\r\n\r\n\t\t// Set whether you'd like to pan on left (1), middle (2), or right click (3)\r\n\t\twhich: 1,\r\n\r\n\t\t// The increment at which to zoom\r\n\t\t// adds/subtracts to the scale each time zoomIn/Out is called\r\n\t\tincrement: 0.3,\r\n\r\n\t\t// Turns on exponential zooming\r\n\t\t// If false, zooming will be incremented linearly\r\n\t\texponential: true,\r\n\r\n\t\t// Pan only when the scale is greater than minScale\r\n\t\tpanOnlyWhenZoomed: false,\r\n\r\n\t\t// min and max zoom scales\r\n\t\tminScale: 0.3,\r\n\t\tmaxScale: 6,\r\n\r\n\t\t// The default step for the range input\r\n\t\t// Precendence: default < HTML attribute < option setting\r\n\t\trangeStep: 0.05,\r\n\r\n\t\t// Animation duration (ms)\r\n\t\tduration: 200,\r\n\t\t// CSS easing used for scale transition\r\n\t\teasing: 'ease-in-out',\r\n\r\n\t\t// Indicate that the element should be contained within it's parent when panning\r\n\t\t// Note: this does not affect zooming outside of the parent\r\n\t\t// Set this value to 'invert' to only allow panning outside of the parent element (basically the opposite of the normal use of contain)\r\n\t\t// 'invert' is useful for a large panzoom element where you don't want to show anything behind it\r\n\t\tcontain: false\r\n\t};\r\n\r\n\tPanzoom.prototype = {\r\n\t\tconstructor: Panzoom,\r\n\r\n\t\t/**\r\n\t\t * @returns {Panzoom} Returns the instance\r\n\t\t */\r\n\t\tinstance: function() {\r\n\t\t\treturn this;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Enable or re-enable the panzoom instance\r\n\t\t */\r\n\t\tenable: function() {\r\n\t\t\t// Unbind first\r\n\t\t\tthis._initStyle();\r\n\t\t\tthis._bind();\r\n\t\t\tthis.disabled = false;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Disable panzoom\r\n\t\t */\r\n\t\tdisable: function() {\r\n\t\t\tthis.disabled = true;\r\n\t\t\tthis._resetStyle();\r\n\t\t\tthis._unbind();\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @returns {Boolean} Returns whether the current panzoom instance is disabled\r\n\t\t */\r\n\t\tisDisabled: function() {\r\n\t\t\treturn this.disabled;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Destroy the panzoom instance\r\n\t\t */\r\n\t\tdestroy: function() {\r\n\t\t\tthis.disable();\r\n\t\t\t$.removeData(this.elem, datakey);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Builds the restricing dimensions from the containment element\r\n\t\t * Also used with focal points\r\n\t\t * Call this method whenever the dimensions of the element or parent are changed\r\n\t\t */\r\n\t\tresetDimensions: function() {\r\n\t\t\t// Reset container properties\r\n\t\t\tthis.container = this.parent.getBoundingClientRect();\r\n\r\n\t\t\t// Set element properties\r\n\t\t\tvar elem = this.elem;\r\n\t\t\t// getBoundingClientRect() works with SVG, offsetWidth does not\r\n\t\t\tvar dims = elem.getBoundingClientRect();\r\n\t\t\tvar absScale = Math.abs(this.scale);\r\n\t\t\tthis.dimensions = {\r\n\t\t\t\twidth: dims.width,\r\n\t\t\t\theight: dims.height,\r\n\t\t\t\tleft: $.css(elem, 'left', true) || 0,\r\n\t\t\t\ttop: $.css(elem, 'top', true) || 0,\r\n\t\t\t\t// Borders and margins are scaled\r\n\t\t\t\tborder: {\r\n\t\t\t\t\ttop: $.css(elem, 'borderTopWidth', true) * absScale || 0,\r\n\t\t\t\t\tbottom: $.css(elem, 'borderBottomWidth', true) * absScale || 0,\r\n\t\t\t\t\tleft: $.css(elem, 'borderLeftWidth', true) * absScale || 0,\r\n\t\t\t\t\tright: $.css(elem, 'borderRightWidth', true) * absScale || 0\r\n\t\t\t\t},\r\n\t\t\t\tmargin: {\r\n\t\t\t\t\ttop: $.css(elem, 'marginTop', true) * absScale || 0,\r\n\t\t\t\t\tleft: $.css(elem, 'marginLeft', true) * absScale || 0\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Return the element to it's original transform matrix\r\n\t\t * @param {Boolean} [options] If a boolean is passed, animate the reset (default: true). If an options object is passed, simply pass that along to setMatrix.\r\n\t\t * @param {Boolean} [options.silent] Silence the reset event\r\n\t\t */\r\n\t\treset: function(options) {\r\n\t\t\toptions = createResetOptions(options);\r\n\t\t\t// Reset the transform to its original value\r\n\t\t\tvar matrix = this.setMatrix(this._origTransform, options);\r\n\t\t\tif (!options.silent) {\r\n\t\t\t\tthis._trigger('reset', matrix);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Only resets zoom level\r\n\t\t * @param {Boolean|Object} [options] Whether to animate the reset (default: true) or an object of options to pass to zoom()\r\n\t\t */\r\n\t\tresetZoom: function(options) {\r\n\t\t\toptions = createResetOptions(options);\r\n\t\t\tvar origMatrix = this.getMatrix(this._origTransform);\r\n\t\t\toptions.dValue = origMatrix[ 3 ];\r\n\t\t\tthis.zoom(origMatrix[0], options);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Only reset panning\r\n\t\t * @param {Boolean|Object} [options] Whether to animate the reset (default: true) or an object of options to pass to pan()\r\n\t\t */\r\n\t\tresetPan: function(options) {\r\n\t\t\tvar origMatrix = this.getMatrix(this._origTransform);\r\n\t\t\tthis.pan(origMatrix[4], origMatrix[5], createResetOptions(options));\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Sets a transform on the $set\r\n\t\t * For SVG, the style attribute takes precedence\r\n\t\t * and allows us to animate\r\n\t\t * @param {String} transform\r\n\t\t */\r\n\t\tsetTransform: function(transform) {\r\n\t\t\tvar $set = this.$set;\r\n\t\t\tvar i = $set.length;\r\n\t\t\twhile(i--) {\r\n\t\t\t\t$.style($set[i], 'transform', transform);\r\n\r\n\t\t\t\t// Support IE9-11, Edge 13-14+\r\n\t\t\t\t// Set attribute alongside style attribute\r\n\t\t\t\t// since IE and Edge do not respect style settings on SVG\r\n\t\t\t\t// See https://css-tricks.com/transforms-on-svg-elements/\r\n\t\t\t\tif (this.isSVG) {\r\n\t\t\t\t\t$set[i].setAttribute('transform', transform);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Retrieving the transform is different for SVG\r\n\t\t * (unless a style transform is already present)\r\n\t\t * Uses the $set collection for retrieving the transform\r\n\t\t * @param {String} [transform] Pass in an transform value (like 'scale(1.1)')\r\n\t\t * to have it formatted into matrix format for use by Panzoom\r\n\t\t * @returns {String} Returns the current transform value of the element\r\n\t\t */\r\n\t\tgetTransform: function(transform) {\r\n\t\t\tvar $set = this.$set;\r\n\t\t\tvar transformElem = $set[0];\r\n\t\t\tif (transform) {\r\n\t\t\t\tthis.setTransform(transform);\r\n\t\t\t} else {\r\n\r\n\t\t\t\t// IE and Edge still set the transform style properly\r\n\t\t\t\t// They just don't render it on SVG\r\n\t\t\t\t// So we get a correct value here\r\n\t\t\t\ttransform = $.style(transformElem, 'transform');\r\n\r\n\t\t\t\tif (this.isSVG && (!transform || transform === 'none')) {\r\n\t\t\t\t\ttransform = $.attr(transformElem, 'transform') || 'none';\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Convert any transforms set by the user to matrix format\r\n\t\t\t// by setting to computed\r\n\t\t\tif (transform !== 'none' && !rmatrix.test(transform)) {\r\n\r\n\t\t\t\t// Get computed and set for next time\r\n\t\t\t\tthis.setTransform(transform = $.css(transformElem, 'transform'));\r\n\t\t\t}\r\n\r\n\t\t\treturn transform || 'none';\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Retrieve the current transform matrix for $elem (or turn a transform into it's array values)\r\n\t\t * @param {String} [transform] matrix-formatted transform value\r\n\t\t * @returns {Array} Returns the current transform matrix split up into it's parts, or a default matrix\r\n\t\t */\r\n\t\tgetMatrix: function(transform) {\r\n\t\t\tvar matrix = rmatrix.exec(transform || this.getTransform());\r\n\t\t\tif (matrix) {\r\n\t\t\t\tmatrix.shift();\r\n\t\t\t}\r\n\t\t\treturn matrix || [ 1, 0, 0, 1, 0, 0 ];\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Given a matrix object, quickly set the current matrix of the element\r\n\t\t * @param {Array|String} matrix\r\n\t\t * @param {Object} [options]\r\n\t\t * @param {Boolean|String} [options.animate] Whether to animate the transform change, or 'skip' indicating that it is unnecessary to set\r\n\t\t * @param {Boolean} [options.contain] Override the global contain option\r\n\t\t * @param {Boolean} [options.range] If true, $zoomRange's value will be updated.\r\n\t\t * @param {Boolean} [options.silent] If true, the change event will not be triggered\r\n\t\t * @returns {Array} Returns the newly-set matrix\r\n\t\t */\r\n\t\tsetMatrix: function(matrix, options) {\r\n\t\t\tif (this.disabled) { return; }\r\n\t\t\tif (!options) { options = {}; }\r\n\t\t\t// Convert to array\r\n\t\t\tif (typeof matrix === 'string') {\r\n\t\t\t\tmatrix = this.getMatrix(matrix);\r\n\t\t\t}\r\n\t\t\tvar scale = +matrix[0];\r\n\t\t\tvar contain = typeof options.contain !== 'undefined' ? options.contain : this.options.contain;\r\n\r\n\t\t\t// Apply containment\r\n\t\t\tif (contain) {\r\n\t\t\t\tvar dims = options.dims;\r\n\t\t\t\tif (!dims) {\r\n\t\t\t\t\tthis.resetDimensions();\r\n\t\t\t\t\tdims = this.dimensions;\r\n\t\t\t\t}\r\n\t\t\t\tvar spaceWLeft, spaceWRight, scaleDiff;\r\n\t\t\t\tvar container = this.container;\r\n\t\t\t\tvar width = dims.width;\r\n\t\t\t\tvar height = dims.height;\r\n\t\t\t\tvar conWidth = container.width;\r\n\t\t\t\tvar conHeight = container.height;\r\n\t\t\t\tvar zoomAspectW = conWidth / width;\r\n\t\t\t\tvar zoomAspectH = conHeight / height;\r\n\r\n\t\t\t\t// If the element is not naturally centered,\r\n\t\t\t\t// assume full space right\r\n\t\t\t\tif (this.$parent.css('textAlign') !== 'center' || $.css(this.elem, 'display') !== 'inline') {\r\n\t\t\t\t\t// offsetWidth gets us the width without the transform\r\n\t\t\t\t\tscaleDiff = (width - this.elem.offsetWidth) / 2;\r\n\t\t\t\t\tspaceWLeft = scaleDiff - dims.border.left;\r\n\t\t\t\t\tspaceWRight = width - conWidth - scaleDiff + dims.border.right;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tspaceWLeft = spaceWRight = ((width - conWidth) / 2);\r\n\t\t\t\t}\r\n\t\t\t\tvar spaceHTop = ((height - conHeight) / 2) + dims.border.top;\r\n\t\t\t\tvar spaceHBottom = ((height - conHeight) / 2) - dims.border.top - dims.border.bottom;\r\n\r\n\t\t\t\tif (contain === 'invert' || contain === 'automatic' && zoomAspectW < 1.01) {\r\n\t\t\t\t\tmatrix[4] = Math.max(Math.min(matrix[4], spaceWLeft - dims.border.left), -spaceWRight);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tmatrix[4] = Math.min(Math.max(matrix[4], spaceWLeft), -spaceWRight);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (contain === 'invert' || (contain === 'automatic' && zoomAspectH < 1.01)) {\r\n\t\t\t\t\tmatrix[5] = Math.max(Math.min(matrix[5], spaceHTop - dims.border.top), -spaceHBottom);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tmatrix[5] = Math.min(Math.max(matrix[5], spaceHTop), -spaceHBottom);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Animate\r\n\t\t\tif (options.animate !== 'skip') {\r\n\t\t\t\t// Set transition\r\n\t\t\t\tthis.transition(!options.animate);\r\n\t\t\t}\r\n\r\n\t\t\t// Update range element\r\n\t\t\tif (options.range) {\r\n\t\t\t\tthis.$zoomRange.val(scale);\r\n\t\t\t}\r\n\r\n\t\t\t// Set the matrix on this.$set\r\n\t\t\tif (this.options.disableXAxis || this.options.disableYAxis) {\r\n\t\t\t\tvar originalMatrix = this.getMatrix();\r\n\t\t\t\tif (this.options.disableXAxis) {\r\n\t\t\t\t\tmatrix[4] = originalMatrix[4];\r\n\t\t\t\t}\r\n\t\t\t\tif (this.options.disableYAxis) {\r\n\t\t\t\t\tmatrix[5] = originalMatrix[5];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis.setTransform('matrix(' + matrix.join(',') + ')');\r\n\r\n\t\t\tthis.scale = scale;\r\n\r\n\t\t\t// Disable/enable panning if zooming is at minimum and panOnlyWhenZoomed is true\r\n\t\t\tthis._checkPanWhenZoomed(scale);\r\n\r\n\t\t\tif (!options.silent) {\r\n\t\t\t\tthis._trigger('change', matrix);\r\n\t\t\t}\r\n\r\n\t\t\treturn matrix;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @returns {Boolean} Returns whether the panzoom element is currently being dragged\r\n\t\t */\r\n\t\tisPanning: function() {\r\n\t\t\treturn this.panning;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Apply the current transition to the element, if allowed\r\n\t\t * @param {Boolean} [off] Indicates that the transition should be turned off\r\n\t\t */\r\n\t\ttransition: function(off) {\r\n\t\t\tif (!this._transition) { return; }\r\n\t\t\tvar transition = off || !this.options.transition ? 'none' : this._transition;\r\n\t\t\tvar $set = this.$set;\r\n\t\t\tvar i = $set.length;\r\n\t\t\twhile(i--) {\r\n\t\t\t\t// Avoid reflows when zooming\r\n\t\t\t\tif ($.style($set[i], 'transition') !== transition) {\r\n\t\t\t\t\t$.style($set[i], 'transition', transition);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Pan the element to the specified translation X and Y\r\n\t\t * Note: this is not the same as setting jQuery#offset() or jQuery#position()\r\n\t\t * @param {Number} x\r\n\t\t * @param {Number} y\r\n\t\t * @param {Object} [options] These options are passed along to setMatrix\r\n\t\t * @param {Array} [options.matrix] The matrix being manipulated (if already known so it doesn't have to be retrieved again)\r\n\t\t * @param {Boolean} [options.silent] Silence the pan event. Note that this will also silence the setMatrix change event.\r\n\t\t * @param {Boolean} [options.relative] Make the x and y values relative to the existing matrix\r\n\t\t */\r\n\t\tpan: function(x, y, options) {\r\n\t\t\tif (this.options.disablePan) { return; }\r\n\t\t\tif (!options) { options = {}; }\r\n\t\t\tvar matrix = options.matrix;\r\n\t\t\tif (!matrix) {\r\n\t\t\t\tmatrix = this.getMatrix();\r\n\t\t\t}\r\n\t\t\t// Cast existing matrix values to numbers\r\n\t\t\tif (options.relative) {\r\n\t\t\t\tx += +matrix[4];\r\n\t\t\t\ty += +matrix[5];\r\n\t\t\t}\r\n\t\t\tmatrix[4] = x;\r\n\t\t\tmatrix[5] = y;\r\n\t\t\tthis.setMatrix(matrix, options);\r\n\t\t\tif (!options.silent) {\r\n\t\t\t\tthis._trigger('pan', matrix[4], matrix[5]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Zoom in/out the element using the scale properties of a transform matrix\r\n\t\t * @param {Number|Boolean} [scale] The scale to which to zoom or a boolean indicating to transition a zoom out\r\n\t\t * @param {Object} [opts] All global options can be overwritten by this options object. For example, override the default increment.\r\n\t\t * @param {Boolean} [opts.noSetRange] Specify that the method should not set the $zoomRange value (as is the case when $zoomRange is calling zoom on change)\r\n\t\t * @param {jQuery.Event|Object} [opts.focal] A focal point on the panzoom element on which to zoom.\r\n\t\t * If an object, set the clientX and clientY properties to the position relative to the parent\r\n\t\t * @param {Boolean} [opts.animate] Whether to animate the zoom (defaults to true if scale is not a number, false otherwise)\r\n\t\t * @param {Boolean} [opts.silent] Silence the zoom event\r\n\t\t * @param {Array} [opts.matrix] Optionally pass the current matrix so it doesn't need to be retrieved\r\n\t\t * @param {Number} [opts.dValue] Think of a transform matrix as four values a, b, c, d\r\n\t\t * where a/d are the horizontal/vertical scale values and b/c are the skew values\r\n\t\t * (5 and 6 of matrix array are the tx/ty transform values).\r\n\t\t * Normally, the scale is set to both the a and d values of the matrix.\r\n\t\t * This option allows you to specify a different d value for the zoom.\r\n\t\t * For instance, to flip vertically, you could set -1 as the dValue.\r\n\t\t */\r\n\t\tzoom: function(scale, opts) {\r\n\t\t\t// Shuffle arguments\r\n\t\t\tif (typeof scale === 'object') {\r\n\t\t\t\topts = scale;\r\n\t\t\t\tscale = null;\r\n\t\t\t} else if (!opts) {\r\n\t\t\t\topts = {};\r\n\t\t\t}\r\n\t\t\tvar options = $.extend({}, this.options, opts);\r\n\t\t\t// Check if disabled\r\n\t\t\tif (options.disableZoom) { return; }\r\n\t\t\tvar animate = false;\r\n\t\t\tvar matrix = options.matrix || this.getMatrix();\r\n\t\t\tvar startScale = +matrix[0];\r\n\r\n\t\t\t// Calculate zoom based on increment\r\n\t\t\tif (typeof scale !== 'number') {\r\n\t\t\t\t// Just use a number a little greater than 1\r\n\t\t\t\t// Below 1 can use normal increments\r\n\t\t\t\tif (options.exponential && startScale - options.increment >= 1) {\r\n\t\t\t\t\tscale = Math[scale ? 'sqrt' : 'pow'](startScale, 2);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tscale = startScale + (options.increment * (scale ? -1 : 1));\r\n\t\t\t\t}\r\n\t\t\t\tanimate = true;\r\n\t\t\t}\r\n\r\n\t\t\t// Constrain scale\r\n\t\t\tif (scale > options.maxScale) {\r\n\t\t\t\tscale = options.maxScale;\r\n\t\t\t} else if (scale < options.minScale) {\r\n\t\t\t\tscale = options.minScale;\r\n\t\t\t}\r\n\r\n\t\t\t// Calculate focal point based on scale\r\n\t\t\tvar focal = options.focal;\r\n\t\t\tif (focal && !options.disablePan) {\r\n\t\t\t\t// Adapted from code by Florian Günther\r\n\t\t\t\t// https://github.com/florianguenther/zui53\r\n\t\t\t\tthis.resetDimensions();\r\n\t\t\t\tvar dims = options.dims = this.dimensions;\r\n\t\t\t\tvar clientX = focal.clientX;\r\n\t\t\t\tvar clientY = focal.clientY;\r\n\r\n\t\t\t\t// Adjust the focal point for transform-origin 50% 50%\r\n\t\t\t\t// SVG elements have a transform origin of 0 0\r\n\t\t\t\tif (!this.isSVG) {\r\n\t\t\t\t\tclientX -= (dims.width / startScale) / 2;\r\n\t\t\t\t\tclientY -= (dims.height / startScale) / 2;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar clientV = new Vector(clientX, clientY, 1);\r\n\t\t\t\tvar surfaceM = new Matrix(matrix);\r\n\t\t\t\t// Supply an offset manually if necessary\r\n\t\t\t\tvar o = this.parentOffset || this.$parent.offset();\r\n\t\t\t\tvar offsetM = new Matrix(1, 0, o.left - this.$doc.scrollLeft(), 0, 1, o.top - this.$doc.scrollTop());\r\n\t\t\t\tvar surfaceV = surfaceM.inverse().x(offsetM.inverse().x(clientV));\r\n\t\t\t\tvar scaleBy = scale / matrix[0];\r\n\t\t\t\tsurfaceM = surfaceM.x(new Matrix([scaleBy, 0, 0, scaleBy, 0, 0]));\r\n\t\t\t\tclientV = offsetM.x(surfaceM.x(surfaceV));\r\n\t\t\t\tmatrix[4] = +matrix[4] + (clientX - clientV.e(0));\r\n\t\t\t\tmatrix[5] = +matrix[5] + (clientY - clientV.e(1));\r\n\t\t\t}\r\n\r\n\t\t\t// Set the scale\r\n\t\t\tmatrix[0] = scale;\r\n\t\t\tmatrix[3] = typeof options.dValue === 'number' ? options.dValue : scale;\r\n\r\n\t\t\t// Calling zoom may still pan the element\r\n\t\t\tthis.setMatrix(matrix, {\r\n\t\t\t\tanimate: typeof options.animate !== 'undefined' ? options.animate : animate,\r\n\t\t\t\t// Set the zoomRange value\r\n\t\t\t\trange: !options.noSetRange\r\n\t\t\t});\r\n\r\n\t\t\t// Trigger zoom event\r\n\t\t\tif (!options.silent) {\r\n\t\t\t\tthis._trigger('zoom', matrix[0], options);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Get/set option on an existing instance\r\n\t\t * @returns {Array|undefined} If getting, returns an array of all values\r\n\t\t * on each instance for a given key. If setting, continue chaining by returning undefined.\r\n\t\t */\r\n\t\toption: function(key, value) {\r\n\t\t\tvar options;\r\n\t\t\tif (!key) {\r\n\t\t\t\t// Avoids returning direct reference\r\n\t\t\t\treturn $.extend({}, this.options);\r\n\t\t\t}\r\n\r\n\t\t\tif (typeof key === 'string') {\r\n\t\t\t\tif (arguments.length === 1) {\r\n\t\t\t\t\treturn this.options[ key ] !== undefined ?\r\n\t\t\t\t\t\tthis.options[ key ] :\r\n\t\t\t\t\t\tnull;\r\n\t\t\t\t}\r\n\t\t\t\toptions = {};\r\n\t\t\t\toptions[ key ] = value;\r\n\t\t\t} else {\r\n\t\t\t\toptions = key;\r\n\t\t\t}\r\n\r\n\t\t\tthis._setOptions(options);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Internally sets options\r\n\t\t * @param {Object} options - An object literal of options to set\r\n\t\t * @private\r\n\t\t */\r\n\t\t_setOptions: function(options) {\r\n\t\t\t$.each(options, $.proxy(function(key, value) {\r\n\t\t\t\tswitch(key) {\r\n\t\t\t\t\tcase 'disablePan':\r\n\t\t\t\t\t\tthis._resetStyle();\r\n\t\t\t\t\t\t/* falls through */\r\n\t\t\t\t\tcase '$zoomIn':\r\n\t\t\t\t\tcase '$zoomOut':\r\n\t\t\t\t\tcase '$zoomRange':\r\n\t\t\t\t\tcase '$reset':\r\n\t\t\t\t\tcase 'disableZoom':\r\n\t\t\t\t\tcase 'onStart':\r\n\t\t\t\t\tcase 'onChange':\r\n\t\t\t\t\tcase 'onZoom':\r\n\t\t\t\t\tcase 'onPan':\r\n\t\t\t\t\tcase 'onEnd':\r\n\t\t\t\t\tcase 'onReset':\r\n\t\t\t\t\tcase 'eventNamespace':\r\n\t\t\t\t\t\tthis._unbind();\r\n\t\t\t\t}\r\n\t\t\t\tthis.options[ key ] = value;\r\n\t\t\t\tswitch(key) {\r\n\t\t\t\t\tcase 'disablePan':\r\n\t\t\t\t\t\tthis._initStyle();\r\n\t\t\t\t\t\t/* falls through */\r\n\t\t\t\t\tcase '$zoomIn':\r\n\t\t\t\t\tcase '$zoomOut':\r\n\t\t\t\t\tcase '$zoomRange':\r\n\t\t\t\t\tcase '$reset':\r\n\t\t\t\t\t\t// Set these on the instance\r\n\t\t\t\t\t\tthis[ key ] = value;\r\n\t\t\t\t\t\t/* falls through */\r\n\t\t\t\t\tcase 'disableZoom':\r\n\t\t\t\t\tcase 'onStart':\r\n\t\t\t\t\tcase 'onChange':\r\n\t\t\t\t\tcase 'onZoom':\r\n\t\t\t\t\tcase 'onPan':\r\n\t\t\t\t\tcase 'onEnd':\r\n\t\t\t\t\tcase 'onReset':\r\n\t\t\t\t\tcase 'eventNamespace':\r\n\t\t\t\t\t\tthis._bind();\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 'cursor':\r\n\t\t\t\t\t\t$.style(this.elem, 'cursor', value);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 'minScale':\r\n\t\t\t\t\t\tthis.$zoomRange.attr('min', value);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 'maxScale':\r\n\t\t\t\t\t\tthis.$zoomRange.attr('max', value);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 'rangeStep':\r\n\t\t\t\t\t\tthis.$zoomRange.attr('step', value);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 'startTransform':\r\n\t\t\t\t\t\tthis._buildTransform();\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 'duration':\r\n\t\t\t\t\tcase 'easing':\r\n\t\t\t\t\t\tthis._buildTransition();\r\n\t\t\t\t\t\t/* falls through */\r\n\t\t\t\t\tcase 'transition':\r\n\t\t\t\t\t\tthis.transition();\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 'panOnlyWhenZoomed':\r\n\t\t\t\t\t\tthis._checkPanWhenZoomed();\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase '$set':\r\n\t\t\t\t\t\tif (value instanceof $ && value.length) {\r\n\t\t\t\t\t\t\tthis.$set = value;\r\n\t\t\t\t\t\t\t// Reset styles\r\n\t\t\t\t\t\t\tthis._initStyle();\r\n\t\t\t\t\t\t\tthis._buildTransform();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}, this));\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Disable/enable panning depending on whether the current scale\r\n\t\t * matches the minimum\r\n\t\t * @param {Number} [scale]\r\n\t\t * @private\r\n\t\t */\r\n\t\t_checkPanWhenZoomed: function(scale) {\r\n\t\t\tvar options = this.options;\r\n\t\t\tif (options.panOnlyWhenZoomed) {\r\n\t\t\t\tif (!scale) {\r\n\t\t\t\t\tscale = this.getMatrix()[0];\r\n\t\t\t\t}\r\n\t\t\t\tvar toDisable = scale <= options.minScale;\r\n\t\t\t\tif (options.disablePan !== toDisable) {\r\n\t\t\t\t\tthis.option('disablePan', toDisable);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Initialize base styles for the element and its parent\r\n\t\t * @private\r\n\t\t */\r\n\t\t_initStyle: function() {\r\n\t\t\tvar styles = {\r\n\t\t\t\t// Set the same default whether SVG or HTML\r\n\t\t\t\t// transform-origin cannot be changed to 50% 50% in IE9-11 or Edge 13-14+\r\n\t\t\t\t'transform-origin': this.isSVG ? '0 0' : '50% 50%'\r\n\t\t\t};\r\n\t\t\t// Set elem styles\r\n\t\t\tif (!this.options.disablePan) {\r\n\t\t\t\tstyles.cursor = this.options.cursor;\r\n\t\t\t}\r\n\t\t\tthis.$set.css(styles);\r\n\r\n\t\t\t// Set parent to relative if set to static\r\n\t\t\tvar $parent = this.$parent;\r\n\t\t\t// No need to add styles to the body\r\n\t\t\tif ($parent.length && !$.nodeName(this.parent, 'body')) {\r\n\t\t\t\tstyles = {\r\n\t\t\t\t\toverflow: 'hidden'\r\n\t\t\t\t};\r\n\t\t\t\tif ($parent.css('position') === 'static') {\r\n\t\t\t\t\tstyles.position = 'relative';\r\n\t\t\t\t}\r\n\t\t\t\t$parent.css(styles);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Undo any styles attached in this plugin\r\n\t\t * @private\r\n\t\t */\r\n\t\t_resetStyle: function() {\r\n\t\t\tthis.$elem.css({\r\n\t\t\t\t'cursor': '',\r\n\t\t\t\t'transition': ''\r\n\t\t\t});\r\n\t\t\tthis.$parent.css({\r\n\t\t\t\t'overflow': '',\r\n\t\t\t\t'position': ''\r\n\t\t\t});\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Binds all necessary events\r\n\t\t * @private\r\n\t\t */\r\n\t\t_bind: function() {\r\n\t\t\tvar self = this;\r\n\t\t\tvar options = this.options;\r\n\t\t\tvar ns = options.eventNamespace;\r\n\t\t\tvar str_down = 'mousedown' + ns + ' pointerdown' + ns + ' MSPointerDown' + ns;\r\n\t\t\tvar str_start = 'touchstart' + ns + ' ' + str_down;\r\n\t\t\tvar str_click = 'touchend' + ns + ' click' + ns + ' pointerup' + ns + ' MSPointerUp' + ns;\r\n\t\t\tvar events = {};\r\n\t\t\tvar $reset = this.$reset;\r\n\t\t\tvar $zoomRange = this.$zoomRange;\r\n\r\n\t\t\t// Bind panzoom events from options\r\n\t\t\t$.each([ 'Start', 'Change', 'Zoom', 'Pan', 'End', 'Reset' ], function() {\r\n\t\t\t\tvar m = options[ 'on' + this ];\r\n\t\t\t\tif ($.isFunction(m)) {\r\n\t\t\t\t\tevents[ 'panzoom' + this.toLowerCase() + ns ] = m;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t// Bind $elem drag and click/touchdown events\r\n\t\t\t// Bind touchstart if either panning or zooming is enabled\r\n\t\t\tif (!options.disablePan || !options.disableZoom) {\r\n\t\t\t\tevents[ str_start ] = function(e) {\r\n\t\t\t\t\tvar touches;\r\n\t\t\t\t\tif (e.type === 'touchstart' ?\r\n\t\t\t\t\t\t// Touch\r\n\t\t\t\t\t\t(touches = e.touches || e.originalEvent.touches) &&\r\n\t\t\t\t\t\t\t((touches.length === 1 && !options.disablePan) || touches.length === 2) :\r\n\t\t\t\t\t\t// Mouse/Pointer: Ignore unexpected click types\r\n\t\t\t\t\t\t// Support: IE10 only\r\n\t\t\t\t\t\t// IE10 does not support e.button for MSPointerDown, but does have e.which\r\n\t\t\t\t\t\t!options.disablePan && (e.which || e.originalEvent.which) === options.which) {\r\n\r\n\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\t\tself._startMove(e, touches);\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t\t// Prevent the contextmenu event\r\n\t\t\t\t// if we're binding to right-click\r\n\t\t\t\tif (options.which === 3) {\r\n\t\t\t\t\tevents.contextmenu = false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis.$elem.on(events);\r\n\r\n\t\t\t// Bind reset\r\n\t\t\tif ($reset.length) {\r\n\t\t\t\t$reset.on(str_click, function(e) {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\tself.reset();\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\t// Set default attributes for the range input\r\n\t\t\tif ($zoomRange.length) {\r\n\t\t\t\t$zoomRange.attr({\r\n\t\t\t\t\t// Only set the range step if explicit or\r\n\t\t\t\t\t// set the default if there is no attribute present\r\n\t\t\t\t\tstep: options.rangeStep === Panzoom.defaults.rangeStep &&\r\n\t\t\t\t\t\t$zoomRange.attr('step') ||\r\n\t\t\t\t\t\toptions.rangeStep,\r\n\t\t\t\t\tmin: options.minScale,\r\n\t\t\t\t\tmax: options.maxScale\r\n\t\t\t\t}).prop({\r\n\t\t\t\t\tvalue: this.getMatrix()[0]\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\t// No bindings if zooming is disabled\r\n\t\t\tif (options.disableZoom) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvar $zoomIn = this.$zoomIn;\r\n\t\t\tvar $zoomOut = this.$zoomOut;\r\n\r\n\t\t\t// Bind zoom in/out\r\n\t\t\t// Don't bind one without the other\r\n\t\t\tif ($zoomIn.length && $zoomOut.length) {\r\n\t\t\t\t// preventDefault cancels future mouse events on touch events\r\n\t\t\t\t$zoomIn.on(str_click, function(e) {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\tself.zoom();\r\n\t\t\t\t});\r\n\t\t\t\t$zoomOut.on(str_click, function(e) {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\tself.zoom(true);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tif ($zoomRange.length) {\r\n\t\t\t\tevents = {};\r\n\t\t\t\t// Cannot prevent default action here\r\n\t\t\t\tevents[ str_down ] = function() {\r\n\t\t\t\t\tself.transition(true);\r\n\t\t\t\t};\r\n\t\t\t\t// Zoom on input events if available and change events\r\n\t\t\t\t// See https://github.com/timmywil/jquery.panzoom/issues/90\r\n\t\t\t\tevents[ (supportsInputEvent ? 'input' : 'change') + ns ] = function() {\r\n\t\t\t\t\tself.zoom(+this.value, { noSetRange: true });\r\n\t\t\t\t};\r\n\t\t\t\t$zoomRange.on(events);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Unbind all events\r\n\t\t * @private\r\n\t\t */\r\n\t\t_unbind: function() {\r\n\t\t\tthis.$elem\r\n\t\t\t\t.add(this.$zoomIn)\r\n\t\t\t\t.add(this.$zoomOut)\r\n\t\t\t\t.add(this.$reset)\r\n\t\t\t\t.off(this.options.eventNamespace);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Builds the original transform value\r\n\t\t * @private\r\n\t\t */\r\n\t\t_buildTransform: function() {\r\n\t\t\t// Save the original transform\r\n\t\t\t// Retrieving this also adds the correct prefixed style name\r\n\t\t\t// to jQuery's internal $.cssProps\r\n\t\t\treturn this._origTransform = this.getTransform(this.options.startTransform);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Set transition property for later use when zooming\r\n\t\t * @private\r\n\t\t */\r\n\t\t_buildTransition: function() {\r\n\t\t\tif (this._transform) {\r\n\t\t\t\tvar options = this.options;\r\n\t\t\t\tthis._transition = this._transform + ' ' + options.duration + 'ms ' + options.easing;\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Calculates the distance between two touch points\r\n\t\t * Remember pythagorean?\r\n\t\t * @param {Array} touches\r\n\t\t * @returns {Number} Returns the distance\r\n\t\t * @private\r\n\t\t */\r\n\t\t_getDistance: function(touches) {\r\n\t\t\tvar touch1 = touches[0];\r\n\t\t\tvar touch2 = touches[1];\r\n\t\t\treturn Math.sqrt(Math.pow(Math.abs(touch2.clientX - touch1.clientX), 2) + Math.pow(Math.abs(touch2.clientY - touch1.clientY), 2));\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Constructs an approximated point in the middle of two touch points\r\n\t\t * @returns {Object} Returns an object containing pageX and pageY\r\n\t\t * @private\r\n\t\t */\r\n\t\t_getMiddle: function(touches) {\r\n\t\t\tvar touch1 = touches[0];\r\n\t\t\tvar touch2 = touches[1];\r\n\t\t\treturn {\r\n\t\t\t\tclientX: ((touch2.clientX - touch1.clientX) / 2) + touch1.clientX,\r\n\t\t\t\tclientY: ((touch2.clientY - touch1.clientY) / 2) + touch1.clientY\r\n\t\t\t};\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Trigger a panzoom event on our element\r\n\t\t * The event is passed the Panzoom instance\r\n\t\t * @param {String|jQuery.Event} event\r\n\t\t * @param {Mixed} arg1[, arg2, arg3, ...] Arguments to append to the trigger\r\n\t\t * @private\r\n\t\t */\r\n\t\t_trigger: function (event) {\r\n\t\t\tif (typeof event === 'string') {\r\n\t\t\t\tevent = 'panzoom' + event;\r\n\t\t\t}\r\n\t\t\tthis.$elem.triggerHandler(event, [this].concat(slice.call(arguments, 1)));\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Starts the pan\r\n\t\t * This is bound to mouse/touchmove on the element\r\n\t\t * @param {jQuery.Event} event An event with pageX, pageY, and possibly the touches list\r\n\t\t * @param {TouchList} [touches] The touches list if present\r\n\t\t * @private\r\n\t\t */\r\n\t\t_startMove: function(event, touches) {\r\n\t\t\tif (this.panning) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tvar moveEvent, endEvent,\r\n\t\t\t\tstartDistance, startScale, startMiddle,\r\n\t\t\t\tstartPageX, startPageY, touch;\r\n\t\t\tvar self = this;\r\n\t\t\tvar options = this.options;\r\n\t\t\tvar ns = options.eventNamespace;\r\n\t\t\tvar matrix = this.getMatrix();\r\n\t\t\tvar original = matrix.slice(0);\r\n\t\t\tvar origPageX = +original[4];\r\n\t\t\tvar origPageY = +original[5];\r\n\t\t\tvar panOptions = { matrix: matrix, animate: 'skip' };\r\n\t\t\tvar type = event.type;\r\n\r\n\t\t\t// Use proper events\r\n\t\t\tif (type === 'pointerdown') {\r\n\t\t\t\tmoveEvent = 'pointermove';\r\n\t\t\t\tendEvent = 'pointerup';\r\n\t\t\t} else if (type === 'touchstart') {\r\n\t\t\t\tmoveEvent = 'touchmove';\r\n\t\t\t\tendEvent = 'touchend';\r\n\t\t\t} else if (type === 'MSPointerDown') {\r\n\t\t\t\tmoveEvent = 'MSPointerMove';\r\n\t\t\t\tendEvent = 'MSPointerUp';\r\n\t\t\t} else {\r\n\t\t\t\tmoveEvent = 'mousemove';\r\n\t\t\t\tendEvent = 'mouseup';\r\n\t\t\t}\r\n\r\n\t\t\t// Add namespace\r\n\t\t\tmoveEvent += ns;\r\n\t\t\tendEvent += ns;\r\n\r\n\t\t\t// Remove any transitions happening\r\n\t\t\tthis.transition(true);\r\n\r\n\t\t\t// Indicate that we are currently panning\r\n\t\t\tthis.panning = true;\r\n\r\n\t\t\t// Trigger start event\r\n\t\t\tthis._trigger('start', event, touches);\r\n\r\n\t\t\tvar setStart = function(event, touches) {\r\n\t\t\t\tif (touches) {\r\n\t\t\t\t\tif (touches.length === 2) {\r\n\t\t\t\t\t\tif (startDistance != null) {\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tstartDistance = self._getDistance(touches);\r\n\t\t\t\t\t\tstartScale = +matrix[0];\r\n\t\t\t\t\t\tstartMiddle = self._getMiddle(touches);\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (startPageX != null) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif ((touch = touches[0])) {\r\n\t\t\t\t\t\tstartPageX = touch.pageX;\r\n\t\t\t\t\t\tstartPageY = touch.pageY;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (startPageX != null) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tstartPageX = event.pageX;\r\n\t\t\t\tstartPageY = event.pageY;\r\n\t\t\t};\r\n\r\n\t\t\tsetStart(event, touches);\r\n\r\n\t\t\tvar move = function(e) {\r\n\t\t\t\tvar coords;\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\ttouches = e.touches || e.originalEvent.touches;\r\n\t\t\t\tsetStart(e, touches);\r\n\r\n\t\t\t\tif (touches) {\r\n\t\t\t\t\tif (touches.length === 2) {\r\n\r\n\t\t\t\t\t\t// Calculate move on middle point\r\n\t\t\t\t\t\tvar middle = self._getMiddle(touches);\r\n\t\t\t\t\t\tvar diff = self._getDistance(touches) - startDistance;\r\n\r\n\t\t\t\t\t\t// Set zoom\r\n\t\t\t\t\t\tself.zoom(diff * (options.increment / 100) + startScale, {\r\n\t\t\t\t\t\t\tfocal: middle,\r\n\t\t\t\t\t\t\tmatrix: matrix,\r\n\t\t\t\t\t\t\tanimate: 'skip'\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t// Set pan\r\n\t\t\t\t\t\tself.pan(\r\n\t\t\t\t\t\t\t+matrix[4] + middle.clientX - startMiddle.clientX,\r\n\t\t\t\t\t\t\t+matrix[5] + middle.clientY - startMiddle.clientY,\r\n\t\t\t\t\t\t\tpanOptions\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tstartMiddle = middle;\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcoords = touches[0] || { pageX: 0, pageY: 0 };\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!coords) {\r\n\t\t\t\t\tcoords = e;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tself.pan(\r\n\t\t\t\t\torigPageX + coords.pageX - startPageX,\r\n\t\t\t\t\torigPageY + coords.pageY - startPageY,\r\n\t\t\t\t\tpanOptions\r\n\t\t\t\t);\r\n\t\t\t};\r\n\r\n\t\t\t// Bind the handlers\r\n\t\t\t$(document)\r\n\t\t\t\t.off(ns)\r\n\t\t\t\t.on(moveEvent, move)\r\n\t\t\t\t.on(endEvent, function(e) {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t// Unbind all document events\r\n\t\t\t\t\t$(this).off(ns);\r\n\t\t\t\t\tself.panning = false;\r\n\t\t\t\t\t// Trigger our end event\r\n\t\t\t\t\t// Simply set the type to \"panzoomend\" to pass through all end properties\r\n\t\t\t\t\t// jQuery's `not` is used here to compare Array equality\r\n\t\t\t\t\te.type = 'panzoomend';\r\n\t\t\t\t\tself._trigger(e, matrix, !matrixEquals(matrix, original));\r\n\t\t\t\t});\r\n\t\t}\r\n\t};\r\n\r\n\t// Add Panzoom as a static property\r\n\t$.Panzoom = Panzoom;\r\n\r\n\t/**\r\n\t * Extend jQuery\r\n\t * @param {Object|String} options - The name of a method to call on the prototype\r\n\t * or an object literal of options\r\n\t * @returns {jQuery|Mixed} jQuery instance for regular chaining or the return value(s) of a panzoom method call\r\n\t */\r\n\t$.fn.panzoom = function(options) {\r\n\t\tvar instance, args, m, ret;\r\n\r\n\t\t// Call methods widget-style\r\n\t\tif (typeof options === 'string') {\r\n\t\t\tret = [];\r\n\t\t\targs = slice.call(arguments, 1);\r\n\t\t\tthis.each(function() {\r\n\t\t\t\tinstance = $.data(this, datakey);\r\n\r\n\t\t\t\tif (!instance) {\r\n\t\t\t\t\tret.push(undefined);\r\n\r\n\t\t\t\t// Ignore methods beginning with `_`\r\n\t\t\t\t} else if (options.charAt(0) !== '_' &&\r\n\t\t\t\t\ttypeof (m = instance[ options ]) === 'function' &&\r\n\t\t\t\t\t// If nothing is returned, do not add to return values\r\n\t\t\t\t\t(m = m.apply(instance, args)) !== undefined) {\r\n\r\n\t\t\t\t\tret.push(m);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t// Return an array of values for the jQuery instances\r\n\t\t\t// Or the value itself if there is only one\r\n\t\t\t// Or keep chaining\r\n\t\t\treturn ret.length ?\r\n\t\t\t\t(ret.length === 1 ? ret[0] : ret) :\r\n\t\t\t\tthis;\r\n\t\t}\r\n\r\n\t\treturn this.each(function() { new Panzoom(this, options); });\r\n\t};\r\n\r\n\treturn Panzoom;\r\n}));","/*\r\n Sticky-kit v1.1.2 | WTFPL | Leaf Corcoran 2015 | http://leafo.net\r\n*/\r\n(function(){var b,f;b=this.jQuery||window.jQuery;f=b(window);b.fn.stick_in_parent=function(d){var A,w,J,n,B,K,p,q,k,E,t;null==d&&(d={});t=d.sticky_class;B=d.inner_scrolling;E=d.recalc_every;k=d.parent;q=d.offset_top;p=d.spacer;w=d.bottoming;null==q&&(q=0);null==k&&(k=void 0);null==B&&(B=!0);null==t&&(t=\"is_stuck\");A=b(document);null==w&&(w=!0);J=function(a,d,n,C,F,u,r,G){var v,H,m,D,I,c,g,x,y,z,h,l;if(!a.data(\"sticky_kit\")){a.data(\"sticky_kit\",!0);I=A.height();g=a.parent();null!=k&&(g=g.closest(k));\r\nif(!g.length)throw\"failed to find stick parent\";v=m=!1;(h=null!=p?p&&a.closest(p):b(\"
    \"))&&h.css(\"position\",a.css(\"position\"));x=function(){var c,f,e;if(!G&&(I=A.height(),c=parseInt(g.css(\"border-top-width\"),10),f=parseInt(g.css(\"padding-top\"),10),d=parseInt(g.css(\"padding-bottom\"),10),n=g.offset().top+c+f,C=g.height(),m&&(v=m=!1,null==p&&(a.insertAfter(h),h.detach()),a.css({position:\"\",top:\"\",width:\"\",bottom:\"\"}).removeClass(t),e=!0),F=a.offset().top-(parseInt(a.css(\"margin-top\"),10)||0)-q,\r\nu=a.outerHeight(!0),r=a.css(\"float\"),h&&h.css({width:a.outerWidth(!0),height:u,display:a.css(\"display\"),\"vertical-align\":a.css(\"vertical-align\"),\"float\":r}),e))return l()};x();if(u!==C)return D=void 0,c=q,z=E,l=function(){var b,l,e,k;if(!G&&(e=!1,null!=z&&(--z,0>=z&&(z=E,x(),e=!0)),e||A.height()===I||x(),e=f.scrollTop(),null!=D&&(l=e-D),D=e,m?(w&&(k=e+u+c>C+n,v&&!k&&(v=!1,a.css({position:\"fixed\",bottom:\"\",top:c}).trigger(\"sticky_kit:unbottom\"))),eb&&!v&&(c-=l,c=Math.max(b-u,c),c=Math.min(q,c),m&&a.css({top:c+\"px\"})))):e>F&&(m=!0,b={position:\"fixed\",top:c},b.width=\"border-box\"===a.css(\"box-sizing\")?a.outerWidth()+\"px\":a.width()+\"px\",a.css(b).addClass(t),null==p&&(a.after(h),\"left\"!==r&&\"right\"!==r||h.append(a)),a.trigger(\"sticky_kit:stick\")),m&&w&&(null==k&&(k=e+u+c>C+n),!v&&k)))return v=!0,\"static\"===g.css(\"position\")&&g.css({position:\"relative\"}),\r\na.css({position:\"absolute\",bottom:d,top:\"auto\"}).trigger(\"sticky_kit:bottom\")},y=function(){x();return l()},H=function(){G=!0;f.off(\"touchmove\",l);f.off(\"scroll\",l);f.off(\"resize\",y);b(document.body).off(\"sticky_kit:recalc\",y);a.off(\"sticky_kit:detach\",H);a.removeData(\"sticky_kit\");a.css({position:\"\",bottom:\"\",top:\"\",width:\"\"});g.position(\"position\",\"\");if(m)return null==p&&(\"left\"!==r&&\"right\"!==r||a.insertAfter(h),h.remove()),a.removeClass(t)},f.on(\"touchmove\",l),f.on(\"scroll\",l),f.on(\"resize\",\r\ny),b(document.body).on(\"sticky_kit:recalc\",y),a.on(\"sticky_kit:detach\",H),setTimeout(l,0)}};n=0;for(K=this.length;n axis.oldScroll\r\n var direction = isForward ? axis.forward : axis.backward\r\n\r\n for (var waypointKey in this.waypoints[axisKey]) {\r\n var waypoint = this.waypoints[axisKey][waypointKey]\r\n if (waypoint.triggerPoint === null) {\r\n continue\r\n }\r\n var wasBeforeTriggerPoint = axis.oldScroll < waypoint.triggerPoint\r\n var nowAfterTriggerPoint = axis.newScroll >= waypoint.triggerPoint\r\n var crossedForward = wasBeforeTriggerPoint && nowAfterTriggerPoint\r\n var crossedBackward = !wasBeforeTriggerPoint && !nowAfterTriggerPoint\r\n if (crossedForward || crossedBackward) {\r\n waypoint.queueTrigger(direction)\r\n triggeredGroups[waypoint.group.id] = waypoint.group\r\n }\r\n }\r\n }\r\n\r\n for (var groupKey in triggeredGroups) {\r\n triggeredGroups[groupKey].flushTriggers()\r\n }\r\n\r\n this.oldScroll = {\r\n x: axes.horizontal.newScroll,\r\n y: axes.vertical.newScroll\r\n }\r\n }\r\n\r\n /* Private */\r\n Context.prototype.innerHeight = function() {\r\n /*eslint-disable eqeqeq */\r\n if (this.element == this.element.window) {\r\n return Waypoint.viewportHeight()\r\n }\r\n /*eslint-enable eqeqeq */\r\n return this.adapter.innerHeight()\r\n }\r\n\r\n /* Private */\r\n Context.prototype.remove = function(waypoint) {\r\n delete this.waypoints[waypoint.axis][waypoint.key]\r\n this.checkEmpty()\r\n }\r\n\r\n /* Private */\r\n Context.prototype.innerWidth = function() {\r\n /*eslint-disable eqeqeq */\r\n if (this.element == this.element.window) {\r\n return Waypoint.viewportWidth()\r\n }\r\n /*eslint-enable eqeqeq */\r\n return this.adapter.innerWidth()\r\n }\r\n\r\n /* Public */\r\n /* http://imakewebthings.com/waypoints/api/context-destroy */\r\n Context.prototype.destroy = function() {\r\n var allWaypoints = []\r\n for (var axis in this.waypoints) {\r\n for (var waypointKey in this.waypoints[axis]) {\r\n allWaypoints.push(this.waypoints[axis][waypointKey])\r\n }\r\n }\r\n for (var i = 0, end = allWaypoints.length; i < end; i++) {\r\n allWaypoints[i].destroy()\r\n }\r\n }\r\n\r\n /* Public */\r\n /* http://imakewebthings.com/waypoints/api/context-refresh */\r\n Context.prototype.refresh = function() {\r\n /*eslint-disable eqeqeq */\r\n var isWindow = this.element == this.element.window\r\n /*eslint-enable eqeqeq */\r\n var contextOffset = isWindow ? undefined : this.adapter.offset()\r\n var triggeredGroups = {}\r\n var axes\r\n\r\n this.handleScroll()\r\n axes = {\r\n horizontal: {\r\n contextOffset: isWindow ? 0 : contextOffset.left,\r\n contextScroll: isWindow ? 0 : this.oldScroll.x,\r\n contextDimension: this.innerWidth(),\r\n oldScroll: this.oldScroll.x,\r\n forward: 'right',\r\n backward: 'left',\r\n offsetProp: 'left'\r\n },\r\n vertical: {\r\n contextOffset: isWindow ? 0 : contextOffset.top,\r\n contextScroll: isWindow ? 0 : this.oldScroll.y,\r\n contextDimension: this.innerHeight(),\r\n oldScroll: this.oldScroll.y,\r\n forward: 'down',\r\n backward: 'up',\r\n offsetProp: 'top'\r\n }\r\n }\r\n\r\n for (var axisKey in axes) {\r\n var axis = axes[axisKey]\r\n for (var waypointKey in this.waypoints[axisKey]) {\r\n var waypoint = this.waypoints[axisKey][waypointKey]\r\n var adjustment = waypoint.options.offset\r\n var oldTriggerPoint = waypoint.triggerPoint\r\n var elementOffset = 0\r\n var freshWaypoint = oldTriggerPoint == null\r\n var contextModifier, wasBeforeScroll, nowAfterScroll\r\n var triggeredBackward, triggeredForward\r\n\r\n if (waypoint.element !== waypoint.element.window) {\r\n elementOffset = waypoint.adapter.offset()[axis.offsetProp]\r\n }\r\n\r\n if (typeof adjustment === 'function') {\r\n adjustment = adjustment.apply(waypoint)\r\n }\r\n else if (typeof adjustment === 'string') {\r\n adjustment = parseFloat(adjustment)\r\n if (waypoint.options.offset.indexOf('%') > - 1) {\r\n adjustment = Math.ceil(axis.contextDimension * adjustment / 100)\r\n }\r\n }\r\n\r\n contextModifier = axis.contextScroll - axis.contextOffset\r\n waypoint.triggerPoint = Math.floor(elementOffset + contextModifier - adjustment)\r\n wasBeforeScroll = oldTriggerPoint < axis.oldScroll\r\n nowAfterScroll = waypoint.triggerPoint >= axis.oldScroll\r\n triggeredBackward = wasBeforeScroll && nowAfterScroll\r\n triggeredForward = !wasBeforeScroll && !nowAfterScroll\r\n\r\n if (!freshWaypoint && triggeredBackward) {\r\n waypoint.queueTrigger(axis.backward)\r\n triggeredGroups[waypoint.group.id] = waypoint.group\r\n }\r\n else if (!freshWaypoint && triggeredForward) {\r\n waypoint.queueTrigger(axis.forward)\r\n triggeredGroups[waypoint.group.id] = waypoint.group\r\n }\r\n else if (freshWaypoint && axis.oldScroll >= waypoint.triggerPoint) {\r\n waypoint.queueTrigger(axis.forward)\r\n triggeredGroups[waypoint.group.id] = waypoint.group\r\n }\r\n }\r\n }\r\n\r\n Waypoint.requestAnimationFrame(function() {\r\n for (var groupKey in triggeredGroups) {\r\n triggeredGroups[groupKey].flushTriggers()\r\n }\r\n })\r\n\r\n return this\r\n }\r\n\r\n /* Private */\r\n Context.findOrCreateByElement = function(element) {\r\n return Context.findByElement(element) || new Context(element)\r\n }\r\n\r\n /* Private */\r\n Context.refreshAll = function() {\r\n for (var contextId in contexts) {\r\n contexts[contextId].refresh()\r\n }\r\n }\r\n\r\n /* Public */\r\n /* http://imakewebthings.com/waypoints/api/context-find-by-element */\r\n Context.findByElement = function(element) {\r\n return contexts[element.waypointContextKey]\r\n }\r\n\r\n window.onload = function() {\r\n if (oldWindowLoad) {\r\n oldWindowLoad()\r\n }\r\n Context.refreshAll()\r\n }\r\n\r\n\r\n Waypoint.requestAnimationFrame = function(callback) {\r\n var requestFn = window.requestAnimationFrame ||\r\n window.mozRequestAnimationFrame ||\r\n window.webkitRequestAnimationFrame ||\r\n requestAnimationFrameShim\r\n requestFn.call(window, callback)\r\n }\r\n Waypoint.Context = Context\r\n}())\r\n;(function() {\r\n 'use strict'\r\n\r\n function byTriggerPoint(a, b) {\r\n return a.triggerPoint - b.triggerPoint\r\n }\r\n\r\n function byReverseTriggerPoint(a, b) {\r\n return b.triggerPoint - a.triggerPoint\r\n }\r\n\r\n var groups = {\r\n vertical: {},\r\n horizontal: {}\r\n }\r\n var Waypoint = window.Waypoint\r\n\r\n /* http://imakewebthings.com/waypoints/api/group */\r\n function Group(options) {\r\n this.name = options.name\r\n this.axis = options.axis\r\n this.id = this.name + '-' + this.axis\r\n this.waypoints = []\r\n this.clearTriggerQueues()\r\n groups[this.axis][this.name] = this\r\n }\r\n\r\n /* Private */\r\n Group.prototype.add = function(waypoint) {\r\n this.waypoints.push(waypoint)\r\n }\r\n\r\n /* Private */\r\n Group.prototype.clearTriggerQueues = function() {\r\n this.triggerQueues = {\r\n up: [],\r\n down: [],\r\n left: [],\r\n right: []\r\n }\r\n }\r\n\r\n /* Private */\r\n Group.prototype.flushTriggers = function() {\r\n for (var direction in this.triggerQueues) {\r\n var waypoints = this.triggerQueues[direction]\r\n var reverse = direction === 'up' || direction === 'left'\r\n waypoints.sort(reverse ? byReverseTriggerPoint : byTriggerPoint)\r\n for (var i = 0, end = waypoints.length; i < end; i += 1) {\r\n var waypoint = waypoints[i]\r\n if (waypoint.options.continuous || i === waypoints.length - 1) {\r\n waypoint.trigger([direction])\r\n }\r\n }\r\n }\r\n this.clearTriggerQueues()\r\n }\r\n\r\n /* Private */\r\n Group.prototype.next = function(waypoint) {\r\n this.waypoints.sort(byTriggerPoint)\r\n var index = Waypoint.Adapter.inArray(waypoint, this.waypoints)\r\n var isLast = index === this.waypoints.length - 1\r\n return isLast ? null : this.waypoints[index + 1]\r\n }\r\n\r\n /* Private */\r\n Group.prototype.previous = function(waypoint) {\r\n this.waypoints.sort(byTriggerPoint)\r\n var index = Waypoint.Adapter.inArray(waypoint, this.waypoints)\r\n return index ? this.waypoints[index - 1] : null\r\n }\r\n\r\n /* Private */\r\n Group.prototype.queueTrigger = function(waypoint, direction) {\r\n this.triggerQueues[direction].push(waypoint)\r\n }\r\n\r\n /* Private */\r\n Group.prototype.remove = function(waypoint) {\r\n var index = Waypoint.Adapter.inArray(waypoint, this.waypoints)\r\n if (index > -1) {\r\n this.waypoints.splice(index, 1)\r\n }\r\n }\r\n\r\n /* Public */\r\n /* http://imakewebthings.com/waypoints/api/first */\r\n Group.prototype.first = function() {\r\n return this.waypoints[0]\r\n }\r\n\r\n /* Public */\r\n /* http://imakewebthings.com/waypoints/api/last */\r\n Group.prototype.last = function() {\r\n return this.waypoints[this.waypoints.length - 1]\r\n }\r\n\r\n /* Private */\r\n Group.findOrCreate = function(options) {\r\n return groups[options.axis][options.name] || new Group(options)\r\n }\r\n\r\n Waypoint.Group = Group\r\n}())\r\n;(function() {\r\n 'use strict'\r\n\r\n var $ = window.jQuery\r\n var Waypoint = window.Waypoint\r\n\r\n function JQueryAdapter(element) {\r\n this.$element = $(element)\r\n }\r\n\r\n $.each([\r\n 'innerHeight',\r\n 'innerWidth',\r\n 'off',\r\n 'offset',\r\n 'on',\r\n 'outerHeight',\r\n 'outerWidth',\r\n 'scrollLeft',\r\n 'scrollTop'\r\n ], function(i, method) {\r\n JQueryAdapter.prototype[method] = function() {\r\n var args = Array.prototype.slice.call(arguments)\r\n return this.$element[method].apply(this.$element, args)\r\n }\r\n })\r\n\r\n $.each([\r\n 'extend',\r\n 'inArray',\r\n 'isEmptyObject'\r\n ], function(i, method) {\r\n JQueryAdapter[method] = $[method]\r\n })\r\n\r\n Waypoint.adapters.push({\r\n name: 'jquery',\r\n Adapter: JQueryAdapter\r\n })\r\n Waypoint.Adapter = JQueryAdapter\r\n}())\r\n;(function() {\r\n 'use strict'\r\n\r\n var Waypoint = window.Waypoint\r\n\r\n function createExtension(framework) {\r\n return function() {\r\n var waypoints = []\r\n var overrides = arguments[0]\r\n\r\n if (framework.isFunction(arguments[0])) {\r\n overrides = framework.extend({}, arguments[1])\r\n overrides.handler = arguments[0]\r\n }\r\n\r\n this.each(function() {\r\n var options = framework.extend({}, overrides, {\r\n element: this\r\n })\r\n if (typeof options.context === 'string') {\r\n options.context = framework(this).closest(options.context)[0]\r\n }\r\n waypoints.push(new Waypoint(options))\r\n })\r\n\r\n return waypoints\r\n }\r\n }\r\n\r\n if (window.jQuery) {\r\n window.jQuery.fn.waypoint = createExtension(window.jQuery)\r\n }\r\n if (window.Zepto) {\r\n window.Zepto.fn.waypoint = createExtension(window.Zepto)\r\n }\r\n}())\r\n;\r\n","/*! Magnific Popup - v1.1.0 - 2016-02-20\r\n* http://dimsemenov.com/plugins/magnific-popup/\r\n* Copyright (c) 2016 Dmitry Semenov; */\r\n;(function (factory) { \r\nif (typeof define === 'function' && define.amd) { \r\n // AMD. Register as an anonymous module. \r\n define(['jquery'], factory); \r\n } else if (typeof exports === 'object') { \r\n // Node/CommonJS \r\n factory(require('jquery')); \r\n } else { \r\n // Browser globals \r\n factory(window.jQuery || window.Zepto); \r\n } \r\n }(function($) { \r\n\r\n/*>>core*/\r\n/**\r\n * \r\n * Magnific Popup Core JS file\r\n * \r\n */\r\n\r\n\r\n/**\r\n * Private static constants\r\n */\r\nvar CLOSE_EVENT = 'Close',\r\n BEFORE_CLOSE_EVENT = 'BeforeClose',\r\n AFTER_CLOSE_EVENT = 'AfterClose',\r\n BEFORE_APPEND_EVENT = 'BeforeAppend',\r\n MARKUP_PARSE_EVENT = 'MarkupParse',\r\n OPEN_EVENT = 'Open',\r\n CHANGE_EVENT = 'Change',\r\n NS = 'mfp',\r\n EVENT_NS = '.' + NS,\r\n READY_CLASS = 'mfp-ready',\r\n REMOVING_CLASS = 'mfp-removing',\r\n PREVENT_CLOSE_CLASS = 'mfp-prevent-close';\r\n\r\n\r\n/**\r\n * Private vars \r\n */\r\n/*jshint -W079 */\r\nvar mfp, // As we have only one instance of MagnificPopup object, we define it locally to not to use 'this'\r\n MagnificPopup = function(){},\r\n _isJQ = !!(window.jQuery),\r\n _prevStatus,\r\n _window = $(window),\r\n _document,\r\n _prevContentType,\r\n _wrapClasses,\r\n _currPopupType;\r\n\r\n\r\n/**\r\n * Private functions\r\n */\r\nvar _mfpOn = function(name, f) {\r\n mfp.ev.on(NS + name + EVENT_NS, f);\r\n },\r\n _getEl = function(className, appendTo, html, raw) {\r\n var el = document.createElement('div');\r\n el.className = 'mfp-'+className;\r\n if(html) {\r\n el.innerHTML = html;\r\n }\r\n if(!raw) {\r\n el = $(el);\r\n if(appendTo) {\r\n el.appendTo(appendTo);\r\n }\r\n } else if(appendTo) {\r\n appendTo.appendChild(el);\r\n }\r\n return el;\r\n },\r\n _mfpTrigger = function(e, data) {\r\n mfp.ev.triggerHandler(NS + e, data);\r\n\r\n if(mfp.st.callbacks) {\r\n // converts \"mfpEventName\" to \"eventName\" callback and triggers it if it's present\r\n e = e.charAt(0).toLowerCase() + e.slice(1);\r\n if(mfp.st.callbacks[e]) {\r\n mfp.st.callbacks[e].apply(mfp, $.isArray(data) ? data : [data]);\r\n }\r\n }\r\n },\r\n _getCloseBtn = function(type) {\r\n if(type !== _currPopupType || !mfp.currTemplate.closeBtn) {\r\n mfp.currTemplate.closeBtn = $( mfp.st.closeMarkup.replace('%title%', mfp.st.tClose ) );\r\n _currPopupType = type;\r\n }\r\n return mfp.currTemplate.closeBtn;\r\n },\r\n // Initialize Magnific Popup only when called at least once\r\n _checkInstance = function() {\r\n if(!$.magnificPopup.instance) {\r\n /*jshint -W020 */\r\n mfp = new MagnificPopup();\r\n mfp.init();\r\n $.magnificPopup.instance = mfp;\r\n }\r\n },\r\n // CSS transition detection, http://stackoverflow.com/questions/7264899/detect-css-transitions-using-javascript-and-without-modernizr\r\n supportsTransitions = function() {\r\n var s = document.createElement('p').style, // 's' for style. better to create an element if body yet to exist\r\n v = ['ms','O','Moz','Webkit']; // 'v' for vendor\r\n\r\n if( s['transition'] !== undefined ) {\r\n return true; \r\n }\r\n \r\n while( v.length ) {\r\n if( v.pop() + 'Transition' in s ) {\r\n return true;\r\n }\r\n }\r\n \r\n return false;\r\n };\r\n\r\n\r\n\r\n/**\r\n * Public functions\r\n */\r\nMagnificPopup.prototype = {\r\n\r\n constructor: MagnificPopup,\r\n\r\n /**\r\n * Initializes Magnific Popup plugin. \r\n * This function is triggered only once when $.fn.magnificPopup or $.magnificPopup is executed\r\n */\r\n init: function() {\r\n var appVersion = navigator.appVersion;\r\n mfp.isLowIE = mfp.isIE8 = document.all && !document.addEventListener;\r\n mfp.isAndroid = (/android/gi).test(appVersion);\r\n mfp.isIOS = (/iphone|ipad|ipod/gi).test(appVersion);\r\n mfp.supportsTransition = supportsTransitions();\r\n\r\n // We disable fixed positioned lightbox on devices that don't handle it nicely.\r\n // If you know a better way of detecting this - let me know.\r\n mfp.probablyMobile = (mfp.isAndroid || mfp.isIOS || /(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent) );\r\n _document = $(document);\r\n\r\n mfp.popupsCache = {};\r\n },\r\n\r\n /**\r\n * Opens popup\r\n * @param data [description]\r\n */\r\n open: function(data) {\r\n\r\n var i;\r\n\r\n if(data.isObj === false) { \r\n // convert jQuery collection to array to avoid conflicts later\r\n mfp.items = data.items.toArray();\r\n\r\n mfp.index = 0;\r\n var items = data.items,\r\n item;\r\n for(i = 0; i < items.length; i++) {\r\n item = items[i];\r\n if(item.parsed) {\r\n item = item.el[0];\r\n }\r\n if(item === data.el[0]) {\r\n mfp.index = i;\r\n break;\r\n }\r\n }\r\n } else {\r\n mfp.items = $.isArray(data.items) ? data.items : [data.items];\r\n mfp.index = data.index || 0;\r\n }\r\n\r\n // if popup is already opened - we just update the content\r\n if(mfp.isOpen) {\r\n mfp.updateItemHTML();\r\n return;\r\n }\r\n \r\n mfp.types = []; \r\n _wrapClasses = '';\r\n if(data.mainEl && data.mainEl.length) {\r\n mfp.ev = data.mainEl.eq(0);\r\n } else {\r\n mfp.ev = _document;\r\n }\r\n\r\n if(data.key) {\r\n if(!mfp.popupsCache[data.key]) {\r\n mfp.popupsCache[data.key] = {};\r\n }\r\n mfp.currTemplate = mfp.popupsCache[data.key];\r\n } else {\r\n mfp.currTemplate = {};\r\n }\r\n\r\n\r\n\r\n mfp.st = $.extend(true, {}, $.magnificPopup.defaults, data ); \r\n mfp.fixedContentPos = mfp.st.fixedContentPos === 'auto' ? !mfp.probablyMobile : mfp.st.fixedContentPos;\r\n\r\n if(mfp.st.modal) {\r\n mfp.st.closeOnContentClick = false;\r\n mfp.st.closeOnBgClick = false;\r\n mfp.st.showCloseBtn = false;\r\n mfp.st.enableEscapeKey = false;\r\n }\r\n \r\n\r\n // Building markup\r\n // main containers are created only once\r\n if(!mfp.bgOverlay) {\r\n\r\n // Dark overlay\r\n mfp.bgOverlay = _getEl('bg').on('click'+EVENT_NS, function() {\r\n mfp.close();\r\n });\r\n\r\n mfp.wrap = _getEl('wrap').attr('tabindex', -1).on('click'+EVENT_NS, function(e) {\r\n if(mfp._checkIfClose(e.target)) {\r\n mfp.close();\r\n }\r\n });\r\n\r\n mfp.container = _getEl('container', mfp.wrap);\r\n }\r\n\r\n mfp.contentContainer = _getEl('content');\r\n if(mfp.st.preloader) {\r\n mfp.preloader = _getEl('preloader', mfp.container, mfp.st.tLoading);\r\n }\r\n\r\n\r\n // Initializing modules\r\n var modules = $.magnificPopup.modules;\r\n for(i = 0; i < modules.length; i++) {\r\n var n = modules[i];\r\n n = n.charAt(0).toUpperCase() + n.slice(1);\r\n mfp['init'+n].call(mfp);\r\n }\r\n _mfpTrigger('BeforeOpen');\r\n\r\n\r\n if(mfp.st.showCloseBtn) {\r\n // Close button\r\n if(!mfp.st.closeBtnInside) {\r\n mfp.wrap.append( _getCloseBtn() );\r\n } else {\r\n _mfpOn(MARKUP_PARSE_EVENT, function(e, template, values, item) {\r\n values.close_replaceWith = _getCloseBtn(item.type);\r\n });\r\n _wrapClasses += ' mfp-close-btn-in';\r\n }\r\n }\r\n\r\n if(mfp.st.alignTop) {\r\n _wrapClasses += ' mfp-align-top';\r\n }\r\n\r\n \r\n\r\n if(mfp.fixedContentPos) {\r\n mfp.wrap.css({\r\n overflow: mfp.st.overflowY,\r\n overflowX: 'hidden',\r\n overflowY: mfp.st.overflowY\r\n });\r\n } else {\r\n mfp.wrap.css({ \r\n top: _window.scrollTop(),\r\n position: 'absolute'\r\n });\r\n }\r\n if( mfp.st.fixedBgPos === false || (mfp.st.fixedBgPos === 'auto' && !mfp.fixedContentPos) ) {\r\n mfp.bgOverlay.css({\r\n height: _document.height(),\r\n position: 'absolute'\r\n });\r\n }\r\n\r\n \r\n\r\n if(mfp.st.enableEscapeKey) {\r\n // Close on ESC key\r\n _document.on('keyup' + EVENT_NS, function(e) {\r\n if(e.keyCode === 27) {\r\n mfp.close();\r\n }\r\n });\r\n }\r\n\r\n _window.on('resize' + EVENT_NS, function() {\r\n mfp.updateSize();\r\n });\r\n\r\n\r\n if(!mfp.st.closeOnContentClick) {\r\n _wrapClasses += ' mfp-auto-cursor';\r\n }\r\n \r\n if(_wrapClasses)\r\n mfp.wrap.addClass(_wrapClasses);\r\n\r\n\r\n // this triggers recalculation of layout, so we get it once to not to trigger twice\r\n var windowHeight = mfp.wH = _window.height();\r\n\r\n \r\n var windowStyles = {};\r\n\r\n if( mfp.fixedContentPos ) {\r\n if(mfp._hasScrollBar(windowHeight)){\r\n var s = mfp._getScrollbarSize();\r\n if(s) {\r\n windowStyles.marginRight = s;\r\n }\r\n }\r\n }\r\n\r\n if(mfp.fixedContentPos) {\r\n if(!mfp.isIE7) {\r\n windowStyles.overflow = 'hidden';\r\n } else {\r\n // ie7 double-scroll bug\r\n $('body, html').css('overflow', 'hidden');\r\n }\r\n }\r\n\r\n \r\n \r\n var classesToadd = mfp.st.mainClass;\r\n if(mfp.isIE7) {\r\n classesToadd += ' mfp-ie7';\r\n }\r\n if(classesToadd) {\r\n mfp._addClassToMFP( classesToadd );\r\n }\r\n\r\n // add content\r\n mfp.updateItemHTML();\r\n\r\n _mfpTrigger('BuildControls');\r\n\r\n // remove scrollbar, add margin e.t.c\r\n $('html').css(windowStyles);\r\n \r\n // add everything to DOM\r\n mfp.bgOverlay.add(mfp.wrap).prependTo( mfp.st.prependTo || $(document.body) );\r\n\r\n // Save last focused element\r\n mfp._lastFocusedEl = document.activeElement;\r\n \r\n // Wait for next cycle to allow CSS transition\r\n setTimeout(function() {\r\n \r\n if(mfp.content) {\r\n mfp._addClassToMFP(READY_CLASS);\r\n mfp._setFocus();\r\n } else {\r\n // if content is not defined (not loaded e.t.c) we add class only for BG\r\n mfp.bgOverlay.addClass(READY_CLASS);\r\n }\r\n \r\n // Trap the focus in popup\r\n _document.on('focusin' + EVENT_NS, mfp._onFocusIn);\r\n\r\n }, 16);\r\n\r\n mfp.isOpen = true;\r\n mfp.updateSize(windowHeight);\r\n _mfpTrigger(OPEN_EVENT);\r\n\r\n return data;\r\n },\r\n\r\n /**\r\n * Closes the popup\r\n */\r\n close: function() {\r\n if(!mfp.isOpen) return;\r\n _mfpTrigger(BEFORE_CLOSE_EVENT);\r\n\r\n mfp.isOpen = false;\r\n // for CSS3 animation\r\n if(mfp.st.removalDelay && !mfp.isLowIE && mfp.supportsTransition ) {\r\n mfp._addClassToMFP(REMOVING_CLASS);\r\n setTimeout(function() {\r\n mfp._close();\r\n }, mfp.st.removalDelay);\r\n } else {\r\n mfp._close();\r\n }\r\n },\r\n\r\n /**\r\n * Helper for close() function\r\n */\r\n _close: function() {\r\n _mfpTrigger(CLOSE_EVENT);\r\n\r\n var classesToRemove = REMOVING_CLASS + ' ' + READY_CLASS + ' ';\r\n\r\n mfp.bgOverlay.detach();\r\n mfp.wrap.detach();\r\n mfp.container.empty();\r\n\r\n if(mfp.st.mainClass) {\r\n classesToRemove += mfp.st.mainClass + ' ';\r\n }\r\n\r\n mfp._removeClassFromMFP(classesToRemove);\r\n\r\n if(mfp.fixedContentPos) {\r\n var windowStyles = {marginRight: ''};\r\n if(mfp.isIE7) {\r\n $('body, html').css('overflow', '');\r\n } else {\r\n windowStyles.overflow = '';\r\n }\r\n $('html').css(windowStyles);\r\n }\r\n \r\n _document.off('keyup' + EVENT_NS + ' focusin' + EVENT_NS);\r\n mfp.ev.off(EVENT_NS);\r\n\r\n // clean up DOM elements that aren't removed\r\n mfp.wrap.attr('class', 'mfp-wrap').removeAttr('style');\r\n mfp.bgOverlay.attr('class', 'mfp-bg');\r\n mfp.container.attr('class', 'mfp-container');\r\n\r\n // remove close button from target element\r\n if(mfp.st.showCloseBtn &&\r\n (!mfp.st.closeBtnInside || mfp.currTemplate[mfp.currItem.type] === true)) {\r\n if(mfp.currTemplate.closeBtn)\r\n mfp.currTemplate.closeBtn.detach();\r\n }\r\n\r\n\r\n if(mfp.st.autoFocusLast && mfp._lastFocusedEl) {\r\n $(mfp._lastFocusedEl).focus(); // put tab focus back\r\n }\r\n mfp.currItem = null; \r\n mfp.content = null;\r\n mfp.currTemplate = null;\r\n mfp.prevHeight = 0;\r\n\r\n _mfpTrigger(AFTER_CLOSE_EVENT);\r\n },\r\n \r\n updateSize: function(winHeight) {\r\n\r\n if(mfp.isIOS) {\r\n // fixes iOS nav bars https://github.com/dimsemenov/Magnific-Popup/issues/2\r\n var zoomLevel = document.documentElement.clientWidth / window.innerWidth;\r\n var height = window.innerHeight * zoomLevel;\r\n mfp.wrap.css('height', height);\r\n mfp.wH = height;\r\n } else {\r\n mfp.wH = winHeight || _window.height();\r\n }\r\n // Fixes #84: popup incorrectly positioned with position:relative on body\r\n if(!mfp.fixedContentPos) {\r\n mfp.wrap.css('height', mfp.wH);\r\n }\r\n\r\n _mfpTrigger('Resize');\r\n\r\n },\r\n\r\n /**\r\n * Set content of popup based on current index\r\n */\r\n updateItemHTML: function() {\r\n var item = mfp.items[mfp.index];\r\n\r\n // Detach and perform modifications\r\n mfp.contentContainer.detach();\r\n\r\n if(mfp.content)\r\n mfp.content.detach();\r\n\r\n if(!item.parsed) {\r\n item = mfp.parseEl( mfp.index );\r\n }\r\n\r\n var type = item.type;\r\n\r\n _mfpTrigger('BeforeChange', [mfp.currItem ? mfp.currItem.type : '', type]);\r\n // BeforeChange event works like so:\r\n // _mfpOn('BeforeChange', function(e, prevType, newType) { });\r\n\r\n mfp.currItem = item;\r\n\r\n if(!mfp.currTemplate[type]) {\r\n var markup = mfp.st[type] ? mfp.st[type].markup : false;\r\n\r\n // allows to modify markup\r\n _mfpTrigger('FirstMarkupParse', markup);\r\n\r\n if(markup) {\r\n mfp.currTemplate[type] = $(markup);\r\n } else {\r\n // if there is no markup found we just define that template is parsed\r\n mfp.currTemplate[type] = true;\r\n }\r\n }\r\n\r\n if(_prevContentType && _prevContentType !== item.type) {\r\n mfp.container.removeClass('mfp-'+_prevContentType+'-holder');\r\n }\r\n\r\n var newContent = mfp['get' + type.charAt(0).toUpperCase() + type.slice(1)](item, mfp.currTemplate[type]);\r\n mfp.appendContent(newContent, type);\r\n\r\n item.preloaded = true;\r\n\r\n _mfpTrigger(CHANGE_EVENT, item);\r\n _prevContentType = item.type;\r\n\r\n // Append container back after its content changed\r\n mfp.container.prepend(mfp.contentContainer);\r\n\r\n _mfpTrigger('AfterChange');\r\n },\r\n\r\n\r\n /**\r\n * Set HTML content of popup\r\n */\r\n appendContent: function(newContent, type) {\r\n mfp.content = newContent;\r\n\r\n if(newContent) {\r\n if(mfp.st.showCloseBtn && mfp.st.closeBtnInside &&\r\n mfp.currTemplate[type] === true) {\r\n // if there is no markup, we just append close button element inside\r\n if(!mfp.content.find('.mfp-close').length) {\r\n mfp.content.append(_getCloseBtn());\r\n }\r\n } else {\r\n mfp.content = newContent;\r\n }\r\n } else {\r\n mfp.content = '';\r\n }\r\n\r\n _mfpTrigger(BEFORE_APPEND_EVENT);\r\n mfp.container.addClass('mfp-'+type+'-holder');\r\n\r\n mfp.contentContainer.append(mfp.content);\r\n },\r\n\r\n\r\n /**\r\n * Creates Magnific Popup data object based on given data\r\n * @param {int} index Index of item to parse\r\n */\r\n parseEl: function(index) {\r\n var item = mfp.items[index],\r\n type;\r\n\r\n if(item.tagName) {\r\n item = { el: $(item) };\r\n } else {\r\n type = item.type;\r\n item = { data: item, src: item.src };\r\n }\r\n\r\n if(item.el) {\r\n var types = mfp.types;\r\n\r\n // check for 'mfp-TYPE' class\r\n for(var i = 0; i < types.length; i++) {\r\n if( item.el.hasClass('mfp-'+types[i]) ) {\r\n type = types[i];\r\n break;\r\n }\r\n }\r\n\r\n item.src = item.el.attr('data-mfp-src');\r\n if(!item.src) {\r\n item.src = item.el.attr('href');\r\n }\r\n }\r\n\r\n item.type = type || mfp.st.type || 'inline';\r\n item.index = index;\r\n item.parsed = true;\r\n mfp.items[index] = item;\r\n _mfpTrigger('ElementParse', item);\r\n\r\n return mfp.items[index];\r\n },\r\n\r\n\r\n /**\r\n * Initializes single popup or a group of popups\r\n */\r\n addGroup: function(el, options) {\r\n var eHandler = function(e) {\r\n e.mfpEl = this;\r\n mfp._openClick(e, el, options);\r\n };\r\n\r\n if(!options) {\r\n options = {};\r\n }\r\n\r\n var eName = 'click.magnificPopup';\r\n options.mainEl = el;\r\n\r\n if(options.items) {\r\n options.isObj = true;\r\n el.off(eName).on(eName, eHandler);\r\n } else {\r\n options.isObj = false;\r\n if(options.delegate) {\r\n el.off(eName).on(eName, options.delegate , eHandler);\r\n } else {\r\n options.items = el;\r\n el.off(eName).on(eName, eHandler);\r\n }\r\n }\r\n },\r\n _openClick: function(e, el, options) {\r\n var midClick = options.midClick !== undefined ? options.midClick : $.magnificPopup.defaults.midClick;\r\n\r\n\r\n if(!midClick && ( e.which === 2 || e.ctrlKey || e.metaKey || e.altKey || e.shiftKey ) ) {\r\n return;\r\n }\r\n\r\n var disableOn = options.disableOn !== undefined ? options.disableOn : $.magnificPopup.defaults.disableOn;\r\n\r\n if(disableOn) {\r\n if($.isFunction(disableOn)) {\r\n if( !disableOn.call(mfp) ) {\r\n return true;\r\n }\r\n } else { // else it's number\r\n if( _window.width() < disableOn ) {\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n if(e.type) {\r\n e.preventDefault();\r\n\r\n // This will prevent popup from closing if element is inside and popup is already opened\r\n if(mfp.isOpen) {\r\n e.stopPropagation();\r\n }\r\n }\r\n\r\n options.el = $(e.mfpEl);\r\n if(options.delegate) {\r\n options.items = el.find(options.delegate);\r\n }\r\n mfp.open(options);\r\n },\r\n\r\n\r\n /**\r\n * Updates text on preloader\r\n */\r\n updateStatus: function(status, text) {\r\n\r\n if(mfp.preloader) {\r\n if(_prevStatus !== status) {\r\n mfp.container.removeClass('mfp-s-'+_prevStatus);\r\n }\r\n\r\n if(!text && status === 'loading') {\r\n text = mfp.st.tLoading;\r\n }\r\n\r\n var data = {\r\n status: status,\r\n text: text\r\n };\r\n // allows to modify status\r\n _mfpTrigger('UpdateStatus', data);\r\n\r\n status = data.status;\r\n text = data.text;\r\n\r\n mfp.preloader.html(text);\r\n\r\n mfp.preloader.find('a').on('click', function(e) {\r\n e.stopImmediatePropagation();\r\n });\r\n\r\n mfp.container.addClass('mfp-s-'+status);\r\n _prevStatus = status;\r\n }\r\n },\r\n\r\n\r\n /*\r\n \"Private\" helpers that aren't private at all\r\n */\r\n // Check to close popup or not\r\n // \"target\" is an element that was clicked\r\n _checkIfClose: function(target) {\r\n\r\n if($(target).hasClass(PREVENT_CLOSE_CLASS)) {\r\n return;\r\n }\r\n\r\n var closeOnContent = mfp.st.closeOnContentClick;\r\n var closeOnBg = mfp.st.closeOnBgClick;\r\n\r\n if(closeOnContent && closeOnBg) {\r\n return true;\r\n } else {\r\n\r\n // We close the popup if click is on close button or on preloader. Or if there is no content.\r\n if(!mfp.content || $(target).hasClass('mfp-close') || (mfp.preloader && target === mfp.preloader[0]) ) {\r\n return true;\r\n }\r\n\r\n // if click is outside the content\r\n if( (target !== mfp.content[0] && !$.contains(mfp.content[0], target)) ) {\r\n if(closeOnBg) {\r\n // last check, if the clicked element is in DOM, (in case it's removed onclick)\r\n if( $.contains(document, target) ) {\r\n return true;\r\n }\r\n }\r\n } else if(closeOnContent) {\r\n return true;\r\n }\r\n\r\n }\r\n return false;\r\n },\r\n _addClassToMFP: function(cName) {\r\n mfp.bgOverlay.addClass(cName);\r\n mfp.wrap.addClass(cName);\r\n },\r\n _removeClassFromMFP: function(cName) {\r\n this.bgOverlay.removeClass(cName);\r\n mfp.wrap.removeClass(cName);\r\n },\r\n _hasScrollBar: function(winHeight) {\r\n return ( (mfp.isIE7 ? _document.height() : document.body.scrollHeight) > (winHeight || _window.height()) );\r\n },\r\n _setFocus: function() {\r\n (mfp.st.focus ? mfp.content.find(mfp.st.focus).eq(0) : mfp.wrap).focus();\r\n },\r\n _onFocusIn: function(e) {\r\n if( e.target !== mfp.wrap[0] && !$.contains(mfp.wrap[0], e.target) ) {\r\n mfp._setFocus();\r\n return false;\r\n }\r\n },\r\n _parseMarkup: function(template, values, item) {\r\n var arr;\r\n if(item.data) {\r\n values = $.extend(item.data, values);\r\n }\r\n _mfpTrigger(MARKUP_PARSE_EVENT, [template, values, item] );\r\n\r\n $.each(values, function(key, value) {\r\n if(value === undefined || value === false) {\r\n return true;\r\n }\r\n arr = key.split('_');\r\n if(arr.length > 1) {\r\n var el = template.find(EVENT_NS + '-'+arr[0]);\r\n\r\n if(el.length > 0) {\r\n var attr = arr[1];\r\n if(attr === 'replaceWith') {\r\n if(el[0] !== value[0]) {\r\n el.replaceWith(value);\r\n }\r\n } else if(attr === 'img') {\r\n if(el.is('img')) {\r\n el.attr('src', value);\r\n } else {\r\n el.replaceWith( $('').attr('src', value).attr('class', el.attr('class')) );\r\n }\r\n } else {\r\n el.attr(arr[1], value);\r\n }\r\n }\r\n\r\n } else {\r\n template.find(EVENT_NS + '-'+key).html(value);\r\n }\r\n });\r\n },\r\n\r\n _getScrollbarSize: function() {\r\n // thx David\r\n if(mfp.scrollbarSize === undefined) {\r\n var scrollDiv = document.createElement(\"div\");\r\n scrollDiv.style.cssText = 'width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;';\r\n document.body.appendChild(scrollDiv);\r\n mfp.scrollbarSize = scrollDiv.offsetWidth - scrollDiv.clientWidth;\r\n document.body.removeChild(scrollDiv);\r\n }\r\n return mfp.scrollbarSize;\r\n }\r\n\r\n}; /* MagnificPopup core prototype end */\r\n\r\n\r\n\r\n\r\n/**\r\n * Public static functions\r\n */\r\n$.magnificPopup = {\r\n instance: null,\r\n proto: MagnificPopup.prototype,\r\n modules: [],\r\n\r\n open: function(options, index) {\r\n _checkInstance();\r\n\r\n if(!options) {\r\n options = {};\r\n } else {\r\n options = $.extend(true, {}, options);\r\n }\r\n\r\n options.isObj = true;\r\n options.index = index || 0;\r\n return this.instance.open(options);\r\n },\r\n\r\n close: function() {\r\n return $.magnificPopup.instance && $.magnificPopup.instance.close();\r\n },\r\n\r\n registerModule: function(name, module) {\r\n if(module.options) {\r\n $.magnificPopup.defaults[name] = module.options;\r\n }\r\n $.extend(this.proto, module.proto);\r\n this.modules.push(name);\r\n },\r\n\r\n defaults: {\r\n\r\n // Info about options is in docs:\r\n // http://dimsemenov.com/plugins/magnific-popup/documentation.html#options\r\n\r\n disableOn: 0,\r\n\r\n key: null,\r\n\r\n midClick: false,\r\n\r\n mainClass: '',\r\n\r\n preloader: true,\r\n\r\n focus: '', // CSS selector of input to focus after popup is opened\r\n\r\n closeOnContentClick: false,\r\n\r\n closeOnBgClick: true,\r\n\r\n closeBtnInside: true,\r\n\r\n showCloseBtn: true,\r\n\r\n enableEscapeKey: true,\r\n\r\n modal: false,\r\n\r\n alignTop: false,\r\n\r\n removalDelay: 0,\r\n\r\n prependTo: null,\r\n\r\n fixedContentPos: 'auto',\r\n\r\n fixedBgPos: 'auto',\r\n\r\n overflowY: 'auto',\r\n\r\n closeMarkup: '',\r\n\r\n tClose: 'Close (Esc)',\r\n\r\n tLoading: 'Loading...',\r\n\r\n autoFocusLast: true\r\n\r\n }\r\n};\r\n\r\n\r\n\r\n$.fn.magnificPopup = function(options) {\r\n _checkInstance();\r\n\r\n var jqEl = $(this);\r\n\r\n // We call some API method of first param is a string\r\n if (typeof options === \"string\" ) {\r\n\r\n if(options === 'open') {\r\n var items,\r\n itemOpts = _isJQ ? jqEl.data('magnificPopup') : jqEl[0].magnificPopup,\r\n index = parseInt(arguments[1], 10) || 0;\r\n\r\n if(itemOpts.items) {\r\n items = itemOpts.items[index];\r\n } else {\r\n items = jqEl;\r\n if(itemOpts.delegate) {\r\n items = items.find(itemOpts.delegate);\r\n }\r\n items = items.eq( index );\r\n }\r\n mfp._openClick({mfpEl:items}, jqEl, itemOpts);\r\n } else {\r\n if(mfp.isOpen)\r\n mfp[options].apply(mfp, Array.prototype.slice.call(arguments, 1));\r\n }\r\n\r\n } else {\r\n // clone options obj\r\n options = $.extend(true, {}, options);\r\n\r\n /*\r\n * As Zepto doesn't support .data() method for objects\r\n * and it works only in normal browsers\r\n * we assign \"options\" object directly to the DOM element. FTW!\r\n */\r\n if(_isJQ) {\r\n jqEl.data('magnificPopup', options);\r\n } else {\r\n jqEl[0].magnificPopup = options;\r\n }\r\n\r\n mfp.addGroup(jqEl, options);\r\n\r\n }\r\n return jqEl;\r\n};\r\n\r\n/*>>core*/\r\n\r\n/*>>inline*/\r\n\r\nvar INLINE_NS = 'inline',\r\n _hiddenClass,\r\n _inlinePlaceholder,\r\n _lastInlineElement,\r\n _putInlineElementsBack = function() {\r\n if(_lastInlineElement) {\r\n _inlinePlaceholder.after( _lastInlineElement.addClass(_hiddenClass) ).detach();\r\n _lastInlineElement = null;\r\n }\r\n };\r\n\r\n$.magnificPopup.registerModule(INLINE_NS, {\r\n options: {\r\n hiddenClass: 'hide', // will be appended with `mfp-` prefix\r\n markup: '',\r\n tNotFound: 'Content not found'\r\n },\r\n proto: {\r\n\r\n initInline: function() {\r\n mfp.types.push(INLINE_NS);\r\n\r\n _mfpOn(CLOSE_EVENT+'.'+INLINE_NS, function() {\r\n _putInlineElementsBack();\r\n });\r\n },\r\n\r\n getInline: function(item, template) {\r\n\r\n _putInlineElementsBack();\r\n\r\n if(item.src) {\r\n var inlineSt = mfp.st.inline,\r\n el = $(item.src);\r\n\r\n if(el.length) {\r\n\r\n // If target element has parent - we replace it with placeholder and put it back after popup is closed\r\n var parent = el[0].parentNode;\r\n if(parent && parent.tagName) {\r\n if(!_inlinePlaceholder) {\r\n _hiddenClass = inlineSt.hiddenClass;\r\n _inlinePlaceholder = _getEl(_hiddenClass);\r\n _hiddenClass = 'mfp-'+_hiddenClass;\r\n }\r\n // replace target inline element with placeholder\r\n _lastInlineElement = el.after(_inlinePlaceholder).detach().removeClass(_hiddenClass);\r\n }\r\n\r\n mfp.updateStatus('ready');\r\n } else {\r\n mfp.updateStatus('error', inlineSt.tNotFound);\r\n el = $('
    ');\r\n }\r\n\r\n item.inlineElement = el;\r\n return el;\r\n }\r\n\r\n mfp.updateStatus('ready');\r\n mfp._parseMarkup(template, {}, item);\r\n return template;\r\n }\r\n }\r\n});\r\n\r\n/*>>inline*/\r\n\r\n/*>>ajax*/\r\nvar AJAX_NS = 'ajax',\r\n _ajaxCur,\r\n _removeAjaxCursor = function() {\r\n if(_ajaxCur) {\r\n $(document.body).removeClass(_ajaxCur);\r\n }\r\n },\r\n _destroyAjaxRequest = function() {\r\n _removeAjaxCursor();\r\n if(mfp.req) {\r\n mfp.req.abort();\r\n }\r\n };\r\n\r\n$.magnificPopup.registerModule(AJAX_NS, {\r\n\r\n options: {\r\n settings: null,\r\n cursor: 'mfp-ajax-cur',\r\n tError: 'The content could not be loaded.'\r\n },\r\n\r\n proto: {\r\n initAjax: function() {\r\n mfp.types.push(AJAX_NS);\r\n _ajaxCur = mfp.st.ajax.cursor;\r\n\r\n _mfpOn(CLOSE_EVENT+'.'+AJAX_NS, _destroyAjaxRequest);\r\n _mfpOn('BeforeChange.' + AJAX_NS, _destroyAjaxRequest);\r\n },\r\n getAjax: function(item) {\r\n\r\n if(_ajaxCur) {\r\n $(document.body).addClass(_ajaxCur);\r\n }\r\n\r\n mfp.updateStatus('loading');\r\n\r\n var opts = $.extend({\r\n url: item.src,\r\n success: function(data, textStatus, jqXHR) {\r\n var temp = {\r\n data:data,\r\n xhr:jqXHR\r\n };\r\n\r\n _mfpTrigger('ParseAjax', temp);\r\n\r\n mfp.appendContent( $(temp.data), AJAX_NS );\r\n\r\n item.finished = true;\r\n\r\n _removeAjaxCursor();\r\n\r\n mfp._setFocus();\r\n\r\n setTimeout(function() {\r\n mfp.wrap.addClass(READY_CLASS);\r\n }, 16);\r\n\r\n mfp.updateStatus('ready');\r\n\r\n _mfpTrigger('AjaxContentAdded');\r\n },\r\n error: function() {\r\n _removeAjaxCursor();\r\n item.finished = item.loadError = true;\r\n mfp.updateStatus('error', mfp.st.ajax.tError.replace('%url%', item.src));\r\n }\r\n }, mfp.st.ajax.settings);\r\n\r\n mfp.req = $.ajax(opts);\r\n\r\n return '';\r\n }\r\n }\r\n});\r\n\r\n/*>>ajax*/\r\n\r\n/*>>image*/\r\nvar _imgInterval,\r\n _getTitle = function(item) {\r\n if(item.data && item.data.title !== undefined)\r\n return item.data.title;\r\n\r\n var src = mfp.st.image.titleSrc;\r\n\r\n if(src) {\r\n if($.isFunction(src)) {\r\n return src.call(mfp, item);\r\n } else if(item.el) {\r\n return item.el.attr(src) || '';\r\n }\r\n }\r\n return '';\r\n };\r\n\r\n$.magnificPopup.registerModule('image', {\r\n\r\n options: {\r\n markup: '
    '+\r\n '
    '+\r\n '
    '+\r\n '
    '+\r\n '
    '+\r\n '
    '+\r\n '
    '+\r\n '
    '+\r\n '
    '+\r\n '
    '+\r\n '
    '+\r\n '
    ',\r\n cursor: 'mfp-zoom-out-cur',\r\n titleSrc: 'title',\r\n verticalFit: true,\r\n tError: 'The image could not be loaded.'\r\n },\r\n\r\n proto: {\r\n initImage: function() {\r\n var imgSt = mfp.st.image,\r\n ns = '.image';\r\n\r\n mfp.types.push('image');\r\n\r\n _mfpOn(OPEN_EVENT+ns, function() {\r\n if(mfp.currItem.type === 'image' && imgSt.cursor) {\r\n $(document.body).addClass(imgSt.cursor);\r\n }\r\n });\r\n\r\n _mfpOn(CLOSE_EVENT+ns, function() {\r\n if(imgSt.cursor) {\r\n $(document.body).removeClass(imgSt.cursor);\r\n }\r\n _window.off('resize' + EVENT_NS);\r\n });\r\n\r\n _mfpOn('Resize'+ns, mfp.resizeImage);\r\n if(mfp.isLowIE) {\r\n _mfpOn('AfterChange', mfp.resizeImage);\r\n }\r\n },\r\n resizeImage: function() {\r\n var item = mfp.currItem;\r\n if(!item || !item.img) return;\r\n\r\n if(mfp.st.image.verticalFit) {\r\n var decr = 0;\r\n // fix box-sizing in ie7/8\r\n if(mfp.isLowIE) {\r\n decr = parseInt(item.img.css('padding-top'), 10) + parseInt(item.img.css('padding-bottom'),10);\r\n }\r\n item.img.css('max-height', mfp.wH-decr);\r\n }\r\n },\r\n _onImageHasSize: function(item) {\r\n if(item.img) {\r\n\r\n item.hasSize = true;\r\n\r\n if(_imgInterval) {\r\n clearInterval(_imgInterval);\r\n }\r\n\r\n item.isCheckingImgSize = false;\r\n\r\n _mfpTrigger('ImageHasSize', item);\r\n\r\n if(item.imgHidden) {\r\n if(mfp.content)\r\n mfp.content.removeClass('mfp-loading');\r\n\r\n item.imgHidden = false;\r\n }\r\n\r\n }\r\n },\r\n\r\n /**\r\n * Function that loops until the image has size to display elements that rely on it asap\r\n */\r\n findImageSize: function(item) {\r\n\r\n var counter = 0,\r\n img = item.img[0],\r\n mfpSetInterval = function(delay) {\r\n\r\n if(_imgInterval) {\r\n clearInterval(_imgInterval);\r\n }\r\n // decelerating interval that checks for size of an image\r\n _imgInterval = setInterval(function() {\r\n if(img.naturalWidth > 0) {\r\n mfp._onImageHasSize(item);\r\n return;\r\n }\r\n\r\n if(counter > 200) {\r\n clearInterval(_imgInterval);\r\n }\r\n\r\n counter++;\r\n if(counter === 3) {\r\n mfpSetInterval(10);\r\n } else if(counter === 40) {\r\n mfpSetInterval(50);\r\n } else if(counter === 100) {\r\n mfpSetInterval(500);\r\n }\r\n }, delay);\r\n };\r\n\r\n mfpSetInterval(1);\r\n },\r\n\r\n getImage: function(item, template) {\r\n\r\n var guard = 0,\r\n\r\n // image load complete handler\r\n onLoadComplete = function() {\r\n if(item) {\r\n if (item.img[0].complete) {\r\n item.img.off('.mfploader');\r\n\r\n if(item === mfp.currItem){\r\n mfp._onImageHasSize(item);\r\n\r\n mfp.updateStatus('ready');\r\n }\r\n\r\n item.hasSize = true;\r\n item.loaded = true;\r\n\r\n _mfpTrigger('ImageLoadComplete');\r\n\r\n }\r\n else {\r\n // if image complete check fails 200 times (20 sec), we assume that there was an error.\r\n guard++;\r\n if(guard < 200) {\r\n setTimeout(onLoadComplete,100);\r\n } else {\r\n onLoadError();\r\n }\r\n }\r\n }\r\n },\r\n\r\n // image error handler\r\n onLoadError = function() {\r\n if(item) {\r\n item.img.off('.mfploader');\r\n if(item === mfp.currItem){\r\n mfp._onImageHasSize(item);\r\n mfp.updateStatus('error', imgSt.tError.replace('%url%', item.src) );\r\n }\r\n\r\n item.hasSize = true;\r\n item.loaded = true;\r\n item.loadError = true;\r\n }\r\n },\r\n imgSt = mfp.st.image;\r\n\r\n\r\n var el = template.find('.mfp-img');\r\n if(el.length) {\r\n var img = document.createElement('img');\r\n img.className = 'mfp-img';\r\n if(item.el && item.el.find('img').length) {\r\n img.alt = item.el.find('img').attr('alt');\r\n }\r\n item.img = $(img).on('load.mfploader', onLoadComplete).on('error.mfploader', onLoadError);\r\n img.src = item.src;\r\n\r\n // without clone() \"error\" event is not firing when IMG is replaced by new IMG\r\n // TODO: find a way to avoid such cloning\r\n if(el.is('img')) {\r\n item.img = item.img.clone();\r\n }\r\n\r\n img = item.img[0];\r\n if(img.naturalWidth > 0) {\r\n item.hasSize = true;\r\n } else if(!img.width) {\r\n item.hasSize = false;\r\n }\r\n }\r\n\r\n mfp._parseMarkup(template, {\r\n title: _getTitle(item),\r\n img_replaceWith: item.img\r\n }, item);\r\n\r\n mfp.resizeImage();\r\n\r\n if(item.hasSize) {\r\n if(_imgInterval) clearInterval(_imgInterval);\r\n\r\n if(item.loadError) {\r\n template.addClass('mfp-loading');\r\n mfp.updateStatus('error', imgSt.tError.replace('%url%', item.src) );\r\n } else {\r\n template.removeClass('mfp-loading');\r\n mfp.updateStatus('ready');\r\n }\r\n return template;\r\n }\r\n\r\n mfp.updateStatus('loading');\r\n item.loading = true;\r\n\r\n if(!item.hasSize) {\r\n item.imgHidden = true;\r\n template.addClass('mfp-loading');\r\n mfp.findImageSize(item);\r\n }\r\n\r\n return template;\r\n }\r\n }\r\n});\r\n\r\n/*>>image*/\r\n\r\n/*>>zoom*/\r\nvar hasMozTransform,\r\n getHasMozTransform = function() {\r\n if(hasMozTransform === undefined) {\r\n hasMozTransform = document.createElement('p').style.MozTransform !== undefined;\r\n }\r\n return hasMozTransform;\r\n };\r\n\r\n$.magnificPopup.registerModule('zoom', {\r\n\r\n options: {\r\n enabled: false,\r\n easing: 'ease-in-out',\r\n duration: 300,\r\n opener: function(element) {\r\n return element.is('img') ? element : element.find('img');\r\n }\r\n },\r\n\r\n proto: {\r\n\r\n initZoom: function() {\r\n var zoomSt = mfp.st.zoom,\r\n ns = '.zoom',\r\n image;\r\n\r\n if(!zoomSt.enabled || !mfp.supportsTransition) {\r\n return;\r\n }\r\n\r\n var duration = zoomSt.duration,\r\n getElToAnimate = function(image) {\r\n var newImg = image.clone().removeAttr('style').removeAttr('class').addClass('mfp-animated-image'),\r\n transition = 'all '+(zoomSt.duration/1000)+'s ' + zoomSt.easing,\r\n cssObj = {\r\n position: 'fixed',\r\n zIndex: 9999,\r\n left: 0,\r\n top: 0,\r\n '-webkit-backface-visibility': 'hidden'\r\n },\r\n t = 'transition';\r\n\r\n cssObj['-webkit-'+t] = cssObj['-moz-'+t] = cssObj['-o-'+t] = cssObj[t] = transition;\r\n\r\n newImg.css(cssObj);\r\n return newImg;\r\n },\r\n showMainContent = function() {\r\n mfp.content.css('visibility', 'visible');\r\n },\r\n openTimeout,\r\n animatedImg;\r\n\r\n _mfpOn('BuildControls'+ns, function() {\r\n if(mfp._allowZoom()) {\r\n\r\n clearTimeout(openTimeout);\r\n mfp.content.css('visibility', 'hidden');\r\n\r\n // Basically, all code below does is clones existing image, puts in on top of the current one and animated it\r\n\r\n image = mfp._getItemToZoom();\r\n\r\n if(!image) {\r\n showMainContent();\r\n return;\r\n }\r\n\r\n animatedImg = getElToAnimate(image);\r\n\r\n animatedImg.css( mfp._getOffset() );\r\n\r\n mfp.wrap.append(animatedImg);\r\n\r\n openTimeout = setTimeout(function() {\r\n animatedImg.css( mfp._getOffset( true ) );\r\n openTimeout = setTimeout(function() {\r\n\r\n showMainContent();\r\n\r\n setTimeout(function() {\r\n animatedImg.remove();\r\n image = animatedImg = null;\r\n _mfpTrigger('ZoomAnimationEnded');\r\n }, 16); // avoid blink when switching images\r\n\r\n }, duration); // this timeout equals animation duration\r\n\r\n }, 16); // by adding this timeout we avoid short glitch at the beginning of animation\r\n\r\n\r\n // Lots of timeouts...\r\n }\r\n });\r\n _mfpOn(BEFORE_CLOSE_EVENT+ns, function() {\r\n if(mfp._allowZoom()) {\r\n\r\n clearTimeout(openTimeout);\r\n\r\n mfp.st.removalDelay = duration;\r\n\r\n if(!image) {\r\n image = mfp._getItemToZoom();\r\n if(!image) {\r\n return;\r\n }\r\n animatedImg = getElToAnimate(image);\r\n }\r\n\r\n animatedImg.css( mfp._getOffset(true) );\r\n mfp.wrap.append(animatedImg);\r\n mfp.content.css('visibility', 'hidden');\r\n\r\n setTimeout(function() {\r\n animatedImg.css( mfp._getOffset() );\r\n }, 16);\r\n }\r\n\r\n });\r\n\r\n _mfpOn(CLOSE_EVENT+ns, function() {\r\n if(mfp._allowZoom()) {\r\n showMainContent();\r\n if(animatedImg) {\r\n animatedImg.remove();\r\n }\r\n image = null;\r\n }\r\n });\r\n },\r\n\r\n _allowZoom: function() {\r\n return mfp.currItem.type === 'image';\r\n },\r\n\r\n _getItemToZoom: function() {\r\n if(mfp.currItem.hasSize) {\r\n return mfp.currItem.img;\r\n } else {\r\n return false;\r\n }\r\n },\r\n\r\n // Get element postion relative to viewport\r\n _getOffset: function(isLarge) {\r\n var el;\r\n if(isLarge) {\r\n el = mfp.currItem.img;\r\n } else {\r\n el = mfp.st.zoom.opener(mfp.currItem.el || mfp.currItem);\r\n }\r\n\r\n var offset = el.offset();\r\n var paddingTop = parseInt(el.css('padding-top'),10);\r\n var paddingBottom = parseInt(el.css('padding-bottom'),10);\r\n offset.top -= ( $(window).scrollTop() - paddingTop );\r\n\r\n\r\n /*\r\n\r\n Animating left + top + width/height looks glitchy in Firefox, but perfect in Chrome. And vice-versa.\r\n\r\n */\r\n var obj = {\r\n width: el.width(),\r\n // fix Zepto height+padding issue\r\n height: (_isJQ ? el.innerHeight() : el[0].offsetHeight) - paddingBottom - paddingTop\r\n };\r\n\r\n // I hate to do this, but there is no another option\r\n if( getHasMozTransform() ) {\r\n obj['-moz-transform'] = obj['transform'] = 'translate(' + offset.left + 'px,' + offset.top + 'px)';\r\n } else {\r\n obj.left = offset.left;\r\n obj.top = offset.top;\r\n }\r\n return obj;\r\n }\r\n\r\n }\r\n});\r\n\r\n\r\n\r\n/*>>zoom*/\r\n\r\n/*>>iframe*/\r\n\r\nvar IFRAME_NS = 'iframe',\r\n _emptyPage = '//about:blank',\r\n\r\n _fixIframeBugs = function(isShowing) {\r\n if(mfp.currTemplate[IFRAME_NS]) {\r\n var el = mfp.currTemplate[IFRAME_NS].find('iframe');\r\n if(el.length) {\r\n // reset src after the popup is closed to avoid \"video keeps playing after popup is closed\" bug\r\n if(!isShowing) {\r\n el[0].src = _emptyPage;\r\n }\r\n\r\n // IE8 black screen bug fix\r\n if(mfp.isIE8) {\r\n el.css('display', isShowing ? 'block' : 'none');\r\n }\r\n }\r\n }\r\n };\r\n\r\n$.magnificPopup.registerModule(IFRAME_NS, {\r\n\r\n options: {\r\n markup: '
    '+\r\n '
    '+\r\n ''+\r\n '
    ',\r\n\r\n srcAction: 'iframe_src',\r\n\r\n // we don't care and support only one default type of URL by default\r\n patterns: {\r\n youtube: {\r\n index: 'youtube.com',\r\n id: 'v=',\r\n src: '//www.youtube.com/embed/%id%?autoplay=1'\r\n },\r\n vimeo: {\r\n index: 'vimeo.com/',\r\n id: '/',\r\n src: '//player.vimeo.com/video/%id%?autoplay=1'\r\n },\r\n gmaps: {\r\n index: '//maps.google.',\r\n src: '%id%&output=embed'\r\n }\r\n }\r\n },\r\n\r\n proto: {\r\n initIframe: function() {\r\n mfp.types.push(IFRAME_NS);\r\n\r\n _mfpOn('BeforeChange', function(e, prevType, newType) {\r\n if(prevType !== newType) {\r\n if(prevType === IFRAME_NS) {\r\n _fixIframeBugs(); // iframe if removed\r\n } else if(newType === IFRAME_NS) {\r\n _fixIframeBugs(true); // iframe is showing\r\n }\r\n }// else {\r\n // iframe source is switched, don't do anything\r\n //}\r\n });\r\n\r\n _mfpOn(CLOSE_EVENT + '.' + IFRAME_NS, function() {\r\n _fixIframeBugs();\r\n });\r\n },\r\n\r\n getIframe: function(item, template) {\r\n var embedSrc = item.src;\r\n var iframeSt = mfp.st.iframe;\r\n\r\n $.each(iframeSt.patterns, function() {\r\n if(embedSrc.indexOf( this.index ) > -1) {\r\n if(this.id) {\r\n if(typeof this.id === 'string') {\r\n embedSrc = embedSrc.substr(embedSrc.lastIndexOf(this.id)+this.id.length, embedSrc.length);\r\n } else {\r\n embedSrc = this.id.call( this, embedSrc );\r\n }\r\n }\r\n embedSrc = this.src.replace('%id%', embedSrc );\r\n return false; // break;\r\n }\r\n });\r\n\r\n var dataObj = {};\r\n if(iframeSt.srcAction) {\r\n dataObj[iframeSt.srcAction] = embedSrc;\r\n }\r\n mfp._parseMarkup(template, dataObj, item);\r\n\r\n mfp.updateStatus('ready');\r\n\r\n return template;\r\n }\r\n }\r\n});\r\n\r\n\r\n\r\n/*>>iframe*/\r\n\r\n/*>>gallery*/\r\n/**\r\n * Get looped index depending on number of slides\r\n */\r\nvar _getLoopedId = function(index) {\r\n var numSlides = mfp.items.length;\r\n if(index > numSlides - 1) {\r\n return index - numSlides;\r\n } else if(index < 0) {\r\n return numSlides + index;\r\n }\r\n return index;\r\n },\r\n _replaceCurrTotal = function(text, curr, total) {\r\n return text.replace(/%curr%/gi, curr + 1).replace(/%total%/gi, total);\r\n };\r\n\r\n$.magnificPopup.registerModule('gallery', {\r\n\r\n options: {\r\n enabled: false,\r\n arrowMarkup: '',\r\n preload: [0,2],\r\n navigateByImgClick: true,\r\n arrows: true,\r\n\r\n tPrev: 'Previous (Left arrow key)',\r\n tNext: 'Next (Right arrow key)',\r\n tCounter: '%curr% of %total%'\r\n },\r\n\r\n proto: {\r\n initGallery: function() {\r\n\r\n var gSt = mfp.st.gallery,\r\n ns = '.mfp-gallery';\r\n\r\n mfp.direction = true; // true - next, false - prev\r\n\r\n if(!gSt || !gSt.enabled ) return false;\r\n\r\n _wrapClasses += ' mfp-gallery';\r\n\r\n _mfpOn(OPEN_EVENT+ns, function() {\r\n\r\n if(gSt.navigateByImgClick) {\r\n mfp.wrap.on('click'+ns, '.mfp-img', function() {\r\n if(mfp.items.length > 1) {\r\n mfp.next();\r\n return false;\r\n }\r\n });\r\n }\r\n\r\n _document.on('keydown'+ns, function(e) {\r\n if (e.keyCode === 37) {\r\n mfp.prev();\r\n } else if (e.keyCode === 39) {\r\n mfp.next();\r\n }\r\n });\r\n });\r\n\r\n _mfpOn('UpdateStatus'+ns, function(e, data) {\r\n if(data.text) {\r\n data.text = _replaceCurrTotal(data.text, mfp.currItem.index, mfp.items.length);\r\n }\r\n });\r\n\r\n _mfpOn(MARKUP_PARSE_EVENT+ns, function(e, element, values, item) {\r\n var l = mfp.items.length;\r\n values.counter = l > 1 ? _replaceCurrTotal(gSt.tCounter, item.index, l) : '';\r\n });\r\n\r\n _mfpOn('BuildControls' + ns, function() {\r\n if(mfp.items.length > 1 && gSt.arrows && !mfp.arrowLeft) {\r\n var markup = gSt.arrowMarkup,\r\n arrowLeft = mfp.arrowLeft = $( markup.replace(/%title%/gi, gSt.tPrev).replace(/%dir%/gi, 'left') ).addClass(PREVENT_CLOSE_CLASS),\r\n arrowRight = mfp.arrowRight = $( markup.replace(/%title%/gi, gSt.tNext).replace(/%dir%/gi, 'right') ).addClass(PREVENT_CLOSE_CLASS);\r\n\r\n arrowLeft.click(function() {\r\n mfp.prev();\r\n });\r\n arrowRight.click(function() {\r\n mfp.next();\r\n });\r\n\r\n mfp.container.append(arrowLeft.add(arrowRight));\r\n }\r\n });\r\n\r\n _mfpOn(CHANGE_EVENT+ns, function() {\r\n if(mfp._preloadTimeout) clearTimeout(mfp._preloadTimeout);\r\n\r\n mfp._preloadTimeout = setTimeout(function() {\r\n mfp.preloadNearbyImages();\r\n mfp._preloadTimeout = null;\r\n }, 16);\r\n });\r\n\r\n\r\n _mfpOn(CLOSE_EVENT+ns, function() {\r\n _document.off(ns);\r\n mfp.wrap.off('click'+ns);\r\n mfp.arrowRight = mfp.arrowLeft = null;\r\n });\r\n\r\n },\r\n next: function() {\r\n mfp.direction = true;\r\n mfp.index = _getLoopedId(mfp.index + 1);\r\n mfp.updateItemHTML();\r\n },\r\n prev: function() {\r\n mfp.direction = false;\r\n mfp.index = _getLoopedId(mfp.index - 1);\r\n mfp.updateItemHTML();\r\n },\r\n goTo: function(newIndex) {\r\n mfp.direction = (newIndex >= mfp.index);\r\n mfp.index = newIndex;\r\n mfp.updateItemHTML();\r\n },\r\n preloadNearbyImages: function() {\r\n var p = mfp.st.gallery.preload,\r\n preloadBefore = Math.min(p[0], mfp.items.length),\r\n preloadAfter = Math.min(p[1], mfp.items.length),\r\n i;\r\n\r\n for(i = 1; i <= (mfp.direction ? preloadAfter : preloadBefore); i++) {\r\n mfp._preloadItem(mfp.index+i);\r\n }\r\n for(i = 1; i <= (mfp.direction ? preloadBefore : preloadAfter); i++) {\r\n mfp._preloadItem(mfp.index-i);\r\n }\r\n },\r\n _preloadItem: function(index) {\r\n index = _getLoopedId(index);\r\n\r\n if(mfp.items[index].preloaded) {\r\n return;\r\n }\r\n\r\n var item = mfp.items[index];\r\n if(!item.parsed) {\r\n item = mfp.parseEl( index );\r\n }\r\n\r\n _mfpTrigger('LazyLoad', item);\r\n\r\n if(item.type === 'image') {\r\n item.img = $('').on('load.mfploader', function() {\r\n item.hasSize = true;\r\n }).on('error.mfploader', function() {\r\n item.hasSize = true;\r\n item.loadError = true;\r\n _mfpTrigger('LazyLoadError', item);\r\n }).attr('src', item.src);\r\n }\r\n\r\n\r\n item.preloaded = true;\r\n }\r\n }\r\n});\r\n\r\n/*>>gallery*/\r\n\r\n/*>>retina*/\r\n\r\nvar RETINA_NS = 'retina';\r\n\r\n$.magnificPopup.registerModule(RETINA_NS, {\r\n options: {\r\n replaceSrc: function(item) {\r\n return item.src.replace(/\\.\\w+$/, function(m) { return '@2x' + m; });\r\n },\r\n ratio: 1 // Function or number. Set to 1 to disable.\r\n },\r\n proto: {\r\n initRetina: function() {\r\n if(window.devicePixelRatio > 1) {\r\n\r\n var st = mfp.st.retina,\r\n ratio = st.ratio;\r\n\r\n ratio = !isNaN(ratio) ? ratio : ratio();\r\n\r\n if(ratio > 1) {\r\n _mfpOn('ImageHasSize' + '.' + RETINA_NS, function(e, item) {\r\n item.img.css({\r\n 'max-width': item.img[0].naturalWidth / ratio,\r\n 'width': '100%'\r\n });\r\n });\r\n _mfpOn('ElementParse' + '.' + RETINA_NS, function(e, item) {\r\n item.src = st.replaceSrc(item, ratio);\r\n });\r\n }\r\n }\r\n\r\n }\r\n }\r\n});\r\n\r\n/*>>retina*/\r\n _checkInstance(); }));","// THIS FILE IS GENERATED - DO NOT EDIT!\r\n/*!mobile-detect v1.3.6 2017-04-05*/\r\n/*global module:false, define:false*/\r\n/*jshint latedef:false*/\r\n/*!@license Copyright 2013, Heinrich Goebl, License: MIT, see https://github.com/hgoebl/mobile-detect.js*/\r\n(function (define, undefined) {\r\ndefine(function () {\r\n 'use strict';\r\n\r\n var impl = {};\r\n\r\n impl.mobileDetectRules = {\r\n \"phones\": {\r\n \"iPhone\": \"\\\\biPhone\\\\b|\\\\biPod\\\\b\",\r\n \"BlackBerry\": \"BlackBerry|\\\\bBB10\\\\b|rim[0-9]+\",\r\n \"HTC\": \"HTC|HTC.*(Sensation|Evo|Vision|Explorer|6800|8100|8900|A7272|S510e|C110e|Legend|Desire|T8282)|APX515CKT|Qtek9090|APA9292KT|HD_mini|Sensation.*Z710e|PG86100|Z715e|Desire.*(A8181|HD)|ADR6200|ADR6400L|ADR6425|001HT|Inspire 4G|Android.*\\\\bEVO\\\\b|T-Mobile G1|Z520m\",\r\n \"Nexus\": \"Nexus One|Nexus S|Galaxy.*Nexus|Android.*Nexus.*Mobile|Nexus 4|Nexus 5|Nexus 6\",\r\n \"Dell\": \"Dell.*Streak|Dell.*Aero|Dell.*Venue|DELL.*Venue Pro|Dell Flash|Dell Smoke|Dell Mini 3iX|XCD28|XCD35|\\\\b001DL\\\\b|\\\\b101DL\\\\b|\\\\bGS01\\\\b\",\r\n \"Motorola\": \"Motorola|DROIDX|DROID BIONIC|\\\\bDroid\\\\b.*Build|Android.*Xoom|HRI39|MOT-|A1260|A1680|A555|A853|A855|A953|A955|A956|Motorola.*ELECTRIFY|Motorola.*i1|i867|i940|MB200|MB300|MB501|MB502|MB508|MB511|MB520|MB525|MB526|MB611|MB612|MB632|MB810|MB855|MB860|MB861|MB865|MB870|ME501|ME502|ME511|ME525|ME600|ME632|ME722|ME811|ME860|ME863|ME865|MT620|MT710|MT716|MT720|MT810|MT870|MT917|Motorola.*TITANIUM|WX435|WX445|XT300|XT301|XT311|XT316|XT317|XT319|XT320|XT390|XT502|XT530|XT531|XT532|XT535|XT603|XT610|XT611|XT615|XT681|XT701|XT702|XT711|XT720|XT800|XT806|XT860|XT862|XT875|XT882|XT883|XT894|XT901|XT907|XT909|XT910|XT912|XT928|XT926|XT915|XT919|XT925|XT1021|\\\\bMoto E\\\\b\",\r\n \"Samsung\": \"\\\\bSamsung\\\\b|SM-G9250|GT-19300|SGH-I337|BGT-S5230|GT-B2100|GT-B2700|GT-B2710|GT-B3210|GT-B3310|GT-B3410|GT-B3730|GT-B3740|GT-B5510|GT-B5512|GT-B5722|GT-B6520|GT-B7300|GT-B7320|GT-B7330|GT-B7350|GT-B7510|GT-B7722|GT-B7800|GT-C3010|GT-C3011|GT-C3060|GT-C3200|GT-C3212|GT-C3212I|GT-C3262|GT-C3222|GT-C3300|GT-C3300K|GT-C3303|GT-C3303K|GT-C3310|GT-C3322|GT-C3330|GT-C3350|GT-C3500|GT-C3510|GT-C3530|GT-C3630|GT-C3780|GT-C5010|GT-C5212|GT-C6620|GT-C6625|GT-C6712|GT-E1050|GT-E1070|GT-E1075|GT-E1080|GT-E1081|GT-E1085|GT-E1087|GT-E1100|GT-E1107|GT-E1110|GT-E1120|GT-E1125|GT-E1130|GT-E1160|GT-E1170|GT-E1175|GT-E1180|GT-E1182|GT-E1200|GT-E1210|GT-E1225|GT-E1230|GT-E1390|GT-E2100|GT-E2120|GT-E2121|GT-E2152|GT-E2220|GT-E2222|GT-E2230|GT-E2232|GT-E2250|GT-E2370|GT-E2550|GT-E2652|GT-E3210|GT-E3213|GT-I5500|GT-I5503|GT-I5700|GT-I5800|GT-I5801|GT-I6410|GT-I6420|GT-I7110|GT-I7410|GT-I7500|GT-I8000|GT-I8150|GT-I8160|GT-I8190|GT-I8320|GT-I8330|GT-I8350|GT-I8530|GT-I8700|GT-I8703|GT-I8910|GT-I9000|GT-I9001|GT-I9003|GT-I9010|GT-I9020|GT-I9023|GT-I9070|GT-I9082|GT-I9100|GT-I9103|GT-I9220|GT-I9250|GT-I9300|GT-I9305|GT-I9500|GT-I9505|GT-M3510|GT-M5650|GT-M7500|GT-M7600|GT-M7603|GT-M8800|GT-M8910|GT-N7000|GT-S3110|GT-S3310|GT-S3350|GT-S3353|GT-S3370|GT-S3650|GT-S3653|GT-S3770|GT-S3850|GT-S5210|GT-S5220|GT-S5229|GT-S5230|GT-S5233|GT-S5250|GT-S5253|GT-S5260|GT-S5263|GT-S5270|GT-S5300|GT-S5330|GT-S5350|GT-S5360|GT-S5363|GT-S5369|GT-S5380|GT-S5380D|GT-S5560|GT-S5570|GT-S5600|GT-S5603|GT-S5610|GT-S5620|GT-S5660|GT-S5670|GT-S5690|GT-S5750|GT-S5780|GT-S5830|GT-S5839|GT-S6102|GT-S6500|GT-S7070|GT-S7200|GT-S7220|GT-S7230|GT-S7233|GT-S7250|GT-S7500|GT-S7530|GT-S7550|GT-S7562|GT-S7710|GT-S8000|GT-S8003|GT-S8500|GT-S8530|GT-S8600|SCH-A310|SCH-A530|SCH-A570|SCH-A610|SCH-A630|SCH-A650|SCH-A790|SCH-A795|SCH-A850|SCH-A870|SCH-A890|SCH-A930|SCH-A950|SCH-A970|SCH-A990|SCH-I100|SCH-I110|SCH-I400|SCH-I405|SCH-I500|SCH-I510|SCH-I515|SCH-I600|SCH-I730|SCH-I760|SCH-I770|SCH-I830|SCH-I910|SCH-I920|SCH-I959|SCH-LC11|SCH-N150|SCH-N300|SCH-R100|SCH-R300|SCH-R351|SCH-R400|SCH-R410|SCH-T300|SCH-U310|SCH-U320|SCH-U350|SCH-U360|SCH-U365|SCH-U370|SCH-U380|SCH-U410|SCH-U430|SCH-U450|SCH-U460|SCH-U470|SCH-U490|SCH-U540|SCH-U550|SCH-U620|SCH-U640|SCH-U650|SCH-U660|SCH-U700|SCH-U740|SCH-U750|SCH-U810|SCH-U820|SCH-U900|SCH-U940|SCH-U960|SCS-26UC|SGH-A107|SGH-A117|SGH-A127|SGH-A137|SGH-A157|SGH-A167|SGH-A177|SGH-A187|SGH-A197|SGH-A227|SGH-A237|SGH-A257|SGH-A437|SGH-A517|SGH-A597|SGH-A637|SGH-A657|SGH-A667|SGH-A687|SGH-A697|SGH-A707|SGH-A717|SGH-A727|SGH-A737|SGH-A747|SGH-A767|SGH-A777|SGH-A797|SGH-A817|SGH-A827|SGH-A837|SGH-A847|SGH-A867|SGH-A877|SGH-A887|SGH-A897|SGH-A927|SGH-B100|SGH-B130|SGH-B200|SGH-B220|SGH-C100|SGH-C110|SGH-C120|SGH-C130|SGH-C140|SGH-C160|SGH-C170|SGH-C180|SGH-C200|SGH-C207|SGH-C210|SGH-C225|SGH-C230|SGH-C417|SGH-C450|SGH-D307|SGH-D347|SGH-D357|SGH-D407|SGH-D415|SGH-D780|SGH-D807|SGH-D980|SGH-E105|SGH-E200|SGH-E315|SGH-E316|SGH-E317|SGH-E335|SGH-E590|SGH-E635|SGH-E715|SGH-E890|SGH-F300|SGH-F480|SGH-I200|SGH-I300|SGH-I320|SGH-I550|SGH-I577|SGH-I600|SGH-I607|SGH-I617|SGH-I627|SGH-I637|SGH-I677|SGH-I700|SGH-I717|SGH-I727|SGH-i747M|SGH-I777|SGH-I780|SGH-I827|SGH-I847|SGH-I857|SGH-I896|SGH-I897|SGH-I900|SGH-I907|SGH-I917|SGH-I927|SGH-I937|SGH-I997|SGH-J150|SGH-J200|SGH-L170|SGH-L700|SGH-M110|SGH-M150|SGH-M200|SGH-N105|SGH-N500|SGH-N600|SGH-N620|SGH-N625|SGH-N700|SGH-N710|SGH-P107|SGH-P207|SGH-P300|SGH-P310|SGH-P520|SGH-P735|SGH-P777|SGH-Q105|SGH-R210|SGH-R220|SGH-R225|SGH-S105|SGH-S307|SGH-T109|SGH-T119|SGH-T139|SGH-T209|SGH-T219|SGH-T229|SGH-T239|SGH-T249|SGH-T259|SGH-T309|SGH-T319|SGH-T329|SGH-T339|SGH-T349|SGH-T359|SGH-T369|SGH-T379|SGH-T409|SGH-T429|SGH-T439|SGH-T459|SGH-T469|SGH-T479|SGH-T499|SGH-T509|SGH-T519|SGH-T539|SGH-T559|SGH-T589|SGH-T609|SGH-T619|SGH-T629|SGH-T639|SGH-T659|SGH-T669|SGH-T679|SGH-T709|SGH-T719|SGH-T729|SGH-T739|SGH-T746|SGH-T749|SGH-T759|SGH-T769|SGH-T809|SGH-T819|SGH-T839|SGH-T919|SGH-T929|SGH-T939|SGH-T959|SGH-T989|SGH-U100|SGH-U200|SGH-U800|SGH-V205|SGH-V206|SGH-X100|SGH-X105|SGH-X120|SGH-X140|SGH-X426|SGH-X427|SGH-X475|SGH-X495|SGH-X497|SGH-X507|SGH-X600|SGH-X610|SGH-X620|SGH-X630|SGH-X700|SGH-X820|SGH-X890|SGH-Z130|SGH-Z150|SGH-Z170|SGH-ZX10|SGH-ZX20|SHW-M110|SPH-A120|SPH-A400|SPH-A420|SPH-A460|SPH-A500|SPH-A560|SPH-A600|SPH-A620|SPH-A660|SPH-A700|SPH-A740|SPH-A760|SPH-A790|SPH-A800|SPH-A820|SPH-A840|SPH-A880|SPH-A900|SPH-A940|SPH-A960|SPH-D600|SPH-D700|SPH-D710|SPH-D720|SPH-I300|SPH-I325|SPH-I330|SPH-I350|SPH-I500|SPH-I600|SPH-I700|SPH-L700|SPH-M100|SPH-M220|SPH-M240|SPH-M300|SPH-M305|SPH-M320|SPH-M330|SPH-M350|SPH-M360|SPH-M370|SPH-M380|SPH-M510|SPH-M540|SPH-M550|SPH-M560|SPH-M570|SPH-M580|SPH-M610|SPH-M620|SPH-M630|SPH-M800|SPH-M810|SPH-M850|SPH-M900|SPH-M910|SPH-M920|SPH-M930|SPH-N100|SPH-N200|SPH-N240|SPH-N300|SPH-N400|SPH-Z400|SWC-E100|SCH-i909|GT-N7100|GT-N7105|SCH-I535|SM-N900A|SGH-I317|SGH-T999L|GT-S5360B|GT-I8262|GT-S6802|GT-S6312|GT-S6310|GT-S5312|GT-S5310|GT-I9105|GT-I8510|GT-S6790N|SM-G7105|SM-N9005|GT-S5301|GT-I9295|GT-I9195|SM-C101|GT-S7392|GT-S7560|GT-B7610|GT-I5510|GT-S7582|GT-S7530E|GT-I8750|SM-G9006V|SM-G9008V|SM-G9009D|SM-G900A|SM-G900D|SM-G900F|SM-G900H|SM-G900I|SM-G900J|SM-G900K|SM-G900L|SM-G900M|SM-G900P|SM-G900R4|SM-G900S|SM-G900T|SM-G900V|SM-G900W8|SHV-E160K|SCH-P709|SCH-P729|SM-T2558|GT-I9205|SM-G9350|SM-J120F|SM-G920F|SM-G920V|SM-G930F|SM-N910C\",\r\n \"LG\": \"\\\\bLG\\\\b;|LG[- ]?(C800|C900|E400|E610|E900|E-900|F160|F180K|F180L|F180S|730|855|L160|LS740|LS840|LS970|LU6200|MS690|MS695|MS770|MS840|MS870|MS910|P500|P700|P705|VM696|AS680|AS695|AX840|C729|E970|GS505|272|C395|E739BK|E960|L55C|L75C|LS696|LS860|P769BK|P350|P500|P509|P870|UN272|US730|VS840|VS950|LN272|LN510|LS670|LS855|LW690|MN270|MN510|P509|P769|P930|UN200|UN270|UN510|UN610|US670|US740|US760|UX265|UX840|VN271|VN530|VS660|VS700|VS740|VS750|VS910|VS920|VS930|VX9200|VX11000|AX840A|LW770|P506|P925|P999|E612|D955|D802|MS323)\",\r\n \"Sony\": \"SonyST|SonyLT|SonyEricsson|SonyEricssonLT15iv|LT18i|E10i|LT28h|LT26w|SonyEricssonMT27i|C5303|C6902|C6903|C6906|C6943|D2533\",\r\n \"Asus\": \"Asus.*Galaxy|PadFone.*Mobile\",\r\n \"NokiaLumia\": \"Lumia [0-9]{3,4}\",\r\n \"Micromax\": \"Micromax.*\\\\b(A210|A92|A88|A72|A111|A110Q|A115|A116|A110|A90S|A26|A51|A35|A54|A25|A27|A89|A68|A65|A57|A90)\\\\b\",\r\n \"Palm\": \"PalmSource|Palm\",\r\n \"Vertu\": \"Vertu|Vertu.*Ltd|Vertu.*Ascent|Vertu.*Ayxta|Vertu.*Constellation(F|Quest)?|Vertu.*Monika|Vertu.*Signature\",\r\n \"Pantech\": \"PANTECH|IM-A850S|IM-A840S|IM-A830L|IM-A830K|IM-A830S|IM-A820L|IM-A810K|IM-A810S|IM-A800S|IM-T100K|IM-A725L|IM-A780L|IM-A775C|IM-A770K|IM-A760S|IM-A750K|IM-A740S|IM-A730S|IM-A720L|IM-A710K|IM-A690L|IM-A690S|IM-A650S|IM-A630K|IM-A600S|VEGA PTL21|PT003|P8010|ADR910L|P6030|P6020|P9070|P4100|P9060|P5000|CDM8992|TXT8045|ADR8995|IS11PT|P2030|P6010|P8000|PT002|IS06|CDM8999|P9050|PT001|TXT8040|P2020|P9020|P2000|P7040|P7000|C790\",\r\n \"Fly\": \"IQ230|IQ444|IQ450|IQ440|IQ442|IQ441|IQ245|IQ256|IQ236|IQ255|IQ235|IQ245|IQ275|IQ240|IQ285|IQ280|IQ270|IQ260|IQ250\",\r\n \"Wiko\": \"KITE 4G|HIGHWAY|GETAWAY|STAIRWAY|DARKSIDE|DARKFULL|DARKNIGHT|DARKMOON|SLIDE|WAX 4G|RAINBOW|BLOOM|SUNSET|GOA(?!nna)|LENNY|BARRY|IGGY|OZZY|CINK FIVE|CINK PEAX|CINK PEAX 2|CINK SLIM|CINK SLIM 2|CINK +|CINK KING|CINK PEAX|CINK SLIM|SUBLIM\",\r\n \"iMobile\": \"i-mobile (IQ|i-STYLE|idea|ZAA|Hitz)\",\r\n \"SimValley\": \"\\\\b(SP-80|XT-930|SX-340|XT-930|SX-310|SP-360|SP60|SPT-800|SP-120|SPT-800|SP-140|SPX-5|SPX-8|SP-100|SPX-8|SPX-12)\\\\b\",\r\n \"Wolfgang\": \"AT-B24D|AT-AS50HD|AT-AS40W|AT-AS55HD|AT-AS45q2|AT-B26D|AT-AS50Q\",\r\n \"Alcatel\": \"Alcatel\",\r\n \"Nintendo\": \"Nintendo 3DS\",\r\n \"Amoi\": \"Amoi\",\r\n \"INQ\": \"INQ\",\r\n \"GenericPhone\": \"Tapatalk|PDA;|SAGEM|\\\\bmmp\\\\b|pocket|\\\\bpsp\\\\b|symbian|Smartphone|smartfon|treo|up.browser|up.link|vodafone|\\\\bwap\\\\b|nokia|Series40|Series60|S60|SonyEricsson|N900|MAUI.*WAP.*Browser\"\r\n },\r\n \"tablets\": {\r\n \"iPad\": \"iPad|iPad.*Mobile\",\r\n \"NexusTablet\": \"Android.*Nexus[\\\\s]+(7|9|10)\",\r\n \"SamsungTablet\": \"SAMSUNG.*Tablet|Galaxy.*Tab|SC-01C|GT-P1000|GT-P1003|GT-P1010|GT-P3105|GT-P6210|GT-P6800|GT-P6810|GT-P7100|GT-P7300|GT-P7310|GT-P7500|GT-P7510|SCH-I800|SCH-I815|SCH-I905|SGH-I957|SGH-I987|SGH-T849|SGH-T859|SGH-T869|SPH-P100|GT-P3100|GT-P3108|GT-P3110|GT-P5100|GT-P5110|GT-P6200|GT-P7320|GT-P7511|GT-N8000|GT-P8510|SGH-I497|SPH-P500|SGH-T779|SCH-I705|SCH-I915|GT-N8013|GT-P3113|GT-P5113|GT-P8110|GT-N8010|GT-N8005|GT-N8020|GT-P1013|GT-P6201|GT-P7501|GT-N5100|GT-N5105|GT-N5110|SHV-E140K|SHV-E140L|SHV-E140S|SHV-E150S|SHV-E230K|SHV-E230L|SHV-E230S|SHW-M180K|SHW-M180L|SHW-M180S|SHW-M180W|SHW-M300W|SHW-M305W|SHW-M380K|SHW-M380S|SHW-M380W|SHW-M430W|SHW-M480K|SHW-M480S|SHW-M480W|SHW-M485W|SHW-M486W|SHW-M500W|GT-I9228|SCH-P739|SCH-I925|GT-I9200|GT-P5200|GT-P5210|GT-P5210X|SM-T311|SM-T310|SM-T310X|SM-T210|SM-T210R|SM-T211|SM-P600|SM-P601|SM-P605|SM-P900|SM-P901|SM-T217|SM-T217A|SM-T217S|SM-P6000|SM-T3100|SGH-I467|XE500|SM-T110|GT-P5220|GT-I9200X|GT-N5110X|GT-N5120|SM-P905|SM-T111|SM-T2105|SM-T315|SM-T320|SM-T320X|SM-T321|SM-T520|SM-T525|SM-T530NU|SM-T230NU|SM-T330NU|SM-T900|XE500T1C|SM-P605V|SM-P905V|SM-T337V|SM-T537V|SM-T707V|SM-T807V|SM-P600X|SM-P900X|SM-T210X|SM-T230|SM-T230X|SM-T325|GT-P7503|SM-T531|SM-T330|SM-T530|SM-T705|SM-T705C|SM-T535|SM-T331|SM-T800|SM-T700|SM-T537|SM-T807|SM-P907A|SM-T337A|SM-T537A|SM-T707A|SM-T807A|SM-T237|SM-T807P|SM-P607T|SM-T217T|SM-T337T|SM-T807T|SM-T116NQ|SM-P550|SM-T350|SM-T550|SM-T9000|SM-P9000|SM-T705Y|SM-T805|GT-P3113|SM-T710|SM-T810|SM-T815|SM-T360|SM-T533|SM-T113|SM-T335|SM-T715|SM-T560|SM-T670|SM-T677|SM-T377|SM-T567|SM-T357T|SM-T555|SM-T561|SM-T713|SM-T719|SM-T813|SM-T819|SM-T580|SM-T355Y|SM-T280|SM-T817A|SM-T820|SM-W700|SM-P580|SM-T587\",\r\n \"Kindle\": \"Kindle|Silk.*Accelerated|Android.*\\\\b(KFOT|KFTT|KFJWI|KFJWA|KFOTE|KFSOWI|KFTHWI|KFTHWA|KFAPWI|KFAPWA|WFJWAE|KFSAWA|KFSAWI|KFASWI|KFARWI|KFFOWI|KFGIWI|KFMEWI)\\\\b|Android.*Silk\\/[0-9.]+ like Chrome\\/[0-9.]+ (?!Mobile)\",\r\n \"SurfaceTablet\": \"Windows NT [0-9.]+; ARM;.*(Tablet|ARMBJS)\",\r\n \"HPTablet\": \"HP Slate (7|8|10)|HP ElitePad 900|hp-tablet|EliteBook.*Touch|HP 8|Slate 21|HP SlateBook 10\",\r\n \"AsusTablet\": \"^.*PadFone((?!Mobile).)*$|Transformer|TF101|TF101G|TF300T|TF300TG|TF300TL|TF700T|TF700KL|TF701T|TF810C|ME171|ME301T|ME302C|ME371MG|ME370T|ME372MG|ME172V|ME173X|ME400C|Slider SL101|\\\\bK00F\\\\b|\\\\bK00C\\\\b|\\\\bK00E\\\\b|\\\\bK00L\\\\b|TX201LA|ME176C|ME102A|\\\\bM80TA\\\\b|ME372CL|ME560CG|ME372CG|ME302KL| K010 | K011 | K017 | K01E |ME572C|ME103K|ME170C|ME171C|\\\\bME70C\\\\b|ME581C|ME581CL|ME8510C|ME181C|P01Y|PO1MA|P01Z\",\r\n \"BlackBerryTablet\": \"PlayBook|RIM Tablet\",\r\n \"HTCtablet\": \"HTC_Flyer_P512|HTC Flyer|HTC Jetstream|HTC-P715a|HTC EVO View 4G|PG41200|PG09410\",\r\n \"MotorolaTablet\": \"xoom|sholest|MZ615|MZ605|MZ505|MZ601|MZ602|MZ603|MZ604|MZ606|MZ607|MZ608|MZ609|MZ615|MZ616|MZ617\",\r\n \"NookTablet\": \"Android.*Nook|NookColor|nook browser|BNRV200|BNRV200A|BNTV250|BNTV250A|BNTV400|BNTV600|LogicPD Zoom2\",\r\n \"AcerTablet\": \"Android.*; \\\\b(A100|A101|A110|A200|A210|A211|A500|A501|A510|A511|A700|A701|W500|W500P|W501|W501P|W510|W511|W700|G100|G100W|B1-A71|B1-710|B1-711|A1-810|A1-811|A1-830)\\\\b|W3-810|\\\\bA3-A10\\\\b|\\\\bA3-A11\\\\b|\\\\bA3-A20\\\\b|\\\\bA3-A30\",\r\n \"ToshibaTablet\": \"Android.*(AT100|AT105|AT200|AT205|AT270|AT275|AT300|AT305|AT1S5|AT500|AT570|AT700|AT830)|TOSHIBA.*FOLIO\",\r\n \"LGTablet\": \"\\\\bL-06C|LG-V909|LG-V900|LG-V700|LG-V510|LG-V500|LG-V410|LG-V400|LG-VK810\\\\b\",\r\n \"FujitsuTablet\": \"Android.*\\\\b(F-01D|F-02F|F-05E|F-10D|M532|Q572)\\\\b\",\r\n \"PrestigioTablet\": \"PMP3170B|PMP3270B|PMP3470B|PMP7170B|PMP3370B|PMP3570C|PMP5870C|PMP3670B|PMP5570C|PMP5770D|PMP3970B|PMP3870C|PMP5580C|PMP5880D|PMP5780D|PMP5588C|PMP7280C|PMP7280C3G|PMP7280|PMP7880D|PMP5597D|PMP5597|PMP7100D|PER3464|PER3274|PER3574|PER3884|PER5274|PER5474|PMP5097CPRO|PMP5097|PMP7380D|PMP5297C|PMP5297C_QUAD|PMP812E|PMP812E3G|PMP812F|PMP810E|PMP880TD|PMT3017|PMT3037|PMT3047|PMT3057|PMT7008|PMT5887|PMT5001|PMT5002\",\r\n \"LenovoTablet\": \"Lenovo TAB|Idea(Tab|Pad)( A1|A10| K1|)|ThinkPad([ ]+)?Tablet|YT3-X90L|YT3-X90F|YT3-X90X|Lenovo.*(S2109|S2110|S5000|S6000|K3011|A3000|A3500|A1000|A2107|A2109|A1107|A5500|A7600|B6000|B8000|B8080)(-|)(FL|F|HV|H|)\",\r\n \"DellTablet\": \"Venue 11|Venue 8|Venue 7|Dell Streak 10|Dell Streak 7\",\r\n \"YarvikTablet\": \"Android.*\\\\b(TAB210|TAB211|TAB224|TAB250|TAB260|TAB264|TAB310|TAB360|TAB364|TAB410|TAB411|TAB420|TAB424|TAB450|TAB460|TAB461|TAB464|TAB465|TAB467|TAB468|TAB07-100|TAB07-101|TAB07-150|TAB07-151|TAB07-152|TAB07-200|TAB07-201-3G|TAB07-210|TAB07-211|TAB07-212|TAB07-214|TAB07-220|TAB07-400|TAB07-485|TAB08-150|TAB08-200|TAB08-201-3G|TAB08-201-30|TAB09-100|TAB09-211|TAB09-410|TAB10-150|TAB10-201|TAB10-211|TAB10-400|TAB10-410|TAB13-201|TAB274EUK|TAB275EUK|TAB374EUK|TAB462EUK|TAB474EUK|TAB9-200)\\\\b\",\r\n \"MedionTablet\": \"Android.*\\\\bOYO\\\\b|LIFE.*(P9212|P9514|P9516|S9512)|LIFETAB\",\r\n \"ArnovaTablet\": \"97G4|AN10G2|AN7bG3|AN7fG3|AN8G3|AN8cG3|AN7G3|AN9G3|AN7dG3|AN7dG3ST|AN7dG3ChildPad|AN10bG3|AN10bG3DT|AN9G2\",\r\n \"IntensoTablet\": \"INM8002KP|INM1010FP|INM805ND|Intenso Tab|TAB1004\",\r\n \"IRUTablet\": \"M702pro\",\r\n \"MegafonTablet\": \"MegaFon V9|\\\\bZTE V9\\\\b|Android.*\\\\bMT7A\\\\b\",\r\n \"EbodaTablet\": \"E-Boda (Supreme|Impresspeed|Izzycomm|Essential)\",\r\n \"AllViewTablet\": \"Allview.*(Viva|Alldro|City|Speed|All TV|Frenzy|Quasar|Shine|TX1|AX1|AX2)\",\r\n \"ArchosTablet\": \"\\\\b(101G9|80G9|A101IT)\\\\b|Qilive 97R|Archos5|\\\\bARCHOS (70|79|80|90|97|101|FAMILYPAD|)(b|c|)(G10| Cobalt| TITANIUM(HD|)| Xenon| Neon|XSK| 2| XS 2| PLATINUM| CARBON|GAMEPAD)\\\\b\",\r\n \"AinolTablet\": \"NOVO7|NOVO8|NOVO10|Novo7Aurora|Novo7Basic|NOVO7PALADIN|novo9-Spark\",\r\n \"NokiaLumiaTablet\": \"Lumia 2520\",\r\n \"SonyTablet\": \"Sony.*Tablet|Xperia Tablet|Sony Tablet S|SO-03E|SGPT12|SGPT13|SGPT114|SGPT121|SGPT122|SGPT123|SGPT111|SGPT112|SGPT113|SGPT131|SGPT132|SGPT133|SGPT211|SGPT212|SGPT213|SGP311|SGP312|SGP321|EBRD1101|EBRD1102|EBRD1201|SGP351|SGP341|SGP511|SGP512|SGP521|SGP541|SGP551|SGP621|SGP612|SOT31\",\r\n \"PhilipsTablet\": \"\\\\b(PI2010|PI3000|PI3100|PI3105|PI3110|PI3205|PI3210|PI3900|PI4010|PI7000|PI7100)\\\\b\",\r\n \"CubeTablet\": \"Android.*(K8GT|U9GT|U10GT|U16GT|U17GT|U18GT|U19GT|U20GT|U23GT|U30GT)|CUBE U8GT\",\r\n \"CobyTablet\": \"MID1042|MID1045|MID1125|MID1126|MID7012|MID7014|MID7015|MID7034|MID7035|MID7036|MID7042|MID7048|MID7127|MID8042|MID8048|MID8127|MID9042|MID9740|MID9742|MID7022|MID7010\",\r\n \"MIDTablet\": \"M9701|M9000|M9100|M806|M1052|M806|T703|MID701|MID713|MID710|MID727|MID760|MID830|MID728|MID933|MID125|MID810|MID732|MID120|MID930|MID800|MID731|MID900|MID100|MID820|MID735|MID980|MID130|MID833|MID737|MID960|MID135|MID860|MID736|MID140|MID930|MID835|MID733|MID4X10\",\r\n \"MSITablet\": \"MSI \\\\b(Primo 73K|Primo 73L|Primo 81L|Primo 77|Primo 93|Primo 75|Primo 76|Primo 73|Primo 81|Primo 91|Primo 90|Enjoy 71|Enjoy 7|Enjoy 10)\\\\b\",\r\n \"SMiTTablet\": \"Android.*(\\\\bMID\\\\b|MID-560|MTV-T1200|MTV-PND531|MTV-P1101|MTV-PND530)\",\r\n \"RockChipTablet\": \"Android.*(RK2818|RK2808A|RK2918|RK3066)|RK2738|RK2808A\",\r\n \"FlyTablet\": \"IQ310|Fly Vision\",\r\n \"bqTablet\": \"Android.*(bq)?.*(Elcano|Curie|Edison|Maxwell|Kepler|Pascal|Tesla|Hypatia|Platon|Newton|Livingstone|Cervantes|Avant|Aquaris [E|M]10)|Maxwell.*Lite|Maxwell.*Plus\",\r\n \"HuaweiTablet\": \"MediaPad|MediaPad 7 Youth|IDEOS S7|S7-201c|S7-202u|S7-101|S7-103|S7-104|S7-105|S7-106|S7-201|S7-Slim\",\r\n \"NecTablet\": \"\\\\bN-06D|\\\\bN-08D\",\r\n \"PantechTablet\": \"Pantech.*P4100\",\r\n \"BronchoTablet\": \"Broncho.*(N701|N708|N802|a710)\",\r\n \"VersusTablet\": \"TOUCHPAD.*[78910]|\\\\bTOUCHTAB\\\\b\",\r\n \"ZyncTablet\": \"z1000|Z99 2G|z99|z930|z999|z990|z909|Z919|z900\",\r\n \"PositivoTablet\": \"TB07STA|TB10STA|TB07FTA|TB10FTA\",\r\n \"NabiTablet\": \"Android.*\\\\bNabi\",\r\n \"KoboTablet\": \"Kobo Touch|\\\\bK080\\\\b|\\\\bVox\\\\b Build|\\\\bArc\\\\b Build\",\r\n \"DanewTablet\": \"DSlide.*\\\\b(700|701R|702|703R|704|802|970|971|972|973|974|1010|1012)\\\\b\",\r\n \"TexetTablet\": \"NaviPad|TB-772A|TM-7045|TM-7055|TM-9750|TM-7016|TM-7024|TM-7026|TM-7041|TM-7043|TM-7047|TM-8041|TM-9741|TM-9747|TM-9748|TM-9751|TM-7022|TM-7021|TM-7020|TM-7011|TM-7010|TM-7023|TM-7025|TM-7037W|TM-7038W|TM-7027W|TM-9720|TM-9725|TM-9737W|TM-1020|TM-9738W|TM-9740|TM-9743W|TB-807A|TB-771A|TB-727A|TB-725A|TB-719A|TB-823A|TB-805A|TB-723A|TB-715A|TB-707A|TB-705A|TB-709A|TB-711A|TB-890HD|TB-880HD|TB-790HD|TB-780HD|TB-770HD|TB-721HD|TB-710HD|TB-434HD|TB-860HD|TB-840HD|TB-760HD|TB-750HD|TB-740HD|TB-730HD|TB-722HD|TB-720HD|TB-700HD|TB-500HD|TB-470HD|TB-431HD|TB-430HD|TB-506|TB-504|TB-446|TB-436|TB-416|TB-146SE|TB-126SE\",\r\n \"PlaystationTablet\": \"Playstation.*(Portable|Vita)\",\r\n \"TrekstorTablet\": \"ST10416-1|VT10416-1|ST70408-1|ST702xx-1|ST702xx-2|ST80208|ST97216|ST70104-2|VT10416-2|ST10216-2A|SurfTab\",\r\n \"PyleAudioTablet\": \"\\\\b(PTBL10CEU|PTBL10C|PTBL72BC|PTBL72BCEU|PTBL7CEU|PTBL7C|PTBL92BC|PTBL92BCEU|PTBL9CEU|PTBL9CUK|PTBL9C)\\\\b\",\r\n \"AdvanTablet\": \"Android.* \\\\b(E3A|T3X|T5C|T5B|T3E|T3C|T3B|T1J|T1F|T2A|T1H|T1i|E1C|T1-E|T5-A|T4|E1-B|T2Ci|T1-B|T1-D|O1-A|E1-A|T1-A|T3A|T4i)\\\\b \",\r\n \"DanyTechTablet\": \"Genius Tab G3|Genius Tab S2|Genius Tab Q3|Genius Tab G4|Genius Tab Q4|Genius Tab G-II|Genius TAB GII|Genius TAB GIII|Genius Tab S1\",\r\n \"GalapadTablet\": \"Android.*\\\\bG1\\\\b\",\r\n \"MicromaxTablet\": \"Funbook|Micromax.*\\\\b(P250|P560|P360|P362|P600|P300|P350|P500|P275)\\\\b\",\r\n \"KarbonnTablet\": \"Android.*\\\\b(A39|A37|A34|ST8|ST10|ST7|Smart Tab3|Smart Tab2)\\\\b\",\r\n \"AllFineTablet\": \"Fine7 Genius|Fine7 Shine|Fine7 Air|Fine8 Style|Fine9 More|Fine10 Joy|Fine11 Wide\",\r\n \"PROSCANTablet\": \"\\\\b(PEM63|PLT1023G|PLT1041|PLT1044|PLT1044G|PLT1091|PLT4311|PLT4311PL|PLT4315|PLT7030|PLT7033|PLT7033D|PLT7035|PLT7035D|PLT7044K|PLT7045K|PLT7045KB|PLT7071KG|PLT7072|PLT7223G|PLT7225G|PLT7777G|PLT7810K|PLT7849G|PLT7851G|PLT7852G|PLT8015|PLT8031|PLT8034|PLT8036|PLT8080K|PLT8082|PLT8088|PLT8223G|PLT8234G|PLT8235G|PLT8816K|PLT9011|PLT9045K|PLT9233G|PLT9735|PLT9760G|PLT9770G)\\\\b\",\r\n \"YONESTablet\": \"BQ1078|BC1003|BC1077|RK9702|BC9730|BC9001|IT9001|BC7008|BC7010|BC708|BC728|BC7012|BC7030|BC7027|BC7026\",\r\n \"ChangJiaTablet\": \"TPC7102|TPC7103|TPC7105|TPC7106|TPC7107|TPC7201|TPC7203|TPC7205|TPC7210|TPC7708|TPC7709|TPC7712|TPC7110|TPC8101|TPC8103|TPC8105|TPC8106|TPC8203|TPC8205|TPC8503|TPC9106|TPC9701|TPC97101|TPC97103|TPC97105|TPC97106|TPC97111|TPC97113|TPC97203|TPC97603|TPC97809|TPC97205|TPC10101|TPC10103|TPC10106|TPC10111|TPC10203|TPC10205|TPC10503\",\r\n \"GUTablet\": \"TX-A1301|TX-M9002|Q702|kf026\",\r\n \"PointOfViewTablet\": \"TAB-P506|TAB-navi-7-3G-M|TAB-P517|TAB-P-527|TAB-P701|TAB-P703|TAB-P721|TAB-P731N|TAB-P741|TAB-P825|TAB-P905|TAB-P925|TAB-PR945|TAB-PL1015|TAB-P1025|TAB-PI1045|TAB-P1325|TAB-PROTAB[0-9]+|TAB-PROTAB25|TAB-PROTAB26|TAB-PROTAB27|TAB-PROTAB26XL|TAB-PROTAB2-IPS9|TAB-PROTAB30-IPS9|TAB-PROTAB25XXL|TAB-PROTAB26-IPS10|TAB-PROTAB30-IPS10\",\r\n \"OvermaxTablet\": \"OV-(SteelCore|NewBase|Basecore|Baseone|Exellen|Quattor|EduTab|Solution|ACTION|BasicTab|TeddyTab|MagicTab|Stream|TB-08|TB-09)\",\r\n \"HCLTablet\": \"HCL.*Tablet|Connect-3G-2.0|Connect-2G-2.0|ME Tablet U1|ME Tablet U2|ME Tablet G1|ME Tablet X1|ME Tablet Y2|ME Tablet Sync\",\r\n \"DPSTablet\": \"DPS Dream 9|DPS Dual 7\",\r\n \"VistureTablet\": \"V97 HD|i75 3G|Visture V4( HD)?|Visture V5( HD)?|Visture V10\",\r\n \"CrestaTablet\": \"CTP(-)?810|CTP(-)?818|CTP(-)?828|CTP(-)?838|CTP(-)?888|CTP(-)?978|CTP(-)?980|CTP(-)?987|CTP(-)?988|CTP(-)?989\",\r\n \"MediatekTablet\": \"\\\\bMT8125|MT8389|MT8135|MT8377\\\\b\",\r\n \"ConcordeTablet\": \"Concorde([ ]+)?Tab|ConCorde ReadMan\",\r\n \"GoCleverTablet\": \"GOCLEVER TAB|A7GOCLEVER|M1042|M7841|M742|R1042BK|R1041|TAB A975|TAB A7842|TAB A741|TAB A741L|TAB M723G|TAB M721|TAB A1021|TAB I921|TAB R721|TAB I720|TAB T76|TAB R70|TAB R76.2|TAB R106|TAB R83.2|TAB M813G|TAB I721|GCTA722|TAB I70|TAB I71|TAB S73|TAB R73|TAB R74|TAB R93|TAB R75|TAB R76.1|TAB A73|TAB A93|TAB A93.2|TAB T72|TAB R83|TAB R974|TAB R973|TAB A101|TAB A103|TAB A104|TAB A104.2|R105BK|M713G|A972BK|TAB A971|TAB R974.2|TAB R104|TAB R83.3|TAB A1042\",\r\n \"ModecomTablet\": \"FreeTAB 9000|FreeTAB 7.4|FreeTAB 7004|FreeTAB 7800|FreeTAB 2096|FreeTAB 7.5|FreeTAB 1014|FreeTAB 1001 |FreeTAB 8001|FreeTAB 9706|FreeTAB 9702|FreeTAB 7003|FreeTAB 7002|FreeTAB 1002|FreeTAB 7801|FreeTAB 1331|FreeTAB 1004|FreeTAB 8002|FreeTAB 8014|FreeTAB 9704|FreeTAB 1003\",\r\n \"VoninoTablet\": \"\\\\b(Argus[ _]?S|Diamond[ _]?79HD|Emerald[ _]?78E|Luna[ _]?70C|Onyx[ _]?S|Onyx[ _]?Z|Orin[ _]?HD|Orin[ _]?S|Otis[ _]?S|SpeedStar[ _]?S|Magnet[ _]?M9|Primus[ _]?94[ _]?3G|Primus[ _]?94HD|Primus[ _]?QS|Android.*\\\\bQ8\\\\b|Sirius[ _]?EVO[ _]?QS|Sirius[ _]?QS|Spirit[ _]?S)\\\\b\",\r\n \"ECSTablet\": \"V07OT2|TM105A|S10OT1|TR10CS1\",\r\n \"StorexTablet\": \"eZee[_']?(Tab|Go)[0-9]+|TabLC7|Looney Tunes Tab\",\r\n \"VodafoneTablet\": \"SmartTab([ ]+)?[0-9]+|SmartTabII10|SmartTabII7|VF-1497\",\r\n \"EssentielBTablet\": \"Smart[ ']?TAB[ ]+?[0-9]+|Family[ ']?TAB2\",\r\n \"RossMoorTablet\": \"RM-790|RM-997|RMD-878G|RMD-974R|RMT-705A|RMT-701|RME-601|RMT-501|RMT-711\",\r\n \"iMobileTablet\": \"i-mobile i-note\",\r\n \"TolinoTablet\": \"tolino tab [0-9.]+|tolino shine\",\r\n \"AudioSonicTablet\": \"\\\\bC-22Q|T7-QC|T-17B|T-17P\\\\b\",\r\n \"AMPETablet\": \"Android.* A78 \",\r\n \"SkkTablet\": \"Android.* (SKYPAD|PHOENIX|CYCLOPS)\",\r\n \"TecnoTablet\": \"TECNO P9\",\r\n \"JXDTablet\": \"Android.* \\\\b(F3000|A3300|JXD5000|JXD3000|JXD2000|JXD300B|JXD300|S5800|S7800|S602b|S5110b|S7300|S5300|S602|S603|S5100|S5110|S601|S7100a|P3000F|P3000s|P101|P200s|P1000m|P200m|P9100|P1000s|S6600b|S908|P1000|P300|S18|S6600|S9100)\\\\b\",\r\n \"iJoyTablet\": \"Tablet (Spirit 7|Essentia|Galatea|Fusion|Onix 7|Landa|Titan|Scooby|Deox|Stella|Themis|Argon|Unique 7|Sygnus|Hexen|Finity 7|Cream|Cream X2|Jade|Neon 7|Neron 7|Kandy|Scape|Saphyr 7|Rebel|Biox|Rebel|Rebel 8GB|Myst|Draco 7|Myst|Tab7-004|Myst|Tadeo Jones|Tablet Boing|Arrow|Draco Dual Cam|Aurix|Mint|Amity|Revolution|Finity 9|Neon 9|T9w|Amity 4GB Dual Cam|Stone 4GB|Stone 8GB|Andromeda|Silken|X2|Andromeda II|Halley|Flame|Saphyr 9,7|Touch 8|Planet|Triton|Unique 10|Hexen 10|Memphis 4GB|Memphis 8GB|Onix 10)\",\r\n \"FX2Tablet\": \"FX2 PAD7|FX2 PAD10\",\r\n \"XoroTablet\": \"KidsPAD 701|PAD[ ]?712|PAD[ ]?714|PAD[ ]?716|PAD[ ]?717|PAD[ ]?718|PAD[ ]?720|PAD[ ]?721|PAD[ ]?722|PAD[ ]?790|PAD[ ]?792|PAD[ ]?900|PAD[ ]?9715D|PAD[ ]?9716DR|PAD[ ]?9718DR|PAD[ ]?9719QR|PAD[ ]?9720QR|TelePAD1030|Telepad1032|TelePAD730|TelePAD731|TelePAD732|TelePAD735Q|TelePAD830|TelePAD9730|TelePAD795|MegaPAD 1331|MegaPAD 1851|MegaPAD 2151\",\r\n \"ViewsonicTablet\": \"ViewPad 10pi|ViewPad 10e|ViewPad 10s|ViewPad E72|ViewPad7|ViewPad E100|ViewPad 7e|ViewSonic VB733|VB100a\",\r\n \"OdysTablet\": \"LOOX|XENO10|ODYS[ -](Space|EVO|Xpress|NOON)|\\\\bXELIO\\\\b|Xelio10Pro|XELIO7PHONETAB|XELIO10EXTREME|XELIOPT2|NEO_QUAD10\",\r\n \"CaptivaTablet\": \"CAPTIVA PAD\",\r\n \"IconbitTablet\": \"NetTAB|NT-3702|NT-3702S|NT-3702S|NT-3603P|NT-3603P|NT-0704S|NT-0704S|NT-3805C|NT-3805C|NT-0806C|NT-0806C|NT-0909T|NT-0909T|NT-0907S|NT-0907S|NT-0902S|NT-0902S\",\r\n \"TeclastTablet\": \"T98 4G|\\\\bP80\\\\b|\\\\bX90HD\\\\b|X98 Air|X98 Air 3G|\\\\bX89\\\\b|P80 3G|\\\\bX80h\\\\b|P98 Air|\\\\bX89HD\\\\b|P98 3G|\\\\bP90HD\\\\b|P89 3G|X98 3G|\\\\bP70h\\\\b|P79HD 3G|G18d 3G|\\\\bP79HD\\\\b|\\\\bP89s\\\\b|\\\\bA88\\\\b|\\\\bP10HD\\\\b|\\\\bP19HD\\\\b|G18 3G|\\\\bP78HD\\\\b|\\\\bA78\\\\b|\\\\bP75\\\\b|G17s 3G|G17h 3G|\\\\bP85t\\\\b|\\\\bP90\\\\b|\\\\bP11\\\\b|\\\\bP98t\\\\b|\\\\bP98HD\\\\b|\\\\bG18d\\\\b|\\\\bP85s\\\\b|\\\\bP11HD\\\\b|\\\\bP88s\\\\b|\\\\bA80HD\\\\b|\\\\bA80se\\\\b|\\\\bA10h\\\\b|\\\\bP89\\\\b|\\\\bP78s\\\\b|\\\\bG18\\\\b|\\\\bP85\\\\b|\\\\bA70h\\\\b|\\\\bA70\\\\b|\\\\bG17\\\\b|\\\\bP18\\\\b|\\\\bA80s\\\\b|\\\\bA11s\\\\b|\\\\bP88HD\\\\b|\\\\bA80h\\\\b|\\\\bP76s\\\\b|\\\\bP76h\\\\b|\\\\bP98\\\\b|\\\\bA10HD\\\\b|\\\\bP78\\\\b|\\\\bP88\\\\b|\\\\bA11\\\\b|\\\\bA10t\\\\b|\\\\bP76a\\\\b|\\\\bP76t\\\\b|\\\\bP76e\\\\b|\\\\bP85HD\\\\b|\\\\bP85a\\\\b|\\\\bP86\\\\b|\\\\bP75HD\\\\b|\\\\bP76v\\\\b|\\\\bA12\\\\b|\\\\bP75a\\\\b|\\\\bA15\\\\b|\\\\bP76Ti\\\\b|\\\\bP81HD\\\\b|\\\\bA10\\\\b|\\\\bT760VE\\\\b|\\\\bT720HD\\\\b|\\\\bP76\\\\b|\\\\bP73\\\\b|\\\\bP71\\\\b|\\\\bP72\\\\b|\\\\bT720SE\\\\b|\\\\bC520Ti\\\\b|\\\\bT760\\\\b|\\\\bT720VE\\\\b|T720-3GE|T720-WiFi\",\r\n \"OndaTablet\": \"\\\\b(V975i|Vi30|VX530|V701|Vi60|V701s|Vi50|V801s|V719|Vx610w|VX610W|V819i|Vi10|VX580W|Vi10|V711s|V813|V811|V820w|V820|Vi20|V711|VI30W|V712|V891w|V972|V819w|V820w|Vi60|V820w|V711|V813s|V801|V819|V975s|V801|V819|V819|V818|V811|V712|V975m|V101w|V961w|V812|V818|V971|V971s|V919|V989|V116w|V102w|V973|Vi40)\\\\b[\\\\s]+\",\r\n \"JaytechTablet\": \"TPC-PA762\",\r\n \"BlaupunktTablet\": \"Endeavour 800NG|Endeavour 1010\",\r\n \"DigmaTablet\": \"\\\\b(iDx10|iDx9|iDx8|iDx7|iDxD7|iDxD8|iDsQ8|iDsQ7|iDsQ8|iDsD10|iDnD7|3TS804H|iDsQ11|iDj7|iDs10)\\\\b\",\r\n \"EvolioTablet\": \"ARIA_Mini_wifi|Aria[ _]Mini|Evolio X10|Evolio X7|Evolio X8|\\\\bEvotab\\\\b|\\\\bNeura\\\\b\",\r\n \"LavaTablet\": \"QPAD E704|\\\\bIvoryS\\\\b|E-TAB IVORY|\\\\bE-TAB\\\\b\",\r\n \"AocTablet\": \"MW0811|MW0812|MW0922|MTK8382|MW1031|MW0831|MW0821|MW0931|MW0712\",\r\n \"MpmanTablet\": \"MP11 OCTA|MP10 OCTA|MPQC1114|MPQC1004|MPQC994|MPQC974|MPQC973|MPQC804|MPQC784|MPQC780|\\\\bMPG7\\\\b|MPDCG75|MPDCG71|MPDC1006|MP101DC|MPDC9000|MPDC905|MPDC706HD|MPDC706|MPDC705|MPDC110|MPDC100|MPDC99|MPDC97|MPDC88|MPDC8|MPDC77|MP709|MID701|MID711|MID170|MPDC703|MPQC1010\",\r\n \"CelkonTablet\": \"CT695|CT888|CT[\\\\s]?910|CT7 Tab|CT9 Tab|CT3 Tab|CT2 Tab|CT1 Tab|C820|C720|\\\\bCT-1\\\\b\",\r\n \"WolderTablet\": \"miTab \\\\b(DIAMOND|SPACE|BROOKLYN|NEO|FLY|MANHATTAN|FUNK|EVOLUTION|SKY|GOCAR|IRON|GENIUS|POP|MINT|EPSILON|BROADWAY|JUMP|HOP|LEGEND|NEW AGE|LINE|ADVANCE|FEEL|FOLLOW|LIKE|LINK|LIVE|THINK|FREEDOM|CHICAGO|CLEVELAND|BALTIMORE-GH|IOWA|BOSTON|SEATTLE|PHOENIX|DALLAS|IN 101|MasterChef)\\\\b\",\r\n \"MiTablet\": \"\\\\bMI PAD\\\\b|\\\\bHM NOTE 1W\\\\b\",\r\n \"NibiruTablet\": \"Nibiru M1|Nibiru Jupiter One\",\r\n \"NexoTablet\": \"NEXO NOVA|NEXO 10|NEXO AVIO|NEXO FREE|NEXO GO|NEXO EVO|NEXO 3G|NEXO SMART|NEXO KIDDO|NEXO MOBI\",\r\n \"LeaderTablet\": \"TBLT10Q|TBLT10I|TBL-10WDKB|TBL-10WDKBO2013|TBL-W230V2|TBL-W450|TBL-W500|SV572|TBLT7I|TBA-AC7-8G|TBLT79|TBL-8W16|TBL-10W32|TBL-10WKB|TBL-W100\",\r\n \"UbislateTablet\": \"UbiSlate[\\\\s]?7C\",\r\n \"PocketBookTablet\": \"Pocketbook\",\r\n \"KocasoTablet\": \"\\\\b(TB-1207)\\\\b\",\r\n \"HisenseTablet\": \"\\\\b(F5281|E2371)\\\\b\",\r\n \"Hudl\": \"Hudl HT7S3|Hudl 2\",\r\n \"TelstraTablet\": \"T-Hub2\",\r\n \"GenericTablet\": \"Android.*\\\\b97D\\\\b|Tablet(?!.*PC)|BNTV250A|MID-WCDMA|LogicPD Zoom2|\\\\bA7EB\\\\b|CatNova8|A1_07|CT704|CT1002|\\\\bM721\\\\b|rk30sdk|\\\\bEVOTAB\\\\b|M758A|ET904|ALUMIUM10|Smartfren Tab|Endeavour 1010|Tablet-PC-4|Tagi Tab|\\\\bM6pro\\\\b|CT1020W|arc 10HD|\\\\bTP750\\\\b\"\r\n },\r\n \"oss\": {\r\n \"AndroidOS\": \"Android\",\r\n \"BlackBerryOS\": \"blackberry|\\\\bBB10\\\\b|rim tablet os\",\r\n \"PalmOS\": \"PalmOS|avantgo|blazer|elaine|hiptop|palm|plucker|xiino\",\r\n \"SymbianOS\": \"Symbian|SymbOS|Series60|Series40|SYB-[0-9]+|\\\\bS60\\\\b\",\r\n \"WindowsMobileOS\": \"Windows CE.*(PPC|Smartphone|Mobile|[0-9]{3}x[0-9]{3})|Window Mobile|Windows Phone [0-9.]+|WCE;\",\r\n \"WindowsPhoneOS\": \"Windows Phone 10.0|Windows Phone 8.1|Windows Phone 8.0|Windows Phone OS|XBLWP7|ZuneWP7|Windows NT 6.[23]; ARM;\",\r\n \"iOS\": \"\\\\biPhone.*Mobile|\\\\biPod|\\\\biPad\",\r\n \"MeeGoOS\": \"MeeGo\",\r\n \"MaemoOS\": \"Maemo\",\r\n \"JavaOS\": \"J2ME\\/|\\\\bMIDP\\\\b|\\\\bCLDC\\\\b\",\r\n \"webOS\": \"webOS|hpwOS\",\r\n \"badaOS\": \"\\\\bBada\\\\b\",\r\n \"BREWOS\": \"BREW\"\r\n },\r\n \"uas\": {\r\n \"Chrome\": \"\\\\bCrMo\\\\b|CriOS|Android.*Chrome\\/[.0-9]* (Mobile)?\",\r\n \"Dolfin\": \"\\\\bDolfin\\\\b\",\r\n \"Opera\": \"Opera.*Mini|Opera.*Mobi|Android.*Opera|Mobile.*OPR\\/[0-9.]+|Coast\\/[0-9.]+\",\r\n \"Skyfire\": \"Skyfire\",\r\n \"Edge\": \"Mobile Safari\\/[.0-9]* Edge\",\r\n \"IE\": \"IEMobile|MSIEMobile\",\r\n \"Firefox\": \"fennec|firefox.*maemo|(Mobile|Tablet).*Firefox|Firefox.*Mobile|FxiOS\",\r\n \"Bolt\": \"bolt\",\r\n \"TeaShark\": \"teashark\",\r\n \"Blazer\": \"Blazer\",\r\n \"Safari\": \"Version.*Mobile.*Safari|Safari.*Mobile|MobileSafari\",\r\n \"UCBrowser\": \"UC.*Browser|UCWEB\",\r\n \"baiduboxapp\": \"baiduboxapp\",\r\n \"baidubrowser\": \"baidubrowser\",\r\n \"DiigoBrowser\": \"DiigoBrowser\",\r\n \"Puffin\": \"Puffin\",\r\n \"Mercury\": \"\\\\bMercury\\\\b\",\r\n \"ObigoBrowser\": \"Obigo\",\r\n \"NetFront\": \"NF-Browser\",\r\n \"GenericBrowser\": \"NokiaBrowser|OviBrowser|OneBrowser|TwonkyBeamBrowser|SEMC.*Browser|FlyFlow|Minimo|NetFront|Novarra-Vision|MQQBrowser|MicroMessenger\",\r\n \"PaleMoon\": \"Android.*PaleMoon|Mobile.*PaleMoon\"\r\n },\r\n \"props\": {\r\n \"Mobile\": \"Mobile\\/[VER]\",\r\n \"Build\": \"Build\\/[VER]\",\r\n \"Version\": \"Version\\/[VER]\",\r\n \"VendorID\": \"VendorID\\/[VER]\",\r\n \"iPad\": \"iPad.*CPU[a-z ]+[VER]\",\r\n \"iPhone\": \"iPhone.*CPU[a-z ]+[VER]\",\r\n \"iPod\": \"iPod.*CPU[a-z ]+[VER]\",\r\n \"Kindle\": \"Kindle\\/[VER]\",\r\n \"Chrome\": [\r\n \"Chrome\\/[VER]\",\r\n \"CriOS\\/[VER]\",\r\n \"CrMo\\/[VER]\"\r\n ],\r\n \"Coast\": [\r\n \"Coast\\/[VER]\"\r\n ],\r\n \"Dolfin\": \"Dolfin\\/[VER]\",\r\n \"Firefox\": [\r\n \"Firefox\\/[VER]\",\r\n \"FxiOS\\/[VER]\"\r\n ],\r\n \"Fennec\": \"Fennec\\/[VER]\",\r\n \"Edge\": \"Edge\\/[VER]\",\r\n \"IE\": [\r\n \"IEMobile\\/[VER];\",\r\n \"IEMobile [VER]\",\r\n \"MSIE [VER];\",\r\n \"Trident\\/[0-9.]+;.*rv:[VER]\"\r\n ],\r\n \"NetFront\": \"NetFront\\/[VER]\",\r\n \"NokiaBrowser\": \"NokiaBrowser\\/[VER]\",\r\n \"Opera\": [\r\n \" OPR\\/[VER]\",\r\n \"Opera Mini\\/[VER]\",\r\n \"Version\\/[VER]\"\r\n ],\r\n \"Opera Mini\": \"Opera Mini\\/[VER]\",\r\n \"Opera Mobi\": \"Version\\/[VER]\",\r\n \"UC Browser\": \"UC Browser[VER]\",\r\n \"MQQBrowser\": \"MQQBrowser\\/[VER]\",\r\n \"MicroMessenger\": \"MicroMessenger\\/[VER]\",\r\n \"baiduboxapp\": \"baiduboxapp\\/[VER]\",\r\n \"baidubrowser\": \"baidubrowser\\/[VER]\",\r\n \"SamsungBrowser\": \"SamsungBrowser\\/[VER]\",\r\n \"Iron\": \"Iron\\/[VER]\",\r\n \"Safari\": [\r\n \"Version\\/[VER]\",\r\n \"Safari\\/[VER]\"\r\n ],\r\n \"Skyfire\": \"Skyfire\\/[VER]\",\r\n \"Tizen\": \"Tizen\\/[VER]\",\r\n \"Webkit\": \"webkit[ \\/][VER]\",\r\n \"PaleMoon\": \"PaleMoon\\/[VER]\",\r\n \"Gecko\": \"Gecko\\/[VER]\",\r\n \"Trident\": \"Trident\\/[VER]\",\r\n \"Presto\": \"Presto\\/[VER]\",\r\n \"Goanna\": \"Goanna\\/[VER]\",\r\n \"iOS\": \" \\\\bi?OS\\\\b [VER][ ;]{1}\",\r\n \"Android\": \"Android [VER]\",\r\n \"BlackBerry\": [\r\n \"BlackBerry[\\\\w]+\\/[VER]\",\r\n \"BlackBerry.*Version\\/[VER]\",\r\n \"Version\\/[VER]\"\r\n ],\r\n \"BREW\": \"BREW [VER]\",\r\n \"Java\": \"Java\\/[VER]\",\r\n \"Windows Phone OS\": [\r\n \"Windows Phone OS [VER]\",\r\n \"Windows Phone [VER]\"\r\n ],\r\n \"Windows Phone\": \"Windows Phone [VER]\",\r\n \"Windows CE\": \"Windows CE\\/[VER]\",\r\n \"Windows NT\": \"Windows NT [VER]\",\r\n \"Symbian\": [\r\n \"SymbianOS\\/[VER]\",\r\n \"Symbian\\/[VER]\"\r\n ],\r\n \"webOS\": [\r\n \"webOS\\/[VER]\",\r\n \"hpwOS\\/[VER];\"\r\n ]\r\n },\r\n \"utils\": {\r\n \"Bot\": \"Googlebot|facebookexternalhit|AdsBot-Google|Google Keyword Suggestion|Facebot|YandexBot|YandexMobileBot|bingbot|ia_archiver|AhrefsBot|Ezooms|GSLFbot|WBSearchBot|Twitterbot|TweetmemeBot|Twikle|PaperLiBot|Wotbox|UnwindFetchor|Exabot|MJ12bot|YandexImages|TurnitinBot|Pingdom\",\r\n \"MobileBot\": \"Googlebot-Mobile|AdsBot-Google-Mobile|YahooSeeker\\/M1A1-R2D2\",\r\n \"DesktopMode\": \"WPDesktop\",\r\n \"TV\": \"SonyDTV|HbbTV\",\r\n \"WebKit\": \"(webkit)[ \\/]([\\\\w.]+)\",\r\n \"Console\": \"\\\\b(Nintendo|Nintendo WiiU|Nintendo 3DS|PLAYSTATION|Xbox)\\\\b\",\r\n \"Watch\": \"SM-V700\"\r\n }\r\n};\r\n\r\n // following patterns come from http://detectmobilebrowsers.com/\r\n impl.detectMobileBrowsers = {\r\n fullPattern: /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i,\r\n shortPattern: /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i,\r\n tabletPattern: /android|ipad|playbook|silk/i\r\n };\r\n\r\n var hasOwnProp = Object.prototype.hasOwnProperty,\r\n isArray;\r\n\r\n impl.FALLBACK_PHONE = 'UnknownPhone';\r\n impl.FALLBACK_TABLET = 'UnknownTablet';\r\n impl.FALLBACK_MOBILE = 'UnknownMobile';\r\n\r\n isArray = ('isArray' in Array) ?\r\n Array.isArray : function (value) { return Object.prototype.toString.call(value) === '[object Array]'; };\r\n\r\n function equalIC(a, b) {\r\n return a != null && b != null && a.toLowerCase() === b.toLowerCase();\r\n }\r\n\r\n function containsIC(array, value) {\r\n var valueLC, i, len = array.length;\r\n if (!len || !value) {\r\n return false;\r\n }\r\n valueLC = value.toLowerCase();\r\n for (i = 0; i < len; ++i) {\r\n if (valueLC === array[i].toLowerCase()) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n function convertPropsToRegExp(object) {\r\n for (var key in object) {\r\n if (hasOwnProp.call(object, key)) {\r\n object[key] = new RegExp(object[key], 'i');\r\n }\r\n }\r\n }\r\n\r\n (function init() {\r\n var key, values, value, i, len, verPos, mobileDetectRules = impl.mobileDetectRules;\r\n for (key in mobileDetectRules.props) {\r\n if (hasOwnProp.call(mobileDetectRules.props, key)) {\r\n values = mobileDetectRules.props[key];\r\n if (!isArray(values)) {\r\n values = [values];\r\n }\r\n len = values.length;\r\n for (i = 0; i < len; ++i) {\r\n value = values[i];\r\n verPos = value.indexOf('[VER]');\r\n if (verPos >= 0) {\r\n value = value.substring(0, verPos) + '([\\\\w._\\\\+]+)' + value.substring(verPos + 5);\r\n }\r\n values[i] = new RegExp(value, 'i');\r\n }\r\n mobileDetectRules.props[key] = values;\r\n }\r\n }\r\n convertPropsToRegExp(mobileDetectRules.oss);\r\n convertPropsToRegExp(mobileDetectRules.phones);\r\n convertPropsToRegExp(mobileDetectRules.tablets);\r\n convertPropsToRegExp(mobileDetectRules.uas);\r\n convertPropsToRegExp(mobileDetectRules.utils);\r\n\r\n // copy some patterns to oss0 which are tested first (see issue#15)\r\n mobileDetectRules.oss0 = {\r\n WindowsPhoneOS: mobileDetectRules.oss.WindowsPhoneOS,\r\n WindowsMobileOS: mobileDetectRules.oss.WindowsMobileOS\r\n };\r\n }());\r\n\r\n /**\r\n * Test userAgent string against a set of rules and find the first matched key.\r\n * @param {Object} rules (key is String, value is RegExp)\r\n * @param {String} userAgent the navigator.userAgent (or HTTP-Header 'User-Agent').\r\n * @returns {String|null} the matched key if found, otherwise null\r\n * @private\r\n */\r\n impl.findMatch = function(rules, userAgent) {\r\n for (var key in rules) {\r\n if (hasOwnProp.call(rules, key)) {\r\n if (rules[key].test(userAgent)) {\r\n return key;\r\n }\r\n }\r\n }\r\n return null;\r\n };\r\n\r\n /**\r\n * Test userAgent string against a set of rules and return an array of matched keys.\r\n * @param {Object} rules (key is String, value is RegExp)\r\n * @param {String} userAgent the navigator.userAgent (or HTTP-Header 'User-Agent').\r\n * @returns {Array} an array of matched keys, may be empty when there is no match, but not null\r\n * @private\r\n */\r\n impl.findMatches = function(rules, userAgent) {\r\n var result = [];\r\n for (var key in rules) {\r\n if (hasOwnProp.call(rules, key)) {\r\n if (rules[key].test(userAgent)) {\r\n result.push(key);\r\n }\r\n }\r\n }\r\n return result;\r\n };\r\n\r\n /**\r\n * Check the version of the given property in the User-Agent.\r\n *\r\n * @param {String} propertyName\r\n * @param {String} userAgent\r\n * @return {String} version or null if version not found\r\n * @private\r\n */\r\n impl.getVersionStr = function (propertyName, userAgent) {\r\n var props = impl.mobileDetectRules.props, patterns, i, len, match;\r\n if (hasOwnProp.call(props, propertyName)) {\r\n patterns = props[propertyName];\r\n len = patterns.length;\r\n for (i = 0; i < len; ++i) {\r\n match = patterns[i].exec(userAgent);\r\n if (match !== null) {\r\n return match[1];\r\n }\r\n }\r\n }\r\n return null;\r\n };\r\n\r\n /**\r\n * Check the version of the given property in the User-Agent.\r\n * Will return a float number. (eg. 2_0 will return 2.0, 4.3.1 will return 4.31)\r\n *\r\n * @param {String} propertyName\r\n * @param {String} userAgent\r\n * @return {Number} version or NaN if version not found\r\n * @private\r\n */\r\n impl.getVersion = function (propertyName, userAgent) {\r\n var version = impl.getVersionStr(propertyName, userAgent);\r\n return version ? impl.prepareVersionNo(version) : NaN;\r\n };\r\n\r\n /**\r\n * Prepare the version number.\r\n *\r\n * @param {String} version\r\n * @return {Number} the version number as a floating number\r\n * @private\r\n */\r\n impl.prepareVersionNo = function (version) {\r\n var numbers;\r\n\r\n numbers = version.split(/[a-z._ \\/\\-]/i);\r\n if (numbers.length === 1) {\r\n version = numbers[0];\r\n }\r\n if (numbers.length > 1) {\r\n version = numbers[0] + '.';\r\n numbers.shift();\r\n version += numbers.join('');\r\n }\r\n return Number(version);\r\n };\r\n\r\n impl.isMobileFallback = function (userAgent) {\r\n return impl.detectMobileBrowsers.fullPattern.test(userAgent) ||\r\n impl.detectMobileBrowsers.shortPattern.test(userAgent.substr(0,4));\r\n };\r\n\r\n impl.isTabletFallback = function (userAgent) {\r\n return impl.detectMobileBrowsers.tabletPattern.test(userAgent);\r\n };\r\n\r\n impl.prepareDetectionCache = function (cache, userAgent, maxPhoneWidth) {\r\n if (cache.mobile !== undefined) {\r\n return;\r\n }\r\n var phone, tablet, phoneSized;\r\n\r\n // first check for stronger tablet rules, then phone (see issue#5)\r\n tablet = impl.findMatch(impl.mobileDetectRules.tablets, userAgent);\r\n if (tablet) {\r\n cache.mobile = cache.tablet = tablet;\r\n cache.phone = null;\r\n return; // unambiguously identified as tablet\r\n }\r\n\r\n phone = impl.findMatch(impl.mobileDetectRules.phones, userAgent);\r\n if (phone) {\r\n cache.mobile = cache.phone = phone;\r\n cache.tablet = null;\r\n return; // unambiguously identified as phone\r\n }\r\n\r\n // our rules haven't found a match -> try more general fallback rules\r\n if (impl.isMobileFallback(userAgent)) {\r\n phoneSized = MobileDetect.isPhoneSized(maxPhoneWidth);\r\n if (phoneSized === undefined) {\r\n cache.mobile = impl.FALLBACK_MOBILE;\r\n cache.tablet = cache.phone = null;\r\n } else if (phoneSized) {\r\n cache.mobile = cache.phone = impl.FALLBACK_PHONE;\r\n cache.tablet = null;\r\n } else {\r\n cache.mobile = cache.tablet = impl.FALLBACK_TABLET;\r\n cache.phone = null;\r\n }\r\n } else if (impl.isTabletFallback(userAgent)) {\r\n cache.mobile = cache.tablet = impl.FALLBACK_TABLET;\r\n cache.phone = null;\r\n } else {\r\n // not mobile at all!\r\n cache.mobile = cache.tablet = cache.phone = null;\r\n }\r\n };\r\n\r\n // t is a reference to a MobileDetect instance\r\n impl.mobileGrade = function (t) {\r\n // impl note:\r\n // To keep in sync w/ Mobile_Detect.php easily, the following code is tightly aligned to the PHP version.\r\n // When changes are made in Mobile_Detect.php, copy this method and replace:\r\n // $this-> / t.\r\n // self::MOBILE_GRADE_(.) / '$1'\r\n // , self::VERSION_TYPE_FLOAT / (nothing)\r\n // isIOS() / os('iOS')\r\n // [reg] / (nothing) <-- jsdelivr complaining about unescaped unicode character U+00AE\r\n var $isMobile = t.mobile() !== null;\r\n\r\n if (\r\n // Apple iOS 3.2-5.1 - Tested on the original iPad (4.3 / 5.0), iPad 2 (4.3), iPad 3 (5.1), original iPhone (3.1), iPhone 3 (3.2), 3GS (4.3), 4 (4.3 / 5.0), and 4S (5.1)\r\n t.os('iOS') && t.version('iPad')>=4.3 ||\r\n t.os('iOS') && t.version('iPhone')>=3.1 ||\r\n t.os('iOS') && t.version('iPod')>=3.1 ||\r\n\r\n // Android 2.1-2.3 - Tested on the HTC Incredible (2.2), original Droid (2.2), HTC Aria (2.1), Google Nexus S (2.3). Functional on 1.5 & 1.6 but performance may be sluggish, tested on Google G1 (1.5)\r\n // Android 3.1 (Honeycomb) - Tested on the Samsung Galaxy Tab 10.1 and Motorola XOOM\r\n // Android 4.0 (ICS) - Tested on a Galaxy Nexus. Note: transition performance can be poor on upgraded devices\r\n // Android 4.1 (Jelly Bean) - Tested on a Galaxy Nexus and Galaxy 7\r\n ( t.version('Android')>2.1 && t.is('Webkit') ) ||\r\n\r\n // Windows Phone 7-7.5 - Tested on the HTC Surround (7.0) HTC Trophy (7.5), LG-E900 (7.5), Nokia Lumia 800\r\n t.version('Windows Phone OS')>=7.0 ||\r\n\r\n // Blackberry 7 - Tested on BlackBerry Torch 9810\r\n // Blackberry 6.0 - Tested on the Torch 9800 and Style 9670\r\n t.is('BlackBerry') && t.version('BlackBerry')>=6.0 ||\r\n // Blackberry Playbook (1.0-2.0) - Tested on PlayBook\r\n t.match('Playbook.*Tablet') ||\r\n\r\n // Palm WebOS (1.4-2.0) - Tested on the Palm Pixi (1.4), Pre (1.4), Pre 2 (2.0)\r\n ( t.version('webOS')>=1.4 && t.match('Palm|Pre|Pixi') ) ||\r\n // Palm WebOS 3.0 - Tested on HP TouchPad\r\n t.match('hp.*TouchPad') ||\r\n\r\n // Firefox Mobile (12 Beta) - Tested on Android 2.3 device\r\n ( t.is('Firefox') && t.version('Firefox')>=12 ) ||\r\n\r\n // Chrome for Android - Tested on Android 4.0, 4.1 device\r\n ( t.is('Chrome') && t.is('AndroidOS') && t.version('Android')>=4.0 ) ||\r\n\r\n // Skyfire 4.1 - Tested on Android 2.3 device\r\n ( t.is('Skyfire') && t.version('Skyfire')>=4.1 && t.is('AndroidOS') && t.version('Android')>=2.3 ) ||\r\n\r\n // Opera Mobile 11.5-12: Tested on Android 2.3\r\n ( t.is('Opera') && t.version('Opera Mobi')>11 && t.is('AndroidOS') ) ||\r\n\r\n // Meego 1.2 - Tested on Nokia 950 and N9\r\n t.is('MeeGoOS') ||\r\n\r\n // Tizen (pre-release) - Tested on early hardware\r\n t.is('Tizen') ||\r\n\r\n // Samsung Bada 2.0 - Tested on a Samsung Wave 3, Dolphin browser\r\n // @todo: more tests here!\r\n t.is('Dolfin') && t.version('Bada')>=2.0 ||\r\n\r\n // UC Browser - Tested on Android 2.3 device\r\n ( (t.is('UC Browser') || t.is('Dolfin')) && t.version('Android')>=2.3 ) ||\r\n\r\n // Kindle 3 and Fire - Tested on the built-in WebKit browser for each\r\n ( t.match('Kindle Fire') ||\r\n t.is('Kindle') && t.version('Kindle')>=3.0 ) ||\r\n\r\n // Nook Color 1.4.1 - Tested on original Nook Color, not Nook Tablet\r\n t.is('AndroidOS') && t.is('NookTablet') ||\r\n\r\n // Chrome Desktop 11-21 - Tested on OS X 10.7 and Windows 7\r\n t.version('Chrome')>=11 && !$isMobile ||\r\n\r\n // Safari Desktop 4-5 - Tested on OS X 10.7 and Windows 7\r\n t.version('Safari')>=5.0 && !$isMobile ||\r\n\r\n // Firefox Desktop 4-13 - Tested on OS X 10.7 and Windows 7\r\n t.version('Firefox')>=4.0 && !$isMobile ||\r\n\r\n // Internet Explorer 7-9 - Tested on Windows XP, Vista and 7\r\n t.version('MSIE')>=7.0 && !$isMobile ||\r\n\r\n // Opera Desktop 10-12 - Tested on OS X 10.7 and Windows 7\r\n // @reference: http://my.opera.com/community/openweb/idopera/\r\n t.version('Opera')>=10 && !$isMobile\r\n\r\n ){\r\n return 'A';\r\n }\r\n\r\n if (\r\n t.os('iOS') && t.version('iPad')<4.3 ||\r\n t.os('iOS') && t.version('iPhone')<3.1 ||\r\n t.os('iOS') && t.version('iPod')<3.1 ||\r\n\r\n // Blackberry 5.0: Tested on the Storm 2 9550, Bold 9770\r\n t.is('Blackberry') && t.version('BlackBerry')>=5 && t.version('BlackBerry')<6 ||\r\n\r\n //Opera Mini (5.0-6.5) - Tested on iOS 3.2/4.3 and Android 2.3\r\n ( t.version('Opera Mini')>=5.0 && t.version('Opera Mini')<=6.5 &&\r\n (t.version('Android')>=2.3 || t.is('iOS')) ) ||\r\n\r\n // Nokia Symbian^3 - Tested on Nokia N8 (Symbian^3), C7 (Symbian^3), also works on N97 (Symbian^1)\r\n t.match('NokiaN8|NokiaC7|N97.*Series60|Symbian/3') ||\r\n\r\n // @todo: report this (tested on Nokia N71)\r\n t.version('Opera Mobi')>=11 && t.is('SymbianOS')\r\n ){\r\n return 'B';\r\n }\r\n\r\n if (\r\n // Blackberry 4.x - Tested on the Curve 8330\r\n t.version('BlackBerry')<5.0 ||\r\n // Windows Mobile - Tested on the HTC Leo (WinMo 5.2)\r\n t.match('MSIEMobile|Windows CE.*Mobile') || t.version('Windows Mobile')<=5.2\r\n\r\n ){\r\n return 'C';\r\n }\r\n\r\n //All older smartphone platforms and featurephones - Any device that doesn't support media queries\r\n //will receive the basic, C grade experience.\r\n return 'C';\r\n };\r\n\r\n impl.detectOS = function (ua) {\r\n return impl.findMatch(impl.mobileDetectRules.oss0, ua) ||\r\n impl.findMatch(impl.mobileDetectRules.oss, ua);\r\n };\r\n\r\n impl.getDeviceSmallerSide = function () {\r\n return window.screen.width < window.screen.height ?\r\n window.screen.width :\r\n window.screen.height;\r\n };\r\n\r\n /**\r\n * Constructor for MobileDetect object.\r\n *
    \r\n * Such an object will keep a reference to the given user-agent string and cache most of the detect queries.
    \r\n *
    \r\n * Find information how to download and install:\r\n * github.com/hgoebl/mobile-detect.js/\r\n *
    \r\n *\r\n * @example
    \r\n     *     var md = new MobileDetect(window.navigator.userAgent);\r\n     *     if (md.mobile()) {\r\n     *         location.href = (md.mobileGrade() === 'A') ? '/mobile/' : '/lynx/';\r\n     *     }\r\n     * 
    \r\n *\r\n * @param {string} userAgent typically taken from window.navigator.userAgent or http_header['User-Agent']\r\n * @param {number} [maxPhoneWidth=600] only for browsers specify a value for the maximum\r\n * width of smallest device side (in logical \"CSS\" pixels) until a device detected as mobile will be handled\r\n * as phone.\r\n * This is only used in cases where the device cannot be classified as phone or tablet.
    \r\n * See Declaring Tablet Layouts\r\n * for Android.
    \r\n * If you provide a value < 0, then this \"fuzzy\" check is disabled.\r\n * @constructor\r\n * @global\r\n */\r\n function MobileDetect(userAgent, maxPhoneWidth) {\r\n this.ua = userAgent || '';\r\n this._cache = {};\r\n //600dp is typical 7\" tablet minimum width\r\n this.maxPhoneWidth = maxPhoneWidth || 600;\r\n }\r\n\r\n MobileDetect.prototype = {\r\n constructor: MobileDetect,\r\n\r\n /**\r\n * Returns the detected phone or tablet type or null if it is not a mobile device.\r\n *
    \r\n * For a list of possible return values see {@link MobileDetect#phone} and {@link MobileDetect#tablet}.
    \r\n *
    \r\n * If the device is not detected by the regular expressions from Mobile-Detect, a test is made against\r\n * the patterns of detectmobilebrowsers.com. If this test\r\n * is positive, a value of UnknownPhone, UnknownTablet or\r\n * UnknownMobile is returned.
    \r\n * When used in browser, the decision whether phone or tablet is made based on screen.width/height.
    \r\n *
    \r\n * When used server-side (node.js), there is no way to tell the difference between UnknownTablet\r\n * and UnknownMobile, so you will get UnknownMobile here.
    \r\n * Be aware that since v1.0.0 in this special case you will get UnknownMobile only for:\r\n * {@link MobileDetect#mobile}, not for {@link MobileDetect#phone} and {@link MobileDetect#tablet}.\r\n * In versions before v1.0.0 all 3 methods returned UnknownMobile which was tedious to use.\r\n *
    \r\n * In most cases you will use the return value just as a boolean.\r\n *\r\n * @returns {String} the key for the phone family or tablet family, e.g. \"Nexus\".\r\n * @function MobileDetect#mobile\r\n */\r\n mobile: function () {\r\n impl.prepareDetectionCache(this._cache, this.ua, this.maxPhoneWidth);\r\n return this._cache.mobile;\r\n },\r\n\r\n /**\r\n * Returns the detected phone type/family string or null.\r\n *
    \r\n * The returned tablet (family or producer) is one of following keys:
    \r\n *
    iPhone, BlackBerry, HTC, Nexus, Dell, Motorola, Samsung, LG, Sony, Asus,\r\n * NokiaLumia, Micromax, Palm, Vertu, Pantech, Fly, Wiko, iMobile, SimValley,\r\n * Wolfgang, Alcatel, Nintendo, Amoi, INQ, GenericPhone
    \r\n *
    \r\n * If the device is not detected by the regular expressions from Mobile-Detect, a test is made against\r\n * the patterns of detectmobilebrowsers.com. If this test\r\n * is positive, a value of UnknownPhone or UnknownMobile is returned.
    \r\n * When used in browser, the decision whether phone or tablet is made based on screen.width/height.
    \r\n *
    \r\n * When used server-side (node.js), there is no way to tell the difference between UnknownTablet\r\n * and UnknownMobile, so you will get null here, while {@link MobileDetect#mobile}\r\n * will return UnknownMobile.
    \r\n * Be aware that since v1.0.0 in this special case you will get UnknownMobile only for:\r\n * {@link MobileDetect#mobile}, not for {@link MobileDetect#phone} and {@link MobileDetect#tablet}.\r\n * In versions before v1.0.0 all 3 methods returned UnknownMobile which was tedious to use.\r\n *
    \r\n * In most cases you will use the return value just as a boolean.\r\n *\r\n * @returns {String} the key of the phone family or producer, e.g. \"iPhone\"\r\n * @function MobileDetect#phone\r\n */\r\n phone: function () {\r\n impl.prepareDetectionCache(this._cache, this.ua, this.maxPhoneWidth);\r\n return this._cache.phone;\r\n },\r\n\r\n /**\r\n * Returns the detected tablet type/family string or null.\r\n *
    \r\n * The returned tablet (family or producer) is one of following keys:
    \r\n *
    iPad, NexusTablet, SamsungTablet, Kindle, SurfaceTablet, HPTablet, AsusTablet,\r\n * BlackBerryTablet, HTCtablet, MotorolaTablet, NookTablet, AcerTablet,\r\n * ToshibaTablet, LGTablet, FujitsuTablet, PrestigioTablet, LenovoTablet,\r\n * DellTablet, YarvikTablet, MedionTablet, ArnovaTablet, IntensoTablet, IRUTablet,\r\n * MegafonTablet, EbodaTablet, AllViewTablet, ArchosTablet, AinolTablet,\r\n * NokiaLumiaTablet, SonyTablet, PhilipsTablet, CubeTablet, CobyTablet, MIDTablet,\r\n * MSITablet, SMiTTablet, RockChipTablet, FlyTablet, bqTablet, HuaweiTablet,\r\n * NecTablet, PantechTablet, BronchoTablet, VersusTablet, ZyncTablet,\r\n * PositivoTablet, NabiTablet, KoboTablet, DanewTablet, TexetTablet,\r\n * PlaystationTablet, TrekstorTablet, PyleAudioTablet, AdvanTablet,\r\n * DanyTechTablet, GalapadTablet, MicromaxTablet, KarbonnTablet, AllFineTablet,\r\n * PROSCANTablet, YONESTablet, ChangJiaTablet, GUTablet, PointOfViewTablet,\r\n * OvermaxTablet, HCLTablet, DPSTablet, VistureTablet, CrestaTablet,\r\n * MediatekTablet, ConcordeTablet, GoCleverTablet, ModecomTablet, VoninoTablet,\r\n * ECSTablet, StorexTablet, VodafoneTablet, EssentielBTablet, RossMoorTablet,\r\n * iMobileTablet, TolinoTablet, AudioSonicTablet, AMPETablet, SkkTablet,\r\n * TecnoTablet, JXDTablet, iJoyTablet, FX2Tablet, XoroTablet, ViewsonicTablet,\r\n * OdysTablet, CaptivaTablet, IconbitTablet, TeclastTablet, OndaTablet,\r\n * JaytechTablet, BlaupunktTablet, DigmaTablet, EvolioTablet, LavaTablet,\r\n * AocTablet, MpmanTablet, CelkonTablet, WolderTablet, MiTablet, NibiruTablet,\r\n * NexoTablet, LeaderTablet, UbislateTablet, PocketBookTablet, KocasoTablet,\r\n * HisenseTablet, Hudl, TelstraTablet, GenericTablet
    \r\n *
    \r\n * If the device is not detected by the regular expressions from Mobile-Detect, a test is made against\r\n * the patterns of detectmobilebrowsers.com. If this test\r\n * is positive, a value of UnknownTablet or UnknownMobile is returned.
    \r\n * When used in browser, the decision whether phone or tablet is made based on screen.width/height.
    \r\n *
    \r\n * When used server-side (node.js), there is no way to tell the difference between UnknownTablet\r\n * and UnknownMobile, so you will get null here, while {@link MobileDetect#mobile}\r\n * will return UnknownMobile.
    \r\n * Be aware that since v1.0.0 in this special case you will get UnknownMobile only for:\r\n * {@link MobileDetect#mobile}, not for {@link MobileDetect#phone} and {@link MobileDetect#tablet}.\r\n * In versions before v1.0.0 all 3 methods returned UnknownMobile which was tedious to use.\r\n *
    \r\n * In most cases you will use the return value just as a boolean.\r\n *\r\n * @returns {String} the key of the tablet family or producer, e.g. \"SamsungTablet\"\r\n * @function MobileDetect#tablet\r\n */\r\n tablet: function () {\r\n impl.prepareDetectionCache(this._cache, this.ua, this.maxPhoneWidth);\r\n return this._cache.tablet;\r\n },\r\n\r\n /**\r\n * Returns the (first) detected user-agent string or null.\r\n *
    \r\n * The returned user-agent is one of following keys:
    \r\n *
    Chrome, Dolfin, Opera, Skyfire, Edge, IE, Firefox, Bolt, TeaShark, Blazer,\r\n * Safari, UCBrowser, baiduboxapp, baidubrowser, DiigoBrowser, Puffin, Mercury,\r\n * ObigoBrowser, NetFront, GenericBrowser, PaleMoon
    \r\n *
    \r\n * In most cases calling {@link MobileDetect#userAgent} will be sufficient. But there are rare\r\n * cases where a mobile device pretends to be more than one particular browser. You can get the\r\n * list of all matches with {@link MobileDetect#userAgents} or check for a particular value by\r\n * providing one of the defined keys as first argument to {@link MobileDetect#is}.\r\n *\r\n * @returns {String} the key for the detected user-agent or null\r\n * @function MobileDetect#userAgent\r\n */\r\n userAgent: function () {\r\n if (this._cache.userAgent === undefined) {\r\n this._cache.userAgent = impl.findMatch(impl.mobileDetectRules.uas, this.ua);\r\n }\r\n return this._cache.userAgent;\r\n },\r\n\r\n /**\r\n * Returns all detected user-agent strings.\r\n *
    \r\n * The array is empty or contains one or more of following keys:
    \r\n *
    Chrome, Dolfin, Opera, Skyfire, Edge, IE, Firefox, Bolt, TeaShark, Blazer,\r\n * Safari, UCBrowser, baiduboxapp, baidubrowser, DiigoBrowser, Puffin, Mercury,\r\n * ObigoBrowser, NetFront, GenericBrowser, PaleMoon
    \r\n *
    \r\n * In most cases calling {@link MobileDetect#userAgent} will be sufficient. But there are rare\r\n * cases where a mobile device pretends to be more than one particular browser. You can get the\r\n * list of all matches with {@link MobileDetect#userAgents} or check for a particular value by\r\n * providing one of the defined keys as first argument to {@link MobileDetect#is}.\r\n *\r\n * @returns {Array} the array of detected user-agent keys or []\r\n * @function MobileDetect#userAgents\r\n */\r\n userAgents: function () {\r\n if (this._cache.userAgents === undefined) {\r\n this._cache.userAgents = impl.findMatches(impl.mobileDetectRules.uas, this.ua);\r\n }\r\n return this._cache.userAgents;\r\n },\r\n\r\n /**\r\n * Returns the detected operating system string or null.\r\n *
    \r\n * The operating system is one of following keys:
    \r\n *
    AndroidOS, BlackBerryOS, PalmOS, SymbianOS, WindowsMobileOS, WindowsPhoneOS,\r\n * iOS, MeeGoOS, MaemoOS, JavaOS, webOS, badaOS, BREWOS
    \r\n *\r\n * @returns {String} the key for the detected operating system.\r\n * @function MobileDetect#os\r\n */\r\n os: function () {\r\n if (this._cache.os === undefined) {\r\n this._cache.os = impl.detectOS(this.ua);\r\n }\r\n return this._cache.os;\r\n },\r\n\r\n /**\r\n * Get the version (as Number) of the given property in the User-Agent.\r\n *
    \r\n * Will return a float number. (eg. 2_0 will return 2.0, 4.3.1 will return 4.31)\r\n *\r\n * @param {String} key a key defining a thing which has a version.
    \r\n * You can use one of following keys:
    \r\n *
    Mobile, Build, Version, VendorID, iPad, iPhone, iPod, Kindle, Chrome, Coast,\r\n * Dolfin, Firefox, Fennec, Edge, IE, NetFront, NokiaBrowser, Opera, Opera Mini,\r\n * Opera Mobi, UC Browser, MQQBrowser, MicroMessenger, baiduboxapp, baidubrowser,\r\n * SamsungBrowser, Iron, Safari, Skyfire, Tizen, Webkit, PaleMoon, Gecko, Trident,\r\n * Presto, Goanna, iOS, Android, BlackBerry, BREW, Java, Windows Phone OS, Windows\r\n * Phone, Windows CE, Windows NT, Symbian, webOS
    \r\n *\r\n * @returns {Number} the version as float or NaN if User-Agent doesn't contain this version.\r\n * Be careful when comparing this value with '==' operator!\r\n * @function MobileDetect#version\r\n */\r\n version: function (key) {\r\n return impl.getVersion(key, this.ua);\r\n },\r\n\r\n /**\r\n * Get the version (as String) of the given property in the User-Agent.\r\n *
    \r\n *\r\n * @param {String} key a key defining a thing which has a version.
    \r\n * You can use one of following keys:
    \r\n *
    Mobile, Build, Version, VendorID, iPad, iPhone, iPod, Kindle, Chrome, Coast,\r\n * Dolfin, Firefox, Fennec, Edge, IE, NetFront, NokiaBrowser, Opera, Opera Mini,\r\n * Opera Mobi, UC Browser, MQQBrowser, MicroMessenger, baiduboxapp, baidubrowser,\r\n * SamsungBrowser, Iron, Safari, Skyfire, Tizen, Webkit, PaleMoon, Gecko, Trident,\r\n * Presto, Goanna, iOS, Android, BlackBerry, BREW, Java, Windows Phone OS, Windows\r\n * Phone, Windows CE, Windows NT, Symbian, webOS
    \r\n *\r\n * @returns {String} the \"raw\" version as String or null if User-Agent doesn't contain this version.\r\n *\r\n * @function MobileDetect#versionStr\r\n */\r\n versionStr: function (key) {\r\n return impl.getVersionStr(key, this.ua);\r\n },\r\n\r\n /**\r\n * Global test key against userAgent, os, phone, tablet and some other properties of userAgent string.\r\n *\r\n * @param {String} key the key (case-insensitive) of a userAgent, an operating system, phone or\r\n * tablet family.
    \r\n * For a complete list of possible values, see {@link MobileDetect#userAgent},\r\n * {@link MobileDetect#os}, {@link MobileDetect#phone}, {@link MobileDetect#tablet}.
    \r\n * Additionally you have following keys:
    \r\n *
    Bot, MobileBot, DesktopMode, TV, WebKit, Console, Watch
    \r\n *\r\n * @returns {boolean} true when the given key is one of the defined keys of userAgent, os, phone,\r\n * tablet or one of the listed additional keys, otherwise false\r\n * @function MobileDetect#is\r\n */\r\n is: function (key) {\r\n return containsIC(this.userAgents(), key) ||\r\n equalIC(key, this.os()) ||\r\n equalIC(key, this.phone()) ||\r\n equalIC(key, this.tablet()) ||\r\n containsIC(impl.findMatches(impl.mobileDetectRules.utils, this.ua), key);\r\n },\r\n\r\n /**\r\n * Do a quick test against navigator::userAgent.\r\n *\r\n * @param {String|RegExp} pattern the pattern, either as String or RegExp\r\n * (a string will be converted to a case-insensitive RegExp).\r\n * @returns {boolean} true when the pattern matches, otherwise false\r\n * @function MobileDetect#match\r\n */\r\n match: function (pattern) {\r\n if (!(pattern instanceof RegExp)) {\r\n pattern = new RegExp(pattern, 'i');\r\n }\r\n return pattern.test(this.ua);\r\n },\r\n\r\n /**\r\n * Checks whether the mobile device can be considered as phone regarding screen.width.\r\n *
    \r\n * Obviously this method makes sense in browser environments only (not for Node.js)!\r\n * @param {number} [maxPhoneWidth] the maximum logical pixels (aka. CSS-pixels) to be considered as phone.
    \r\n * The argument is optional and if not present or falsy, the value of the constructor is taken.\r\n * @returns {boolean|undefined} undefined if screen size wasn't detectable, else true\r\n * when screen.width is less or equal to maxPhoneWidth, otherwise false.
    \r\n * Will always return undefined server-side.\r\n */\r\n isPhoneSized: function (maxPhoneWidth) {\r\n return MobileDetect.isPhoneSized(maxPhoneWidth || this.maxPhoneWidth);\r\n },\r\n\r\n /**\r\n * Returns the mobile grade ('A', 'B', 'C').\r\n *\r\n * @returns {String} one of the mobile grades ('A', 'B', 'C').\r\n * @function MobileDetect#mobileGrade\r\n */\r\n mobileGrade: function () {\r\n if (this._cache.grade === undefined) {\r\n this._cache.grade = impl.mobileGrade(this);\r\n }\r\n return this._cache.grade;\r\n }\r\n };\r\n\r\n // environment-dependent\r\n if (typeof window !== 'undefined' && window.screen) {\r\n MobileDetect.isPhoneSized = function (maxPhoneWidth) {\r\n return maxPhoneWidth < 0 ? undefined : impl.getDeviceSmallerSide() <= maxPhoneWidth;\r\n };\r\n } else {\r\n MobileDetect.isPhoneSized = function () {};\r\n }\r\n\r\n // should not be replaced by a completely new object - just overwrite existing methods\r\n MobileDetect._impl = impl;\r\n\r\n MobileDetect.version = '1.3.6 2017-04-05';\r\n\r\n return MobileDetect;\r\n}); // end of call of define()\r\n})((function (undefined) {\r\n if (typeof module !== 'undefined' && module.exports) {\r\n return function (factory) { module.exports = factory(); };\r\n } else if (typeof define === 'function' && define.amd) {\r\n return define;\r\n } else if (typeof window !== 'undefined') {\r\n return function (factory) { window.MobileDetect = factory(); };\r\n } else {\r\n // please file a bug if you get this error!\r\n throw new Error('unknown environment');\r\n }\r\n})());\r\n","/*! modernizr 3.6.0 (Custom Build) | MIT *\r\n * https://modernizr.com/download/?-appearance-audio-backgroundsize-borderradius-canvas-classlist-cssanimations-cssinvalid-csstransforms-csstransforms3d-csstransitions-cssvalid-flexbox-flexboxtweener-fontface-forcetouch-generatedcontent-history-inlinesvg-objectfit-opacity-rgba-supports-svg-svgclippaths-target-touchevents-video-setclasses !*/\r\n!function(e,t,n){function r(e,t){return typeof e===t}function o(){var e,t,n,o,a,i,s;for(var c in w)if(w.hasOwnProperty(c)){if(e=[],t=w[c],t.name&&(e.push(t.name.toLowerCase()),t.options&&t.options.aliases&&t.options.aliases.length))for(n=0;nf;f++)if(v=e[f],g=L.style[v],l(v,\"-\")&&(v=s(v)),L.style[v]!==n){if(a||r(o,\"undefined\"))return c(),\"pfx\"==t?v:!0;try{L.style[v]=o}catch(h){}if(L.style[v]!=g)return c(),\"pfx\"==t?v:!0}return c(),!1}function y(e,t,n,o,a){var i=e.charAt(0).toUpperCase()+e.slice(1),s=(e+\" \"+N.join(i+\" \")+i).split(\" \");return r(t,\"string\")||r(t,\"undefined\")?g(s,t,o,a):(s=(e+\" \"+j.join(i+\" \")+i).split(\" \"),f(s,t,n))}function h(e,t,r){return y(e,n,n,t,r)}var T=[],w=[],x={_version:\"3.6.0\",_config:{classPrefix:\"\",enableClasses:!0,enableJSClass:!0,usePrefixes:!0},_q:[],on:function(e,t){var n=this;setTimeout(function(){t(n[e])},0)},addTest:function(e,t,n){w.push({name:e,fn:t,options:n})},addAsyncTest:function(e){w.push({name:null,fn:e})}},Modernizr=function(){};Modernizr.prototype=x,Modernizr=new Modernizr;var b=\"CSS\"in e&&\"supports\"in e.CSS,S=\"supportsCSS\"in e;Modernizr.addTest(\"supports\",b||S),Modernizr.addTest(\"target\",function(){var t=e.document;if(!(\"querySelectorAll\"in t))return!1;try{return t.querySelectorAll(\":target\"),!0}catch(n){return!1}}),Modernizr.addTest(\"history\",function(){var t=navigator.userAgent;return-1===t.indexOf(\"Android 2.\")&&-1===t.indexOf(\"Android 4.0\")||-1===t.indexOf(\"Mobile Safari\")||-1!==t.indexOf(\"Chrome\")||-1!==t.indexOf(\"Windows Phone\")||\"file:\"===location.protocol?e.history&&\"pushState\"in e.history:!1}),Modernizr.addTest(\"svg\",!!t.createElementNS&&!!t.createElementNS(\"http://www.w3.org/2000/svg\",\"svg\").createSVGRect);var C=t.documentElement;Modernizr.addTest(\"classlist\",\"classList\"in C);var E=\"svg\"===C.nodeName.toLowerCase();Modernizr.addTest(\"audio\",function(){var e=i(\"audio\"),t=!1;try{t=!!e.canPlayType,t&&(t=new Boolean(t),t.ogg=e.canPlayType('audio/ogg; codecs=\"vorbis\"').replace(/^no$/,\"\"),t.mp3=e.canPlayType('audio/mpeg; codecs=\"mp3\"').replace(/^no$/,\"\"),t.opus=e.canPlayType('audio/ogg; codecs=\"opus\"')||e.canPlayType('audio/webm; codecs=\"opus\"').replace(/^no$/,\"\"),t.wav=e.canPlayType('audio/wav; codecs=\"1\"').replace(/^no$/,\"\"),t.m4a=(e.canPlayType(\"audio/x-m4a;\")||e.canPlayType(\"audio/aac;\")).replace(/^no$/,\"\"))}catch(n){}return t}),Modernizr.addTest(\"canvas\",function(){var e=i(\"canvas\");return!(!e.getContext||!e.getContext(\"2d\"))}),Modernizr.addTest(\"rgba\",function(){var e=i(\"a\").style;return e.cssText=\"background-color:rgba(150,255,150,.5)\",(\"\"+e.backgroundColor).indexOf(\"rgba\")>-1}),Modernizr.addTest(\"inlinesvg\",function(){var e=i(\"div\");return e.innerHTML=\"\",\"http://www.w3.org/2000/svg\"==(\"undefined\"!=typeof SVGRect&&e.firstChild&&e.firstChild.namespaceURI)}),Modernizr.addTest(\"video\",function(){var e=i(\"video\"),t=!1;try{t=!!e.canPlayType,t&&(t=new Boolean(t),t.ogg=e.canPlayType('video/ogg; codecs=\"theora\"').replace(/^no$/,\"\"),t.h264=e.canPlayType('video/mp4; codecs=\"avc1.42E01E\"').replace(/^no$/,\"\"),t.webm=e.canPlayType('video/webm; codecs=\"vp8, vorbis\"').replace(/^no$/,\"\"),t.vp9=e.canPlayType('video/webm; codecs=\"vp9\"').replace(/^no$/,\"\"),t.hls=e.canPlayType('application/x-mpegURL; codecs=\"avc1.42E01E\"').replace(/^no$/,\"\"))}catch(n){}return t});var _=x._config.usePrefixes?\" -webkit- -moz- -o- -ms- \".split(\" \"):[\"\",\"\"];x._prefixes=_,Modernizr.addTest(\"opacity\",function(){var e=i(\"a\").style;return e.cssText=_.join(\"opacity:.55;\"),/^0.55$/.test(e.opacity)});var P=function(){function e(e,t){var o;return e?(t&&\"string\"!=typeof t||(t=i(t||\"div\")),e=\"on\"+e,o=e in t,!o&&r&&(t.setAttribute||(t=i(\"div\")),t.setAttribute(e,\"\"),o=\"function\"==typeof t[e],t[e]!==n&&(t[e]=n),t.removeAttribute(e)),o):!1}var r=!(\"onblur\"in t.documentElement);return e}();x.hasEvent=P;var z={}.toString;Modernizr.addTest(\"svgclippaths\",function(){return!!t.createElementNS&&/SVGClipPath/.test(z.call(t.createElementNS(\"http://www.w3.org/2000/svg\",\"clipPath\")))});var O=x.testStyles=d,A=function(){var e=navigator.userAgent,t=e.match(/w(eb)?osbrowser/gi),n=e.match(/windows phone/gi)&&e.match(/iemobile\\/([0-9])+/gi)&&parseFloat(RegExp.$1)>=9;return t||n}();A?Modernizr.addTest(\"fontface\",!1):O('@font-face {font-family:\"font\";src:url(\"https://\")}',function(e,n){var r=t.getElementById(\"smodernizr\"),o=r.sheet||r.styleSheet,a=o?o.cssRules&&o.cssRules[0]?o.cssRules[0].cssText:o.cssText||\"\":\"\",i=/src/i.test(a)&&0===a.indexOf(n.split(\" \")[0]);Modernizr.addTest(\"fontface\",i)}),O('#modernizr{font:0/0 a}#modernizr:after{content:\":)\";visibility:hidden;font:7px/1 a}',function(e){Modernizr.addTest(\"generatedcontent\",e.offsetHeight>=6)}),Modernizr.addTest(\"cssinvalid\",function(){return O(\"#modernizr input{height:0;border:0;padding:0;margin:0;width:10px} #modernizr input:invalid{width:50px}\",function(e){var t=i(\"input\");return t.required=!0,e.appendChild(t),t.clientWidth>10})}),Modernizr.addTest(\"cssvalid\",function(){return O(\"#modernizr input{height:0;border:0;padding:0;margin:0;width:10px} #modernizr input:valid{width:50px}\",function(e){var t=i(\"input\");return e.appendChild(t),t.clientWidth>10})}),Modernizr.addTest(\"touchevents\",function(){var n;if(\"ontouchstart\"in e||e.DocumentTouch&&t instanceof DocumentTouch)n=!0;else{var r=[\"@media (\",_.join(\"touch-enabled),(\"),\"heartz\",\")\",\"{#modernizr{top:9px;position:absolute}}\"].join(\"\");O(r,function(e){n=9===e.offsetTop})}return n});var R=\"Moz O ms Webkit\",N=x._config.usePrefixes?R.split(\" \"):[];x._cssomPrefixes=N;var $=function(t){var r,o=_.length,a=e.CSSRule;if(\"undefined\"==typeof a)return n;if(!t)return!1;if(t=t.replace(/^@/,\"\"),r=t.replace(/-/g,\"_\").toUpperCase()+\"_RULE\",r in a)return\"@\"+t;for(var i=0;o>i;i++){var s=_[i],c=s.toUpperCase()+\"_\"+r;if(c in a)return\"@-\"+s.toLowerCase()+\"-\"+t}return!1};x.atRule=$;var j=x._config.usePrefixes?R.toLowerCase().split(\" \"):[];x._domPrefixes=j;var k={elem:i(\"modernizr\")};Modernizr._q.push(function(){delete k.elem});var L={style:k.elem.style};Modernizr._q.unshift(function(){delete L.style}),x.testAllProps=y,x.testAllProps=h,Modernizr.addTest(\"cssanimations\",h(\"animationName\",\"a\",!0)),Modernizr.addTest(\"appearance\",h(\"appearance\")),Modernizr.addTest(\"backgroundsize\",h(\"backgroundSize\",\"100%\",!0)),Modernizr.addTest(\"borderradius\",h(\"borderRadius\",\"0px\",!0)),Modernizr.addTest(\"flexbox\",h(\"flexBasis\",\"1px\",!0)),Modernizr.addTest(\"flexboxtweener\",h(\"flexAlign\",\"end\",!0)),Modernizr.addTest(\"csstransforms\",function(){return-1===navigator.userAgent.indexOf(\"Android 2.\")&&h(\"transform\",\"scale(1)\",!0)}),Modernizr.addTest(\"csstransforms3d\",function(){return!!h(\"perspective\",\"1px\",!0)}),Modernizr.addTest(\"csstransitions\",h(\"transition\",\"all\",!0));var U=x.prefixed=function(e,t,n){return 0===e.indexOf(\"@\")?$(e):(-1!=e.indexOf(\"-\")&&(e=s(e)),t?y(e,t,n):y(e,\"pfx\"))};Modernizr.addTest(\"forcetouch\",function(){return P(U(\"mouseforcewillbegin\",e,!1),e)?MouseEvent.WEBKIT_FORCE_AT_MOUSE_DOWN&&MouseEvent.WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN:!1}),Modernizr.addTest(\"objectfit\",!!U(\"objectFit\"),{aliases:[\"object-fit\"]}),o(),a(T),delete x.addTest,delete x.addAsyncTest;for(var q=0;q _maxKeyFrame) {\r\n\t\t\t\t\t\ttargetRatio = (_maxKeyFrame - targetTop) / targetOffset;\r\n\r\n\t\t\t\t\t\ttargetTop = _maxKeyFrame;\r\n\t\t\t\t\t} else if(targetTop < 0) {\r\n\t\t\t\t\t\ttargetRatio = -targetTop / targetOffset;\r\n\r\n\t\t\t\t\t\ttargetTop = 0;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tduration = duration * (1 - targetRatio);\r\n\r\n\t\t\t\t\t_instance.animateTo((targetTop + 0.5) | 0, {easing: 'outCubic', duration: duration});\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t//Just in case there has already been some native scrolling, reset it.\r\n\t\twindow.scrollTo(0, 0);\r\n\t\tdocumentElement.style.overflow = body.style.overflow = 'hidden';\r\n\t};\r\n\r\n\t/**\r\n\t * Updates key frames which depend on others / need to be updated on resize.\r\n\t * That is \"end\" in \"absolute\" mode and all key frames in \"relative\" mode.\r\n\t * Also handles constants, because they may change on resize.\r\n\t */\r\n\tvar _updateDependentKeyFrames = function() {\r\n\t\tvar viewportHeight = documentElement.clientHeight;\r\n\t\tvar processedConstants = _processConstants();\r\n\t\tvar skrollable;\r\n\t\tvar element;\r\n\t\tvar anchorTarget;\r\n\t\tvar keyFrames;\r\n\t\tvar keyFrameIndex;\r\n\t\tvar keyFramesLength;\r\n\t\tvar kf;\r\n\t\tvar skrollableIndex;\r\n\t\tvar skrollablesLength;\r\n\t\tvar offset;\r\n\t\tvar constantValue;\r\n\r\n\t\t//First process all relative-mode elements and find the max key frame.\r\n\t\tskrollableIndex = 0;\r\n\t\tskrollablesLength = _skrollables.length;\r\n\r\n\t\tfor(; skrollableIndex < skrollablesLength; skrollableIndex++) {\r\n\t\t\tskrollable = _skrollables[skrollableIndex];\r\n\t\t\telement = skrollable.element;\r\n\t\t\tanchorTarget = skrollable.anchorTarget;\r\n\t\t\tkeyFrames = skrollable.keyFrames;\r\n\r\n\t\t\tkeyFrameIndex = 0;\r\n\t\t\tkeyFramesLength = keyFrames.length;\r\n\r\n\t\t\tfor(; keyFrameIndex < keyFramesLength; keyFrameIndex++) {\r\n\t\t\t\tkf = keyFrames[keyFrameIndex];\r\n\r\n\t\t\t\toffset = kf.offset;\r\n\t\t\t\tconstantValue = processedConstants[kf.constant] || 0;\r\n\r\n\t\t\t\tkf.frame = offset;\r\n\r\n\t\t\t\tif(kf.isPercentage) {\r\n\t\t\t\t\t//Convert the offset to percentage of the viewport height.\r\n\t\t\t\t\toffset = offset * viewportHeight;\r\n\r\n\t\t\t\t\t//Absolute + percentage mode.\r\n\t\t\t\t\tkf.frame = offset;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(kf.mode === 'relative') {\r\n\t\t\t\t\t_reset(element);\r\n\r\n\t\t\t\t\tkf.frame = _instance.relativeToAbsolute(anchorTarget, kf.anchors[0], kf.anchors[1]) - offset;\r\n\r\n\t\t\t\t\t_reset(element, true);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tkf.frame += constantValue;\r\n\r\n\t\t\t\t//Only search for max key frame when forceHeight is enabled.\r\n\t\t\t\tif(_forceHeight) {\r\n\t\t\t\t\t//Find the max key frame, but don't use one of the data-end ones for comparison.\r\n\t\t\t\t\tif(!kf.isEnd && kf.frame > _maxKeyFrame) {\r\n\t\t\t\t\t\t_maxKeyFrame = kf.frame;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//#133: The document can be larger than the maxKeyFrame we found.\r\n\t\t_maxKeyFrame = Math.max(_maxKeyFrame, _getDocumentHeight());\r\n\r\n\t\t//Now process all data-end keyframes.\r\n\t\tskrollableIndex = 0;\r\n\t\tskrollablesLength = _skrollables.length;\r\n\r\n\t\tfor(; skrollableIndex < skrollablesLength; skrollableIndex++) {\r\n\t\t\tskrollable = _skrollables[skrollableIndex];\r\n\t\t\tkeyFrames = skrollable.keyFrames;\r\n\r\n\t\t\tkeyFrameIndex = 0;\r\n\t\t\tkeyFramesLength = keyFrames.length;\r\n\r\n\t\t\tfor(; keyFrameIndex < keyFramesLength; keyFrameIndex++) {\r\n\t\t\t\tkf = keyFrames[keyFrameIndex];\r\n\r\n\t\t\t\tconstantValue = processedConstants[kf.constant] || 0;\r\n\r\n\t\t\t\tif(kf.isEnd) {\r\n\t\t\t\t\tkf.frame = _maxKeyFrame - kf.offset + constantValue;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tskrollable.keyFrames.sort(_keyFrameComparator);\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * Calculates and sets the style properties for the element at the given frame.\r\n\t * @param fakeFrame The frame to render at when smooth scrolling is enabled.\r\n\t * @param actualFrame The actual frame we are at.\r\n\t */\r\n\tvar _calcSteps = function(fakeFrame, actualFrame) {\r\n\t\t//Iterate over all skrollables.\r\n\t\tvar skrollableIndex = 0;\r\n\t\tvar skrollablesLength = _skrollables.length;\r\n\r\n\t\tfor(; skrollableIndex < skrollablesLength; skrollableIndex++) {\r\n\t\t\tvar skrollable = _skrollables[skrollableIndex];\r\n\t\t\tvar element = skrollable.element;\r\n\t\t\tvar frame = skrollable.smoothScrolling ? fakeFrame : actualFrame;\r\n\t\t\tvar frames = skrollable.keyFrames;\r\n\t\t\tvar framesLength = frames.length;\r\n\t\t\tvar firstFrame = frames[0];\r\n\t\t\tvar lastFrame = frames[frames.length - 1];\r\n\t\t\tvar beforeFirst = frame < firstFrame.frame;\r\n\t\t\tvar afterLast = frame > lastFrame.frame;\r\n\t\t\tvar firstOrLastFrame = beforeFirst ? firstFrame : lastFrame;\r\n\t\t\tvar emitEvents = skrollable.emitEvents;\r\n\t\t\tvar lastFrameIndex = skrollable.lastFrameIndex;\r\n\t\t\tvar key;\r\n\t\t\tvar value;\r\n\r\n\t\t\t//If we are before/after the first/last frame, set the styles according to the given edge strategy.\r\n\t\t\tif(beforeFirst || afterLast) {\r\n\t\t\t\t//Check if we already handled this edge case last time.\r\n\t\t\t\t//Note: using setScrollTop it's possible that we jumped from one edge to the other.\r\n\t\t\t\tif(beforeFirst && skrollable.edge === -1 || afterLast && skrollable.edge === 1) {\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//Add the skrollr-before or -after class.\r\n\t\t\t\tif(beforeFirst) {\r\n\t\t\t\t\t_updateClass(element, [SKROLLABLE_BEFORE_CLASS], [SKROLLABLE_AFTER_CLASS, SKROLLABLE_BETWEEN_CLASS]);\r\n\r\n\t\t\t\t\t//This handles the special case where we exit the first keyframe.\r\n\t\t\t\t\tif(emitEvents && lastFrameIndex > -1) {\r\n\t\t\t\t\t\t_emitEvent(element, firstFrame.eventType, _direction);\r\n\t\t\t\t\t\tskrollable.lastFrameIndex = -1;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\t_updateClass(element, [SKROLLABLE_AFTER_CLASS], [SKROLLABLE_BEFORE_CLASS, SKROLLABLE_BETWEEN_CLASS]);\r\n\r\n\t\t\t\t\t//This handles the special case where we exit the last keyframe.\r\n\t\t\t\t\tif(emitEvents && lastFrameIndex < framesLength) {\r\n\t\t\t\t\t\t_emitEvent(element, lastFrame.eventType, _direction);\r\n\t\t\t\t\t\tskrollable.lastFrameIndex = framesLength;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//Remember that we handled the edge case (before/after the first/last keyframe).\r\n\t\t\t\tskrollable.edge = beforeFirst ? -1 : 1;\r\n\r\n\t\t\t\tswitch(skrollable.edgeStrategy) {\r\n\t\t\t\t\tcase 'reset':\r\n\t\t\t\t\t\t_reset(element);\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\tcase 'ease':\r\n\t\t\t\t\t\t//Handle this case like it would be exactly at first/last keyframe and just pass it on.\r\n\t\t\t\t\t\tframe = firstOrLastFrame.frame;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tdefault:\r\n\t\t\t\t\tcase 'set':\r\n\t\t\t\t\t\tvar props = firstOrLastFrame.props;\r\n\r\n\t\t\t\t\t\tfor(key in props) {\r\n\t\t\t\t\t\t\tif(hasProp.call(props, key)) {\r\n\t\t\t\t\t\t\t\tvalue = _interpolateString(props[key].value);\r\n\r\n\t\t\t\t\t\t\t\t//Set style or attribute.\r\n\t\t\t\t\t\t\t\tif(key.indexOf('@') === 0) {\r\n\t\t\t\t\t\t\t\t\telement.setAttribute(key.substr(1), value);\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tskrollr.setStyle(element, key, value);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\t//Did we handle an edge last time?\r\n\t\t\t\tif(skrollable.edge !== 0) {\r\n\t\t\t\t\t_updateClass(element, [SKROLLABLE_CLASS, SKROLLABLE_BETWEEN_CLASS], [SKROLLABLE_BEFORE_CLASS, SKROLLABLE_AFTER_CLASS]);\r\n\t\t\t\t\tskrollable.edge = 0;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t//Find out between which two key frames we are right now.\r\n\t\t\tvar keyFrameIndex = 0;\r\n\r\n\t\t\tfor(; keyFrameIndex < framesLength - 1; keyFrameIndex++) {\r\n\t\t\t\tif(frame >= frames[keyFrameIndex].frame && frame <= frames[keyFrameIndex + 1].frame) {\r\n\t\t\t\t\tvar left = frames[keyFrameIndex];\r\n\t\t\t\t\tvar right = frames[keyFrameIndex + 1];\r\n\r\n\t\t\t\t\tfor(key in left.props) {\r\n\t\t\t\t\t\tif(hasProp.call(left.props, key)) {\r\n\t\t\t\t\t\t\tvar progress = (frame - left.frame) / (right.frame - left.frame);\r\n\r\n\t\t\t\t\t\t\t//Transform the current progress using the given easing function.\r\n\t\t\t\t\t\t\tprogress = left.props[key].easing(progress);\r\n\r\n\t\t\t\t\t\t\t//Interpolate between the two values\r\n\t\t\t\t\t\t\tvalue = _calcInterpolation(left.props[key].value, right.props[key].value, progress);\r\n\r\n\t\t\t\t\t\t\tvalue = _interpolateString(value);\r\n\r\n\t\t\t\t\t\t\t//Set style or attribute.\r\n\t\t\t\t\t\t\tif(key.indexOf('@') === 0) {\r\n\t\t\t\t\t\t\t\telement.setAttribute(key.substr(1), value);\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tskrollr.setStyle(element, key, value);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t//Are events enabled on this element?\r\n\t\t\t\t\t//This code handles the usual cases of scrolling through different keyframes.\r\n\t\t\t\t\t//The special cases of before first and after last keyframe are handled above.\r\n\t\t\t\t\tif(emitEvents) {\r\n\t\t\t\t\t\t//Did we pass a new keyframe?\r\n\t\t\t\t\t\tif(lastFrameIndex !== keyFrameIndex) {\r\n\t\t\t\t\t\t\tif(_direction === 'down') {\r\n\t\t\t\t\t\t\t\t_emitEvent(element, left.eventType, _direction);\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t_emitEvent(element, right.eventType, _direction);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tskrollable.lastFrameIndex = keyFrameIndex;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * Renders all elements.\r\n\t */\r\n\tvar _render = function() {\r\n\t\tif(_requestReflow) {\r\n\t\t\t_requestReflow = false;\r\n\t\t\t_reflow();\r\n\t\t}\r\n\r\n\t\t//We may render something else than the actual scrollbar position.\r\n\t\tvar renderTop = _instance.getScrollTop();\r\n\r\n\t\t//If there's an animation, which ends in current render call, call the callback after rendering.\r\n\t\tvar afterAnimationCallback;\r\n\t\tvar now = _now();\r\n\t\tvar progress;\r\n\r\n\t\t//Before actually rendering handle the scroll animation, if any.\r\n\t\tif(_scrollAnimation) {\r\n\t\t\t//It's over\r\n\t\t\tif(now >= _scrollAnimation.endTime) {\r\n\t\t\t\trenderTop = _scrollAnimation.targetTop;\r\n\t\t\t\tafterAnimationCallback = _scrollAnimation.done;\r\n\t\t\t\t_scrollAnimation = undefined;\r\n\t\t\t} else {\r\n\t\t\t\t//Map the current progress to the new progress using given easing function.\r\n\t\t\t\tprogress = _scrollAnimation.easing((now - _scrollAnimation.startTime) / _scrollAnimation.duration);\r\n\r\n\t\t\t\trenderTop = (_scrollAnimation.startTop + progress * _scrollAnimation.topDiff) | 0;\r\n\t\t\t}\r\n\r\n\t\t\t_instance.setScrollTop(renderTop, true);\r\n\t\t}\r\n\t\t//Smooth scrolling only if there's no animation running and if we're not forcing the rendering.\r\n\t\telse if(!_forceRender) {\r\n\t\t\tvar smoothScrollingDiff = _smoothScrolling.targetTop - renderTop;\r\n\r\n\t\t\t//The user scrolled, start new smooth scrolling.\r\n\t\t\tif(smoothScrollingDiff) {\r\n\t\t\t\t_smoothScrolling = {\r\n\t\t\t\t\tstartTop: _lastTop,\r\n\t\t\t\t\ttopDiff: renderTop - _lastTop,\r\n\t\t\t\t\ttargetTop: renderTop,\r\n\t\t\t\t\tstartTime: _lastRenderCall,\r\n\t\t\t\t\tendTime: _lastRenderCall + _smoothScrollingDuration\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\t//Interpolate the internal scroll position (not the actual scrollbar).\r\n\t\t\tif(now <= _smoothScrolling.endTime) {\r\n\t\t\t\t//Map the current progress to the new progress using easing function.\r\n\t\t\t\tprogress = easings.sqrt((now - _smoothScrolling.startTime) / _smoothScrollingDuration);\r\n\r\n\t\t\t\trenderTop = (_smoothScrolling.startTop + progress * _smoothScrolling.topDiff) | 0;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//Did the scroll position even change?\r\n\t\tif(_forceRender || _lastTop !== renderTop) {\r\n\t\t\t//Remember in which direction are we scrolling?\r\n\t\t\t_direction = (renderTop > _lastTop) ? 'down' : (renderTop < _lastTop ? 'up' : _direction);\r\n\r\n\t\t\t_forceRender = false;\r\n\r\n\t\t\tvar listenerParams = {\r\n\t\t\t\tcurTop: renderTop,\r\n\t\t\t\tlastTop: _lastTop,\r\n\t\t\t\tmaxTop: _maxKeyFrame,\r\n\t\t\t\tdirection: _direction\r\n\t\t\t};\r\n\r\n\t\t\t//Tell the listener we are about to render.\r\n\t\t\tvar continueRendering = _listeners.beforerender && _listeners.beforerender.call(_instance, listenerParams);\r\n\r\n\t\t\t//The beforerender listener function is able the cancel rendering.\r\n\t\t\tif(continueRendering !== false) {\r\n\t\t\t\t//Now actually interpolate all the styles.\r\n\t\t\t\t_calcSteps(renderTop, _instance.getScrollTop());\r\n\r\n\t\t\t\t//That's were we actually \"scroll\" on mobile.\r\n\t\t\t\tif(_isMobile && _skrollrBody) {\r\n\t\t\t\t\t//Set the transform (\"scroll it\").\r\n\t\t\t\t\tskrollr.setStyle(_skrollrBody, 'transform', 'translate(0, ' + -(_mobileOffset) + 'px) ' + _translateZ);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//Remember when we last rendered.\r\n\t\t\t\t_lastTop = renderTop;\r\n\r\n\t\t\t\tif(_listeners.render) {\r\n\t\t\t\t\t_listeners.render.call(_instance, listenerParams);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif(afterAnimationCallback) {\r\n\t\t\t\tafterAnimationCallback.call(_instance, false);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t_lastRenderCall = now;\r\n\t};\r\n\r\n\t/**\r\n\t * Parses the properties for each key frame of the given skrollable.\r\n\t */\r\n\tvar _parseProps = function(skrollable) {\r\n\t\t//Iterate over all key frames\r\n\t\tvar keyFrameIndex = 0;\r\n\t\tvar keyFramesLength = skrollable.keyFrames.length;\r\n\r\n\t\tfor(; keyFrameIndex < keyFramesLength; keyFrameIndex++) {\r\n\t\t\tvar frame = skrollable.keyFrames[keyFrameIndex];\r\n\t\t\tvar easing;\r\n\t\t\tvar value;\r\n\t\t\tvar prop;\r\n\t\t\tvar props = {};\r\n\r\n\t\t\tvar match;\r\n\r\n\t\t\twhile((match = rxPropValue.exec(frame.props)) !== null) {\r\n\t\t\t\tprop = match[1];\r\n\t\t\t\tvalue = match[2];\r\n\r\n\t\t\t\teasing = prop.match(rxPropEasing);\r\n\r\n\t\t\t\t//Is there an easing specified for this prop?\r\n\t\t\t\tif(easing !== null) {\r\n\t\t\t\t\tprop = easing[1];\r\n\t\t\t\t\teasing = easing[2];\r\n\t\t\t\t} else {\r\n\t\t\t\t\teasing = DEFAULT_EASING;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//Exclamation point at first position forces the value to be taken literal.\r\n\t\t\t\tvalue = value.indexOf('!') ? _parseProp(value) : [value.slice(1)];\r\n\r\n\t\t\t\t//Save the prop for this key frame with his value and easing function\r\n\t\t\t\tprops[prop] = {\r\n\t\t\t\t\tvalue: value,\r\n\t\t\t\t\teasing: easings[easing]\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tframe.props = props;\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * Parses a value extracting numeric values and generating a format string\r\n\t * for later interpolation of the new values in old string.\r\n\t *\r\n\t * @param val The CSS value to be parsed.\r\n\t * @return Something like [\"rgba(?%,?%, ?%,?)\", 100, 50, 0, .7]\r\n\t * where the first element is the format string later used\r\n\t * and all following elements are the numeric value.\r\n\t */\r\n\tvar _parseProp = function(val) {\r\n\t\tvar numbers = [];\r\n\r\n\t\t//One special case, where floats don't work.\r\n\t\t//We replace all occurences of rgba colors\r\n\t\t//which don't use percentage notation with the percentage notation.\r\n\t\trxRGBAIntegerColor.lastIndex = 0;\r\n\t\tval = val.replace(rxRGBAIntegerColor, function(rgba) {\r\n\t\t\treturn rgba.replace(rxNumericValue, function(n) {\r\n\t\t\t\treturn n / 255 * 100 + '%';\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\t//Handle prefixing of \"gradient\" values.\r\n\t\t//For now only the prefixed value will be set. Unprefixed isn't supported anyway.\r\n\t\tif(theDashedCSSPrefix) {\r\n\t\t\trxGradient.lastIndex = 0;\r\n\t\t\tval = val.replace(rxGradient, function(s) {\r\n\t\t\t\treturn theDashedCSSPrefix + s;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t//Now parse ANY number inside this string and create a format string.\r\n\t\tval = val.replace(rxNumericValue, function(n) {\r\n\t\t\tnumbers.push(+n);\r\n\t\t\treturn '{?}';\r\n\t\t});\r\n\r\n\t\t//Add the formatstring as first value.\r\n\t\tnumbers.unshift(val);\r\n\r\n\t\treturn numbers;\r\n\t};\r\n\r\n\t/**\r\n\t * Fills the key frames with missing left and right hand properties.\r\n\t * If key frame 1 has property X and key frame 2 is missing X,\r\n\t * but key frame 3 has X again, then we need to assign X to key frame 2 too.\r\n\t *\r\n\t * @param sk A skrollable.\r\n\t */\r\n\tvar _fillProps = function(sk) {\r\n\t\t//Will collect the properties key frame by key frame\r\n\t\tvar propList = {};\r\n\t\tvar keyFrameIndex;\r\n\t\tvar keyFramesLength;\r\n\r\n\t\t//Iterate over all key frames from left to right\r\n\t\tkeyFrameIndex = 0;\r\n\t\tkeyFramesLength = sk.keyFrames.length;\r\n\r\n\t\tfor(; keyFrameIndex < keyFramesLength; keyFrameIndex++) {\r\n\t\t\t_fillPropForFrame(sk.keyFrames[keyFrameIndex], propList);\r\n\t\t}\r\n\r\n\t\t//Now do the same from right to fill the last gaps\r\n\r\n\t\tpropList = {};\r\n\r\n\t\t//Iterate over all key frames from right to left\r\n\t\tkeyFrameIndex = sk.keyFrames.length - 1;\r\n\r\n\t\tfor(; keyFrameIndex >= 0; keyFrameIndex--) {\r\n\t\t\t_fillPropForFrame(sk.keyFrames[keyFrameIndex], propList);\r\n\t\t}\r\n\t};\r\n\r\n\tvar _fillPropForFrame = function(frame, propList) {\r\n\t\tvar key;\r\n\r\n\t\t//For each key frame iterate over all right hand properties and assign them,\r\n\t\t//but only if the current key frame doesn't have the property by itself\r\n\t\tfor(key in propList) {\r\n\t\t\t//The current frame misses this property, so assign it.\r\n\t\t\tif(!hasProp.call(frame.props, key)) {\r\n\t\t\t\tframe.props[key] = propList[key];\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//Iterate over all props of the current frame and collect them\r\n\t\tfor(key in frame.props) {\r\n\t\t\tpropList[key] = frame.props[key];\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * Calculates the new values for two given values array.\r\n\t */\r\n\tvar _calcInterpolation = function(val1, val2, progress) {\r\n\t\tvar valueIndex;\r\n\t\tvar val1Length = val1.length;\r\n\r\n\t\t//They both need to have the same length\r\n\t\tif(val1Length !== val2.length) {\r\n\t\t\tthrow 'Can\\'t interpolate between \"' + val1[0] + '\" and \"' + val2[0] + '\"';\r\n\t\t}\r\n\r\n\t\t//Add the format string as first element.\r\n\t\tvar interpolated = [val1[0]];\r\n\r\n\t\tvalueIndex = 1;\r\n\r\n\t\tfor(; valueIndex < val1Length; valueIndex++) {\r\n\t\t\t//That's the line where the two numbers are actually interpolated.\r\n\t\t\tinterpolated[valueIndex] = val1[valueIndex] + ((val2[valueIndex] - val1[valueIndex]) * progress);\r\n\t\t}\r\n\r\n\t\treturn interpolated;\r\n\t};\r\n\r\n\t/**\r\n\t * Interpolates the numeric values into the format string.\r\n\t */\r\n\tvar _interpolateString = function(val) {\r\n\t\tvar valueIndex = 1;\r\n\r\n\t\trxInterpolateString.lastIndex = 0;\r\n\r\n\t\treturn val[0].replace(rxInterpolateString, function() {\r\n\t\t\treturn val[valueIndex++];\r\n\t\t});\r\n\t};\r\n\r\n\t/**\r\n\t * Resets the class and style attribute to what it was before skrollr manipulated the element.\r\n\t * Also remembers the values it had before reseting, in order to undo the reset.\r\n\t */\r\n\tvar _reset = function(elements, undo) {\r\n\t\t//We accept a single element or an array of elements.\r\n\t\telements = [].concat(elements);\r\n\r\n\t\tvar skrollable;\r\n\t\tvar element;\r\n\t\tvar elementsIndex = 0;\r\n\t\tvar elementsLength = elements.length;\r\n\r\n\t\tfor(; elementsIndex < elementsLength; elementsIndex++) {\r\n\t\t\telement = elements[elementsIndex];\r\n\t\t\tskrollable = _skrollables[element[SKROLLABLE_ID_DOM_PROPERTY]];\r\n\r\n\t\t\t//Couldn't find the skrollable for this DOM element.\r\n\t\t\tif(!skrollable) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\tif(undo) {\r\n\t\t\t\t//Reset class and style to the \"dirty\" (set by skrollr) values.\r\n\t\t\t\telement.style.cssText = skrollable.dirtyStyleAttr;\r\n\t\t\t\t_updateClass(element, skrollable.dirtyClassAttr);\r\n\t\t\t} else {\r\n\t\t\t\t//Remember the \"dirty\" (set by skrollr) class and style.\r\n\t\t\t\tskrollable.dirtyStyleAttr = element.style.cssText;\r\n\t\t\t\tskrollable.dirtyClassAttr = _getClass(element);\r\n\r\n\t\t\t\t//Reset class and style to what it originally was.\r\n\t\t\t\telement.style.cssText = skrollable.styleAttr;\r\n\t\t\t\t_updateClass(element, skrollable.classAttr);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * Detects support for 3d transforms by applying it to the skrollr-body.\r\n\t */\r\n\tvar _detect3DTransforms = function() {\r\n\t\t_translateZ = 'translateZ(0)';\r\n\t\tskrollr.setStyle(_skrollrBody, 'transform', _translateZ);\r\n\r\n\t\tvar computedStyle = getStyle(_skrollrBody);\r\n\t\tvar computedTransform = computedStyle.getPropertyValue('transform');\r\n\t\tvar computedTransformWithPrefix = computedStyle.getPropertyValue(theDashedCSSPrefix + 'transform');\r\n\t\tvar has3D = (computedTransform && computedTransform !== 'none') || (computedTransformWithPrefix && computedTransformWithPrefix !== 'none');\r\n\r\n\t\tif(!has3D) {\r\n\t\t\t_translateZ = '';\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * Set the CSS property on the given element. Sets prefixed properties as well.\r\n\t */\r\n\tskrollr.setStyle = function(el, prop, val) {\r\n\t\tvar style = el.style;\r\n\r\n\t\t//Camel case.\r\n\t\tprop = prop.replace(rxCamelCase, rxCamelCaseFn).replace('-', '');\r\n\r\n\t\t//Make sure z-index gets a .\r\n\t\t//This is the only case we need to handle.\r\n\t\tif(prop === 'zIndex') {\r\n\t\t\tif(isNaN(val)) {\r\n\t\t\t\t//If it's not a number, don't touch it.\r\n\t\t\t\t//It could for example be \"auto\" (#351).\r\n\t\t\t\tstyle[prop] = val;\r\n\t\t\t} else {\r\n\t\t\t\t//Floor the number.\r\n\t\t\t\tstyle[prop] = '' + (val | 0);\r\n\t\t\t}\r\n\t\t}\r\n\t\t//#64: \"float\" can't be set across browsers. Needs to use \"cssFloat\" for all except IE.\r\n\t\telse if(prop === 'float') {\r\n\t\t\tstyle.styleFloat = style.cssFloat = val;\r\n\t\t}\r\n\t\telse {\r\n\t\t\t//Need try-catch for old IE.\r\n\t\t\ttry {\r\n\t\t\t\t//Set prefixed property if there's a prefix.\r\n\t\t\t\tif(theCSSPrefix) {\r\n\t\t\t\t\tstyle[theCSSPrefix + prop.slice(0,1).toUpperCase() + prop.slice(1)] = val;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//Set unprefixed.\r\n\t\t\t\tstyle[prop] = val;\r\n\t\t\t} catch(ignore) {}\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * Cross browser event handling.\r\n\t */\r\n\tvar _addEvent = skrollr.addEvent = function(element, names, callback) {\r\n\t\tvar intermediate = function(e) {\r\n\t\t\t//Normalize IE event stuff.\r\n\t\t\te = e || window.event;\r\n\r\n\t\t\tif(!e.target) {\r\n\t\t\t\te.target = e.srcElement;\r\n\t\t\t}\r\n\r\n\t\t\tif(!e.preventDefault) {\r\n\t\t\t\te.preventDefault = function() {\r\n\t\t\t\t\te.returnValue = false;\r\n\t\t\t\t\te.defaultPrevented = true;\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\treturn callback.call(this, e);\r\n\t\t};\r\n\r\n\t\tnames = names.split(' ');\r\n\r\n\t\tvar name;\r\n\t\tvar nameCounter = 0;\r\n\t\tvar namesLength = names.length;\r\n\r\n\t\tfor(; nameCounter < namesLength; nameCounter++) {\r\n\t\t\tname = names[nameCounter];\r\n\r\n\t\t\tif(element.addEventListener) {\r\n\t\t\t\telement.addEventListener(name, callback, false);\r\n\t\t\t} else {\r\n\t\t\t\telement.attachEvent('on' + name, intermediate);\r\n\t\t\t}\r\n\r\n\t\t\t//Remember the events to be able to flush them later.\r\n\t\t\t_registeredEvents.push({\r\n\t\t\t\telement: element,\r\n\t\t\t\tname: name,\r\n\t\t\t\tlistener: callback\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n\r\n\tvar _removeEvent = skrollr.removeEvent = function(element, names, callback) {\r\n\t\tnames = names.split(' ');\r\n\r\n\t\tvar nameCounter = 0;\r\n\t\tvar namesLength = names.length;\r\n\r\n\t\tfor(; nameCounter < namesLength; nameCounter++) {\r\n\t\t\tif(element.removeEventListener) {\r\n\t\t\t\telement.removeEventListener(names[nameCounter], callback, false);\r\n\t\t\t} else {\r\n\t\t\t\telement.detachEvent('on' + names[nameCounter], callback);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\tvar _removeAllEvents = function() {\r\n\t\tvar eventData;\r\n\t\tvar eventCounter = 0;\r\n\t\tvar eventsLength = _registeredEvents.length;\r\n\r\n\t\tfor(; eventCounter < eventsLength; eventCounter++) {\r\n\t\t\teventData = _registeredEvents[eventCounter];\r\n\r\n\t\t\t_removeEvent(eventData.element, eventData.name, eventData.listener);\r\n\t\t}\r\n\r\n\t\t_registeredEvents = [];\r\n\t};\r\n\r\n\tvar _emitEvent = function(element, name, direction) {\r\n\t\tif(_listeners.keyframe) {\r\n\t\t\t_listeners.keyframe.call(_instance, element, name, direction);\r\n\t\t}\r\n\t};\r\n\r\n\tvar _reflow = function() {\r\n\t\tvar pos = _instance.getScrollTop();\r\n\r\n\t\t//Will be recalculated by _updateDependentKeyFrames.\r\n\t\t_maxKeyFrame = 0;\r\n\r\n\t\tif(_forceHeight && !_isMobile) {\r\n\t\t\t//un-\"force\" the height to not mess with the calculations in _updateDependentKeyFrames (#216).\r\n\t\t\tbody.style.height = '';\r\n\t\t}\r\n\r\n\t\t_updateDependentKeyFrames();\r\n\r\n\t\tif(_forceHeight && !_isMobile) {\r\n\t\t\t//\"force\" the height.\r\n\t\t\tbody.style.height = (_maxKeyFrame + documentElement.clientHeight) + 'px';\r\n\t\t}\r\n\r\n\t\t//The scroll offset may now be larger than needed (on desktop the browser/os prevents scrolling farther than the bottom).\r\n\t\tif(_isMobile) {\r\n\t\t\t_instance.setScrollTop(Math.min(_instance.getScrollTop(), _maxKeyFrame));\r\n\t\t} else {\r\n\t\t\t//Remember and reset the scroll pos (#217).\r\n\t\t\t_instance.setScrollTop(pos, true);\r\n\t\t}\r\n\r\n\t\t_forceRender = true;\r\n\t};\r\n\r\n\t/*\r\n\t * Returns a copy of the constants object where all functions and strings have been evaluated.\r\n\t */\r\n\tvar _processConstants = function() {\r\n\t\tvar viewportHeight = documentElement.clientHeight;\r\n\t\tvar copy = {};\r\n\t\tvar prop;\r\n\t\tvar value;\r\n\r\n\t\tfor(prop in _constants) {\r\n\t\t\tvalue = _constants[prop];\r\n\r\n\t\t\tif(typeof value === 'function') {\r\n\t\t\t\tvalue = value.call(_instance);\r\n\t\t\t}\r\n\t\t\t//Percentage offset.\r\n\t\t\telse if((/p$/).test(value)) {\r\n\t\t\t\tvalue = (value.slice(0, -1) / 100) * viewportHeight;\r\n\t\t\t}\r\n\r\n\t\t\tcopy[prop] = value;\r\n\t\t}\r\n\r\n\t\treturn copy;\r\n\t};\r\n\r\n\t/*\r\n\t * Returns the height of the document.\r\n\t */\r\n\tvar _getDocumentHeight = function() {\r\n\t\tvar skrollrBodyHeight = 0;\r\n\t\tvar bodyHeight;\r\n\r\n\t\tif(_skrollrBody) {\r\n\t\t\tskrollrBodyHeight = Math.max(_skrollrBody.offsetHeight, _skrollrBody.scrollHeight);\r\n\t\t}\r\n\r\n\t\tbodyHeight = Math.max(skrollrBodyHeight, body.scrollHeight, body.offsetHeight, documentElement.scrollHeight, documentElement.offsetHeight, documentElement.clientHeight);\r\n\r\n\t\treturn bodyHeight - documentElement.clientHeight;\r\n\t};\r\n\r\n\t/**\r\n\t * Returns a string of space separated classnames for the current element.\r\n\t * Works with SVG as well.\r\n\t */\r\n\tvar _getClass = function(element) {\r\n\t\tvar prop = 'className';\r\n\r\n\t\t//SVG support by using className.baseVal instead of just className.\r\n\t\tif(window.SVGElement && element instanceof window.SVGElement) {\r\n\t\t\telement = element[prop];\r\n\t\t\tprop = 'baseVal';\r\n\t\t}\r\n\r\n\t\treturn element[prop];\r\n\t};\r\n\r\n\t/**\r\n\t * Adds and removes a CSS classes.\r\n\t * Works with SVG as well.\r\n\t * add and remove are arrays of strings,\r\n\t * or if remove is ommited add is a string and overwrites all classes.\r\n\t */\r\n\tvar _updateClass = function(element, add, remove) {\r\n\t\tvar prop = 'className';\r\n\r\n\t\t//SVG support by using className.baseVal instead of just className.\r\n\t\tif(window.SVGElement && element instanceof window.SVGElement) {\r\n\t\t\telement = element[prop];\r\n\t\t\tprop = 'baseVal';\r\n\t\t}\r\n\r\n\t\t//When remove is ommited, we want to overwrite/set the classes.\r\n\t\tif(remove === undefined) {\r\n\t\t\telement[prop] = add;\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t//Cache current classes. We will work on a string before passing back to DOM.\r\n\t\tvar val = element[prop];\r\n\r\n\t\t//All classes to be removed.\r\n\t\tvar classRemoveIndex = 0;\r\n\t\tvar removeLength = remove.length;\r\n\r\n\t\tfor(; classRemoveIndex < removeLength; classRemoveIndex++) {\r\n\t\t\tval = _untrim(val).replace(_untrim(remove[classRemoveIndex]), ' ');\r\n\t\t}\r\n\r\n\t\tval = _trim(val);\r\n\r\n\t\t//All classes to be added.\r\n\t\tvar classAddIndex = 0;\r\n\t\tvar addLength = add.length;\r\n\r\n\t\tfor(; classAddIndex < addLength; classAddIndex++) {\r\n\t\t\t//Only add if el not already has class.\r\n\t\t\tif(_untrim(val).indexOf(_untrim(add[classAddIndex])) === -1) {\r\n\t\t\t\tval += ' ' + add[classAddIndex];\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\telement[prop] = _trim(val);\r\n\t};\r\n\r\n\tvar _trim = function(a) {\r\n\t\treturn a.replace(rxTrim, '');\r\n\t};\r\n\r\n\t/**\r\n\t * Adds a space before and after the string.\r\n\t */\r\n\tvar _untrim = function(a) {\r\n\t\treturn ' ' + a + ' ';\r\n\t};\r\n\r\n\tvar _now = Date.now || function() {\r\n\t\treturn +new Date();\r\n\t};\r\n\r\n\tvar _keyFrameComparator = function(a, b) {\r\n\t\treturn a.frame - b.frame;\r\n\t};\r\n\r\n\t/*\r\n\t * Private variables.\r\n\t */\r\n\r\n\t//Singleton\r\n\tvar _instance;\r\n\r\n\t/*\r\n\t\tA list of all elements which should be animated associated with their the metadata.\r\n\t\tExmaple skrollable with two key frames animating from 100px width to 20px:\r\n\r\n\t\tskrollable = {\r\n\t\t\telement: ,\r\n\t\t\tstyleAttr: